From 57cd76d861e0102a9dee9fa56a0bf4110e8c3f55 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期一, 15 四月 2024 09:09:21 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/manager/controller/WeeklyController.java |  172 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 147 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/zy/crm/manager/controller/WeeklyController.java b/src/main/java/com/zy/crm/manager/controller/WeeklyController.java
index 5a13521..4b21846 100644
--- a/src/main/java/com/zy/crm/manager/controller/WeeklyController.java
+++ b/src/main/java/com/zy/crm/manager/controller/WeeklyController.java
@@ -45,14 +45,28 @@
     private WeeklyFollService weeklyFollService;
     @Autowired
     private SmsCodeService smsCodeService;
+    @Autowired
+    private CstmrService cstmrService;
 
     String PZH = " 鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�� ";
-    Integer PBN = 6;
+    Integer PBN = 3;
 
     @RequestMapping(value = "/weekly/{id}/auth")
     @ManagerAuth
     public R get(@PathVariable("id") String id) {
-        return R.ok(weeklyService.selectById(String.valueOf(id)));
+        Weekly weekly = weeklyService.selectById(String.valueOf(id));
+        assert weekly != null;
+        JSONObject resultObj = JSON.parseObject(JSON.toJSONString(weekly));
+        if (!Cools.isEmpty(weekly.getForm())) {
+            JSONObject formObj = JSON.parseObject(weekly.getForm());
+            formObj.forEach(resultObj::putIfAbsent);
+        }
+
+        // 姝ラ鏉$浉鍏�
+        resultObj.put("step", weekly.getSettle().equals(weekly.getSettleSize()) ? 0 : weekly.getSettle() + 1);
+
+        return R.ok().add(resultObj);
+//        return R.ok(weeklyService.selectById(String.valueOf(id)));
     }
 
     @RequestMapping(value = "/weekly/list/auth")
@@ -103,11 +117,27 @@
 
     @RequestMapping(value = "/weekly/delete/auth")
     @ManagerAuth
-    public R delete(@RequestParam(value="ids[]") Long[] ids){
-         for (Long id : ids){
-            weeklyService.deleteById(id);
-        }
-        return R.ok();
+    public R delete(@RequestParam() Long[] ids){
+         try{
+             for (Long id : ids){
+                 List<WeeklyDailyReality> weeklyDailyRealities = weeklyDailyRealityService.selectList(new EntityWrapper<WeeklyDailyReality>().eq("weekly_id", id));
+                 for (WeeklyDailyReality weeklyDailyReality:weeklyDailyRealities){
+                     weeklyDailyRealityService.deleteById(weeklyDailyReality);
+                 }
+                 List<WeeklyDailyPlan> weeklyDailyPlans = weeklyDailyPlanService.selectList(new EntityWrapper<WeeklyDailyPlan>().eq("weekly_id", id));
+                 for (WeeklyDailyPlan weeklyDailyPlan:weeklyDailyPlans){
+                     weeklyDailyPlanService.deleteById(weeklyDailyPlan);
+                 }
+                 List<WeeklyFoll> weeklyFolls = weeklyFollService.selectList(new EntityWrapper<WeeklyFoll>().eq("weekly_id", id));
+                 for (WeeklyFoll weeklyFoll:weeklyFolls){
+                     weeklyFollService.deleteById(weeklyFoll);
+                 }
+                 weeklyService.deleteById(id);
+             }
+         }catch (Exception e){
+             throw new CoolException("鍒犻櫎澶辫触锛屽紓甯镐俊鎭細"+e);
+         }
+         return R.ok();
     }
 
     @RequestMapping(value = "/weekly/export/auth")
@@ -220,16 +250,33 @@
             weekly.setWeeklyNowMonth(TimeCalculatorUtils.WeeklyNowMonthDay(weekly.getStartTime()));
             weekly.setWeeklyDayMonth(weekly.getWeeklyMonth()+"鏈堢"+weekly.getWeeklyNowMonth()+"鍛�");
 
-            List<User> userList = new ArrayList<>();
-            userList.add(getUser());
             User manager = new User();
             try {
                 manager = userService.getDeptManager(getHostId(), getUser().getDeptId());        // 鑾峰彇閮ㄩ棬棰嗗
             } catch (Exception e) {
                 manager = getUser();
             }
-            userList.add(manager);
-            weekly.setDirector(manager.getId());
+            // 鑾峰彇涓氬姟鍛�
+            List<String> initNames = new ArrayList<>();
+            initNames.add("鍒涘缓浜嗗鎵�");
+            initNames.add("涓氬姟鍛樻彁浜�");
+            initNames.add("閮ㄩ棬棰嗗瀹℃牳");
+            List<User> users = new ArrayList<>();
+            users.add(getUser());
+            users.add(getUser());
+            users.add(manager);
+//            users.add(getUser());
+            weekly.setSettleMsg(JSON.toJSONString(SettleDto.InItFlowPathTwo(users, initNames, users.size())));
+            weekly.setSettleSize(users.size());
+            weekly.setSettleCurrent(1);
+            if (users.size() > 1) {
+                weekly.setDirector(users.get(1).getId());
+            } else {
+                weekly.setDirector(getUserId());
+            }
+
+
+            weekly.setSettleSize(users.size());
 
             List<Date> dates = TimeCalculatorUtils.WeeklyListDays(dateList);//鑾峰彇鍛ㄤ竴鍒板懆鏃ユ棩鏈�
 
@@ -268,7 +315,7 @@
             }
 
             try{
-                insertWeeklyFoll(userList,weekly.getId());                // 鑷姩娣诲姞璺熻繘浜�
+                insertWeeklyFoll(users,weekly.getId());                // 鑷姩娣诲姞璺熻繘浜�
             }catch (Exception e){
                 log.error("鍛ㄦ姤娣诲姞璺熻繘浜哄紓甯革紝寮傚父淇℃伅1锛�"+e);
             }
