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