From 44b6b79dd5dee0ebbd2d11b08abbc2be275bed58 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 09 二月 2026 16:10:17 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/task/WorkMastScheduler.java | 156 ++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 144 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 0d39e15..df0a5de 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,17 +1,33 @@
package com.zy.asrs.task;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.common.R;
+import com.core.exception.CoolException;
+import com.zy.api.controller.params.WorkTaskParams;
+import com.zy.api.service.WcsApiService;
+import com.zy.asrs.entity.LocAroundBind;
+import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.Task;
import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.mapper.TaskMapper;
+import com.zy.asrs.service.LocAroundBindService;
import com.zy.asrs.service.TaskService;
import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.impl.LocMastServiceImpl;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.WorkMastHandler;
+import com.zy.asrs.utils.Utils;
+import com.zy.common.model.enums.WorkNoType;
+import com.zy.common.service.CommonService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.Date;
import java.util.List;
@@ -29,9 +45,17 @@
private WorkMastHandler workMastHandler;
@Autowired
private TaskService taskService;
+ @Autowired
+ private WcsApiService wcsApiService;
+ @Autowired
+ private LocMastServiceImpl locMastService;
+ @Autowired
+ private CommonService commonService;
+ @Autowired
+ private LocAroundBindService locAroundBindService;
@Scheduled(cron = "0/3 * * * * ? ")
- private void execute(){
+ private void execute() {
List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
if (wrkMasts.isEmpty()) {
return;
@@ -49,23 +73,131 @@
}
}
+
+ /**
+ * 浠诲姟鑷姩涓嬪彂
+ *
+ * @author Ryan
+ * @date 2026/1/10 14:42
+ */
@Scheduled(cron = "0/3 * * * * ? ")
- private void executeTask(){
- List<Task> wrkMasts = taskService.selectToBeCompleteData();
+ private void autoPubTasks() {
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", Arrays.asList(1L, 11L)));
if (wrkMasts.isEmpty()) {
return;
}
- for (Task wrkMast : wrkMasts) {
- ReturnT<String> returnT = workMastHandler.AgvStart(wrkMast);
- if (!returnT.isSuccess()) {
- wrkMast.setUpdMk("X");
- wrkMast.setErrorMemo(returnT.getMsg());
- wrkMast.setErrorTime(new Date());
- if (!taskService.updateById(wrkMast)) {
- log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", wrkMast.getWrkNo());
+ Collections.shuffle(wrkMasts);
+ for (WrkMast wrkMast : wrkMasts) {
+ //鏌ョ湅涓嬪彂浠诲姟鏄惁涓哄喕缁撳簱浣嶏紝鏄喕缁撳簱浣嶅垯璺宠繃涓嬪彂浠诲姟
+ LocAroundBind locAroundBind = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>()
+ .eq("b_loc_no", wrkMast.getLocNo())
+ .eq("freeze", 1));
+ if (Cools.isEmpty(locAroundBind)) {
+ locAroundBind = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>()
+ .eq("b_loc_no", wrkMast.getSourceLocNo())
+ .eq("freeze", 1));
+ if (!Cools.isEmpty(locAroundBind)) {
+ continue;
+ }
+ }else {
+ continue;
+ }
+ Integer crnNo = wrkMast.getCrnNo();
+ //璇ュ爢鍨涙満宸茬粡涓嬪彂浠诲姟缁檞cs鍚庝笉鍐嶄笅鍙戞柊鐨勬惉杩愪换鍔�
+ List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).in("wrk_sts", Arrays.asList(2L, 12L)));
+ if (!wrkMasts1.isEmpty()) {
+ continue;
+ }
+ //婧愬簱浣嶄负鍐荤粨搴撲綅鏃剁姝笅鍙戞惉杩愪换鍔$粰鍫嗗灈鏈�
+ if (!Cools.isEmpty(wrkMast.getSourceLocNo())){
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_no", wrkMast.getSourceLocNo())
+ .eq("frozen",0));
+ if (Cools.isEmpty(locMast)) {
+ continue;
}
}
- }
+
+ //鐩爣搴撲綅涓哄喕缁撳簱浣嶆椂绂佹涓嬪彂鎼繍浠诲姟缁欏爢鍨涙満
+ if (!Cools.isEmpty(wrkMast.getLocNo())){
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_no", wrkMast.getLocNo())
+ .eq("frozen",0));
+ if (Cools.isEmpty(locMast)) {
+ continue;
+ }
+ }
+
+ String wcsSourceLocNo = Cools.isEmpty(wrkMast.getSourceLocNo()) ? "" : Utils.WMSLocToWCSLoc(wrkMast.getSourceLocNo());
+ String wcsLocNo = Cools.isEmpty(wrkMast.getLocNo()) ? "" : Utils.WMSLocToWCSLoc(wrkMast.getLocNo());
+ WorkTaskParams params = new WorkTaskParams();
+ //鍑哄簱鍜岀Щ搴�
+ if(wrkMast.getIoType()==101&&!Cools.isEmpty(wrkMast.getStaNo())&& !wrkMast.getStaNo().equals("0")) {
+ params.setType("out")
+ .setTaskNo(wrkMast.getWrkNo()+"")
+ .setSourceLocNo(wcsSourceLocNo)
+ .setLocNo(wcsLocNo)
+ .setStaNo(wrkMast.getStaNo())
+ .setTaskPri(wrkMast.getIoPri().intValue())
+ .setBarcode(wrkMast.getBarcode());
+ }else if(wrkMast.getIoType()==2&& !Cools.isEmpty(wrkMast.getSourceStaNo())){
+ params.setType("in")
+ .setTaskNo(wrkMast.getWrkNo()+"")
+ .setSourceStaNo(wrkMast.getSourceStaNo())
+ .setLocNo(wcsLocNo)
+ .setTaskPri(wrkMast.getIoPri().intValue())
+ .setBarcode(wrkMast.getBarcode());
+ } else {
+ params.setType("move")
+ .setTaskNo(wrkMast.getWrkNo()+"")
+ .setSourceLocNo(wcsSourceLocNo)
+ .setLocNo(wcsLocNo)
+ .setBarcode(wrkMast.getBarcode());
+ }
+ R r = wcsApiService.pubWrkToWcs(params);
+ if (r.get("code").equals(200)){
+ break;
+ }
+ };
}
+ /**
+ * 鑷姩鐢熸垚璺ㄥ尯鍏ヤ换鍔�
+ *
+ * @author Ryan
+ * @date 2026/1/10 14:42
+ */
+ @Scheduled(cron = "0/3 * * * * ? ")
+ private void autoInStack() {
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 15).eq("online_yn","N"));
+ if (wrkMasts.isEmpty()) {
+ return;
+ }
+ for (WrkMast wrkMast : wrkMasts) {
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo()));
+ // 鏋勯�犺法鍖哄叆搴撲换鍔�
+ WrkMast inMast = new WrkMast();
+ // 鐢熸垚宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(1));
+ inMast.setWrkNo(workNo); // 鐢熸垚鏂颁换鍔″彿
+ inMast.setBarcode(wrkMast.getBarcode()); // 鎵樼洏鐮佷繚鎸佷竴鑷�
+ inMast.setIoType(2); // 璺ㄥ尯鍏ュ簱绫诲瀷
+ inMast.setWrkSts(1L); // 寰呬笅鍙�
+ inMast.setLocNo(wrkMast.getLocNo()); // 鍘熺洰鏍囧簱浣�
+ inMast.setIoPri(13.0);
+ inMast.setSourceStaNo(wrkMast.getStaNo());
+ inMast.setWrkCode(wrkMast.getWrkNo()+""); // 鍏宠仈鍘熷嚭搴撲换鍔�
+ inMast.setAppeUser(wrkMast.getAppeUser()); // 鐢宠浜�
+ inMast.setAppeTime(new Date());
+ inMast.setIoTime(new Date());
+ inMast.setCrnNo(locMast.getCrnNo());
+ if(!wrkMastService.insert(inMast)){
+ throw new CoolException("璺ㄥ尯鍏ュ簱浠诲姟鐢熸垚澶辫触锛�");
+ }else {
+ wrkMast.setOnlineYn("Y");
+ wrkMastService.updateById(wrkMast);
+ }
+ }
+
+ }
}
--
Gitblit v1.9.1