src/main/java/com/zy/asrs/controller/AgvWrkMastController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/AgvTaskCreateParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/AgvTaskParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/AgvWrkMastService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/AgvWrkMastController.java
@@ -17,7 +17,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.*; @RestController @@ -158,30 +157,30 @@ return R.ok(); } @RequestMapping(value = "/wrkMast/startWrk/auth") @ManagerAuth(memo = "工作档开始任务") public R startWrk(@RequestParam String param) throws IOException { List<AgvWrkMast> agvWrkMastList = JSONArray.parseArray(param, AgvWrkMast.class); if (Cools.isEmpty(agvWrkMastList)){ return R.error(); } int startWrkCode = agvWrkMastService.startWrk(agvWrkMastList,"putaway"); int code = agvWrkMastService.containerMoveIn(agvWrkMastList); if(code == 0){ agvWrkMastList.forEach(agvWrkMast -> { //202.RCS取货中 agvWrkMast.setWrkSts((long)202); //修改AGV入库通知档状态入出状态为Y agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y"); }); agvWrkMastService.updateBatchById(agvWrkMastList); return R.ok("任务启动成功"); } return R.error("任务启动失败"); } // @RequestMapping(value = "/wrkMast/startWrk/auth") // @ManagerAuth(memo = "工作档开始任务") // public R startWrk(@RequestParam String param) throws IOException { // List<AgvWrkMast> agvWrkMastList = JSONArray.parseArray(param, AgvWrkMast.class); // if (Cools.isEmpty(agvWrkMastList)){ // return R.error(); // } // int startWrkCode = agvWrkMastService.startWrk(agvWrkMastList,"putaway"); // // int code = agvWrkMastService.containerMoveIn(agvWrkMastList); // // if(code == 0){ // agvWrkMastList.forEach(agvWrkMast -> { // //202.RCS取货中 // agvWrkMast.setWrkSts((long)202); // //修改AGV入库通知档状态入出状态为Y // agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y"); // }); // agvWrkMastService.updateBatchById(agvWrkMastList); // // return R.ok("任务启动成功"); // } // // return R.error("任务启动失败"); // // } } src/main/java/com/zy/asrs/entity/param/AgvTaskCreateParam.java
@@ -13,17 +13,20 @@ private static final long serialVersionUID = 1L; //任务类型 putaway:上架; carry:搬运,统指出库、移库、点到点搬运等; scan:扫描盘点; weight:称重盘点; rfid:rfid盘点 private String taskType; //任务号 private String reqCode; //任务组 private String taskGroupCode; //任务类型 private String taskTyp; //任务组优先级 private int groupPriority; // //任务组 // private String taskGroupCode; // // //任务组优先级 // private int groupPriority; //任务列表 private List<AgvTaskParam> tasks; private List<AgvTaskParam> positionCodePath; } src/main/java/com/zy/asrs/entity/param/AgvTaskParam.java
@@ -4,10 +4,13 @@ @Data public class AgvTaskParam { //业务任务号 private String taskCode; //任务优先级 private int taskPriority; //任务描述 private AgvTaskkDescribeParam taskDescribe; //位置编号 private String positionCode; //位置类型说明 00表示位置编号 private String type; public AgvTaskParam(String positionCode){ this.positionCode = positionCode; this.type = "00"; } } src/main/java/com/zy/asrs/service/AgvWrkMastService.java
@@ -10,7 +10,7 @@ public void updateWrkStsByWrkNo(int wrkNo, long wrkSts); public int startWrk(List<AgvWrkMast> agvWrkMastList, String taskType) throws IOException; public int startWrk(AgvWrkMast agvWrkMast) throws IOException; public int containerMoveIn(List<AgvWrkMast> agvWrkMastList) throws IOException; src/main/java/com/zy/asrs/service/impl/AgvWrkMastServiceImp.java
@@ -10,7 +10,6 @@ import com.zy.asrs.entity.AgvWrkMast; import com.zy.asrs.entity.param.AgvTaskCreateParam; import com.zy.asrs.entity.param.AgvTaskParam; import com.zy.asrs.entity.param.AgvTaskkDescribeParam; import com.zy.asrs.mapper.AgvWrkMastMapper; import com.zy.asrs.service.*; import com.zy.common.utils.HttpHandler; @@ -20,11 +19,7 @@ import org.springframework.stereotype.Service; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import java.util.*; @Service @Slf4j @@ -72,12 +67,12 @@ return true; } public int startWrk(List<AgvWrkMast> agvWrkMastList, String taskType) throws IOException { public int startWrk(AgvWrkMast agvWrkMast) throws IOException { AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); agvTaskCreateParam.setTaskType(taskType); //agvTaskCreateParam.setTaskType(taskType); getRequestParam(agvTaskCreateParam,agvWrkMastList); getRequestParam(agvTaskCreateParam,agvWrkMast); return doHttpRequest(agvTaskCreateParam,"搬运任务下发",url, taskCreatePath,null,"127.0.0.1"); @@ -161,35 +156,23 @@ } } private void getRequestParam(AgvTaskCreateParam agvTaskCreateParam,List<AgvWrkMast> agvWrkMastList){ List<AgvTaskParam> agvTaskParamList = agvWrkMastList.stream().map(agvWrkMast -> { AgvTaskParam agvTaskParam = new AgvTaskParam(); AgvTaskkDescribeParam agvTaskkDescribeParam = new AgvTaskkDescribeParam(); agvTaskParam.setTaskDescribe(agvTaskkDescribeParam); //AgvTaskParam if(agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57){ agvTaskParam.setTaskCode(-agvWrkMast.getWrkNo() + ""); }else{ agvTaskParam.setTaskCode(agvWrkMast.getWrkNo() + ""); } private void getRequestParam(AgvTaskCreateParam agvTaskCreateParam,AgvWrkMast agvWrkMast){ agvTaskParam.setTaskPriority(agvWrkMast.getIoPri().intValue()); List<AgvTaskParam> agvTaskParamList = Arrays.asList( //起始位 new AgvTaskParam(agvWrkMast.getSourceLocNo()), //目标位 new AgvTaskParam(agvWrkMast.getLocNo())); //AgvTaskkDescribeParam if(agvWrkMast.getSourceLocNo().contains("CS") || agvWrkMast.getSourceLocNo().contains("SK")){ agvTaskkDescribeParam.setFromLocationCode(agvWrkMast.getSourceLocNo()); } // //起始位 // agvTaskParamList.add(new AgvTaskParam(agvWrkMast.getSourceLocNo())); // //目标位 // agvTaskParamList.add(new AgvTaskParam(agvWrkMast.getLocNo())); if(agvWrkMast.getLocNo().contains("SK")){ agvTaskkDescribeParam.setToLocationCode(agvWrkMast.getLocNo()); }else { agvTaskkDescribeParam.setToStationCode(agvWrkMast.getLocNo()); } agvTaskkDescribeParam.setContainerCode(agvWrkMast.getBarcode()); return agvTaskParam; }).collect(Collectors.toList()); agvTaskCreateParam.setReqCode(agvWrkMast.getWrkNo().toString()); agvTaskCreateParam.setTaskTyp("F01"); agvTaskCreateParam.setPositionCodePath(agvTaskParamList); agvTaskCreateParam.setTasks(agvTaskParamList); } private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){ src/main/java/com/zy/asrs/task/AgvWrkMastScheduler.java
@@ -86,11 +86,13 @@ .or().eq("io_type", 57)).getRecords(); if(!Cools.isEmpty(agvWrkMastList)){ agvWrkMastList.forEach(agvWrkMast -> { try { ReturnT<String> returnT = agvWrkMastHandler.startPutWayWrk(agvWrkMastList); agvWrkMastHandler.startPutWayWrk(agvWrkMast); } catch (IOException e) { log.error(e.getMessage()); } }); } } @@ -111,11 +113,13 @@ .or().eq("io_type", 107)).getRecords(); if(!Cools.isEmpty(agvWrkMastList)){ agvWrkMastList.forEach(agvWrkMast -> { try { ReturnT<String> returnT = agvWrkMastHandler.startCarryWrk(agvWrkMastList); agvWrkMastHandler.startPutWayWrk(agvWrkMast); } catch (IOException e) { log.error(e.getMessage()); } }); } } src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -39,7 +39,7 @@ } } @Scheduled(cron = "0/5 * * * * ? ") //@Scheduled(cron = "0/5 * * * * ? ") @Async("orderThreadPool") public void completeAndReport(){ String erpReport = Parameter.get().getErpReport(); src/main/java/com/zy/asrs/task/handler/AgvWrkMastHandler.java
@@ -146,55 +146,47 @@ } @Transactional public ReturnT<String> startPutWayWrk(List<AgvWrkMast> agvWrkMastList) throws IOException { public ReturnT<String> startPutWayWrk(AgvWrkMast agvWrkMast) throws IOException { //下发任务 int startWrkCode = agvWrkMastService.startWrk(agvWrkMastList,"putaway"); int startWrkCode = agvWrkMastService.startWrk(agvWrkMast); if(startWrkCode != 0){ throw new CoolException("任务下发失败"); } //下发容器入场指令 (缓存货架) int code = agvWrkMastService.containerMoveIn(agvWrkMastList); if(code == 0){ for(AgvWrkMast agvWrkMast : agvWrkMastList){ //202.RCS取货中 agvWrkMast.setWrkSts(202L); agvWrkMastService.updateById(agvWrkMast); if(agvWrkMast.getIoType() == 1){ //修改AGV入库通知档状态入出状态为Y agvWaitPakinService.updateIoStatus(agvWrkMast.getWrkNo(),"Y"); } } return SUCCESS; } return FAIL; } @Transactional public ReturnT<String> startCarryWrk(List<AgvWrkMast> agvWrkMastList) throws IOException { //log.info(agvWrkMastList.toString()); //任务过滤,过滤掉已存在相同目标库位的工作档 //agvWrkMastList = filter(agvWrkMastList); int code = agvWrkMastService.startWrk(agvWrkMastList,"carry"); //log.info(agvWrkMastList.toString()); if (Cools.isEmpty(agvWrkMastList)){ return SUCCESS; } if(code == 0){ agvWrkMastList.forEach(agvWrkMast -> { //202.RCS取货中 agvWrkMast.setWrkSts(202L); agvWrkMastService.updateById(agvWrkMast); }); //agvWrkMastService.updateBatchById(agvWrkMastList); return SUCCESS; } return FAIL; } // @Transactional // public ReturnT<String> startCarryWrk(AgvWrkMast agvWrkMast) throws IOException { // //log.info(agvWrkMastList.toString()); // //任务过滤,过滤掉已存在相同目标库位的工作档 // //agvWrkMastList = filter(agvWrkMastList); // int code = agvWrkMastService.startWrk(agvWrkMast); // //log.info(agvWrkMastList.toString()); // if (Cools.isEmpty(agvWrkMastList)){ // return SUCCESS; // } // if(code == 0){ // agvWrkMastList.forEach(agvWrkMast -> { // //202.RCS取货中 // agvWrkMast.setWrkSts(202L); // agvWrkMastService.updateById(agvWrkMast); // }); // //agvWrkMastService.updateBatchById(agvWrkMastList); // // return SUCCESS; // } // // return FAIL; // } @Synchronized @Transactional