Commit 165752f9f321d7b49874da3244a825db8eabb7a4

Authored by pengcheng
1 parent 7bcdd223

重入和空出处理

src/main/java/com/huaheng/api/wcs/service/emptyOutHandle/EmptyOutHandleServiceImpl.java
@@ -3,19 +3,29 @@ package com.huaheng.api.wcs.service.emptyOutHandle; @@ -3,19 +3,29 @@ package com.huaheng.api.wcs.service.emptyOutHandle;
3 import com.huaheng.api.wcs.domain.WcsTask; 3 import com.huaheng.api.wcs.domain.WcsTask;
4 import com.huaheng.common.utils.StringUtils; 4 import com.huaheng.common.utils.StringUtils;
5 import com.huaheng.framework.web.domain.AjaxResult; 5 import com.huaheng.framework.web.domain.AjaxResult;
  6 +import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
  7 +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
  8 +import org.springframework.beans.factory.annotation.Autowired;
6 import org.springframework.stereotype.Service; 9 import org.springframework.stereotype.Service;
  10 +import org.springframework.transaction.annotation.Transactional;
7 11
8 @Service 12 @Service
9 public class EmptyOutHandleServiceImpl implements EmptyOutHandleService { 13 public class EmptyOutHandleServiceImpl implements EmptyOutHandleService {
10 14
  15 +
  16 + @Autowired
  17 + private TaskHeaderService taskHeaderService;
  18 +
11 /** 19 /**
12 * 空出处理 20 * 空出处理
13 * 1、判断非空字段 21 * 1、判断非空字段
14 - * 2、 22 + * 2、根据任务号查找任务
  23 + * 3、修改该任务为空出,过后处理
15 * @param wcsTask 24 * @param wcsTask
16 * @return 25 * @return
17 */ 26 */
18 @Override 27 @Override
  28 + @Transactional
19 public AjaxResult EmptyOutHandle(WcsTask wcsTask) { 29 public AjaxResult EmptyOutHandle(WcsTask wcsTask) {
20 30
21 //1、判断非空字段 31 //1、判断非空字段
@@ -23,7 +33,18 @@ public class EmptyOutHandleServiceImpl implements EmptyOutHandleService { @@ -23,7 +33,18 @@ public class EmptyOutHandleServiceImpl implements EmptyOutHandleService {
23 return AjaxResult.error("任务号为空"); 33 return AjaxResult.error("任务号为空");
24 } 34 }
25 35
  36 + //2、根据任务号查找任务
  37 + TaskHeader taskHeader = taskHeaderService.getById(Integer.valueOf(wcsTask.getTaskNo()));
  38 + if(taskHeader == null){
  39 + return AjaxResult.error("任务号错误,没有找到该任务");
  40 + }
26 41
27 - return null; 42 + //3、修改该任务为空出,过后处理
  43 + taskHeader.setUserDef1("空托出库");
  44 + Boolean flag = taskHeaderService.updateById(taskHeader);
  45 + if(flag == false){
  46 + return AjaxResult.error("修改任务失败,空出处理失败");
  47 + }
  48 + return AjaxResult.success("空出处理成功");
28 } 49 }
29 } 50 }
src/main/java/com/huaheng/api/wcs/service/overrideHandle/OverrideHandleServiceImpl.java
1 package com.huaheng.api.wcs.service.overrideHandle; 1 package com.huaheng.api.wcs.service.overrideHandle;
2 2
  3 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4 +import com.baomidou.mybatisplus.core.toolkit.Wrappers;
3 import com.huaheng.api.wcs.domain.WcsTask; 5 import com.huaheng.api.wcs.domain.WcsTask;
4 import com.huaheng.common.exception.service.ServiceException; 6 import com.huaheng.common.exception.service.ServiceException;
5 import com.huaheng.common.utils.StringUtils; 7 import com.huaheng.common.utils.StringUtils;
  8 +import com.huaheng.common.utils.security.ShiroUtils;
