From 5b8ddb74f918f439af507d79a1991de568fce2bd Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期日, 27 四月 2025 15:39:13 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/OpenController.java | 140 ++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/zy/asrs/entity/param/SimulationDevpInParam.java | 16 +++++ 2 files changed, 154 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java index e9181b3..205df92 100644 --- a/src/main/java/com/zy/asrs/controller/OpenController.java +++ b/src/main/java/com/zy/asrs/controller/OpenController.java @@ -7,13 +7,24 @@ import com.core.common.Cools; import com.core.common.R; 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.TaskStatusType; +import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.*; import com.zy.asrs.service.*; +import com.zy.asrs.utils.NotifyUtils; import com.zy.asrs.utils.Utils; +import com.zy.common.service.CommonService; +import com.zy.common.utils.HttpHandler; import com.zy.common.web.BaseController; +import com.zy.core.cache.MessageQueue; +import com.zy.core.enums.SlaveType; +import com.zy.core.model.Task; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; @@ -26,6 +37,13 @@ @RequestMapping("/open") public class OpenController extends BaseController { + @Value("${wms.url}") + private String wmsUrl; + @Value("${wms.inboundTaskApplyPath}") + private String inboundTaskApplyPath; + @Value("${wms.taskStatusFeedbackPath}") + private String taskStatusFeedbackPath; + @Autowired private OpenService openService; @Autowired @@ -34,8 +52,6 @@ private CommandInfoService commandInfoService; @Autowired private TaskWrkController taskWrkController; - @Autowired - private BasDevpService basDevpService; @Autowired private ApiLogService apiLogService; @Autowired @@ -46,6 +62,10 @@ private LocMastService locMastService; @Autowired private BasCrnErrorService basCrnErrorService; + @Autowired + private CommonService commonService; + @Autowired + private NotifyUtils notifyUtils; private static final boolean auth = true; @@ -333,4 +353,120 @@ return R.ok(crnStatusParams); } + //妯℃嫙杈撻�佺嚎鍏ュ簱 + @PostMapping("/simulationDevpIn") + @Transactional + public R simulationDevpIn(@RequestBody SimulationDevpInParam param) { + String barcode = param.getBarcode(); + Integer staNo = param.getStaNo(); + Boolean back = param.getBack(); + String errMsg = param.getErrMsg(); + + TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode)); + if (taskWrk1 != null) { + log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�"); + return R.error(); + } + + HashMap<String, Object> requestParam = new HashMap<>(); + requestParam.put("BoxNo", barcode);//鎵樼洏鐮� + requestParam.put("TerminalNo", staNo);//鍏ュ簱鍙� + if (back) { + requestParam.put("WCSStatus", 1);//澶辫触 + requestParam.put("WCSErrorMessage", errMsg);//澶辫触鍘熷洜 + }else { + requestParam.put("WCSStatus", 0);//鎴愬姛 + } + + String response = ""; + Boolean success = false; + try { + response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath(inboundTaskApplyPath) + .setJson(JSON.toJSONString(requestParam)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + + 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() + "宸茬粡瀛樺湪"); + return R.error(); + } + + String locNo = Utils.getLocNo(result.getRow(), result.getFloor(), result.getColumn()); + LocMast locMast = locMastService.selectByLocNo(locNo); + if (locMast == null) { + log.info(locNo + "搴撲綅涓嶅瓨鍦�"); + return R.error(); + } + + if (!locMast.getLocSts().equals("O")) { + log.info(locNo + "搴撲綅涓嶅浜庣┖搴撲綅"); + return R.error(); + } + + Date now = new Date(); + taskWrk = new TaskWrk(); + taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙� + taskWrk.setWrkNo(commonService.getWorkNo(WorkNoType.PAKIN.type));//鑾峰彇鍏ュ簱宸ヤ綔鍙� + taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹 + taskWrk.setWrkSts(2);//2.璁惧涓婅蛋 + taskWrk.setCreateTime(now); + taskWrk.setIoType(1);//浠诲姟绫诲瀷 + taskWrk.setIoPri(13);//浼樺厛绾� + taskWrk.setBarcode(barcode);//鏉$爜 + taskWrk.setCrnNo(locMast.getCrnNo()); + taskWrk.setTargetPoint(locNo); + taskWrk.setStartPoint(String.valueOf(staNo)); + if (!Cools.isEmpty(taskWrk.getTargetPoint())) { + taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint()); + } + + if (!taskWrkService.insert(taskWrk)) { + log.info("浠诲姟锛�" + result.getTaskNo() + "浠诲姟鍒涘缓澶辫触"); + return R.error(); + } + + locMast.setLocSts("S"); + locMast.setModiTime(new Date()); + locMastService.updateById(locMast); + + //涓婃姤 + HashMap<String, Object> hashMap = new HashMap<>(); + hashMap.put("TaskNo", taskWrk.getTaskNo()); + + NotifyCustomDataDto customDataDto = new NotifyCustomDataDto(); + customDataDto.setUri(wmsUrl); + customDataDto.setPath(taskStatusFeedbackPath); + 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(TaskStatusType.DISTRIBUTE.id);//浠诲姟娲惧彂 + taskWrkService.updateById(taskWrk); + } + } + } catch (Exception e) { + log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触"); + log.error("寮傚父淇℃伅鎵撳嵃锛�" + e); + } finally { + apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛" + , wmsUrl + inboundTaskApplyPath + , null + , "127.0.0.1" + , JSON.toJSONString(requestParam) + , response + , success + ); + } + log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(barcode)); + log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(response)); + return R.error(); + } + } diff --git a/src/main/java/com/zy/asrs/entity/param/SimulationDevpInParam.java b/src/main/java/com/zy/asrs/entity/param/SimulationDevpInParam.java new file mode 100644 index 0000000..9861e9b --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/SimulationDevpInParam.java @@ -0,0 +1,16 @@ +package com.zy.asrs.entity.param; + +import lombok.Data; + +@Data +public class SimulationDevpInParam { + + private Integer staNo; + + private String barcode; + + private Boolean back; + + private String errMsg; + +} -- Gitblit v1.9.1