@@ -285,10 +332,13 @@
         for (User user:userList){
             try{
                 // 鑷姩娣诲姞璺熻繘浜�
-                WeeklyFoll weeklyFoll = new WeeklyFoll();
-                weeklyFoll.setUserId(user.getId());
-                weeklyFoll.setWeeklyId(weeklyId);
-                weeklyFollService.insert(weeklyFoll);
+                List<WeeklyFoll> weeklyFolls = weeklyFollService.selectList(new EntityWrapper<WeeklyFoll>().eq("weekly_id", weeklyId).eq("user_id", user.getId()));
+                if (weeklyFolls.size()==0){
+                    WeeklyFoll weeklyFoll = new WeeklyFoll();
+                    weeklyFoll.setUserId(user.getId());
+                    weeklyFoll.setWeeklyId(weeklyId);
+                    weeklyFollService.insert(weeklyFoll);
+                }
             }catch (Exception e){
                 log.error("鍛ㄦ姤娣诲姞璺熻繘浜哄紓甯革紝寮傚父淇℃伅2锛�"+e);
                 continue;
@@ -323,23 +373,21 @@
             weekly.setUpdateBy(getUserId());
             weekly.setUpdateTime(now);
 
-            List<User> userList = new ArrayList<>();
-            userList.add(getUser());
             User manager = new User();
             try {
                 manager = userService.getDeptManager(getHostId(), getUser().getDeptId());        // 鑾峰彇閮ㄩ棬棰嗗
             } catch (Exception e) {
                 manager = getUser();
             }
-            userList.add(manager);
             weekly.setDirector(manager.getId());
 
             // 鑾峰彇涓氬姟鍛�
             List<String> initNames = new ArrayList<>();
             initNames.add("鍒涘缓浜嗗鎵�");
+            initNames.add("涓氬姟鍛樻彁浜�");
             initNames.add("閮ㄩ棬棰嗗瀹℃牳");
-//            initNames.add("涓氬姟鍛樼‘璁�");
             List<User> users = new ArrayList<>();
+            users.add(getUser());
             users.add(getUser());
             users.add(manager);
 //            users.add(getUser());
@@ -426,7 +474,7 @@
             }
 
             try{
-                insertWeeklyFoll(userList,weekly.getId());                // 鑷姩娣诲姞璺熻繘浜�
+                insertWeeklyFoll(users,weekly.getId());                // 鑷姩娣诲姞璺熻繘浜�
             }catch (Exception e){
                 log.error("鍛ㄦ姤娣诲姞璺熻繘浜哄紓甯革紝寮傚父淇℃伅1锛�"+e);
             }
@@ -451,8 +499,6 @@
                 throw new CoolException("鍙傛暟涓虹┖锛歐eeklyDailyPlanList");
             } else if (Cools.isEmpty(param.getWeeklyId())){
                 throw new CoolException("鍙傛暟涓虹┖锛歐eeklyId");
-            } else if (Cools.isEmpty(param.getWeeklyType())){
-                throw new CoolException("鍙傛暟涓虹┖锛歐eeklyDailyPlanList");
             } else if (Cools.isEmpty(param.getType())){
                 throw new CoolException("鍙傛暟涓虹┖锛歍ype");
             } else if (Cools.isEmpty(param.getWeeklyType())){
@@ -549,8 +595,6 @@
                 throw new CoolException("鍙傛暟涓虹┖锛歐eeklyDailyRealityList");
             } else if (Cools.isEmpty(param.getWeeklyId())){
                 throw new CoolException("鍙傛暟涓虹┖锛歐eeklyId");
-            } else if (Cools.isEmpty(param.getWeeklyType())){
-                throw new CoolException("鍙傛暟涓虹┖锛歐eeklyDailyPlanList");
             } else if (Cools.isEmpty(param.getType())){
                 throw new CoolException("鍙傛暟涓虹┖锛歍ype");
             } else if (Cools.isEmpty(param.getWeeklyType())){
@@ -754,4 +798,82 @@
         }
         return R.ok("鍥為��鎴愬姛");
     }
