From 8b9b604e379f92dc61fb55e1454b7f1d107428d9 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期一, 16 六月 2025 16:14:17 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 383 +++++++++++++++++++++++++++--------------------------- 1 files changed, 191 insertions(+), 192 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 8e98ef9..01f354a 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -12,7 +12,6 @@ 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.entity.param.TaskOverToWms; import com.zy.asrs.mapper.BasCrnErrorMapper; @@ -388,172 +387,172 @@ } } - //鎷f枡鍥炲簱 - public synchronized void PickingAndReturningToTheWarehouse() throws IOException, InterruptedException { - try { - // 鏍规嵁杈撻�佺嚎plc閬嶅巻 - for (DevpSlave devp : slaveProperties.getDevp()) { - // 閬嶅巻鍏ュ簱鍙� - for (DevpSlave.Sta inSta : devp.getPickSta()) { - StorageEscalationParam storageEscalationParam = new StorageEscalationParam(); - // 鑾峰彇鍏ュ簱绔欎俊鎭� - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); - StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); - if (staProtocol == null) { - continue; - } else { - staProtocol = staProtocol.clone(); - } - Short workNo = staProtocol.getWorkNo(); - //led - LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); - - // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() && staProtocol.isLoading() - && staProtocol.isInEnable() - && staProtocol.isPakMk()) { - // 鑾峰彇鏉$爜鎵弿浠俊鎭� - String BoxNo = ""; - //绔欑偣鎷f枡鍥炲簱浠诲姟鏄細鏈変竴鏉� - TaskWrk taskWrkk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("start_point", staProtocol.getSiteId())); - if (!Cools.isEmpty(taskWrkk)) { - continue; - } - if (!staProtocol.isEmptyMk() && staProtocol.getWorkNo() < 9990) { - - TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("wrk_no", workNo)); - - if (!Cools.isEmpty(taskWrk1)) { - BoxNo = taskWrk1.getBarcode(); - } else { - TaskWrkLog taskWrkLog = taskWrkLogService.selectOne(new EntityWrapper<TaskWrkLog>().eq("wrk_no", workNo).orderBy("modi_time", false)); - if (taskWrkLog != null) { - BoxNo = taskWrkLog.getBarcode(); - } - } - } - log.info("缁勬墭鍏ュ簱={}", storageEscalationParam); - storageEscalationParam.setBoxNo(BoxNo); - //鏄惁婊℃澘 1婊℃澘 0绌烘澘 - storageEscalationParam.setStaType(staProtocol.isEmptyMk() ? 0 : 1); - //搴撲綅绫诲瀷 1楂樺簱浣� 0浣庡簱浣� - storageEscalationParam.setLocType(staProtocol.isHigh() ? 1 : 0); - storageEscalationParam.setTerminalNo(staProtocol.getSiteId()); - String response = ""; - Boolean success = false; - try { - response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath(inboundTaskApplyPath) - .setJson(JSON.toJSONString(storageEscalationParam)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - - 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, staProtocol.getSiteId()); - 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) { - - } - } - } else { - // led 寮傚父鏄剧ず - if (ledThread != null) { - String errorMsg = "浠诲姟宸插瓨鍦紒锛侊紒锛�"; - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg)); - } - staProtocol.setWorkNo((short) 9991); - staProtocol.setStaNo(inSta.getBackSta().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - } - - } else { - // led 寮傚父鏄剧ず - if (ledThread != null) { - String errorMsg = jsonObject.getString("ErrorMessage"); - MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg)); - } - 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) { - log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触"); - log.error("寮傚父淇℃伅鎵撳嵃锛�" + e); - try { - BasDevp basDevp = basDevpService.selectById(inSta.getStaNo()); - if (Cools.isEmpty(basDevp)) { - log.error("绔欑偣鍙峰紓甯�" + inSta.getStaNo()); - } else if (basDevp.getStaErr() != 0) { - basDevp.setStaErr(2); - basDevpService.updateById(basDevp); - } - } catch (Exception e1) { - // 閫�鍥� - log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + "寮傚父淇℃伅" + e1); - } - } finally { - apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛" - , wmsUrl + inboundTaskApplyPath - , null - , "127.0.0.1" - , JSON.toJSONString(storageEscalationParam) - , response - , success - ); - } - log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(BoxNo)); - log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(response)); - } - } - } - } catch (Exception e) { - log.error("generateStoreWrkFile e", e); - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - } - } +// //鎷f枡鍥炲簱 +// public synchronized void PickingAndReturningToTheWarehouse() throws IOException, InterruptedException { +// try { +// // 鏍规嵁杈撻�佺嚎plc閬嶅巻 +// for (DevpSlave devp : slaveProperties.getDevp()) { +// // 閬嶅巻鍏ュ簱鍙� +// for (DevpSlave.Sta inSta : devp.getPickSta()) { +// StorageEscalationParam storageEscalationParam = new StorageEscalationParam(); +// // 鑾峰彇鍏ュ簱绔欎俊鎭� +// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); +// StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); +// if (staProtocol == null) { +// continue; +// } else { +// staProtocol = staProtocol.clone(); +// } +// Short workNo = staProtocol.getWorkNo(); +// //led +// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); +// +// // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 +// if (staProtocol.isAutoing() && staProtocol.isLoading() +// && staProtocol.isInEnable() +// && staProtocol.isPakMk()) { +// // 鑾峰彇鏉$爜鎵弿浠俊鎭� +// String BoxNo = ""; +// //绔欑偣鎷f枡鍥炲簱浠诲姟鏄細鏈変竴鏉� +// TaskWrk taskWrkk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("start_point", staProtocol.getSiteId())); +// if (!Cools.isEmpty(taskWrkk)) { +// continue; +// } +// if (!staProtocol.isEmptyMk() && staProtocol.getWorkNo() < 9990) { +// +// TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("wrk_no", workNo)); +// +// if (!Cools.isEmpty(taskWrk1)) { +// BoxNo = taskWrk1.getBarcode(); +// } else { +// TaskWrkLog taskWrkLog = taskWrkLogService.selectOne(new EntityWrapper<TaskWrkLog>().eq("wrk_no", workNo).orderBy("modi_time", false)); +// if (taskWrkLog != null) { +// BoxNo = taskWrkLog.getBarcode(); +// } +// } +// } +// log.info("缁勬墭鍏ュ簱={}", storageEscalationParam); +// storageEscalationParam.setBoxNo(BoxNo); +// //鏄惁婊℃澘 1婊℃澘 0绌烘澘 +// storageEscalationParam.setStaType(staProtocol.isEmptyMk() ? 0 : 1); +// //搴撲綅绫诲瀷 1楂樺簱浣� 0浣庡簱浣� +// storageEscalationParam.setLocType(staProtocol.isHigh() ? 1 : 0); +// storageEscalationParam.setTerminalNo(staProtocol.getSiteId()); +// String response = ""; +// Boolean success = false; +// try { +// response = new HttpHandler.Builder() +// .setUri(wmsUrl) +// .setPath(inboundTaskApplyPath) +// .setJson(JSON.toJSONString(storageEscalationParam)) +// .build() +// .doPost(); +// JSONObject jsonObject = JSON.parseObject(response); +// +// 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, staProtocol.getSiteId()); +// 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) { +// +// } +// } +// } else { +// // led 寮傚父鏄剧ず +// if (ledThread != null) { +// String errorMsg = "浠诲姟宸插瓨鍦紒锛侊紒锛�"; +// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg)); +// } +// staProtocol.setWorkNo((short) 9991); +// staProtocol.setStaNo(inSta.getBackSta().shortValue()); +// devpThread.setPakMk(staProtocol.getSiteId(), false); +// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); +// } +// +// } else { +// // led 寮傚父鏄剧ず +// if (ledThread != null) { +// String errorMsg = jsonObject.getString("ErrorMessage"); +// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(5, errorMsg)); +// } +// 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) { +// log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触"); +// log.error("寮傚父淇℃伅鎵撳嵃锛�" + e); +// try { +// BasDevp basDevp = basDevpService.selectById(inSta.getStaNo()); +// if (Cools.isEmpty(basDevp)) { +// log.error("绔欑偣鍙峰紓甯�" + inSta.getStaNo()); +// } else if (basDevp.getStaErr() != 0) { +// basDevp.setStaErr(2); +// basDevpService.updateById(basDevp); +// } +// } catch (Exception e1) { +// // 閫�鍥� +// log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + "寮傚父淇℃伅" + e1); +// } +// } finally { +// apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛" +// , wmsUrl + inboundTaskApplyPath +// , null +// , "127.0.0.1" +// , JSON.toJSONString(storageEscalationParam) +// , response +// , success +// ); +// } +// log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(BoxNo)); +// log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(response)); +// } +// } +// } +// } catch (Exception e) { +// log.error("generateStoreWrkFile e", e); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); +// } +// } public synchronized void generateStoreWrkFile() throws IOException, InterruptedException { try { @@ -1705,31 +1704,31 @@ return response; } - private TaskWrk createTask1(Result result, String barcode, Integer staNo) { - String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn()); - - Date now = new Date(); - TaskWrk taskWrk = new TaskWrk(); - int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙� - taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙� - taskWrk.setWrkNo(workNo1); - taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹 - taskWrk.setCreateTime(now); - taskWrk.setIoType(1);//浠诲姟绫诲瀷 鍏ュ簱 - taskWrk.setIoPri(13);//浼樺厛绾� - taskWrk.setBarcode(barcode);//鏉$爜 - taskWrk.setTargetPoint(locNo); - taskWrk.setStartPoint(staNo + ""); - taskWrk.setCrnNo(Integer.valueOf(result.getAlley()));//鍫嗗灈鏈哄彿 - - if (taskWrk.getIoType() == 1) { - taskWrk.setWrkSts(2); - if (!Cools.isEmpty(taskWrk.getTargetPoint())) { - taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint()); - } - } - return taskWrk; - } +// private TaskWrk createTask1(Result result, String barcode, Integer staNo) { +// String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn()); +// +// Date now = new Date(); +// TaskWrk taskWrk = new TaskWrk(); +// int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙� +// taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙� +// taskWrk.setWrkNo(workNo1); +// taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹 +// taskWrk.setCreateTime(now); +// taskWrk.setIoType(1);//浠诲姟绫诲瀷 鍏ュ簱 +// taskWrk.setIoPri(13);//浼樺厛绾� +// taskWrk.setBarcode(barcode);//鏉$爜 +// taskWrk.setTargetPoint(locNo); +// taskWrk.setStartPoint(staNo + ""); +// taskWrk.setCrnNo(Integer.valueOf(result.getAlley()));//鍫嗗灈鏈哄彿 +// +// if (taskWrk.getIoType() == 1) { +// taskWrk.setWrkSts(2); +// if (!Cools.isEmpty(taskWrk.getTargetPoint())) { +// taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint()); +// } +// } +// return taskWrk; +// } private TaskWrk createTask(GetWmsDto dto, String barcode) { String wcsLocNo = dto.getLocNo(); -- Gitblit v1.9.1