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

---
 src/main/webapp/views/weekly/weekly.html                                   |    3 
 src/main/java/com/zy/crm/manager/entity/param/WeeklyDomainParam.java       |    4 
 src/main/webapp/static/js/weekly/weekly.js                                 |  300 +++++++++++++++++++++++++-
 src/main/java/com/zy/crm/manager/controller/WeeklyController.java          |  302 +++++++++++++++++++++++++++
 src/main/java/com/zy/crm/manager/controller/WeeklyCostTypesController.java |   14 
 src/main/java/com/zy/crm/manager/entity/WeeklyDailyReality.java            |   24 +
 6 files changed, 621 insertions(+), 26 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);
+    }
 }
diff --git a/src/main/java/com/zy/crm/manager/controller/WeeklyCostTypesController.java b/src/main/java/com/zy/crm/manager/controller/WeeklyCostTypesController.java
index 1ec71d1..45ba72a 100644
--- a/src/main/java/com/zy/crm/manager/controller/WeeklyCostTypesController.java
+++ b/src/main/java/com/zy/crm/manager/controller/WeeklyCostTypesController.java
@@ -6,10 +6,7 @@
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.core.common.DateUtils;
-import com.zy.crm.manager.entity.ReimburseCostTypes;
-import com.zy.crm.manager.entity.ReimburseOnlineDetl;
-import com.zy.crm.manager.entity.WeeklyCostTypes;
-import com.zy.crm.manager.entity.WeeklyDailyPlan;
+import com.zy.crm.manager.entity.*;
 import com.zy.crm.manager.service.WeeklyCostTypesService;
 import com.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
@@ -137,11 +134,18 @@
 
     @RequestMapping(value = "/weeklyCostTypes/covert/plan/{id}/auth")
     @ManagerAuth
