From 5528e869fc25354fe62fbb228cfdd40e0df94dbc Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期一, 28 十一月 2022 08:32:06 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/manager/controller/PlanController.java |   74 ++++++++++++++++++++++++++++++++++++-
 1 files changed, 72 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/crm/manager/controller/PlanController.java b/src/main/java/com/zy/crm/manager/controller/PlanController.java
index dfd6ef7..45d112f 100644
--- a/src/main/java/com/zy/crm/manager/controller/PlanController.java
+++ b/src/main/java/com/zy/crm/manager/controller/PlanController.java
@@ -8,6 +8,7 @@
 import com.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
+import com.core.common.DateUtils;
 import com.core.common.R;
 import com.core.domain.KeyValueVo;
 import com.core.exception.CoolException;
@@ -154,8 +155,6 @@
         plan.setUpdateTime(new Date());
 
         plan.setForm(JSON.toJSONString(param));     // 鑷畾涔夎〃鍗曞唴瀹�
-        User manager = userService.getDeptManager(getHostId(), getUser().getDeptId());
-        plan.setSettleMsg(JSON.toJSONString(SettleDto.init(plan, manager)));
 
         if (!planService.updateById(plan)) {
             throw new CoolException("淇濇寔澶辫触锛岃閲嶈瘯");
@@ -175,6 +174,77 @@
     @PostMapping(value = "/plan/approval/auth")
     @ManagerAuth
     public R approval(@RequestParam Long planId){
+        Plan plan = planService.selectById(planId);
+        assert plan != null;
+
+        switch (plan.getSettle()) {
+            case 1:
+                // 鏈粍缁勯暱瀹℃牳
+                User user = userService.selectById(plan.getUserId());
+                User manager = userService.getDeptManager(getHostId(), user.getDeptId());
+                if (manager.getId().equals(getUserId())) {
+
+                    // 鏌ユ壘瑙勫垝缁勯暱
+                    PlanType planType = planTypeService.selectById(plan.getPlanType());
+                    User planLeader = planTypeService.findPlanLeader(planType);
+                    if (Cools.isEmpty(planLeader)) {
+                        throw new CoolException("鏈煡鎵惧埌瑙勫垝缁勯暱锛岃鑱旂郴绠$悊鍛�");
+                    }
+
+                    // 淇敼 settle 姝ラ鏁版嵁
+                    List<SettleDto> list = JSON.parseArray(plan.getSettleMsg(), SettleDto.class);
+                    for (SettleDto dto : list) {
+                        switch (dto.getStep()) {
+                            case 1:
+                                dto.setCurr(Boolean.FALSE);
+                                break;
+                            case 2:
+                                dto.setCurr(Boolean.TRUE);
+                                dto.setMsg("鏈粍缁勯暱" + manager.getNickname() + "瀹℃壒閫氳繃");
+                                dto.setTime(DateUtils.convert(new Date()));
+                                break;
+                            case 3:
+                                dto.setUserId(planLeader.getId());
+                                dto.setUsername(planLeader.getNickname());
+                                break;
+                            default:
+                                break;
+                        }
+                    }
+                    plan.setSettleMsg(JSON.toJSONString(list));
+
+                    // 淇敼瑙勫垝鍗曠姸鎬�
+                    plan.setSettle(2);  // 瑙勫垝缁勯暱寰呭
+                    plan.setUpdateBy(getUserId());
+                    plan.setUpdateTime(new Date());
+
+                    if (!planService.updateById(plan)) {
+                        throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�");
+                    }
+
+                    // 娣诲姞瑙勫垝缁勯暱璺熻繘浜�
+                    PlanFoll planFoll = new PlanFoll();
+                    planFoll.setPlanId(plan.getId());
+                    planFoll.setUserId(planLeader.getId());
+                    if (!planFollService.insert(planFoll)) {
+                        throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�");
+                    }
+
+                } else {
+                    return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄�");
+                }
+                break;
+            case 2:
+                break;
+            case 3:
+                break;
+            case 4:
+                break;
+            default:
+                return R.error();
+        }
+
+
         return R.ok();
     }
 

--
Gitblit v1.9.1