From 53ae8e478f6034579303c51bdf881ffa526c942c Mon Sep 17 00:00:00 2001 From: taisheng <taisheng@qq.com> Date: 星期六, 24 五月 2025 14:22:43 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/TaskWrkController.java | 191 +++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 181 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/TaskWrkController.java b/src/main/java/com/zy/asrs/controller/TaskWrkController.java index f82660e..7753f55 100644 --- a/src/main/java/com/zy/asrs/controller/TaskWrkController.java +++ b/src/main/java/com/zy/asrs/controller/TaskWrkController.java @@ -1,28 +1,57 @@ package com.zy.asrs.controller; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.core.common.DateUtils; +import com.core.exception.CoolException; import com.zy.asrs.domain.enums.TaskStatusType; +import com.zy.asrs.entity.CommandInfo; +import com.zy.asrs.entity.LocMast; import com.zy.asrs.entity.TaskWrk; +import com.zy.asrs.entity.TaskWrkLog; +import com.zy.asrs.entity.param.NotifyDto; +import com.zy.asrs.entity.param.TaskOverToWms; +import com.zy.asrs.service.ApiLogService; +import com.zy.asrs.service.CommandInfoService; +import com.zy.asrs.service.LocMastService; import com.zy.asrs.service.TaskWrkService; import com.core.annotations.ManagerAuth; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.R; +import com.zy.common.utils.HttpHandler; import com.zy.common.web.BaseController; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import java.util.*; @RestController +@Slf4j public class TaskWrkController extends BaseController { + + @Value("${wms.url}") + private String wmsUrl; @Autowired private TaskWrkService taskWrkService; + + @Autowired + private CommandInfoService commandInfoService; + + @Autowired + private LocMastService locMastService; + + @Value("${wms.TaskExecCallback}") + private String TaskExecCallback; + + @Autowired + private ApiLogService apiLogService; @RequestMapping(value = "/taskWrk/{wrkNo}/auth") @ManagerAuth @@ -149,23 +178,98 @@ @ManagerAuth(memo = "鎵嬪姩瀹屾垚浠诲姟") public R complete(@RequestParam String taskNo) { TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo); - if (taskWrk == null) { - return R.error(); + if (Cools.isEmpty(taskWrk) || taskWrk.getStatus()>=3){ + return R.error("宸插畬缁撴垨宸插彇娑�") ; } - if (taskWrk.getStatus().equals(TaskStatusType.COMPLETE.id)) { - return R.error(taskWrk.getTaskNo() + "宸插畬缁�"); + LocMast locMast=new LocMast(); + if(taskWrk.getIoType()==1){//鍏ュ簱浠诲姟瀹屾垚搴撲綅涓篎 + locMast=locMastService.selectByLocNo(taskWrk.getTargetPoint()); + if(Cools.isEmpty(locMast)){ + R.error("娌℃湁鎵惧埌璇ュ簱浣�") ; + } + locMast.setLocSts("F"); + locMast.setModiTime(new Date()); + locMast.setBarcode(taskWrk.getBarcode()); + }else if(taskWrk.getIoType()==2){//鍑哄簱浠诲姟瀹屾垚搴撲綅涓篛 + locMast=locMastService.selectByLocNo(taskWrk.getStartPoint()); + if(Cools.isEmpty(locMast)){ + R.error("娌℃湁鎵惧埌璇ュ簱浣�") ; + } + locMast.setLocSts("O"); + locMast.setModiTime(new Date()); + }else if(taskWrk.getIoType()==3){ + locMast=locMastService.selectByLocNo(taskWrk.getStartPoint()); + if(Cools.isEmpty(locMast)){ + R.error("娌℃湁鎵惧埌璇ュ簱浣�") ; + } + locMast.setLocSts("O"); + locMast.setModiTime(new Date()); + locMastService.updateById(locMast); + locMast=locMastService.selectByLocNo(taskWrk.getTargetPoint()); + if(Cools.isEmpty(locMast)){ + R.error("娌℃湁鎵惧埌璇ュ簱浣�") ; + } + locMast.setLocSts("F"); + locMast.setModiTime(new Date()); + locMast.setBarcode(taskWrk.getBarcode()); + } - Date now = new Date(); - taskWrk.setStatus(TaskStatusType.COMPLETE.id); - taskWrk.setModiTime(now);//鎿嶄綔鏃堕棿 + String response=""; try{ - taskWrk.setModiUser(getUserId());//鎿嶄綔鍛� + HashMap<String, Object> headParam = new HashMap<>(); + headParam.put("TaskNo",taskWrk.getTaskNo()); + headParam.put("Result",1); +// headParam.put("reportTime",new Date()); + log.info("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms={}", taskWrk); + response = new HttpHandler.Builder() + // .setHeaders(headParam) + .setUri(wmsUrl) + .setPath(TaskExecCallback) + .setJson(JSON.toJSONString(headParam)) + .build() + .doPost(); + + JSONObject jsonObject = JSON.parseObject(response); + apiLogService.save("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms" + ,wmsUrl+TaskExecCallback + ,null + ,"127.0.0.1" + ,JSON.toJSONString(headParam) + ,response + ,true + ); }catch (Exception e){ - taskWrk.setModiUser(9999L);//鎿嶄綔鍛� + log.error("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms澶眥},杩斿洖鍊�={}", taskWrk,response); +// throw new CoolException(e); } - taskWrk.setCompleteTime(now);//瀹岀粨鏃堕棿 + locMastService.updateById(locMast); + taskWrk.setStatus(7);//鎵嬪姩瀹屾垚浠诲姟 + taskWrk.setModiTime(new Date()); taskWrkService.updateById(taskWrk); return R.ok(); + } + + @PostMapping(value = "/taskWrk/returnWorkingCondition/auth") + @ManagerAuth(memo = "閲嶆柊缁欏爢鍨涙満涓嬪彂浠诲姟") + public R returnWorkingCondition(@RequestParam String taskNo) { + TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo); + if (!Cools.isEmpty(taskWrk) && taskWrk.getWrkSts()==12){ + taskWrk.setWrkSts(11); + if(!taskWrkService.updateById(taskWrk)){ + return R.error("鏇存柊浠诲姟鐘舵�佸け璐�"); + } + return R.ok(); + } else if (!Cools.isEmpty(taskWrk) && taskWrk.getWrkSts()==3) { + taskWrk.setWrkSts(2); + taskWrkService.updateById(taskWrk); + if(!taskWrkService.updateById(taskWrk)){ + return R.error("鏇存柊浠诲姟鐘舵�佸け璐�"); + } + return R.ok(); + }else{ + return R.error("浠诲姟鐘舵�佷笉瀵规棤娉曢噸鏂扮粰鍫嗗灈鏈轰笅鍙戜换鍔�"); + } + } @PostMapping(value = "/taskWrk/cancel/auth") @@ -186,6 +290,35 @@ }catch (Exception e){ taskWrk.setModiUser(9999L);//鎿嶄綔鍛� } + String response=""; +// try{ +// HashMap<String, Object> headParam = new HashMap<>(); +// headParam.put("TaskNo",taskWrk.getTaskNo()); +// headParam.put("Result",0); +//// headParam.put("reportTime",new Date()); +// +// log.info("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wm={}", taskWrk); +// response = new HttpHandler.Builder() +// // .setHeaders(headParam) +// .setUri(wmsUrl) +// .setPath(TaskExecCallback) +// .setJson(JSON.toJSONString(headParam)) +// .build() +// .doPost(); +// JSONObject jsonObject = JSON.parseObject(response); +// apiLogService.save("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms" +// ,wmsUrl+TaskExecCallback +// ,null +// ,"127.0.0.1" +// ,JSON.toJSONString(headParam) +// ,response +// ,true +// ); +// }catch (Exception e){ +// log.error("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms澶辫触={},杩斿洖鍊�={}", taskWrk,response); +//// throw new CoolException(e); +// } + taskWrk.setCompleteTime(now);//瀹岀粨鏃堕棿 taskWrkService.updateById(taskWrk); return R.ok(); @@ -206,4 +339,42 @@ return R.ok(); } + public static String getTaskType(Integer paramIoType){ + switch (paramIoType){ + case 1: + return "RK"; + case 2: + return "CK"; + case 3: + return "YK"; + default: + return "鏈煡"; + } + } + + @PostMapping(value = "/taskWrk/state") +// @ManagerAuth(memo = "鎺ユ敹RCS浠诲姟鐘舵��") + public R taskWrkState(@RequestBody NotifyDto notifyDto) { + log.info("鎺ユ敹RCS浠诲姟鐘舵��={}", notifyDto); + TaskWrk taskWrk = taskWrkService.selectByTaskNo(notifyDto.getSuperTaskNo());//wms浠诲姟鍙� + if (taskWrk == null) { + return R.error("娌℃湁鎵惧埌璇ヤ换鍔�={"+notifyDto+"}"); + } + Date now = new Date(); + if (notifyDto.getMsgType().equals("task_complete")) { + if (taskWrk.getIoType() == 1 || taskWrk.getIoType() == 3) { + taskWrk.setWrkSts(8);//鏇存柊鏁版嵁 + taskWrk.setModiTime(now);//鎿嶄綔鏃堕棿 + taskWrk.setModiUser(9998L);//鎿嶄綔鍛� + taskWrkService.updateById(taskWrk); + } else if (taskWrk.getIoType() == 2) { + taskWrk.setWrkSts(18);//鏇存柊鏁版嵁 + taskWrk.setModiTime(now);//鎿嶄綔鏃堕棿 + taskWrk.setModiUser(9998L);//鎿嶄綔鍛� + taskWrkService.updateById(taskWrk); + } + } + return R.ok(); + } + } -- Gitblit v1.9.1