From ab41622d30946f83b34e5a5d881741237628f6f1 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期四, 23 十月 2025 14:26:39 +0800
Subject: [PATCH] 13
---
src/main/java/com/zy/asrs/task/WorkMastScheduler.java | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 235 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index 10bffd4..7f58192 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,12 +1,26 @@
package com.zy.asrs.task;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.param.ShuttleMoveTask;
+import com.zy.asrs.entity.param.ShuttleOutTask;
+import com.zy.asrs.entity.param.ShuttleTask;
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.common.utils.HttpHandler;
+import com.zy.system.entity.Config;
+import com.zy.system.service.ConfigService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -26,8 +40,16 @@
@Autowired
private WorkMastHandler workMastHandler;
+ @Value("${shuttleWcs.url}")
+ private String shuttleWcsUrl;
+ @Autowired
+ private LocMastServiceImpl locMastService;
+ @Autowired
+ private ConfigService configService;
+
+
@Scheduled(cron = "0/3 * * * * ? ")
- private void execute(){
+ private void execute() {
List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
if (wrkMasts.isEmpty()) {
return;
@@ -45,4 +67,216 @@
}
}
+ @Scheduled(cron = "0/3 * * * * ? ") //鍏ュ簱浠诲姟涓嬪彂
+ private void ShuttleInTaskSend() {
+ procesMode();
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .eq("wrk_sts", 2).in("io_type", 1, 10, 53, 54, 57).eq("crn_no", 7));
+ if (Cools.isEmpty(wrkMasts)) {
+ return;
+ }
+
+ try {
+ for (WrkMast wrkMast : wrkMasts) {
+ if (wrkMast.getStaNo() == 1031) {
+ Config config = configService.selectConfigByCode("2.5F_Mode");
+ if (Cools.isEmpty(config) || config.getValue().equals("false")) {
+ return;
+ }
+ if (config.getValue().equalsIgnoreCase("1")) {
+ log.info("妯″紡涓嶅2");
+ return;
+ }
+ }
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo()));
+ if (locMast == null) {
+ throw new CoolException("涓嬪彂鍥涘悜杞cs浠诲姟澶辫触");
+ }
+
+ String loc;
+ if ((locMast.getRow1() - 4) >= 10) {
+ loc = (locMast.getRow1() - 4) + locMast.getLocNo().substring(2);
+ } else {
+ loc = "0" + (locMast.getRow1() - 4) + locMast.getLocNo().substring(2);
+ }
+ //String loc = (locMast.getRow1() - 4) + "-" + locMast.getBay1() + "-" + locMast.getLev1();
+ ShuttleTask param = new ShuttleTask();
+ param.setTaskNo(wrkMast.getWrkNo().toString());
+ param.setLocNo(loc);
+ param.setTaskNo2(Cools.isEmpty(wrkMast.getPltType()) ? null : wrkMast.getPltType().toString());
+ param.setSourceStaNo(wrkMast.getSourceStaNo());
+ param.setStaNo(wrkMast.getStaNo());
+ param.setBarcode(wrkMast.getBarcode());
+ //param.setPriority("11");
+ String response = new HttpHandler.Builder()
+ .setUri(shuttleWcsUrl)
+ .setPath("/openapi/createInTask")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ Integer code = jsonObject.getInteger("code");
+ if (code.equals(200)) {
+ wrkMast.setWrkSts(105L);
+ wrkMast.setModiTime(new Date());
+ if (!wrkMastService.updateById(wrkMast)) {
+ log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", wrkMast.getWrkNo());
+ }
+ }
+ }
+ } catch (Exception e) {
+ throw new CoolException("涓嬪彂鍥涘悜杞cs浠诲姟澶辫触");
+ }
+
+ }
+
+ @Scheduled(cron = "0/3 * * * * ? ") //鍑哄簱搴撲换鍔′笅鍙�
+ private void ShuttleOutTaskSend() {
+ procesMode();
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .in("io_type", 101, 110, 103, 104, 107)
+ .eq("wrk_sts", 11).eq("crn_no", 7));
+ if (Cools.isEmpty(wrkMasts)) {
+ return;
+ }
+ try {
+ for (WrkMast wrkMast : wrkMasts) {
+ if (wrkMast.getStaNo() == 1031) {
+ Config config = configService.selectConfigByCode("2.5F_Mode");
+ if (Cools.isEmpty(config) || config.getValue().equals("false")) {
+ return;
+ }
+ if (config.getValue().equalsIgnoreCase("2")) {
+ log.info("妯″紡涓嶅2");
+ return;
+ }
+ }
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
+ if (locMast == null) {
+ throw new CoolException("涓嬪彂鍥涘悜杞cs浠诲姟澶辫触");
+ }
+ String loc;
+ if ((locMast.getRow1() - 4) >= 10) {
+ loc = (locMast.getRow1() - 4) + locMast.getLocNo().substring(2);
+ } else {
+ loc = "0" + (locMast.getRow1() - 4) + locMast.getLocNo().substring(2);
+ }
+ //String loc = (locMast.getRow1() - 4) + "-" + locMast.getBay1() + "-" + locMast.getLev1();
+ ShuttleOutTask param = new ShuttleOutTask();
+ param.setTaskNo(wrkMast.getWrkNo().toString());
+ param.setSourceLocNo(loc);
+ param.setStaNo(wrkMast.getStaNo());
+ //param.setPriority("11");
+ String response = new HttpHandler.Builder()
+ .setUri(shuttleWcsUrl)
+ .setPath("/openapi/createOutTask")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ Integer code = jsonObject.getInteger("code");
+ if (code.equals(200)) {
+ wrkMast.setWrkSts(105L);
+ wrkMast.setModiTime(new Date());
+ if (!wrkMastService.updateById(wrkMast)) {
+ log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", wrkMast.getWrkNo());
+ }
+ }
+ }
+ } catch (Exception e) {
+ throw new CoolException("涓嬪彂鍥涘悜杞cs浠诲姟澶辫触");
+ }
+
+ }
+
+ // @Scheduled(cron = "0/3 * * * * ? ") //绉诲簱浠诲姟涓嬪彂
+ private void ShuttleMoveTaskSend() {
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 11).eq("io_type", 11));
+ if (wrkMasts.isEmpty()) {
+ return;
+ }
+ try {
+ for (WrkMast wrkMast : wrkMasts) {
+ LocMast destLoc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo()));
+ LocMast originLoc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
+ if (originLoc == null || destLoc == null) {
+ throw new CoolException("涓嬪彂鍥涘悜杞cs浠诲姟澶辫触");
+ }
+ String originLoc1 = (originLoc.getRow1() - 16) + "-" + originLoc.getBay1() + "-" + originLoc.getLev1();
+ String destLoc1 = (destLoc.getRow1() - 16) + "-" + destLoc.getBay1() + "-" + destLoc.getLev1();
+ ShuttleMoveTask param = new ShuttleMoveTask();
+ param.setTaskNo(wrkMast.getWrkNo().toString());
+ param.setOriginLoc(originLoc1);
+ param.setDestLoc(destLoc1);
+ param.setRecord(true);
+ param.setPriority("11");
+ String response = new HttpHandler.Builder()
+ .setUri(shuttleWcsUrl)
+ .setPath("/openapi/createLadenMoveTakeTask")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ Integer code = jsonObject.getInteger("code");
+ if (code.equals(200)) {
+ wrkMast.setWrkSts(105L);
+ if (!wrkMastService.updateById(wrkMast)) {
+ log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", wrkMast.getWrkNo());
+ }
+ }
+ }
+ } catch (Exception e) {
+ throw new CoolException("涓嬪彂鍥涘悜杞cs浠诲姟澶辫触");
+ }
+
+ }
+
+ //@Scheduled(cron = "0/3 * * * * ? ") //绉诲簱浠诲姟涓嬪彂
+ public void switchMode() {
+ procesMode();
+ }
+
+ //1:浠庡洓鍚戝簱鍒板爢鍨涙満搴�
+ //2:浠庡爢鍨涙満搴撳埌鍥涘悜搴�
+ private void procesMode() {
+ Config config = configService.selectConfigByCode("2.5F_Mode");
+ if (Cools.isEmpty(config) || config.getValue().equals("false")) {
+ return;
+ }
+ List<WrkMast> wrkMastList1 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .in("io_type", 1, 10).eq("crn_no", 1).eq("sta_no", 1131));
+ List<WrkMast> wrkMastList2 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .in("io_type", 101, 110).eq("crn_no", 7).eq("sta_no", 1031));
+ if (wrkMastList1.isEmpty() && wrkMastList2.isEmpty()) {
+ List<WrkMast> wrkMastList3 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .in("io_type", 101, 110).eq("crn_no", 1).eq("sta_no", 1135));
+ List<WrkMast> wrkMastList4 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .in("io_type", 1, 10).eq("crn_no", 7).eq("sta_no", 1032));
+ if (!wrkMastList3.isEmpty() || !wrkMastList4.isEmpty()) {
+ if (!config.getValue().equalsIgnoreCase("2")) {
+ log.info("瀛樺湪璋冩嫧浠诲姟鍘诲洓鍚戝簱,鍒囨崲妯″紡");
+ config.setValue("2");
+ configService.updateById(config);
+ }
+ } else {
+ if (!config.getValue().equalsIgnoreCase("0")) {
+ log.info("涓嶅瓨鍦ㄤ换鍔�");
+ config.setValue("0");
+ configService.updateById(config);
+ }
+ }
+ } else {
+ List<WrkMast> wrkMastList3 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .in("io_type", 101, 110).eq("crn_no", 1).eq("sta_no", 1135));
+ List<WrkMast> wrkMastList4 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .in("io_type", 1, 10).eq("crn_no", 7).eq("sta_no", 1032));
+ if (wrkMastList3.isEmpty() && wrkMastList4.isEmpty()) {
+ if (!config.getValue().equalsIgnoreCase("1")) {
+ log.info("瀛樺湪璋冩嫧浠诲姟鍘籨uiduo,鍒囨崲妯″紡");
+ config.setValue("1");
+ configService.updateById(config);
+ }
+ }
+ }
+ }
}
--
Gitblit v1.9.1