From 60fc6633fb1668b1cfc7673ed069d94d2dcccd17 Mon Sep 17 00:00:00 2001 From: DESKTOP-AO0VKC8\mahua <mahuandong@outlook.com> Date: Fri, 31 Jul 2020 10:20:43 +0800 Subject: [PATCH] 修改入库任务完成、出库自动组盘 --- src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java | 13 +++++++------ src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java | 208 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------- src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java | 2 -- src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java | 365 ++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 4 files changed, 94 insertions(+), 494 deletions(-) diff --git a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java index 88b94ab..9f92d5c 100644 --- a/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java +++ b/src/main/java/com/huaheng/pc/shipment/shipmentContainerHeader/service/ShipmentContainerHeaderServiceImpl.java @@ -243,11 +243,12 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont Boolean flag =true; //1.查看是否有同一出库明细的物料需要出库 LambdaQueryWrapper<ShipmentContainerDetail> lambdaQueryWrapper=Wrappers.lambdaQuery(); - lambdaQueryWrapper.eq(ShipmentContainerDetail::getShippingContainerId,shipmentContainerHeader.getId()) - .eq(ShipmentContainerDetail::getLocationCode,shipmentContainerHeader.getLocationCode()) - .eq(ShipmentContainerDetail::getContainerCode,shipmentContainerHeader.getContainerCode()) - .eq(ShipmentContainerDetail::getShipmentDetailId,shipmentCombinationModel.getShipmentDetailId()) - .eq(ShipmentContainerDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()); + lambdaQueryWrapper.eq(ShipmentContainerDetail::getShippingContainerId, shipmentContainerHeader.getId()) + .eq(ShipmentContainerDetail::getLocationCode, shipmentContainerHeader.getLocationCode()) + .eq(ShipmentContainerDetail::getContainerCode, shipmentContainerHeader.getContainerCode()) + .eq(ShipmentContainerDetail::getShipmentDetailId, shipmentCombinationModel.getShipmentDetailId()) + .eq(ShipmentContainerDetail::getInventoryId, shipmentCombinationModel.getInventoryDetailId()) + .eq(ShipmentContainerDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); ShipmentContainerDetail shipmentContainerDetail = shipmentContainerDetailService.getOne(lambdaQueryWrapper); ShipmentContainerDetail shipmentContainerDetaill = new ShipmentContainerDetail(); @@ -472,7 +473,7 @@ public class ShipmentContainerHeaderServiceImpl extends ServiceImpl<ShipmentCont lambdaQueryWrapper.eq(ShipmentDetail::getShipmentCode, shipmentCode) .eq(ShipmentDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()); List<ShipmentDetail> shipmentDetailList = shipmentDetailService.list(lambdaQueryWrapper); - if (shipmentDetailList.size() < 1 || shipmentDetailList == null) { + if (shipmentDetailList.isEmpty()) { return AjaxResult.error("找不到子单链"); } for(ShipmentDetail shipmentDetail: shipmentDetailList){ diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java index b9467ba..a4ef2a8 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java @@ -91,7 +91,7 @@ public class ReceiptTaskService { * 创建入库任务(整盘入库、补充入库) * * @param ids 入库组盘头表id - * @return + * @return AjaxResult 创建结果 */ @Transactional(rollbackFor = Exception.class) public AjaxResult createReceiptTask(List<Integer> ids) { @@ -170,9 +170,7 @@ public class ReceiptTaskService { throw new ServiceException("更新入库组盘明细状态出错"); } - /** - * 修改明细状态为上架 - */ + /* 修改明细状态为上架*/ ReceiptDetail receiptDetail = receiptDetailService.getById(item.getReceiptDetailId()); receiptDetail.setProcessStamp(String.valueOf(QuantityConstant.RECEIPT_HEADER_SHELF)); if (!receiptDetailService.updateById(receiptDetail)) { @@ -192,137 +190,84 @@ public class ReceiptTaskService { /** * 完成入库任务 + * @param task 任务 + * @return AjaxResult 完成入库任务结果 */ @Transactional(rollbackFor = Exception.class) public AjaxResult completeReceiptTask(TaskHeader task) { - List<Map<String, Object>> taskReceiptContainerDetail = taskHeaderMapper.getReceiptTask(task.getId()); - if (taskReceiptContainerDetail.size() < 1) { - return AjaxResult.success("未找到对应任务的入库单号!!!"); + /* 判断任务状态*/ + if (task.getStatus().equals(QuantityConstant.TASK_STATUS_COMPLETED)) { + return AjaxResult.error("任务已完成"); } - LambdaQueryWrapper<InventoryHeader> inventoryHeaderErapper = Wrappers.lambdaQuery(); - inventoryHeaderErapper.eq(InventoryHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) + BigDecimal totalQty = BigDecimal.ZERO; + List<TaskDetail> taskDetailList = taskDetailService.findByTaskId(task.getId()); + if (taskDetailList.isEmpty()) { + throw new ServiceException("任务明细为空"); + } + + LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(); + inventoryHeaderLambdaQueryWrapper.eq(InventoryHeader::getWarehouseCode, ShiroUtils.getWarehouseCode()) .eq(InventoryHeader::getLocationCode, task.getToLocation()) .eq(InventoryHeader::getContainerCode, task.getContainerCode()); - InventoryHeader header = inventoryHeaderService.getOne(inventoryHeaderErapper); - - if(header == null) { - //添加库存单 - header = new InventoryHeader(); - header.setWarehouseCode(task.getWarehouseCode()); - header.setCompanyCode(task.getCompanyCode());//货主 - header.setContainerCode(task.getContainerCode()); - header.setContainerStatus("some"); - header.setLocationCode(task.getToLocation()); - header.setLocking(1); - header.setEnable(1); - header.setTotalQty(new BigDecimal(0)); - header.setTotalWeight(task.getWeight()); - header.setCreatedBy(ShiroUtils.getLoginName()); - header.setCreated(new Date()); - header.setLastUpdatedBy(ShiroUtils.getLoginName()); - header.setLastUpdated(new Date()); - if (!inventoryHeaderService.save(header)) { + InventoryHeader inventoryHeader = inventoryHeaderService.getOne(inventoryHeaderLambdaQueryWrapper); + /* 如果库存 头明细不存在则新增库存头表记录*/ + if (StringUtils.isNull(inventoryHeader)) { + inventoryHeader = new InventoryHeader(); + inventoryHeader.setWarehouseCode(task.getWarehouseCode()); + inventoryHeader.setLocationCode(task.getToLocation()); + inventoryHeader.setContainerCode(task.getContainerCode()); + inventoryHeader.setContainerStatus("some"); + inventoryHeader.setTotalWeight(task.getWeight()); + inventoryHeader.setTotalQty(new BigDecimal(0)); + inventoryHeader.setTotalLines(0); + inventoryHeader.setLocking(1); + inventoryHeader.setEnable(1); + if (!inventoryHeaderService.save(inventoryHeader)) { throw new ServiceException("添加库存单失败"); } + inventoryHeader = inventoryHeaderService.getOne(inventoryHeaderLambdaQueryWrapper); } - for (Map<String, Object> map : taskReceiptContainerDetail) { - //将未完成的任务数量更新到库存表 - if (DataUtils.getInteger(map.get("status")) < QuantityConstant.TASK_STATUS_COMPLETED) { - LambdaQueryWrapper<InventoryDetail> inventory = Wrappers.lambdaQuery(); - inventory.eq(InventoryDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()) - .eq(InventoryDetail::getLocationCode, task.getToLocation()) - .eq(InventoryDetail::getMaterialCode, DataUtils.getString(map.get("materialCode"))) - .eq(InventoryDetail::getContainerCode, DataUtils.getString(map.get("containerCode"))) - .eq(InventoryDetail::getBatch, DataUtils.getString(map.get("batch"))) - .eq(InventoryDetail::getLot, DataUtils.getString(map.get("lot"))) - .eq(InventoryDetail::getProjectNo, DataUtils.getString(map.get("projectNo"))) - .eq(InventoryDetail::getCompanyCode, DataUtils.getString(map.get("companyCode"))); - InventoryDetail detail = inventoryDetailService.getOne(inventory); - if (detail == null) { - //库存明细添加 - detail = new InventoryDetail(); - detail.setInventoryHeaderId(header.getId());//库存头ID - detail.setWarehouseCode(DataUtils.getString(map.get("warehouseCode")));//仓库 - detail.setCompanyCode(task.getCompanyCode());//货主 - detail.setLocationCode(task.getToLocation());//库位号 - detail.setContainerCode(DataUtils.getString(map.get("containerCode")));//容器号 - detail.setMaterialCode(DataUtils.getString(map.get("materialCode")));//物料号 - detail.setMaterialName(DataUtils.getString(map.get("materialName")));//物料名称 - detail.setMaterialSpec(DataUtils.getString(map.get("materialSpec")));//物料规格 - detail.setMaterialUnit(DataUtils.getString(map.get("materialUnit")));//物料单位 - detail.setReceiptCode(DataUtils.getString(map.get("receiptCode")));//入库单编码 - detail.setReceiptDetailId(DataUtils.getInteger(map.get("receiptDetailId")));//入库单明细ID - detail.setBatch(DataUtils.getString(map.get("batch")));//批次 - detail.setLot(DataUtils.getString(map.get("lot")));//批号 - detail.setProjectNo(DataUtils.getString(map.get("projectNo")));//项目号 - detail.setInventorySts(DataUtils.getString(map.get("inventorySts")));//库存状态 -// detail.setManufactureDate(new SimpleDateFormat("yyyy-MM-dd").parse(map.get("manufactureDate").toString()));//生产日期 -// detail.setExpirationDate(new SimpleDateFormat("yyyy-MM-dd").parse(map.get("expirationDate").toString()));//失效日期 - detail.setQty(DataUtils.getBigDecimal(map.get("qty")));//数量 - detail.setLockedQty(DataUtils.getBigDecimal(0)); - detail.setTaskQty(DataUtils.getBigDecimal(0)); - detail.setCreatedBy(ShiroUtils.getLoginName());//创建人 - detail.setLastUpdatedBy(ShiroUtils.getLoginName());//创建时间 - if (!inventoryDetailService.save(detail)) { - throw new ServiceException("添加库存明细失败"); - } - } else { - detail.setQty(detail.getQty().add(DataUtils.getBigDecimal(map.get("qty")))); - detail.setLastUpdatedBy(ShiroUtils.getLoginName()); - LambdaUpdateWrapper<InventoryDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate(); - lambdaUpdateWrapper.eq(InventoryDetail::getId, detail.getId()); - if (!inventoryDetailService.update(detail, lambdaUpdateWrapper)){ - throw new ServiceException("更新库存明细失败"); + /* 遍历任务明细,修改关联的入库组盘、入库单状态、添加库存*/ + for (TaskDetail taskDetail : taskDetailList) { + if (taskDetail.getStatus() < QuantityConstant.TASK_STATUS_COMPLETED) { + totalQty = totalQty.add(taskDetail.getQty()); + /*查询入库单明细*/ + ReceiptDetail receiptDetail = receiptDetailService.getById(taskDetail.getBillDetailId()); + if (StringUtils.isNotNull(receiptDetail)) { + + totalQty = this.addInventoryDetail(taskDetail, receiptDetail, inventoryHeader); + //修改组盘表状态为完成 + ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail(); + receiptContainerDetail.setStatus(QuantityConstant.RECEIPT_CONTAINER_FINISHED); + LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate(); + receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getId, taskDetail.getAllocationId()); + if (!receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)){ + throw new ServiceException("更新组盘状态失败"); } - } - //记录库存交易记录 - InventoryTransaction inventoryTransaction = new InventoryTransaction(); - inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_RECEIPT); - inventoryTransaction.setWarehouseCode(DataUtils.getString(map.get("warehouseCode"))); - inventoryTransaction.setCompanyCode(task.getCompanyCode()); - inventoryTransaction.setLocationCode(task.getToLocation()); - inventoryTransaction.setContainerCode(DataUtils.getString(map.get("containerCode"))); - inventoryTransaction.setMaterialCode(DataUtils.getString(map.get("materialCode"))); - inventoryTransaction.setMaterialName(DataUtils.getString(map.get("materialName"))); - inventoryTransaction.setMaterialSpec(DataUtils.getString(map.get("materialSpec")));//物料规格 - inventoryTransaction.setMaterialUnit(DataUtils.getString(map.get("materialUnit")));//物料单位 - inventoryTransaction.setBillCode(DataUtils.getString(map.get("receiptCode"))); - inventoryTransaction.setBillDetailId(DataUtils.getInteger(map.get("receiptDetailId"))); - inventoryTransaction.setBatch(DataUtils.getString(map.get("batch"))); - inventoryTransaction.setLot(DataUtils.getString(map.get("lot"))); - inventoryTransaction.setInventorySts(DataUtils.getString((map.get("inventorySts")))); - inventoryTransaction.setTaskQty(DataUtils.getBigDecimal(map.get("qty"))); - inventoryTransaction.setCreated(new Date()); - inventoryTransaction.setCreatedBy(ShiroUtils.getLoginName()); - if (!inventoryTransactionService.save(inventoryTransaction)) { - throw new ServiceException("新增库存记录失败"); - } - //修改任务明细的状态为完成 - TaskDetail taskDetail = new TaskDetail(); - taskDetail.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); - taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); - taskDetail.setAgingDate(new Date()); //入库时间 - LambdaUpdateWrapper<TaskDetail> lambdaUpdateWrapper = Wrappers.lambdaUpdate(); - lambdaUpdateWrapper.eq(TaskDetail::getTaskId, task.getId()); - taskDetailService.update(taskDetail, lambdaUpdateWrapper); - if (!taskDetailService.update(taskDetail, lambdaUpdateWrapper)) { - throw new ServiceException("修改入库单明细失败"); + } else { + throw new ServiceException("未找到id:" + taskDetail.getBillDetailId() + "入库单明细"); } - + receiptDetail.setProcessStamp(String.valueOf(QuantityConstant.RECEIPT_HEADER_POSTING)); + receiptDetailService.updateById(receiptDetail); + receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); + materialWarningService.materialWarning(taskDetail.getMaterialCode(), taskDetail.getCompanyCode()); } + } + if (StringUtils.isNull(inventoryHeader)) { + throw new ServiceException("库存添加失败"); + } else { } //修改任务主表状态,因为立库任务表单头只对应一个货箱,表单详情的任务会同时完成 task.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); - task.setLastUpdatedBy(ShiroUtils.getLoginName()); - task.setLastUpdated(new Date()); LambdaUpdateWrapper<TaskHeader> taskHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate(); taskHeaderLambdaUpdateWrapper.eq(TaskHeader::getId, task.getId()); if (!taskHeaderService.update(task, taskHeaderLambdaUpdateWrapper)){ throw new ServiceException("更新任务主表失败"); } + //修改库位状态和对应的容器 Location location = new Location(); location.setContainerCode(task.getContainerCode()); @@ -341,41 +286,15 @@ public class ReceiptTaskService { if (!containerService.update(container, containerLambdaUpdateWrapper)) { throw new ServiceException("更新容器失败"); } - //修改组盘表状态为20 - ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail(); - receiptContainerDetail.setStatus(QuantityConstant.RECEIPT_CONTAINER_REVIEWSUCCESS); - receiptContainerDetail.setProcessStamp("0"); - receiptContainerDetail.setLastUpdated(new Date()); - receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); - LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate(); - receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getReceiptId, DataUtils.getInteger(taskReceiptContainerDetail.get(0).get("receiptId"))); - if (!receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)){ - throw new ServiceException("更新组盘状态失败"); - } //修改入库组盘头表状态 - ReceiptContainerHeader receiptContainerHeader = new ReceiptContainerHeader(); receiptContainerHeader.setId(task.getAllocationHeadId()); - receiptContainerHeader.setLastUpdated(new Date()); - receiptContainerHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); - receiptContainerHeader.setStatus(QuantityConstant.RECEIPT_CONTAINER_FINISHED.intValue()); + receiptContainerHeader.setStatus(QuantityConstant.RECEIPT_CONTAINER_FINISHED); if (!receiptContainerHeaderService.updateById(receiptContainerHeader)) { throw new ServiceException("更新入库组盘头表状态失败"); } - - //修改入库单状态 - ReceiptHeader receiptHeader = new ReceiptHeader(); - receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_POSTING); - receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_POSTING); - receiptHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); - receiptHeader.setLastUpdated(new Date()); - LambdaUpdateWrapper<ReceiptHeader> receiptHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate(); - receiptHeaderLambdaUpdateWrapper.eq(ReceiptHeader::getId, DataUtils.getInteger(taskReceiptContainerDetail.get(0).get("receiptId"))); - if (!receiptHeaderService.update(receiptHeader, receiptHeaderLambdaUpdateWrapper)) { - throw new ServiceException("更新入库头表状态失败"); - } - return AjaxResult.success("完成入库任务"); + return AjaxResult.success(); } /** @@ -445,10 +364,13 @@ public class ReceiptTaskService { inventoryDetail.setAttribute3(receiptDetail.getAttribute3()); inventoryDetail.setReceiptCode(receiptHeader.getCode()); inventoryDetail.setReceiptDetailId(receiptDetail.getId()); - if (!inventoryDetailService.save(inventoryDetail)) { - throw new ServiceException("保存库存明细失败"); - } + inventoryHeader.setTotalLines(inventoryHeader.getTotalLines()+1); + } + if (!inventoryDetailService.saveOrUpdate(inventoryDetail)) { + throw new ServiceException("保存库存明细失败"); } + inventoryHeader.setTotalQty(inventoryHeader.getTotalQty().add(taskDetail.getQty())); + inventoryHeaderService.updateById(inventoryHeader); //记录库存交易记录 InventoryTransaction inventoryTransaction = new InventoryTransaction(); inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_RECEIPT); diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java index d00de94..56f81c4 100644 --- a/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java +++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderService.java @@ -54,6 +54,4 @@ public interface TaskHeaderService extends IService<TaskHeader>{ AjaxResult setLocationCode(Integer taskId, Integer high); - AjaxResult createReceiptTask(List<Integer> ids); - } 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 bafea1c..5d6a8e2 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 @@ -6,23 +6,17 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.huaheng.api.wcs.service.taskAssignService.TaskAssignService; import com.huaheng.common.constant.QuantityConstant; -import com.huaheng.common.exception.BusinessException; import com.huaheng.common.exception.service.ServiceException; import com.huaheng.common.support.Convert; -import com.huaheng.common.utils.DataUtils; import com.huaheng.common.utils.StringUtils; import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.web.domain.AjaxResult; -import com.huaheng.mobile.download.Constant; import com.huaheng.pc.config.configWarning.service.ConfigWarningService; import com.huaheng.pc.config.container.domain.Container; import com.huaheng.pc.config.container.service.ContainerService; -import com.huaheng.pc.config.containerCapacity.domain.ContainerCapacity; import com.huaheng.pc.config.containerCapacity.service.ContainerCapacityService; import com.huaheng.pc.config.location.domain.Location; import com.huaheng.pc.config.location.service.LocationService; -import com.huaheng.pc.config.sendMail.service.MailService; -import com.huaheng.pc.config.sendMail.service.SendMailService; import com.huaheng.pc.inventory.cycleCountDetail.domain.CycleCountDetail; import com.huaheng.pc.inventory.cycleCountDetail.service.CycleCountDetailService; import com.huaheng.pc.inventory.cycleCountHeader.service.CycleCountHeaderService; @@ -30,33 +24,24 @@ import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail; import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService; import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader; import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService; -import com.huaheng.pc.inventory.inventoryTransaction.domain.InventoryTransaction; import com.huaheng.pc.inventory.inventoryTransaction.service.InventoryTransactionService; -import com.huaheng.pc.monitor.message.service.BrokerMessageLogService; import com.huaheng.pc.receipt.receiptContainerDetail.domain.ReceiptContainerDetail; import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService; import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerHeader; import com.huaheng.pc.receipt.receiptContainerHeader.service.ReceiptContainerHeaderService; -import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail; import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService; -import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader; import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService; import com.huaheng.pc.receipt.receiving.service.ReceivingService; -import com.huaheng.pc.shipment.shipmentContainerDetail.domain.ShipmentContainerDetail; import com.huaheng.pc.shipment.shipmentContainerDetail.service.ShipmentContainerDetailService; import com.huaheng.pc.shipment.shipmentContainerHeader.domain.ShipmentContainerHeader; import com.huaheng.pc.shipment.shipmentContainerHeader.service.ShipmentContainerHeaderService; -import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail; import com.huaheng.pc.shipment.shipmentDetail.service.ShipmentDetailService; -import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader; import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService; 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.ShipmentTaskCreateModel; import com.huaheng.pc.task.taskHeader.domain.TaskHeader; import com.huaheng.pc.task.taskHeader.mapper.TaskHeaderMapper; -import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -162,15 +147,15 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea LambdaQueryWrapper<TaskHeader> taskQueryWrapper = Wrappers.lambdaQuery(); taskQueryWrapper.eq(TaskHeader::getToLocation, locationCode); List<TaskHeader> list = this.list(taskQueryWrapper); - if (list.size() < 1) { + if (list.isEmpty()) { throw new ServiceException("库位(" + locationCode + ")没有任务!"); - } else if(list.get(0).getStatus() == 100) { + } else if(list.get(0).getStatus().equals(QuantityConstant.TASK_STATUS_COMPLETED)) { //如果已完成则不管 throw new ServiceException("库位(" + locationCode + ")任务已经完成!"); } - if(list.get(0).getTaskType()==100 || list.get(0).getTaskType()==200){ + if(list.get(0).getInternalTaskType().equals(QuantityConstant.TASK_INTENERTYPE_SHELF)){ //入库任务 - return receiptTaskService.completeReceiptTask((list.get(0))); + return receiptTaskService.completeReceiptTask((list.get(0))); } else { throw new ServiceException("库位(" + locationCode + ")的任务不是上架,不能完成!"); } @@ -208,7 +193,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } List<Integer> ids = new ArrayList<>(); ids.add(containerHeader.getId()); - this.createReceiptTask(ids); + receiptTaskService.createReceiptTask(ids); return AjaxResult.success("成功!"); } @@ -330,7 +315,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea Container container = new Container(); container.setStatus("empty"); if(inventoryHeader != null) { - if(inventoryHeader.getContainerStatus().equals("some")) { + if("some".equals(inventoryHeader.getContainerStatus())) { container.setStatus("some"); } } @@ -382,13 +367,14 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (StringUtils.isEmpty(ids)){ return AjaxResult.error("id不能为空"); } + Integer maxId = idList.stream().max(Comparator.comparing(Integer::intValue)).orElse(null); LambdaQueryWrapper<ReceiptContainerHeader> lambda = Wrappers.lambdaQuery(); lambda.select(ReceiptContainerHeader::getId) .lt(ReceiptContainerHeader::getStatus, 10) .le(ReceiptContainerHeader::getId, maxId); - return createReceiptTask(idList); + return receiptTaskService.createReceiptTask(idList); } return AjaxResult.error("生成入库任务失败"); } @@ -407,6 +393,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (task.getStatus() >= QuantityConstant.TASK_STATUS_RELEASE) { return AjaxResult.error("任务" + taskId + "已经下发,请不要重复下发,操作中止"); } + // 给wcs传递任务 try { createTaskMessage.createTask(task); @@ -487,6 +474,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } @Override + @Transactional(rollbackFor = Exception.class) public AjaxResult completeTaskByWMS(Integer[] taskIds, String[] weightConvert) { for (int i = 0;i<taskIds.length;i++) { TaskHeader task = taskHeaderService.getById(taskIds[i]); @@ -510,8 +498,8 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if(task.getTaskType().equals(QuantityConstant.TASK_TYPE_WHOLERECEIPT) || task.getTaskType().equals(QuantityConstant.TASK_TYPE_EMPTYRECEIPT)){ if(StringUtils.isEmpty(task.getToLocation())){ //自动分配库位 -// AjaxResult ajaxResult = this.setLocationCode(task.getId(),0 ); -// task.setToLocation((String)ajaxResult.getData()); + // AjaxResult ajaxResult = this.setLocationCode(task.getId(),0 ); + // task.setToLocation((String)ajaxResult.getData()); } } //如果没有库位不能完成 @@ -534,7 +522,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea if (task.getInternalTaskType().equals(QuantityConstant.TASK_INTENERTYPE_SHELF) ) { //入库任务 receiptTaskService.completeReceiptTask(task); - combineInventory(task); } if (task.getInternalTaskType().equals(QuantityConstant.TASK_INTENERTYPE_PICKING) && (task.getTaskType().equals(QuantityConstant.TASK_TYPE_WHOLESHIPMENT) || task.getTaskType().equals(QuantityConstant.TASK_TYPE_SORTINGSHIPMENT))) { @@ -543,7 +530,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } // 900 出库查看,空托出库查看 if (task.getTaskType().equals( QuantityConstant.TASK_TYPE_VIEW)) { - workTaskService.completeCheckOutTask(task); + workTaskService.completeCheckOutTask(task); } // 700 盘点 if (task.getTaskType().equals(QuantityConstant.TASK_TYPE_CYCLECOUNT)) { @@ -634,138 +621,11 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } List<Integer> idList = new ArrayList<>(); idList.add(receiptContainerHeader.getId()); - createReceiptTask(idList); + receiptTaskService.createReceiptTask(idList); return AjaxResult.success(receiptContainerHeader); } - - /** - * 完成移库任务 - * - * @param task - */ - @Transactional(rollbackFor = Exception.class) - public void completeTransferTask(TaskHeader task) { - //找到任务明细 - TaskDetail taskDetail = new TaskDetail(); - taskDetail.setTaskId(task.getId()); - taskDetail.setWarehouseCode(task.getWarehouseCode()); - taskDetail.setCompanyCode(task.getCompanyCode()); - taskDetail.setContainerCode(task.getContainerCode()); - LambdaQueryWrapper<TaskDetail> taskDetailLW = Wrappers.lambdaQuery(taskDetail); - taskDetail = taskDetailService.getOne(taskDetailLW); - //更新库存主表和明细的库位,更改更新用户和时间 - InventoryHeader inventoryHeader = new InventoryHeader(); - //主表 - inventoryHeader.setWarehouseCode(taskDetail.getWarehouseCode()); - inventoryHeader.setCompanyCode(taskDetail.getCompanyCode()); - inventoryHeader.setContainerCode(taskDetail.getContainerCode()); - inventoryHeader.setLocationCode(taskDetail.getFromLocation());//通过源库位查找库存 - LambdaQueryWrapper<InventoryHeader> inventoryHeaderLambdaQueryWrapper = Wrappers.lambdaQuery(inventoryHeader); - inventoryHeader = inventoryHeaderService.getOne(inventoryHeaderLambdaQueryWrapper); - if (StringUtils.isNotNull(inventoryHeader)){ - inventoryHeader.setLocationCode(taskDetail.getToLocation());//把目的库位写入库存 - inventoryHeader.setLastUpdated(new Date()); - inventoryHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); - inventoryHeaderService.saveOrUpdate(inventoryHeader);//修改主表库位 - - //明细表 - List<InventoryDetail> inventoryDetails = new ArrayList<>(); - InventoryDetail inventoryDetail = new InventoryDetail(); - inventoryDetail.setWarehouseCode(inventoryHeader.getWarehouseCode()); - inventoryDetail.setCompanyCode(inventoryHeader.getCompanyCode()); - inventoryDetail.setInventoryHeaderId(inventoryHeader.getId()); - LambdaQueryWrapper<InventoryDetail> inventoryDetailLambdaQueryWrapper = Wrappers.lambdaQuery(inventoryDetail); - List<InventoryDetail> inventoryDetailList = inventoryDetailService.list(inventoryDetailLambdaQueryWrapper); - /*同时写入库存交易表*/ - List<InventoryTransaction> inventoryTransactionList = new ArrayList<>(); - for (InventoryDetail item : inventoryDetailList) { - item.setLocationCode(inventoryHeader.getLocationCode());//修改明细表库位 - item.setLastUpdated(new Date()); - item.setLastUpdatedBy(ShiroUtils.getLoginName()); - inventoryDetails.add(item); - /*----------*/ - InventoryTransaction inventoryTransaction = new InventoryTransaction(); - inventoryTransaction.setWarehouseCode(task.getWarehouseCode()); - inventoryTransaction.setLocationCode(taskDetail.getToLocation()); - inventoryTransaction.setContainerCode(taskDetail.getContainerCode()); - inventoryTransaction.setTransactionType(QuantityConstant.INVENTORY_TRANSACTION_ADJUSTPROPERTIES); - inventoryTransaction.setMaterialCode(item.getMaterialCode()); - inventoryTransaction.setManufactureDate(item.getManufactureDate()); - inventoryTransaction.setMaterialName(item.getMaterialName()); - inventoryTransaction.setMaterialSpec(item.getMaterialSpec()); - inventoryTransaction.setMaterialUnit(item.getMaterialUnit()); - inventoryTransaction.setTaskQty(BigDecimal.ZERO); - inventoryTransaction.setInventorySts(item.getInventorySts()); - inventoryTransaction.setCompanyCode(item.getCompanyCode()); - inventoryTransaction.setReferDetailId(item.getId().toString()); - inventoryTransaction.setBatch(item.getBatch()); - inventoryTransaction.setLot(item.getLot()); - inventoryTransaction.setProjectNo(item.getProjectNo()); - inventoryTransaction.setWeight(item.getWeight()); - inventoryTransaction.setManufactureDate(item.getManufactureDate()); - inventoryTransaction.setExpirationDate(item.getExpirationDate()); - inventoryTransaction.setAgingDate(item.getCreated()); - inventoryTransaction.setAttributeId(item.getAttributeId()); - inventoryTransaction.setAttribute1(item.getAttribute1()); - inventoryTransaction.setAttribute2(item.getAttribute2()); - inventoryTransaction.setAttribute3(item.getAttribute3()); - inventoryTransaction.setCreated(new Date()); - inventoryTransaction.setCreatedBy(ShiroUtils.getLoginName()); - //inventoryTransaction.setLockCode(); - inventoryTransaction.setBillCode(item.getInventoryHeaderId().toString()); - inventoryTransaction.setBillDetailId(item.getId()); - inventoryTransaction.setSupplierCode(item.getSupplierCode()); - inventoryTransactionList.add(inventoryTransaction); - } - if(inventoryDetails != null && inventoryDetails.size() > 0) { - if (inventoryDetailService.saveOrUpdateBatch(inventoryDetails)) { - //更新库存明细成功后,写入库存交易 - inventoryTransactionService.saveBatch(inventoryTransactionList); - } else { - throw new ServiceException("库存明细更新错误!"); - } - } - - } - //更新托盘、库位状态 - Location temp1 = new Location(); //源库位 - temp1.setCode(taskDetail.getFromLocation()); - temp1.setWarehouseCode(ShiroUtils.getWarehouseCode()); - LambdaQueryWrapper<Location> lambdaQueryWrapper1 = Wrappers.lambdaQuery(temp1); - Location loc1 = locationService.getOne(lambdaQueryWrapper1); - - Location temp2 = new Location();//目的库位 - temp2.setCode(taskDetail.getToLocation()); - temp2.setWarehouseCode(ShiroUtils.getWarehouseCode()); - LambdaQueryWrapper<Location> lambdaQueryWrapper2 = Wrappers.lambdaQuery(temp2); - Location loc2 = locationService.getOne(lambdaQueryWrapper2); - loc2.setContainerCode(loc1.getContainerCode()); - loc2.setStatus("empty"); - loc1.setContainerCode(""); - loc1.setStatus("empty"); - locationService.saveOrUpdate(loc1); - locationService.saveOrUpdate(loc2); - - Container container = containerService.findAllByCode(task.getContainerCode()); - container.setLocationCode(task.getToLocation()); - if (!containerService.updateById(container)){ - throw new ServiceException("更新容器失败"); - } - - //更新taskHeader状态 - task.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); - task.setLastUpdatedBy(ShiroUtils.getLoginName()); - task.setLastUpdated(new Date()); - taskHeaderService.saveOrUpdate(task); - //更新taskDetail状态 - taskDetail.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); - taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); - taskDetail.setLastUpdated(new Date()); - taskDetailService.saveOrUpdate(taskDetail); - } - /** * 盘点完成 * @@ -821,191 +681,6 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea } /** - * 完成空托盘入库任务 - * - * @param taskHeader - */ - @Transactional(rollbackFor = Exception.class) - public void completeEmptyIn(TaskHeader taskHeader) { - - //完成任务,修改主单和明细状态 - taskHeader.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); - taskHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); - taskHeader.setLastUpdated(new Date()); - //taskHeaderService.saveOrUpdate(taskHeader); - //taskDetail更新明细单总的状态 - TaskDetail taskDetail = new TaskDetail(); - taskDetail.setWarehouseCode(taskHeader.getWarehouseCode()); - taskDetail.setTaskType(taskHeader.getTaskType()); - taskDetail.setTaskId(taskHeader.getId()); - LambdaQueryWrapper lambdaQueryWrapper = Wrappers.lambdaQuery(taskDetail); - List<TaskDetail> taskDetailList = taskDetailService.list(lambdaQueryWrapper);//查询子单 - for (TaskDetail item : taskDetailList) { - item.setStatus(QuantityConstant.TASK_STATUS_COMPLETED); - item.setLastUpdatedBy(ShiroUtils.getLoginName()); //更新用户 - item.setLastUpdated(new Date()); //更新时间 - } - if (taskDetailService.saveOrUpdateBatch(taskDetailList) == false || - taskHeaderService.saveOrUpdate(taskHeader) == false) { - throw new ServiceException("任务单据状态更新失败!"); - } - //解锁容器,更新库位 - containerService.updateLocationCodeAndStatus(taskHeader.getContainerCode(), taskHeader.getToLocation(), "empty"); - //解锁库位,更新容器 - locationService.updateContainerCodeAndStatus(taskHeader.getToLocation(), taskHeader.getContainerCode(), "empty"); - - //写入库存头表 - InventoryHeader inventoryHeader = new InventoryHeader(); - inventoryHeader.setWarehouseCode(taskHeader.getWarehouseCode()); - inventoryHeader.setLocationCode(taskHeader.getToLocation()); - inventoryHeader.setContainerCode(taskHeader.getContainerCode()); - inventoryHeader.setContainerStatus("empty"); - inventoryHeader.setCompanyCode(taskHeader.getCompanyCode()); - inventoryHeader.setMaterialSkuQty("0"); - inventoryHeader.setTotalWeight("0"); - inventoryHeader.setTotalQty(new BigDecimal(0)); - inventoryHeader.setTotalLines(0); - inventoryHeader.setProjectNos(""); - inventoryHeader.setBatchs(""); - inventoryHeader.setLots(""); - inventoryHeader.setLockRemark(""); - inventoryHeader.setCreated(new Date()); - inventoryHeader.setCreatedBy(ShiroUtils.getLoginName()); - inventoryHeader.setLastUpdated(new Date()); - inventoryHeader.setLastUpdatedBy(ShiroUtils.getLoginName()); - Boolean j = inventoryHeaderService.save(inventoryHeader); - if(!j){ - throw new ServiceException("新增空托库存头失败!"); - - } - } - - /** - * 创建上架任务 - * - * @param ids - * @return - */ - @Override - @Transactional(rollbackFor = Exception.class) - public AjaxResult createReceiptTask(List<Integer> ids) { - for (Integer id : ids) { - ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getById(id); - if (receiptContainerHeader == null) { - throw new ServiceException("任务不存在!"); - } - - if (!receiptContainerHeader.getWarehouseCode().equals(ShiroUtils.getWarehouseCode())) { - throw new ServiceException("任务不在当前仓库!"); - } - - //锁定容器 - Container container = new Container(); - container.setStatus("lock"); - LambdaUpdateWrapper<Container> containerUpdateWrapper = Wrappers.lambdaUpdate(); - containerUpdateWrapper.eq(Container::getCode, receiptContainerHeader.getContainerCode()); - containerService.update(container, containerUpdateWrapper); - - //查询入库组盘明细 - LambdaQueryWrapper<ReceiptContainerDetail> containerDetailLambda = Wrappers.lambdaQuery(); - containerDetailLambda.eq(ReceiptContainerDetail::getReceiptContainerId, id); - List<ReceiptContainerDetail> list = receiptContainerDetailService.list(containerDetailLambda); - - if (list.size() < 1) { - throw new ServiceException("没有组盘明细,请先组盘!"); - } - if (receiptContainerHeader.getStatus() == QuantityConstant.RECEIPT_CONTAINER_BUILD.intValue()) { - if (receiptContainerHeader.getStatus().intValue() < QuantityConstant.RECEIPT_CONTAINER_TASK) { - receiptContainerHeader.setStatus(QuantityConstant.RECEIPT_CONTAINER_TASK.intValue()); - receiptContainerHeaderService.updateById(receiptContainerHeader); - } - //添加任务主表 - TaskHeader task = new TaskHeader(); - task.setAllocationHeadId(receiptContainerHeader.getId()); - task.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_SHELF); - task.setWarehouseCode(receiptContainerHeader.getWarehouseCode()); - task.setCompanyCode(receiptContainerHeader.getCompanyCode()); - task.setTaskType(Integer.valueOf(receiptContainerHeader.getTaskType())); - task.setFromLocation(receiptContainerHeader.getFromLocation()); - task.setToLocation(receiptContainerHeader.getToLocation()); - task.setContainerCode(receiptContainerHeader.getContainerCode()); - task.setRecvDock(receiptContainerHeader.getRecvDock()); - task.setCreated(new Date()); - task.setCreatedBy(ShiroUtils.getLoginName()); - if (this.save(task)) { - //添加任务明细表 - int conatinQty = 0; - for (ReceiptContainerDetail item : list) { - LambdaQueryWrapper<ContainerCapacity> lambdaQueryWrapper = Wrappers.lambdaQuery(); - String[] containCodeSplit = task.getContainerCode().split("\\D"); - String containType = containCodeSplit[0]; - lambdaQueryWrapper.eq(ContainerCapacity::getContainerType, task.getContainerCode()) - .eq(ContainerCapacity::getMaterialCode, item.getMaterialCode()) - .eq(ContainerCapacity::getWarehouseCode, ShiroUtils.getWarehouseCode()) - .eq(ContainerCapacity::getEnable, 0); - ContainerCapacity containerCapacity = containerCapacityService.getOne(lambdaQueryWrapper); - - TaskDetail taskDetail = new TaskDetail(); - taskDetail.setTaskId(task.getId()); - taskDetail.setTaskType(Integer.valueOf(receiptContainerHeaderService.getById(item.getReceiptContainerId()).getTaskType())); - taskDetail.setInternalTaskType(QuantityConstant.TASK_INTENERTYPE_SHELF); - taskDetail.setWarehouseCode(task.getWarehouseCode()); - taskDetail.setAllocationId(item.getId()); - taskDetail.setCompanyCode(task.getCompanyCode()); - taskDetail.setCompanyCode(task.getCompanyCode()); - taskDetail.setMaterialCode(item.getMaterialCode()); - taskDetail.setMaterialName(item.getMaterialName()); - taskDetail.setMaterialSpec(item.getMaterialSpec()); - taskDetail.setMaterialUnit(item.getMaterialUnit()); - taskDetail.setBillCode(item.getReceiptCode()); - taskDetail.setBillDetailId(item.getReceiptDetailId()); - taskDetail.setBillCode(item.getReceiptCode()); - taskDetail.setQty(item.getQty()); - taskDetail.setContainerCode(task.getContainerCode()); - taskDetail.setFromLocation(task.getFromLocation()); - taskDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); - taskDetail.setBatch(item.getBatch()); - taskDetail.setProjectNo(item.getProjectNo()); - if (containerCapacity != null) { - conatinQty += (int) Math.floor(item.getQty().intValue() / containerCapacity.getQty().intValue()); - taskDetail.setContainQty((int) Math.floor(item.getQty().intValue() / containerCapacity.getQty().intValue())); - } - if (!taskDetailService.save(taskDetail)) { - throw new ServiceException("生成任务明细失败"); - } - - //更新入库组盘明细状态 - item.setStatus(QuantityConstant.RECEIPT_CONTAINER_TASK); - if (!receiptContainerDetailService.updateById(item)) { - throw new ServiceException("更新入库组盘明细状态出错"); - } - - /** - * 修改明细状态为上架 - */ - ReceiptDetail receiptDetail = receiptDetailService.getById(item.getReceiptDetailId()); - receiptDetail.setProcessStamp(String.valueOf(QuantityConstant.RECEIPT_HEADER_SHELF)); - if (!receiptDetailService.updateById(receiptDetail)) { - throw new ServiceException("更新入库单详情失败"); - } - //更新头表状态 - receiptDetailService.updateReceiptHeaderLastStatus(receiptDetail.getReceiptId()); - - } - - task.setContainQty(conatinQty); - if (!taskHeaderService.updateById(task)) { - throw new ServiceException("更新任务头表容器数量失败"); - } - } else { - throw new ServiceException("生成任务头表失败"); - } - } - } - return AjaxResult.success("生成上架任务成功"); - } - - /** * 自动分配库位 * @param taskId 任务号 * @param high 1是高库位,否则低库位 @@ -1054,10 +729,14 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea condition.setWarehouseCode(ShiroUtils.getWarehouseCode()); condition.setTaskId(taskHeader.getId()); LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery(condition); - TaskDetail taskDetail = taskDetailService.getOne(taskDetailLambdaQueryWrapper); - if (taskDetail != null) { - taskDetail.setToLocation(location.getCode()); - taskDetailService.update(taskDetail, taskDetailLambdaQueryWrapper); + List<TaskDetail> taskDetailList = taskDetailService.list(taskDetailLambdaQueryWrapper); + if(taskDetailList != null && taskDetailList.size() > 0) { + for(TaskDetail taskDetail : taskDetailList) { + if (taskDetail != null) { + taskDetail.setToLocation(location.getCode()); + taskDetailService.update(taskDetail, taskDetailLambdaQueryWrapper); + } + } } } //给任务分配库位 -- libgit2 0.22.2