From 8d6b17bfa56fd767c6f9de666eb0dd44c6b032cd Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期四, 22 五月 2025 15:42:38 +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/FinishedGoodsInventoryService.java | 450 +++++++++++++++++++++++++++++++++++++------------------
1 files changed, 301 insertions(+), 149 deletions(-)
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
index 6cd576f..a25dfff 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -8,14 +8,18 @@
import com.example.erp.entity.mm.FinishedGoodsInventory;
import com.example.erp.entity.mm.FinishedOperateLog;
import com.example.erp.entity.pp.FlowCard;
+import com.example.erp.entity.sd.Delivery;
+import com.example.erp.entity.sd.DeliveryDetail;
import com.example.erp.entity.sd.Order;
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.FinishedGoodsInventoryMapper;
import com.example.erp.mapper.mm.FinishedOperateLogMapper;
import com.example.erp.mapper.sd.OrderDetailMapper;
import com.example.erp.mapper.sd.OrderMapper;
+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;
@@ -27,6 +31,7 @@
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
+import java.util.stream.Collectors;
@Service
@DS("mm")
@@ -44,6 +49,8 @@
OrderMapper orderMapper;
@Autowired
SysErrorService sysErrorService;
+ @Autowired
+ LogService logService;
public Map<String, Object> defaultDateFinishedGoodsInventory(Integer pageNum, Integer pageSize, FinishedGoodsInventory finishedGoodsInventory) {
Integer offset = (pageNum - 1) * pageSize;
@@ -62,8 +69,8 @@
return map;
}
- public Boolean addSelectWarehousing(Map<String,Object> object) {
- boolean saveState = true;
+ public String addSelectWarehousing(Map<String,Object> object) {
+ String saveState = "true";
Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
try {
//瀹氫箟鍓嶇浼犺緭鐨勬暟鎹�
@@ -88,64 +95,79 @@
if (object.get("userId") != null) {
userId = object.get("userId").toString();
}
+ Log log = new Log();
+ log.setOperator(userName);
+ log.setOperatorId(userId);
+ log.setContent(object.toString());
+ log.setFunction("addSelectWarehousing鍏ュ簱");
+ logService.saveLog(log);
//鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
List<FlowCard> flowCardlist = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowCard")), FlowCard.class);
if (!flowCardlist.isEmpty()){
+ //鑾峰彇鍗曞彿
+ String oddNumber= orderNumberSetting("鍏ュ簱");
for (FlowCard flowCard : flowCardlist) {
- //鑾峰彇鍗曞彿
- String oddNumber= orderNumberSetting("鍏ュ簱");
//娣诲姞鍑哄叆搴撹褰�
finishedOperateLogMapper.insertIntFinishedOperateLog(flowCard,userName,oddNumber,container);
Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber());
Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(flowCard.getOrder().getOrderId());
Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(flowCard.getOrder().getOrderId());
-
- /*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "宸插叆搴撴暟閲忥細" + ordernumbersum + "鍑嗗鍏ュ簱鏁伴噺" + flowCard.getInventoryQuantity());*/
- if (finishedGoodsInventorycount > 0) {
- //淇敼搴撳瓨琛ㄥ叆搴撴暟閲�
- finishedGoodsInventoryMapper.updateInventory(flowCard,storageRegion, remark);
- //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺
- finishedGoodsInventoryMapper.updateflowcard(flowCard);
- //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
- finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1);
- //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲�
- finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(), Long.valueOf(flowCard.getInventoryQuantity()));
- //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍏ュ簱
- if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) {
- //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
- finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2);
- }
- } else {
- if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark)) {
+ FlowCard flowCard1=finishedGoodsInventoryMapper.findFlowCard(flowCard);
+ //鍒ゆ柇搴撳瓨鏁版槸鍚﹀ぇ浜庢湭鍏ュ簱鏁�
+ if(flowCard1.getReceivedQuantity()+flowCard.getInventoryQuantity()<=flowCard1.getInventoryQuantity()){
+ /*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "宸插叆搴撴暟閲忥細" + ordernumbersum + "鍑嗗鍏ュ簱鏁伴噺" + flowCard.getInventoryQuantity());*/
+ if (finishedGoodsInventorycount > 0) {
+ //淇敼搴撳瓨琛ㄥ叆搴撴暟閲�
+ finishedGoodsInventoryMapper.updateInventory(flowCard,storageRegion, remark);
//淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺
finishedGoodsInventoryMapper.updateflowcard(flowCard);
+ //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+ finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1);
//淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲�
finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(), Long.valueOf(flowCard.getInventoryQuantity()));
+ //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍏ュ簱
if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) {
//淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2);
- }else{
- //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
- finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1);
}
+ } else {
+ if (finishedGoodsInventoryMapper.insertFinishedGoodsInventory(flowCard, storageRegion, remark)) {
+ //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺
+ finishedGoodsInventoryMapper.updateflowcard(flowCard);
+ //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲�
+ finishedGoodsInventoryMapper.updateIntOrderNumberConut(flowCard.getOrder().getOrderId(),flowCard.getOrderNumber(), Long.valueOf(flowCard.getInventoryQuantity()));
+ if (ordersum == (ordernumbersum + flowCard.getInventoryQuantity())) {
+ //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+ finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),2);
+ }else{
+ //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+ finishedGoodsInventoryMapper.updateOrderWarehousingState(flowCard.getOrder().getOrderId(),1);
+ }
+ }
}
+ }else{
+ TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+ return "false1";
}
+
+
}
}else{
- return false;
+ TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+ return "false2";
}
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
//灏嗗紓甯镐紶鍏ユ暟鎹簱
SysError sysError = new SysError();
- sysError.setError(e.toString());
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
sysError.setFunc("addSelectWarehousing");
sysErrorService.insert(sysError);
- saveState = false;
+ saveState = "false";
}
@@ -163,8 +185,8 @@
}
- public Boolean addDeliveryDetail(Map<String,Object> object) {
- boolean saveState = true;
+ public String addDeliveryDetail(Map<String,Object> object) {
+ String saveState = "true";
//璁剧疆鍥炴粴鐐�
Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
try {
@@ -176,57 +198,18 @@
if (object.get("userId") != null) {
userId = object.get("userId").toString();
}
+ Log log = new Log();
+ log.setOperator(userName);
+ log.setOperatorId(userId);
+ log.setContent(object.toString());
+ log.setFunction("addDeliveryDetail鍑哄簱");
+ logService.saveLog(log);
//鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class);
if (!orderDetaillist.isEmpty()){
- for (OrderDetail orderDetail : orderDetaillist) {
- //鑾峰彇鍗曞彿
- String oddNumber= orderNumberSetting("鍑哄簱");
- //娣诲姞鍑哄叆搴撹褰�
- finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber);
- Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
-
- Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId());
- Integer orderNumberdsum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId());
-
- Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId());
- Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0);
- if(deliverydetailsum==null){
- deliverydetailsum=0;
- }
-
- /*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "璁㈠崟搴撳瓨鏁帮細" + orderNumberdsum + "鍑嗗鍑哄簱鏁伴噺" +
- orderDetail.getWarehouseNum()+ "鍙戣揣鏁伴噺" + orderDetail.getDeliveryDetail().getQuantity()+ "鍙戣揣鎬绘暟" +
- deliverysum+ "宸插彂鏁伴噺" + deliverydetailsum);*/
- if (finishedGoodsInventorycount > 0) {
- if(orderDetail.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){
- //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
- finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
- //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
- finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0);
- //淇敼鍙戣揣琛ㄧ姸鎬�
- finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1);
- //淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲�
- finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
- //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
- finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1);
- //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣
- if (orderNumberdsum == orderDetail.getWarehouseNum()) {
- //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) {
- //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
- finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2);
- }
- if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) {
- //淇敼鍙戣揣琛ㄧ姸鎬�
- finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2);
- }
- }
-
- }else{
- TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
- saveState = false;
- }
+ if(!Objects.equals(deliveryDetailLogic(orderDetaillist, savePoint, userName), "true")) {
+ return deliveryDetailLogic(orderDetaillist, savePoint, userName);
}
}
@@ -234,10 +217,10 @@
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
//灏嗗紓甯镐紶鍏ユ暟鎹簱
SysError sysError = new SysError();
- sysError.setError(e.toString());
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
sysError.setFunc("addDeliveryDetail");
sysErrorService.insert(sysError);
- saveState = false;
+ saveState = "false";
}
return saveState;
@@ -267,6 +250,12 @@
if (object.get("userId") != null) {
userId = object.get("userId").toString();
}
+ Log log = new Log();
+ log.setOperator(userName);
+ log.setOperatorId(userId);
+ log.setContent(object.toString());
+ log.setFunction("updateFinishedGoodsInventoryAllocate璋冩嫧");
+ logService.saveLog(log);
//鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class);
if (!orderDetaillist.isEmpty()){
@@ -304,7 +293,7 @@
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
//灏嗗紓甯镐紶鍏ユ暟鎹簱
SysError sysError = new SysError();
- sysError.setError(e.toString());
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
sysError.setFunc("updateFinishedGoodsInventoryAllocate");
sysErrorService.insert(sysError);
saveState = false;
@@ -361,6 +350,12 @@
if (object.get("operateType") != null) {
operateType = object.get("operateType").toString();
}
+ Log log = new Log();
+ log.setOperator(userName);
+ log.setOperatorId(userId);
+ log.setContent(object.toString());
+ log.setFunction("updateFinishedGoodsInventoryTakeOut棰嗗嚭");
+ logService.saveLog(log);
//鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class);
if (!orderDetaillist.isEmpty()){
@@ -387,7 +382,7 @@
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
//灏嗗紓甯镐紶鍏ユ暟鎹簱
SysError sysError = new SysError();
- sysError.setError(e.toString());
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
sysError.setFunc("updateFinishedGoodsInventoryTakeOut");
sysErrorService.insert(sysError);
saveState = false;
@@ -470,7 +465,7 @@
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
//灏嗗紓甯镐紶鍏ユ暟鎹簱
SysError sysError = new SysError();
- sysError.setError(e.toString());
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
sysError.setFunc("updateFinishedGoodsInventoryRework");
sysErrorService.insert(sysError);
saveState = false;
@@ -494,6 +489,10 @@
if (object.get("userId") != null) {
userId = object.get("userId").toString();
}
+ Log log = new Log();
+ log.setOperator(userName);
+ log.setOperatorId(userId);
+ log.setContent(object.toString());
//鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class);
if (!finishedOperateLogslist.isEmpty()){
@@ -503,21 +502,24 @@
finishedOperateLogMapper.updateToExamine(finishedOperateLog,userName,"宸插鏍�");
//瀹℃牳淇敼搴撳瓨鏁伴噺
finishedGoodsInventoryMapper.updateInventoryInventoryOut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()));
+ log.setFunction("updateFinishedGoodsInventoryToExamine瀹℃牳");
} else if (Objects.equals(type, "鍙嶅")) {
//瀹℃牳淇敼棰嗗嚭璁板綍
finishedOperateLogMapper.updateToExamine(finishedOperateLog,userName,"鏈鏍�");
//瀹℃牳淇敼搴撳瓨鏁伴噺
finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()));
+ log.setFunction("updateFinishedGoodsInventoryToExamine鍙嶅");
}
}
}
+ logService.saveLog(log);
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
//灏嗗紓甯镐紶鍏ユ暟鎹簱
SysError sysError = new SysError();
- sysError.setError(e.toString());
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
sysError.setFunc("updateFinishedGoodsInventoryToExamine");
sysErrorService.insert(sysError);
saveState = false;
@@ -540,11 +542,18 @@
if (object.get("userId") != null) {
userId = object.get("userId").toString();
}
+ Log log = new Log();
+ log.setOperator(userName);
+ log.setOperatorId(userId);
+ log.setContent(object.toString());
+ log.setFunction("cancelFinishedGoodsInventoryToExamine浣滃簾");
+ logService.saveLog(log);
//鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class);
if (!finishedOperateLogslist.isEmpty()){
for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) {
finishedGoodsInventoryMapper.updateInventoryquantityInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(), Math.toIntExact(finishedOperateLog.getQuantity()));
+ finishedGoodsInventoryMapper.updateIntOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(), Long.valueOf(finishedOperateLog.getQuantity()));
finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
}
@@ -554,7 +563,7 @@
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
//灏嗗紓甯镐紶鍏ユ暟鎹簱
SysError sysError = new SysError();
- sysError.setError(e.toString());
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
sysError.setFunc("cancelFinishedGoodsInventoryToExamine");
sysErrorService.insert(sysError);
saveState = false;
@@ -588,7 +597,7 @@
return map;
}
- public Map<String, Object> getSelectFinishedOperateLogReport(Integer pageNum, Integer pageSize, List<String> selectDate, FinishedOperateLog finishedOperateLog) {
+ public Map<String, Object> getSelectFinishedOperateLogReport(String type,Integer pageNum, Integer pageSize, List<String> selectDate, FinishedOperateLog finishedOperateLog) {
Integer offset = (pageNum-1)*pageSize;
String endDate = LocalDate.now().toString();
String startDate = LocalDate.now().minusDays(15).toString();
@@ -602,8 +611,8 @@
}
Map<String, Object> map = new HashMap<>();
- map.put("data", finishedOperateLogMapper.getSelectFinishedOperateLogReport(offset, pageSize,startDate, endDate, finishedOperateLog));
- map.put("total", finishedOperateLogMapper.getSelectFinishedOperateLogReportPageTotal(offset, pageSize,startDate, endDate, finishedOperateLog));
+ map.put("data", finishedOperateLogMapper.getSelectFinishedOperateLogReport(offset, pageSize,startDate, endDate, finishedOperateLog,type));
+ map.put("total", finishedOperateLogMapper.getSelectFinishedOperateLogReportPageTotal(offset, pageSize,startDate, endDate, finishedOperateLog,type));
List<String> list = new ArrayList<>();
list.add(startDate);
list.add(endDate);
@@ -612,107 +621,67 @@
}
- public Boolean cancelFinishedGoodsInventoryStorage(Map<String,Object> object) {
- boolean saveState = true;
+ public String cancelFinishedGoodsInventoryStorage(Map<String,Object> object) {
+ String saveState = "true";
//璁剧疆鍥炴粴鐐�
Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
try {
-
+ Log log = new Log();
+ log.setOperatorId(object.get("userId").toString());
+ log.setOperator(object.get("userName").toString());
+ log.setContent(object.toString());
//鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class);
if (!finishedOperateLogslist.isEmpty()){
- for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) {
- Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(finishedOperateLog.getOrderId());
- Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(finishedOperateLog.getOrderId());
-
- if(Objects.equals(finishedOperateLog.getOperateType(), "鍏ュ簱")){
- //淇敼璁板綍琛�
- finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
- //淇敼搴撳瓨琛ㄥ叆搴撴暟閲�
- finishedGoodsInventoryMapper.updateInventoryOut(finishedOperateLog);
- if(finishedOperateLog.getProcessId()!=null){
- //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺
- finishedGoodsInventoryMapper.updateflowcardOut(finishedOperateLog);
- }
-
- //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲�
- finishedGoodsInventoryMapper.updateOutOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
- //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍏ュ簱
- if (Objects.equals(ordersum, ordernumbersum)) {
- //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
- finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),1);
- }
- if (ordernumbersum-finishedOperateLog.getQuantity()==0) {
- //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
- finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),0);
- }
-
- }else if(Objects.equals(finishedOperateLog.getOperateType(), "鍑哄簱")){
- //淇敼璁板綍琛�
- finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
- //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
- finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
- //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
- finishedGoodsInventoryMapper.updateDeliveryDetailState(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getOperationOrderNumber(),1);
- //淇敼鍙戣揣琛ㄧ姸鎬�
- finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),0);
- //淇敼璁㈠崟鏄庣粏琛ㄥ簱鍐呮暟閲�
- finishedGoodsInventoryMapper.updateIntOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(), Long.valueOf(finishedOperateLog.getQuantity()));
- //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
- finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOrderId(),1);
- //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣
- if (ordernumbersum-finishedOperateLog.getQuantity()==0) {
- //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
- finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),1);
-
- }
- if (ordersum==finishedOperateLog.getQuantity()+ordernumbersum) {
- //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
- finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),0);
- }
-
- }
-
+ if(!Objects.equals(cancelDeliveryDetailLogic(finishedOperateLogslist, savePoint, object.get("userName").toString(), log), "true")){
+ return cancelDeliveryDetailLogic(finishedOperateLogslist,savePoint,object.get("userName").toString(),log);
}
}
+ logService.saveLog(log);
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
//灏嗗紓甯镐紶鍏ユ暟鎹簱
SysError sysError = new SysError();
- sysError.setError(e.toString());
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
sysError.setFunc("cancelFinishedGoodsInventoryStorage");
sysErrorService.insert(sysError);
- saveState = false;
+ saveState = "false";
}
return saveState;
}
- public List<FinishedOperateLogDTO> exportFinishedOperateLogReport(List<LocalDate> dates) {
- return finishedOperateLogMapper.exportFinishedOperateLogReport(dates);
+ public List<FinishedOperateLogDTO> exportFinishedOperateLogReport(List<LocalDate> dates,String type) {
+ return finishedOperateLogMapper.exportFinishedOperateLogReport(dates,type);
}
public Boolean oneClickStorage(String orderId,String userName) {
boolean saveState = true;
Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+ Log log = new Log();
+ log.setContent(orderId);
+ log.setOperator(userName);
+ log.setFunction("oneClickStorage鍏ュ簱:"+orderId);
+ logService.saveLog(log);
try {
String oddNumber= orderNumberSetting("鍏ュ簱");
Order order = orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",orderId));
- if(order.getWarehousing()==0){
+ if(order.getWarehousing()!=2){
List<OrderDetail> orderDetailList=finishedGoodsInventoryMapper.getSelectOrderDetail(orderId);
for (OrderDetail orderDetail:orderDetailList){
FinishedGoodsInventory finishedGoodsInventory = finishedGoodsInventoryMapper.findOrderNumberd(orderDetail.getOrderId(),orderDetail.getOrderNumber());
if(finishedGoodsInventory!=null){
+ finishedOperateLogMapper.updateOrderFinishedOperateLog(orderDetail,userName,oddNumber);
//淇敼搴撳瓨琛ㄥ叆搴撴暟閲�
finishedGoodsInventoryMapper.updateOrderInventory(orderDetail);
}else{
finishedGoodsInventoryMapper.insertOrderFinishedGoodsInventory(orderDetail);
}
finishedOperateLogMapper.insertOrderFinishedOperateLog(orderDetail,userName,oddNumber);
- finishedGoodsInventoryMapper.updateIntOrderNumberConut(orderDetail.getOrderId(),orderDetail.getOrderNumber(),orderDetail.getQuantity());
+ finishedGoodsInventoryMapper.updateOrderNumberConut(orderDetail.getOrderId(),orderDetail.getOrderNumber(),orderDetail.getQuantity());
}
finishedGoodsInventoryMapper.updateOrderWarehousingState(orderId,2);
}
@@ -722,7 +691,7 @@
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
//灏嗗紓甯镐紶鍏ユ暟鎹簱
SysError sysError = new SysError();
- sysError.setError(e.toString());
+ sysError.setError(e+Arrays.toString(e.getStackTrace()));
sysError.setFunc("oneClickStorage");
sysErrorService.insert(sysError);
saveState = false;
@@ -731,6 +700,29 @@
return saveState;
+ }
+
+ public Map<String, Object> getSelectStorageRecordPint(Integer pageNum, Integer pageSize, List<String> selectDate, FinishedOperateLog finishedOperateLog) {
+ 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", finishedOperateLogMapper.getSelectStorageRecordPint(offset, pageSize,startDate, endDate, finishedOperateLog));
+ map.put("total", finishedOperateLogMapper.getSelectStorageRecordPintPageTotal(offset, pageSize,startDate, endDate, finishedOperateLog));
+ List<String> list = new ArrayList<>();
+ list.add(startDate);
+ list.add(endDate);
+ map.put("selectDate",list);
+ return map;
}
@@ -766,9 +758,169 @@
}
+ public Map<String, Object> getSelectPrintSv(Map<String, Object> object) {
+ Map<String, Object> map = new HashMap<>();
+ List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋�
+ List<FinishedOperateLog> finishedOperateLogList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FinishedOperateLog.class);
+ if (!finishedOperateLogList.isEmpty()) {
+ Set<String> processedProcessIds = new HashSet<>();
+ for (FinishedOperateLog finishedOperateLog : finishedOperateLogList) {
+ String OrderId = finishedOperateLog.getOrderId();
+ String Remarks = finishedOperateLog.getRemarks();
+
+ // 妫�鏌ユ槸鍚﹀凡缁忓鐞嗚繃璇� OrderId锛屽鏋滃鐞嗚繃鍒欒烦杩�
+ if (processedProcessIds.contains(OrderId) && processedProcessIds.contains(Remarks)) {
+ continue;
+ }
+
+ Map<String, Object> itemmap = new HashMap<>();
+ itemmap.put("detail", finishedOperateLogMapper.getPrimaryListLimt(finishedOperateLog.getOrderId(),finishedOperateLog.getProcessId(),finishedOperateLog.getRemarks()));
+
+ List<Map<String, Object>> detailList = finishedOperateLogMapper.getDetailList(finishedOperateLog.getOrderId(),finishedOperateLog.getProcessId(),finishedOperateLog.getRemarks());
+ itemmap.put("detailList", detailList);
+
+ list.add(itemmap);
+
+ processedProcessIds.add(OrderId);
+ processedProcessIds.add(Remarks);
+ }
+ }
+ map.put("data", list);
+ return map;
+ }
+
+
+ public String deliveryDetailLogic(List<OrderDetail> list,Object savePoint,String userName) {
+ for (OrderDetail orderDetail : list) {
+ //鑾峰彇鍗曞彿
+ String oddNumber= orderNumberSetting("鍑哄簱");
+ OrderDetail orderDetailNew= finishedGoodsInventoryMapper.findOrderDetailNumberd(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
+ //娣诲姞鍑哄叆搴撹褰�
+ finishedOperateLogMapper.insertOutFinishedOperateLog(orderDetail,userName,oddNumber);
+ Integer finishedGoodsInventorycount = finishedGoodsInventoryMapper.findOrderNumberdcount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
+
+
+ Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId());
+ Integer orderNumberdsum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId());
+
+ Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId());
+ Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0);
+ if(deliverydetailsum==null){
+ deliverydetailsum=0;
+ }
+
+ DeliveryDetail deliveryDetail=finishedGoodsInventoryMapper.findDeliverydetail(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId());
+ /*System.out.println("璁㈠崟鎬绘暟:" + ordersum + "璁㈠崟搴撳瓨鏁帮細" + orderNumberdsum + "鍑嗗鍑哄簱鏁伴噺" +
+ orderDetail.getWarehouseNum()+ "鍙戣揣鏁伴噺" + orderDetail.getDeliveryDetail().getQuantity()+ "鍙戣揣鎬绘暟" +
+ deliverysum+ "宸插彂鏁伴噺" + deliverydetailsum);*/
+ //鍒ゆ柇鍙戣揣鍗曠殑搴撳瓨鏄惁瀛樺湪
+ if (finishedGoodsInventorycount > 0) {
+ //鍒ゆ柇鍙戣揣鍗曟槸鍚﹀凡鍑哄簱
+ if(deliveryDetail==null){
+ if(orderDetailNew.getWarehouseNum()>=orderDetail.getDeliveryDetail().getQuantity()){
+ //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
+ finishedGoodsInventoryMapper.updateInventoryInventoryOut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
+ //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
+ finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getDeliveryId(),0);
+ //淇敼鍙戣揣琛ㄧ姸鎬�
+ finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1);
+ //淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲�
+ finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryDetail().getQuantity());
+ //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
+ finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1);
+ //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣
+ if (Objects.equals(orderNumberdsum, orderDetail.getWarehouseNum())) {
+ //if (ordersum == (orderDeliveryQuantitySum + orderDetail.getWarehouseNum())) {
+ //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
+ finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2);
+ }
+ if (deliverysum==deliverydetailsum+orderDetail.getDeliveryDetail().getQuantity()) {
+ //淇敼鍙戣揣琛ㄧ姸鎬�
+ finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2);
+ }
+ }else{
+ TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+ return "false3";
+ }
+ }else{
+ TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+ return "false1";
+ }
+
+
+ }else{
+ TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+ return "false2";
+ }
+ }
+ return "true";
+ }
+
+ public String cancelDeliveryDetailLogic(List<FinishedOperateLog> finishedOperateLogslist,Object savePoint,String userName,Log log) {
+ for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) {
+ Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(finishedOperateLog.getOrderId());
+ Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(finishedOperateLog.getOrderId());
+ Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(finishedOperateLog.getOperationOrderNumber());
+ Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(finishedOperateLog.getOperationOrderNumber(),1);
+
+ if(Objects.equals(finishedOperateLog.getOperateType(), "鍏ュ簱")){
+ Delivery delivery = finishedGoodsInventoryMapper.findOrderDelivery(finishedOperateLog.getOrderId());
+ if(delivery==null){
+ //淇敼璁板綍琛�
+ finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
+ //淇敼搴撳瓨琛ㄥ叆搴撴暟閲�
+ finishedGoodsInventoryMapper.updateInventoryOut(finishedOperateLog);
+ if(finishedOperateLog.getProcessId()!=null){
+ //淇敼娴佺▼鍗¤〃鍏ュ簱鏁伴噺
+ finishedGoodsInventoryMapper.updateflowcardOut(finishedOperateLog);
+ }
+
+ //淇敼璁㈠崟鏄庣粏琛ㄥ叆搴撴暟閲�
+ finishedGoodsInventoryMapper.updateOutOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
+ //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍏ュ簱
+ if (Objects.equals(ordersum, ordernumbersum)) {
+ //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+ finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),1);
+ }
+ if (ordernumbersum-finishedOperateLog.getQuantity()==0) {
+ //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+ finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),0);
+ }
+ log.setFunction("cancelFinishedGoodsInventoryStorage鍏ュ簱");
+ }else{
+ return "false1";
+ }
+ }else if(Objects.equals(finishedOperateLog.getOperateType(), "鍑哄簱")){
+ //淇敼璁板綍琛�
+ finishedOperateLogMapper.updateFinishedOperateLogState(finishedOperateLog,"宸蹭綔搴�");
+ //淇敼搴撳瓨琛ㄥ簱瀛樻暟閲�
+ finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getQuantity());
+ //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
+ finishedGoodsInventoryMapper.updateDeliveryDetailState(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),finishedOperateLog.getOperationOrderNumber(),1);
+ //淇敼鍙戣揣琛ㄧ姸鎬�
+ finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),1);
+ //淇敼璁㈠崟鏄庣粏琛ㄥ簱鍐呮暟閲�
+ finishedGoodsInventoryMapper.updateIntOrderNumberConut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(), Long.valueOf(finishedOperateLog.getQuantity()));
+ //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
+ finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),1);
+ //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣
+ if (ordersum==finishedOperateLog.getQuantity()+ordernumbersum){
+ //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
+ finishedGoodsInventoryMapper.updateOrderDeliveryState(finishedOperateLog.getOrderId(),0);
+ }
+ if (deliverysum==finishedOperateLog.getQuantity()+deliverydetailsum) {
+ //淇敼鍙戣揣琛ㄧ姸鎬�
+ finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),0);
+ }
+ log.setFunction("cancelFinishedGoodsInventoryStorage鍑哄簱");
+ }
+
+ }
+ return "true";
+ }
}
--
Gitblit v1.8.0