From 4c88c0606bb333ac1ad4c1ad536a848f7d27fdb7 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期三, 23 四月 2025 12:43:37 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/utils/CrnOperaUtils.java | 174 +++++++++++++++++++ src/main/java/com/zy/asrs/utils/Utils.java | 17 - src/main/java/com/zy/asrs/controller/OpenController.java | 4 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 193 +++++++++------------ src/main/java/com/zy/core/MainProcess.java | 6 src/main/java/com/zy/asrs/controller/CrnController.java | 136 ++------------ 6 files changed, 285 insertions(+), 245 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java index 2ee0692..c459918 100644 --- a/src/main/java/com/zy/asrs/controller/CrnController.java +++ b/src/main/java/com/zy/asrs/controller/CrnController.java @@ -18,9 +18,8 @@ import com.zy.asrs.service.BasCrnpService; import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.WrkMastService; -import com.zy.asrs.service.impl.MainServiceImpl; import com.zy.asrs.utils.CommandUtils; -import com.zy.asrs.utils.VersionUtils; +import com.zy.asrs.utils.CrnOperaUtils; import com.zy.core.CrnThread; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; @@ -39,7 +38,6 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; -import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -57,9 +55,6 @@ private String wmsUrl; @Value("${wms.movePath}") private String movePath; - - - @Autowired private SlaveProperties slaveProperties; @Autowired @@ -69,9 +64,9 @@ @Autowired private BasCrnpService basCrnpService; @Autowired - private MainServiceImpl mainService; - @Autowired private LocMastService locMastService; + @Autowired + private CrnOperaUtils crnOperaUtils; @ManagerAuth(memo = "杩涜涓殑鍛戒护") @@ -380,19 +375,10 @@ // if (SystemProperties.WCS_RUNNING_STATUS.get()) { // return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�"); // } - CrnCommand command = new CrnCommand(); - command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - command.setTaskNo((short) 0); // 宸ヤ綔鍙� - command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡 - command.setSourcePosX(param.getSourceRow()); // 婧愬簱浣嶆帓 - command.setSourcePosY(param.getSourceBay()); // 婧愬簱浣嶅垪 - command.setSourcePosZ(param.getSourceLev()); // 婧愬簱浣嶅眰 - command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺� - command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒� - command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞� // command.setCommand((short)1); - return crnControl(command)?R.ok():R.error(); + + boolean result = crnOperaUtils.crnPut(param); + return result ? R.ok() : R.error(); } @ManagerAuth(memo = "鍑哄簱") @@ -402,19 +388,10 @@ // if (SystemProperties.WCS_RUNNING_STATUS.get()) { // return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�"); // } - CrnCommand command = new CrnCommand(); - command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - command.setTaskNo((short) 0); // 宸ヤ綔鍙� - command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡 - command.setSourcePosX(param.getSourceRow()); // 婧愬簱浣嶆帓 - command.setSourcePosY(param.getSourceBay()); // 婧愬簱浣嶅垪 - command.setSourcePosZ(param.getSourceLev()); // 婧愬簱浣嶅眰 - command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺� - command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒� - command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞� // command.setCommand((short)1); - return crnControl(command)?R.ok():R.error(); + + boolean result = crnOperaUtils.crnTake(param); + return result ? R.ok() : R.error(); } @ManagerAuth(memo = "搴撲綅杞Щ") @@ -424,24 +401,10 @@ // if (SystemProperties.WCS_RUNNING_STATUS.get()) { // return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�"); // } - CrnCommand command = new CrnCommand(); - command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - command.setTaskNo((short) 0); // 宸ヤ綔鍙� - command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡 - command.setSourcePosZ(param.getSourceRow()); // 婧愬簱浣嶆帓 - command.setSourcePosX(param.getSourceBay()); // 婧愬簱浣嶅垪 - command.setSourcePosY(param.getSourceLev()); // 婧愬簱浣嶅眰 - command.setDestinationPosZ(param.getRow()); // 鐩爣搴撲綅鎺� - command.setDestinationPosX(param.getBay()); // 鐩爣搴撲綅鍒� - command.setDestinationPosY(param.getLev()); // 鐩爣搴撲綅灞� // command.setCommand((short)1); - LocMast sourceLoc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getSourcePosX()) - .eq("bay1", command.getSourcePosY()).eq("lev1", command.getSourcePosZ())); - LocMast loc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getDestinationPosX()) - .eq("bay1", command.getDestinationPosY()).eq("lev1", command.getDestinationPosZ())); - VersionUtils.locMoveCheckLocType(sourceLoc, loc); - return crnControl(command)?R.ok():R.error(); + + boolean result = crnOperaUtils.crnStockMove(param); + return result ? R.ok() : R.error(); } @ManagerAuth(memo = "绔欏埌绔�") @@ -451,18 +414,9 @@ // if (SystemProperties.WCS_RUNNING_STATUS.get()) { // return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�"); // } - CrnCommand command = new CrnCommand(); - command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - command.setTaskNo((short) 0); // 宸ヤ綔鍙� - command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡 - command.setSourcePosX(param.getSourceStaNo()); // 婧愬簱浣嶆帓 - command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 - command.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰 - command.setDestinationPosX(param.getStaNo()); // 鐩爣搴撲綅鎺� - command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� - command.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞� - return crnControl(command)?R.ok():R.error(); + + boolean result = crnOperaUtils.crnSiteMove(param); + return result ? R.ok() : R.error(); } @ManagerAuth(memo = "鍥炲師鐐�") @@ -472,18 +426,9 @@ // if (SystemProperties.WCS_RUNNING_STATUS.get()) { // return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�"); // } - CrnCommand command = new CrnCommand(); - command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - command.setTaskNo((short) 0); // 宸ヤ綔鍙� - command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - command.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡 - command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 - command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 - command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 - command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� - command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� - command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� - return crnControl(command)?R.ok():R.error(); + + boolean result = crnOperaUtils.crnBacOrigin(param); + return result ? R.ok() : R.error(); } @ManagerAuth(memo = "鍙嶅師鐐�") @@ -493,18 +438,9 @@ // if (SystemProperties.WCS_RUNNING_STATUS.get()) { // return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�"); // } - CrnCommand command = new CrnCommand(); - command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - command.setTaskNo((short) 0); // 宸ヤ綔鍙� - command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - command.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡 - command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 - command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 - command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 - command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� - command.setDestinationPosY((short) 22); // 鐩爣搴撲綅鍒� - command.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞� - return crnControl(command)?R.ok():R.error(); + + boolean result = crnOperaUtils.reverseOrigin(param); + return result ? R.ok() : R.error(); } // @ManagerAuth(memo = "鍧愭爣绉诲姩") @@ -532,19 +468,8 @@ // if (SystemProperties.WCS_RUNNING_STATUS.get()) { // return R.error("wcs绯荤粺鐘舵�佷负寮�鍚�"); // } - CrnCommand command = new CrnCommand(); - command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - command.setTaskNo((short) 0); // 宸ヤ綔鍙� - command.setAckFinish((short) 1); // 浠诲姟瀹屾垚纭浣� - command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡 - command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 - command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 - command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 - command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� - command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� - command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� - command.setCommand((short)0); - return crnControl(command)?R.ok():R.error(); + boolean result = crnOperaUtils.crnTaskComplete(param.getCrnNo()); + return result ? R.ok() : R.error(); } // @ManagerAuth(memo = "鏆傚仠") @@ -569,18 +494,9 @@ if (param.getCrnNo() == null) { throw new CoolException("璇烽�夋嫨鍫嗗灈鏈�"); } - CrnCommand command = new CrnCommand(); - command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� - command.setTaskNo((short) 0); // 宸ヤ綔鍙� - command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡 - command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 - command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 - command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 - command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� - command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� - command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� - return crnControl(command)?R.ok():R.error(); + + boolean result = crnOperaUtils.crnClearCommand(param); + return result ? R.ok() : R.error(); } @ManagerAuth(memo = "鎵嬪姩澶嶄綅") diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java index 13cef9e..8bb5a66 100644 --- a/src/main/java/com/zy/asrs/controller/OpenController.java +++ b/src/main/java/com/zy/asrs/controller/OpenController.java @@ -211,7 +211,7 @@ map.put("Msg","浠诲姟绫诲瀷涓虹┖锛�"); return map; } - String fusion = Utils.Fusion(param.getOriginalRowNo(), param.getOriginalFloorNo(), param.getOriginalColumnNo()); + String fusion = Utils.getLocNo(param.getOriginalRowNo(), param.getOriginalFloorNo(), param.getOriginalColumnNo()); param.setStartPoint(fusion); LocMast locMast = locMastService.selectByLocNo(param.getStartPoint()); if(Cools.isEmpty(locMast)){ @@ -238,7 +238,7 @@ return r; } }else if (param.getStereoscopicTaskType() == 3){ - String fusion1 = Utils.Fusion(param.getGoalRowNo(), param.getGoalFloorNo(), param.getGoalColumnNo()); + String fusion1 = Utils.getLocNo(param.getGoalRowNo(), param.getGoalFloorNo(), param.getGoalColumnNo()); param.setTerminalNo(fusion1); //绉诲簱浠诲姟鍒涘缓 r = openService.taskCreate(new TaskCreateParam(param,locMast.getCrnNo())); 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 391da4e..4ce4fbf 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -4,19 +4,16 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; -import com.core.common.R; import com.core.exception.CoolException; -import com.zy.asrs.controller.CrnController; -import com.zy.asrs.controller.SiteController; import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.domain.enums.WorkNoType; -import com.zy.asrs.domain.param.CrnOperatorParam; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.Result; import com.zy.asrs.entity.param.StorageEscalationParam; import com.zy.asrs.mapper.*; import com.zy.asrs.service.*; import com.zy.asrs.utils.CommandUtils; +import com.zy.asrs.utils.CrnOperaUtils; import com.zy.asrs.utils.Utils; import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; @@ -80,16 +77,16 @@ private StaDescMapper staDescMapper; @Autowired private CommandInfoService commandInfoService; - @Autowired private OpenServiceImpl openServiceImpl; @Autowired private StaDescService staDescService; - @Autowired private ApiLogService apiLogService; @Autowired private CommonService commonService; + @Autowired + private CrnOperaUtils crnOperaUtils; @Value("${wms.count}") private Integer maxCount; @Autowired @@ -102,18 +99,13 @@ private String TaskExecCallback; @Value("${wms.taskStatusFeedbackPath}") private String taskStatusFeedbackPath; - @Autowired - private CrnController crnController; - @Autowired - private SiteController siteController; - public synchronized void generateStoreWrkFile1() throws IOException, InterruptedException { + public synchronized void generateStoreWrkFile1() { try { // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { // 閬嶅巻鍏ュ簱鍙� for (DevpSlave.Sta inSta : devp.getInSta()) { - StorageEscalationParam storageEscalationParam = new StorageEscalationParam(); // 鑾峰彇鍏ュ簱绔欎俊鎭� DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); @@ -166,113 +158,90 @@ if (barcodeThread == null) { continue; } - String BoxNo = barcodeThread.getBarcode(); - TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo)); - if (!Cools.isEmpty(taskWrk1)) { - log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�"); - if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) { - StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); - if (Cools.isEmpty(staDesc)) { - return; - } else { - continue; - } - } + + String barcode = barcodeThread.getBarcode(); + TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode)); + if (taskWrk1 != null) { + log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�"); + continue; } + + HashMap<String, Object> requestParam = new HashMap<>(); + requestParam.put("BoxNo", barcode);//鎵樼洏鐮� + requestParam.put("TerminalNo", inSta.getStaNo());//鍏ュ簱鍙� if (back) { - storageEscalationParam.setWCSStatus(1); - storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg); + requestParam.put("WCSStatus", 1);//澶辫触 + requestParam.put("WCSErrorMessage", errMsg);//澶辫触鍘熷洜 + }else { + requestParam.put("WCSStatus", 0);//鎴愬姛 } - log.info("缁勬墭鍏ュ簱={}", storageEscalationParam); - storageEscalationParam.setBoxNo(BoxNo); + String response = ""; Boolean success = false; try { response = new HttpHandler.Builder() .setUri(wmsUrl) .setPath(inboundTaskApplyPath) - .setJson(JSON.toJSONString(storageEscalationParam)) + .setJson(JSON.toJSONString(requestParam)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); - if(back){ - if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){ - staProtocol.setStaNo((short)105); - } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) { - staProtocol.setStaNo((short)107); - }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) { - staProtocol.setStaNo((short)109); - }else if (staProtocol.getWorkNo()>=9876 && staProtocol.getWorkNo() <= 9900){ - staProtocol.setStaNo((short)110); - } + + if (back) { devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - }else{ - if (!Cools.isEmpty(response)&&!Cools.isEmpty(jsonObject.get("ReturnStatus"))&&jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) { - Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class); - // 鍒涙柊涓�涓叆搴撳伐浣滄。 - TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo()); - if (Cools.isEmpty(taskWrk)) { - taskWrk = createTask1(result, BoxNo); - if (Cools.isEmpty(taskWrk)) { - log.error("搴撲綅寮傚父锛屽簱浣嶅彿锛�={}", taskWrk.getOriginTargetPoint()); - } else { - taskWrkService.insert(taskWrk); - 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.setStaNo(staDesc.getCrnStn().shortValue()); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - HashMap<String, Object> hashMap = new HashMap<>(); - hashMap.put("TaskNo",taskWrk.getTaskNo()); - try { - //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS - response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath(taskStatusFeedbackPath) - .setJson(JSON.toJSONString(hashMap)) - .build() - .doPost(); - JSONObject jsonObject1 = JSON.parseObject(response); - Boolean bool = false; - if(jsonObject1.get("ReturnStatus").equals(0)){ - taskWrk.setStatus(2);//娲惧彂浠诲姟 - bool = true; - taskWrkService.updateById(taskWrk); - } - apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms" - , wmsUrl + TaskExecCallback - , null - , "127.0.0.1" - , JSON.toJSONString(hashMap) - , response - , bool - ); - } catch (Exception e) { + continue; + } - } - } - } else { -// staProtocol.setWorkNo((short) 9991); - if(staProtocol.getWorkNo()>=9801&&staProtocol.getWorkNo()<=9825){ - staProtocol.setStaNo((short)105); - } else if (staProtocol.getWorkNo()>=9826&&staProtocol.getWorkNo()<=9850) { - staProtocol.setStaNo((short)107); - }else if (staProtocol.getWorkNo()>=9851&&staProtocol.getWorkNo()<=9875) { - staProtocol.setStaNo((short)109); - }else{ - staProtocol.setStaNo((short)110); - } - devpThread.setPakMk(staProtocol.getSiteId(), false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + int returnStatus = Integer.parseInt(jsonObject.get("ReturnStatus").toString()); + if (returnStatus == 0) { + Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class); + // 鍒涙柊涓�涓叆搴撳伐浣滄。 + TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo()); + if(taskWrk != null) { + log.info("浠诲姟锛�" + result.getTaskNo() + "宸茬粡瀛樺湪"); + continue; + } + + taskWrk = createTask1(result, barcode); + if (!taskWrkService.insert(taskWrk)) { + log.info("浠诲姟锛�" + result.getTaskNo() + "浠诲姟鍒涘缓澶辫触"); + continue; + } + + 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.setStaNo(staDesc.getCrnStn().shortValue()); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + + HashMap<String, Object> hashMap = new HashMap<>(); + hashMap.put("TaskNo", taskWrk.getTaskNo()); + try { + //寮�濮嬩笂鎶�,浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS + response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath(taskStatusFeedbackPath) + .setJson(JSON.toJSONString(hashMap)) + .build() + .doPost(); + JSONObject jsonObject1 = JSON.parseObject(response); + boolean bool = false; + if(jsonObject1.get("ReturnStatus").equals(0)){ + taskWrk.setStatus(2);//娲惧彂浠诲姟 + bool = true; + taskWrkService.updateById(taskWrk); } + apiLogService.save("wcs寮�濮嬪叆搴撲换鍔′笂鎶ms" + , wmsUrl + TaskExecCallback + , null + , "127.0.0.1" + , JSON.toJSONString(hashMap) + , response + , bool + ); + } catch (Exception e) { - } else { -// staProtocol.setWorkNo((short) 9991); - staProtocol.setStaNo(inSta.getBackSta().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } } } catch (Exception e) { @@ -295,12 +264,12 @@ , wmsUrl + inboundTaskApplyPath , null , "127.0.0.1" - , JSON.toJSONString(storageEscalationParam) + , JSON.toJSONString(requestParam) , response , success ); } - log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(BoxNo)); + log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(barcode)); log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(response)); } } @@ -767,8 +736,8 @@ try { taskWrkService.updateById(taskWrk); } catch (Exception e) { + e.printStackTrace(); log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); - log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e); } } } @@ -1095,11 +1064,9 @@ continue; } //纭瀹屾垚淇″彿 - CrnOperatorParam crnOperatorParam = new CrnOperatorParam(); - crnOperatorParam.setCrnNo(crn.getId()); - R r = crnController.crnTaskComplete(crnOperatorParam); + boolean result = crnOperaUtils.crnTaskComplete(crn.getId()); Thread.sleep(1000); - if(!r.get("code").equals(200)){ + if(!result){ return; } if (!Cools.isEmpty(taskWrk)) { @@ -1337,8 +1304,11 @@ } private TaskWrk createTask1(Result result, String barcode) { - String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn()); - + String locNo = Utils.getLocNo(result.getRow(), result.getFloor(), result.getColumn()); + LocMast locMast = locMastService.selectByLocNo(locNo); + if (locMast == null) { + throw new CoolException("搴撲綅涓嶅瓨鍦�"); + } Date now = new Date(); TaskWrk taskWrk = new TaskWrk(); @@ -1350,7 +1320,6 @@ taskWrk.setIoType(1);//浠诲姟绫诲瀷 taskWrk.setIoPri(13);//浼樺厛绾� taskWrk.setBarcode(barcode);//鏉$爜 - LocMast locMast = locMastService.selectByLocNo(locNo); taskWrk.setCrnNo(locMast.getCrnNo()); taskWrk.setTargetPoint(locNo); taskWrk.setStartPoint("116"); diff --git a/src/main/java/com/zy/asrs/utils/CrnOperaUtils.java b/src/main/java/com/zy/asrs/utils/CrnOperaUtils.java new file mode 100644 index 0000000..b037ca6 --- /dev/null +++ b/src/main/java/com/zy/asrs/utils/CrnOperaUtils.java @@ -0,0 +1,174 @@ +package com.zy.asrs.utils; + +import com.core.exception.CoolException; +import com.zy.asrs.domain.param.CrnOperatorParam; +import com.zy.core.CrnThread; +import com.zy.core.cache.SlaveConnection; +import com.zy.core.enums.CrnTaskModeType; +import com.zy.core.enums.SlaveType; +import com.zy.core.model.Task; +import com.zy.core.model.command.CrnCommand; +import com.zy.core.model.protocol.CrnProtocol; +import org.springframework.stereotype.Component; + +@Component +public class CrnOperaUtils { + + //鍫嗗灈鏈哄叆搴� + public boolean crnPut(CrnOperatorParam param){ + CrnCommand command = new CrnCommand(); + command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + command.setTaskNo((short) 0); // 宸ヤ綔鍙� + command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡 + command.setSourcePosX(param.getSourceRow()); // 婧愬簱浣嶆帓 + command.setSourcePosY(param.getSourceBay()); // 婧愬簱浣嶅垪 + command.setSourcePosZ(param.getSourceLev()); // 婧愬簱浣嶅眰 + command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺� + command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒� + command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞� + + return crnControl(command); + } + + //鍫嗗灈鏈哄嚭搴� + public boolean crnTake(CrnOperatorParam param){ + CrnCommand command = new CrnCommand(); + command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + command.setTaskNo((short) 0); // 宸ヤ綔鍙� + command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡 + command.setSourcePosX(param.getSourceRow()); // 婧愬簱浣嶆帓 + command.setSourcePosY(param.getSourceBay()); // 婧愬簱浣嶅垪 + command.setSourcePosZ(param.getSourceLev()); // 婧愬簱浣嶅眰 + command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺� + command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒� + command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞� + + return crnControl(command); + } + + //搴撲綅杞Щ + public boolean crnStockMove(CrnOperatorParam param){ + CrnCommand command = new CrnCommand(); + command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + command.setTaskNo((short) 0); // 宸ヤ綔鍙� + command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡 + command.setSourcePosZ(param.getSourceRow()); // 婧愬簱浣嶆帓 + command.setSourcePosX(param.getSourceBay()); // 婧愬簱浣嶅垪 + command.setSourcePosY(param.getSourceLev()); // 婧愬簱浣嶅眰 + command.setDestinationPosZ(param.getRow()); // 鐩爣搴撲綅鎺� + command.setDestinationPosX(param.getBay()); // 鐩爣搴撲綅鍒� + command.setDestinationPosY(param.getLev()); // 鐩爣搴撲綅灞� + + return crnControl(command); + } + + //绔欏埌绔� + public boolean crnSiteMove(CrnOperatorParam param){ + CrnCommand command = new CrnCommand(); + command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + command.setTaskNo((short) 0); // 宸ヤ綔鍙� + command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + command.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡 + command.setSourcePosX(param.getSourceStaNo()); // 婧愬簱浣嶆帓 + command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 + command.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰 + command.setDestinationPosX(param.getStaNo()); // 鐩爣搴撲綅鎺� + command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� + command.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞� + + return crnControl(command); + } + + //鍥炲師鐐� + public boolean crnBacOrigin(CrnOperatorParam param){ + CrnCommand command = new CrnCommand(); + command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + command.setTaskNo((short) 0); // 宸ヤ綔鍙� + command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + command.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡 + command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 + command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 + command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 + command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� + command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� + command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� + + return crnControl(command); + } + + //鍙嶅師鐐� + public boolean reverseOrigin(CrnOperatorParam param){ + CrnCommand command = new CrnCommand(); + command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + command.setTaskNo((short) 0); // 宸ヤ綔鍙� + command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + command.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡 + command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 + command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 + command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 + command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� + command.setDestinationPosY((short) 22); // 鐩爣搴撲綅鍒� + command.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞� + + return crnControl(command); + } + + //浠诲姟瀹屾垚 + public boolean crnTaskComplete(Integer crnNo) { + CrnCommand command = new CrnCommand(); + command.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙� + command.setTaskNo((short) 0); // 宸ヤ綔鍙� + command.setAckFinish((short) 1); // 浠诲姟瀹屾垚纭浣� + command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡 + command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 + command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 + command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 + command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� + command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� + command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� + command.setCommand((short)0); + + return crnControl(command); + } + + //娓呴櫎鍛戒护 + public boolean crnClearCommand(CrnOperatorParam param){ + CrnCommand command = new CrnCommand(); + command.setCrnNo(param.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + command.setTaskNo((short) 0); // 宸ヤ綔鍙� + command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� + command.setTaskMode(CrnTaskModeType.NONE); // 浠诲姟妯″紡 + command.setSourcePosX((short) 0); // 婧愬簱浣嶆帓 + command.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 + command.setSourcePosZ((short) 0); // 婧愬簱浣嶅眰 + command.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� + command.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� + command.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� + + return crnControl(command); + } + + private boolean crnControl(CrnCommand command) { + if (command.getCrnNo() == null) { + return false; + } + + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, command.getCrnNo()); + if (crnThread == null) { + throw new CoolException("鍫嗗灈鏈轰笉鍦ㄧ嚎"); + } + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol == null) { + throw new CoolException("鍫嗗灈鏈轰笉鍦ㄧ嚎"); + } + if (CommandUtils.offer(SlaveType.Crn, command.getCrnNo(), new Task(2, command), false)) { + return true; + } else { + throw new CoolException("鍛戒护涓嬪彂澶辫触"); + } + } + +} diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java index c16eb10..e461afe 100644 --- a/src/main/java/com/zy/asrs/utils/Utils.java +++ b/src/main/java/com/zy/asrs/utils/Utils.java @@ -337,20 +337,7 @@ } } - public static String Fusion(int x, int y, int z){ - String locNo="0"+x; - if(z>=10){ - locNo=locNo+"0"+z; - }else{ - locNo=locNo+"00"+z; - } - if(y>=10){ - locNo=locNo+y; - }else { - locNo=locNo+"0"+y; - } - - return locNo; + public static String getLocNo(Number row, Number bay, Number lev) { + return zerofill(String.valueOf(row), 2) + zerofill(String.valueOf(bay), 3) + zerofill(String.valueOf(lev), 2); } - } diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index b8b7b06..b7418ef 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -5,7 +5,6 @@ import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.annotation.PreDestroy; @@ -42,8 +41,6 @@ continue; } - // 婕旂ず -// mainService.crnDemoOfLocMove1(); // 鍏ュ簱 ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。 mainService.generateStoreWrkFile1(); // 缁勬墭 // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 @@ -61,9 +58,6 @@ // mainService.autoDistribute(); //鑷姩瀹屾垚浠诲姟 // mainService.autoCompleteTask(); - //agv鍙栨斁璐у畬鎴� -// mainService.autoCompleteAGV(); - } catch (Exception e) { e.printStackTrace(); } -- Gitblit v1.9.1