From 71a4444510d9067654705f0c5803d5f12a21a092 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期二, 11 十一月 2025 09:17:34 +0800
Subject: [PATCH] 添加流程卡进度接口信息

---
 north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java |  109 ++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 85 insertions(+), 24 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 713061e..8e410c2 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,22 +1,14 @@
 package com.example.erp.service.mm;
 
 import cn.hutool.core.util.StrUtil;
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.example.erp.common.Constants;
-import com.example.erp.dto.mm.FinishedOperateLogDTO;
+import com.example.erp.dto.mm.MaterialLogDTO;
 import com.example.erp.entity.mm.*;
 import com.example.erp.entity.pp.*;
-import com.example.erp.entity.sd.Delivery;
-import com.example.erp.entity.sd.DeliveryDetail;
-import com.example.erp.entity.sd.OrderDetail;
-import com.example.erp.entity.sd.OrderProcessDetail;
 import com.example.erp.entity.userInfo.Log;
 import com.example.erp.entity.userInfo.SysError;
-import com.example.erp.exception.ServiceException;
 import com.example.erp.mapper.mm.BasicWarehouseTypeMapper;
 import com.example.erp.mapper.mm.MaterialInventoryMapper;
 import com.example.erp.mapper.mm.MaterialLogMapper;
@@ -28,7 +20,6 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
-import java.time.LocalDateTime;
 import java.util.List;
 import java.util.ArrayList;
 
@@ -36,6 +27,9 @@
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.util.*;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 @Service
@@ -199,13 +193,15 @@
 
             MaterialInventory materialInventory = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), MaterialInventory.class);
 
-
+            if(materialInventory.getProducer()==null){
+                materialInventory.setProducer("");
+            }
             //鏌ヨ鐗╂枡鏄惁瀛樺湪
             List<MaterialInventory> MaterialInventoryCount;
             if (materialInventory.getDateOfManufacture()!=null){
-                MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(materialCode,materialInventory.getDateOfManufacture());
+                MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(materialCode,materialInventory.getDateOfManufacture(),materialInventory.getProducer());
             }else{
-                MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCountNull(materialCode);
+                MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCountNull(materialCode,materialInventory.getProducer());
             }
 
             if(MaterialInventoryCount.size()==1){
@@ -601,12 +597,15 @@
                     totalArea= Double.parseDouble(decimalFormat.format(singlePieceArea * returningWarehouseDetail.getReturnQuantity()));
 
 
+                    if(returningWarehouseDetail.getProducer()==null){
+                        returningWarehouseDetail.setProducer("");
+                    }
                     //鏌ヨ鐗╂枡鏄惁瀛樺湪
                     List<MaterialInventory> MaterialInventoryCount;
                     if (returningWarehouseDetail.getDateOfManufacture()!=null){
-                        MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(returningWarehouseDetail.getId(),returningWarehouseDetail.getDateOfManufacture());
+                        MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(returningWarehouseDetail.getId(),returningWarehouseDetail.getDateOfManufacture(),returningWarehouseDetail.getProducer());
                     }else{
-                        MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCountNull(returningWarehouseDetail.getId());
+                        MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCountNull(returningWarehouseDetail.getId(),returningWarehouseDetail.getProducer());
                     }
 
 
@@ -624,9 +623,9 @@
                     //鑾峰彇搴撳瓨缂栧彿娣诲姞鍒拌繑搴撴槑缁嗚〃
                     List<MaterialInventory> MaterialInventoryId;
                     if (returningWarehouseDetail.getDateOfManufacture()!=null){
-                        MaterialInventoryId = materialInventoryMapper.getMaterialInventoryCountId(returningWarehouseDetail.getId(),returningWarehouseDetail.getDateOfManufacture());
+                        MaterialInventoryId = materialInventoryMapper.getMaterialInventoryCountId(returningWarehouseDetail.getId(),returningWarehouseDetail.getDateOfManufacture(),returningWarehouseDetail.getProducer());
                     }else{
-                        MaterialInventoryId = materialInventoryMapper.getMaterialInventoryCountNullId(returningWarehouseDetail.getId());
+                        MaterialInventoryId = materialInventoryMapper.getMaterialInventoryCountNullId(returningWarehouseDetail.getId(),returningWarehouseDetail.getProducer());
                     }
                     materialInventoryMapper.updateReturningWarehouseDetail(oddNumber, returningWarehouseDetailMaximum + 1,MaterialInventoryId.get(0).getId());
 
@@ -870,8 +869,15 @@
         return map;
     }
 
