From e8ba2a1bec7ffbd78cb941521b31d000890e66de Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期二, 27 二月 2024 14:04:16 +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 |  496 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 271 insertions(+), 225 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 65fe248..902725d 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,11 +8,15 @@
 import com.example.erp.entity.pp.FlowCard;
 import com.example.erp.entity.sd.Order;
 import com.example.erp.entity.sd.OrderDetail;
+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.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.sql.SQLException;
 import java.text.SimpleDateFormat;
@@ -21,6 +25,7 @@
 
 @Service
 @DS("mm")
+@Transactional(rollbackFor = Exception.class)
 public class FinishedGoodsInventoryService {
     @Autowired
     FinishedGoodsInventoryMapper finishedGoodsInventoryMapper;
@@ -28,6 +33,8 @@
     FinishedOperateLogMapper finishedOperateLogMapper;
     @Autowired
     BasicWarehouseTypeMapper basicWarehouseTypeMapper;
+    @Autowired
+    SysErrorService sysErrorService;
 
     public Map<String, Object> defaultDateFinishedGoodsInventory(Integer pageNum, Integer pageSize, FinishedGoodsInventory finishedGoodsInventory) {
         Integer offset = (pageNum - 1) * pageSize;
@@ -128,72 +135,79 @@
 
 
     public Boolean adddeliveryDetail(Map<String,Object> object) {
-        Boolean isinsert=false;
-        String userName = "";
-        String userId = "";
-        if (object.get("userName") != null) {
-            userName = object.get("userName").toString();
-        }
-        if (object.get("userId") != null) {
-            userId = object.get("userId").toString();
-        }
-        //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
-        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());
+        boolean saveState = true;
+        //璁剧疆鍥炴粴鐐�
+        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+        try {
+            String userName = "";
+            String userId = "";
+            if (object.get("userName") != null) {
+                userName = object.get("userName").toString();
+            }
+            if (object.get("userId") != null) {
+                userId = object.get("userId").toString();
+            }
+            //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
+            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 finishedGoodsInventorybycount=finishedGoodsInventoryMapper.finishedGoodsInventorybycount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
-                Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId());
-                Integer ordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getDeliveryDetail().getOrderId());
+                    Integer finishedGoodsInventorybycount=finishedGoodsInventoryMapper.finishedGoodsInventorybycount(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber());
+                    Integer ordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getDeliveryDetail().getOrderId());
+                    Integer ordernumbersum = 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 + "璁㈠崟鍓╀綑鏁伴噺锛�" + ordernumbersum + "鍑嗗鍑哄簱鏁伴噺" +
-                        orderDetail.getWarehouseNum()+ "鍙戣揣鏁伴噺" + orderDetail.getDeliveryNum()+ "鍙戣揣鎬绘暟" +
-                        deliverysum+ "宸插彂鏁伴噺" + deliverydetailsum);
-                if (finishedGoodsInventorycount > 0) {
-                    if(orderDetail.getWarehouseNum()>=orderDetail.getDeliveryNum()){
-                        //淇敼搴撳瓨琛ㄥ嚭搴撴暟閲�
-                        //finishedGoodsInventoryMapper.updateInventoryquantityavailable(orderDetail);
-                        //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
-                        finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail,0);
-                        //淇敼鍙戣揣琛ㄧ姸鎬�
-                        finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1);
-                        //淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲�
-                        finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryNum());
-                        //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
-                        finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1);
-                        //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣
-                        if (0 == (ordernumbersum - orderDetail.getWarehouseNum())) {
-                            //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
-                            finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2);
-                        }
-                        if (deliverysum==deliverydetailsum+orderDetail.getDeliveryNum()) {
-                            //淇敼鍙戣揣琛ㄧ姸鎬�
-                            finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2);
-                        }
-                        isinsert=true;
+                    Integer deliverysum = finishedGoodsInventoryMapper.findDeliveryQuantity(orderDetail.getDeliveryDetail().getDeliveryId());
+                    Integer deliverydetailsum = finishedGoodsInventoryMapper.findDeliverydetailsum(orderDetail.getDeliveryDetail().getDeliveryId(),0);
+                    if(deliverydetailsum==null){
+                        deliverydetailsum=0;
                     }
 
