From dbc05588d59c805e26d4c84e9b91e2f440d01b25 Mon Sep 17 00:00:00 2001
From: youjie <j.you@huahengweld.com>
Date: Tue, 23 Jun 2020 16:07:24 +0800
Subject: [PATCH] 修改呼叫料盒接口

---
 src/main/java/com/huaheng/mobile/receipt/MobileBatchReceiptController.java                                 | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/service/ReceiptContainerHeaderServiceImpl.java |  1 +
 src/main/java/com/huaheng/pc/task/taskHeader/service/TaskHeaderServiceImpl.java                            |  6 ++++--
 src/main/resources/application.yml                                                                         |  1 +
 4 files changed, 64 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/huaheng/mobile/receipt/MobileBatchReceiptController.java b/src/main/java/com/huaheng/mobile/receipt/MobileBatchReceiptController.java
index 932b628..20aa9cc 100644
--- a/src/main/java/com/huaheng/mobile/receipt/MobileBatchReceiptController.java
+++ b/src/main/java/com/huaheng/mobile/receipt/MobileBatchReceiptController.java
@@ -266,6 +266,36 @@ public class MobileBatchReceiptController {
                 throw new JSONException("没有找到入库单");
             }
 
+            LambdaQueryWrapper<ReceiptContainerHeader> lambda = Wrappers.lambdaQuery();
+            lambda.eq(ReceiptContainerHeader::getContainerCode, containerCode)
+                    .lt(ReceiptContainerHeader::getStatus, QuantityConstant.RECEIPT_CONTAINER_FINISHED);
+            List<ReceiptContainerHeader> list = receiptContainerHeaderService.list(lambda);
+            if (list.size() >= 1){
+                throw new ServiceException("容器已经生成任务,不能放物料了!");
+            }
+            ReceiptContainerHeader receiptContainerHeader = new ReceiptContainerHeader();
+            //如果不存在记录则新建记录
+            receiptContainerHeader.setWarehouseCode(ShiroUtils.getWarehouseCode());
+            receiptContainerHeader.setCompanyCode(companyCode);
+            receiptContainerHeader.setContainerCode(containerCode);
+            Container container2 = containerService.findAllByCode(containerCode);
+            receiptContainerHeader.setContainerType(container2.getContainerType());
+            receiptContainerHeader.setTaskType(String.valueOf(QuantityConstant.TASK_TYPE_SUPPLEMENTRECEIPT));
+            receiptContainerHeader.setFromLocation(container2.getLocationCode());
+            receiptContainerHeader.setToLocation(locationCode);
+            receiptContainerHeader.setCreatedBy(ShiroUtils.getLoginName());
+            receiptContainerHeader.setLastUpdatedBy(ShiroUtils.getLoginName());
+            receiptContainerHeader.setStatus((short)10);
+
+            if (!receiptContainerHeaderService.save(receiptContainerHeader)){
+                throw new ServiceException("入库组盘头表保存失败");
+            }
+
+            receiptHeader.setFirstStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING);
+            receiptHeader.setLastStatus(QuantityConstant.RECEIPT_HEADER_RECEIVING);
+            receiptHeaderService.update(receiptHeader, receiptHeaderQueryWrapper);
+
+
             for(ReceiptBill receiptBill : receiptBills) {
 
                 TaskDetail taskDetail = new TaskDetail();
@@ -304,6 +334,33 @@ public class MobileBatchReceiptController {
 
                 receiptDetail2.setOpenQty(qty);
                 receiptDetailService.update(receiptDetail2, receiptDetail2QueryWrapper);
+
+                ReceiptContainerDetail receiptContainerDetail = new ReceiptContainerDetail();
+                receiptContainerDetail.setReceiptContainerId(receiptContainerHeader.getId());
+                receiptContainerDetail.setWarehouseCode(ShiroUtils.getWarehouseCode());
+                receiptContainerDetail.setReceiptId(receiptHeader.getId());
+                receiptContainerDetail.setReceiptDetailId(receiptDetail2.getId());
+                receiptContainerDetail.setReceiptCode(receiptHeader.getCode());
+                receiptContainerDetail.setReceiptType(receiptHeader.getReceiptType());
+                receiptContainerDetail.setLocationCode(locationCode);
+                receiptContainerDetail.setContainerCode(containerCode);
+                receiptContainerDetail.setContainerType(container.getContainerType());
+                receiptContainerDetail.setCompanyCode(companyCode);
+
+                LambdaQueryWrapper<Material> materialQueryWrapper = Wrappers.lambdaQuery();
+                materialQueryWrapper.eq(Material::getCode, receiptBill.getMaterialCode())
+                        .eq(Material::getDeleted, 0);
+                Material material = materialService.getOne(materialQueryWrapper);
+
+                receiptContainerDetail.setMaterialCode(material.getCode());
+                receiptContainerDetail.setMaterialName(material.getName());
+                receiptContainerDetail.setMaterialSpec(material.getSpec());
+                receiptContainerDetail.setMaterialUnit(material.getUnit());
+                receiptContainerDetail.setQty(receiptBill.getQty());
+                receiptContainerDetail.setStatus(10);
+                receiptContainerDetail.setCreatedBy(ShiroUtils.getLoginName());
+                receiptContainerDetail.setLastUpdatedBy(ShiroUtils.getLoginName());
+                receiptContainerDetailService.save(receiptContainerDetail);
             }
 
         } else {
@@ -526,6 +583,7 @@ public class MobileBatchReceiptController {
         LambdaQueryWrapper<ReceiptHeader> receiptHeaderQueryWrapper = Wrappers.lambdaQuery();
         receiptHeaderQueryWrapper.eq(ReceiptHeader::getCompanyCode, companyCode)
                 .eq(ReceiptHeader::getWarehouseCode, ShiroUtils.getWarehouseCode())
+                .ne(ReceiptHeader::getReceiptType, "PPI")
                 .le(ReceiptHeader::getCreated, now)
                 .gt(ReceiptHeader::getCreated, start)
                 .orderByDesc(ReceiptHeader::getCreated);
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 8f83594..0af9ae4 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
@@ -494,6 +494,7 @@ public class ReceiptContainerHeaderServiceImpl extends ServiceImpl<ReceiptContai
         recorder.setTaskType(String.valueOf(QuantityConstant.TASK_TYPE_WHOLERECEIPT));
         recorder.setStatus((short) 0);
         recorder.setCreatedBy(ShiroUtils.getLoginName());
+        recorder.setLastUpdatedBy(ShiroUtils.getLoginName());
 
         LambdaQueryWrapper<ReceiptContainerHeader> receiptContainerHeaderLambada = Wrappers.lambdaQuery();
         receiptContainerHeaderLambada.eq(ReceiptContainerHeader::getContainerCode, receiptContainerCode)
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 2750032..9b2f72d 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
@@ -580,8 +580,10 @@ public class TaskHeaderServiceImpl extends ServiceImpl<TaskHeaderMapper, TaskHea
                     cycleCountDetailService.updataDetailStatus(item.getBillDetailId(), QuantityConstant.CYCLECOUNT_STATUS_EXECUTING);
                 }
             }
-            if (!taskDetailService.saveOrUpdateBatch(taskDetails)) {
-                throw new ServiceException("更新任务明细失败");
+            if(taskDetails != null && taskDetails.size() > 0) {
+                if (!taskDetailService.saveOrUpdateBatch(taskDetails)) {
+                    throw new ServiceException("更新任务明细失败");
+                }
             }
 
 //            //修改入库明细
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index d65c5c7..70b8eb3 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -33,6 +33,7 @@ server:
     buffer-size: 1024
     # 是否分配的直接内存
     direct-buffers: true
+  port: 8888
 
 # 用户配置
 user:
--
libgit2 0.22.2