From ea269db73631ff50e9d161f69b044b915cdac089 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期四, 28 三月 2024 16:52:11 +0800
Subject: [PATCH] #周计划

---
 src/main/java/com/zy/crm/manager/controller/WeeklyController.java |  302 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 302 insertions(+), 0 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 2e66b58..7ee351b 100644
--- a/src/main/java/com/zy/crm/manager/controller/WeeklyController.java
+++ b/src/main/java/com/zy/crm/manager/controller/WeeklyController.java
@@ -8,9 +8,11 @@
 import com.core.exception.CoolException;
 import com.zy.crm.manager.entity.Weekly;
 import com.zy.crm.manager.entity.WeeklyDailyPlan;
+import com.zy.crm.manager.entity.WeeklyDailyReality;
 import com.zy.crm.manager.entity.param.CstmrUtilsParam;
 import com.zy.crm.manager.entity.param.WeeklyDomainParam;
 import com.zy.crm.manager.service.WeeklyDailyPlanService;
+import com.zy.crm.manager.service.WeeklyDailyRealityService;
 import com.zy.crm.manager.service.WeeklyService;
 import com.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
@@ -34,6 +36,8 @@
     private WeeklyService weeklyService;
     @Autowired
     private WeeklyDailyPlanService weeklyDailyPlanService;
+    @Autowired
+    private WeeklyDailyRealityService weeklyDailyRealityService;
 
     @RequestMapping(value = "/weekly/{id}/auth")
     @ManagerAuth
@@ -252,10 +256,308 @@
         return R.ok("鍒涘缓鎴愬姛");
     }
 
