src/main/java/com/zy/asrs/controller/AgvOpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/AgvTaskCallBackParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/AgvBasDevpService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/web/WcsController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/AgvOpenController.java
@@ -72,22 +72,22 @@ //save api log (appkey 后续添加) AppAuthUtil.auth("",param, request); int wrkNo = Integer.parseInt(param.getTaskCode()); int wrkNo = Integer.parseInt(param.getReqCode()); if(wrkNo < 0){ wrkNo = -wrkNo; } AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", wrkNo)); if(Cools.isEmpty(agvWrkMast)){ agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode",param.getContainerCode())); agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode",param.getPodCode())); if (Cools.isEmpty(agvWrkMast)){ return R.error("任务编号错误"); } } AgvTask agvTask = AgvTask.valueOf(param.getEventType()); AgvTask agvTask = AgvTask.valueOf(param.getMethod()); Class<AgvTask> clz = AgvTask.class; try { Method method = clz.getDeclaredMethod(param.getStatus(), AgvWrkMast.class, AgvTaskCallBackParam.class); Method method = clz.getDeclaredMethod("success", AgvWrkMast.class, AgvTaskCallBackParam.class); method.invoke(agvTask,agvWrkMast,param); } catch (NoSuchMethodException e) { return R.error("任务状态status参数有误"); @@ -114,14 +114,12 @@ /** * 上报任务状态 */ task{ end{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { //修改AGV工作档的工作状态为205.工作完成 agvWrkMast.setWrkSts(205L); if(param.getLocationCode().contains("@")){ agvWrkMast.setLocNo(param.getLocationCode()); } //agvWrkMast.setLocNo(param.getLocationCode()); agvWrkMastService.updateById(agvWrkMast); //agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),205); @@ -129,83 +127,47 @@ //出库任务 101.出库 || 103.拣料出库 || 107.盘点出库 if(agvWrkMast.getIoType() == 101 || agvWrkMast.getIoType() == 103 || agvWrkMast.getIoType() == 107){ //修改出库站点状态 agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode()); agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); } //出库任务 110.空板出库 if(agvWrkMast.getIoType() == 110){ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode()); agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); } } public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } }, /** * 上报任务分配给机器人 */ task_allocated{ start{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } }, /** * 上报取箱状态 */ tote_load{ outbin{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { //入库任务 || 拣料入库任务 ||盘点再入库 ||空板入库 if(agvWrkMast.getIoType() == 1 || agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 || agvWrkMast.getIoType() == 10){ //修改源站点状态为O.空,以及解绑托盘条码 agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O",""); agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",null); } //修改AGV工作档的工作状态为203.RCS放货中 agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),203); } public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } }, /** * 上报放箱状态 */ tote_unload{ cancel{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { //修改工作档状态为204.放货完成 @@ -216,81 +178,22 @@ } public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } }, robot_reach{ apply{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } }, weight{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } }, rfid{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } }; //任务状态为成功 public abstract void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); //任务状态为失败 public abstract void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); //任务状态为取消 public abstract void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); //任务状态为挂起 public abstract void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); // //任务状态为失败 // public abstract void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); // //任务状态为取消 // public abstract void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); // //任务状态为挂起 // public abstract void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); @Setter AgvBasDevpService agvBasDevpService; src/main/java/com/zy/asrs/entity/param/AgvTaskCallBackParam.java
@@ -3,45 +3,27 @@ import lombok.Data; import java.io.Serializable; import java.util.List; @Data public class AgvTaskCallBackParam implements Serializable { private static final long serialVersionUID = 1L; //业务任务号 private String taskCode; //上报事件类型 private String eventType; //请求编号 private String reqCode; //任务状态 private String status; private String method; //机器人编码 //AGV编号 private String robotCode; //容器编码 private String containerCode; //货架编号 private String podCode; //工作位编码 private String locationCode; //当前位置编号 private String currentPositionCode; //工作站编码 private String stationCode; //工作位 private String wbCode; //描述信息,描述异常原因/挂起原因等 private String message; //库位是否有容器,盘点任务才会返回该值 private boolean isLocationHasContainer; //背篓层号,从 0 层开始,从下往上编号。64 表示放在了货叉上 private int trayLevel; //重量,单位为 g,仅限于重量盘点 private int weight; //rfid 盘点信息,仅限于 rfid 盘点 private List<String> rfidInfo; } src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java
@@ -24,6 +24,9 @@ @Select("select station_code from agv_bas_devp where cache_shelves = 'N' and in_enable = 'Y' group by station_code") List<String> selectCacheShelvesStationCodeByFloor(@Param("floor") int floor); @Select("select dev_no from agv_bas_devp where loc_type1 = #{locType}") List<String> selectCacheShelvesStationCodeByLocType(@Param("locType") Short locType); @Select("SELECT\n" + "\tbas.dev_no,\n" + "\tCOUNT ( mast.loc_no ) AS num \n" + src/main/java/com/zy/asrs/service/AgvBasDevpService.java
@@ -12,7 +12,7 @@ public void initBasDevp(); public void updateLocStsAndBarcodeByDevNo(String devNo, String locSts, String barcode); public void updateLocStsAndBarcodeByDevNo(String devNo, String locSts, String barcode, Short containerType); public Map<String, Object> getAgvBasDevpDtoByStationCode(String stationCode); @@ -25,6 +25,7 @@ List<AgvBasDevp> getBasDevpByNoCacheShelves(); List<String> selectCacheShelvesStationCodeByFloor(int floor); List<String> selectCacheShelvesStationCodeByLocType(short locType); public List<Map<String,Object>> selectDevNoAndNumBystationCode(String stationCode); src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java
@@ -84,11 +84,12 @@ return agvBasDevp; } public void updateLocStsAndBarcodeByDevNo(String devNo, String locSts, String barcode){ public void updateLocStsAndBarcodeByDevNo(String devNo, String locSts, String barcode, Short containerType){ AgvBasDevp agvBasDevp = this.selectById(devNo); agvBasDevp.setLocSts(locSts); agvBasDevp.setBarcode(barcode); agvBasDevp.setLocType2(containerType); this.updateById(agvBasDevp); } @@ -263,6 +264,11 @@ return this.baseMapper.selectCacheShelvesStationCodeByFloor(floor); } @Override public List<String> selectCacheShelvesStationCodeByLocType(short locType) { return this.baseMapper.selectCacheShelvesStationCodeByLocType(locType); } public List<Map<String,Object>> selectDevNoAndNumBystationCode(String stationCode){ return this.baseMapper.selectDevNoAndNumBystationCode(stationCode); } src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -93,7 +93,7 @@ //当前库位所处楼层 int floor = Integer.parseInt(agvLocDetl.getLocNo().split("@")[1]); //locDto.setAgvStaNos(queryAgvStaNosByFloor(floor)); locDto.setAgvStaNos(agvBasDevpService.selectCacheShelvesStationCodeByFloor(floor)); locDto.setAgvStaNos(agvBasDevpService.selectCacheShelvesStationCodeByLocType(agvLocMast.getLocType1())); locDtoList.add(locDto); issued -= anfme; src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java
@@ -548,11 +548,11 @@ //出库任务 101.出库 || 103.拣料出库 || 107.盘点出库 if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107){ //修改出库站点状态 agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode()); agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); } //出库任务 110.空板出库 if(wrkMast.getIoType() == 110){ agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode()); agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); } } @@ -575,7 +575,7 @@ //目标库位 String locNo = wrkMast.getLocNo(); agvLocMastService.updateLocStsByLocNo(locNo,"O","",null); agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode()); agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); //出库取消 }else { @@ -585,7 +585,7 @@ String devNo = wrkMast.getLocNo(); agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo)); if(devNo.contains("@")){ agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O",""); agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null); } } src/main/java/com/zy/common/web/WcsController.java
@@ -595,7 +595,7 @@ //拣料、盘点完成任务 if(!Cools.isEmpty(agvWrkMast) && (agvWrkMast.getIoType() == 103 || agvWrkMast.getIoType() == 107) && agvWrkMast.getWrkSts() == 205){ //绑定站点 agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode); agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode,agvWrkMast.getWhsType().shortValue()); //生成拣料、盘点再入库任务 List<AgvWrkMast> agvWrkMastList = new ArrayList<>(); @@ -610,7 +610,7 @@ //入库任务 if (!Cools.isEmpty(agvWaitPakinService.selectByContainerCode(containerCode))){ //绑定站点 agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode); agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode,agvWrkMast.getWhsType().shortValue()); //生成工作档 List<AgvBasDevp> agvBasDevpList = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().eq("dev_no", param.getDevNo())); agvWorkService.createWaitPainWrkMastStart(agvBasDevpList, null, true);