From 19b9d7966ba986d788463af7784e274263648aa7 Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期三, 23 十月 2024 08:09:46 +0800
Subject: [PATCH] 上传价格计算查询功能与删除功能

---
 north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java |  167 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 118 insertions(+), 49 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 078e09b..e415ab2 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,17 @@
 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.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;
@@ -44,6 +47,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 +67,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,6 +93,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("addSelectWarehousing鍏ュ簱");
+            logService.saveLog(log);
 
             //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
             List<FlowCard> flowCardlist = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowCard")), FlowCard.class);
@@ -100,42 +111,51 @@
                     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) {
@@ -145,7 +165,7 @@
             sysError.setError(e+Arrays.toString(e.getStackTrace()));
             sysError.setFunc("addSelectWarehousing");
             sysErrorService.insert(sysError);
-            saveState = false;
+            saveState = "false";
 
         }
 
@@ -163,8 +183,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,6 +196,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("addDeliveryDetail鍑哄簱");
+            logService.saveLog(log);
             //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
             List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class);
             if (!orderDetaillist.isEmpty()){
@@ -196,36 +222,45 @@
                         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(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()) {
+                        //鍒ゆ柇鍙戣揣鍗曟槸鍚﹀凡鍑哄簱
+                        if(deliveryDetail==null){
+                            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(),2);
+                                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);
+                            return "false1";
                         }
+
 
                     }else{
                         TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
-                        saveState = false;
+                        return "false2";
                     }
                 }
             }
@@ -237,7 +272,7 @@
             sysError.setError(e+Arrays.toString(e.getStackTrace()));
             sysError.setFunc("addDeliveryDetail");
             sysErrorService.insert(sysError);
-            saveState = false;
+            saveState = "false";
 
         }
         return saveState;
@@ -267,6 +302,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()){
@@ -361,6 +402,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()){
@@ -494,6 +541,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,15 +554,18 @@
                         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);
@@ -540,6 +594,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("cancelFinishedGoodsInventoryToExamine浣滃簾");
+            logService.saveLog(log);
             //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
             List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class);
             if (!finishedOperateLogslist.isEmpty()){
@@ -618,7 +678,8 @@
         //璁剧疆鍥炴粴鐐�
         Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
         try {
-
+            Log log = new Log();
+            log.setContent(object.toString());
             //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
             List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class);
             if (!finishedOperateLogslist.isEmpty()){
@@ -649,6 +710,7 @@
                             //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
                             finishedGoodsInventoryMapper.updateOrderWarehousingState(finishedOperateLog.getOrderId(),0);
                         }
+                        log.setFunction("cancelFinishedGoodsInventoryStorage鍏ュ簱");
 
                     }else if(Objects.equals(finishedOperateLog.getOperateType(), "鍑哄簱")){
                         //淇敼璁板綍琛�
@@ -673,11 +735,13 @@
                             //淇敼鍙戣揣琛ㄧ姸鎬�
                             finishedGoodsInventoryMapper.updateDeliveryDeliveryState(finishedOperateLog.getOperationOrderNumber(),0);
                         }
+                        log.setFunction("cancelFinishedGoodsInventoryStorage鍑哄簱");
 
                     }
 
                 }
             }
+            logService.saveLog(log);
 
         } catch (Exception e) {
             TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
@@ -701,6 +765,11 @@
     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));

--
Gitblit v1.8.0