From 10e6a9a8adad2226f13a4e4704ca5b2ad5b9ef9a Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 21 十二月 2025 18:49:59 +0800
Subject: [PATCH] 刀具库WMS功能完善
---
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java | 80 +++++++++++++++++++++++++++++++++++-----
1 files changed, 70 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
index 66ed864..12af9a8 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -4,9 +4,9 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.mes.TransArrivalStation;
-import com.zy.asrs.entity.mes.TransParent;
+import com.zy.asrs.entity.mes.*;
import com.zy.asrs.entity.rcs.*;
import com.zy.asrs.enums.RcsRetMethodEnum;
import com.zy.asrs.mapper.BlockStationMapper;
@@ -23,6 +23,8 @@
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.StandardCharsets;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -40,6 +42,9 @@
@Value("${mes.defaultUserId}")
public long defaultUserId;
+ @Value("${dj.url}")
+ public String DJ_URL;
+
@Resource
private BasStationService basStationService;
@@ -55,6 +60,12 @@
private TaskDetlServiceImpl taskDetlService;
@Resource
private WrkMastService wrkMastService;
+
+ @Resource
+ private WrkDetlService wrkDetlService;
+
+ @Resource
+ private OrderPakoutService orderPakoutService;
// region 灏侀攣鍖洪�昏緫锛岀洰鍓嶅彧鏈変竴涓ぇ灏侀攣鍖猴紝浠诲姟鍏ㄩ儴杞埌婊戝潡搴撳鐞嗭紝鎴栫洿鎺ュ啓鍒版粦鍧楀簱
@@ -175,21 +186,23 @@
String url = rcsFactory == 2 ? HX_URL : HIK_URL + "api/robot/controller/task/submit";
String response = "";
try {
+ // 妯℃嫙杩斿洖
+// rcsReturn.setCode("SUCCESS");
+// success = true;
+
response = sendPost(url, JSONObject.toJSONString(rcsTaskSubmit));
if (!StringUtils.isEmpty(response) && response.contains("code")) {
rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
if ("SUCCESS".equals(rcsReturn.getCode())) {
- // 妯℃嫙杩斿洖
-// rcsReturn.setCode("SUCCESS");
-// JSONObject jsonObject = new JSONObject();
-// jsonObject.put("robotTaskCode","2025121301");
-// rcsReturn.setData(jsonObject);
success = true;
log.info("鍛煎彨agv鎼繍鎴愬姛锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url, JSON.toJSONString(rcsTaskSubmit), response);
} else {
log.error("鍛煎彨agv鎼繍澶辫触锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url, JSON.toJSONString(rcsTaskSubmit), response);
}
+ } else {
+ log.error("鍛煎彨agv鎼繍澶辫触锛宺esponse锛歿}",response);
+ rcsReturn.setCode("ERROR");
}
} catch (Exception e) {
log.error("鍛煎彨agv鎼繍寮傚父", e);
@@ -314,11 +327,11 @@
switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
case TASK_START: {
if (ioType == 1 || ioType == 10 || ioType == 53) {
- wrkMast.setCrnStrTime(now);
wrkMast.setModiTime(now);
wrkMastService.updateById(wrkMast);
} else if (ioType == 101 || ioType == 110 || ioType == 103) {
-
+ wrkMast.setModiTime(now);
+ wrkMastService.updateById(wrkMast);
} else {
log.error("{}ioType{}涓嶅湪end鍙嶉澶勭悊涓�", wrkMast.getWrkNo(), ioType);
}
@@ -331,6 +344,44 @@
wrkMast.setModiTime(now);
wrkMastService.updateById(wrkMast);
} else if (ioType == 101 || ioType == 110 || ioType == 103) {
+ wrkMast.setWrkSts(14L);
+ wrkMast.setCrnEndTime(now);
+ wrkMast.setModiTime(now);
+ wrkMastService.updateById(wrkMast);
+ // 缁橳MS鍙嶉鍑哄簱璐х墿淇℃伅
+ List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
+ if(!wrkDetls.isEmpty()) {
+ WrkDetl wrkDetl = wrkDetls.get(0);
+ String orderNo = wrkDetl.getOrderNo();
+ if(!Cools.isEmpty(orderNo)) {
+ OrderPakout orderPakout = orderPakoutService.selectByNo(orderNo);
+ if (orderPakout != null) {
+ MesInApply mesOutFeedback = new MesInApply();
+ mesOutFeedback.setBillType(String.valueOf(orderPakout.getDocType()));
+ mesOutFeedback.setOrderNo(orderNo);
+ mesOutFeedback.setCreateTime( new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now));
+ List<MesItemDetails> details = new ArrayList<>();
+ for(WrkDetl detl:wrkDetls) {
+ MesItemDetails detail = new MesItemDetails();
+ detail.setItemNo(detl.getMatnr());
+ detail.setAnfme(detl.getAnfme());
+ details.add(detail);
+ }
+ mesOutFeedback.setDetails(details);
+ String url = DJ_URL + "api/OutboundOrder/WmsOutFinish";
+ String request = JSONObject.toJSONString(mesOutFeedback);
+ String response = RcsServiceImpl.sendPost(url, request);
+ if (!StringUtils.isEmpty(response) && response.contains("Success")){
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if("1".equals(mesReturn.getSuccess())) {
+ log.info("CTU鍑哄簱鍙嶉end,涓婃姤TMS鎴愬姛,宸ヤ綔鍙凤細{}锛屾槑缁嗭細{}",wrkMast.getWrkNo(),request);
+ } else {
+ log.error("CTU鍑哄簱鍙嶉end,涓婃姤TMS澶辫触锛�,宸ヤ綔鍙凤細{}锛屾槑缁嗭細{}",wrkMast.getWrkNo(),request);
+ }
+ }
+ }
+ }
+ }
} else {
log.error("{}ioType{}涓嶅湪end鍙嶉澶勭悊涓�", wrkMast.getWrkNo(), ioType);
@@ -393,7 +444,7 @@
task.setModiUser(defaultUserId);
taskService.updateById(task);
// 浠诲姟瀹屾垚
- mesService.reporterTask(rcsReporterTask);
+// mesService.reporterTask(rcsReporterTask);
// 鏇存柊鎺ラ┏浣嶇疆鐘舵��
@@ -433,6 +484,15 @@
mesService.applyOutStation(apply);
} else if (RcsRetMethodEnum.ARRIVE_OFF_STATION.getCode().equals(method)) {
mesService.outStation(apply);
+ // agv缁х画鎵ц
+ // 婧愮珯鐐规槸浜х嚎锛岀绔欏畬鎴愬悗缁檙cs鍙嶉缁х画鎵ц
+ if(task.getSourceStaNo().contains("TOOL")) {
+ TransInOutStationAllow inOutStationAllow = new TransInOutStationAllow();
+ inOutStationAllow.setTaskno(robotTaskCode);
+ inOutStationAllow.setStatus("Y");
+ inOutStationAllow.setAgvCode(singleRobotCode);
+ mesService.allowOutStation(inOutStationAllow);
+ }
}
} break;
case ARRIVE_ON_STATION: {
--
Gitblit v1.9.1