From 165752f9f321d7b49874da3244a825db8eabb7a4 Mon Sep 17 00:00:00 2001 From: pengcheng <1432755665@qq.com> Date: Fri, 11 Oct 2019 22:24:23 +0800 Subject: [PATCH] 重入和空出处理 --- src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java | 25 +++++++++++++++++++++++-- src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java | 122 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 140 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java index cc610a2..0d690df 100644 --- a/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java +++ b/src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java @@ -3,19 +3,29 @@ package com.huaheng.api.wcs.service.emptyOutHandle; import com.huaheng.api.wcs.domain.WcsTask; import com.huaheng.common.utils.StringUtils; import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.pc.task.taskHeader.domain.TaskHeader; +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Service public class EmptyOutHandleServiceImpl implements EmptyOutHandleService { + + @Autowired + private TaskHeaderService taskHeaderService; + /** * 空出处理 * 1、判断非空字段 - * 2、 + * 2、根据任务号查找任务 + * 3、修改该任务为空出,过后处理 * @param wcsTask * @return */ @Override + @Transactional public AjaxResult EmptyOutHandle(WcsTask wcsTask) { //1、判断非空字段 @@ -23,7 +33,18 @@ public class EmptyOutHandleServiceImpl implements EmptyOutHandleService { return AjaxResult.error("任务号为空"); } + //2、根据任务号查找任务 + TaskHeader taskHeader = taskHeaderService.getById(Integer.valueOf(wcsTask.getTaskNo())); + if(taskHeader == null){ + return AjaxResult.error("任务号错误,没有找到该任务"); + } - return null; + //3、修改该任务为空出,过后处理 + taskHeader.setUserDef1("空托出库"); + Boolean flag = taskHeaderService.updateById(taskHeader); + if(flag == false){ + return AjaxResult.error("修改任务失败,空出处理失败"); + } + return AjaxResult.success("空出处理成功"); } } diff --git a/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java b/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java index d12e829..4451fc5 100644 --- a/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java +++ b/src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java @@ -1,24 +1,56 @@ package com.huaheng.api.wcs.service.overrideHandle; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.huaheng.api.wcs.domain.WcsTask; import com.huaheng.common.exception.service.ServiceException; import com.huaheng.common.utils.StringUtils; +import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.web.domain.AjaxResult; +import com.huaheng.pc.config.location.domain.Location; +import com.huaheng.pc.config.location.service.LocationService; +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.task.taskDetail.domain.TaskDetail; +import com.huaheng.pc.task.taskDetail.service.TaskDetailService; import com.huaheng.pc.task.taskHeader.domain.TaskHeader; +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; @Service public class OverrideHandleServiceImpl implements OverrideHandleService { + + @Autowired + private TaskHeaderService taskHeaderService; + @Autowired + private TaskDetailService taskDetailService; + @Autowired + private LocationService locationService; + @Autowired + private ReceiptContainerHeaderService receiptContainerHeaderService; + @Autowired + private ReceiptContainerDetailService receiptContainerDetailService; + /** * 重入处理 * 1、判断非空字段 - * 2、实体转换 - * + * 2、根据任务号查找任务 + * 3、修改任务目的库位,修改入库组盘的库位,修改库位状态 */ @Override + @Transactional public AjaxResult OverrideHandle(WcsTask wcsTask) { + Boolean flag = true; + //1、判断非空字段 if(StringUtils.isEmpty(wcsTask.getTaskNo())){ return AjaxResult.error("任务号为空"); @@ -27,9 +59,89 @@ public class OverrideHandleServiceImpl implements OverrideHandleService { return AjaxResult.error("目的库位为空"); } - TaskHeader taskHeader =new TaskHeader(); - taskHeader.setId(Integer.valueOf(wcsTask.getTaskNo())); + //2、根据任务号查找任务 + TaskHeader taskHeader = taskHeaderService.getById(Integer.valueOf(wcsTask.getTaskNo())); + if(taskHeader == null){ + return AjaxResult.error("任务号错误,没有找到该任务"); + } + + //3、修改任务目的库位,修改入库组盘的库位,修改库位状态 + //修改原来目的库位的状态 + LambdaQueryWrapper<Location> locationLam = Wrappers.lambdaQuery(); + locationLam.eq(Location::getCode,taskHeader.getToLocation()) + .eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode()); + Location location = locationService.getOne(locationLam); + if(location == null){ + return AjaxResult.error("此任务的原目的库位在系统中不存在"); + } + location.setStatus("empty"); + flag = locationService.updateById(location); + if(flag == false){ + return AjaxResult.error("修改此任务的原目的库位错误"); + } + + //查看新库位 + locationLam.eq(Location::getCode,wcsTask.getToLocationCode()) + .eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode()); + Location newlocation = locationService.getOne(locationLam); + if(newlocation == null){ + throw new ServiceException("新目的库位在系统中不存在"); + } + //修改任务 taskHeader.setToLocation(wcsTask.getToLocationCode()); - return null; + taskHeader.setUserDef1("重入处理"); + flag = taskHeaderService.updateById(taskHeader); + if(flag == false){ + throw new ServiceException("修改此任务错误"); + } + + //修改子任务 + LambdaQueryWrapper<TaskDetail> taskDetailLam = Wrappers.lambdaQuery(); + taskDetailLam.eq(TaskDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()) + .eq(TaskDetail::getTaskId,taskHeader.getId()); + List<TaskDetail> taskDetails = taskDetailService.list(taskDetailLam); + List<TaskDetail> taskDetailList = new ArrayList<>(); + if(taskDetails != null && taskDetails.size()> 0){ + for(TaskDetail taskDetail : taskDetails){ + taskDetail.setToLocation(wcsTask.getToLocationCode()); + taskDetailList.add(taskDetail); + } + flag = taskDetailService.updateBatchById(taskDetailList); + if(flag == false){ + throw new ServiceException("修改此任务的明细错误"); + } + } + + //修改入库组盘 + if(taskHeader.getAllocationHeadId() == null){ + throw new ServiceException("找不到此任务的组盘头id"); + } + ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getById(taskHeader.getAllocationHeadId()); + if(receiptContainerHeader == null){ + throw new ServiceException("找不到此任务的组盘头"); + } + receiptContainerHeader.setToLocation(wcsTask.getToLocationCode()); + flag = receiptContainerHeaderService.updateById(receiptContainerHeader); + if(flag == false){ + throw new ServiceException("修改此任务对应的组盘头错误"); + } + + //修改入库组盘明细 + LambdaQueryWrapper<ReceiptContainerDetail> lam = Wrappers.lambdaQuery(); + lam.eq(ReceiptContainerDetail::getReceiptContainerId,receiptContainerHeader.getId()) + .eq(ReceiptContainerDetail::getWarehouseCode,ShiroUtils.getWarehouseCode()); + List<ReceiptContainerDetail> receiptContainerDetails = receiptContainerDetailService.list(lam); + List<ReceiptContainerDetail> receiptContainerDetailList = new ArrayList<>(); + if(receiptContainerDetails != null && receiptContainerDetails.size()> 0){ + for(ReceiptContainerDetail receiptContainerDetail : receiptContainerDetails){ + receiptContainerDetail.setLocationCode(wcsTask.getToLocationCode()); + receiptContainerDetailList.add(receiptContainerDetail); + } + flag = receiptContainerDetailService.updateBatchById(receiptContainerDetailList); + if(flag == false){ + throw new ServiceException("修改此任务的组盘明细错误"); + } + } + return AjaxResult.success("重入处理成功"); } } -- libgit2 0.22.2