From 7dfbe35bfaa7ab48da27073858c64e7602c702dd Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期一, 28 十一月 2022 13:56:38 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/manager/controller/PlanController.java |   61 +++++++++++++++++++++++++++++-
 1 files changed, 59 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 6516449..95381bb 100644
--- a/src/main/java/com/zy/crm/manager/controller/PlanController.java
+++ b/src/main/java/com/zy/crm/manager/controller/PlanController.java
@@ -174,7 +174,7 @@
     @PostMapping(value = "/plan/approval/auth")
     @ManagerAuth
     public R approval(@RequestParam Long planId,
-                      @RequestParam(required = false) Long planner){
+                      @RequestParam(required = false) Long plannerId){
         Plan plan = planService.selectById(planId);
         assert plan != null;
 
@@ -236,6 +236,63 @@
                 }
                 break;
             case 2:
+                // 鏌ユ壘瑙勫垝缁勯暱
+                PlanType planType = planTypeService.selectById(plan.getPlanType());
+                User planLeader = planTypeService.findPlanLeader(planType);
+                if (Cools.isEmpty(planLeader)) {
+                    throw new CoolException("鏈煡鎵惧埌瑙勫垝缁勯暱锛岃鑱旂郴绠$悊鍛�");
+                }
+                if (Cools.isEmpty(planLeader)) {
+                    throw new CoolException("鏈煡鎵惧埌瑙勫垝缁勯暱锛岃鑱旂郴绠$悊鍛�");
+                }
+                if (!getUserId().equals(planLeader.getId())) {
+                    return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄�");
+                }
+                if (Cools.isEmpty(plannerId)) {
+                    return R.error("鎸囧畾瑙勫垝鍛樹笉鑳戒负绌�");
+                }
+                User planner = userService.selectById(plannerId);
+                // 淇敼 settle 姝ラ鏁版嵁
+                List<SettleDto> list = JSON.parseArray(plan.getSettleMsg(), SettleDto.class);
+                for (SettleDto dto : list) {
+                    switch (dto.getStep()) {
+                        case 2:
+                            dto.setCurr(Boolean.FALSE);
+                            break;
+                        case 3:
+                            dto.setCurr(Boolean.TRUE);
+                            dto.setUserId(planLeader.getId());
+                            dto.setUsername(planLeader.getNickname());
+                            dto.setMsg("鍞墠缁勯暱" + planLeader.getNickname() + "瀹℃壒閫氳繃");
+                            dto.setTime(DateUtils.convert(new Date()));
+                            break;
+                        case 4:
+                            dto.setUserId(planner.getId());
+                            dto.setUsername(planner.getNickname());
+                            break;
+                        default:
+                            break;
+                    }
+                }
+                plan.setSettleMsg(JSON.toJSONString(list));
+                // 淇敼瑙勫垝鍗曠姸鎬�
+                plan.setSettle(3);  // 瑙勫垝鍛樺緟瀹�
+                plan.setPlanner(planner.getId());
+                plan.setUpdateBy(getUserId());
+                plan.setUpdateTime(new Date());
+
+                if (!planService.updateById(plan)) {
+                    throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�");
+                }
+
+                // 娣诲姞瑙勫垝缁勯暱璺熻繘浜�
+                PlanFoll planFoll = new PlanFoll();
+                planFoll.setPlanId(planner.getId());
+                planFoll.setUserId(planLeader.getId());
+                if (!planFollService.insert(planFoll)) {
+                    throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�");
+                }
+
                 break;
             case 3:
                 break;
@@ -244,7 +301,7 @@
             default:
                 return R.error();
         }
-        return R.ok();
+        return R.ok("瀹℃壒鎴愬姛");
     }
 
     @PostMapping(value = "/plan/planner/list/auth")

--
Gitblit v1.9.1