-                } else {
-                    isinsert=false;
+                    System.out.println("璁㈠崟鎬绘暟:" + ordersum + "璁㈠崟鍓╀綑鏁伴噺锛�" + ordernumbersum + "鍑嗗鍑哄簱鏁伴噺" +
+                            orderDetail.getWarehouseNum()+ "鍙戣揣鏁伴噺" + orderDetail.getDeliveryNum()+ "鍙戣揣鎬绘暟" +
+                            deliverysum+ "宸插彂鏁伴噺" + deliverydetailsum);
+                    if (finishedGoodsInventorycount > 0) {
+                        if(orderDetail.getWarehouseNum()>=orderDetail.getDeliveryNum()){
+                            //淇敼搴撳瓨琛ㄥ嚭搴撴暟閲�
+                            //finishedGoodsInventoryMapper.updateInventoryquantityavailable(orderDetail);
+                            //淇敼鍙戣揣鏄庣粏琛ㄧ姸鎬�
+                            finishedGoodsInventoryMapper.updateDeliveryDetailState(orderDetail,0);
+                            //淇敼鍙戣揣琛ㄧ姸鎬�
+                            finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),1);
+                            //淇敼璁㈠崟鏄庣粏琛ㄥ彂璐ф暟閲�
+                            finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getDeliveryDetail().getOrderId(),orderDetail.getDeliveryDetail().getOrderNumber(),orderDetail.getDeliveryNum());
+                            //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
+                            finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),1);
+                            //鍒ゆ柇璁㈠崟鏄惁鍏ㄩ儴鍙戣揣
+                            if (0 == (ordernumbersum - orderDetail.getWarehouseNum())) {
+                                //淇敼璁㈠崟琛ㄥ彂璐х姸鎬�
+                                finishedGoodsInventoryMapper.updateOrderDeliveryState(orderDetail.getDeliveryDetail().getOrderId(),2);
+                            }
+                            if (deliverysum==deliverydetailsum+orderDetail.getDeliveryNum()) {
+                                //淇敼鍙戣揣琛ㄧ姸鎬�
+                                finishedGoodsInventoryMapper.updateDeliveryDeliveryState(orderDetail.getDeliveryDetail().getDeliveryId(),2);
+                            }
+                        }
+
+                    }
                 }
             }
-            return isinsert;
-        }else{
-            return false;
+
+        } 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;
 
     }
 
@@ -208,52 +222,62 @@
     }
 
     public Boolean updateFinishedGoodsInventoryAllocate(Map<String,Object> object) {
-        Boolean isinsert=false;
-        String userName = "";
-        String userId = "";
-        if (object.get("userName") != null) {
-            userName = object.get("userName").toString();
-        }
-        if (object.get("userId") != null) {
-            userId = object.get("userId").toString();
-        }
-        //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
-        List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class);
-        if (!orderDetaillist.isEmpty()){
-            for (OrderDetail orderDetail : orderDetaillist) {
-                Integer oldordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getFinishedGoodsInventory().getOrderId());
-                Integer oldordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getFinishedGoodsInventory().getOrderId());
-
-                Integer newordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getOrderId());
-                Integer newordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getOrderId());
-
-                //鑾峰彇鍗曞彿
-                String oddNumber= orderNumberSetting("璋冩嫧");
-                //娣诲姞璋冩嫧璁板綍
-                finishedOperateLogMapper.insertFinishedOperateLogAllocate(orderDetail,userName,oddNumber);
-                //淇敼鍘熻鍗曠殑搴撳瓨鏁伴噺
-                finishedGoodsInventoryMapper.updateInventoryquantityAllocateOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
-                //淇敼璋冩嫧鍚庤鍗曠殑搴撳瓨鏁伴噺
-                finishedGoodsInventoryMapper.updateInventoryquantityAllocateInt(orderDetail.getOrderId(),orderDetail.getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
-                //淇敼鍘熻鍗曟槑缁嗚〃鍙戣揣鏁伴噺
-                finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
-                //淇敼璋冩嫧鏂拌鍗曟槑缁嗚〃鍙戣揣鏁伴噺
-                finishedGoodsInventoryMapper.updateIntOrderNumberConut(orderDetail.getOrderId(),orderDetail.getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
-                if (newordersum==newordernumbersum+orderDetail.getQuantity()){
-                    //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
-                    finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getOrderId(),2);
-                }
-                if (Objects.equals(oldordersum, oldordernumbersum)){
-                    //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
-                    finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getFinishedGoodsInventory().getOrderId(),1);
-                }
-                isinsert=true;
+        boolean saveState = true;
+        //璁剧疆鍥炴粴鐐�
+        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+        try {
+            String userName = "";
+            String userId = "";
+            if (object.get("userName") != null) {
+                userName = object.get("userName").toString();
             }
-            return isinsert;
-        }else{
-            return false;
-        }
+            if (object.get("userId") != null) {
+                userId = object.get("userId").toString();
+            }
+            //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
+            List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class);
+            if (!orderDetaillist.isEmpty()){
+                for (OrderDetail orderDetail : orderDetaillist) {
+                    Integer oldordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getFinishedGoodsInventory().getOrderId());
+                    Integer oldordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getFinishedGoodsInventory().getOrderId());
 
