From b187814d7cfa5ace1ed9c203372524c69fe56553 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期三, 31 十二月 2025 08:11:44 +0800
Subject: [PATCH] 1.完善AGV任务任务下发 2.拣料回库数据更新维护
---
src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java | 195 ++++++++++++++++++++++++++++++++++++------------
1 files changed, 146 insertions(+), 49 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java b/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
index fbd0213..a0cf2b6 100644
--- a/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
@@ -3,10 +3,12 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
+import com.zy.asrs.entity.BasDevp;
import com.zy.asrs.entity.Task;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.TaskService;
import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.impl.BasDevpServiceImpl;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.AGVTaskReportHandler;
import org.slf4j.Logger;
@@ -31,58 +33,67 @@
private Boolean switchErpReportOld;
@Autowired
private WrkMastService wrkMastService;
+ @Autowired
+ private BasDevpServiceImpl basDevpService;
/**
* 婊℃澘鍜岀┖鏉垮嚭搴撲换鍔★紝鍑哄埌杈撻�佺嚎鍚庡垱寤篈GV鎼繍浠诲姟
*/
@Scheduled(cron = "0/3 * * * * ? ")
- private void createAGVTask(){
- if (!switchErpReportOld){
+ private void createAGVTask() {
+ if (!switchErpReportOld) {
return;
}
- List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 300));
- if (wrkMasts.isEmpty()){
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 30));
+ if (wrkMasts.isEmpty()) {
return;
}
- for (WrkMast wrkMast : wrkMasts){
+ for (WrkMast wrkMast : wrkMasts) {
//鏌ヨ鏄惁鏈夋簮绔欏拰鐩爣绔欐湁涓�鏍风殑agv鎼繍浠诲姟
//濡傛灉鏈夊垯璺宠繃鏈agv鎼繍浠诲姟涓嬪彂
+
+ //mes缁欑殑agv鐩爣绔欑偣闇�瑕佽В鏋� Q锛氬尯鍩� 锛� Z锛� 绔欑偣
+ String[] split = wrkMast.getMemo().split("-");
+ //鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔� 4.绔欏埌鍖哄煙
+ Integer ioType = split[0].equals("Q") ? 4 : 3;
+ //agv鐩爣绔欑偣
+ String stnNo = split[1];
Task task1 = taskService.selectOne(new EntityWrapper<Task>()
.in("source_sta_no", wrkMast.getSourceStaNo(), wrkMast.getMemo())
.in("sta_no", wrkMast.getSourceStaNo(), wrkMast.getMemo()));
if (Cools.isEmpty(task1)) {
- //鐢熸垚AGV鎼繍鍑哄簱浠诲姟
- // 淇濆瓨宸ヤ綔妗�
- Task task = new Task();
- Date date = new Date();
- String TaskNo = wrkMast.getWrkNo()+"-"+date.getTime();
- task.setWrkNo(wrkMast.getWrkNo())
- .setTaskNo(TaskNo)
- .setIoTime(date)
- .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
- .setIoType(3) // 鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔�
- .setTaskType("agv")
- .setIoPri(10D)
- .setFullPlt("Y") // 婊℃澘锛歒
- .setPicking("N") // 鎷f枡
- .setExitMk("N")// 閫�鍑�
- .setStaNo(wrkMast.getMemo())
- .setSourceStaNo(wrkMast.getSourceStaNo())//绌烘枡鏋剁紦瀛樺尯E1
- .setEmptyMk("N")// 绌烘澘
- .setBarcode(wrkMast.getBarcode())// 鎵樼洏鐮�
- .setLinkMis("N")
- .setAppeUser(9945L)
- .setAppeTime(date)
- .setModiUser(9945L)
- .setModiTime(date);
- if (!taskService.insert(task)) {
- throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- }else {
- wrkMast.setWrkSts(31L);//31.AGV鎼繍浠诲姟鍒涘缓鎴愬姛
- wrkMast.setModiTime(date);
- wrkMastService.updateById(wrkMast);
- }
+ //鐢熸垚AGV鎼繍鍑哄簱浠诲姟
+ // 淇濆瓨宸ヤ綔妗�
+ Task task = new Task();
+ Date date = new Date();
+ String TaskNo = wrkMast.getWrkNo() + "aa" + date.getTime();
+ task.setWrkNo(wrkMast.getWrkNo())
+ .setTaskNo(TaskNo)
+ .setIoTime(date)
+ .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
+ .setIoType(ioType) // 鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔� 4.绔欏埌鍖哄煙
+ .setTaskType("agv")
+ .setIoPri(10D)
+ .setFullPlt("Y") // 婊℃澘锛歒
+ .setPicking("N") // 鎷f枡
+ .setExitMk("N")// 閫�鍑�
+ .setStaNo(wrkMast.getMemo())
+ .setSourceStaNo(wrkMast.getSourceStaNo())
+ .setEmptyMk("N")// 绌烘澘
+ .setBarcode(wrkMast.getBarcode())// 鎵樼洏鐮�
+ .setLinkMis("N")
+ .setAppeUser(9945L)
+ .setAppeTime(date)
+ .setModiUser(9945L)
+ .setModiTime(date);
+ if (!taskService.insert(task)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ } else {
+ wrkMast.setWrkSts(31L);//31.AGV鎼繍浠诲姟鍒涘缓鎴愬姛
+ wrkMast.setModiTime(date);
+ wrkMastService.updateById(wrkMast);
+ }
}
}
}
@@ -91,32 +102,118 @@
* AGV 浠诲姟涓嬪彂鎺ュ彛锛屽畾鏃剁粰AGV涓嬪彂浠诲姟
*/
@Scheduled(cron = "0/3 * * * * ? ")
- private void execute(){
- if (!switchErpReportOld){
+ private void execute() {
+ if (!switchErpReportOld) {
return;
}
//鏌ヨ鎵�鏈塧gv寰呬笅鍙戜换鍔�
- List<Task> wrkSts = taskService.selectList(new EntityWrapper<Task>().eq("wrk_sts", 301));
- if (wrkSts!=null&& !wrkSts.isEmpty()){
- for (Task task:wrkSts){
+ List<Task> wrkSts = taskService.selectList(new EntityWrapper<Task>().eq("wrk_sts", 301).orderBy("appe_time"));
+ if (wrkSts != null && !wrkSts.isEmpty()) {
+ for (Task task : wrkSts) {
//鏌ヨ鏄惁鏈夋鍦ㄤ綔涓氱殑婧愮珯鍜岀洰鏍囩珯鏈変竴鏍风殑agv鎼繍浠诲姟
//濡傛灉鏈夊垯璺宠繃鏈agv鎼繍浠诲姟涓嬪彂
Task task1 = taskService.selectOne(new EntityWrapper<Task>()
.eq("wrk_sts", 302)
.andNew()
.in("source_sta_no", task.getSourceStaNo(), task.getStaNo())
+ .or()
.in("sta_no", task.getStaNo(), task.getSourceStaNo()));
+ Boolean flag = true;
if (Cools.isEmpty(task1)) {
- //AGV浠诲姟涓嬪彂
- ReturnT<String> start = AGVTaskReportHandler.start(task);
- if (!start.isSuccess()){
- task.setUpdMk("X");
- task.setErrorMemo(start.getMsg());
- task.setModiTime(new Date());
- if (!taskService.updateById(task)) {
- log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", task.getWrkNo());
+ //agv鎼繍绉诲姩浠诲姟涓嬪彂鏃讹紝鎼繍鐩爣鐐规槸鍚︽槸绔嬪簱AGV鍜屽爢鍨涙満鎺ラ┏绔欑偣
+ //濡傛灉鏄帴椹崇珯鐐瑰垯闇�瑕佸垽鏂帴椹崇珯鐐规槸鍚︽湁绌烘枡鏋�
+ //濡傛灉鏈夌┖鏂欐灦闇�瑕佸垽鏂槸鍚︽湁鍑哄簱浠诲姟
+ //鏈夊嚭搴撲换鍔″垯绂佹涓嬪彂鏈鎼繍浠诲姟
+ if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307")) {
+ flag = false;
+ BasDevp basDevp = basDevpService.checkSiteStatus(Integer.parseInt(task.getStaNo()));
+ if (basDevp != null && !Cools.isEmpty(basDevp.getInreq1())
+ && basDevp.getInreq1().equals("Y")
+ && basDevp.getLoading().equals("N")
+ && basDevp.getWrkNo()!=9991
+ && basDevp.getWrkNo()!=9999) {
+ List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+ .in("io_type", 101, 110)
+ .le("wrk_sts", 14)
+ .eq("sta_no", task.getStaNo()));
+ List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type", 1).eq("sta_no", task.getStaNo()));
+ if (Cools.isEmpty(wrkMasts)&&Cools.isEmpty(wrkMasts1)) {
+ //鍒ゆ柇鏄惁宸茬粡鐢熸垚绌烘枡鏋舵惉杩愬洖绌烘枡鏋惰ˉ搴撳尯
+ //濡傛灉鏈夌殑璇濓紝涓嶅湪鐢熸垚浠诲姟
+ Task task2 = taskService.selectOne(new EntityWrapper<Task>().eq("task_type","AGV绌烘枡鏋跺洖缂撳瓨鍖�").eq("source_sta_no", task.getStaNo()));
+ //鏈夊叆搴撲换鍔℃惉杩愶紝闇�瑕佺敓鎴愮┖鏂欐灦鎼繍鍒扮┖鏂欐灦缂撳啿鍖篈GV浠诲姟
+ if (Cools.isEmpty(task2)) {
+
+ //鐢熸垚AGV鎼繍鍑哄簱浠诲姟
+ // 淇濆瓨宸ヤ綔妗�
+ String SourceStaNo = "";
+ if (task.getStaNo().equals("401")) {
+ //澶ф枡鏋剁紦鍐插尯
+ SourceStaNo = "Q-E3";
+ }else if (task.getStaNo().equals("402")) {
+ SourceStaNo = "Q-E2";
+ }else if (task.getStaNo().equals("307")) {
+ SourceStaNo = "Q-E1";
+ }
+ Task task3 = new Task();
+ Date date = new Date();
+ String TaskNo = task.getTaskNo() + "bb" + date.getTime();
+ task3.setWrkNo(999999)
+ .setTaskNo(TaskNo)
+ .setIoTime(date)
+ .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
+ .setIoType(4) // 鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔� 4.绔欏埌鍖哄煙
+ .setTaskType("AGV绌烘枡鏋跺洖缂撳瓨鍖�")
+ .setIoPri(10D)
+ .setFullPlt("Y") // 婊℃澘锛歒
+ .setPicking("N") // 鎷f枡
+ .setExitMk("N")// 閫�鍑�
+ .setStaNo(SourceStaNo)
+ .setSourceStaNo(task.getStaNo())//绌烘枡鏋剁紦瀛樺尯E1
+ .setEmptyMk("N")// 绌烘澘
+ .setBarcode("")// 鎵樼洏鐮�
+ .setLinkMis("N")
+ .setAppeUser(9945L)
+ .setAppeTime(date)
+ .setModiUser(9945L)
+ .setModiTime(date);
+ if (!taskService.insert(task3)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ break;
+ }
+ }
+ }else if(basDevp != null && !Cools.isEmpty(basDevp.getInreq1())
+ && basDevp.getInreq1().equals("N")
+ && basDevp.getLoading().equals("N")
+ ) {
+ flag = true;
+ }
+
+ }
+ if (flag || task.getTaskType().equals("AGV绌烘枡鏋跺洖缂撳瓨鍖�")) {
+ //AGV浠诲姟涓嬪彂
+ ReturnT<String> start = AGVTaskReportHandler.start(task);
+ if (!start.isSuccess()) {
+ task.setUpdMk("X");
+ task.setErrorMemo(start.getMsg());
+ task.setCtnType(task.getCtnType()+1);//涓嬪彂浠诲姟璁℃暟
+ task.setModiTime(new Date());
+ if (!taskService.updateById(task)) {
+ log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", task.getWrkNo());
+ }
+ break;
+ }else {
+ task.setCtnType(task.getCtnType()+1);
+ task.setModiTime(new Date());
+ task.setWrkSts(302L);//浠诲姟鎵ц涓�
+ if (!taskService.updateById(task)) {
+ log.error("宸ヤ綔妗workNo={}]鏍囪寰呭鐞嗗け璐�", task.getWrkNo());
+ }
}
}
+
+
}
}
}
--
Gitblit v1.9.1