-    public List<MaterialLog> exportMaterialLogReport(List<LocalDate> dates, String type) {
-        return materialInventoryMapper.exportMaterialLogReport(dates,type);
+    public List<MaterialLogDTO> exportMaterialLogReport(List<LocalDate> dates, String type) {
+        if(type.equals("鐗╂枡鍑哄簱")){
+            return materialInventoryMapper.exportMaterialLogReport(dates,type);
+        }else if(type.equals("浼樺寲鍑哄簱")){
+            return materialInventoryMapper.exportMaterialLogOptimizeOutboundReport(dates,type);
+        }else{
+            return materialInventoryMapper.exportMaterialLogReports(dates,type);
+        }
+
     }
 
 
@@ -1040,20 +1046,25 @@
             if (!materialLoglist.isEmpty()){
                 for (MaterialLog materialLog : materialLoglist) {
 
+                    if(materialLog.getProducer()==null){
+                        materialLog.setProducer("");
+                    }
                     //鏌ヨ鐗╂枡鏄惁瀛樺湪
                     List<MaterialInventory> MaterialInventoryList;
                     if (materialLog.getOperationOrderNumber()!=null){
-                        MaterialInventoryList = materialInventoryMapper.getMaterialInventoryCount(materialLog.getMaterialCode(), LocalDate.parse(materialLog.getOperationOrderNumber()));
+                        MaterialInventoryList = materialInventoryMapper.getMaterialInventoryCount(materialLog.getMaterialCode(), LocalDate.parse(materialLog.getOperationOrderNumber()),materialLog.getProducer());
                     }else{
-                        MaterialInventoryList = materialInventoryMapper.getMaterialInventoryCountNull(materialLog.getMaterialCode());
+                        MaterialInventoryList = materialInventoryMapper.getMaterialInventoryCountNull(materialLog.getMaterialCode(),materialLog.getProducer());
                     }
 
                     if(MaterialInventoryList.size()==1){
                         if(MaterialInventoryList.get(0).getAvailableQuantity()>=materialLog.getQuantity()){
                             if (materialLog.getOperationOrderNumber()!=null){
-                                materialInventoryMapper.updateMaterialInventoryOut(materialLog.getMaterialCode(),materialLog.getQuantity(),materialLog.getOperationOrderNumber());
+                                materialInventoryMapper.updateMaterialInventoryOut(materialLog.getMaterialCode(),materialLog.getQuantity(),
+                                        materialLog.getOperationOrderNumber(),materialLog.getProducer());
                             }else{
-                                materialInventoryMapper.updateMaterialInventoryNullOut(materialLog.getMaterialCode(),materialLog.getQuantity());
+                                materialInventoryMapper.updateMaterialInventoryNullOut(materialLog.getMaterialCode(),materialLog.getQuantity(),
+                                        materialLog.getProducer());
                             }
                             materialInventoryMapper.deleteMaterialLogById(materialLog.getId());
                         }else{
@@ -1260,7 +1271,27 @@
             log.setFunction("updateMaterialInventory鐗╂枡搴撳瓨淇敼");
             MaterialInventory materialInventory = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), MaterialInventory.class);
 
-            materialInventoryMapper.updateMaterialInventoryAll(materialInventoryId,materialInventory);
+            if(materialInventory.getProducer()==null){
+                materialInventory.setProducer("");
+            }
+            //鏌ヨ鐗╂枡鏄惁瀛樺湪
+            List<MaterialInventory> MaterialInventoryCount;
+            if (materialInventory.getDateOfManufacture()!=null){
+                MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount1(materialInventory.getMaterialCode(),materialInventory.getDateOfManufacture(),materialInventory.getProducer(),materialInventory.getId());
+            }else{
+                MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCountNull1(materialInventory.getMaterialCode(),materialInventory.getProducer(),materialInventory.getId());
+            }
+
+            if(MaterialInventoryCount.size()==1){
+                materialInventoryMapper.updateMaterialInventoryOne(MaterialInventoryCount.get(0).getId(),materialInventory);
+                List<Long> id=new ArrayList<>();
+                id.add(materialInventoryId);
+                materialInventoryMapper.deleteMaterialInventory(id);
+            }else{
+                materialInventoryMapper.updateMaterialInventoryAll(materialInventoryId,materialInventory);
+            }
+
+
 
             logService.saveLog(log);
         } catch (Exception e) {
@@ -1277,4 +1308,34 @@
 
     }
 
+    public Object appGetStockList() {
+        ExecutorService executor = Executors.newFixedThreadPool(2);
+        AtomicReference<List<MaterialInventory>> materialInventoryList = new AtomicReference<>(new ArrayList<MaterialInventory>());
+        executor.execute(() -> {
+            materialInventoryList.set(materialInventoryMapper.selectGetStockList());
+        });
+        List<Object> list = new ArrayList<>();
+        executor.shutdown();
+
+        Map<String, Object> totalSum  = new HashMap<>();
+
+        Integer inventoryQuantity = 0;
+        Integer availableQuantity = 0;
+        Double totalArea = 0.00;
+        for (MaterialInventory materialInventory : materialInventoryList.get()) {
+            inventoryQuantity += materialInventory.getInventoryQuantity();
+            availableQuantity += materialInventory.getAvailableQuantity();
+            totalArea += materialInventory.getTotalArea();
+        }
+        DecimalFormat df = new DecimalFormat("#.00");
+        totalSum.put("inventoryQuantity",inventoryQuantity);
+        totalSum.put("availableQuantity",availableQuantity);
+        totalSum.put("totalArea", df.format(totalArea));
+
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("glassStock", materialInventoryList);
+        map.put("totalSum", totalSum);
+        return map;
+    }
 }

--
Gitblit v1.8.0