src/main/java/com/zy/asrs/controller/MobileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/WrkMast.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/WorkMastScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/newWay/AssignTasksToRCSScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/newWay/handler/AssignTasksToRCSHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -32,6 +32,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.xml.crypto.Data; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -350,11 +351,12 @@ public R AGVSite(@RequestParam(required = false) String locNo){ HashMap<Integer,String> map=new HashMap<>(); map.put(100,"100-入库口"); map.put(1000,"1000-补空板口"); map.put(1001,"1000-补空板口"); map.put(2001,"2001-出库口1"); map.put(2002,"2002-出库口2"); map.put(3001,"3001-作业口1"); map.put(3002,"3002-作业口2"); map.put(4001,"4001-不合格"); map.remove(Integer.parseInt(locNo)); return R.ok(map); } @@ -368,37 +370,28 @@ @RequestMapping("/AGVMove") public R AGVMove(@RequestParam(required = false) String sourceStaNo ,@RequestParam(required = false) String staNo){ RCSParam rcsParam = new RCSParam(); LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); String noww=new Date().getTime()+""; DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedDate = now.format(formatter); // 格式化日期时间 //网络流水号 rcsParam.setReqId(now.toString()); //应用标识 rcsParam.setClientId("WMS"); //通知时间 rcsParam.setReqTime(formattedDate); RCSParam.DataBody dataBody=new RCSParam.DataBody(); //任务号 dataBody.setId(formattedDate); List<RCSParam.TaskBody> taskBodyList=new ArrayList<>(); RCSParam.TaskBody taskBody=new RCSParam.TaskBody(); //取货类型 taskBody.setType("load"); taskBody.setStation(sourceStaNo); taskBodyList.add(taskBody); LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>(); rcsParam.put("task_id",noww); rcsParam.put("start_location",sourceStaNo); rcsParam.put("start_site_level",1); rcsParam.put("start_command",1); rcsParam.put("target_location",staNo); rcsParam.put("target_site_level",1); rcsParam.put("target_command",2); rcsParam.put("priority",1); rcsParam.put("robot_type",3);//车 辆 类 型 0:XC 1:XCD 2:XP_T 3:XP_L rcsParam.put("MoverID","XS1"); RCSParam.TaskBody taskBody1=new RCSParam.TaskBody(); //放货类型 taskBody1.setType("unload"); taskBody1.setStation(staNo); taskBodyList.add(taskBody1); dataBody.setTasks(taskBodyList); rcsParam.setData(dataBody); LinkedHashMap<String,Object> map=new LinkedHashMap<>(); map.put("data",rcsParam); String response =""; Boolean bool =false; String msg = ""; try { log.info("wms派发搬运任务给AGV搬运={}", rcsParam); @@ -406,12 +399,16 @@ // .setHeaders(headParam) .setUri(url) .setPath(attrcs) .setJson(JSON.toJSONString(rcsParam)) .setJson(JSON.toJSONString(map)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); if(jsonObject.getBoolean("IsSuccess")){ JSONObject data = jsonObject.getJSONObject("data"); JSONObject errInfo = jsonObject.getJSONObject("err_info"); if(data.getInteger("result")==0){ bool = true; }else{ msg=errInfo.getString("err_msg"); } } catch (Exception e) { log.error("wms派发搬运任务给AGV搬运失败返回值={}", response); @@ -420,7 +417,7 @@ , url + attrcs , null , "127.0.0.1" , JSON.toJSONString(rcsParam) , JSON.toJSONString(map) , response , bool ); @@ -428,7 +425,7 @@ if(bool){ return R.ok(); }else { return R.error("下发任务失败"); return R.error(msg); } } src/main/java/com/zy/asrs/controller/OpenController.java
@@ -213,33 +213,10 @@ /*********************************RCS任务结束接口****************************************************/ /** * 库存统计 * RCS 任务反馈 */ @RequestMapping("/taskOver") public HashMap taskOver(@RequestBody HashMap<String,Object> param) { HashMap map = new HashMap(); Map<String ,Object > map1 = (Map<String, Object>)param.get("Data"); String id = (String) map1.get("Id"); String status = (String) map1.get("Status"); if (!status.equals("finished_manual")){ map.put("IsSuccess", true); return map; } WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",Integer.valueOf(id))); if (wrkMast == null) { map.put("IsSuccess", false); map.put("ErrorCode","1"); map.put("Message","没有找到该任务号:"+id); return map; } if(wrkMast.getIoType()==101||wrkMast.getIoType()==110){ wrkMast.setWrkSts(15L);//搬运完成,任务转历史档 }else if(wrkMast.getIoType()==103||wrkMast.getIoType()==107){ wrkMast.setWrkSts(14L);//搬运完成,任务状态回到14 } wrkMastService.updateById(wrkMast); map.put("IsSuccess", true); return map; public void taskOver(@RequestBody HashMap<String,Object> param) { log.info("RCS任务反馈={}",param); } } src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -243,7 +243,7 @@ @TableField("appe_time") private Date appeTime; @ApiModelProperty(value= "") @ApiModelProperty(value= "RCS任务号") @TableField("pause_mk") private String pauseMk; src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -247,8 +247,8 @@ wrkMast.setAppeTime(now); wrkMast.setModiUser(userId); wrkMast.setModiTime(now); if(outSta==2000){ wrkMast.setMemo("2000"); if(outSta>199){ wrkMast.setMemo(outSta+""); } if (!wrkMastService.insert(wrkMast)) { throw new CoolException("保存工作档失败,出库库位号:"+dto.getLocNo()); src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -35,8 +35,16 @@ @Scheduled(cron = "0/3 * * * * ? ") private void execute() { //拣料盘点任务下发 WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().in("io_type",107,103).eq("wrk_sts",14).isNull("error_memo")); if (!Cools.isEmpty(wrkMast1)) { wrkMast1.setWrkSts(30L); wrkMastService.updateById(wrkMast1); } List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData(); if (wrkMasts.isEmpty()) { return; } for (WrkMast wrkMast : wrkMasts) { ReturnT<String> returnT = workMastHandler.start(wrkMast); if (!returnT.isSuccess()) { src/main/java/com/zy/asrs/task/newWay/AssignTasksToRCSScheduler.java
@@ -42,7 +42,6 @@ ReturnT<String> returnT = assignTasksToRCSHandler.start(wrkMast); if (!returnT.isSuccess()) { wrkMast.setUpdMk("X"); wrkMast.setErrorMemo(returnT.getMsg()); wrkMast.setErrorTime(new Date()); if (!wrkMastService.updateById(wrkMast)) { log.error("工作档[workNo={}]标记待处理失败", wrkMast.getWrkNo()); src/main/java/com/zy/asrs/task/newWay/handler/AssignTasksToRCSHandler.java
@@ -19,6 +19,7 @@ import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; @Slf4j @@ -35,61 +36,63 @@ private String attrcs; public ReturnT<String> start(WrkMast wrkMast) { RCSParam rcsParam = new RCSParam(); LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); String noww="bb" + new Date().getTime(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String formattedDate = now.format(formatter); // 格式化日期时间 //网络流水号 rcsParam.setReqId(now.toString()); //应用标识 rcsParam.setClientId("WMS"); //通知时间 rcsParam.setReqTime(formattedDate); RCSParam.DataBody dataBody=new RCSParam.DataBody(); //任务号 dataBody.setId(wrkMast.getWrkNo()+""); List<RCSParam.TaskBody> taskBodyList=new ArrayList<>(); RCSParam.TaskBody taskBody=new RCSParam.TaskBody(); //取货类型 taskBody.setType("load"); taskBody.setStation(wrkMast.getStaNo()+""); taskBodyList.add(taskBody); LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>(); rcsParam.put("task_id",noww); rcsParam.put("start_location","102"); rcsParam.put("start_site_level",1); rcsParam.put("start_command",1); rcsParam.put("target_location",wrkMast.getMemo()); rcsParam.put("target_site_level",1); rcsParam.put("target_command",2); rcsParam.put("priority",1); rcsParam.put("robot_type",3);//车 辆 类 型 0:XC 1:XCD 2:XP_T 3:XP_L rcsParam.put("MoverID","XS1"); RCSParam.TaskBody taskBody1=new RCSParam.TaskBody(); //放货类型 taskBody1.setType("unload"); taskBody1.setStation(wrkMast.getMemo()); taskBodyList.add(taskBody1); dataBody.setTasks(taskBodyList); rcsParam.setData(dataBody); LinkedHashMap<String,Object> map=new LinkedHashMap<>(); map.put("data",rcsParam); String response =""; Boolean bool =false; String msg = ""; wrkMast.setPauseMk(noww); try { log.info("wms派发搬运任务给AGV搬运={}", rcsParam); response = new HttpHandler.Builder() // .setHeaders(headParam) .setUri(url) .setPath(attrcs) .setJson(JSON.toJSONString(rcsParam)) .setJson(JSON.toJSONString(map)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); if(jsonObject.getBoolean("IsSuccess")){ wrkMast.setWrkSts(15L);//WMS下发搬运任务给RCS成功,转历史档 JSONObject data = jsonObject.getJSONObject("data"); JSONObject errInfo = jsonObject.getJSONObject("err_info"); if(data.getInteger("result")==0){ if(wrkMast.getIoType()==103||wrkMast.getIoType()==107){ wrkMast.setWrkSts(16L);//待回库 }else{ wrkMast.setWrkSts(15L);//下发RCS-成功 } wrkMast.setErrorMemo(noww); wrkMastService.updateById(wrkMast); bool = true; }else{ msg=errInfo.getString("err_msg"); } } catch (Exception e) { log.error("wms派发搬运任务给AGV搬运失败{},返回值={}", wrkMast, response); log.error("wms派发搬运任务给AGV搬运失败返回值={}", response); } finally { apiLogService.save("wms派发搬运任务给AGV搬运" , url + attrcs , null , "127.0.0.1" , JSON.toJSONString(rcsParam) , JSON.toJSONString(map) , response , bool ); src/main/resources/application.yml
@@ -10,7 +10,7 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver url: jdbc:sqlserver://127.0.0.1:50948;databasename=dlzasrs url: jdbc:sqlserver://178.18.1.200:1433;databasename=jxtlfasrs-yclk username: sa password: sa@123 mvc: @@ -71,6 +71,6 @@ #RCS rcs: address: url: http://192.168.3.102:16001 url: http://178.18.1.220:50001 #任务下发地址 attrcs: 3CLOUD/Kingdee.BOS.WebApi.ServicesStub. attrcs: rbrainrobot/create_task