From ac225bd66eb7c21b5af1d8533dc59376ea53da6c Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期五, 12 十二月 2025 12:29:42 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
---
north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java | 149 +++++++++++++++++++++++++++++++++++++++----------
1 files changed, 117 insertions(+), 32 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 b5e2954..67265c9 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{
@@ -1108,10 +1119,8 @@
return map;
}
- public Map<String, Object> mesOriginalSelect() {
- Map<String, Object> map = new HashMap<>();
- map.put("originalList", materialInventoryMapper.getSelectMaterialInventoryMes());
- return map;
+ public List<Map<String,Object>> mesOriginalSelect() {
+ return materialInventoryMapper.getSelectMaterialInventoryMes();
}
public String saveToExamineMaterialOutbound(Map<String,Object> object) {
@@ -1162,7 +1171,6 @@
materialInventoryMapper.insertMaterialOutbound(materialOutbound, oddNumber);
log.setFunction("saveMaterialOutbound鏂板:"+oddNumber);
}
-
//鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
if (!materialOutboundDetailList.isEmpty()) {
@@ -1221,10 +1229,6 @@
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
return "false1";
}
-
-
-
-
}
}
@@ -1244,4 +1248,85 @@
}
+
+ public String updateMaterialInventory(Map<String,Object> object) {
+ String saveState = "true";
+ //璁剧疆鍥炴粴鐐�
+ Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+ try {
+
+ long materialInventoryId = 0L;
+ if (object.get("materialInventoryId") != null) {
+ materialInventoryId = Long.parseLong(object.get("materialInventoryId").toString());
+ }
+ Log log = new Log();
+ log.setOperatorId(object.get("userId").toString());
+ log.setOperator(object.get("userName").toString());
+ log.setContent(object.toString());
+ log.setFunction("updateMaterialInventory鐗╂枡搴撳瓨淇敼");
+ 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.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) {
+ 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;
+
+ }
+
+ public Object appGetStockList() {
+ //ExecutorService executor = Executors.newFixedThreadPool(2);
+ List<MaterialInventory> materialInventoryList = materialInventoryMapper.selectGetStockList();
+ //executor.shutdown();
+
+ Map<String, Object> totalSum = new HashMap<>();
+
+ Integer inventoryQuantity = 0;
+ Integer availableQuantity = 0;
+ Double totalArea = 0.00;
+ for (MaterialInventory materialInventory : materialInventoryList) {
+ 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