From 2a8a645716d3772de03aa43cb126b8aa738d2015 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 26 三月 2025 12:44:04 +0800
Subject: [PATCH] 物料新增撤回功能

---
 north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java |   73 ++++++++++++++++++++++++++++++++++--
 1 files changed, 68 insertions(+), 5 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 f3c8ce6..1be42c5 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
@@ -201,21 +201,22 @@
 
 
             //鏌ヨ鐗╂枡鏄惁瀛樺湪
-            Integer MaterialInventoryCount=0;
+            List<MaterialInventory> MaterialInventoryCount;
             if (materialInventory.getDateOfManufacture()!=null){
                 MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(materialCode,materialInventory.getDateOfManufacture());
             }else{
                 MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCountNull(materialCode);
             }
 
-            if(MaterialInventoryCount==1){
+            if(MaterialInventoryCount.size()==1){
+                materialInventory.setId(MaterialInventoryCount.get(0).getId());
                 if (materialInventory.getDateOfManufacture()!=null){
                     materialInventoryMapper.updateMaterialInventory(materialCode,singlePieceArea,totalArea,materialInventory);
                 }else{
                     materialInventoryMapper.updateMaterialInventoryNull(materialCode,singlePieceArea,totalArea,materialInventory);
                 }
                 log.setFunction("saveMaterialInventory淇敼");
-            }else if(MaterialInventoryCount==0) {
+            }else if(MaterialInventoryCount.isEmpty()) {
                 materialInventoryMapper.insertMaterialInventory(materialCode,singlePieceArea,totalArea,materialInventory);
                 log.setFunction("saveMaterialInventory鏂板");
             }else {
@@ -226,6 +227,9 @@
             MaterialStore materialStore=materialStoreMapper.getSelectMaterialStoreById(materialCode);
             json=materialStore.getJson().substring(1, materialStore.getJson().length() - 1);
             MaterialLog materialLog=new MaterialLog();
+            if(materialInventory.getDateOfManufacture()!=null){
+                materialLog.setOperationOrderNumber(materialInventory.getDateOfManufacture().toString());
+            }
             materialLog.setOperateType("鐗╂枡鏂板");
             materialLog.setMaterialCode(materialCode);
             materialLog.setMaterialName(convertString(json,"\"name\""));
@@ -598,7 +602,7 @@
 
 
                     //鏌ヨ鐗╂枡鏄惁瀛樺湪
-                    Integer MaterialInventoryCount=0;
+                    List<MaterialInventory> MaterialInventoryCount;
                     if (returningWarehouseDetail.getDateOfManufacture()!=null){
                         MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(returningWarehouseDetail.getId(),returningWarehouseDetail.getDateOfManufacture());
                     }else{
@@ -606,7 +610,7 @@
                     }
 
 
-                    if(MaterialInventoryCount>0){
+                    if(!MaterialInventoryCount.isEmpty()){
                         if (returningWarehouseDetail.getDateOfManufacture()!=null){
                             materialInventoryMapper.updateMaterialInventoryReturning(returningWarehouseDetail.getId(),singlePieceArea,totalArea,returningWarehouseDetail);
                         }else{
@@ -1018,6 +1022,65 @@
     }
 
 
+    public String cancelMaterialAdditionRecord(Map<String,Object> object) {
+        String saveState = "true";
+        //璁剧疆鍥炴粴鐐�
+        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+        try {
+            Log log = new Log();
+            log.setOperatorId(object.get("userId").toString());
+            log.setOperator(object.get("userName").toString());
+            log.setContent(object.toString());
+            //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
+            List<MaterialLog> materialLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("materialAdd")), MaterialLog.class);
+            if (!materialLoglist.isEmpty()){
+                for (MaterialLog materialLog : materialLoglist) {
+
+                    //鏌ヨ鐗╂枡鏄惁瀛樺湪
+                    List<MaterialInventory> MaterialInventoryList;
+                    if (materialLog.getOperationOrderNumber()!=null){
+                        MaterialInventoryList = materialInventoryMapper.getMaterialInventoryCount(materialLog.getMaterialCode(), LocalDate.parse(materialLog.getOperationOrderNumber()));
+                    }else{
+                        MaterialInventoryList = materialInventoryMapper.getMaterialInventoryCountNull(materialLog.getMaterialCode());
+                    }
+
+                    if(MaterialInventoryList.size()==1){
+                        if(MaterialInventoryList.get(0).getAvailableQuantity()>=materialLog.getQuantity()){
+                            if (materialLog.getOperationOrderNumber()!=null){
+                                materialInventoryMapper.updateMaterialInventoryOut(materialLog.getMaterialCode(),materialLog.getQuantity(),materialLog.getOperationOrderNumber());
+                            }else{
+                                materialInventoryMapper.updateMaterialInventoryNullOut(materialLog.getMaterialCode(),materialLog.getQuantity());
+                            }
+                            materialInventoryMapper.deleteMaterialLogById(materialLog.getId());
+                        }else{
+                            return "false1";
+                        }
+
+                    }else{
+                        return "false2";
+                    }
+
+
+                }
+
+            }
+            logService.saveLog(log);
+
+        } catch (Exception e) {
+            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+            //灏嗗紓甯镐紶鍏ユ暟鎹簱
+            SysError sysError = new SysError();
+            sysError.setError(e+Arrays.toString(e.getStackTrace()));
+            sysError.setFunc("cancelFinishedGoodsInventoryStorage");
+            sysErrorService.insert(sysError);
+            saveState = "false";
+
+        }
+        return saveState;
+
+    }
+
+
 
 
 

--
Gitblit v1.8.0