6 import com.huaheng.framework.web.domain.AjaxResult; 9 import com.huaheng.framework.web.domain.AjaxResult;
  10 +import com.huaheng.pc.config.location.domain.Location;
  11 +import com.huaheng.pc.config.location.service.LocationService;
  12 +import com.huaheng.pc.receipt.receiptContainerDetail.domain.ReceiptContainerDetail;
  13 +import com.huaheng.pc.receipt.receiptContainerDetail.service.ReceiptContainerDetailService;
  14 +import com.huaheng.pc.receipt.receiptContainerHeader.domain.ReceiptContainerHeader;
  15 +import com.huaheng.pc.receipt.receiptContainerHeader.service.ReceiptContainerHeaderService;
  16 +import com.huaheng.pc.task.taskDetail.domain.TaskDetail;
  17 +import com.huaheng.pc.task.taskDetail.service.TaskDetailService;
7 import com.huaheng.pc.task.taskHeader.domain.TaskHeader; 18 import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
  19 +import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
  20 +import org.springframework.beans.factory.annotation.Autowired;
8 import org.springframework.stereotype.Service; 21 import org.springframework.stereotype.Service;
  22 +import org.springframework.transaction.annotation.Transactional;
  23 +
  24 +import java.util.ArrayList;
  25 +import java.util.List;
