From 1a987c661d60c77b258a3be42c09a3fd2ba3ae06 Mon Sep 17 00:00:00 2001 From: LSH Date: 星期一, 14 八月 2023 15:34:59 +0800 Subject: [PATCH] #订单出库自动出浅库位 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 128 ++++++++++++++++++++++--------- src/main/java/com/zy/asrs/entity/WrkMast.java | 9 ++ src/main/webapp/static/js/wrkMast/wrkMast.js | 1 src/main/java/com/zy/common/model/LocDto.java | 13 +++ src/main/webapp/static/js/common.js | 2 src/main/java/com/zy/asrs/controller/OutController.java | 41 ++++++++++ 6 files changed, 153 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java index dc7c1b1..51b87f7 100644 --- a/src/main/java/com/zy/asrs/controller/OutController.java +++ b/src/main/java/com/zy/asrs/controller/OutController.java @@ -10,6 +10,7 @@ import com.core.common.R; import com.zy.asrs.entity.*; import com.zy.asrs.service.*; +import com.zy.asrs.utils.Utils; import com.zy.common.model.LocDto; import com.zy.common.model.OrderDto; import com.zy.common.model.OrderMergeVo; @@ -177,7 +178,45 @@ taskDtos.add(taskDto); } } - + List<String> locNos = new ArrayList<>(); + for (TaskDto taskDto : taskDtos) { + if (!locNos.contains(taskDto.getLocNo())){ + locNos.add(taskDto.getLocNo()); + } + } + List<TaskDto> taskDtos1 = new ArrayList<>(); + for (TaskDto taskDto : taskDtos) { + String locNo = taskDto.getLocNo(); + List<String> groupOuterSingleLoc = Utils.getGroupOuterSingleLoc(locNo); + if (Utils.getBay(locNo)>=21){ + groupOuterSingleLoc = Utils.getGroupOuterSingleLocLowFrequency(locNo); + } + for (String locNo1 : groupOuterSingleLoc){ + if (!locNos.contains(locNo1)){ + locNos.add(locNo1); + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locNo1)); + if (locMast.getLocSts().equals("F")){ + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo1)); + if (Cools.isEmpty(locDetls) || locDetls.size()==0) { + TaskDto taskDto1 = new TaskDto(locNo1, taskDto.getStaNo()); + taskDtos1.add(taskDto1); + }else { + List<LocDto> locDtos1 = new ArrayList<>(); + for (LocDetl locDetl:locDetls){ + LocDto locDto = new LocDto(locDetl,taskDto.getLocDtos().get(0),"浼寸敓鍑哄簱"); + locDtos1.add(locDto); + } + TaskDto taskDto1 = new TaskDto(locNo1, taskDto.getStaNo(),locDtos1); + taskDtos1.add(taskDto1); + } + }else if (locMast.getLocSts().equals("D")){ + TaskDto taskDto1 = new TaskDto(locNo1, taskDto.getStaNo()); + taskDtos1.add(taskDto1); + } + } + } + } + taskDtos.addAll(taskDtos1); // ----------------------------------------------------------------------------------------------- List<String> excludeLocNos = taskDtos.stream().map(TaskDto::getLocNo).distinct().collect(Collectors.toList()); for (TaskDto taskDto : taskDtos) { diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java index 34963fb..1c3bb5f 100644 --- a/src/main/java/com/zy/asrs/entity/WrkMast.java +++ b/src/main/java/com/zy/asrs/entity/WrkMast.java @@ -15,6 +15,7 @@ import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.List; @Data @TableName("asr_wrk_mast") @@ -418,6 +419,14 @@ } return null; } + public String getOrderNo$(){ + WrkDetlService wrkDetlService = SpringUtils.getBean(WrkDetlService.class); + List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(this.wrkNo); + if (!Cools.isEmpty(wrkDetls) && wrkDetls.size()!=0){ + return String.valueOf(wrkDetls.get(0).getOrderNo()); + } + return null; + } public String getIoTime$(){ if (Cools.isEmpty(this.ioTime)){ diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index 603fc03..3fe8ad8 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -735,6 +735,54 @@ @Transactional public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId) { Date now = new Date(); + if (Cools.isEmpty(taskDto.getLocDtos()) || taskDto.getLocDtos().size()==0){ + // 鑾峰彇搴撲綅 + LocMast locMast = locMastService.selectById(taskDto.getLocNo()); + // 鑾峰彇璺緞 + int ioType = locMast.getLocSts().equals("D") ? 110 : 101; + StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo()); + // 鐢熸垚宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬� + Double ioPri = wrkMastService.getIoPri(ioType, taskDto.getLocNo()); + wrkMast.setIoPri(ioPri); // 浼樺厛绾э細13 + wrkMast.setOutMost(locMastService.isOutMost(taskDto.getLocNo(), false) ? 1 : 0); + wrkMast.setCrnNo(locMast.getCrnNo()); + wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯 + wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� + wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣� + wrkMast.setFullPlt(ioType==110? "N":"Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk(ioType==110? "Y":"N"); // 绌烘澘 + wrkMast.setLinkMis("N"); + wrkMast.setBarcode(locMast.getBarcode()); + wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiUser(userId); + wrkMast.setModiTime(now); + if (!wrkMastService.insert(wrkMast)) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + taskDto.getLocNo()); + } + // 淇敼搴撲綅鐘舵��: F銆丏.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓� + locMast = locMastService.selectById(taskDto.getLocNo()); + if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ) { + locMast.setLocSts("R"); + locMast.setModiUser(userId); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { + throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + taskDto.getLocNo()); + } + } else { + throw new CoolException(taskDto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��"); + } + return; + } List<LocDto> locDtos = taskDto.getLocDtos(); for (LocDto locDto : locDtos) { if (!taskDto.getLocNo().equals(locDto.getLocNo()) && !taskDto.getStaNo().equals(locDto.getStaNo())) { @@ -801,51 +849,53 @@ if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } - // 淇敼璁㈠崟鏄庣粏 - if (!BaseController.isJSON(locDto.getOrderNo())) { - String[] orderNos = GetOrderNo(locDto.getOrderNo()); - if (!Cools.isEmpty(orderNos)){ - Double anfme = locDto.getAnfme(); - for (String orderNo : orderNos) { - OrderDetl orderDetl = orderDetlService.selectItem(orderNo, locDto.getMatnr(), locDto.getBatch()); - if (orderDetl == null) { - orderDetl = orderDetlService.selectItem(orderNo, locDto.getMatnr(), null); + if (!wrkDetl.getOrderNo().equals("浼寸敓鍑哄簱")){ + // 淇敼璁㈠崟鏄庣粏 + if (!BaseController.isJSON(locDto.getOrderNo())) { + String[] orderNos = GetOrderNo(locDto.getOrderNo()); + if (!Cools.isEmpty(orderNos) && orderNos.length!=0){ + Double anfme = locDto.getAnfme(); + for (String orderNo : orderNos) { + OrderDetl orderDetl = orderDetlService.selectItem(orderNo, locDto.getMatnr(), locDto.getBatch()); + if (orderDetl == null) { + orderDetl = orderDetlService.selectItem(orderNo, locDto.getMatnr(), null); + } + if (orderDetl.getAnfme() <= anfme) { + if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getAnfme())) { + throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); + } + anfme = anfme - orderDetl.getAnfme(); + } else { + if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), anfme)) { + throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); + } + } + orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); } - if (orderDetl.getAnfme() <= anfme) { - if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getAnfme())) { - throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); - } - anfme = anfme - orderDetl.getAnfme(); - } else { - if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), anfme)) { - throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); - } + }else { + OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); + if (orderDetl == null) { + orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null); + } + if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) { + throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); } orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); } - }else { - OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); - if (orderDetl == null) { - orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null); - } - if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) { - throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); - } - orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); - } - } else { - // 璁㈠崟鍚堝苟鍑哄簱 - List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class); + } else { + // 璁㈠崟鍚堝苟鍑哄簱 + List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class); - for (OrderDto orderDto : orderDtoList) { - OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); - if (orderDetl == null) { - orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null); + for (OrderDto orderDto : orderDtoList) { + OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); + if (orderDetl == null) { + orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null); + } + if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDto.getAnfme())) { + throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); + } + orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); } - if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDto.getAnfme())) { - throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); - } - orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); } } } diff --git a/src/main/java/com/zy/common/model/LocDto.java b/src/main/java/com/zy/common/model/LocDto.java index 59dcf61..dd083d7 100644 --- a/src/main/java/com/zy/common/model/LocDto.java +++ b/src/main/java/com/zy/common/model/LocDto.java @@ -1,6 +1,7 @@ package com.zy.common.model; import com.core.common.Cools; +import com.zy.asrs.entity.LocDetl; import lombok.Data; import java.util.List; @@ -58,6 +59,18 @@ this.anfme = anfme; } + public LocDto(LocDetl locDetl,LocDto locDto,String orderNo) { + this.locNo = locDetl.getLocNo(); + this.matnr = locDetl.getMatnr(); + this.batch = locDetl.getBatch(); + this.anfme = locDetl.getAnfme(); + this.maktx = locDetl.getMaktx(); + this.specs = locDetl.getSpecs(); + this.orderNo = orderNo; + this.staNos = locDto.getStaNos(); + this.staNo = locDto.getStaNo(); + } + public String getTitle() { return this.matnr + "锛�" + this.maktx + "锛�"; } diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js index 44076bf..f399cd3 100644 --- a/src/main/webapp/static/js/common.js +++ b/src/main/webapp/static/js/common.js @@ -231,7 +231,7 @@ {field: 'matnr', align: 'center',title: '鍟嗗搧缂栧彿', sort:true, width: 290} ,{field: 'specs', align: 'center',title: '瑙勬牸', width: 200} ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', sort:true, width: 150} - ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: true} + ,{field: 'orderNo', align: 'center',title: '鍗曟嵁缂栧彿', hide: false} ,{field: 'batch', align: 'center',title: '鎵瑰彿', sort:true, hide: true} ,{field: 'anfme', align: 'center',title: '鏁伴噺'} ,{field: 'zpallet', align: 'center',title: '鎵樼洏鏉$爜'} diff --git a/src/main/webapp/static/js/wrkMast/wrkMast.js b/src/main/webapp/static/js/wrkMast/wrkMast.js index 087b08d..e0617d6 100644 --- a/src/main/webapp/static/js/wrkMast/wrkMast.js +++ b/src/main/webapp/static/js/wrkMast/wrkMast.js @@ -24,6 +24,7 @@ ,{field: 'ioTime$', align: 'center',title: '宸ヤ綔鏃堕棿',sort: true, width: 160} ,{field: 'wrkSts$', align: 'center',title: '宸ヤ綔鐘舵��'} ,{field: 'ioType$', align: 'center',title: '鍏ュ嚭搴撶被鍨�'} + ,{field: 'orderNo$', align: 'center',title: '鍗曟嵁缂栧彿'} ,{field: 'ioPri', align: 'center',title: '浼樺厛绾�'} ,{field: 'crnNo$', align: 'center',title: '鍫嗗灈鏈�'} ,{field: 'sourceStaNo$', align: 'center',title: '婧愮珯'} -- Gitblit v1.9.1