+                    Integer newordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getOrderId());
+                    Integer newordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getOrderId());
+
+                    //鑾峰彇鍗曞彿
+                    String oddNumber= orderNumberSetting("璋冩嫧");
+                    //娣诲姞璋冩嫧璁板綍
+                    finishedOperateLogMapper.insertFinishedOperateLogAllocate(orderDetail,userName,oddNumber);
+                    //淇敼鍘熻鍗曠殑搴撳瓨鏁伴噺
+                    finishedGoodsInventoryMapper.updateInventoryquantityAllocateOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
+                    //淇敼璋冩嫧鍚庤鍗曠殑搴撳瓨鏁伴噺
+                    finishedGoodsInventoryMapper.updateInventoryquantityAllocateInt(orderDetail.getOrderId(),orderDetail.getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
+                    //淇敼鍘熻鍗曟槑缁嗚〃鍙戣揣鏁伴噺
+                    finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
+                    //淇敼璋冩嫧鏂拌鍗曟槑缁嗚〃鍙戣揣鏁伴噺
+                    finishedGoodsInventoryMapper.updateIntOrderNumberConut(orderDetail.getOrderId(),orderDetail.getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
+                    if (newordersum==newordernumbersum+orderDetail.getQuantity()){
+                        //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+                        finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getOrderId(),2);
+                    }
+                    if (Objects.equals(oldordersum, oldordernumbersum)){
+                        //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+                        finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getFinishedGoodsInventory().getOrderId(),1);
+                    }
+                }
+            }
+
+        } 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;
 
 
     }
@@ -283,60 +307,63 @@
     }
 
     public Boolean updateFinishedGoodsInventoryTakeOut(Map<String,Object> object) {
-        Boolean isinsert=false;
-        String userName = "";
-        String userId = "";
-        if (object.get("userName") != null) {
-            userName = object.get("userName").toString();
-        }
-        if (object.get("userId") != null) {
-            userId = object.get("userId").toString();
-        }
-
-        String operateType = "";
-        String remarks = "";
-        if (object.get("remarks") != null) {
-            remarks = object.get("remarks").toString();
-        }
-        if (object.get("operateType") != null) {
-            operateType = object.get("operateType").toString();
-        }
-        //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
-        List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class);
-        if (!orderDetaillist.isEmpty()){
-            for (OrderDetail orderDetail : orderDetaillist) {
-                Integer oldordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getFinishedGoodsInventory().getOrderId());
-                Integer oldordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getFinishedGoodsInventory().getOrderId());
-
-                //鑾峰彇鍗曞彿
-                String oddNumber= orderNumberSetting("棰嗗嚭");
-                //娣诲姞棰嗗嚭璁板綍
-                finishedOperateLogMapper.insertFinishedOperateLogTakeOut(orderDetail,userName,oddNumber,operateType,remarks);
-                //淇敼搴撳瓨鏁伴噺
-                finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
-                //淇敼璁㈠崟鏄庣粏琛ㄦ暟閲�
-                finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
-                if (Objects.equals(oldordersum, oldordernumbersum)){
-                    //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
-                    finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getFinishedGoodsInventory().getOrderId(),1);
-                }
-                isinsert=true;
+        boolean saveState = true;
+        //璁剧疆鍥炴粴鐐�
+        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+        try {
+            String userName = "";
+            String userId = "";
+            if (object.get("userName") != null) {
+                userName = object.get("userName").toString();
             }
-            return isinsert;
-        }else{
-            return false;
-        }
+            if (object.get("userId") != null) {
+                userId = object.get("userId").toString();
+            }
 
