diff --git a/src/main/java/com/huaheng/framework/config/ShiroConfig.java b/src/main/java/com/huaheng/framework/config/ShiroConfig.java index f1efb66..ab2a445 100644 --- a/src/main/java/com/huaheng/framework/config/ShiroConfig.java +++ b/src/main/java/com/huaheng/framework/config/ShiroConfig.java @@ -255,6 +255,8 @@ public class ShiroConfig { filterChainDefinitionMap.put("/mobile/download/*", "anon"); filterChainDefinitionMap.put("/config/zone/*", "anon"); filterChainDefinitionMap.put("/receipt/receiptHeader/listPda", "anon"); + filterChainDefinitionMap.put("receipt/receiving/flatSaveBatch", "anon"); + filterChainDefinitionMap.put("/task/taskHeader/*", "anon"); filterChainDefinitionMap.put("/admin/login", "anon"); filterChainDefinitionMap.put("/login", "anon"); filterChainDefinitionMap.put("/file/**", "anon"); diff --git a/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java index fd1e097..53ecf82 100644 --- a/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java @@ -150,7 +150,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai ReceiptContainerHeader receiptContainerHeader = new ReceiptContainerHeader(); //当size大于等于1表示容器已经有组盘了 - if (list.size() < 1) { + if (list.isEmpty()) { ReceiptDetail receiptDetail = receiptDetailService.getById(receiptDetailId); receiptContainerHeader.setWarehouseCode(ShiroUtils.getWarehouseCode()); receiptContainerHeader.setCompanyCode(receiptDetail.getCompanyCode()); @@ -232,11 +232,10 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai throw new ServiceException("平库不能为空"); } //创建临时容器 - //String containerCode = createFlatContainer(locationType); + String containerCode = createFlatContainer(locationType); + //String locationCode = createFlatLocation(locationType); Container container = containerService.getOne(new LambdaQueryWrapper<Container>().eq(Container::getContainerType, locationType)); - String containerCode = container.getCode(); - //检查容器编码合法性 Integer taskType = checkContainer(containerCode, detail.getMaterialCode()); if (taskType == 1) { @@ -726,20 +725,21 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai * 自动生成平库容器编码 */ @Transactional - public String createFlatContainer(String locationCode) { + public String createFlatContainer(String type) { LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyMMddHHmmssSSS"); String timestamp = now.format(formatter); - String code = locationCode + timestamp; + String code = type + timestamp; Container container = new Container(); container.setCode(code); container.setWarehouseCode(ShiroUtils.getWarehouseCode()); container.setCompanyCode(ShiroUtils.getCompanyCodeList().get(0)); - container.setContainerType("PK"); + container.setContainerType(type);//平库托盘 container.setCreatedBy(ShiroUtils.getName()); container.setLastUpdated(new Date()); container.setLastUpdatedBy(ShiroUtils.getName()); container.setEnable(true); + container.setFlat(1); container.setStatus(QuantityConstant.STATUS_CONTAINER_EMPTY); if (!containerService.save(container)) { throw new ServiceException("新增容器失败"); @@ -747,6 +747,34 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai return code; } + /** + * 自动生成平库库位编码 + */ + @Transactional + public String createFlatLocation(String type) { + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyMMddHHmmssSSS"); + String timestamp = now.format(formatter); + String code = type + timestamp; + Location location = new Location(); + location.setCode(code); + location.setIColumn(0); + location.setIRow(0); + location.setILayer(0); + location.setIGrid(0); + location.setRowFlag(0); + location.setWarehouseCode(ShiroUtils.getWarehouseCode()); + location.setLocationType(type); + location.setCreatedBy(ShiroUtils.getName()); + location.setLastUpdated(new Date()); + location.setLastUpdatedBy(ShiroUtils.getName()); + location.setStatus(QuantityConstant.STATUS_CONTAINER_EMPTY); + if (!locationService.save(location)) { + throw new ServiceException("新增库位失败"); + } + return code; + } + @Override @Transactional public int insertTodayReceiptContainerHeader(ReceiptBill receiptBill, String receiptCode) { diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java b/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java index 2fc2e0d..9b9a04c 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/controller/TaskHeaderController.java @@ -33,6 +33,7 @@ import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; import com.huaheng.pc.task.taskDetail.domain.TaskDetail; import com.huaheng.pc.task.taskDetail.service.TaskDetailService; +import com.huaheng.pc.task.taskHeader.domain.MobileTask; import com.huaheng.pc.task.taskHeader.domain.TaskHeader; import com.huaheng.pc.task.taskHeader.mapper.TaskHeaderMapper; import com.huaheng.pc.task.taskHeader.service.ReceiptTaskService; @@ -77,8 +78,8 @@ public class TaskHeaderController extends BaseController { @Resource private ReceiptTaskService receiptTaskService; - - + @Resource + private TaskDetailService taskDetailService; private String prefix = "task/taskHeader"; @RequiresPermissions("task:taskHeader:view") @@ -337,4 +338,50 @@ public class TaskHeaderController extends BaseController { taskHeaderService.update(taskHeader1, taskHeaderLambdaQueryWrapper); return AjaxResult.success(); } + + @PostMapping("/getTaskByShipmentCode") + @ResponseBody + public AjaxResult getTaskByShipmentCode(String shipmentCode) { + if (StringUtils.isEmpty(shipmentCode)) { + return AjaxResult.error("单据号为空!"); + } + List<TaskDetail> list = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getBillCode, shipmentCode)); + if (list.isEmpty()) { + return AjaxResult.error("没有查到对应的任务"); + } + TaskHeader taskHeader = taskHeaderService.getById(list.get(0).getTaskId()); + if (taskHeader == null) { + return AjaxResult.error("任务头表没找到"); + } + if (!taskHeader.getStatus().equals(QuantityConstant.TASK_STATUS_BUILD)) { + return AjaxResult.error("任务不是新建状态,可能已完成"); + } + MobileTask mobileTask = new MobileTask(); + mobileTask.setTaskHeader(taskHeader); + mobileTask.setTaskDetail(list); + return AjaxResult.success(mobileTask); + } + + @PostMapping("/getTaskByTaskId") + @ResponseBody + public AjaxResult getTaskByTaskId(String taskId) { + if (StringUtils.isEmpty(taskId)) { + return AjaxResult.error("任务号为空!"); + } + TaskHeader taskHeader = taskHeaderService.getById(taskId); + if (taskHeader == null) { + return AjaxResult.error("任务没找到ID:" + taskId); + } + if (!taskHeader.getStatus().equals(QuantityConstant.TASK_STATUS_BUILD)) { + return AjaxResult.error("任务不是新建状态,可能已完成"); + } + List<TaskDetail> list = taskDetailService.list(new LambdaQueryWrapper<TaskDetail>().eq(TaskDetail::getTaskId, taskId)); + if (list.isEmpty()) { + return AjaxResult.error("没有查到对应的任务"); + } + MobileTask mobileTask = new MobileTask(); + mobileTask.setTaskHeader(taskHeader); + mobileTask.setTaskDetail(list); + return AjaxResult.success(mobileTask); + } } diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java index 12ae602..90afab5 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java @@ -61,7 +61,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea @Resource private ShipmentContainerHeaderService shipmentContainerHeaderService; - @Autowired + @Resource private AddressService addressService; @Resource private LocationService locationService;