From 701542ac0a90cf0e3a0a81ec2bb8066b5de68e75 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期六, 28 三月 2026 11:21:17 +0800
Subject: [PATCH] 更新为正式部署许可证
---
src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java | 290 +++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 238 insertions(+), 52 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..dad533b 100644
--- a/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AGVTaskReportScheduler.java
@@ -1,12 +1,19 @@
package com.zy.asrs.task;
+import com.alibaba.excel.util.StringUtils;
+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.Task;
-import com.zy.asrs.entity.WrkMast;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.mes.MesReturn;
+import com.zy.asrs.mapper.CanFinMapper;
+import com.zy.asrs.service.OrderPakoutService;
import com.zy.asrs.service.TaskService;
+import com.zy.asrs.service.WrkDetlService;
import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.service.impl.BasDevpServiceImpl;
+import com.zy.asrs.service.impl.RcsServiceImpl;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.AGVTaskReportHandler;
import org.slf4j.Logger;
@@ -30,59 +37,112 @@
@Value("${hik.switch}")
private Boolean switchErpReportOld;
@Autowired
+ private WrkDetlService wrkDetlService;
+ @Autowired
private WrkMastService wrkMastService;
+ @Autowired
+ private BasDevpServiceImpl basDevpService;
+ @Autowired
+ private OrderPakoutService orderPakoutService;
+ @Autowired
+ private CanFinMapper canFinMapper;
+ @Value("${mes.url}")
+ private String MES_URL;
/**
* 婊℃澘鍜岀┖鏉垮嚭搴撲换鍔★紝鍑哄埌杈撻�佺嚎鍚庡垱寤篈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.getUserNo();
+ String taskType = "AGV";
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+
+ if (wrkMast.getIoType()==110){
+ taskType = "ZX-AGV-08-1";
+ }else{
+ if (wrkDetls != null && !Cools.isEmpty(wrkDetls.get(0).getOrderNo())){
+ TaskNo = wrkDetls.get(0).getOrderNo();
+// OrderPakout orderPakout = orderPakoutService.selectByNo(wrkDetls.get(0).getOrderNo());
+// if (orderPakout.getDocType()==11){
+// taskType = "PP-AGV";
+// }else if (orderPakout.getDocType()==12){
+// taskType = "ZP-AGV";
+// }
+ taskType = "ZP-AGV";
+ }
+ }
+
+ task.setWrkNo(wrkMast.getWrkNo())
+ .setTaskNo(TaskNo)
+ .setIoTime(date)
+ .setWrkSts(301L) // 宸ヤ綔鐘舵�侊細301.浠诲姟涓嬪彂
+ .setIoType(ioType) // 鍏ュ嚭搴撶姸鎬侊細 3.绔欏埌绔� 4.绔欏埌鍖哄煙
+ .setTaskType(taskType)
+ .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 {
+ if (!wrkMast.getBarcode().isEmpty() && !wrkMast.getMemo().isEmpty()) {
+ JSONObject map = new JSONObject();
+ map.put("taskNo", TaskNo);
+ map.put("barCode", wrkMast.getBarcode());
+ map.put("staNo", wrkMast.getStaNo());
+ log.info("鏈鍑哄簱鎵樼洏锛歿}, 鐩爣绔檣}", wrkMast.getBarcode(), wrkMast.getMemo());
+ String url = "ReceiveFinishedPalletCode";
+ String URL = MES_URL + url;
+ String response = RcsServiceImpl.sendPost(URL, JSONObject.toJSONString(map));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if("1".equals(mesReturn.getSuccess())) {
+ log.info("涓婃姤瀹屾垚 ==> 鏈鍑哄簱鎵樼洏锛歿}, 鐩爣绔檣}", wrkMast.getBarcode(), wrkMast.getMemo());
+ }else {
+ log.error("涓婃姤澶辫触 ==> 鏈鍑哄簱鎵樼洏锛歿}, 鐩爣绔檣}", wrkMast.getBarcode(), wrkMast.getMemo());
+ }
+ }
+ }
+ wrkMast.setWrkSts(31L);//31.AGV鎼繍浠诲姟鍒涘缓鎴愬姛
+ wrkMast.setModiTime(date);
+ wrkMastService.updateById(wrkMast);
+ }
}
}
}
@@ -90,33 +150,159 @@
/**
* AGV 浠诲姟涓嬪彂鎺ュ彛锛屽畾鏃剁粰AGV涓嬪彂浠诲姟
*/
- @Scheduled(cron = "0/3 * * * * ? ")
- private void execute(){
- if (!switchErpReportOld){
+ @Scheduled(cron = "0/5 * * * * ? ")
+ 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) {
+
+ if (!task.getTaskType().equals("AGV绌烘枡鏋跺洖缂撳瓨鍖�") && !task.getTaskType().equals("AGV琛ョ┖鏂欐灦")){
+ if((task.getStaNo().equals("402") || task.getStaNo().equals("401")) && task.getTaskType().equals("")){
+ //绛涢�夊叏閮ㄨ繕鏈畬鎴愮殑鍑哄簱浠诲姟
+ List<OrderPakout> orderPakouts = orderPakoutService.selectList(new EntityWrapper<OrderPakout>()
+ .in("settle", 1, 2) // 1琛ㄧず杩樻湭寮�濮嬶紝2琛ㄧず姝e湪鎵ц
+ .eq("doc_type", 12)
+ .orderBy("order_time", true));
+ if (!orderPakouts.isEmpty()) {
+ //鑾峰彇绗竴鏉″叆搴撳崟
+ OrderPakout orderPakout = orderPakouts.get(0);
+ // 濡傛灉绗竴鏉¤繕鏈紑濮嬬殑鍑哄簱浠诲姟鏃堕棿鏃╀簬绗竴鏉℃湭瀹屾垚鐨勫叆搴撲换鍔℃椂闂达紝璺宠繃锛屼笉鎵ц
+ if (orderPakout.getCreateTime().getTime() < task.getWrkDate().getTime()){
+ continue;
+ }
+ }
+ }
+ }
+
+// List<CanFin> canFinList = canFinMapper.selectList(new EntityWrapper<CanFin>()
+// .orderBy("apply_time", true)
+// );
+// if (!canFinList.isEmpty()) {
+// CanFin firstCanFin = canFinList.get(0);
+// // 妫�鏌� InNo 鏄惁涓虹┖
+// if (firstCanFin.getInNo() != null) {
+// // 妫�鏌ュ綋鍓嶄换鍔℃槸鍚︿笌杞簭浠诲姟鐩稿叧
+// if (task.getStaNo().equals("401") || task.getStaNo().equals("402")){
+// List<WrkMast> wrkMasts1 = wrkMastService.selectList(new EntityWrapper<WrkMast>()
+// .in("io_type", 1, 10));
+// BasDevp basDevp = basDevpService.checkSiteStatus(Integer.parseInt(task.getStaNo()));
+// if (basDevp.getWrkNo() != 0 || !wrkMasts1.isEmpty()){
+// continue;
+// }
+//
+// }
+// }
+// }
+
//鏌ヨ鏄惁鏈夋鍦ㄤ綔涓氱殑婧愮珯鍜岀洰鏍囩珯鏈変竴鏍风殑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