From 7bd6e380475d1f4ec7a030dffcf0c217b879b0a5 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期五, 13 十月 2023 09:39:14 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/tzskasrs' into tzskasrs --- src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java | 182 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 182 insertions(+), 0 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 new file mode 100644 index 0000000..3b95b94 --- /dev/null +++ b/src/main/java/com/zy/asrs/task/handler/AutoReplenishmentHandler.java @@ -0,0 +1,182 @@ +package com.zy.asrs.task.handler; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.exception.CoolException; +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; + +@Service +public class AutoReplenishmentHandler extends AbstractHandler<String> { + + @Autowired + private OrderDetlService orderDetlService; + @Autowired + private LocDetlService locDetlService; + @Autowired + private LocMastService locMastService; + @Autowired + 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){ + LocMast locMast = locMastService.selectByLoc(locNo); + if(!"F".equals(locMast.getLocSts())){ + 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; + } + + private Set<String> pakoutLoc(Order order){ + //闇�瑕佸嚭搴撶殑搴撲綅 + Set<String> locNos = new HashSet<>(); + //鏍规嵁璁㈠崟鐢熸垚鍥涢」搴撳嚭搴撳伐浣滄。 + List<OrderDetl> orderDetlList = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", order.getOrderNo())); + + for(OrderDetl orderDetl : orderDetlList){ + if(orderDetl.getAnfme() - orderDetl.getQty() <= 0){ + continue; + } + + 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; + } + } + } + +// 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; + } + + 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