+
+    @RequestMapping(value = "/weekly/from/add/phone/auth")
+    @ManagerAuth(memo = "鍛ㄨ鍒�/鏃ヨ鍒�/鏃ュ疄闄�")
+    @Transactional
+    public R formAddModifyPhone(@RequestBody WeeklyDomainParam param){
+        try{
+            if (Cools.isEmpty(param)){
+                throw new CoolException("鍙傛暟涓虹┖锛歐eeklyDomainParam");
+            } else if (Cools.isEmpty(param.getWeeklyDailyRealityList()) || param.getWeeklyDailyRealityList().size()==0){
+                throw new CoolException("鍙傛暟涓虹┖锛歐eeklyDailyRealityList");
+            } else if (Cools.isEmpty(param.getWeeklyId())){
+                throw new CoolException("鍙傛暟涓虹┖锛歐eeklyId");
+//            } else if (Cools.isEmpty(param.getType())){
+//                throw new CoolException("鍙傛暟涓虹┖锛歍ype");
+//            } else if (Cools.isEmpty(param.getWeeklyType())){
+//                throw new CoolException("鍙傛暟涓虹┖锛歐eekly");
+            }
+            Date now = new Date();
+            Weekly weekly = weeklyService.selectById(param.getWeeklyId());
+            weekly.setUpdateBy(getUserId());
+            weekly.setUpdateTime(now);
+
+
+            List<Date> dateList = new ArrayList<>();//鑾峰彇鍛ㄤ竴涓庡懆鏃ユ棩鏈�
+            dateList = TimeCalculatorUtils.WeeklyMondayAndSundayNow(weekly.getStartTime());
+
+            List<Date> dates = TimeCalculatorUtils.WeeklyListDays(dateList);//鑾峰彇鍛ㄤ竴鍒板懆鏃ユ棩鏈�
+
+            try{
+                weeklyService.updateById(weekly);
+            } catch (Exception e) {
+                log.error("鏇存柊鍛ㄨ鍒掍富琛ㄥけ璐ワ紝寮傚父淇℃伅锛�"+e);
+                throw new CoolException("鏇存柊鍛ㄨ鍒掍富琛ㄥけ璐�");
+            }
+
+            List<CstmrUtilsParam> cstmrUtilsParamList = new ArrayList<>();
+            for (WeeklyDailyReality  weeklyDailyReality: param.getWeeklyDailyRealityList()){
+                Cstmr cstmr = null;
+                if (!Cools.isEmpty(weeklyDailyReality.getCstmrName())){
+                    cstmr = cstmrService.selectByName(getHostId(), weeklyDailyReality.getCstmrName());
+                    if(Cools.isEmpty(cstmr)){
+                        throw new CoolException("鏈煡璇㈠埌鐢叉柟鍗曚綅锛�");
+                    }else {
+                        weeklyDailyReality.setCstmrId(cstmr.getId());
+                    }
+                }
+                weeklyDailyReality.setHostId(getHostId());
+                weeklyDailyReality.setDeptId(getDeptId());               // 鎵�灞為儴闂�
+                weeklyDailyReality.setUserId(getUserId());               // 鎵�灞炰汉鍛�
+
+                weeklyDailyReality.setDirector(getUserId());               // 鎵�灞炰汉鍛�
+
+                weeklyDailyReality.setCreateBy(getUserId());
+                weeklyDailyReality.setCreateTime(now);
+                weeklyDailyReality.setUpdateBy(getUserId());
+                weeklyDailyReality.setUpdateTime(now);
+
+                weeklyDailyReality.setStatus(weekly.getStatus());
+
+                weeklyDailyReality.setDailyTime(dates.get(weeklyDailyReality.getWeeklyDay()-1));
+                weeklyDailyReality.setWeeklyId(weekly.getId());
+
+                try{
+                    weeklyDailyRealityService.insert(weeklyDailyReality);
+                } catch (Exception e){
+                    log.error("鏂板鏃ヨ鍒掑け璐�"+e);
+                    throw new CoolException("鏂板鏃ヨ鍒掑け璐�");
+                }
+
+            }
+
+        } catch (Exception e){
+            log.error("鏇存柊鍛ㄨ鍒掑紓甯革紝寮傚父淇℃伅锛�"+e);
+            throw new CoolException("鏇存柊鍛ㄨ鍒掑け璐�==>"+e);
+        }
+
+        return R.ok("鏇存柊鎴愬姛");
+    }
 }

--
Gitblit v1.9.1