From c3f9a32a18c31243cf5fd0d45c764b5574a488c9 Mon Sep 17 00:00:00 2001
From: yiwenpeng <ywp303@163.com>
Date: Sun, 29 Jan 2023 12:53:20 +0800
Subject: [PATCH] 新增成品入库回传日志记录托盘号、组盘明细状态更改失败问题

---
 src/main/java/com/huaheng/api/erp/service/TaskReturnServiceImpl.java                                         |  5 ++---
 src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java | 14 +++++++-------
 src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java                   |  1 +
 src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java                         | 12 ++++++++++++
 src/main/java/com/huaheng/pc/task/taskHeader/service/ReceiptTaskService.java                                 | 15 ++++++++++++++-
 src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java                                | 13 +++++--------
 6 files changed, 41 insertions(+), 19 deletions(-)

diff --git a/src/main/java/com/huaheng/api/erp/service/TaskReturnServiceImpl.java b/src/main/java/com/huaheng/api/erp/service/TaskReturnServiceImpl.java
index 0083350..7545477 100644
--- a/src/main/java/com/huaheng/api/erp/service/TaskReturnServiceImpl.java
+++ b/src/main/java/com/huaheng/api/erp/service/TaskReturnServiceImpl.java
@@ -101,7 +101,6 @@ public class TaskReturnServiceImpl implements TaskReturnService {
         //装配
         if ("1".equals(barCodeHeader.getProType())) {
             Fentity fentity = new Fentity();
-
             fentity.setFqty1(new BigDecimal(barCodeHeader.getTotalLines()));
             fentity.setFmaterial(barCodeDetailList.get(0).getMaterialCode());
             fentity.setFstock("CK002");
@@ -202,7 +201,7 @@ public class TaskReturnServiceImpl implements TaskReturnService {
         apiLog.setUrl(selectAddress);
         apiLog.setRequestTime(new Date());
         apiLog.setResponseTime(new Date());
-        apiLog.setRequestBody(str);
+        apiLog.setRequestBody(str+",托盘号:"+barCodeHeader.getBarCodeHeaderCode());
         String responseBody = gson.toJson(execute);
         apiLog.setResponseBody(responseBody);
         apiLogService.save(apiLog);
@@ -261,7 +260,7 @@ public class TaskReturnServiceImpl implements TaskReturnService {
         apiLog.setUrl(selectAddress);
         apiLog.setRequestTime(new Date());
         apiLog.setResponseTime(new Date());
-        apiLog.setRequestBody(str);
+        apiLog.setRequestBody(str+",托盘号:"+barCodeHeader.getBarCodeHeaderCode());
         String responseBody = gson.toJson(execute);
         apiLog.setResponseBody(responseBody);
         apiLogService.save(apiLog);
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java b/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java
index 714b32a..8384247 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptContainerHeader/controller/ReceiptContainerHeaderController.java
@@ -181,13 +181,13 @@ public class ReceiptContainerHeaderController extends BaseController {
         }
         List<Integer> idList = Arrays.asList(Convert.toIntArray(ids));
         List<Integer> idsList = idList.stream().distinct().collect(Collectors.toList());
-        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
-            @Override
-            public AjaxResult doProcess() {
-                return receiptTaskService.createReceiptTask(idsList);
-            }
-        });
-        return ajaxResult;
+        //AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
+        //    @Override
+        //    public AjaxResult doProcess() {
+        //        return receiptTaskService.createReceiptTask(idsList);
+        //    }
+        //});
+        return receiptTaskService.createReceiptTask(idsList);
     }
 
     /**
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java b/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
index 1426192..4f88ab1 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptHeader/controller/ReceiptHeaderController.java
@@ -440,6 +440,7 @@ public class ReceiptHeaderController extends BaseController {
 
     @ApiOperation(value = "手动完成", notes = "手动完成", httpMethod = "POST")
     @RequiresPermissions("receipt:receiptHeader:receive")
+    //@ApiLogger(apiName = "单据提前完成")
     @Log(title = "入库-入库单-手动完成整个入库单", operating = "手动完成", action = BusinessType.OTHER)
     @PostMapping("/completeReceipt")
     @ResponseBody
diff --git a/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java b/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java
index 7b7c2aa..3f50ddd 100644
--- a/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java
+++ b/src/main/java/com/huaheng/pc/receipt/receiptHeader/service/ReceiptHeaderService.java
@@ -27,6 +27,8 @@ 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.apilog.domain.ApiLog;
+import com.huaheng.pc.monitor.apilog.service.IApiLogService;
 import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail;
 import com.huaheng.pc.receipt.receiptDetail.service.ReceiptDetailService;
 import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
@@ -79,6 +81,9 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
     @Resource
     private ReceiptHeaderService receiptHeaderService;
 
+    @Resource
+    private IApiLogService apiLogService;
+
     /**
      * 保存入库单
      *
@@ -581,6 +586,13 @@ public class ReceiptHeaderService extends ServiceImpl<ReceiptHeaderMapper, Recei
         if(receiptHeader==null){
             throw new ServiceException("找不到入库单据");
         }
+
+        ApiLog apiLog = new ApiLog();
+        apiLog.setApiName("单据提前完成");
+        apiLog.setRequestTime(new Date());
+        apiLog.setResponseTime(new Date());
+        apiLog.setRequestBody("ERP入库单号:"+receiptHeader.getReferCode());
+        apiLogService.save(apiLog);
         /*if(receiptHeader.getFirstStatus().intValue()!=QuantityConstant.RECEIPT_HEADER_POSTING.intValue()){
             throw new ServiceException("入库单据首状态还没到过账");
         }*/
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 c36353b..1bf253c 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
@@ -174,7 +174,9 @@ public class ReceiptTaskService {
             if (receiptContainerHeader.getStatus() == QuantityConstant.RECEIPT_CONTAINER_BUILD.intValue()) {
                 if (receiptContainerHeader.getStatus() < QuantityConstant.RECEIPT_CONTAINER_TASK) {
                     receiptContainerHeader.setStatus(QuantityConstant.RECEIPT_CONTAINER_TASK);
-                    receiptContainerHeaderService.updateById(receiptContainerHeader);
+                    if (!receiptContainerHeaderService.updateById(receiptContainerHeader)) {
+                        throw new ServiceException("组盘状态更新失败");
+                    }
                 }
                 //添加任务主表
                 TaskHeader task = new TaskHeader();
@@ -275,6 +277,16 @@ public class ReceiptTaskService {
                             throw new ServiceException("生成任务明细失败");
                         }
 
+                        //如果有任务明细了,改组盘明细状态
+                        ReceiptContainerDetail one = receiptContainerDetailService.getOne(new LambdaQueryWrapper<ReceiptContainerDetail>()
+                                .eq(ReceiptContainerDetail::getReceiptId, taskDetail.getAllocationId()));
+                        if (one!=null) {
+                            one.setStatus(QuantityConstant.RECEIPT_CONTAINER_TASK);
+                            if (!receiptContainerDetailService.updateById(item)) {
+                                throw new ServiceException("更新入库组盘明细状态出错");
+                            }
+                        }
+
                         //更新入库组盘明细状态
                         item.setStatus(QuantityConstant.RECEIPT_CONTAINER_TASK);
                         if (!receiptContainerDetailService.updateById(item)) {
@@ -313,6 +325,7 @@ public class ReceiptTaskService {
                 }
             }
         }
+
         return AjaxResult.success("生成上架任务成功").setData(taskIds);
     }
 
diff --git a/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java b/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java
index 047be13..583eb1f 100644
--- a/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java
+++ b/src/main/java/com/huaheng/pc/task/taskHeader/service/ShipmentTaskService.java
@@ -433,7 +433,7 @@ public class ShipmentTaskService {
         HashSet<Integer> ids = new HashSet<>();
         for (TaskDetail taskDetail : taskDetailList) {
             ShipmentDetail shipmentDetail = shipmentDetailService.getById(taskDetail.getBillDetailId());
-            
+
             if (StringUtils.isNotNull(shipmentDetail)) {
                 if (shipmentDetail.getShipQty().compareTo(shipmentDetail.getRequestQty()) == 0) {
                     shipmentDetail.setBatteryPackTwoCode(taskDetail.getBatteryPackTwoCode());
@@ -444,26 +444,23 @@ public class ShipmentTaskService {
                 }
                 ids.add(shipmentDetail.getShipmentId());
             }
-            
-        }
 
-        Integer minStatus = 0;
-        ShipmentHeader shipmentHeader = null;
+        }
 
         /*更新出库单状态*/
         for (Integer id : ids) {
-            shipmentHeader = shipmentHeaderService.getById(id);
+            ShipmentHeader shipmentHeader = shipmentHeaderService.getById(id);
             if (shipmentHeader != null) {
                 Map<String, Integer> status = shipmentDetailService.selectStatus(shipmentHeader.getId());
                 Integer maxStatus = status.get("maxStatus");
-                minStatus = status.get("minStatus");
+                Integer minStatus = status.get("minStatus");
                 if (maxStatus.equals(QuantityConstant.SHIPMENT_HEADER_COMPLETED)) {
                     shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED);
                 }
                 if (minStatus.equals(QuantityConstant.SHIPMENT_HEADER_COMPLETED)) {
+                    shipmentHeader.setFirstStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED);
                     shipmentHeader.setLastStatus(QuantityConstant.SHIPMENT_HEADER_COMPLETED);
                 }
-                shipmentHeader.setLastUpdatedBy("wcs");
                 shipmentHeader.setLastUpdated(new Date());
                 shipmentHeaderService.updateById(shipmentHeader);
             }
--
libgit2 0.22.2