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/handler/WorkMastHandler.java | 210 +++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 191 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index 80f7eb4..554edd9 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -1,20 +1,23 @@
package com.zy.asrs.task.handler;
+import com.alibaba.excel.util.StringUtils;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.mes.MesReturn;
import com.zy.asrs.enums.LocStsType;
+import com.zy.asrs.mapper.CanFinMapper;
import com.zy.asrs.service.*;
-import com.zy.asrs.service.impl.BasStationServiceImpl;
-import com.zy.asrs.service.impl.LocCacheServiceImpl;
-import com.zy.asrs.service.impl.OrderPakinServiceImpl;
-import com.zy.asrs.service.impl.TaskDetlServiceImpl;
+import com.zy.asrs.service.impl.*;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -56,6 +59,13 @@
private TaskDetlService taskDetlService;
@Autowired
private BasStationServiceImpl basStationService;
+ @Autowired
+ private CanFinMapper canFinMapper;
+ @Autowired
+ private OrderPakoutService orderPakoutService;
+
+ @Value("${mes.url}")
+ private String url;
public ReturnT<String> start(WrkMast wrkMast) {
// 4.鍏ュ簱瀹屾垚
@@ -90,6 +100,7 @@
locMast.setLocSts("D");
locMast.setIoTime(now);
locMast.setModiTime(now);
+ locMast.setPic(wrkMast.getPic());
if (!locMastService.updateById(locMast)) {
// exceptionHandle("绌烘澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐�;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -131,6 +142,11 @@
locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
locDetl.setModiTime(now);
locDetl.setAppeTime(now);
+ locDetl.setMatnr(wrkDetl.getMatnr());
+ locDetl.setMaktx(wrkDetl.getMaktx());
+ locDetl.setSpecs(wrkDetl.getSpecs());
+ locDetl.setUnit(wrkDetl.getUnit());
+ locDetl.setZpallet(wrkDetl.getZpallet());
if (!locDetlService.insert(locDetl)) {
// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -169,6 +185,7 @@
locMast.setBarcode(wrkMast.getBarcode());
locMast.setIoTime(now);
locMast.setModiTime(now);
+ locMast.setPic(wrkMast.getPic());
if (!locMastService.updateById(locMast)) {
// exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -186,7 +203,6 @@
}
// 閬嶅巻宸ヤ綔鏄庣粏锛屾洿鏂板簱瀛樻槑缁嗗拰鍏ュ簱閫氱煡妗�
for (WrkDetl wrkDetl : wrkDetls8) {
-
LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand()
, wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
if (null != locDetl) {
@@ -203,6 +219,11 @@
locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
locDetl.setModiTime(now);
locDetl.setAppeTime(now);
+ locDetl.setMatnr(wrkDetl.getMatnr());
+ locDetl.setMaktx(wrkDetl.getMaktx());
+ locDetl.setSpecs(wrkDetl.getSpecs());
+ locDetl.setUnit(wrkDetl.getUnit());
+ locDetl.setZpallet(wrkDetl.getZpallet());
if (!locDetlService.insert(locDetl)) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鎷f枡閫斾腑骞舵澘 ===>> 娣诲姞搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -232,9 +253,9 @@
for (WrkDetl wrkDetl : wrkDetls53) {
LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand()
- , wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
+ , null, wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
if (null != locDetl) {
- if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3()
+ if (!locDetlService.updateAnfme(locDetl.getAnfme() - wrkDetl.getAnfme(), locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(),null, wrkDetl.getStandby2(), wrkDetl.getStandby3()
, wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3())) {
// exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撳瓨鏄庣粏鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -245,17 +266,17 @@
// 鏇存柊璁㈠崟瀹屾垚鏁伴噺
OrderDetlPakin orderDetlPakin = orderDetlPakinService.selectItem
(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(),
- wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+ null, wrkDetl.getStandby2(), wrkDetl.getStandby3(),
wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
if (orderDetlPakin == null) {
orderDetlPakin = orderDetlPakinService.selectItem
- (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+ (wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), null, wrkDetl.getStandby2(), wrkDetl.getStandby3(),
wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
}
try {
if (!Cools.isEmpty(orderDetlPakin)) {
if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(),
- orderDetlPakin.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+ orderDetlPakin.getBatch(), wrkDetl.getBrand(), null, wrkDetl.getStandby2(), wrkDetl.getStandby3(),
wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) {
// exceptionHandle("鎷f枡鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
// wrkMast.getWrkNo(), wrkMast.getLocNo());
@@ -273,6 +294,7 @@
locMast.setBarcode(wrkMast.getBarcode());
locMast.setIoTime(now);
locMast.setModiTime(now);
+ locMast.setPic(wrkMast.getPic());
if (!locMastService.updateById(locMast)) {
// exceptionHandle("鎷f枡鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -309,6 +331,11 @@
locDetl.setZpallet(wrkDetl.getZpallet()); // 鎵樼洏鏉$爜
locDetl.setModiTime(now);
locDetl.setAppeTime(now);
+ locDetl.setMatnr(wrkDetl.getMatnr());
+ locDetl.setMaktx(wrkDetl.getMaktx());
+ locDetl.setSpecs(wrkDetl.getSpecs());
+ locDetl.setUnit(wrkDetl.getUnit());
+ locDetl.setZpallet(wrkDetl.getZpallet());
if (!locDetlService.insert(locDetl)) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("骞舵澘鍏ュ簱 ===>> 鏂板搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
@@ -337,6 +364,7 @@
locMast.setBarcode(wrkMast.getBarcode());
locMast.setIoTime(now);
locMast.setModiTime(now);
+ locMast.setPic(wrkMast.getPic());
if (!locMastService.updateById(locMast)) {
// exceptionHandle("骞舵澘鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -374,6 +402,7 @@
locMast.setBarcode(wrkMast.getBarcode());
locMast.setIoTime(now);
locMast.setModiTime(now);
+ locMast.setPic(wrkMast.getPic());
if (!locMastService.updateById(locMast)) {
// exceptionHandle("鐩樼偣鍏ュ簱 ===>> 淇敼搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -396,8 +425,10 @@
}
}
// 淇敼婧愬簱浣嶇姸鎬� ==> O
+ String picUrl = "";
LocMast sourceLoc = locMastService.selectById(wrkMast.getSourceLocNo());
if (null != sourceLoc) {
+ picUrl = sourceLoc.getPic();
sourceLoc.setBarcode("");
sourceLoc.setLocSts("O");
sourceLoc.setModiTime(now);
@@ -413,6 +444,7 @@
locMast.setBarcode(wrkMast.getBarcode());
locMast.setIoTime(now);
locMast.setModiTime(now);
+ locMast.setPic(picUrl);
if (!locMastService.updateById(locMast)) {
// exceptionHandle("搴撲綅绉昏浆 ===>> 淇敼鐩爣搴撲綅鐘舵�佸け璐ワ紱[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -430,11 +462,51 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg("鏇存柊鍏ュ簱瀹屾垚鐘舵�佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
}
+
+ // 灏唚aitPakin琛ㄤ腑鐨勬暟鎹爣璁颁负宸插鐞�
+ if (wrkMast.getIoType() == 1) { // 鍏ㄦ澘鍏ュ簱
+ Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode());
+ WaitPakin setParam = new WaitPakin();
+ setParam.setStatus("N");
+ setParam.setModiTime(new Date());
+ waitPakinService.update(setParam, wrapper);
+ log.info("鏇存柊搴撳瓨鎴愬姛锛佹墭鐩樼爜锛歿}", wrkMast.getBarcode());
+ }
+
+
+
} catch (Exception e) {
log.error("fail", e);
e.printStackTrace();
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg(e.getMessage());
+ }
+
+ try{
+ CanFin canFin = new CanFin();
+ List<CanFin> canFinList = canFinMapper.selectList(
+ new EntityWrapper<CanFin>()
+ .orderBy("apply_time", true)
+ );
+ if (canFinList != null){
+ CanFin firstCanFin = canFinList.get(0);
+ if (firstCanFin.getAgvType().equals("agv-in")){
+// if (firstCanFin.getAgvType().equals("agv-in-out")){
+ canFinMapper.deleteById(firstCanFin.getId());
+
+ if (canFinList.size() > 1){
+ CanFin firstCanFin1 = canFinList.get(1);
+ firstCanFin1.setTaskStatus("canout");
+ log.info("can_fin琛ㄥ凡鏇存柊锛屽叆搴撳崟鐘舵�亄}", firstCanFin1.getOutType());
+ canFinMapper.updateById(firstCanFin1);
+ }
+ }
+// else if(firstCanFin.getAgvType().equals("agv-in")){
+// canFinMapper.deleteById(firstCanFin.getId());
+// }
+ }
+ } catch (Exception e) {
+ log.error("鏈鍏ュ簱娌℃湁浠诲姟鍗�");
}
return SUCCESS;
@@ -554,8 +626,13 @@
default:
break;
}
- // 淇敼宸ヤ綔涓绘。鐘舵��
- wrkMast.setWrkSts(15L);
+ if(!Cools.isEmpty(wrkMast.getMemo())){
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(30L);//30.绛夊緟鍒涘缓AGV鎼繍浠诲姟
+ }else {
+ // 淇敼宸ヤ綔涓绘。鐘舵��
+ wrkMast.setWrkSts(15L);
+ }
wrkMast.setModiTime(now);
if (!wrkMastService.updateById(wrkMast)) {
// exceptionHandle("鏇存柊鍑哄簱瀹屾垚鐘舵�佸け璐�;[workNo={0}]", wrkMast.getWrkNo());
@@ -568,6 +645,69 @@
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return FAIL.setMsg(e.getMessage());
}
+
+
+ try{
+ List<CanFin> firstCanFinList = canFinMapper.selectList(
+ new EntityWrapper<CanFin>()
+ .orderBy("apply_time", true)
+ );
+ CanFin firstCanfin = firstCanFinList.get(0);
+ if (firstCanfin.getOutNo() != null && firstCanfin.getAgvType().equals("agv-out")){
+ log.info("can_fin琛ㄥ凡鏇存柊锛屽嚭搴撳崟{}宸插垹闄�",firstCanfin.getOutNo());
+ canFinMapper.deleteById(firstCanfin.getId());
+ }
+ if (firstCanfin.getOutNo() == null && firstCanfin.getAgvType().equals("agv-out")){
+ log.info("can_fin琛ㄥ凡鏇存柊锛屽嚭搴撲换鍔″凡鍒犻櫎锛屽綋鍓嶅嚭搴撴棤浠诲姟鍗�");
+ canFinMapper.deleteById(firstCanfin.getId());
+ }
+ if (firstCanFinList.size() > 1){
+ CanFin secondCanFin = firstCanFinList.get(1);
+ secondCanFin.setTaskStatus("canout");
+ canFinMapper.updateById(secondCanFin);
+ }
+// else {
+// OrderPakout isOut = orderPakoutService.selectOne(
+// new EntityWrapper<OrderPakout>()
+// .eq("settle", 2L)
+// .eq("doc_type", 12L));
+// String outOrderNo = isOut.getOrderNo();
+// List<CanFin> canFinList = canFinMapper.selectList(
+// new EntityWrapper<CanFin>()
+// .eq("agv_type", "agv-in-out")
+// .orderBy("apply_time", true)
+// );
+// if (canFinList != null){
+// CanFin firstCanFin = canFinList.get(0);
+//
+// OrderPakout isOut = orderPakoutService.selectOne(
+// new EntityWrapper<OrderPakout>()
+// .eq("orderNo", firstCanFin.getOutNo()));
+//
+// String outOrderNo = isOut.getOrderNo();
+// if (outOrderNo.equals(firstCanFin.getOutNo())){
+// log.info("can_fin琛ㄥ凡鏇存柊锛岃浆搴忓嚭搴撳崟{}宸插垹闄�", firstCanFin.getOutNo());
+// canFinMapper.deleteById(firstCanFin.getId());
+// }else {
+// log.info("鏈壘鍒拌鍑哄簱鍗曪紝can_fin琛ㄦ湭鏇存柊");
+// }
+// List<CanFin> canFinList1 = canFinMapper.selectList(
+// new EntityWrapper<CanFin>()
+// .eq("agv_type", "agv-in-out")
+// .orderBy("apply_time", true));
+// if (!canFinList1.isEmpty()){
+// CanFin firstCanFin2 = canFinList.get(0);
+// firstCanFin2.setTaskType("Y");
+// log.info("can_fin琛ㄥ凡鏇存柊锛岃浆搴忓嚭搴撳崟鍙互杞簭", firstCanFin2.getOutNo());
+// canFinMapper.updateById(firstCanFin2);
+// }
+// }
+// }
+ } catch (Exception e) {
+ log.error("鏈鍑哄簱娌℃湁浠诲姟鍗�");
+ return null;
+ }
+
return SUCCESS;
}
@@ -579,12 +719,44 @@
*/
@Transactional(rollbackFor = Exception.class)
public ReturnT<String> AgvStart(Task task) {
- // 4.鍏ュ簱瀹屾垚
- if (task.getWrkSts() == 4) {
- return agvDoIn(task);
- // 14.鍑哄簱瀹屾垚
- } else if (task.getWrkSts() == 14) {
- return agvDoOut(task);
+ //鏌ヨ鏄惁鏈夊叧鑱旂殑WrkMast浠诲姟
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", task.getWrkNo()));
+ if (wrkMast != null) {
+ if (wrkMast.getIoType()==110&& wrkMast.getWrkSts()>12){
+ wrkMast.setWrkSts(15L);//32.绛夊緟缁勬墭
+ }else if (wrkMast.getIoType()==101 && wrkMast.getWrkSts()>12){
+ wrkMast.setWrkSts(15L);//15.鍑哄簱鏇存柊瀹屾垚
+ }else if (wrkMast.getIoType()==103 && wrkMast.getWrkSts()>12){
+ wrkMast.setWrkSts(20L);//20.绛夊緟鍥炲簱
+ }
+ wrkMast.setModiTime(new Date());
+ wrkMast.setOveMk("Y");
+ wrkMastService.updateById(wrkMast);
+ task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
+ task.setModiTime(new Date());
+ taskService.updateById(task);
+
+ //瀵硅浆搴忔惉杩愬畬鎴愮殑浠诲姟缁撴灉鍙嶉缁檓es
+ }else if(task.getTaskType().equals("ZX-AGV")){
+ HashMap<String,Object> map = new HashMap<>();
+ map.put("taskno", task.getTaskNo());
+ map.put("agvFactory", "2");
+ String mesUrl = url+"AGVArrivalCompletedFit";
+ String response = RcsServiceImpl.sendPost(mesUrl, JSONObject.toJSONString(map));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if("1".equals(mesReturn.getSuccess())) {
+ task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
+ task.setModiTime(new Date());
+ taskService.updateById(task);
+ }else {
+ return new ReturnT<>(500, mesReturn.getMessage());
+ }
+ }
+ }else {
+ task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
+ task.setModiTime(new Date());
+ taskService.updateById(task);
}
return SUCCESS;
}
@@ -702,7 +874,7 @@
locCache.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
locCache.setModiTime(new Date());
- locCache.setBarcode("");
+ locCache.setBarcode(wrkMast.getBarcode());
locCache.setModiTime(new Date());
locCache.setIoTime(new Date());
if (!locCacheService.updateById(locCache)) {
--
Gitblit v1.9.1