From 41e833e928e235afe2023398b1d5e8d35c47ded5 Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期四, 29 八月 2024 10:37:41 +0800
Subject: [PATCH] privilege

---
 pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java |  102 +++++++++++++++++++++++++++-----------------------
 1 files changed, 55 insertions(+), 47 deletions(-)

diff --git a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java
index 3cf6817..4c909c6 100644
--- a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java
+++ b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java
@@ -6,7 +6,6 @@
 import com.dy.pmsGlobal.pojoBa.BaUser;
 import com.dy.pmsGlobal.pojoPr.*;
 import com.dy.pmsGlobal.util.UserUtil;
-import com.dy.pmsProduct.taskPlan.PlanStatusEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -41,6 +40,7 @@
     public void setUserUtil(UserUtil userUtil) {
         this.userUtil = userUtil;
     }
+
     @Transactional
     public int save(PrOrder p) {
         p.id = null;
@@ -48,7 +48,8 @@
         if (orderDao.exists(p.name, p.id)) {
             throw new RuntimeException("璁㈠崟鍚嶇О涓嶈兘閲嶅");
         }
-        p.setDeleted(false);
+        extractedCheck(p);
+        p.deleted = false;
         BaUser loginUser = userUtil.getUser(UserTokenContext.get());
         if (loginUser != null) {
             p.creator = loginUser.id;
@@ -63,6 +64,7 @@
         if (orderDao.exists(p.name, p.id)) {
             throw new RuntimeException("璁㈠崟鍚嶇О涓嶈兘閲嶅");
         }
+        extractedCheck(p);
         int count = orderDao.updateByPrimaryKeySelective(p);
         if (count > 0) {
             saveOrderItems(p);
@@ -122,25 +124,27 @@
     }
 
     private void changeRate(PrOrder prOrder) {
-        List<PrOrderItem> items = prOrder.items;
-        for (int i = 1; i < items.size(); i++) {
-            for (int j = i - 1; j >= 0; j--) {
-                //鎷跨潃i渚濇璺熶笂涓�涓瘮杈�,濡傛灉浜у搧鐩稿悓,鍒欎笂涓�涓褰昪omplete_number - number 濡傛灉 > 0 鍒嗙粰i ,濡傛灉 < 0 鍒欏皢 complete_number 缃负0
-                if (items.get(j).getProId().intValue() == items.get(i).getProId().intValue()) {
-                    int remainNumber = items.get(j).getCompleteNumber() - items.get(j).getNumber();
-                    if (remainNumber > 0) {
-                        items.get(j).setCompleteNumber(items.get(j).getNumber());
-                        items.get(j).setCompleteRate("100.00%");
-                        items.get(i).setCompleteNumber(remainNumber);
-                        BigDecimal remainBig = new BigDecimal(remainNumber * 100);
-                        BigDecimal iNumberBig = new BigDecimal(items.get(i).getNumber());
-                        BigDecimal result = remainBig.divide(iNumberBig, 2, RoundingMode.HALF_UP);
-                        items.get(i).setCompleteRate(result.toString() +"%");
-                    }else{
-                        items.get(i).setCompleteNumber(0);
-                        items.get(i).setCompleteRate("0.00%");
+        if (prOrder != null && prOrder.items != null) {
+            List<PrOrderItem> items = prOrder.items;
+            for (int i = 1; i < items.size(); i++) {
+                for (int j = i - 1; j >= 0; j--) {
+                    //鎷跨潃i渚濇璺熶笂涓�涓瘮杈�,濡傛灉浜у搧鐩稿悓,鍒欎笂涓�涓褰昪omplete_number - number 濡傛灉 > 0 鍒嗙粰i ,濡傛灉 < 0 鍒欏皢 complete_number 缃负0
+                    if (items.get(j).getProId().intValue() == items.get(i).getProId().intValue()) {
+                        int remainNumber = items.get(j).getCompleteNumber() - items.get(j).getNumber();
+                        if (remainNumber > 0) {
+                            items.get(j).setCompleteNumber(items.get(j).getNumber());
+                            items.get(j).setCompleteRate("100.00%");
+                            items.get(i).setCompleteNumber(remainNumber);
+                            BigDecimal remainBig = new BigDecimal(remainNumber * 100);
+                            BigDecimal iNumberBig = new BigDecimal(items.get(i).getNumber());
+                            BigDecimal result = remainBig.divide(iNumberBig, 2, RoundingMode.HALF_UP);
+                            items.get(i).setCompleteRate(result.toString() + "%");
+                        } else {
+                            items.get(i).setCompleteNumber(0);
+                            items.get(i).setCompleteRate("0.00%");
+                        }
+                        break;
                     }
-                    break;
                 }
             }
         }
@@ -154,42 +158,46 @@
         }
         return orderList;
     }
+
     /**
      * 鍙洿鏂扮姸鎬�,涓嶆洿鏂板叾浠栧瓧娈�
-     * @param plan
-     * 鏇存柊鐘舵��  濡傛灉鏈夊湪鎵ц涓殑浠诲姟,涓嶈鏆傚仠
+     *
+     * @param order 鏇存柊鐘舵��  濡傛灉鏈夊湪鎵ц涓殑浠诲姟,涓嶈鏆傚仠
      * @return
      */
-  /*  @Transactional
-    public int updateStatus(PrOrder plan) {
-        if(plan.status == PlanStatusEnum.NORMAL.getCode()){
-            PrAssemblyPlan assemblyPlan = assemblyDao.selectByPrimaryKey(plan.id);
-            assemblyPlan.status = plan.status;
-            extractedCheck(assemblyPlan);
+    @Transactional
+    public int updateStatus(PrOrder order) {
+        if (order.status == OrderStatusEnum.NORMAL.getCode()) {
+            PrOrder prOrder = orderDao.selectByPrimaryKey(order.id);
+            prOrder.status = order.status;
+            extractedCheck(prOrder);
         }
-        PrAssemblyPlan param = new PrAssemblyPlan();
-        param.id =plan.id;
-        param.status = plan.status;
-        return assemblyDao.updateByPrimaryKeySelective(param);
+        PrOrder param = new PrOrder();
+        param.id = order.id;
+        param.status = order.status;
+        return orderDao.updateByPrimaryKeySelective(param);
     }
-    private void extractedCheck(PrAssemblyPlan plan) {
-        PrProductionProcess process = processDao.selectByPrimaryKey(plan.processId);
-        if(process == null || !process.proId.equals(plan.proId)){
-            throw new RuntimeException("浜у搧涓庣敓浜ф祦绋嬩笉鍖归厤");
-        }
-        //寮�濮嬫棩鏈熻灏忎簬缁撴潫鏃ユ湡
-        if(plan.startDate.compareTo(plan.endDate) > 0){
-            throw new RuntimeException("寮�濮嬫棩鏈熶笉鑳藉ぇ浜庣粨鏉熸棩鏈�");
-        }
-        //Fancy add 2024/07/09   濡傛灉鐘舵�佷负鎵ц ,鍒欑粨鏉熸棩鏈熷繀椤诲ぇ浜庣瓑浜庡綋鍓嶆棩鏈�
-        if(plan.status == PlanStatusEnum.NORMAL.getCode()){
-            String endDateStr = plan.getEndDate();
-            LocalDate endDate = LocalDate.parse(endDateStr, DateTimeFormatter.ISO_LOCAL_DATE);
+
+    //濡傛灉浜ゆ湡灏忎簬褰撳墠鏃堕棿,涓嶅厑璁歌缃负姝e父
+    private void extractedCheck(PrOrder order) {
+        if (order.status == OrderStatusEnum.NORMAL.getCode()) {
+            String deliveryDateStr = order.getDeliveryDate();
+            LocalDate endDate = LocalDate.parse(deliveryDateStr, DateTimeFormatter.ISO_LOCAL_DATE);
             LocalDate nextDay = endDate.plusDays(1);
             LocalDate today = LocalDate.now(); // 鑾峰彇褰撳墠鏃ユ湡
             if (nextDay.isBefore(today)) {
-                throw new RuntimeException("鎵ц鐘舵�佺粨鏉熸棩鏈熷繀椤诲ぇ浜庣瓑浜庡綋鍓嶆棩鏈�,璇蜂慨鏀圭粨鏉熸棩鏈�");
+                throw new RuntimeException("浜や粯鏃ユ湡蹇呴』澶т簬绛変簬褰撳墠鏃ユ湡,璇蜂慨鏀逛氦浠樻棩鏈�");
             }
         }
-    }*/
+        //濡傛灉鏈夊湪鐢熶骇鐨勪换鍔′笉鑳借缃负鏆傚仠 鎴� 缁撴潫
+ /*
+        PrProductionProcess process = processDao.selectByPrimaryKey(order.processId);
+        if(process == null || !process.proId.equals(order.proId)){
+            throw new RuntimeException("浜у搧涓庣敓浜ф祦绋嬩笉鍖归厤");
+        }
+        //寮�濮嬫棩鏈熻灏忎簬缁撴潫鏃ユ湡
+        if(order.startDate.compareTo(order.endDate) > 0){
+            throw new RuntimeException("寮�濮嬫棩鏈熶笉鑳藉ぇ浜庣粨鏉熸棩鏈�");
+        }*/
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0