-    public R covert(@PathVariable("id") Integer id) {
+    public R covertPlan(@PathVariable("id") Integer id) {
         WeeklyDailyPlan weeklyDailyPlan = new WeeklyDailyPlan(id);
         return R.ok().add(weeklyDailyPlan);
     }
 
+    @RequestMapping(value = "/weeklyCostTypes/covert/reality/{id}/auth")
+    @ManagerAuth
+    public R covertReality(@PathVariable("id") Integer id) {
+        WeeklyDailyReality weeklyDailyReality = new WeeklyDailyReality(id);
+        return R.ok().add(weeklyDailyReality);
+    }
+
     // xm-select 鎼滅储鍟嗗搧鍒楄〃
     @RequestMapping("/weeklyCostTypes/all/get/kv")
     @ManagerAuth
diff --git a/src/main/java/com/zy/crm/manager/entity/WeeklyDailyReality.java b/src/main/java/com/zy/crm/manager/entity/WeeklyDailyReality.java
index bfb4674..7d0b865 100644
--- a/src/main/java/com/zy/crm/manager/entity/WeeklyDailyReality.java
+++ b/src/main/java/com/zy/crm/manager/entity/WeeklyDailyReality.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.annotations.TableId;
 import com.baomidou.mybatisplus.enums.IdType;
 import com.baomidou.mybatisplus.annotations.TableField;
+import com.zy.crm.manager.service.WeeklyCostTypesService;
 import com.zy.crm.system.entity.*;
 import com.zy.crm.system.service.*;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -74,13 +75,13 @@
     private Long deptId;
 
     /**
-     * 鐘舵�� 3: 宸插叧闂�  2: 闇�澶勭悊  1: 杩涜涓�  0: 鏈紑濮�  
+     * 鐘舵�� 3: 宸插叧闂�  2: 闇�澶勭悊  1: 杩涜涓�  0: 鏈紑濮�
      */
     @ApiModelProperty(value= "鐘舵�� 3: 宸插叧闂�  2: 闇�澶勭悊  1: 杩涜涓�  0: 鏈紑濮�  ")
     private Integer status;
 
     /**
-     * 杩涘害 0: 榛樿  1: 寮�濮�  2: 缁勯暱寰呭  3: 缁勯暱瀹℃牳  4: 瑙勫垝寰呭  5: 瑙勫垝瀹℃牳  6: 瀹℃壒涓�  7: 瀹℃壒閫氳繃  
+     * 杩涘害 0: 榛樿  1: 寮�濮�  2: 缁勯暱寰呭  3: 缁勯暱瀹℃牳  4: 瑙勫垝寰呭  5: 瑙勫垝瀹℃牳  6: 瀹℃壒涓�  7: 瀹℃壒閫氳繃
      */
     @ApiModelProperty(value= "杩涘害 0: 榛樿  1: 寮�濮�  2: 缁勯暱寰呭  3: 缁勯暱瀹℃牳  4: 瑙勫垝寰呭  5: 瑙勫垝瀹℃牳  6: 瀹℃壒涓�  7: 瀹℃壒閫氳繃  ")
     private Integer settle;
@@ -175,7 +176,7 @@
     @ApiModelProperty(value= "鍛ㄦ姤ID")
     @TableId(value = "weekly_id", type = IdType.INPUT)
     @TableField("weekly_id")
-    private Integer weeklyId;
+    private Long weeklyId;
 
     /**
      * 鐢叉柟鍗曚綅ID
@@ -200,7 +201,11 @@
 
     public WeeklyDailyReality() {}
 
-    public WeeklyDailyReality(Date dailyTime,Long userId,Long hostId,Long deptId,Integer status,Integer settle,String settleMsg,String comment,Long createBy,Date createTime,Long updateBy,Date updateTime,String weeklyMatter,Long director,Integer settleSize,Integer settleCurrent,Integer weeklyId,Long cstmrId,Integer weeklyDay,String memo) {
+    public WeeklyDailyReality(Integer weeklyDay) {
+        this.weeklyDay = weeklyDay;
+    }
+
+    public WeeklyDailyReality(Date dailyTime,Long userId,Long hostId,Long deptId,Integer status,Integer settle,String settleMsg,String comment,Long createBy,Date createTime,Long updateBy,Date updateTime,String weeklyMatter,Long director,Integer settleSize,Integer settleCurrent,Long weeklyId,Long cstmrId,Integer weeklyDay,String memo) {
         this.dailyTime = dailyTime;
         this.userId = userId;
         this.hostId = hostId;
@@ -246,6 +251,17 @@
 //            null    // 澶囨敞
 //    );
 
+
+    public String getWeeklyDay$(){
+        if (null == this.weeklyDay){ return ""; }
+        WeeklyCostTypesService weeklyCostTypesService = SpringUtils.getBean(WeeklyCostTypesService.class);
+        WeeklyCostTypes weeklyCostTypes = weeklyCostTypesService.selectById(this.weeklyDay);
+        if (!Cools.isEmpty(weeklyCostTypes)){
+            return String.valueOf(weeklyCostTypes.getTypeName());
+        }
+        return null;
+    }
+
     public String getDailyTime$(){
         if (Cools.isEmpty(this.dailyTime)){
             return "";
diff --git a/src/main/java/com/zy/crm/manager/entity/param/WeeklyDomainParam.java b/src/main/java/com/zy/crm/manager/entity/param/WeeklyDomainParam.java
index 7bd1382..0e85f65 100644
--- a/src/main/java/com/zy/crm/manager/entity/param/WeeklyDomainParam.java
+++ b/src/main/java/com/zy/crm/manager/entity/param/WeeklyDomainParam.java
@@ -9,12 +9,14 @@
 @Data
 public class WeeklyDomainParam {
 
+    private Integer weeklyId;
+
     private Integer weeklyType;
 
     private Integer type;
 
     private List<WeeklyDailyPlan> weeklyDailyPlanList;
 
-    private List<WeeklyDailyReality> weeklyDailyRealities;
+    private List<WeeklyDailyReality> weeklyDailyRealityList;
 
 }
diff --git a/src/main/webapp/static/js/weekly/weekly.js b/src/main/webapp/static/js/weekly/weekly.js
index 3231054..afa0435 100644
--- a/src/main/webapp/static/js/weekly/weekly.js
+++ b/src/main/webapp/static/js/weekly/weekly.js
@@ -333,6 +333,9 @@
             case "edit":
                 showEditModel(data);
                 break;
+            case "editReality":
+                showEditModel2(data);
+                break;
             case "lookPlan":
                 var $a = $(obj.tr).find('a[lay-event="lookPlan"]');
                 var offset = $a.offset();
@@ -360,17 +363,17 @@
                             cols: [[
                                 {type: 'numbers'}
                                 ,{field: 'weeklyDay$', align: 'center',title: '鏄熸湡'}
-                                ,{field: 'workContent', title: '宸ヤ綔鍐呭', style: 'color: blue;font-weight: bold', edit:true}
-                                ,{field: 'workPurpose', title: '宸ヤ綔鐩殑', style: 'color: blue;font-weight: bold', edit:true}
-                                ,{field: 'comment', title: '璇勮', style: 'color: blue;font-weight: bold', edit:true}
-                                ,{field: 'weeklyMatter', title: '闇�鍗忓姪浜嬮」', style: 'color: blue;font-weight: bold', edit:true}
+                                ,{field: 'workContent', title: '宸ヤ綔鍐呭', edit:true}
+                                ,{field: 'workPurpose', title: '宸ヤ綔鐩殑', edit:true}
+                                ,{field: 'comment', title: '璇勮', edit:true}
+                                ,{field: 'weeklyMatter', title: '闇�鍗忓姪浜嬮」',  edit:true}
                                 // ,{field: 'dailyTime$', align: 'center',title: '鏃ユ姤鏃ユ湡'}
                                 // ,{field: 'settleMsg', align: 'center',title: '瀹℃牳杩涘害'}
                                 // ,{field: 'director', align: 'center',title: '璐熻矗浜�'}
                                 // ,{field: 'settleSize', align: 'center',title: '娴佺▼闀垮害'}
                                 // ,{field: 'settleCurrent', align: 'center',title: '褰撳墠杩涘害'}
-                                ,{field: 'cstmrId', align: 'center',title: '鐢叉柟鍗曚綅ID',  style: 'color: blue;font-weight: bold', templet: '#cstmrId'}//, templet: function () { return htmlCstme;}
-                                ,{field: 'memo', align: 'center',title: '澶囨敞',  style: 'color: blue;font-weight: bold', edit:true}
+                                ,{field: 'cstmrId', align: 'center',title: '鐢叉柟鍗曚綅ID',   templet: '#cstmrId'}//, templet: function () { return htmlCstme;}
+                                ,{field: 'memo', align: 'center',title: '澶囨敞',   edit:true}
                             ]],
                             request: {
                                 pageName: 'curr',
@@ -422,17 +425,17 @@
                             cols: [[
                                 {type: 'numbers'}
                                 ,{field: 'weeklyDay$', align: 'center',title: '鏄熸湡'}
-                                ,{field: 'workContent', title: '宸ヤ綔鍐呭', style: 'color: blue;font-weight: bold', edit:true}
-                                ,{field: 'workPurpose', title: '宸ヤ綔鐩殑', style: 'color: blue;font-weight: bold', edit:true}
-                                ,{field: 'comment', title: '璇勮', style: 'color: blue;font-weight: bold', edit:true}
-                                ,{field: 'weeklyMatter', title: '闇�鍗忓姪浜嬮」', style: 'color: blue;font-weight: bold', edit:true}
+                                ,{field: 'workContent', align: 'center', title: '宸ヤ綔鍐呭', edit:true}
+                                ,{field: 'workPurpose', title: '宸ヤ綔鐩殑', edit:true}
+                                ,{field: 'comment', title: '璇勮', edit:true}
+                                ,{field: 'weeklyMatter', title: '闇�鍗忓姪浜嬮」',  edit:true}
                                 // ,{field: 'dailyTime$', align: 'center',title: '鏃ユ姤鏃ユ湡'}
                                 // ,{field: 'settleMsg', align: 'center',title: '瀹℃牳杩涘害'}
                                 // ,{field: 'director', align: 'center',title: '璐熻矗浜�'}
                                 // ,{field: 'settleSize', align: 'center',title: '娴佺▼闀垮害'}
                                 // ,{field: 'settleCurrent', align: 'center',title: '褰撳墠杩涘害'}
-                                ,{field: 'cstmrId', align: 'center',title: '鐢叉柟鍗曚綅ID', style: 'color: blue;font-weight: bold', templet: '#cstmrId'}//, templet: function () { return htmlCstme;}
-                                ,{field: 'memo', align: 'center',title: '澶囨敞', width: 100, style: 'color: blue;font-weight: bold', edit:true}
+                                ,{field: 'cstmrId', align: 'center',title: '鐢叉柟鍗曚綅ID',   templet: '#cstmrId'}//, templet: function () { return htmlCstme;}
+                                ,{field: 'memo', align: 'center',title: '澶囨敞',   edit:true}
                             ]],
                             request: {
                                 pageName: 'curr',
@@ -506,7 +509,7 @@
                         headers: {'token': localStorage.getItem('token')},
                         data: JSON.stringify({
                             weeklyType: Number(data.field.weeklyType),
-                            orderId: data.field.orderId,
+                            weeklyId: data.field.id,
                             // type: Number(data.field.type),
                             type: Number(1),
                             weeklyDailyPlanList: nList
@@ -595,8 +598,8 @@
                                 method: 'POST',
                                 success: function (res) {
                                     if (res.code === 200) {
-                                        console.log("res111111111111")
-                                        console.log(res)
+                                        // console.log("res111111111111")
+                                        // console.log(res)
                                         var template = $('#cstmrId').html(); // 鑾峰彇妯℃澘鍐呭
                                         var compiledTemplate = Handlebars.compile(template); // 缂栬瘧妯℃澘
                                         var html = compiledTemplate(res.data); // 灏嗘暟鎹簲鐢ㄥ埌妯℃澘涓�
@@ -757,6 +760,273 @@
         });
     }
 
+    // 鏄剧ず琛ㄥ崟寮圭獥
+    function showEditModel2(expTpe) {
+        admin.open({
+            type: 1,
+            title: (expTpe ? '鍒涘缓' : '鍒涘缓') + '鏃ヨ绋�',
+            content: $('#editDialog').html(),
+            area: '2200px',
+            success: function (layero, dIndex) {
+                $(layero).children('.layui-layer-content').css('overflow', 'visible');
+                var isExpAdd = !expTpe;
+                if (expTpe){
+                    document.getElementById('weeklyDisplay').style.display = 'none';
+                }
+                // 鍥炴樉鏁版嵁
+                form.val('editForm', expTpe);
+                console.log(expTpe)
+                if (expTpe) {
+                    // $('#orderNo').attr("disabled", "disabled");
+                }
+                // 琛ㄥ崟鎻愪氦浜嬩欢
+                form.on('submit(weeklyEditSubmit)', function (data) {
+                    // 缁勮鏁版嵁
+                    if (xxDataList.length <= 0) {
+                        layer.tips('璇锋坊鍔犳姤閿�鏄庣粏', '#matAddBtnComment', {tips: [1, '#ff4c4c']});
+                        return false;
+                    }
+                    let nList = admin.util.deepClone(xxDataList);
+                    for (let xi = 0; xi < nList.length; xi++) {
+                        // if (nList[xi].anfme <= 0){
+                        //     layer.msg('鏄庣粏淇敼鏁伴噺涓嶅悎娉�', {icon: 2});
+                        //     return false;
+                        // }
+                    }
+                    layer.load(2);
+                    $.ajax({
+                        url: baseUrl+"/weekly/from/" + (isExpAdd?"add":"modify") + "/auth2",
+                        headers: {'token': localStorage.getItem('token')},
+                        data: JSON.stringify({
+                            weeklyType: Number(data.field.weeklyType),
+                            weeklyId: data.field.id,
+                            // type: Number(data.field.type),
+                            type: Number(1),
+                            weeklyDailyRealityList: nList
+                        }),
+                        contentType:'application/json;charset=UTF-8',
+                        method: 'POST',
+                        success: function (res) {
+                            layer.closeAll('loading');
+                            if (res.code === 200){
+                                layer.close(dIndex);
+                                $(".layui-laypage-btn")[0].click();
+                                layer.msg(res.msg, {icon: 1});
+                            } else if (res.code === 403){
+                                top.location.href = baseUrl+"/";
+                            }else {
+                                layer.msg(res.msg, {icon: 2});
+                            }
+                        }
+                    })
+                    return false;
+                });
+                // 鏄庣粏琛ㄦ牸
+                var xxDataList = [];
+                var tbOptions = {
+                    elem: '#formSSXMTable',
+                    headers: {token: localStorage.getItem('token')},
+                    data: xxDataList,
+                    page: true,
+                    height: '350px;',
+                    cellMinWidth: 100,
+                    cols: [[
+                        {type: 'numbers', title: '#'}
+                        ,{field: 'weeklyDay$', align: 'center',title: '鏄熸湡'}
+                        ,{field: 'workContent', title: '宸ヤ綔鍐呭', style: 'color: blue;font-weight: bold', edit:true}
+                        ,{field: 'workPurpose', title: '宸ヤ綔鐩殑', style: 'color: blue;font-weight: bold', edit:true}
+                        ,{field: 'comment', title: '璇勮', style: 'color: blue;font-weight: bold', edit:true}
+                        ,{field: 'weeklyMatter', title: '闇�鍗忓姪浜嬮」', style: 'color: blue;font-weight: bold', edit:true}
+                        // ,{field: 'dailyTime$', align: 'center',title: '鏃ユ姤鏃ユ湡'}
+                        // ,{field: 'settleMsg', align: 'center',title: '瀹℃牳杩涘害'}
+                        // ,{field: 'director', align: 'center',title: '璐熻矗浜�'}
+                        // ,{field: 'settleSize', align: 'center',title: '娴佺▼闀垮害'}
+                        // ,{field: 'settleCurrent', align: 'center',title: '褰撳墠杩涘害'}
+                        ,{field: 'cstmrId', align: 'center',title: '鐢叉柟鍗曚綅ID', style: 'color: blue;font-weight: bold', templet: '#cstmrId'}//, templet: function () { return htmlCstme;}
+                        ,{field: 'memo', align: 'center',title: '澶囨敞', width: 100, style: 'color: blue;font-weight: bold', edit:true}
+                        ,{align: 'center', title: '鎿嶄綔', toolbar: '#formSSXMTableBar', minWidth: 80, width: 80, fixed: 'right'}
+                    ]],
+                    parseData: function (res) {
+                        return {
+                            'code': res.code,
+                            'msg': res.msg,
+                            'count': res.data.total,
+                            'data': res.data.records
+                        }
+                    },
+                    done: function (res, curr, count) {
+                        $(".layui-table-cell").css('overflow', 'visible');//瑙e喅layui鏁版嵁琛ㄦ牸涓祵濂椾笅鎷夋鏄剧ず闂
+                        $(layero).find('.layui-table-view').css('margin', '0');
+                        var options = this;
+
+                        // 鑾峰彇褰撳墠琛屾暟鎹�
+                        table.getRowData = function(elem){
+                            var index = $(elem).closest('tr').data('index');
+                            return table.cache[options.id][index] || {};
+                        };
+
+                        $('.select-cstmr').on('change', function(){
+                            console.log("cstmrId")
+                            var value = this.value; // 鑾峰彇閫変腑椤� value
+                            var data = table.getRowData(this);
+                            xxDataList.forEach(res => {
+                                if (data.LAY_TABLE_INDEX === res.LAY_TABLE_INDEX){
+                                    console.log(res)
+                                    // console.log(data)
+                                    res.cstmrId = value;
+                                }
+                            })
+                        });
+                    },
+                    size: ''
+                };
+                if (!isExpAdd) {
+                    $.ajax({
+                        url: baseUrl+"/weekly/detl/all/auth2?weeklyId=" + expTpe.id,
+                        headers: {'token': localStorage.getItem('token')},
+                        method: 'GET',
+                        async: false,
+                        success: function (res) {
+                            if (res.code === 200){
+                                xxDataList = res.data;
+                                tbOptions.data = xxDataList;
+                            } else if (res.code === 403){
+                                top.location.href = baseUrl+"/";
+                            }else {
+                                layer.msg(res.msg, {icon: 2})
+                            }
+                        }
+                    })
+                }
+                var insTbSSXM = table.render(tbOptions);
+                // 宸ュ叿鏉$偣鍑讳簨浠�
+                table.on('tool(formSSXMTable)', function (obj) {
+                    var data = obj.data;
+                    var layEvent = obj.event;
+                    if (layEvent === 'edit') {
+                        showEditModel2(data);
+                    } else if (layEvent === 'del') {
+                        layer.confirm('纭畾瑕佸垹闄ゅ悧锛�', {
+                            shade: .1,
+                            skin: 'layui-layer-admin'
+                        }, function (i) {
+                            layer.close(i);
+                            for (var j = 0; j < xxDataList.length; j++) {
+                                if (xxDataList[j].matnr === data.matnr && xxDataList[j].batch === data.batch) {
+                                    xxDataList.splice(j, 1);
+                                    break;
+                                }
+                            }
+                            insTbSSXM.reload({data: xxDataList, page: {curr: 1}});
+                        });
+                    }
+                });
+                // 鏄庣粏鏁版嵁淇敼
+                table.on('edit(formSSXMTable)', function (obj) {
+                    let index = obj.tr.attr("data-index");
+                    let data = xxDataList[index];
+                    if (obj.field === 'anfme'){
+                        let vle = Number(obj.value);
+                        if (isNaN(vle)) {
+                            layer.msg("璇疯緭鍏ユ暟瀛�", {icon: 2});
+                            return false;
+                        } else {
+                            if (vle <= 0) {
+                                layer.msg("鏁伴噺蹇呴』澶т簬闆�", {icon: 2});
+                                return false;
+                            }
+                        }
+                    }
+                    data[obj.field] = obj.value;
+                    insTbSSXM.reload({data: xxDataList});
+                });
+
+                $('#matAddBtnComment').click(function () {
+                    showEditModel2();
+                });
+
+                // 鏄剧ず娣诲姞鏄庣粏琛ㄥ崟寮圭獥
+                function showEditModel2(exp) {
+                    admin.open({
+                        type: 1,
+                        offset: '150px',
+                        area: '680px',
+                        title: (exp ? '淇敼' : '娣诲姞') + '鏄庣粏',
+                        content: $('#matEditDialog').html(),
+                        success: function (layero, dIndex) {
+                            // 鍥炴樉鏁版嵁
+                            form.val('matEditForm', exp);
+                            // 琛ㄥ崟鎻愪氦浜嬩欢
+                            form.on('submit(matEditSubmit)', function (data) {
+                                let selectList = matXmSelect.getValue();
+                                console.log(selectList)
+                                for (let i = 0; i<selectList.length; i++) {
+                                    let item = selectList[i];
+                                    // 鏌ヨ鐗╂枡璇︽儏
+                                    $.ajax({
+                                        url: baseUrl+"/weeklyCostTypes/covert/reality/"+item.value+"/auth",
+                                        headers: {'token': localStorage.getItem('token')},
+                                        method: 'GET',
+                                        async: false,
+                                        success: function (res) {
+                                            if (res.code === 200){
+                                                var bige=true;
+
+                                                if (bige){
+                                                    // console.log("-------2.3-------")
+                                                    xxDataList.push(res.data);
+                                                    insTbSSXM.reload({data: xxDataList, page: {curr: 1}});
+                                                }
+                                            } else if (res.code === 403){
+                                                top.location.href = baseUrl+"/";
+                                            }else {
+                                                layer.msg(res.msg, {icon: 2})
+                                            }
+                                        }
+                                    })
+                                }
+                                layer.close(dIndex);
+                                return false;
+                            });
+                            // 娓叉煋鐗╂枡閫夋嫨
+                            var matXmSelect = xmSelect.render({
+                                el: '#weeklyCostTypes',
+                                style: {
+                                    width: '340px',
+                                },
+                                autoRow: true,
+                                toolbar: { show: true },
+                                filterable: true,
+                                remoteSearch: true,
+                                remoteMethod: function(val, cb, show){
+                                    $.ajax({
+                                        url: baseUrl+"/weeklyCostTypes/all/get/kv",
+                                        headers: {'token': localStorage.getItem('token')},
+                                        data: {
+                                            condition: val
+                                        },
+                                        method: 'POST',
+                                        success: function (res) {
+                                            if (res.code === 200){
+                                                cb(res.data)
+                                            } else {
+                                                cb([]);
+                                                layer.msg(res.msg, {icon: 2});
+                                            }
+                                        }
+                                    });
+                                }
+                            })
+                            // 寮圭獥涓嶅嚭鐜版粴鍔ㄦ潯
+                            $(layero).children('.layui-layer-content').css('overflow', 'visible');
+                            layui.form.render('select');
+                        }
+                    });
+                }
+            }
+        });
+    }
+
     function approval2(planId, plannerId, dIdx) {
         let loadIndex = layer.load(2);
         $.ajax({
diff --git a/src/main/webapp/views/weekly/weekly.html b/src/main/webapp/views/weekly/weekly.html
index 6b2d8d2..3d924f4 100644
--- a/src/main/webapp/views/weekly/weekly.html
+++ b/src/main/webapp/views/weekly/weekly.html
@@ -102,7 +102,8 @@
 <!--    <a class="layui-btn layui-btn-xs btn-edit" lay-event="approval2">鎻愪氦</a>-->
     {{# } }}
     <!--  <a class="layui-btn layui-btn-xs btn-edit" lay-event="approval">鎻愪氦</a>-->
-    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">缂栬緫</a>
+    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">璁″垝</a>
+    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="editReality">琛岀▼</a>
 <!--    <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">鍒犻櫎</a>-->
 </script>
 

--
Gitblit v1.9.1