From 6193eddf242c4b879402367704b8b5b2e8df84a4 Mon Sep 17 00:00:00 2001 From: zwl <1051256694@qq.com> Date: 星期六, 19 七月 2025 13:29:40 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/controller/OpenController.java | 362 ++++++++++++++++++--------------------------------- 1 files changed, 126 insertions(+), 236 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java index c5825f2..ae0890e 100644 --- a/src/main/java/com/zy/asrs/controller/OpenController.java +++ b/src/main/java/com/zy/asrs/controller/OpenController.java @@ -8,12 +8,12 @@ import com.core.common.Cools; import com.core.common.R; import com.core.exception.CoolException; +import com.fasterxml.jackson.databind.ObjectMapper; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.TaskOverParam; -import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam; -import com.zy.asrs.entity.param.taskCreateParam; +import com.zy.asrs.entity.param.*; import com.zy.asrs.service.*; -import com.zy.common.utils.HttpHandler; +import com.zy.asrs.service.impl.BasShuttleServiceImpl; +import com.zy.asrs.utils.Utils; import com.zy.common.web.BaseController; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -23,10 +23,10 @@ import javax.servlet.http.HttpServletRequest; import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.lang.reflect.Field; +import java.util.*; + +import static org.apache.ibatis.ognl.OgnlRuntime.setFieldValue; @Slf4j @RestController @@ -45,9 +45,14 @@ private BasDevpService basDevpService; @Autowired private ApiLogService apiLogService; - + @Autowired + private BasCrnpService basCrnpService; @Autowired private StaDescService staDescService; + @Autowired + private LocMastService locMastService; + @Autowired + private BasCrnErrorService basCrnErrorService; @Value("${wms.url}") private String wmsUrl; @@ -57,75 +62,8 @@ public static final ArrayList<String> APP_KEY_LIST = new ArrayList<String>() {{ add("ea1f0459efc02a79f046f982767939ae"); }}; - //agv浠诲姟瀹屾垚 - @PostMapping("/toAgvTaskOver") - @AppAuth(memo = "agv浠诲姟瀹屾垚鎺ュ彛") - public R getAgvTaskOver(@RequestHeader String appkey, - @RequestBody TaskOverParam param, - HttpServletRequest request){ - auth(appkey, param, request); - if (Cools.isEmpty(param)) { - return R.parse(BaseRes.PARAM); - } - if (Cools.isEmpty(param.getWharfCode())){ - return R.error("鐮佸ご[wharfCode]涓嶈兘涓虹┖"); - } - if (Cools.isEmpty(param.getStatus())){ - return R.error("瀹屾垚鏍囪[status]涓嶈兘涓虹┖"); - } - openService.getAgvTaskOver(param); - return R.ok(); - } - - //鍒涘缓浠诲姟 - @PostMapping("/taskCreate") - public R taskCreate(@RequestHeader String appkey, - @RequestBody taskCreateParam param, - HttpServletRequest request) { - auth(appkey, param, request); - if (Cools.isEmpty(param)) { - return R.parse(BaseRes.PARAM); - } - if (Cools.isEmpty(param.getTaskNo())) { - return R.error("浠诲姟鍙穂taskNo]涓嶈兘涓虹┖"); - } - if (Cools.isEmpty(param.getIoType())) { - return R.error("浠诲姟绫诲瀷[ioType]涓嶈兘涓虹┖"); - } - if (Cools.isEmpty(param.getBarcode())) { - return R.error("鏉$爜[barcode]涓嶈兘涓虹┖"); - } - openService.taskCreate(param); - return R.ok(); - } - - //鏌ヨ浠诲姟璇︽儏 - @GetMapping("/queryTask") - public R queryTask(@RequestHeader String appkey, - @RequestParam String taskNo, - HttpServletRequest request) { - auth(appkey, taskNo, request); - TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo); - if (taskWrk == null) { - return R.error("浠诲姟涓嶅瓨鍦�"); - } - return R.ok().add(taskWrk); - } - - //鏌ヨ浠诲姟鎸囦护闆嗗悎 - @GetMapping("/queryTaskCommand") - public R queryTaskCommand(@RequestHeader String appkey, - @RequestParam String taskNo, - HttpServletRequest request) { - auth(appkey, taskNo, request); - TaskWrk taskWrk = taskWrkService.selectByTaskNo(taskNo); - if (taskWrk == null) { - return R.error("浠诲姟涓嶅瓨鍦�"); - } - - List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskNo); - return R.ok().add(commandInfos); - } + @Autowired + private BasShuttleServiceImpl basShuttleService; private void auth(String appkey, Object obj, HttpServletRequest request) { log.info("{}鎺ュ彛琚闂紱appkey:{}锛涜姹傛暟鎹細{}", request.getServletPath(), appkey, JSON.toJSONString(obj)); @@ -138,152 +76,73 @@ } } - //AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛 - @PostMapping("/targetWharfApply") - @AppAuth(memo = "AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛") - public R targetWharfApply(@RequestHeader String appkey, - @RequestBody WMSAndAGVInterfaceParam param, - HttpServletRequest request) throws IOException { - auth(appkey,param,request); - - if (Cools.isEmpty(param)){ - return R.error("鍙傛暟涓虹┖锛�"); - } else if (Cools.isEmpty(param.getTaskNo())){ - return R.error("宸ヤ綔鍙蜂负绌猴紒"); - } else if (Cools.isEmpty(param.getContainerCode())){ - return R.error("鎵樼洏缂栫爜涓虹┖锛�"); - } else if (Cools.isEmpty(param.getWharfSource())){ - return R.error("婧愮爜澶翠负绌猴紒"); - } else if (Cools.isEmpty(param.getFreeWharfs()) || param.getFreeWharfs().size()==0){ - return R.error("绌洪棽鐨勫叆搴撶爜澶达紙AGV锛変负绌猴紒"); - } - R r = openService.AgvToWCSToWms(param); - apiLogService.save("AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛" - ,request.getRemoteAddr()+request.getRequestURI() - ,appkey - ,request.getRemoteAddr() - ,JSON.toJSONString(param) - ,r.toString() - ,true - ); - return r; - } - - //AGV璇锋眰鍔ㄤ綔鎺ュ彛 - @PostMapping("/agvTaskRequest") - @AppAuth(memo = "AGV璇锋眰鍔ㄤ綔鎺ュ彛") - public R agvTaskRequest(@RequestHeader String appkey, - @RequestBody WMSAndAGVInterfaceParam param, - HttpServletRequest request) { - auth(appkey, param, request); - if (Cools.isEmpty(param)){ - return R.error("鍙傛暟涓虹┖锛�"); - } else if (Cools.isEmpty(param.getRequestType())){ - return R.error("璇锋眰绫诲瀷涓虹┖锛�"); - } else if (Cools.isEmpty(param.getWharfCode())){ - return R.error("鐮佸ご缂栧彿涓虹┖锛�"); - } - - Map<String,Integer> map = new HashMap<>(); - map.put("J-1101",102);map.put("J-1102",101); - map.put("J-1103",106);map.put("J-1104",105); - map.put("J-1105",110);map.put("J-1106",109); - map.put("J-1107",114);map.put("J-1108",113); - map.put("J-1109",118);map.put("J-1110",117); - map.put("J-1111",122);map.put("J-1112",121); - map.put("H-1102",300);map.put("H-1101",305); - StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("stn_desc", param.getWharfCode())); - - if (Cools.isEmpty(staDesc)){ - return R.error("绋嬪簭鎶ラ敊锛屾湭鏌ヨ鍒扮珯鐐�"); - } - //BasDevp basDevp = basDevpService.selectById(map.get(param.getWharfCode())); - BasDevp basDevp = basDevpService.selectById(staDesc.getStnNo()); - if (basDevp.getAutoing().equals("Y")){ - apiLogService.save("AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛" - ,request.getRemoteAddr()+request.getRequestURI() - ,appkey - ,request.getRemoteAddr() - ,JSON.toJSONString(param) - ,R.ok().toString() - ,true - ); - return R.ok(); - }else { - apiLogService.save("AGV璇锋眰鍏ュ簱鐮佸ご鎺ュ彛" - ,request.getRemoteAddr()+request.getRequestURI() - ,appkey - ,request.getRemoteAddr() - ,JSON.toJSONString(param) - ,R.error("绔欑偣鐘舵�佷笉鍙叆").toString() - ,true - ); - return R.error("绔欑偣鐘舵�佷笉鍙叆"); - } - - - - - - } - //浠诲姟涓嬪彂鎺ュ彛 @PostMapping("/outboundTaskSend") - @Transactional - public R outboundTaskSend(@RequestHeader String appkey, - @RequestBody List<WMSAndAGVInterfaceParam> params, - HttpServletRequest request) { - auth(appkey, params, request); - List<WMSAndAGVInterfaceParam> params1 =new ArrayList<>(); - for (WMSAndAGVInterfaceParam param:params){ +// @Transactional + public HashMap<String, Object> outboundTaskSend(@RequestBody HashMap<String,Object> hashMap) { + String jsonString = JSON.toJSONString(hashMap.get("TaskList")); + List<CarryParam> params= JSONObject.parseArray(jsonString,CarryParam.class); + HashMap<String, Object> map = new HashMap<>(); + for (CarryParam param:params){ + if (Cools.isEmpty(param)){ + map.put("Code","0"); + map.put("Msg","鍙傛暟涓虹┖锛�"); + return map; + } else if (Cools.isEmpty(param.getTaskNo())){ + map.put("Code","0"); + map.put("Msg","浠诲姟鍙蜂负绌猴紒"); + return map; + } else if (Cools.isEmpty(param.getStereoscopicTaskType())){ + map.put("Code","0"); + map.put("Msg","浠诲姟绫诲瀷涓虹┖锛�"); + return map; + } + String fusion = Utils.Fusion(param.getOriginalRowNo(), param.getOriginalFloorNo(), param.getOriginalColumnNo()); + param.setOriginStartPoint(fusion); + LocMast locMast = locMastService.selectByLocNo(fusion); + if(Cools.isEmpty(locMast)){ + map.put("Code","0"); + map.put("Msg","鍒濆搴撲綅鏃犳硶鎵惧埌锛�"); + return map; + } - if (Cools.isEmpty(param)){ - return R.error("鍙傛暟涓虹┖锛�"); - } else if (Cools.isEmpty(param.getTaskNo())){ - return R.error("浠诲姟鍙蜂负绌猴紒"); - } else if (Cools.isEmpty(param.getTaskType())){ - return R.error("浠诲姟绫诲瀷涓虹┖锛�"); - } else if (Cools.isEmpty(param.getWarehouseId())){ - return R.error("浠撳簱鏍囪瘑涓虹┖锛�"); - } - if (Cools.isEmpty(param.getTaskPriority())){ - param.setTaskPriority(1); - } - if (Cools.isEmpty(param.getContainerCode())){ - return R.error("瀹瑰櫒缂栫爜(鎵樼洏鐮�)涓虹┖锛�"); - } - if (Cools.isEmpty(param.getEmptyContainer())){ - return R.error("鏄惁绌烘墭鐩樹俊鍙蜂负绌猴紒"); - } - if (Cools.isEmpty(param.getTargetWharf())){ - return R.error("鐩爣鐮佸ご鍖哄煙涓虹┖锛�");//G寮�澶�=7杞﹂棿锛孒寮�澶�=8灞傦紝J寮�澶�=9杞﹂棿 - } - StaDesc staDesc = new StaDesc(); - if (param.getTaskType().equals("CK") && param.getTargetWharf().contains("J")){ - staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", param.getTaskTunnel()).eq("type_no",2).lt("crn_stn", 200)); - }else { - staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", param.getTaskTunnel()).eq("type_no",2).ge("crn_stn", 200)); - } - param.setTargetLocationCode(staDesc.getStnNo().toString()); + HashMap<String,Object> r = new HashMap<>(); - - R r = openService.taskCreate(new taskCreateParam(param)); - - apiLogService.save("Wms浠诲姟涓嬪彂鎺ュ彛" - ,request.getRemoteAddr()+request.getRequestURI() - ,appkey - ,request.getRemoteAddr() - ,JSON.toJSONString(param) - ,r.toString() - ,true - ); - return r; - + if(param.getStereoscopicTaskType() == 2){ + //鍑哄簱浠诲姟鍒涘缓 + StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() + .eq("type_no",2) + .eq("stn_no",param.getTerminalNo())); + if(Cools.isEmpty(staDesc)){ + map.put("Code","0"); + map.put("Msg","鍑哄簱璺姴涓嶅瓨鍦紒"); + return map; + } + r = openService.taskCreate(param); + if(r.get("Code").equals("0")){ + return r; + } + }else if (param.getStereoscopicTaskType() == 3){ + String fusion1 = Utils.Fusion(param.getGoalRowNo(), param.getGoalFloorNo(), param.getGoalColumnNo()); + param.setTerminalNo(fusion1); + //绉诲簱浠诲姟鍒涘缓 + r = openService.taskCreate(param); + if(r.get("Code").equals("0")){ + return r; + } + } + apiLogService.save("Wms浠诲姟涓嬪彂鎺ュ彛" + ,request.getRemoteAddr()+request.getRequestURI() + ,"" + ,request.getRemoteAddr() + ,JSON.toJSONString(param) + ,r.toString() + ,true + ); } - - return null; + map.put("Code","1"); + map.put("Msg","ok"); + return map; } //浠诲姟鍙栨秷鎺ュ彛 @@ -291,39 +150,34 @@ public R taskCancel(@RequestHeader String appkey, @RequestBody WMSAndAGVInterfaceParam param, HttpServletRequest request) { + auth(appkey, param, request); if (Cools.isEmpty(param)){ return R.error("鍙傛暟涓虹┖锛�"); } else if (Cools.isEmpty(param.getTaskNo())){ return R.error("宸ヤ綔鍙蜂负绌猴紒"); - } else if (Cools.isEmpty(param.getTaskStatus())){ + } else if (Cools.isEmpty(param.getIoType())){ return R.error("鎿嶄綔绫诲瀷涓虹┖锛�"); + } else if (Cools.isEmpty(param.getBarcode())){ + return R.error("鎵樼洏鐮佷笉鑳戒负绌猴紒"); } -// else if (Cools.isEmpty(param.getWarehouseId())){ -// return R.error("浠撳簱鏍囪瘑涓虹┖锛�"); -// } - TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("task_no", param.getTaskNo())); + TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>() + .eq("task_no", param.getTaskNo()) + .eq("io_type",param.getIoType()) + .eq("barcode",param.getBarcode())); if (Cools.isEmpty(taskWrk)){ - return R.error("鏈煡鍒板綋鍓嶄换鍔�"); + return R.error("鏈煡鍒板綋鍓嶄换鍔�---"+param); } boolean sign =false; switch (param.getTaskStatus()){ case 1://姝e父鍙栨秷 - if (taskWrk.getWrkSts()>1){ + if (taskWrk.getStatus()>1){ return R.error("浠诲姟宸插紑濮嬫墽琛�"); - } - case 2://寮哄埗鍙栨秷 - if (taskWrk.getWrkSts()>3){ - return R.error("浠诲姟宸叉墽琛屽畬鎴�"); } break; - case 3://姝e父瀹屾垚 - if (taskWrk.getWrkSts()>11){ + case 2://姝e父瀹屾垚 + if (taskWrk.getStatus()>1){ return R.error("浠诲姟宸插紑濮嬫墽琛�"); - } - case 4://寮哄埗瀹屾垚 - if (taskWrk.getWrkSts()>14){ - return R.error("浠诲姟宸叉墽琛屽畬鎴�"); } sign=true; break; @@ -346,6 +200,42 @@ } } + //璁惧鐘舵�佹煡璇㈡帴鍙� + @GetMapping("/deviceStatus") + @Transactional + public R deviceStatus() { + HashMap<String,Object> map = new HashMap<>(); + List<BasShuttle> basShuttle = basShuttleService.selectList(null); + List<BasDevp> basDevp = basDevpService.selectList(null); + map.put("basShuttle",basShuttle); + map.put("basDevp",basDevp); + return R.ok(map); + } + //璁惧鐘舵�佹煡璇㈡帴鍙� + @PostMapping("/devpdeviceStatus") + @Transactional + public String devpDeviceStatus(@RequestBody HashMap staNo) { + BasDevp basDevp=basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",staNo.get("staNo"))); + if(basDevp==null||basDevp.getLoading().equals("Y")||basDevp.getOutEnable().equals("N")){ + return "no"; + } + return "ok"; + } + + //rcs鍜寃cs鏍¢獙鍏ュ簱宸ヤ綔鍙锋槸鍚︿竴鑷� + //璁惧鐘舵�佹煡璇㈡帴鍙� + @PostMapping("/devpdeviceStatusTaskNo") + @Transactional + public String devpDeviceStatusTaskNo(@RequestBody HashMap staNo) { + BasDevp basDevp=basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",staNo.get("staNo"))); + String taskNo=staNo.get("superTaskNo").toString(); + if(Cools.isEmpty(basDevp)&&Cools.isEmpty(taskNo)){ + return "no"; + }else if(!basDevp.getWrkNo().equals(Integer.valueOf(taskNo))){ + return "no"; + } + return "ok"; + } } -- Gitblit v1.9.1