From d3475019350136c3946afcb3a831a5444e97bc17 Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期五, 29 三月 2024 09:59:02 +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 | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 221 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 0c16451..0383287 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
@@ -3,10 +3,7 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
-import com.example.erp.entity.mm.MaterialInventory;
-import com.example.erp.entity.mm.MaterialOutbound;
-import com.example.erp.entity.mm.MaterialOutboundDetail;
-import com.example.erp.entity.mm.MaterialStore;
+import com.example.erp.entity.mm.*;
import com.example.erp.entity.sd.Delivery;
import com.example.erp.entity.sd.DeliveryDetail;
import com.example.erp.entity.sd.OrderDetail;
@@ -20,6 +17,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
@@ -30,6 +28,8 @@
public class MaterialInventoryService {
@Autowired
MaterialInventoryMapper materialInventoryMapper;
+ @Autowired
+ MaterialStoreMapper materialStoreMapper;
@Autowired
BasicWarehouseTypeMapper basicWarehouseTypeMapper;
@Autowired
@@ -65,7 +65,7 @@
//鑾峰彇鍗曞彿
oddNumber = orderNumberSetting("鍑哄簱");
//鏂板鏉愭枡鍑哄簱琛ㄦ暟鎹�
- materialInventoryMapper.insertMaterialInventoryMapper(materialOutbound, oddNumber);
+ materialInventoryMapper.insertMaterialOutbound(materialOutbound, oddNumber);
}
//鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
@@ -275,15 +275,206 @@
}
+ public Boolean saveReturningWarehouse(Map<String,Object> object) {
+ boolean saveState = true;
+ //璁剧疆鍥炴粴鐐�
+ Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+ String returningId = "";
+ String oddNumber;
+ if (object.get("returningId") != null) {
+ returningId = object.get("returningId").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;
+ } else {
+ //鑾峰彇鍗曞彿
+ oddNumber = orderNumberSetting("杩斿簱");
+ //鏂板鏉愭枡鍑哄簱琛ㄦ暟鎹�
+ materialInventoryMapper.insertReturningWarehouse(returningWarehouse, 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());
+
+
+
+ }
+
+ }
+
+
+ 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();
+ }
+
+ if (type==1){
+ List<ReturningWarehouseDetail> returningWarehouseDetailList = materialInventoryMapper.getIsNotReturningWarehouseDetail(returningId);
+ if (!returningWarehouseDetailList.isEmpty()) {
+ for (ReturningWarehouseDetail returningWarehouseDetail : returningWarehouseDetailList) {
+ //淇敼鐗╂枡搴撳瓨鏁伴噺
+ materialInventoryMapper.updateMaterialInventoryAvailableInt(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
+ }
+ }
+ materialInventoryMapper.updateReturningWarehouseToExamine(returningId,type,reviewed);
+ }else{
+ List<ReturningWarehouseDetail> returningWarehouseDetailList = materialInventoryMapper.getIsNotReturningWarehouseDetail(returningId);
+ if (!returningWarehouseDetailList.isEmpty()) {
+ for (ReturningWarehouseDetail returningWarehouseDetail : returningWarehouseDetailList) {
+ //淇敼鐗╂枡搴撳瓨鏁伴噺
+ materialInventoryMapper.updateMaterialInventoryAvailableOut(returningWarehouseDetail.getInventoryId(), returningWarehouseDetail.getReturnQuantity());
+ }
+ }
+ materialInventoryMapper.updateReturningWarehouseCounterExamination(returningId,type,reviewed);
+ }
+
+ } catch (Exception e) {
+ TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+ //灏嗗紓甯镐紶鍏ユ暟鎹簱
+ SysError sysError = new SysError();
+ sysError.setError(e.toString());
+ sysError.setFunc("saveOrder");
+ 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 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);
}
//鏌ヨ褰撳ぉ鐨勬渶澶ф暟閲�
- Integer maximum=materialInventoryMapper.getmaximum(type);
+
//璁剧疆涓や綅涓嶅琛�0
String formattedNumber = String.format("%02d", maximum+1);
//鏍煎紡鍖栧綋鍓嶆棩鏈�
@@ -295,6 +486,30 @@
}
+ 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