+    @RequestMapping(value = "/weekly/from/add/auth2")
+    @ManagerAuth(memo = "鍛ㄨ鍒�/鏃ヨ鍒�/鏃ュ疄闄�")
+    @Transactional
+    public R formAdd2(@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.getWeeklyType())){
+                throw new CoolException("鍙傛暟涓虹┖锛歐eeklyDailyPlanList");
+            } 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 = new Weekly();
+            weekly.setHostId(getHostId());
+            weekly.setDeptId(getDeptId());               // 鎵�灞為儴闂�
+            weekly.setUserId(getUserId());               // 鎵�灞炰汉鍛�
+
+            weekly.setDirector(getUserId());               // 鎵�灞炰汉鍛�
+
+            weekly.setCreateBy(getUserId());
+            weekly.setCreateTime(now);
+            weekly.setUpdateBy(getUserId());
+            weekly.setUpdateTime(now);
+
+
+            List<Date> dateList = new ArrayList<>();//鑾峰彇鍛ㄤ竴涓庡懆鏃ユ棩鏈�
+            switch (param.getWeeklyType()) {
+                case 1:
+                    dateList = TimeCalculatorUtils.WeeklyMondayAndSundayFront(now);
+                    weekly.setStatus(2);
+                    break;
+                case 2:
+                    dateList = TimeCalculatorUtils.WeeklyMondayAndSundayNow(now);
+                    weekly.setStatus(1);
+                    break;
+                case 3:
+                    dateList = TimeCalculatorUtils.WeeklyMondayAndSundayAfter(now);
+                    weekly.setStatus(0);
+                    break;
+                default:
+                    log.error("璇烽�夋嫨鏃ユ湡锛氬弬鏁板紓甯革細Weekly="+param.getWeeklyType());
+                    throw new CoolException("璇烽�夋嫨鏃ユ湡");
+            }
+
+            Integer weeklyRepeatCount = weeklyService.selectUserStartAndEnd(dateList, getUserId());
+            if (Cools.isEmpty(weeklyRepeatCount) && weeklyRepeatCount!=0){
+                log.error("鍛ㄨ鍒掑凡瀛樺湪==銆嬪紑濮嬫棩鏈燂細"+dateList.get(0)+"缁撴潫鏃ユ湡锛�"+dateList.get(1)+"鍛樺伐锛�"+getUser().getNickname());
+                throw new CoolException("鍛ㄨ鍒掑凡瀛樺湪==銆嬪紑濮嬫棩鏈燂細"+dateList.get(0)+"缁撴潫鏃ユ湡锛�"+dateList.get(1)+"鍛樺伐锛�"+getUser().getNickname());
+            }
+
+//            List<CstmrUtilsParam> cstmrUtilsParamList = JSON.parseArray(weekly.getCstmrIdsPlan(), CstmrUtilsParam.class);
+
+
+            weekly.setStartTime(dateList.get(0));
+            weekly.setEndTime(dateList.get(1));
+            weekly.setWeeklyYear(TimeCalculatorUtils.timeYest(weekly.getStartTime()));
+            weekly.setWeeklyMonth(TimeCalculatorUtils.timeMonth(weekly.getStartTime()));
+            weekly.setWeeklyDay(TimeCalculatorUtils.timeDay(weekly.getStartTime()));
+            weekly.setWeeklyNowMonth(TimeCalculatorUtils.WeeklyNowMonthDay(weekly.getStartTime()));
+            weekly.setWeeklyDayMonth(weekly.getWeeklyMonth()+"鏈堢"+weekly.getWeeklyNowMonth()+"鍛�");
+
+            List<Date> dates = TimeCalculatorUtils.WeeklyListDays(dateList);//鑾峰彇鍛ㄤ竴鍒板懆鏃ユ棩鏈�
+
+            try{
+                weeklyService.insert(weekly);
+            } catch (Exception e) {
+                log.error("鏂板鍛ㄨ鍒掍富琛ㄥけ璐ワ紝寮傚父淇℃伅锛�"+e);
+                throw new CoolException("鏂板鍛ㄨ鍒掍富琛ㄥけ璐�");
+            }
+
+            List<CstmrUtilsParam> cstmrUtilsParamList = new ArrayList<>();
+            for (WeeklyDailyReality weeklyDailyReality : param.getWeeklyDailyRealityList()){
+
+                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("鍒涘缓鎴愬姛");
+    }
+
+
+    @RequestMapping(value = "/weekly/from/modify/auth")
+    @ManagerAuth(memo = "鍛ㄨ鍒�/鏃ヨ鍒�/鏃ュ疄闄�")
+    @Transactional
+    public R formAddModify(@RequestBody WeeklyDomainParam param){
+        try{
+            if (Cools.isEmpty(param)){
+                throw new CoolException("鍙傛暟涓虹┖锛歐eeklyDomainParam");
+            } else if (Cools.isEmpty(param.getWeeklyDailyPlanList()) || param.getWeeklyDailyPlanList().size()==0){
+                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())){
+                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<CstmrUtilsParam> cstmrUtilsParamList = JSON.parseArray(weekly.getCstmrIdsPlan(), CstmrUtilsParam.class);
+
+            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 (WeeklyDailyPlan  weeklyDailyPlan: param.getWeeklyDailyPlanList()){
+                WeeklyDailyPlan weeklyDailyPlan1 = new WeeklyDailyPlan();
+                if (!Cools.isEmpty(weeklyDailyPlan.getId())){
+                    Long weeklyDailyPlanId = weeklyDailyPlan.getId();
+                    weeklyDailyPlan1 = weeklyDailyPlanService.selectById(weeklyDailyPlan.getId());
+                    if (Cools.isEmpty(weeklyDailyPlan)){
+                        throw new CoolException("鏇存柊澶辫触锛歩d:"+weeklyDailyPlanId);
+                    }
+                    weeklyDailyPlan1.setComment(weeklyDailyPlan1.getComment()+";"+weeklyDailyPlan.getComment());
+                    weeklyDailyPlan1.setWorkContent(weeklyDailyPlan.getWorkContent());
+                    weeklyDailyPlan1.setWorkPurpose(weeklyDailyPlan.getWorkPurpose());
+                    weeklyDailyPlan1.setMemo(weeklyDailyPlan.getMemo());
+                    weeklyDailyPlan1.setUpdateBy(getUserId());
+                    weeklyDailyPlan1.setUpdateTime(now);
+                    weeklyDailyPlanService.updateById(weeklyDailyPlan1);
+
+                }else {
+                    weeklyDailyPlan.setHostId(getHostId());
+                    weeklyDailyPlan.setDeptId(getDeptId());               // 鎵�灞為儴闂�
+                    weeklyDailyPlan.setUserId(getUserId());               // 鎵�灞炰汉鍛�
+
+                    weeklyDailyPlan.setDirector(getUserId());               // 鎵�灞炰汉鍛�
+
+                    weeklyDailyPlan.setCreateBy(getUserId());
+                    weeklyDailyPlan.setCreateTime(now);
+                    weeklyDailyPlan.setUpdateBy(getUserId());
+                    weeklyDailyPlan.setUpdateTime(now);
+
+                    weeklyDailyPlan.setStatus(weekly.getStatus());
+
+                    weeklyDailyPlan.setDailyTime(dates.get(weeklyDailyPlan.getWeeklyDay()-1));
+                    weeklyDailyPlan.setWeeklyId(weekly.getId());
+
+                    try{
+                        weeklyDailyPlanService.insert(weeklyDailyPlan);
+                    } catch (Exception e){
+                        log.error("鏂板鏃ヨ鍒掑け璐�"+e);
+                        throw new CoolException("鏂板鏃ヨ鍒掑け璐�");
+                    }
+                }
+
+            }
+
+        } catch (Exception e){
+            log.error("鏇存柊鍛ㄨ鍒掑紓甯革紝寮傚父淇℃伅锛�"+e);
+            throw new CoolException("鏇存柊鍛ㄨ鍒掑け璐�==>"+e);
+        }
+
+        return R.ok("鏇存柊鎴愬姛");
+    }
+
+    @RequestMapping(value = "/weekly/from/modify/auth2")
+    @ManagerAuth(memo = "鍛ㄨ鍒�/鏃ヨ鍒�/鏃ュ疄闄�")
+    @Transactional
+    public R formAddModify2(@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.getWeeklyType())){
+                throw new CoolException("鍙傛暟涓虹┖锛歐eeklyDailyPlanList");
+            } 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<CstmrUtilsParam> cstmrUtilsParamList = JSON.parseArray(weekly.getCstmrIdsPlan(), CstmrUtilsParam.class);
+
+            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()){
+                WeeklyDailyReality weeklyDailyReality1 = new WeeklyDailyReality();
+                if (!Cools.isEmpty(weeklyDailyReality.getId())){
+                    Long weeklyDailyPlanId = weeklyDailyReality.getId();
+                    weeklyDailyReality1 = weeklyDailyRealityService.selectById(weeklyDailyReality.getId());
+                    if (Cools.isEmpty(weeklyDailyReality)){
+                        throw new CoolException("鏇存柊澶辫触锛歩d:"+weeklyDailyPlanId);
+                    }
+                    weeklyDailyReality1.setComment(weeklyDailyReality1.getComment()+";"+weeklyDailyReality.getComment());
+                    weeklyDailyReality1.setWorkContent(weeklyDailyReality.getWorkContent());
+                    weeklyDailyReality1.setWorkPurpose(weeklyDailyReality.getWorkPurpose());
+                    weeklyDailyReality1.setMemo(weeklyDailyReality.getMemo());
+                    weeklyDailyReality1.setUpdateBy(getUserId());
+                    weeklyDailyReality1.setUpdateTime(now);
+                    weeklyDailyRealityService.updateById(weeklyDailyReality1);
+
+                }else {
+                    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("鏇存柊鎴愬姛");
+    }
+
     @RequestMapping(value = "/weekly/detl/all/auth")
     @Transactional
     public R head(@RequestParam Integer weeklyId){
         List<WeeklyDailyPlan> weeklyDailyPlans = weeklyDailyPlanService.selectList(new EntityWrapper<WeeklyDailyPlan>().eq("weekly_id", weeklyId));
         return R.ok().add(weeklyDailyPlans);
     }
+
+    @RequestMapping(value = "/weekly/detl/all/auth2")
+    @Transactional
+    public R head2(@RequestParam Integer weeklyId){
+        List<WeeklyDailyReality> weeklyDailyRealities = weeklyDailyRealityService.selectList(new EntityWrapper<WeeklyDailyReality>().eq("weekly_id", weeklyId));
+        return R.ok().add(weeklyDailyRealities);
+    }
 }

--
Gitblit v1.9.1