From 1ae5f2198b70aba54c49f1752e02dfe7b9d5a2e9 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期日, 04 八月 2024 17:35:30 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java |  120 +++++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 79 insertions(+), 41 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
index f89574a..b47981d 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
@@ -1,5 +1,6 @@
 package com.example.erp.service.mm;
 
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
@@ -17,11 +18,14 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import java.util.List;
+import java.util.ArrayList;
 
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 @DS("mm")
@@ -55,13 +59,15 @@
                 List<MaterialOutboundDetail> materialOutboundDetailLists = materialInventoryMapper.getIsNotMaterialOutboundDetail(materialOutboundId);
                 if (!materialOutboundDetailLists.isEmpty()) {
                     for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailLists) {
-                        if(materialOutboundDetail.getUseId()!=null){
+                        //杩樺師鐗╂枡搴撳瓨鏁�
+                        materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
+                        /*if(materialOutboundDetail.getUseId()!=null){
                             //杩樺師浼樺寲宸ョ▼搴撳瓨鏁�
                             materialInventoryMapper.updateMaterialInventoryAvailableOptInt(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity());
                         }else{
                             //杩樺師鐗╂枡搴撳瓨鏁�
                             materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
-                        }
+                        }*/
 
                     }
                 }
@@ -102,8 +108,8 @@
             TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
             //灏嗗紓甯镐紶鍏ユ暟鎹簱
             SysError sysError = new SysError();
-            sysError.setError(e.toString());
-            sysError.setFunc("saveOrder");
+            sysError.setError(e+Arrays.toString(e.getStackTrace()));
+            sysError.setFunc("saveMaterialOutbound");
             sysErrorService.insert(sysError);
             saveState = false;
 
@@ -114,28 +120,41 @@
 
     public Boolean saveMaterialInventory(Map<String,Object> object) {
         boolean saveState = true;
-        Double singlePieceArea = 0.0;
-        Double totalArea = 0.0;
-        Long materialCode = 0L;
-        if (object.get("singlePieceArea") != null) {
-            singlePieceArea = Double.valueOf(object.get("singlePieceArea").toString());
-        }
-        if (object.get("totalArea") != null) {
-            totalArea = Double.valueOf(object.get("totalArea").toString());
-        }
-        if (object.get("materialCode") != null) {
-            materialCode = Long.valueOf(object.get("materialCode").toString());
-        }
+        //璁剧疆鍥炴粴鐐�
+        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+        try {
+            Double singlePieceArea = 0.0;
+            Double totalArea = 0.0;
+            Long materialCode = 0L;
+            if (object.get("singlePieceArea") != null) {
+                singlePieceArea = Double.valueOf(object.get("singlePieceArea").toString());
+            }
+            if (object.get("totalArea") != null) {
+                totalArea = Double.valueOf(object.get("totalArea").toString());
+            }
+            if (object.get("materialCode") != null) {
+                materialCode = Long.valueOf(object.get("materialCode").toString());
+            }
 
-        MaterialInventory materialInventory = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), MaterialInventory.class);
+            MaterialInventory materialInventory = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), MaterialInventory.class);
 
-        //鏌ヨ鐗╂枡鏄惁瀛樺湪
-        Integer MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(materialCode,materialInventory.getDateOfManufacture());
+            //鏌ヨ鐗╂枡鏄惁瀛樺湪
+            Integer MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(materialCode,materialInventory.getDateOfManufacture());
 
-        if(MaterialInventoryCount>0){
-            materialInventoryMapper.updateMaterialInventory(materialCode,singlePieceArea,totalArea,materialInventory);
-        }else {
-            materialInventoryMapper.insertMaterialInventory(materialCode,singlePieceArea,totalArea,materialInventory);
+            if(MaterialInventoryCount>0){
+                materialInventoryMapper.updateMaterialInventory(materialCode,singlePieceArea,totalArea,materialInventory);
+            }else {
+                materialInventoryMapper.insertMaterialInventory(materialCode,singlePieceArea,totalArea,materialInventory);
+            }
+        } catch (Exception e) {
+            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+            //灏嗗紓甯镐紶鍏ユ暟鎹簱
+            SysError sysError = new SysError();
+            sysError.setError(e+Arrays.toString(e.getStackTrace()));
+            sysError.setFunc("saveMaterialInventory");
+            sysErrorService.insert(sysError);
+            saveState = false;
+
         }
         return saveState;
 
@@ -189,17 +208,26 @@
         Integer offset = (pageNum - 1) * pageSize;
 
         Map<String, Object> map = new HashMap<>();
