From 0329286b3ba1ddbdcad4769b9ccd4d5b3f5d1e64 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期二, 24 九月 2024 09:20:49 +0800 Subject: [PATCH] 备货定时任务 --- src/main/java/com/zy/asrs/task/handler/GhjtHandler.java | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 106 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java b/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java index 60150c6..a3f5e4b 100644 --- a/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/GhjtHandler.java @@ -4,12 +4,13 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.exception.CoolException; +import com.zy.asrs.entity.LocDetl; +import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.WrkDetl; import com.zy.asrs.entity.WrkMast; -import com.zy.asrs.mapper.OrderDetlMapper; -import com.zy.asrs.mapper.OrderMapper; -import com.zy.asrs.mapper.WrkMastMapper; +import com.zy.asrs.mapper.*; import com.zy.asrs.service.ApiLogService; +import com.zy.asrs.service.WorkService; import com.zy.asrs.service.WrkDetlService; import com.zy.common.constant.MesConstant; import com.zy.common.utils.HttpHandler; @@ -19,10 +20,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -48,6 +46,15 @@ @Resource private OrderDetlMapper orderDetlMapper; + + @Resource + private LocDetlMapper locDetlMapper; + + @Resource + private LocMastMapper locMastMapper; + + @Resource + private WorkService workService; @Transactional public void startCkrwPushGwcs(WrkMast wrkMast) { @@ -158,4 +165,96 @@ return flag; } + /** + * 鑷姩澶囪揣澶勭悊 + */ + public void autoStockUpHandler(List<String> list,int columnNum) { + + // 鏍规嵁鍖呰缁勫彿鑾峰彇鎵�鍦ㄥ簱浣� + List<LocDetl> locDetls = locDetlMapper.selectLocNoByGroupNo(list); + if (locDetls.isEmpty()) { + return; + } + // 鐩稿悓鍒欏悎骞讹紝涓�涓簱浣嶄袱涓寘瑁呯粍鍙� + Map<String,List<String>> map = new HashMap<>(); + for(LocDetl locDetl : locDetls) { + List<String> brand = map.get(locDetl.getLocNo()); + if (brand == null) { + map.put(locDetl.getLocNo(),new ArrayList<String>(){{add(locDetl.getBrand());}}); + } else { + brand.add(locDetl.getBrand()); + map.put(locDetl.getLocNo(),brand); + } + } + + // 閬嶅巻鍫嗗灈鏈哄苟涓斿垽鏂槸鍚﹀瓨鍦ㄤ换鍔� + for (int i = 1; i <= 6; i++) { + // 瑕佸璐х殑搴撲綅 + String sourceLocNo = null; + // 澶囪揣鐩爣搴撲綅 + String staLocNo = null; + Integer wrkCount = wrkMastMapper.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", i)); + if(wrkCount > 0) { + log.warn("{}鍙峰爢鍨涙満宸插瓨鍦ㄤ换鍔�",i); + continue; + } + // 鏍规嵁鍫嗗灈鏈哄彿鏌ヨ鍒板搴旂殑娣卞簱浣嶅拰娴呭簱浣� 娣卞簱浣�4*n-3鍜�4*n 娴呭簱浣�4*n-2鍜�4*n-1 + int s1 = 4*i-3; + int s2 = 4*i; + int q1 = 4 * i - 2; + int q2 = 4 * i -1; + + // 鏍规嵁鍫嗗灈鏈哄彿鑾峰彇涓�涓祬搴撲綅 + for(String key : map.keySet()) { + int row = Integer.parseInt(key.substring(0, 2)); + if (row == q1 || row == q2) { + sourceLocNo = key; + break; + } + } + // 娴呭簱浣嶆病鏈夊垯鎵句竴涓繁搴撲綅 + if (sourceLocNo == null) { + for(String key : map.keySet()) { + int row = Integer.parseInt(key.substring(0, 2)); + if (row == s1 || row == s2) { + sourceLocNo = key; + break; + } + } + } + // 娌℃湁鎵惧埌婧愬簱浣� + if (sourceLocNo == null) { + log.warn("娌℃湁鎵惧埌婧愬簱浣�,鍫嗗灈鏈猴細{}",i); + continue; + } + // 瀵绘壘涓�涓璐х殑鐩爣搴撲綅锛屽厛娣卞悗娴� + List<LocMast> locMasts1 = locMastMapper.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("crn_no", i).in("row1", s1, s2) + .le("bay1", columnNum)); + if (locMasts1.isEmpty()) { + // 娣卞簱浣嶄负绌轰簡锛屽彇娴呭簱浣� + List<LocMast> locMasts2 = locMastMapper.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "O").eq("crn_no", i).in("row1", q1, q2) + .le("bay1", columnNum)); + if (!locMasts2.isEmpty()) { + staLocNo = locMasts2.get(0).getLocNo(); + } + } else { + staLocNo = locMasts1.get(0).getLocNo(); + } + + if(staLocNo == null) { + log.warn("{}鍙峰爢鍨涙満澶囪揣鍖烘弧浜�",i); + continue; + } + + // 澶囪揣鐨勬簮搴撲綅锛岀洰鏍囧簱浣嶉兘鑾峰彇鍒颁簡,鐢熸垚绉诲簱浠诲姟 + workService.locMove(sourceLocNo,staLocNo,29L); + + // 璁㈠崟鏄庣粏鏀规垚澶囪揣涓紝鍦ㄤ换鍔″畬鎴愭椂鍊欐敼鎴愬璐у畬鎴愶紝骞跺垽鏂暣涓鍗曟槸鍚﹀畬鎴� + orderDetlMapper.updateOrderDetlStatusByPackageNo(map.get(sourceLocNo), 1); + + // 绉婚櫎宸茬敓鎴愬璐у簱浣� + map.remove(sourceLocNo); + } + + } } -- Gitblit v1.9.1