自动化立体仓库 - WMS系统
#
whycq
2023-11-01 02df7ad658b0fbc73b3c4739719be691eec45a8b
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -478,21 +478,44 @@
        Date now = new Date();
        // 合并同类项
        Set<String> locNos = new HashSet<>();
        ArrayList<String> locNos2 = new ArrayList<String>();
        List<OutLocDto> dtos = new ArrayList<>();
        for (LocDetlDto locDetlDto : locDetlDtos) {
            String locNo = locDetlDto.getLocDetl().getLocNo();
            if (locNos.contains(locNo)) {
                for (OutLocDto dto : dtos) {
                    if (dto.getLocNo().equals(locNo)) {
                        dto.getLocDetlDtos().add(locDetlDto);
                        break;
            locNos2.add(locNo);
            //if (locNos.contains(locNo)) {
                //for (OutLocDto dto : dtos) {
                //    if (dto.getLocNo().equals(locNo)) {
                //        dto.getLocDetlDtos().add(locDetlDto);
                //        break;
                //    }
                //}
            //} else {
                //locNos.add(locNo);
                //dtos.add(new OutLocDto(locNo, locDetlDto));
            //}
        }
        List<String> innermostSideLoc = Utils.getInnermostSideLoc(locNos2, true);
        System.out.println(innermostSideLoc);
        for (LocDetlDto locDetlDto : locDetlDtos) {
            String locNo = locDetlDto.getLocDetl().getLocNo();
            if(innermostSideLoc.contains(locNo)) {
                if (locNos.contains(locNo)) {
                    for (OutLocDto dto : dtos) {
                        if (dto.getLocNo().equals(locNo)) {
                            dto.getLocDetlDtos().add(locDetlDto);
                            break;
                        }
                    }
                } else {
                    locNos.add(locNo);
                    dtos.add(new OutLocDto(locNo, locDetlDto));
                }
            } else {
                locNos.add(locNo);
                dtos.add(new OutLocDto(locNo, locDetlDto));
                //dtos.add(new OutLocDto(locNo,locDetlDto));
            }
        }
        Integer ioType = null;
        List<String> excludeLocNos = dtos.stream().map(OutLocDto::getLocNo).distinct().collect(Collectors.toList());
        // 生成工作档
@@ -1664,7 +1687,7 @@
        for (WrkDetl wrkDetl : wrkDetls) {
            if (!Cools.isEmpty(wrkDetl.getOrderNo())){
                String[] orderNos = GetOrderNo(wrkDetl.getOrderNo());
                if (!Cools.isEmpty(orderNos)){
                if (!Cools.isEmpty(orderNos) && orderNos.length!=0){
                    String[] anfmes = GetAnfme(wrkDetl.getOrderNo());
                    int i = 0;
                    for (String orderNo : orderNos) {