+            String operateType = "";
+            String remarks = "";
+            if (object.get("remarks") != null) {
+                remarks = object.get("remarks").toString();
+            }
+            if (object.get("operateType") != null) {
+                operateType = object.get("operateType").toString();
+            }
+            //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
+            List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class);
+            if (!orderDetaillist.isEmpty()){
+                for (OrderDetail orderDetail : orderDetaillist) {
+                    Integer oldordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getFinishedGoodsInventory().getOrderId());
+                    Integer oldordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getFinishedGoodsInventory().getOrderId());
+
+                    //鑾峰彇鍗曞彿
+                    String oddNumber= orderNumberSetting("棰嗗嚭");
+                    //娣诲姞棰嗗嚭璁板綍
+                    finishedOperateLogMapper.insertFinishedOperateLogTakeOut(orderDetail,userName,oddNumber,operateType,remarks);
+                    //淇敼搴撳瓨鏁伴噺
+                    finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
+                    //淇敼璁㈠崟鏄庣粏琛ㄦ暟閲�
+                    finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
+                    if (Objects.equals(oldordersum, oldordernumbersum)){
+                        //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+                        finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getFinishedGoodsInventory().getOrderId(),1);
+                    }
+                }
+            }
+
+        } 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> getselectTakeOutFinishedOperateLog(Integer pageNum, Integer pageSize, FinishedOperateLog finishedOperateLog) {
-        Integer offset = (pageNum - 1) * pageSize;
-        Map<String, Object> map = new HashMap<>();
-        map.put("data", finishedOperateLogMapper.getselectAllocateFinishedOperateLog(offset, pageSize, finishedOperateLog));
-        map.put("total", finishedOperateLogMapper.getselectAllocateFinishedOperateLogPageTotal(offset, pageSize, finishedOperateLog));
-        return map;
-    }*/
 
     public Map<String, Object> getSelectOperateRecord(Integer pageNum, Integer pageSize, List<String> selectDate, FinishedOperateLog finishedOperateLog) {
         Integer offset = (pageNum-1)*pageSize;
@@ -363,88 +390,107 @@
 
 
     public Boolean updateFinishedGoodsInventoryRework(Map<String,Object> object) {
-        Boolean isinsert=false;
-        String userName = "";
-        String userId = "";
-        if (object.get("userName") != null) {
-            userName = object.get("userName").toString();
-        }
-        if (object.get("userId") != null) {
-            userId = object.get("userId").toString();
-        }
-
-        String operateType = "";
-        String remarks = "";
-        if (object.get("remarks") != null) {
-            remarks = object.get("remarks").toString();
-        }
-        if (object.get("operateType") != null) {
-            operateType = object.get("operateType").toString();
-        }
-        //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
-        List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class);
-        if (!orderDetaillist.isEmpty()){
-            for (OrderDetail orderDetail : orderDetaillist) {
-                Integer oldordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getFinishedGoodsInventory().getOrderId());
-                Integer oldordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getFinishedGoodsInventory().getOrderId());
-
-                //鑾峰彇鍗曞彿
-                String oddNumber= orderNumberSetting("杩斿伐");
-                //娣诲姞棰嗗嚭璁板綍
-                finishedOperateLogMapper.insertFinishedOperateLogRework(orderDetail,userName,oddNumber,operateType,remarks);
-                //淇敼搴撳瓨鏁伴噺
-                finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
-                //淇敼璁㈠崟鏄庣粏琛ㄦ暟閲�
-                finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
-                if (Objects.equals(oldordersum, oldordernumbersum)){
-                    //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
-                    finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getFinishedGoodsInventory().getOrderId(),1);
-                }
-                isinsert=true;
+        boolean saveState = true;
+        //璁剧疆鍥炴粴鐐�
+        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+        try {
+            String userName = "";
+            String userId = "";
+            if (object.get("userName") != null) {
+                userName = object.get("userName").toString();
             }
-            return isinsert;
-        }else{
-            return false;
-        }
+            if (object.get("userId") != null) {
+                userId = object.get("userId").toString();
+            }
 
