From e3e341f6891e08a3942b8002e5e04af1131442ae Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期一, 26 五月 2025 11:15:20 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 185 ++++++++++++++++++----------------------------
1 files changed, 72 insertions(+), 113 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 97ca482..b4b6c90 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -7,6 +7,7 @@
import com.core.exception.CoolException;
import com.zy.asrs.domain.dto.NotifyCustomDataDto;
import com.zy.asrs.domain.enums.NotifyMsgType;
+import com.zy.asrs.domain.enums.RedisKeyType;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.entity.*;
@@ -18,6 +19,8 @@
import com.zy.asrs.utils.Utils;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
+import com.zy.common.utils.News;
+import com.zy.common.utils.RedisUtil;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
@@ -72,13 +75,9 @@
@Autowired
private TaskWrkService taskWrkService;
@Autowired
- private ConfigService configService;
- @Autowired
private StaDescMapper staDescMapper;
@Autowired
private CommandInfoService commandInfoService;
- @Autowired
- private OpenServiceImpl openServiceImpl;
@Autowired
private StaDescService staDescService;
@Autowired
@@ -89,6 +88,8 @@
private CrnOperaUtils crnOperaUtils;
@Autowired
private NotifyUtils notifyUtils;
+ @Autowired
+ private RedisUtil redisUtil;
@Value("${wms.count}")
private Integer maxCount;
@Value("${wms.url}")
@@ -112,8 +113,6 @@
} else {
staProtocol = staProtocol.clone();
}
- Short workNo = staProtocol.getWorkNo();
- Short stano = staProtocol.getStaNo();
// 灏哄妫�娴嬪紓甯�
boolean back = false;
@@ -146,11 +145,15 @@
errMsg = "鎵爜澶辫触";
back = true;
}
+
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (staProtocol.isAutoing() && staProtocol.isLoading()
+ if (staProtocol.isAutoing()
+ && staProtocol.isLoading()
&& staProtocol.isInEnable()
- && !staProtocol.isEmptyMk() && workNo >= 9790
- && staProtocol.isPakMk()) {
+ && !staProtocol.isEmptyMk()
+ && staProtocol.isPakMk()
+ && staProtocol.getWorkNo() == 9999
+ ) {
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
if (barcodeThread == null) {
@@ -158,9 +161,14 @@
}
String barcode = barcodeThread.getBarcode();
+ if (Cools.isEmpty(barcode)) {
+ News.watchInfo(String.valueOf(staProtocol.getSiteId()), "鍏ュ簱淇″彿婊¤冻锛屾墭鐩樼爜涓虹┖");
+ continue;
+ }
+
TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode));
if (taskWrk1 != null) {
- log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�");
+ News.watchInfo(String.valueOf(staProtocol.getSiteId()), "鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�");
continue;
}
@@ -170,6 +178,7 @@
if (back) {
requestParam.put("wcsStatus", 1);//澶辫触
requestParam.put("wcsErrorMessage", errMsg);//澶辫触鍘熷洜
+ News.watchInfo(String.valueOf(staProtocol.getSiteId()), errMsg);
}else {
requestParam.put("wcsStatus", 0);//鎴愬姛
}
@@ -177,6 +186,11 @@
String response = "";
Boolean success = false;
try {
+ Object object = redisUtil.get(RedisKeyType.IN_TASK_LOCK.key);
+ if(object != null) {
+ continue;
+ }
+
response = new HttpHandler.Builder()
.setUri(wmsUrl)
.setPath(inboundTaskApplyPath)
@@ -184,14 +198,18 @@
.build()
.doPost();
JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code") != 200) {
- log.info("鏉$爜锛�" + barcode + "鐢宠WMS澶辫触,response=" + JSON.toJSONString(jsonObject));
- continue;
- }
+ redisUtil.set(RedisKeyType.IN_TASK_LOCK.key, "lock", 5);
+ if (jsonObject.getInteger("code") == 200) {
- if (back) {
- devpThread.setPakMk(staProtocol.getSiteId(), false);
+ } else if (jsonObject.getInteger("code") == 500) {
+ News.watchInfo(String.valueOf(staProtocol.getSiteId()), "鏉$爜锛�" + barcode + "鐢宠WMS澶辫触,绯荤粺鍥為��,response=" + JSON.toJSONString(jsonObject));
+
+ staProtocol.setWorkNo(9997);
+ staProtocol.setStaNo(inSta.getBackSta().shortValue());
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ continue;
+ }else {
+ News.watchInfo(String.valueOf(staProtocol.getSiteId()), "鏉$爜锛�" + barcode + "鐢宠WMS澶辫触,response=" + JSON.toJSONString(jsonObject));
continue;
}
@@ -203,18 +221,18 @@
// 鍒涙柊涓�涓叆搴撳伐浣滄。
TaskWrk taskWrk = taskWrkService.selectByTaskNo(String.valueOf(resultWrkNo));
if(taskWrk != null) {
- log.info("浠诲姟锛�" + resultWrkNo + "宸茬粡瀛樺湪");
+ News.watchInfo(String.valueOf(staProtocol.getSiteId()), "浠诲姟锛�" + resultWrkNo + "宸茬粡瀛樺湪");
continue;
}
LocMast locMast = locMastService.selectByLocNo(resultLocNo);
if (locMast == null) {
- log.info(resultLocNo + "搴撲綅涓嶅瓨鍦�");
+ News.watchInfo(String.valueOf(staProtocol.getSiteId()), resultLocNo + "搴撲綅涓嶅瓨鍦�");
continue;
}
if (!locMast.getLocSts().equals("O")) {
- log.info(resultLocNo + "搴撲綅涓嶅浜庣┖搴撲綅");
+ News.watchInfo(String.valueOf(staProtocol.getSiteId()), resultLocNo + "搴撲綅涓嶅浜庣┖搴撲綅");
continue;
}
@@ -236,7 +254,7 @@
}
if (!taskWrkService.insert(taskWrk)) {
- log.info("浠诲姟锛�" + resultWrkNo + "浠诲姟鍒涘缓澶辫触");
+ News.watchInfo(String.valueOf(staProtocol.getSiteId()), "浠诲姟锛�" + resultWrkNo + "浠诲姟鍒涘缓澶辫触");
continue;
}
@@ -246,7 +264,7 @@
StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
.eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId()));
- staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+ staProtocol.setWorkNo(taskWrk.getWrkNo());
staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -311,7 +329,7 @@
for (CrnSlave crnSlave : slaveProperties.getCrn()) {
// 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯
for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) {
- List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo()));
+ List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("type_no", 2).eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo()));
for (StaDesc staDesc : staDescs) {
try {
// 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
@@ -322,7 +340,8 @@
} else {
staProtocol = staProtocol.clone();
}
- if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) {
+
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) {
// 鏌ヨ宸ヤ綔妗�
TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString());
if (taskWrk == null) {
@@ -330,7 +349,7 @@
}
log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk));
// R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false);
- staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
+ staProtocol.setWorkNo(taskWrk.getWrkNo());
staProtocol.setStaNo(staDesc.getStnNo().shortValue());
boolean offer = false;
try {
@@ -373,7 +392,7 @@
}
BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
if (basCrnp == null) {
- log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+ News.watchInfo(crn.getId() + "鍙峰爢鍨涙満", "{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
continue;
}
@@ -428,26 +447,30 @@
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
- log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ News.watchError(crnStn.getStaNo() + "绔欑偣", "鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
continue;
}
+
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
&& staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) {
flag = true;
}
if (!flag) {
+ News.watchError(crnStn.getStaNo() + "绔欑偣", "鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐圭姸鎬佹娴嬪け璐ワ紝绔欑偣闇�瑕佹弧瓒筹細鑷姩銆佹湁鐗┿�佹湁宸ヤ綔鍙枫�佺珯鐐瑰彲鍏�");
continue;
}
// 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
- TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo().intValue(), staDesc.getStnNo().toString());
+ TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo(), staDesc.getStnNo().toString());
if (null == taskWrk) {
+ News.watchError(crnStn.getStaNo() + "绔欑偣", "鍏ュ簱 ===>> 宸ヤ綔妗d笉瀛樺湪锛屾鏌ヤ换鍔℃槸鍚︾敓鎴�");
continue;
}
// 鍫嗗灈鏈烘帶鍒惰繃婊�
if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+ News.watchError(slave.getId() + "鍙峰爢鍨涙満", "鍫嗗灈鏈哄繖纰屼腑");
continue;
}
@@ -511,30 +534,8 @@
}
// 宸ヤ綔妗g姸鎬佸垽鏂�
if (taskWrk.getIoType() != 2 || taskWrk.getTargetPoint() == null || taskWrk.getStartPoint() == null) {
- log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", taskWrk.getWrkNo(), taskWrk.getStartPoint(), taskWrk.getIoType());
+ News.watchError(taskWrk.getWrkNo() + "浠诲姟", "鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", taskWrk.getWrkNo(), taskWrk.getStartPoint(), taskWrk.getIoType());
continue;
- }
-
- LocMast locMast=locMastService.selectByLocNo(taskWrk.getStartPoint());
- //鍒ゆ柇鍏跺簱浣嶆槸鍚︿负娣卞簱浣嶏紝濡傛灉涓烘繁搴撲綅鎵惧叾娴呭簱浣嶆槸閮芥湁璐�
- if(locMast.getRow1()==1||locMast.getRow1()==5){
- LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("row1", (locMast.getRow1()+1))
- .eq("bay1",locMast.getBay1())
- .eq("lev1",locMast.getLev1()).eq("loc_sts","F"));
- if (!Cools.isEmpty(locMast1)){
- log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
- continue;
- }
- }else if(locMast.getRow1()==4||locMast.getRow1()==8){
- LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>()
- .eq("row1", (locMast.getRow1()-1))
- .eq("bay1",locMast.getBay1())
- .eq("lev1",locMast.getLev1()).eq("loc_sts","F"));
- if (!Cools.isEmpty(locMast1)){
- log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣");
- continue;
- }
}
// 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
@@ -549,13 +550,13 @@
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
- log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ News.watchError(taskWrk.getWrkNo() + "浠诲姟", "鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
break;
}
// 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
- && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) {
+ if (staProtocol.isAutoing() && staProtocol.isOutEnable() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+ ) {
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
// 鍫嗗灈鏈烘帶鍒惰繃婊�
@@ -564,7 +565,7 @@
}
int storeCount = basDevpService.getStoreCount();
if(storeCount >= maxCount){
- log.error("杈撻�佺嚎鏆傚瓨鏁拌揪鍒颁笂闄恵}",storeCount);
+ News.watchError(taskWrk.getWrkNo() + "浠诲姟", "杈撻�佺嚎鏆傚瓨鏁拌揪鍒颁笂闄恵}", storeCount);
break;
}
@@ -694,37 +695,24 @@
if (taskWrkMapper.updateById(taskWrk) == 0) {
log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
}
- String response = "";
- Boolean bool=false;
- HashMap<String, Object> headParam = new HashMap<>();
- headParam.put("TaskNo", taskWrk.getTaskNo());
- try {
- response = new HttpHandler.Builder()
- // .setHeaders(headParam)
- .setUri(wmsUrl)
- .setPath(taskExecCallback)
- .setJson(JSON.toJSONString(headParam))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if(jsonObject.get("ReturnStatus").equals(0)){
- bool = true;
- taskWrk.setStatus(2);
- taskWrkMapper.updateById(taskWrk);
- }
- } catch (Exception e) {
- log.error("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触", taskWrk);
-// throw new CoolException("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触");
- }finally {
- apiLogService.save("wcs娲惧彂绉诲簱浠诲姟涓婃姤wms"
- , wmsUrl + taskExecCallback
- , null
- , "127.0.0.1"
- , JSON.toJSONString(headParam)
- , response
- , bool
- );
+ //涓婃姤-绉诲簱浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm");
+ HashMap<String, Object> hashMap = new HashMap<>();
+ hashMap.put("taskNo", taskWrk.getTaskNo());
+ hashMap.put("status", TaskStatusType.DISTRIBUTE.id);
+ hashMap.put("ioType", 3);
+ hashMap.put("barcode", taskWrk.getBarcode());
+ hashMap.put("reportTime", format.format(new Date()));
+
+ NotifyCustomDataDto customDataDto = new NotifyCustomDataDto();
+ customDataDto.setUri(wmsUrl);
+ customDataDto.setPath(taskExecCallback);
+ customDataDto.setData(JSON.toJSONString(hashMap));
+ boolean notifyResult = notifyUtils.notify("task", 1, String.valueOf(taskWrk.getWrkNo()), taskWrk.getTaskNo(), NotifyMsgType.TASK_START, JSON.toJSONString(taskWrk), true, customDataDto);
+ if(notifyResult) {
+ taskWrk.setStatus(2);
+ taskWrkService.updateById(taskWrk);
}
}
@@ -812,42 +800,13 @@
if (taskWrk.getIoType() == 1 && taskWrk.getWrkSts() == 3) {
taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
taskWrk.setStatus(5);//瀹岀粨
-
- //鏇存柊搴撲綅鐘舵��
- LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
- locMast.setLocSts("F");//F.鍦ㄥ簱
- locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
- locMast.setModiTime(new Date());
- locMast.setModiUser(9999L);
- locMastService.updateById(locMast);
} else if (taskWrk.getIoType() == 2 && taskWrk.getWrkSts() == 12) {
taskWrk.setWrkSts(13);//鍑哄簱瀹屾垚
taskWrk.setStatus(5);//瀹岀粨
- //鏇存柊搴撲綅鐘舵��
- LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
- locMast.setLocSts("O");//O.绌哄簱浣�
- locMast.setBarcode("");//鎵樼洏鐮�
- locMast.setModiTime(new Date());
- locMast.setModiUser(9999L);
- locMastService.updateById(locMast);
} else if (taskWrk.getIoType() == 3 && taskWrk.getWrkSts() == 12) {
taskWrk.setWrkSts(4);//鍏ュ簱瀹屾垚
taskWrk.setStatus(5);//瀹岀粨
- //鏇存柊搴撲綅鐘舵��
- LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
- locMast.setLocSts("F");//F.鍦ㄥ簱
- locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
- locMast.setModiTime(new Date());
- locMast.setModiUser(9999L);
- locMastService.updateById(locMast);
-
- LocMast locMast1 = locMastService.selectByLocNo(taskWrk.getStartPoint());
- locMast1.setLocSts("O");//O.绌哄簱浣�
- locMast1.setBarcode("");//鎵樼洏鐮�
- locMast1.setModiTime(new Date());
- locMast1.setModiUser(9999L);
- locMastService.updateById(locMast1);
}
taskWrkService.updateById(taskWrk);
}
--
Gitblit v1.9.1