From 7a791cfff3790294ac3a07949d156c0cfdde3d47 Mon Sep 17 00:00:00 2001
From: wangyanxiong <password>
Date: Fri, 6 Sep 2019 17:39:28 +0800
Subject: [PATCH] 出库完成完善

---
 src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

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 caf80f5..9d34fcd 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
@@ -483,7 +483,7 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                 }
                //修改组盘表状态为20
                 ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
-                receiptContainerDetail.setStatus(20);
+                receiptContainerDetail.setStatus(30);
                 receiptContainerDetail.setProcessStamp("0");
                 receiptContainerDetail.setLastUpdated(new Date());
                 receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
@@ -1015,15 +1015,20 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                     throw new ServiceException("任务明细对应的库存ID【" + taskDetail.getToInventoryId().toString() + "】不存在!");
                 }
                 BigDecimal orignalQty = inventoryDetail.getQty();
-                //扣减库存
+                //减扣库存单
+                InventoryHeader inventoryHeader = inventoryHeaderService.getById(inventoryDetail.getInventoryHeaderId());
+                inventoryHeader.setTotalQty(inventoryDetail.getQty().subtract(taskDetail.getQty()).intValue());
+                //扣减库存明细
                 inventoryDetail.setTaskQty(inventoryDetail.getTaskQty().subtract(taskDetail.getQty()));
                 inventoryDetail.setQty(inventoryDetail.getQty().subtract(taskDetail.getQty()));
                 if(inventoryDetail.getQty().compareTo(new BigDecimal("0"))==0 && inventoryDetail.getTaskQty().compareTo(new BigDecimal("0"))==0){
                     //如果库存没有了,就删除这个库存
                     inventoryDetailService.removeById(inventoryDetail.getId());
+                    inventoryHeaderService.removeById(inventoryHeader.getId());
                 }else {
                     //否则更新这个库存
                     inventoryDetailService.updateById(inventoryDetail);
+                    inventoryHeaderService.updateById(inventoryHeader);
                 }
                 //设置子任务状态为已执行
                 taskDetail.setStatus(100);
@@ -1092,11 +1097,25 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                containerService.update(containerLambdaUpdateWrapper);
             }
         }
-//        //设置出库货箱状态为拣货任务完成
-//        shipmentContainerHeaderService.resetStatusShipmentContainer(task.getAllocationHeadId(),(short)20);
-       // 最后更新单据状态
-        shipmentHeadIds.stream().distinct().forEach(t->shipmentHeaderService.updateShipmentStatus(t));
-
+        //设置出库货箱状态为拣货任务完成
+        ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
+        receiptContainerDetail.setStatus(30);
+        receiptContainerDetail.setLastUpdated(new Date());
+        receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
+        LambdaUpdateWrapper<ReceiptContainerDetail> receiptContainerDetailLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+        receiptContainerDetailLambdaUpdateWrapper.eq(ReceiptContainerDetail::getId,task.getAllocationHeadId());
+        if (! receiptContainerDetailService.update(receiptContainerDetail, receiptContainerDetailLambdaUpdateWrapper)){
+            throw new ServiceException("更新组盘明细状态失败");
+        }
+    //设置出库货箱表头状态为拣货任务完成
+        ReceiptContainerHeader ContainerHeader = new ReceiptContainerHeader();
+        ContainerHeader.setStatus((short)30);
+        ContainerHeader.setLastUpdated(new Date());
+        ContainerHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
+        LambdaUpdateWrapper<ReceiptContainerHeader> receiptContainerHeaderLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+        receiptContainerHeaderLambdaUpdateWrapper.eq(ReceiptContainerHeader::getId,task.getAllocationHeadId());
+        if (! receiptContainerHeaderService.update(ContainerHeader, receiptContainerHeaderLambdaUpdateWrapper))
+            throw new ServiceException("更新组盘头状态失败");
     }
 
 
--
libgit2 0.22.2