From 816536ec6e6c394689ca050a9a4f59e5ce7d67ad Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期四, 12 十月 2023 19:02:53 +0800 Subject: [PATCH] 自动补货单 --- src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java | 145 ++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 114 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java index 2a9cb89..3b95b94 100644 --- a/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java @@ -2,20 +2,18 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.exception.CoolException; -import com.zy.asrs.entity.LocDetl; -import com.zy.asrs.entity.LocMast; -import com.zy.asrs.entity.Order; -import com.zy.asrs.entity.OrderDetl; -import com.zy.asrs.service.LocDetlService; -import com.zy.asrs.service.LocMastService; -import com.zy.asrs.service.OrderDetlService; -import com.zy.asrs.service.WorkService; +import com.zy.asrs.entity.*; +import com.zy.asrs.service.*; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; +import com.zy.common.model.enums.WorkNoType; +import com.zy.common.service.CommonService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -30,10 +28,18 @@ @Autowired private LocMastService locMastService; @Autowired - private WorkService workService; + private CommonService commonService; + @Autowired + private WrkMastService wrkMastService; + @Autowired + private WrkDetlService wrkDetlService; + @Autowired + private OrderService orderService; + @Transactional public ReturnT<String> start(Order order) { + Date now = new Date(); Set<String> locNos = pakoutLoc(order); for (String locNo : locNos){ @@ -42,10 +48,16 @@ throw new CoolException("搴撲綅鐘舵�佸凡鍙樻洿"); } //鐢熸垚宸ヤ綔妗� - + WrkMast wrkMast = createWrkMast(locNo,locMast.getBarcode(),now); //鐢熸垚宸ヤ綔妗f槑缁� + List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo); + createWrkDetl(locDetls, wrkMast,order.getOrderNo(),now); //淇敼搴撲綅鐘舵�� + locMast.setLocSts("R"); + locMastService.updateByLocNo(locMast); } + order.setSettle(2L); + orderService.updateById(order); return SUCCESS; @@ -56,44 +68,115 @@ Set<String> locNos = new HashSet<>(); //鏍规嵁璁㈠崟鐢熸垚鍥涢」搴撳嚭搴撳伐浣滄。 List<OrderDetl> orderDetlList = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", order.getOrderNo())); - orderDetlList.forEach(orderDetl -> { + + for(OrderDetl orderDetl : orderDetlList){ + if(orderDetl.getAnfme() - orderDetl.getQty() <= 0){ + continue; + } + String matnr = orderDetl.getMatnr(); Double orderAnfme = orderDetl.getAnfme(); - List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>() - .eq("matnr", matnr) - .eq("loc_sts","F") - .groupBy("loc_no")); - for (LocDetl locDetl : locDetls){ - String locNo = locDetl.getLocNo(); - //璁㈠崟寰呭嚭鏁伴噺鍑忓幓搴撳瓨鏁伴噺 - orderAnfme -= locDetl.getAnfme(); - //娣诲姞寰呭嚭搴撳簱浣� - locNos.add(locNo); + List<String> locNosSearch = locDetlService.selectLocNo(matnr); + for(String locNo : locNosSearch){ + List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo); + locNos.add(locNo); + for (LocDetl locDetl :locDetls){ + if(matnr.equals(locDetl.getMatnr())){ + orderAnfme -= locDetl.getAnfme(); + } + } if(orderAnfme <= 0){ orderDetl.setQty(orderDetl.getAnfme() - orderAnfme); orderDetlService.updateById(orderDetl); break; } } + } - }); +// orderDetlList.forEach(orderDetl -> { +// +// if(orderDetl.getAnfme() - orderDetl.getQty() <= 0){ +// cont +// } +// +// String matnr = orderDetl.getMatnr(); +// Double orderAnfme = orderDetl.getAnfme(); +// +// List<String> locNosSearch = locDetlService.selectLocNo(matnr); +// +// for(String locNo : locNosSearch){ +// List<LocDetl> locDetls = locDetlService.selectByLocNo(locNo); +// locNos.add(locNo); +// for (LocDetl locDetl :locDetls){ +// if(matnr.equals(locDetl.getMatnr())){ +// orderAnfme -= locDetl.getAnfme(); +// } +// } +// if(orderAnfme <= 0){ +// orderDetl.setQty(orderDetl.getAnfme() - orderAnfme); +// orderDetlService.updateById(orderDetl); +// break; +// } +// } +// +// }); return locNos; } - public static void main(String[] args) { - for (int i=0; i<10; i++){ - for (int y=0; y<10; y++){ - System.out.println(i); - System.out.println(y); - if(y == 5){ - break; - } - } + private WrkMast createWrkMast(String locNo,String barCode,Date now){ + int ioType = 101; + int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(21L); // 宸ヤ綔鐘舵�侊細21.鐢熸垚鍑哄簱浠诲姟 + wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬� + wrkMast.setIoPri(300D); // 浼樺厛绾э細13 + //wrkMast.setOutMost(outMost?1:0);; + //wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo()); + //wrkMast.setSourceStaNo(loc); // 婧愮珯 + wrkMast.setStaNo(300); // 鐩爣绔� + wrkMast.setSourceLocNo(locNo); // 婧愬簱浣� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("N"); + wrkMast.setBarcode(barCode); + //wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + //wrkMast.setModiUser(userId); + wrkMast.setModiTime(now); + + wrkMast.setMk("Y"); + if (!wrkMastService.insert(wrkMast)) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+locNo); } + return wrkMast; } + private void createWrkDetl(List<LocDetl> locDetls, WrkMast wrkMast,String orderNo, Date now){ + locDetls.forEach(locDetl -> { + WrkDetl wrkDetl = new WrkDetl(); + BeanUtils.copyProperties(locDetl,wrkDetl); + wrkDetl.setZpallet(wrkMast.getBarcode()); + wrkDetl.setIoTime(now); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + //wrkDetl.setBatch(locDetl.getBatch()); + wrkDetl.setOrderNo(orderNo); + //wrkDetl.setAnfme(locDetl.getAnfme()); // 鏁伴噺 + wrkDetl.setAppeTime(now); + //wrkDetl.setAppeUser(userId); + wrkDetl.setModiTime(now); + //wrkDetl.setSuppCode(locDetl.getSuppCode()); + //wrkDetl.setModiUser(userId); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + } + }); + } } -- Gitblit v1.9.1