9 26
10 @Service 27 @Service
11 public class OverrideHandleServiceImpl implements OverrideHandleService { 28 public class OverrideHandleServiceImpl implements OverrideHandleService {
12 29
  30 +
  31 + @Autowired
  32 + private TaskHeaderService taskHeaderService;
  33 + @Autowired
  34 + private TaskDetailService taskDetailService;
  35 + @Autowired
  36 + private LocationService locationService;
  37 + @Autowired
  38 + private ReceiptContainerHeaderService receiptContainerHeaderService;
  39 + @Autowired
  40 + private ReceiptContainerDetailService receiptContainerDetailService;
  41 +
13 /** 42 /**
14 * 重入处理 43 * 重入处理
15 * 1、判断非空字段 44 * 1、判断非空字段
16 - * 2、实体转换  
17 - * 45 + * 2、根据任务号查找任务
  46 + * 3、修改任务目的库位,修改入库组盘的库位,修改库位状态
18 */ 47 */
19 48
20 @Override 49 @Override
  50 + @Transactional
21 public AjaxResult OverrideHandle(WcsTask wcsTask) { 51 public AjaxResult OverrideHandle(WcsTask wcsTask) {
  52 + Boolean flag = true;
  53 +
22 //1、判断非空字段 54 //1、判断非空字段
23 if(StringUtils.isEmpty(wcsTask.getTaskNo())){ 55 if(StringUtils.isEmpty(wcsTask.getTaskNo())){
24 return AjaxResult.error("任务号为空"); 56 return AjaxResult.error("任务号为空");
@@ -27,9 +59,89 @@ public class OverrideHandleServiceImpl implements OverrideHandleService { @@ -27,9 +59,89 @@ public class OverrideHandleServiceImpl implements OverrideHandleService {
27 return AjaxResult.error("目的库位为空"); 59 return AjaxResult.error("目的库位为空");
28 } 60 }
29 61
30 - TaskHeader taskHeader =new TaskHeader();  
31 - taskHeader.setId(Integer.valueOf(wcsTask.getTaskNo())); 62 + //2、根据任务号查找任务
  63 + TaskHeader taskHeader = taskHeaderService.getById(Integer.valueOf(wcsTask.getTaskNo()));
  64 + if(taskHeader == null){
  65 + return AjaxResult.error("任务号错误,没有找到该任务");
  66 + }
  67 +
  68 + //3、修改任务目的库位,修改入库组盘的库位,修改库位状态
  69 + //修改原来目的库位的状态
  70 + LambdaQueryWrapper<Location> locationLam = Wrappers.lambdaQuery();
  71 + locationLam.eq(Location::getCode,taskHeader.getToLocation())
  72 + .eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode());
  73 + Location location = locationService.getOne(locationLam);
  74 + if(location == null){
  75 + return AjaxResult.error("此任务的原目的库位在系统中不存在");
  76 + }
  77 + location.setStatus("empty");
  78 + flag = locationService.updateById(location);
  79 + if(flag == false){
  80 + return AjaxResult.error("修改此任务的原目的库位错误");
  81 + }
  82 +
  83 + //查看新库位
  84 + locationLam.eq(Location::getCode,wcsTask.getToLocationCode())
  85 + .eq(Location::getWarehouseCode, ShiroUtils.getWarehouseCode());
  86 + Location newlocation = locationService.getOne(locationLam);
  87 + if(newlocation == null){
  88 + throw new ServiceException("新目的库位在系统中不存在");
  89 + }
  90 + //修改任务
32 taskHeader.setToLocation(wcsTask.getToLocationCode()); 91 taskHeader.setToLocation(wcsTask.getToLocationCode());
33 - return null; 92 + taskHeader.setUserDef1("重入处理");
  93 + flag = taskHeaderService.updateById(taskHeader);
  94 + if(flag == false){
  95 + throw new ServiceException("修改此任务错误");
  96 + }
  97 +
  98 + //修改子任务
  99 + LambdaQueryWrapper<TaskDetail> taskDetailLam = Wrappers.lambdaQuery();
  100 + taskDetailLam.eq(TaskDetail::getWarehouseCode,ShiroUtils.getWarehouseCode())
  101 + .eq(TaskDetail::getTaskId,taskHeader.getId());
  102 + List<TaskDetail> taskDetails = taskDetailService.list(taskDetailLam);
  103 + List<TaskDetail> taskDetailList = new ArrayList<>();
  104 + if(taskDetails != null && taskDetails.size()> 0){
  105 + for(TaskDetail taskDetail : taskDetails){
  106 + taskDetail.setToLocation(wcsTask.getToLocationCode());
  107 + taskDetailList.add(taskDetail);
  108 + }
  109 + flag = taskDetailService.updateBatchById(taskDetailList);
  110 + if(flag == false){
  111 + throw new ServiceException("修改此任务的明细错误");
  112 + }
  113 + }
  114 +
  115 + //修改入库组盘
  116 + if(taskHeader.getAllocationHeadId() == null){
  117 + throw new ServiceException("找不到此任务的组盘头id");
  118 + }
  119 + ReceiptContainerHeader receiptContainerHeader = receiptContainerHeaderService.getById(taskHeader.getAllocationHeadId());
  120 + if(receiptContainerHeader == null){
  121 + throw new ServiceException("找不到此任务的组盘头");
  122 + }
  123 + receiptContainerHeader.setToLocation(wcsTask.getToLocationCode());
  124 + flag = receiptContainerHeaderService.updateById(receiptContainerHeader);
  125 + if(flag == false){
  126 + throw new ServiceException("修改此任务对应的组盘头错误");
  127 + }
  128 +
  129 + //修改入库组盘明细
  130 + LambdaQueryWrapper<ReceiptContainerDetail> lam = Wrappers.lambdaQuery();
  131 + lam.eq(ReceiptContainerDetail::getReceiptContainerId,receiptContainerHeader.getId())
  132 + .eq(ReceiptContainerDetail::getWarehouseCode,ShiroUtils.getWarehouseCode());
  133 + List<ReceiptContainerDetail> receiptContainerDetails = receiptContainerDetailService.list(lam);
  134 + List<ReceiptContainerDetail> receiptContainerDetailList = new ArrayList<>();
  135 + if(receiptContainerDetails != null && receiptContainerDetails.size()> 0){
  136 + for(ReceiptContainerDetail receiptContainerDetail : receiptContainerDetails){
  137 + receiptContainerDetail.setLocationCode(wcsTask.getToLocationCode());
  138 + receiptContainerDetailList.add(receiptContainerDetail);
  139 + }
  140 + flag = receiptContainerDetailService.updateBatchById(receiptContainerDetailList);
  141 + if(flag == false){
  142 + throw new ServiceException("修改此任务的组盘明细错误");
  143 + }
  144 + }
  145 + return AjaxResult.success("重入处理成功");
34 } 146 }
35 } 147 }