From 26633e17d9e9a612e4744405d214cf513d13bffd Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期四, 26 九月 2024 13:56:34 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
---
north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java | 744 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 744 insertions(+), 0 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
new file mode 100644
index 0000000..3d4c4e8
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/MaterialInventoryService.java
@@ -0,0 +1,744 @@
+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;
+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.sd.Delivery;
+import com.example.erp.entity.sd.DeliveryDetail;
+import com.example.erp.entity.sd.OrderDetail;
+import com.example.erp.entity.userInfo.Log;
+import com.example.erp.entity.userInfo.SysError;
+import com.example.erp.mapper.mm.BasicWarehouseTypeMapper;
+import com.example.erp.mapper.mm.MaterialInventoryMapper;
+import com.example.erp.mapper.mm.MaterialStoreMapper;
+import com.example.erp.service.userInfo.LogService;
+import com.example.erp.service.userInfo.SysErrorService;
+import org.springframework.beans.factory.annotation.Autowired;
+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")
+@Transactional(rollbackFor = Exception.class)
+public class MaterialInventoryService {
+ @Autowired
+ MaterialInventoryMapper materialInventoryMapper;
+ @Autowired
+ MaterialStoreMapper materialStoreMapper;
+ @Autowired
+ BasicWarehouseTypeMapper basicWarehouseTypeMapper;
+ @Autowired
+ SysErrorService sysErrorService;
+ @Autowired
+ LogService logService;
+
+ public String saveMaterialOutbound(Map<String,Object> object) {
+ String saveState = "true";
+ //璁剧疆鍥炴粴鐐�
+ Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+ String materialOutboundId = "";
+ String oddNumber;
+ if (object.get("materialOutboundId") != null) {
+ materialOutboundId = object.get("materialOutboundId").toString();
+ }
+ Log log = new Log();
+ log.setContent(object.toString());
+ try {
+ MaterialOutbound materialOutbound = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), MaterialOutbound.class);
+ List<MaterialOutboundDetail> materialOutboundDetailList = JSONArray.parseArray(JSONObject.toJSONString(object.get("materialOutboundDetail")), MaterialOutboundDetail.class);
+ //鏌ヨ鍑哄簱鍗曟槸鍚﹀瓨鍦�
+ Integer MaterialOutboundConut = materialInventoryMapper.getMaterialOutboundCount(materialOutboundId);
+ if (MaterialOutboundConut != 0) {
+
+ List<MaterialOutboundDetail> materialOutboundDetailLists = materialInventoryMapper.getIsNotMaterialOutboundDetail(materialOutboundId);
+ if (!materialOutboundDetailLists.isEmpty()) {
+ for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailLists) {
+ //杩樺師鐗╂枡搴撳瓨鏁�
+ materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
+ /*if(materialOutboundDetail.getUseId()!=null){
+ //杩樺師浼樺寲宸ョ▼搴撳瓨鏁�
+ materialInventoryMapper.updateMaterialInventoryAvailableOptInt(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity());
+ }else{
+ //杩樺師鐗╂枡搴撳瓨鏁�
+ materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
+ }*/
+
+ }
+ }
+ //鍒犻櫎鏉愭枡鍑哄簱鏄庣粏鐨勬暟鎹�
+ materialInventoryMapper.deleteMaterialOutboundDetail(materialOutboundId);
+ materialInventoryMapper.updateMaterialOutbound(materialOutbound, materialOutboundId);
+ oddNumber = materialOutboundId;
+ log.setFunction("saveMaterialOutbound淇敼:"+oddNumber);
+ } else {
+ //鑾峰彇鍗曞彿
+ oddNumber = orderNumberSetting("鍑哄簱");
+ //鏂板鏉愭枡鍑哄簱琛ㄦ暟鎹�
+ materialInventoryMapper.insertMaterialOutbound(materialOutbound, oddNumber);
+ log.setFunction("saveMaterialOutbound鏂板:"+oddNumber);
+ }
+
+ //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
+
+ if (!materialOutboundDetailList.isEmpty()) {
+ for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailList) {
+ MaterialInventory materialInventory = materialInventoryMapper.getMaterialInventoryById(materialOutboundDetail.getId());
+ if(materialInventory.getAvailableQuantity()>=materialOutboundDetail.getOutboundQuantity()){
+ Integer materialOutboundDetailMaximum = materialInventoryMapper.getMaterialOutboundDetailMaximum(oddNumber);
+ //鏂板鏉愭枡鍑哄簱鏄庣粏鏁版嵁
+ materialInventoryMapper.insertMaterialOutboundDetail(materialOutboundDetail, oddNumber, materialOutboundDetailMaximum + 1);
+ //淇敼鐗╂枡搴撳瓨琛ㄥ嚭搴撴暟閲�
+ materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
+ /*if(materialOutboundDetail.getUseId()!=null){
+ //淇敼浼樺寲宸ョ▼琛ㄥ嚭搴撴暟閲�
+ materialInventoryMapper.updateMaterialInventoryAvailableOptOut(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity());
+ }else{
+ //淇敼鐗╂枡搴撳瓨琛ㄥ嚭搴撴暟閲�
+ materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity());
+ }*/
+ }else{
+ TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+ return "false1";
+ }
+
+
+
+
+ }
+
+ }
+ logService.saveLog(log);
+
+ } catch (Exception e) {
+ TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+ //灏嗗紓甯镐紶鍏ユ暟鎹簱
+ SysError sysError = new SysError();
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
+ sysError.setFunc("saveMaterialOutbound");
+ sysErrorService.insert(sysError);
+ saveState = "false1";
+
+ }
+ return saveState;
+
+ }
+
+ public Boolean saveMaterialInventory(Map<String,Object> object) {
+ boolean saveState = true;
+ //璁剧疆鍥炴粴鐐�
+ 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());
+ }
+ Log log = new Log();
+ log.setContent(object.toString());
+
+ MaterialInventory materialInventory = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), MaterialInventory.class);
+
+ //鏌ヨ鐗╂枡鏄惁瀛樺湪
+ Integer MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(materialCode,materialInventory.getDateOfManufacture());
+
+ if(MaterialInventoryCount>0){
+ materialInventoryMapper.updateMaterialInventory(materialCode,singlePieceArea,totalArea,materialInventory);
+ log.setFunction("saveMaterialInventory淇敼");
+ }else {
+ materialInventoryMapper.insertMaterialInventory(materialCode,singlePieceArea,totalArea,materialInventory);
+ log.setFunction("saveMaterialInventory鏂板");
+ }
+ 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 Map<String, Object> getSelectMaterialInventoryDate(Integer pageNum, Integer pageSize, List<String> selectDate, MaterialInventory materialInventory) {
+ Integer offset = (pageNum - 1) * pageSize;
+ String endDate = LocalDate.now().toString();
+ String startDate = LocalDate.now().minusDays(15).toString();
+ if(selectDate !=null && selectDate.size()==2){
+ if(!selectDate.get(0).isEmpty()){
+ startDate = selectDate.get(0);
+ }
+ if(!selectDate.get(1).isEmpty()){
+ endDate = selectDate.get(1);
+ }
+ }
+ Map<String, Object> map = new HashMap<>();
+ map.put("data", materialInventoryMapper.getSelectMaterialInventoryDate(offset, pageSize,startDate, endDate, materialInventory));
+ map.put("total", materialInventoryMapper.getSelectMaterialInventoryDatePageTotal(offset, pageSize,startDate, endDate, materialInventory));
+ List<String> list = new ArrayList<>();
+ list.add(startDate);
+ list.add(endDate);
+ map.put("selectDate",list);
+ return map;
+ }
+
+ public Map<String, Object> getSelectMaterialInventoryEngineeringDate(Integer pageNum, Integer pageSize, List<String> selectDate, MaterialInventory materialInventory) {
+ Integer offset = (pageNum - 1) * pageSize;
+ String endDate = LocalDate.now().toString();
+ String startDate = LocalDate.now().minusDays(15).toString();
+ if(selectDate !=null && selectDate.size()==2){
+ if(!selectDate.get(0).isEmpty()){
+ startDate = selectDate.get(0);
+ }
+ if(!selectDate.get(1).isEmpty()){
+ endDate = selectDate.get(1);
+ }
+ }
+ Map<String, Object> map = new HashMap<>();
+ map.put("data", materialInventoryMapper.getSelectMaterialInventoryEngineeringDate(offset, pageSize,startDate, endDate, materialInventory));
+ map.put("total", materialInventoryMapper.getSelectMaterialInventoryEngineeringDatePageTotal(offset, pageSize,startDate, endDate, materialInventory));
+ List<String> list = new ArrayList<>();
+ list.add(startDate);
+ list.add(endDate);
+ map.put("selectDate",list);
+ return map;
+ }
+
+ public Map<String, Object> getSelectMaterialInventory(Integer pageNum, Integer pageSize, MaterialInventory materialInventory) {
+ Integer offset = (pageNum - 1) * pageSize;
+
+ Map<String, Object> map = new HashMap<>();
+ 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;
+ Map<String, Object> map = new HashMap<>();
+ 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;
+ }
+
+ public Boolean deleteMaterialOutbound(Map<String,Object> object) {
+ boolean saveState = true;
+ //璁剧疆鍥炴粴鐐�
+ Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+ try {
+ String materialOutboundId = "";
+ if (object.get("materialOutboundId") != null) {
+ materialOutboundId = object.get("materialOutboundId").toString();
+ }
+ if(materialOutboundId!=null){
+ materialInventoryMapper.deleteMaterialOutboundDetail(materialOutboundId);
+ materialInventoryMapper.deleteMaterialOutbound(materialOutboundId);
+ }
+ Log log = new Log();
+ log.setContent(object.toString());
+ log.setFunction("deleteMaterialOutbound鍒犻櫎:"+materialOutboundId);
+ logService.saveLog(log);
+
+
+ } catch (Exception e) {
+ TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+ //灏嗗紓甯镐紶鍏ユ暟鎹簱
+ SysError sysError = new SysError();
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
+ sysError.setFunc("deleteMaterialOutbound");
+ sysErrorService.insert(sysError);
+ saveState = false;
+
+ }
+ return saveState;
+
+ }
+
+ public Map<String, Object> getSelectMaterialOutboundDate(Integer pageNum, Integer pageSize, List<String> selectDate, MaterialOutbound materialOutbound) {
+ Integer offset = (pageNum - 1) * pageSize;
+ String endDate = LocalDate.now().toString();
+ String startDate = LocalDate.now().minusDays(15).toString();
+ if(selectDate !=null && selectDate.size()==2){
+ if(!selectDate.get(0).isEmpty()){
+ startDate = selectDate.get(0);
+ }
+ if(!selectDate.get(1).isEmpty()){
+ endDate = selectDate.get(1);
+ }
+ }
+ Map<String, Object> map = new HashMap<>();
+ map.put("data", materialInventoryMapper.getSelectMaterialOutboundDate(offset, pageSize,startDate, endDate, materialOutbound));
+ map.put("total", materialInventoryMapper.getSelectMaterialOutboundDatePageTotal(offset, pageSize,startDate, endDate, materialOutbound));
+ List<String> list = new ArrayList<>();
+ list.add(startDate);
+ list.add(endDate);
+ map.put("selectDate",list);
+ return map;
+ }
+
+ public Map<String, Object> getSelectMaterialOutbound(Integer pageNum, Integer pageSize, MaterialOutboundDetail materialOutboundDetail) {
+ Integer offset = (pageNum - 1) * pageSize;
+ Map<String, Object> map = new HashMap<>();
+ List<MaterialOutboundDetail> materialOutboundDetailList= materialInventoryMapper.SelectMaterialOutboundDetail(offset, pageSize, materialOutboundDetail);
+ if(materialOutboundDetailList.get(0).getUseId()==null){
+ map.put("materialOutbound", materialInventoryMapper.getSelectMaterialOutbound(offset, pageSize, materialOutboundDetail));
+ map.put("data", materialInventoryMapper.getSelectMaterialOutboundDetail(offset, pageSize, materialOutboundDetail));
+ map.put("total", materialInventoryMapper.getSelectMaterialOutboundDetailPageTotal(offset, pageSize, materialOutboundDetail));
+ }else{
+ map.put("materialOutbound", materialInventoryMapper.getSelectMaterialOutbound(offset, pageSize, materialOutboundDetail));
+ map.put("data", materialInventoryMapper.getSelectMaterialOutboundEngineering(offset, pageSize, materialOutboundDetail));
+ map.put("total", materialInventoryMapper.getSelectMaterialOutboundDetailPageTotal(offset, pageSize, materialOutboundDetail));
+ }
+
+ return map;
+ }
+
+
+
+ public Boolean updateMaterialOutboundToExamine(Map<String,Object> object) {
+ boolean saveState = true;
+ //璁剧疆鍥炴粴鐐�
+ Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+ try {
+ String materialOutboundId = "";
+ String reviewed = "";
+ int type =0;
+ if (object.get("materialOutboundId") != null) {
+ materialOutboundId = object.get("materialOutboundId").toString();
+ }
+
+ if (object.get("type") != null) {
+ type = Integer.parseInt(object.get("type").toString());
+ }
+ if (object.get("reviewed") != null) {
+ reviewed = object.get("reviewed").toString();
+ }
+ Log log = new Log();
+ log.setOperator(reviewed);
+ log.setContent(object.toString());
+ log.setFunction("updateMaterialOutboundToExamine锛�"+type);
+ logService.saveLog(log);
+
+ if (type==1){
+ List<MaterialOutboundDetail> materialOutboundDetailList = materialInventoryMapper.getIsNotMaterialOutboundDetail(materialOutboundId);
+ if (!materialOutboundDetailList.isEmpty()) {
+ for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailList) {
+
+ //淇敼鐗╂枡搴撳瓨鏁伴噺
+ materialInventoryMapper.updateMaterialInventoryInventoryOut(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
+
+
+ }
+ }
+ materialInventoryMapper.updateMaterialOutboundToExamine(materialOutboundId,type,reviewed);
+ }else{
+ List<MaterialOutboundDetail> materialOutboundDetailList = materialInventoryMapper.getIsNotMaterialOutboundDetail(materialOutboundId);
+ if (!materialOutboundDetailList.isEmpty()) {
+ for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailList) {
+
+ //淇敼鐗╂枡搴撳瓨鏁伴噺
+ materialInventoryMapper.updateMaterialInventoryInventoryInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity());
+
+
+ }
+ }
+ materialInventoryMapper.updateMaterialOutboundCounterExamination(materialOutboundId,type,reviewed);
+ }
+
+ } catch (Exception e) {
+ TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+ //灏嗗紓甯镐紶鍏ユ暟鎹簱
+ SysError sysError = new SysError();
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
+ sysError.setFunc("updateMaterialOutboundToExamine");
+ sysErrorService.insert(sysError);
+ saveState = false;
+
+ }
+ return saveState;
+
+
+
+ }
+
+ public Boolean saveReturningWarehouse(Map<String,Object> object) {
+ boolean saveState = true;
+ //璁剧疆鍥炴粴鐐�
+ Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+ try {
+ String returningId = "";
+ String oddNumber;
+ if (object.get("returningId") != null) {
+ returningId = object.get("returningId").toString();
+ }
+ Log log = new Log();
+ log.setContent(object.toString());
+
+ ReturningWarehouse returningWarehouse = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), ReturningWarehouse.class);
+ List<ReturningWarehouseDetail> returningWarehouseDetailList = JSONArray.parseArray(JSONObject.toJSONString(object.get("returningWarehouseDetail")), ReturningWarehouseDetail.class);
+ //鏌ヨ鍑哄簱鍗曟槸鍚﹀瓨鍦�
+ Integer ReturningWarehouseConut = materialInventoryMapper.getReturningWarehouseCount(returningId);
+ if (ReturningWarehouseConut != 0) {
+
+ List<ReturningWarehouseDetail> returningWarehouseDetailLists = materialInventoryMapper.getIsNotReturningWarehouseDetail(returningId);
+ if (!returningWarehouseDetailLists.isEmpty()) {
+ for (ReturningWarehouseDetail returningWarehouseDetail : returningWarehouseDetailLists) {
+ //杩樺師鐗╂枡搴撳瓨鏁�
+ materialInventoryMapper.updateMaterialInventoryAvailableOut(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
+ }
+ }
+ //鍒犻櫎鏉愭枡鍑哄簱鏄庣粏鐨勬暟鎹�
+ materialInventoryMapper.deleteReturningWarehouseDetail(returningId);
+ oddNumber = returningId;
+ log.setFunction("saveReturningWarehouse淇敼锛�"+oddNumber);
+ } else {
+ //鑾峰彇鍗曞彿
+ oddNumber = orderNumberSetting("杩斿簱");
+ //鏂板鏉愭枡鍑哄簱琛ㄦ暟鎹�
+ materialInventoryMapper.insertReturningWarehouse(returningWarehouse, oddNumber);
+ log.setFunction("saveReturningWarehouse鏂板锛�"+oddNumber);
+ }
+
+
+ //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
+ if (!returningWarehouseDetailList.isEmpty()) {
+ for (ReturningWarehouseDetail returningWarehouseDetail : returningWarehouseDetailList) {
+
+ Integer returningWarehouseDetailMaximum = materialInventoryMapper.getReturningWarehouseDetailMaximum(oddNumber);
+ //鏂板鏉愭枡鍑哄簱鏄庣粏鏁版嵁
+ materialInventoryMapper.insertReturningWarehouseDetail(returningWarehouseDetail, oddNumber, returningWarehouseDetailMaximum + 1);
+
+ double singlePieceArea=0.0;
+ double totalArea=0.0;
+ String json="";
+ MaterialStore materialStore=materialStoreMapper.getSelectMaterialStoreById(returningWarehouseDetail.getId());
+ json=materialStore.getJson().substring(1, materialStore.getJson().length() - 1);
+
+
+ double width= convert(json,"\"width\"");
+ double height=convert(json,"\"height\"");
+ DecimalFormat decimalFormat = new DecimalFormat("#0.00");
+ singlePieceArea= Double.parseDouble(decimalFormat.format(width * height / 100000));
+ totalArea= Double.parseDouble(decimalFormat.format(singlePieceArea * returningWarehouseDetail.getReturnQuantity()));
+
+
+ //鏌ヨ鐗╂枡鏄惁瀛樺湪
+ Integer MaterialInventoryCount=0;
+ if (returningWarehouseDetail.getDateOfManufacture()!=null){
+ MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCount(returningWarehouseDetail.getId(),returningWarehouseDetail.getDateOfManufacture());
+ }else{
+ MaterialInventoryCount = materialInventoryMapper.getMaterialInventoryCountNull(returningWarehouseDetail.getId());
+ }
+
+
+ if(MaterialInventoryCount>0){
+ if (returningWarehouseDetail.getDateOfManufacture()!=null){
+ materialInventoryMapper.updateMaterialInventoryReturning(returningWarehouseDetail.getId(),singlePieceArea,totalArea,returningWarehouseDetail);
+ }else{
+ materialInventoryMapper.updateMaterialInventoryReturningNull(returningWarehouseDetail.getId(),singlePieceArea,totalArea,returningWarehouseDetail);
+ }
+
+ }else {
+ materialInventoryMapper.insertMaterialInventoryReturning(returningWarehouseDetail.getId(),singlePieceArea,totalArea,returningWarehouseDetail);
+ }
+
+ //鑾峰彇搴撳瓨缂栧彿娣诲姞鍒拌繑搴撴槑缁嗚〃
+ List<MaterialInventory> MaterialInventoryId;
+ if (returningWarehouseDetail.getDateOfManufacture()!=null){
+ MaterialInventoryId = materialInventoryMapper.getMaterialInventoryCountId(returningWarehouseDetail.getId(),returningWarehouseDetail.getDateOfManufacture());
+ }else{
+ MaterialInventoryId = materialInventoryMapper.getMaterialInventoryCountNullId(returningWarehouseDetail.getId());
+ }
+ materialInventoryMapper.updateReturningWarehouseDetail(oddNumber, returningWarehouseDetailMaximum + 1,MaterialInventoryId.get(0).getId());
+
+
+
+ }
+
+ }
+ logService.saveLog(log);
+
+ } 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;
+
+ }
+
+
+ public Map<String, Object> getSelectReturningWarehouse(Integer pageNum, Integer pageSize, ReturningWarehouseDetail returningWarehouseDetail) {
+ Integer offset = (pageNum - 1) * pageSize;
+ Map<String, Object> map = new HashMap<>();
+ map.put("returningWarehouse", materialInventoryMapper.getSelectReturningWarehouse(offset, pageSize, returningWarehouseDetail));
+ map.put("data", materialInventoryMapper.getSelectReturningWarehouseDetail(offset, pageSize, returningWarehouseDetail));
+ map.put("total", materialInventoryMapper.getSelectReturningWarehouseDetailPageTotal(offset, pageSize, returningWarehouseDetail));
+ return map;
+ }
+
+
+ public Boolean updateReturningWarehouseToExamine(Map<String,Object> object) {
+ boolean saveState = true;
+ //璁剧疆鍥炴粴鐐�
+ Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+ try {
+ String returningId = "";
+ String reviewed = "";
+ int type =0;
+ if (object.get("returningId") != null) {
+ returningId = object.get("returningId").toString();
+ }
+
+ if (object.get("type") != null) {
+ type = Integer.parseInt(object.get("type").toString());
+ }
+ if (object.get("reviewed") != null) {
+ reviewed = object.get("reviewed").toString();
+ }
+ Log log = new Log();
+ log.setOperator(reviewed);
+ log.setContent(object.toString());
+ log.setFunction("updateReturningWarehouseToExamine锛�"+type);
+ logService.saveLog(log);
+
+ if (type==1){
+ List<ReturningWarehouseDetail> returningWarehouseDetailList = materialInventoryMapper.getIsNotReturningWarehouseDetail(returningId);
+ if (!returningWarehouseDetailList.isEmpty()) {
+ for (ReturningWarehouseDetail returningWarehouseDetail : returningWarehouseDetailList) {
+ //淇敼鐗╂枡搴撳瓨鏁伴噺
+ materialInventoryMapper.updateMaterialInventoryInventoryInt(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
+ }
+ }
+ materialInventoryMapper.updateReturningWarehouseToExamine(returningId,type,reviewed);
+ }else{
+ List<ReturningWarehouseDetail> returningWarehouseDetailList = materialInventoryMapper.getIsNotReturningWarehouseDetail(returningId);
+ if (!returningWarehouseDetailList.isEmpty()) {
+ for (ReturningWarehouseDetail returningWarehouseDetail : returningWarehouseDetailList) {
+ //淇敼鐗╂枡搴撳瓨鏁伴噺
+ materialInventoryMapper.updateMaterialInventoryInventoryOut(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
+ }
+ }
+ materialInventoryMapper.updateReturningWarehouseCounterExamination(returningId,type,reviewed);
+ }
+
+ } catch (Exception e) {
+ TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+ //灏嗗紓甯镐紶鍏ユ暟鎹簱
+ SysError sysError = new SysError();
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
+ sysError.setFunc("updateReturningWarehouseToExamine");
+ sysErrorService.insert(sysError);
+ saveState = false;
+
+ }
+ return saveState;
+
+
+
+ }
+
+
+ public Map<String, Object> getSelectReturningWarehouseDate(Integer pageNum, Integer pageSize, List<String> selectDate, ReturningWarehouse returningWarehouse) {
+ Integer offset = (pageNum - 1) * pageSize;
+ String endDate = LocalDate.now().toString();
+ String startDate = LocalDate.now().minusDays(15).toString();
+ if(selectDate !=null && selectDate.size()==2){
+ if(!selectDate.get(0).isEmpty()){
+ startDate = selectDate.get(0);
+ }
+ if(!selectDate.get(1).isEmpty()){
+ endDate = selectDate.get(1);
+ }
+ }
+ Map<String, Object> map = new HashMap<>();
+ map.put("data", materialInventoryMapper.getSelectReturningWarehouseDate(offset, pageSize,startDate, endDate, returningWarehouse));
+ map.put("total", materialInventoryMapper.getSelectReturningWarehouseDatePageTotal(offset, pageSize,startDate, endDate, returningWarehouse));
+ List<String> list = new ArrayList<>();
+ list.add(startDate);
+ list.add(endDate);
+ map.put("selectDate",list);
+ return map;
+ }
+
+ public Map<String, Object> getSelectSurplusMaterialsDate(Integer pageNum, Integer pageSize, List<String> selectDate, SurplusMaterials surplusMaterials) {
+ Integer offset = (pageNum - 1) * pageSize;
+ String endDate = LocalDate.now().toString();
+ String startDate = LocalDate.now().minusDays(15).toString();
+ if(selectDate !=null && selectDate.size()==2){
+ if(!selectDate.get(0).isEmpty()){
+ startDate = selectDate.get(0);
+ }
+ if(!selectDate.get(1).isEmpty()){
+ endDate = selectDate.get(1);
+ }
+ }
+ Map<String, Object> map = new HashMap<>();
+ map.put("data", materialInventoryMapper.getSelectSurplusMaterialsDate(offset, pageSize,startDate, endDate, surplusMaterials));
+ map.put("total", materialInventoryMapper.getSelectSurplusMaterialsDatePageTotal(offset, pageSize,startDate, endDate, surplusMaterials));
+ List<String> list = new ArrayList<>();
+ list.add(startDate);
+ list.add(endDate);
+ map.put("selectDate",list);
+ return map;
+ }
+
+ public Boolean addSelectSurplusMaterialsDate(Map<String,Object> object) {
+ boolean saveState = true;
+ //璁剧疆鍥炴粴鐐�
+ Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+
+ String creator = "";
+ if (object.get("creator") != null) {
+ creator = object.get("creator").toString();
+ }
+ String type = "";
+ if (object.get("type") != null) {
+ type = object.get("type").toString();
+ }
+ int state = 0;
+ if (object.get("state") != null) {
+ state = Integer.parseInt(object.get("state").toString());
+ }
+ Log log = new Log();
+ log.setOperator(creator);
+ log.setContent(object.toString());
+ log.setFunction("addSelectSurplusMaterialsDate锛�"+state);
+ logService.saveLog(log);
+
+ if(state==1){
+ SurplusMaterials surplusMaterials = JSONObject.parseObject(JSONObject.toJSONString(object.get("surplusMaterials")), SurplusMaterials.class);
+ if(surplusMaterials!=null){
+ SurplusMaterials surplusMaterials1=materialInventoryMapper.selectSurplusMaterialsCount(surplusMaterials);
+ if(surplusMaterials1!=null){
+ materialInventoryMapper.updateSurplusMaterialsIntQuantity(surplusMaterials1);
+ materialInventoryMapper.insertSurplusMaterialsLog(surplusMaterials1,creator,type);
+ }else{
+ materialInventoryMapper.insertSurplusMaterials(surplusMaterials);
+ materialInventoryMapper.insertSurplusMaterialsLog(surplusMaterials,creator,type);
+ }
+ }
+ } else if (state==2) {
+ List<SurplusMaterials> surplusMaterialsList = JSONArray.parseArray(JSONObject.toJSONString(object.get("surplusMaterials")), SurplusMaterials.class);
+ if(!surplusMaterialsList.isEmpty()){
+ for(SurplusMaterials surplusMaterials:surplusMaterialsList){
+ materialInventoryMapper.updateSurplusMaterialsOutQuantity(surplusMaterials);
+ materialInventoryMapper.insertSurplusMaterialsLog(surplusMaterials,creator,type);
+ }
+
+ }
+ }
+
+
+
+ return saveState;
+
+
+
+ }
+
+ public Map<String, Object> printCreateOutbound(String materialOutboundId) {
+ Map<String, Object> map = new HashMap<>();
+ map.put("createOutbound", materialInventoryMapper.getPrintCreateOutbound(materialOutboundId));
+ map.put("createOutboundDetail", materialInventoryMapper.getPrintCreateOutboundDetail(materialOutboundId));
+ return map;
+ }
+
+
+
+
+
+ public String orderNumberSetting(String type) {
+ //鏍规嵁绫诲瀷鑷姩鐢熸垚涓嶅悓鐨勬搷浣滃崟鍙�
+ String alias="";
+ Integer maximum=0;
+ if(Objects.equals(type, "鍑哄簱")){
+ alias="CK";
+ maximum=materialInventoryMapper.getMaximum(type);
+ }
+ if(Objects.equals(type, "杩斿簱")){
+ alias="FK";
+ maximum=materialInventoryMapper.getMaximums(type);
+ }
+ //鏌ヨ褰撳ぉ鐨勬渶澶ф暟閲�
+
+ //璁剧疆涓や綅涓嶅琛�0
+ String formattedNumber = String.format("%02d", maximum+1);
+ //鏍煎紡鍖栧綋鍓嶆棩鏈�
+ Date currentDate = new Date();
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
+ String formattedDate = dateFormat.format(currentDate);
+ String oddNumbers = alias+formattedDate+formattedNumber;
+ return oddNumbers;
+ }
+
+
+ public double convert(String json,String string) {
+ Map<String, Object> map = new HashMap<>();
+ String[] keyValues = json.split(",");
+ for (String keyValue : keyValues) {
+ String[] pair = keyValue.split(":");
+ if (pair.length == 2) {
+ map.put(pair[0], pair[1]);
+ }
+ }
+ double number=0.0;
+ if(map.get(string)!=null){
+ String[] widthStrings = map.get(string).toString().split("\\D+");
+ for (String numberString : widthStrings) {
+ if (!numberString.isEmpty()) {
+ number= Double.parseDouble(numberString);
+ }
+ }
+ }
+
+
+ return number;
+ }
+
+
+
+
+
+
+
+
+}
--
Gitblit v1.8.0