From cad671a443f34b411ed4a69cb94490b1121102ce Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期二, 04 三月 2025 17:02:56 +0800
Subject: [PATCH] 优化版图显示、钢化模拟计算保存、结果显示

---
 north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java |   98 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 92 insertions(+), 6 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 383554e..3f94c04 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,18 +1,22 @@
 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.entity.mm.*;
-import com.example.erp.entity.pp.FlowCard;
-import com.example.erp.entity.pp.OptimizeUse;
+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;
@@ -23,6 +27,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.ArrayList;
 
@@ -74,10 +80,10 @@
                     for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailLists) {
                         //杩樺師鐗╂枡搴撳瓨鏁�
                         materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
-                        /*if(materialOutboundDetail.getUseId()!=null){
+                        if(materialOutboundDetail.getUseId()!=null){
                             //杩樺師浼樺寲宸ョ▼搴撳瓨鏁�
                             materialInventoryMapper.updateMaterialInventoryAvailableOptInt(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity());
-                        }else{
+                        }/*else{
                             //杩樺師鐗╂枡搴撳瓨鏁�
                             materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
                         }*/
@@ -108,10 +114,10 @@
                         materialInventoryMapper.insertMaterialOutboundDetail(materialOutboundDetail, oddNumber, materialOutboundDetailMaximum + 1);
                         //淇敼鐗╂枡搴撳瓨琛ㄥ嚭搴撴暟閲�
                         materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
-                    /*if(materialOutboundDetail.getUseId()!=null){
+                    if(materialOutboundDetail.getUseId()!=null){
                         //淇敼浼樺寲宸ョ▼琛ㄥ嚭搴撴暟閲�
                         materialInventoryMapper.updateMaterialInventoryAvailableOptOut(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity());
-                    }else{
+                    }/*else{
                         //淇敼鐗╂枡搴撳瓨琛ㄥ嚭搴撴暟閲�
                         materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
                     }*/
@@ -851,6 +857,29 @@
     }
 
 
+    public Boolean deleteMaterialInventory(Map<String,Object> object) {
+        String creator = "";
+        if (object.get("creator") != null) {
+            creator = object.get("creator").toString();
+        }
+        String ids = "";
+        if (object.get("ids") != null) {
+            ids = object.get("ids").toString();
+        }
+        List<Long> id=new ArrayList<>();
+        if(!ids.isEmpty()){
+            List<String> result = StrUtil.split(ids, '|');
+            id=result.stream().map(Long::valueOf).collect(Collectors.toList());
+        }
+        materialInventoryMapper.deleteMaterialInventory(id);
+        Log log = new Log();
+        log.setOperator(creator);
+        log.setContent(object.toString());
+        log.setFunction("deleteMaterialInventory锛�"+ids);
+        logService.saveLog(log);
+        return true;
+    }
+
 
 
 
@@ -916,6 +945,63 @@
 
 
 
+    @Transactional(rollbackFor = Exception.class)
+    public boolean mesMaterialOutbound(Map<String, Object> reportingWorkMap) {
+        boolean saveState=true;
+        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+        try {
+            //鎺ユ敹瑙f瀽涓婚檮琛ㄤ俊鎭�
+            JSONObject reportingWorkJson = new JSONObject(reportingWorkMap);
+            String projectNo=reportingWorkJson.get("projectNo").toString();
+            Double width= Double.valueOf(reportingWorkJson.get("width").toString());
+            Double height= Double.valueOf(reportingWorkJson.get("height").toString());
+            Integer quantity= Integer.valueOf(reportingWorkJson.get("quantity").toString());
+
+            List<MaterialOutbound> materialOutboundList=materialInventoryMapper.getSelectMaterialOutboundProjectNo(projectNo);
+            OptimizeUse optimizeUses=materialInventoryMapper.getSelectOptimizeUses(projectNo,width,height);
+
+
+            MaterialInventory materialInventory=materialInventoryMapper.getMaterialInventoryById(Long.valueOf(optimizeUses.getRawStockCode()));
+            if(materialOutboundList.size()==1){
+                List<MaterialOutboundDetail> materialOutboundDetailList=materialInventoryMapper.getSelectMaterialOutboundOptimizeUses(materialOutboundList.get(0).getMaterialOutboundId(),optimizeUses.getId());
+                List<MaterialOutboundDetail> materialOutboundDetailList1=materialInventoryMapper.getSelectMaterialOutboundOptimizeUses(materialOutboundList.get(0).getMaterialOutboundId(),null);
+                if(materialOutboundDetailList.size()==1){
+                    materialInventoryMapper.updateMaterialOutboundOptimizeUses(optimizeUses.getId(),quantity);
+                }else{
+                    materialInventoryMapper.insertMaterialOutboundDetailOptimizeUses(materialOutboundList.get(0).getMaterialOutboundId(),
+                            materialOutboundDetailList1.size()+1,Long.valueOf(optimizeUses.getRawStockCode()),materialInventory.getMaterialCode(),materialInventory.getInventoryArea(),
+                            optimizeUses.getId(),quantity,materialInventory.getSinglePieceArea(),materialInventory.getDateOfManufacture());
+                }
+            }else if(materialOutboundList.isEmpty()){
+                String oddNumber = orderNumberSetting("鍑哄簱");
+                materialInventoryMapper.insertMaterialOutboundOptimizeUses(oddNumber,projectNo,reportingWorkJson.get("userName").toString());
+                materialInventoryMapper.insertMaterialOutboundDetailOptimizeUses(oddNumber, 1,Long.valueOf(optimizeUses.getRawStockCode()),materialInventory.getMaterialCode(),materialInventory.getInventoryArea(),
+                        optimizeUses.getId(),quantity,materialInventory.getSinglePieceArea(),materialInventory.getDateOfManufacture());
+            }else{
+                return false;
+            }
+            materialInventoryMapper.updateMaterialInventoryAvailableInventoryOutMes(Long.valueOf(optimizeUses.getRawStockCode()),quantity);
+            materialInventoryMapper.updateOptimizeUsesMes(optimizeUses.getId(),quantity);
+
+            //淇濆瓨鏃ュ織
+            Log log = new Log();
+            log.setContent(reportingWorkMap.toString());
+            log.setFunction("mesMaterialOutbound鎶ュ伐鏂板");
+            log.setOperatorId((String) reportingWorkJson.get("userId"));
+            log.setOperator((String) reportingWorkJson.get("userName"));
+            logService.saveLog(log);
+        } catch (Exception e) {
+            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+            //灏嗗紓甯镐紶鍏ユ暟鎹簱
+            SysError sysError = new SysError();
+            sysError.setError(e+Arrays.toString(e.getStackTrace()));
+            sysError.setFunc("mesMaterialOutbound鎶ュ伐鏂板");
+            sysErrorService.insert(sysError);
+            saveState = false;
+
+        }
+        return saveState;
+    }
 
 
 

--
Gitblit v1.8.0