+            String operateType = "";
+            String remarks = "";
+            if (object.get("remarks") != null) {
+                remarks = object.get("remarks").toString();
+            }
+            if (object.get("operateType") != null) {
+                operateType = object.get("operateType").toString();
+            }
+            //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
+            List<OrderDetail> orderDetaillist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), OrderDetail.class);
+            if (!orderDetaillist.isEmpty()){
+                for (OrderDetail orderDetail : orderDetaillist) {
+                    Integer oldordersum = finishedGoodsInventoryMapper.findOrderQuantity(orderDetail.getFinishedGoodsInventory().getOrderId());
+                    Integer oldordernumbersum = finishedGoodsInventoryMapper.findOrderNumberdsum(orderDetail.getFinishedGoodsInventory().getOrderId());
+
+                    //鑾峰彇鍗曞彿
+                    String oddNumber= orderNumberSetting("杩斿伐");
+                    //娣诲姞棰嗗嚭璁板綍
+                    finishedOperateLogMapper.insertFinishedOperateLogRework(orderDetail,userName,oddNumber,operateType,remarks);
+                    //淇敼搴撳瓨鏁伴噺
+                    finishedGoodsInventoryMapper.updateInventoryquantityOut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
+                    //淇敼璁㈠崟鏄庣粏琛ㄦ暟閲�
+                    finishedGoodsInventoryMapper.updateOutOrderNumberConut(orderDetail.getFinishedGoodsInventory().getOrderId(),orderDetail.getFinishedGoodsInventory().getOrderNumber(), Math.toIntExact(orderDetail.getQuantity()));
+                    if (Objects.equals(oldordersum, oldordernumbersum)){
+                        //淇敼璁㈠崟琛ㄥ叆搴撶姸鎬�
+                        finishedGoodsInventoryMapper.updateOrderWarehousingState(orderDetail.getFinishedGoodsInventory().getOrderId(),1);
+                    }
+                }
+            }
+
+        } 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 Boolean updateFinishedGoodsInventoryToExamine(Map<String,Object> object,String type) {
-        Boolean isinsert=false;
-        String userName = "";
-        String userId = "";
-        if (object.get("userName") != null) {
-            userName = object.get("userName").toString();
-        }
-        if (object.get("userId") != null) {
-            userId = object.get("userId").toString();
-        }
-        //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
-        List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class);
-        if (!finishedOperateLogslist.isEmpty()){
-            for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) {
-                if(Objects.equals(type, "瀹℃牳")){
-                    //瀹℃牳淇敼棰嗗嚭璁板綍
-                    finishedOperateLogMapper.updateToExamine(finishedOperateLog,userName,"宸插鏍�");
-                    //瀹℃牳淇敼搴撳瓨鏁伴噺
-                    finishedGoodsInventoryMapper.updateInventoryInventoryOut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()));
-                } else if (Objects.equals(type, "鍙嶅")) {
-                    //瀹℃牳淇敼棰嗗嚭璁板綍
-                    finishedOperateLogMapper.updateToExamine(finishedOperateLog,userName,"鏈鏍�");
-                    //瀹℃牳淇敼搴撳瓨鏁伴噺
-                    finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()));
-                }
-
-
-                isinsert=true;
+        boolean saveState = true;
+        //璁剧疆鍥炴粴鐐�
+        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+        try {
+            String userName = "";
+            String userId = "";
+            if (object.get("userName") != null) {
+                userName = object.get("userName").toString();
             }
-            return isinsert;
-        }else{
-            return false;
-        }
+            if (object.get("userId") != null) {
+                userId = object.get("userId").toString();
+            }
+            //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
+            List<FinishedOperateLog> finishedOperateLogslist = JSONArray.parseArray(JSONObject.toJSONString(object.get("orderDetail")), FinishedOperateLog.class);
+            if (!finishedOperateLogslist.isEmpty()){
+                for (FinishedOperateLog finishedOperateLog : finishedOperateLogslist) {
+                    if(Objects.equals(type, "瀹℃牳")){
+                        //瀹℃牳淇敼棰嗗嚭璁板綍
+                        finishedOperateLogMapper.updateToExamine(finishedOperateLog,userName,"宸插鏍�");
+                        //瀹℃牳淇敼搴撳瓨鏁伴噺
+                        finishedGoodsInventoryMapper.updateInventoryInventoryOut(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()));
+                    } else if (Objects.equals(type, "鍙嶅")) {
+                        //瀹℃牳淇敼棰嗗嚭璁板綍
+                        finishedOperateLogMapper.updateToExamine(finishedOperateLog,userName,"鏈鏍�");
+                        //瀹℃牳淇敼搴撳瓨鏁伴噺
+                        finishedGoodsInventoryMapper.updateInventoryInventoryInt(finishedOperateLog.getOrderId(),finishedOperateLog.getOperationNumber(),Math.toIntExact(finishedOperateLog.getQuantity()));
+                    }
 
+                }
+            }
+
+        } 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;
 
     }
 

--
Gitblit v1.8.0