-        map.put("data", materialInventoryMapper.getSelectMaterialInventory(offset, pageSize, materialInventory));
-        map.put("total", materialInventoryMapper.getSelectMaterialInventoryPageTotal(offset, pageSize, materialInventory));
+        List<Long> ids=new ArrayList<>();;
+        if(materialInventory.getStockId()!=null && !materialInventory.getStockId().isEmpty()){
+            List<String> result = StrUtil.split(materialInventory.getStockId(), '|');
+            ids=result.stream().map(Long::valueOf).collect(Collectors.toList());
+        }
+        map.put("data", materialInventoryMapper.getSelectMaterialInventory(offset, pageSize, materialInventory,ids));
+        map.put("total", materialInventoryMapper.getSelectMaterialInventoryPageTotal(offset, pageSize, materialInventory,ids));
         return map;
     }
 
     public Map<String, Object> getSelectMaterialInventoryEngineering(Integer pageNum, Integer pageSize, OptimizeUse optimizeUse) {
         Integer offset = (pageNum - 1) * pageSize;
-        System.out.println(optimizeUse);
         Map<String, Object> map = new HashMap<>();
-        map.put("data", materialInventoryMapper.getSelectMaterialInventoryEngineering(offset, pageSize, optimizeUse));
-        map.put("total", materialInventoryMapper.getSelectMaterialInventoryEngineeringPageTotal(offset, pageSize, optimizeUse));
+        List<Long> ids=new ArrayList<>();;
+        if(optimizeUse.getRawStockCode()!=null && !optimizeUse.getRawStockCode().isEmpty()){
+            List<String> result = StrUtil.split(optimizeUse.getRawStockCode(), '|');
+            ids=result.stream().map(Long::valueOf).collect(Collectors.toList());
+        }
+        map.put("data", materialInventoryMapper.getSelectMaterialInventoryEngineering(offset, pageSize, optimizeUse,ids));
+        map.put("total", materialInventoryMapper.getSelectMaterialInventoryEngineeringPageTotal(offset, pageSize, optimizeUse,ids));
         return map;
     }
 
@@ -223,8 +251,8 @@
             TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
             //灏嗗紓甯镐紶鍏ユ暟鎹簱
             SysError sysError = new SysError();
-            sysError.setError(e.toString());
-            sysError.setFunc("saveOrder");
+            sysError.setError(e+Arrays.toString(e.getStackTrace()));
+            sysError.setFunc("deleteMaterialOutbound");
             sysErrorService.insert(sysError);
             saveState = false;
 
@@ -323,8 +351,8 @@
             TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
             //灏嗗紓甯镐紶鍏ユ暟鎹簱
             SysError sysError = new SysError();
-            sysError.setError(e.toString());
-            sysError.setFunc("saveOrder");
+            sysError.setError(e+Arrays.toString(e.getStackTrace()));
+            sysError.setFunc("updateMaterialOutboundToExamine");
             sysErrorService.insert(sysError);
             saveState = false;
 
@@ -339,11 +367,12 @@
         boolean saveState = true;
         //璁剧疆鍥炴粴鐐�
         Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
-        String returningId = "";
-        String oddNumber;
-        if (object.get("returningId") != null) {
-            returningId = object.get("returningId").toString();
-        }
+        try {
+            String returningId = "";
+            String oddNumber;
+            if (object.get("returningId") != null) {
+                returningId = object.get("returningId").toString();
+            }
             ReturningWarehouse returningWarehouse = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), ReturningWarehouse.class);
             List<ReturningWarehouseDetail> returningWarehouseDetailList = JSONArray.parseArray(JSONObject.toJSONString(object.get("returningWarehouseDetail")), ReturningWarehouseDetail.class);
             //鏌ヨ鍑哄簱鍗曟槸鍚﹀瓨鍦�
@@ -425,7 +454,16 @@
 
             }
 
+        } catch (Exception e) {
+            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+            //灏嗗紓甯镐紶鍏ユ暟鎹簱
+            SysError sysError = new SysError();
+            sysError.setError(e+Arrays.toString(e.getStackTrace()));
+            sysError.setFunc("saveReturningWarehouse");
+            sysErrorService.insert(sysError);
+            saveState = false;
 
+        }
         return saveState;
 
     }
@@ -465,7 +503,7 @@
                 if (!returningWarehouseDetailList.isEmpty()) {
                     for (ReturningWarehouseDetail returningWarehouseDetail : returningWarehouseDetailList) {
                         //淇敼鐗╂枡搴撳瓨鏁伴噺
-                        materialInventoryMapper.updateMaterialInventoryAvailableInt(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
+                        materialInventoryMapper.updateMaterialInventoryInventoryInt(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
                     }
                 }
                 materialInventoryMapper.updateReturningWarehouseToExamine(returningId,type,reviewed);
@@ -474,7 +512,7 @@
                 if (!returningWarehouseDetailList.isEmpty()) {
                     for (ReturningWarehouseDetail returningWarehouseDetail : returningWarehouseDetailList) {
                         //淇敼鐗╂枡搴撳瓨鏁伴噺
-                        materialInventoryMapper.updateMaterialInventoryAvailableOut(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
+                        materialInventoryMapper.updateMaterialInventoryInventoryOut(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
                     }
                 }
                 materialInventoryMapper.updateReturningWarehouseCounterExamination(returningId,type,reviewed);
@@ -484,8 +522,8 @@
             TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
             //灏嗗紓甯镐紶鍏ユ暟鎹簱
             SysError sysError = new SysError();
-            sysError.setError(e.toString());
-            sysError.setFunc("saveOrder");
+            sysError.setError(e+Arrays.toString(e.getStackTrace()));
+            sysError.setFunc("updateReturningWarehouseToExamine");
             sysErrorService.insert(sysError);
             saveState = false;
 

--
Gitblit v1.8.0