From 49a2abb6748b5013c24cc4257b9cc4f060720250 Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期一, 29 一月 2024 20:55:40 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 109 ++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 84 insertions(+), 25 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 d46d702..0b0eabe 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -89,6 +89,9 @@
@Autowired
private StaDescService staDescService;
+ @Autowired
+ private ApiLogService apiLogService;
+
@Value("${wms.url}")
private String wmsUrl;
@Value("${wms.movePath}")
@@ -152,12 +155,14 @@
if (workNo == 0 && stano == 0){
continue;
}
+ if (!staProtocol.isPakMk()){
+ continue;
+ }
// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
staProtocol.setWorkNo(workNo);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-
TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo));
if (taskWrk != null) {
taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず
@@ -189,20 +194,23 @@
continue;
}
//StaDesc staDesc1 = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("stn_no",inSta.getBackSta()));
- if (taskWrk.getTargetPoint() != null && taskWrk.getStartPoint() != null && taskWrk.getWrkNo() != null && taskWrk.getWrkNo().shortValue() != workNo){
+ if (taskWrk.getTargetPoint() != null && taskWrk.getStartPoint() != null){
+ if ( taskWrk.getWrkNo() != null && taskWrk.getWrkNo().shortValue() == workNo ){
+ continue;
+ }
//鑾峰彇鍫嗗灈鏈虹珯鐐�
StaDesc staDesc = new StaDesc();
if (devp.getId() <= 1){
staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
- .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).lt("crn_stn", 200));
+ .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).lt("stn_no", 200));
}else {
staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
- .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).ge("crn_stn", 200));
+ .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).lt("stn_no", 400).ge("stn_no", 250));
}
staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
- Thread.sleep(200);
+ Thread.sleep(500);
}else {
//TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo());
toWmsDTO.setWarehouseId("1688469798893297665");
@@ -223,6 +231,14 @@
log.error("wms閫氳澶辫触,"+e.getMessage());
continue;
}
+ apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛"
+ ,wmsUrl+"wcsManager/wcsInterface/inboundTaskApply"
+ ,null
+ ,"127.0.0.1"
+ ,JSON.toJSONString(toWmsDTO)
+ ,response
+ ,true
+ );
JSONObject jsonObject = JSON.parseObject(response);
if (jsonObject.getInteger("code").equals(200)) {
GetWmsDto getWmsDto = JSON.parseObject(jsonObject.get("data").toString(), GetWmsDto.class);
@@ -563,6 +579,13 @@
if (commandInfos.isEmpty()) {
continue;//鍛戒护绌�
}
+
+ //鍒ゆ柇鏈鍛戒护鏄惁鎵ц
+ CommandInfo commandInfo2 = commandInfos.get(commandInfos.size() - 1);
+ if (commandInfo2.getCommandStatus() != CommandStatusType.CREATE.id) {
+ continue;//鎸囦护宸叉墽琛�
+ }
+
CommandInfo commandInfo = commandInfos.get(commandStep);
CommandPackage commandPackage = JSON.parseObject(commandInfo.getCommand(), CommandPackage.class);//鍙栧嚭鍛戒护鎶ユ枃
CrnCommand crnCommand = JSON.parseObject(commandPackage.getCommand().toString(), CrnCommand.class);
@@ -605,6 +628,24 @@
.eq("wrk_sts",11)
.eq("io_type",3));
for (TaskWrk taskWrk : taskWrks){
+
+ // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
+ if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) {
+ String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint());
+ TaskWrk hallowLocNoTask = taskWrkMapper.selectByStartPoint(shallowLocNo);
+ if (!Cools.isEmpty(hallowLocNoTask)){
+ continue;
+ }
+ }
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+ continue;
+ }
+
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
+ continue;
+ }
if (Cools.isEmpty(taskWrk.getTargetPoint())){
List<Integer> list = openServiceImpl.getInEnableRoadway();
Map<String, Object> map = new HashMap<>();
@@ -642,7 +683,7 @@
continue;
}
- }
+ }
if (taskWrk == null || Cools.isEmpty(taskWrk.getTargetPoint()) || taskWrk.getTargetPoint().equals("") || taskWrk.getWrkNo() == null) {
continue;
}
@@ -654,15 +695,7 @@
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- // 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
- continue;
- }
- // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
- if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
- continue;
- }
// 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
@@ -715,17 +748,35 @@
CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
CrnProtocol crnProtocol = crnThread.getCrnProtocol();
if (crnProtocol == null) { continue; }
+
// 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) {
+ //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+ TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(),crnProtocol.getTaskNo().intValue());
+ if (Cools.isEmpty(taskWrk)) {
+// log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+ continue;
+ }
//鑾峰彇鎸囦护ID
Integer commandId = crnProtocol.getCommandId();
- CommandInfo commandInfo = commandInfoService.selectById(commandId);
+ CommandInfo commandInfo = new CommandInfo();
+ if (Cools.isEmpty(commandId)){
+ commandInfo = commandInfoService.selectOne(new EntityWrapper<CommandInfo>()
+ .eq("wrk_no",crnProtocol.getTaskNo())
+ .eq("device","Crn"));
+ }else {
+ commandInfo = commandInfoService.selectById(commandId);
+ }
+
+
if (commandInfo == null) {
//鎸囦护涓嶅瓨鍦�
continue;
}
-
+ if (commandInfo.getCommandStatus() == 3){
+ continue;
+ }
commandInfo.setCommandStatus(CommandStatusType.COMPLETE.id);//鎸囦护瀹屾垚
commandInfo.setCompleteTime(new Date());//鎸囦护瀹屾垚鏃堕棿
if (commandInfoService.updateById(commandInfo)) {//淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
@@ -793,20 +844,20 @@
if (crnProtocol == null) {
continue;
}
- if (true) {
+ if (false) {
// if (crnProtocol.getModeType() != CrnModeType.STOP) {
// 鏈変换鍔�
if (crnProtocol.getTaskNo() != 0) {
BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue());
// 鏈夊紓甯�
if (latest == null) {
- if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) {
+ if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) {
WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
if (wrkMast == null) {
continue;
}
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
- String errName = crnError==null? String.valueOf(crnProtocol.getAlarm1()):crnError.getErrName();
+ BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
+ String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName();
BasErrLog basErrLog = new BasErrLog(
null, // 缂栧彿
wrkMast.getWrkNo(), // 宸ヤ綔鍙�
@@ -849,11 +900,11 @@
} else {
BasErrLog latest = basErrLogService.findLatest(crn.getId());
// 鏈夊紓甯�
- if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) {
+ if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm() > 0) {
// 璁板綍鏂板紓甯�
- if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm1().intValue())) {
- BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1());
- String errName = crnError==null? String.valueOf(crnProtocol.getAlarm1()):crnError.getErrName();
+ if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) {
+ BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm());
+ String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName();
BasErrLog basErrLog = new BasErrLog(
null, // 缂栧彿
null, // 宸ヤ綔鍙�
@@ -925,7 +976,7 @@
for (TaskWrk taskWrk : taskWrks) {
//鑾峰彇鍛戒护闆嗗悎
List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo());
- if (taskWrk.getCommandStep() != commandInfos.size()) {
+ if (taskWrk.getCommandStep() < commandInfos.size()) {
continue;//褰撳墠姝ュ簭娌℃湁鍒拌揪鏈�鍚庝竴鏉″懡浠�
}
@@ -1023,6 +1074,14 @@
}catch (Exception e){
log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛澶辫触");
}
+ apiLogService.save("鍫嗗灈鏈哄紑濮嬭繍琛�"
+ ,wmsUrl+"wcsManager/wcsInterface/taskStatusFeedback"
+ ,null
+ ,"127.0.0.1"
+ ,JSON.toJSONString(taskOverToWms)
+ ,response
+ ,true
+ );
return response;
}
--
Gitblit v1.9.1