#
Junjie
2024-09-09 9060dd329b8500f58709b31aade3c2f48e19c233
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java
@@ -330,6 +330,8 @@
            Long locId = entry.getKey();
            List<OrderOutBatchPreviewDto> previewDtos = entry.getValue();
            Boolean all = outUtils.isAllForPreview(locId, previewDtos);
            OrderOutBatchPreviewDto previewDto = previewDtos.get(0);
            Long operationPortId = previewDto.getOperationPort();
            Loc loc = locService.getById(locId);
            if (loc == null) {
@@ -338,6 +340,11 @@
            if (!loc.getLocStsId().equals(LocStsType.F.val())) {
                continue;
            }
            OperationPort operationPort = operationPortService.getById(operationPortId);
            if (operationPort == null) {
                throw new CoolException("作业口不存在");
            }
@@ -349,7 +356,7 @@
            task.setTaskType(taskType);
            task.setIoPri(workService.generateIoPri(taskType));
            task.setOriginLoc(loc.getLocNo());
            task.setTargetSite("A");
            task.setTargetSite(operationPort.getFlag());
            task.setBarcode(loc.getBarcode());
            boolean res = taskService.save(task);
            if (!res) {
@@ -370,6 +377,7 @@
                TaskDetl taskDetl = new TaskDetl();
                taskDetl.sync(locDetl);
                taskDetl.setId(null);
                taskDetl.setTaskId(task.getId());
                taskDetl.setAnfme(dto.getAnfme());
                taskDetl.setStock(locDetl.getAnfme());
@@ -384,6 +392,7 @@
                for (LocDetlField locDetlField : locDetlFields) {
                    TaskDetlField taskDetlField = new TaskDetlField();
                    taskDetlField.sync(locDetlField);
                    taskDetlField.setId(null);
                    taskDetlField.setDetlId(taskDetl.getId());
                    boolean taskDetlFieldSave = taskDetlFieldService.save(taskDetlField);
                    if(!taskDetlFieldSave){
@@ -588,6 +597,7 @@
            List<OrderDetl> orderDetlList = detlMap.get(matUniqueKey);
            for (OrderDetl orderDetl : orderDetlList) {
                orderDetl = orderDetlService.getById(orderDetl);
                double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty() - orderDetl.getWorkQty()).orElse(0.0D);
                if (issued <= 0D) {
                    continue;
@@ -597,19 +607,18 @@
                orderOutMergeDto.sync(param);
                orderOutMergeDto.setOrderDetlId(orderDetl.getId());
                Double anfme = orderDetl.getAnfme();
                Double updateWorkQty = null;
                double diffAnfme = requireAnfme - anfme;
                if (diffAnfme >= 0) {
                    orderOutMergeDto.setAnfme(anfme);
                    updateWorkQty = anfme;
                    requireAnfme -= anfme;
                if (requireAnfme > issued) {
                    orderOutMergeDto.setAnfme(issued);
                    updateWorkQty = issued;
                    requireAnfme -= issued;
                }else {
                    orderOutMergeDto.setAnfme(requireAnfme);
                    updateWorkQty = requireAnfme;
                    requireAnfme -= requireAnfme;
                }
                orderOutMergeDtos.add(orderOutMergeDto);
                orderUtils.updateWorkQty(orderDetl.getId(), updateWorkQty);
@@ -680,6 +689,7 @@
                TaskDetl taskDetl = new TaskDetl();
                taskDetl.sync(locDetl);
                taskDetl.setId(null);
                taskDetl.setTaskId(task.getId());
                taskDetl.setAnfme(merge.getAnfme());
                taskDetl.setStock(locDetl.getAnfme());
@@ -694,6 +704,7 @@
                for (LocDetlField locDetlField : locDetlFields) {
                    TaskDetlField taskDetlField = new TaskDetlField();
                    taskDetlField.sync(locDetlField);
                    taskDetlField.setId(null);
                    taskDetlField.setDetlId(taskDetl.getId());
                    boolean taskDetlFieldSave = taskDetlFieldService.save(taskDetlField);
                    if(!taskDetlFieldSave){