| src/main/java/com/zy/asrs/controller/MobileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/TaskDetlLog.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/WaitPakin.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/WaitPakinLog.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/MobileService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/TaskDetlLogServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/TaskLogServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/webapp/static/js/task/task.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -64,7 +64,7 @@ @PostMapping("/agv/callEmptyCar") @ManagerAuth public R pdaAgvFinishedCall(@RequestBody AgvCallParams params){ return mobileService.callEmptyCar(params); return mobileService.callEmptyCar(params, getUserId()); } @RequestMapping("/pda/WarehouseOut/v1") @@ -173,6 +173,16 @@ return mobileService.callAgvMove(params, getUserId()); } @PostMapping("/collection/agv/call") @ApiOperation("集货区入库") @ManagerAuth public R CollectionInCall(@RequestBody AgvCallParams params) { if (Objects.isNull(params)) { return R.error("参数不能为空!!"); } return mobileService.collectionInCall(params, getUserId()); } /** * @author Ryan src/main/java/com/zy/asrs/entity/TaskDetlLog.java
@@ -1,5 +1,7 @@ package com.zy.asrs.entity; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.enums.IdType; import com.core.common.Cools;import com.baomidou.mybatisplus.annotations.TableField; import java.text.SimpleDateFormat; import java.util.Date; @@ -26,6 +28,7 @@ private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Long id; @TableField("log_id") src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -1,7 +1,9 @@ package com.zy.asrs.entity; import com.baomidou.mybatisplus.annotations.TableField; import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.SpringUtils; @@ -21,6 +23,9 @@ private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Long id; @ApiModelProperty(value= "托盘条码") private String zpallet; src/main/java/com/zy/asrs/entity/WaitPakinLog.java
@@ -20,6 +20,8 @@ private static final long serialVersionUID = 1L; private Long id; @ApiModelProperty(value= "托盘条码") private String zpallet; src/main/java/com/zy/asrs/service/MobileService.java
@@ -9,7 +9,6 @@ import com.zy.asrs.entity.param.*; import java.util.Date; import java.util.Map; public interface MobileService { @@ -110,5 +109,7 @@ */ void generateCRNOutTask(LocCache locCaches); R callEmptyCar(AgvCallParams params); R callEmptyCar(AgvCallParams params, Long userId); R collectionInCall(AgvCallParams params, Long userId); } src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -13,7 +13,6 @@ import com.zy.asrs.entity.result.HIKResultDTO; import com.zy.asrs.enums.LocAreaType; import com.zy.asrs.enums.LocStsType; import com.zy.asrs.enums.OrderSettle; import com.zy.asrs.mapper.LocMastMapper; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; @@ -1283,25 +1282,68 @@ } @Override public R callEmptyCar(AgvCallParams params) { List<LocCache> locSts = locCacheService.selectList(new EntityWrapper<LocCache>().eq("loc_sts", LocStsType.LOC_STS_TYPE_D.type)); if (locSts.isEmpty()){ public R callEmptyCar(AgvCallParams params, Long userId) { BasAreas basAreas = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("name", params.getOrgSite())); List<LocCache> locCaches = locCacheService.selectList(new EntityWrapper<LocCache>() .eq("loc_sts", LocStsType.LOC_STS_TYPE_D.type) .eq("area_id", basAreas.getId()) ); if (locCaches.isEmpty()){ throw new CoolException("暂无空板库位"); } HIKApiDTO hikApiDTO =new HIKApiDTO() .setOrg(locSts.get(0).getLocNo()) .setOrgType("05") .setTar(params.getTarSite()) .setTarType("05") .setTaskType("GT5") .setPriority("1") .setCtnrType("2") ; HIKResultDTO hikResultDTO = sendAgvTask(hikApiDTO, HIKApiConstant.AGV_CALL_IN_PATH); if (!hikResultDTO.isSuccess()){ return R.error(hikResultDTO.getMessage()); BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>() .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type) .eq("dev_no", params.getTarSite())); if (Objects.isNull(station)) { throw new CoolException("站点正在执行任务!!"); } generateCacheOutTask(station, locCaches.get(0), userId); // HIKApiDTO hikApiDTO =new HIKApiDTO() // .setOrg(locCaches.get(0).getLocNo()) // .setOrgType("05") // .setTar(params.getTarSite()) // .setTarType("05") // .setTaskType("GT5") // .setPriority("1") // .setCtnrType("2") // ; // HIKResultDTO hikResultDTO = sendAgvTask(hikApiDTO, HIKApiConstant.AGV_CALL_IN_PATH); // if (!hikResultDTO.isSuccess()){ // return R.error(hikResultDTO.getMessage()); // } return R.ok(); } @Override // @Transactional(rollbackFor = Exception.class) public R collectionInCall(AgvCallParams params, Long userId) { if (Objects.isNull(params.getOrgSite())) { throw new CoolException("源站点不能为空!!"); } List<Task> tasks = taskService.selectList(new EntityWrapper<Task>().eq("barcode", params.getBarcode())); if (!tasks.isEmpty()){ throw new CoolException("托盘码已生成任务"); } BasAreas basAreas = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("name", params.getTarSite())); List<LocCache> locCaches = locCacheService.selectList(new EntityWrapper<LocCache>() .in("loc_sts", LocStsType.LOC_STS_TYPE_O.type, LocStsType.LOC_STS_TYPE_D.type) .eq("area_id", basAreas.getId()) ); if (locCaches.isEmpty()) { throw new CoolException("当前暂无空库位!!"); } generateAgvTask("agv", locCaches.get(0), params.getOrgSite(), params.getBarcode(), userId); return R.ok(); } @@ -1356,10 +1398,10 @@ task.setWrkNo(workNo) .setIoTime(new Date()) .setWrkSts(11L) // 工作状态:11.生成出库ID .setIoType(101) // 入出库状态: 11.库格移载 .setIoType(loc.getLocSts().equals("D") ? 110 : 101) // 入出库状态: 11.库格移载 .setTaskType("agv") .setIoPri(10D) .setFullPlt("Y") // 满板:Y .setFullPlt(loc.getLocSts().equals("D") ? "N" : "Y") // 满板:Y .setPicking("N") // 拣料 .setExitMk("N")// 退出 .setStaNo(station.getDevNo()) @@ -1375,9 +1417,7 @@ throw new CoolException("保存工作档失败"); } List<LocDetl> detls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_id", loc.getId())); if (Objects.isNull(detls) || detls.isEmpty()) { throw new CoolException("数据错误:库位明细为空!!"); } if (!detls.isEmpty()) { List<TaskDetl> taskDetls = new ArrayList<>(); detls.forEach(pakin -> { TaskDetl wrkDetl = new TaskDetl(); @@ -1397,13 +1437,12 @@ .setModiUser(userId); taskDetls.add(wrkDetl); }); //保存工作档明细 if (!taskDetlService.insertBatch(taskDetls)) { throw new CoolException("保存工作档明细失败"); } } loc.setLocSts(LocStsType.LOC_STS_TYPE_R.type); loc.setModiUser(userId); @@ -1488,6 +1527,13 @@ if (!taskDetlService.insertBatch(taskDetls)) { throw new CoolException("保存工作档明细失败"); } pakins.forEach(pakin -> {pakin.setIoStatus("Y");}); if (!waitPakinService.updateBatchById(pakins)) { throw new CoolException("更新组托信息失败"); } // 修改目标库位状态 if (loc.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) { loc.setLocSts(LocStsType.LOC_STS_TYPE_S.type); // S.入库预约 @@ -1499,6 +1545,20 @@ } else { throw new CoolException("移转失败,目标库位状态:" + loc.getLocSts$()); } // 修改目标站点信息 BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", orgSite)); if (station.getLocSts().equals("O")) { station.setLocSts("R"); // S.入库预约 station.setBarcode(barcode); station.setModiTime(new Date()); station.setModiUser(userId); if (!basStationService.updateById(station)) { throw new CoolException("更新目标库位状态失败"); } } else { throw new CoolException("移转失败,目标库位状态:" + station.getLocSts()); } } src/main/java/com/zy/asrs/service/impl/TaskDetlLogServiceImpl.java
@@ -42,6 +42,6 @@ throw new CoolException("工作档明细历史保存失败!!"); } }); return false; return true; } } src/main/java/com/zy/asrs/service/impl/TaskLogServiceImpl.java
@@ -44,6 +44,6 @@ throw new CoolException("任务日志保存失败!!"); } return false; return true; } } src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -34,6 +34,8 @@ private TaskService taskService; @Autowired private TaskDetlLogService taskDetlLogService; @Autowired private BasStationService basStationService; @Override @Transactional(rollbackFor = Exception.class) @@ -154,6 +156,18 @@ locMast.setModiUser(userId); locCacheService.updateById(locMast); } BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getSourceStaNo())); if (station.getLocSts().equals("R")) { station.setLocSts(wrkMast.getIoType().equals(1)?"F":"D"); station.setModiTime(new Date()); station.setModiUser(userId); if (!basStationService.updateById(station)) { throw new CoolException("更新源站点状态失败"); } } else { throw new CoolException("更新源站点状态失败,目标库位状态:" + station.getLocSts()); } // 出库取消(修改源库位) } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) { locNo = wrkMast.getSourceLocNo(); @@ -176,6 +190,18 @@ locMast.setModiUser(userId); locCacheService.updateById(locMast); } BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getStaNo())); if (station.getLocSts().equals("S")) { station.setLocSts("O"); station.setModiTime(new Date()); station.setModiUser(userId); if (!basStationService.updateById(station)) { throw new CoolException("更新源站点状态失败"); } } else { throw new CoolException("更新源站点状态失败,目标库位状态:" + station.getLocSts()); } } else { throw new CoolException("当前工作状态无法取消"); } src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -786,6 +786,42 @@ if (!taskService.updateById(task)) { throw new CoolException("任务状态修改失败!!"); } } else if (task.getIoType().equals(110)) { Date now = new Date(); LocCache locMast = locCacheService .selectOne(new EntityWrapper<LocCache>().eq("loc_no", task.getSourceLocNo())); if (Objects.isNull(locMast)) { throw new RuntimeException("数据错误:库位信息不能为空!!"); } // 修改源库位状态 R ===>> O if (locMast.getLocSts().equals(LocStsType.LOC_STS_TYPE_R.type)) { locMast.setLocSts(LocStsType.LOC_STS_TYPE_O.type); locMast.setBarcode(""); locMast.setModiTime(now); locMast.setIoTime(now); if (!locCacheService.updateById(locMast)) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg("全板出库 ===>> 修改源库位状态失败; [workNo=" + task.getWrkNo() + "],[locNo=" + task.getSourceLocNo() + "]"); } } else { throw new CoolException("当前库位状态" + locMast.getLocSts() + ", 无法执行出库操作!!"); } BasStation devNo = basStationService .selectOne(new EntityWrapper<BasStation>().eq("dev_no", task.getStaNo())); if (Objects.isNull(devNo)) { throw new CoolException("站点:" + task.getSourceStaNo() + ", 不存在!!"); } devNo.setLocSts(LocStsType.LOC_STS_TYPE_D.type); devNo.setModiTime(new Date()); if (!basStationService.updateById(devNo)) { throw new CoolException("站点信息修改失败!!"); } task.setWrkSts(15L); if (!taskService.updateById(task)) { throw new CoolException("任务状态修改失败!!"); } } else { } src/main/webapp/static/js/task/task.js
@@ -171,7 +171,7 @@ title: '工作号:' + data.wrkNo, shadeClose: true }, function () { http.post(baseUrl + "/hand/control/wrkMast", {workNo: data.wrkNo, type: 2}, function (res) { http.post(baseUrl + "/task/control", {workNo: data.wrkNo, type: 2}, function (res) { $(".layui-laypage-btn")[0].click(); layer.msg(data.wrkNo + res.msg); }) @@ -182,7 +182,7 @@ title: '工作号:' + data.wrkNo, shadeClose: true }, function () { http.post(baseUrl + "/hand/control/wrkMast", {workNo: data.wrkNo, type: 2}, function (res) { http.post(baseUrl + "/task/control", {workNo: data.wrkNo, type: 2}, function (res) { $(".layui-laypage-btn")[0].click(); layer.msg(data.wrkNo + res.msg); }) @@ -193,7 +193,7 @@ // 拣料入库 case 'pick': layer.confirm('拣料入库该笔工作档?', {title: '工作号:' + data.wrkNo, shadeClose: true}, function () { http.post(baseUrl + "/hand/control/wrkMast", {workNo: data.wrkNo, type: 3}, function (res) { http.post(baseUrl + "/task/control", {workNo: data.wrkNo, type: 3}, function (res) { $(".layui-laypage-btn")[0].click(); layer.msg(data.wrkNo + res.msg); })