Lijy 1 month ago
parent
commit
56ae8dff22
23 changed files with 750 additions and 15 deletions
  1. 1 1
      fhKeeper/formulahousekeeper/customerBuler-crm/build.bat
  2. 7 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/AIQuestionController.java
  3. 6 4
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/TaskController.java
  4. 4 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/BusReportStoreMapper.java
  5. 2 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/AIQuestionService.java
  6. 18 1
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/AIQuestionServiceImpl.java
  7. 490 0
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java
  8. 1 1
      fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/task/TimingTask.java
  9. 1 1
      fhKeeper/formulahousekeeper/management-crm/src/main/resources/application.yml
  10. 17 0
      fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/BusReportStoreMapper.xml
  11. 1 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/constant/Constant.java
  12. 3 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java
  13. 21 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectLeaderController.java
  14. 3 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java
  15. 57 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectLeader.java
  16. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectLeaderMapper.java
  17. 16 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectLeaderService.java
  18. 2 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java
  19. 20 0
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectLeaderServiceImpl.java
  20. 41 2
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java
  21. 5 1
      fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java
  22. 1 1
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml
  23. 17 0
      fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectLeaderMapper.xml

+ 1 - 1
fhKeeper/formulahousekeeper/customerBuler-crm/build.bat

@@ -1 +1 @@
-npm run build
+npm run buildNoTs

+ 7 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/AIQuestionController.java

@@ -48,4 +48,11 @@ public class AIQuestionController {
         return msg;
         return msg;
     }
     }
 
 
+    @PostMapping("/getCusReportForm")
+    public HttpRespMsg getCusReportForm(HttpServletRequest request){
+        HttpRespMsg msg = new HttpRespMsg();
+        msg = aiQuestionService.getCusReportForm(request);
+        return msg;
+    }
+
 }
 }

+ 6 - 4
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/controller/TaskController.java

@@ -374,10 +374,12 @@ public class TaskController {
                         .setTime(new Date()).setChecked(0).setPath("/tasks");
                         .setTime(new Date()).setChecked(0).setPath("/tasks");
                 informationArrayList.add(information);
                 informationArrayList.add(information);
                 User user = userMapper.selectById(userId);
                 User user = userMapper.selectById(userId);
-                WxCorpInfo corpinfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
-                if (corpinfo!=null&&corpinfo.getSaasSyncContact()==1) {
-                    wxCorpInfoService.sendWXCorpMsg(corpinfo, user.getCorpwxUserid(), msg, null, WxCorpInfoServiceImpl.TEXT_CARD_MSG_TASK);
-                    log.info("给{}发送信息:{}",user.getCorpwxUserid(),msg);
+                if (user!=null) {
+                    WxCorpInfo corpinfo = wxCorpInfoMapper.selectOne(new QueryWrapper<WxCorpInfo>().eq("company_id", user.getCompanyId()));
+                    if (corpinfo != null && corpinfo.getSaasSyncContact() == 1) {
+                        wxCorpInfoService.sendWXCorpMsg(corpinfo, user.getCorpwxUserid(), msg, null, WxCorpInfoServiceImpl.TEXT_CARD_MSG_TASK);
+                        log.info("给{}发送信息:{}", user.getCorpwxUserid(), msg);
+                    }
                 }
                 }
             }
             }
             informationService.saveBatch(informationArrayList);
             informationService.saveBatch(informationArrayList);

+ 4 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/mapper/BusReportStoreMapper.java

@@ -6,6 +6,10 @@ import com.management.platform.entity.BusReportStore;
 import com.management.platform.entity.bo.FormStorePageBO;
 import com.management.platform.entity.bo.FormStorePageBO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
+import java.util.List;
+
 public interface BusReportStoreMapper extends BaseMapper<BusReportStore> {
 public interface BusReportStoreMapper extends BaseMapper<BusReportStore> {
     IPage<BusReportStore> getPrivilegedFormStore(IPage<BusReportStore> page, @Param("queryBO") FormStorePageBO queryBO);
     IPage<BusReportStore> getPrivilegedFormStore(IPage<BusReportStore> page, @Param("queryBO") FormStorePageBO queryBO);
+
+    List<BusReportStore> getCusReportForm(@Param("queryBO") FormStorePageBO queryBO);
 }
 }

+ 2 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/AIQuestionService.java

@@ -16,4 +16,6 @@ public interface AIQuestionService extends IService<AIQuestion> {
     HttpRespMsg getLatestQuestionList(HttpServletRequest request);
     HttpRespMsg getLatestQuestionList(HttpServletRequest request);
 
 
     HttpRespMsg getHisQuestion(HttpServletRequest request);
     HttpRespMsg getHisQuestion(HttpServletRequest request);
+
+    HttpRespMsg getCusReportForm(HttpServletRequest request);
 }
 }

+ 18 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/AIQuestionServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.management.platform.entity.*;
 import com.management.platform.entity.*;
+import com.management.platform.entity.bo.FormStorePageBO;
 import com.management.platform.entity.bo.QuestionBO;
 import com.management.platform.entity.bo.QuestionBO;
 import com.management.platform.mapper.*;
 import com.management.platform.mapper.*;
 import com.management.platform.service.AIQuestionService;
 import com.management.platform.service.AIQuestionService;
@@ -82,6 +83,9 @@ public class AIQuestionServiceImpl extends ServiceImpl<AIQuestionMapper, AIQuest
     @Resource
     @Resource
     private CusTableColumnService cusTableColumnService;
     private CusTableColumnService cusTableColumnService;
 
 
+    @Resource
+    private BusReportStoreMapper busReportStoreMapper;
+
     @Resource
     @Resource
     private DataSource dataSource;
     private DataSource dataSource;
 
 
@@ -497,7 +501,7 @@ public class AIQuestionServiceImpl extends ServiceImpl<AIQuestionMapper, AIQuest
         if(null != aiQuestion){
         if(null != aiQuestion){
             List<AIQuestionDetail> aiQuestionDetails = aiQuestionDetailMapper.selectList(new LambdaQueryWrapper<AIQuestionDetail>()
             List<AIQuestionDetail> aiQuestionDetails = aiQuestionDetailMapper.selectList(new LambdaQueryWrapper<AIQuestionDetail>()
                     .select(AIQuestionDetail::getQuestionId, AIQuestionDetail::getSeq
                     .select(AIQuestionDetail::getQuestionId, AIQuestionDetail::getSeq
-                            , AIQuestionDetail::getType, AIQuestionDetail::getContent)
+                            , AIQuestionDetail::getType, AIQuestionDetail::getContent, AIQuestionDetail::getCreateTime)
                     .eq(AIQuestionDetail::getQuestionId, aiQuestion.getQuestionId())
                     .eq(AIQuestionDetail::getQuestionId, aiQuestion.getQuestionId())
                     .orderByAsc(AIQuestionDetail::getSeq)
                     .orderByAsc(AIQuestionDetail::getSeq)
             );
             );
@@ -522,6 +526,19 @@ public class AIQuestionServiceImpl extends ServiceImpl<AIQuestionMapper, AIQuest
         return httpRespMsg;
         return httpRespMsg;
     }
     }
 
 
+    @Override
+    public HttpRespMsg getCusReportForm(HttpServletRequest request) {
+        HttpRespMsg msg = new HttpRespMsg();
+        User user = userMapper.selectById(request.getHeader("token"));
+        FormStorePageBO queryBO = new FormStorePageBO();
+        queryBO.setUserId(user.getId());
+        queryBO.setCompanyId(user.getCompanyId());
+        queryBO.setDepartmentId(user.getDepartmentId());
+        List<BusReportStore> list = busReportStoreMapper.getCusReportForm(queryBO);
+        msg.setData(list);
+        return msg;
+    }
+
     public static List<Map<String, Object>> convertListWithAlias(ResultSet rs) {
     public static List<Map<String, Object>> convertListWithAlias(ResultSet rs) {
         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
         try {
         try {

+ 490 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/service/impl/TaskServiceImpl.java

@@ -330,6 +330,100 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
             informationService.saveBatch(informationArrayList);
             informationService.saveBatch(informationArrayList);
 
 
         }
         }
+        else {
+            if (task.getStartDate()!=null) {
+                if (task.getIsRepeat() != null && task.getIsRepeat() == 1) {
+                    ArrayList<TaskRemind> taskRemindList = new ArrayList<>();
+                    LocalDateTime startDate = task.getStartDate();
+                    Integer repeatEndCount=0;//重复几次
+                    LocalDate repeatEndDate=null;//重复到某个日期
+                    //repeatType  重复类型 :每天:0、每周:1、每月:2、自定义周期:3、自定义日期:4
+                    if (task.getRepeatType() != null && task.getRepeatType() <= 3) {
+                        Integer repeatType = task.getRepeatType();
+                        Integer repeatDesignSameday = task.getRepeatDesignSameday();
+                        //重复结束在几次之后
+                        if (task.getRepeatEndCount()!=null&&task.getRepeatEndCount()>0) {
+                            repeatEndCount = task.getRepeatEndCount();
+                        } else if (task.getRepeatEndDate()!=null) {
+                            repeatEndDate=task.getRepeatEndDate();
+                        }
+
+                        if (repeatEndCount!=null) {
+                            for (int i = 1; i <= repeatEndCount; i++) {
+                                LocalDateTime repeatDate=null;
+                                TaskRemind taskRemind = new TaskRemind();
+                                taskRemind.setTaskId(task.getId());
+                                taskRemind.setTaskName(task.getTaskName());
+                                taskRemind.setExecutorId(null);
+                                taskRemind.setExecutorName(null);
+                                taskRemind.setWxOpenid(null);
+                                taskRemind.setCorpwxUserid(null);
+                                if (repeatType==0) {
+                                    repeatDate = startDate.plusDays(i);
+                                } else if (repeatType==1) {
+                                    repeatDate = startDate.plusWeeks(i);
+                                } else if (repeatType==2) {
+                                    repeatDate = startDate.plusMonths(i);
+                                } else if (repeatType==3&&repeatDesignSameday!=null) {
+                                    repeatDate = startDate.plusDays((long) i *repeatDesignSameday);
+                                }
+                                taskRemind.setRemindDate(repeatDate);
+                                taskRemind.setDept(null);
+                                taskRemindList.add(taskRemind);
+                            }
+                        }
+                        if (repeatEndDate!=null) {
+                            LocalDateTime repeatDate=startDate;
+                            while (repeatDate.toLocalDate().isBefore(repeatEndDate)){
+                                TaskRemind taskRemind = new TaskRemind();
+                                taskRemind.setTaskId(task.getId());
+                                taskRemind.setTaskName(task.getTaskName());
+                                taskRemind.setExecutorId(null);
+                                taskRemind.setExecutorName(null);
+                                taskRemind.setWxOpenid(null);
+                                taskRemind.setCorpwxUserid(null);
+                                if (repeatType==0) {
+                                    repeatDate = repeatDate.plusDays(1L);
+                                } else if (repeatType==1) {
+                                    repeatDate = repeatDate.plusWeeks(1L);
+                                } else if (repeatType==2) {
+                                    repeatDate = repeatDate.plusMonths(1L);
+                                } else if (repeatType==3&&repeatDesignSameday!=null) {
+                                    repeatDate = repeatDate.plusDays((long) repeatDesignSameday);
+                                }
+                                taskRemind.setRemindDate(repeatDate);
+                                taskRemind.setDept(null);
+                                taskRemindList.add(taskRemind);
+                            }
+                        }
+                    }
+                    else if (task.getRepeatType() != null && task.getRepeatType() ==4) {
+
+                        String repeatDesignDay = task.getRepeatDesignDay();
+                        if (StringUtils.isNotEmpty(repeatDesignDay)) {
+                            String[] strings = repeatDesignDay.split(",");
+                            List<String> list = Arrays.asList(strings);
+                            for (String s : list) {
+                                LocalDateTime repeatDate=null;
+                                TaskRemind taskRemind = new TaskRemind();
+                                taskRemind.setTaskId(task.getId());
+                                taskRemind.setTaskName(task.getTaskName());
+                                taskRemind.setExecutorId(null);
+                                taskRemind.setExecutorName(null);
+                                taskRemind.setWxOpenid(null);
+                                taskRemind.setCorpwxUserid(null);
+                                repeatDate=startDate.plusDays(Integer.parseInt(s));
+                                taskRemind.setRemindDate(repeatDate);
+                                taskRemind.setDept(null);
+                                taskRemindList.add(taskRemind);
+                            }
+                        }
+
+                    }
+                    taskRemindService.saveBatch(taskRemindList);
+                }
+            }
+        }
 
 
 
 
 
 
@@ -509,6 +603,7 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
         lwq.eq(TaskExecutor::getTaskId,taskDto.getId());
         lwq.eq(TaskExecutor::getTaskId,taskDto.getId());
         taskExecutorMapper.delete(lwq);
         taskExecutorMapper.delete(lwq);
 
 
+        taskRemindService.remove(new QueryWrapper<TaskRemind>().eq("task_id",taskDto.getId()));
         if (StringUtils.isNotEmpty(taskDto.getExecutorId())){
         if (StringUtils.isNotEmpty(taskDto.getExecutorId())){
             String[] executorIds = taskDto.getExecutorId().split(",");
             String[] executorIds = taskDto.getExecutorId().split(",");
             for (String executorId : executorIds) {
             for (String executorId : executorIds) {
@@ -519,9 +614,195 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
                         .setExecutorName(selectedUser.getName())
                         .setExecutorName(selectedUser.getName())
                         .setCompanyId(user.getCompanyId());
                         .setCompanyId(user.getCompanyId());
                 taskExecutorMapper.insert(taskExecutor);
                 taskExecutorMapper.insert(taskExecutor);
+                if (task.getStartDate()!=null) {
+                    if (task.getIsRepeat() != null && task.getIsRepeat() == 1) {
+                        ArrayList<TaskRemind> taskRemindList = new ArrayList<>();
+                        LocalDateTime startDate = task.getStartDate();
+                        Integer repeatEndCount=0;//重复几次
+                        LocalDate repeatEndDate=null;//重复到某个日期
+                        //repeatType  重复类型 :每天:0、每周:1、每月:2、自定义周期:3、自定义日期:4
+                        if (task.getRepeatType() != null && task.getRepeatType() <= 3) {
+                            Integer repeatType = task.getRepeatType();
+                            Integer repeatDesignSameday = task.getRepeatDesignSameday();
+                            //重复结束在几次之后
+                            if (task.getRepeatEndCount()!=null&&task.getRepeatEndCount()>0) {
+                                repeatEndCount = task.getRepeatEndCount();
+                            } else if (task.getRepeatEndDate()!=null) {
+                                repeatEndDate=task.getRepeatEndDate();
+                            }
+
+                            if (repeatEndCount!=null) {
+                                for (int i = 1; i <= repeatEndCount; i++) {
+                                    LocalDateTime repeatDate=null;
+                                    TaskRemind taskRemind = new TaskRemind();
+                                    taskRemind.setTaskId(task.getId());
+                                    taskRemind.setTaskName(task.getTaskName());
+                                    taskRemind.setExecutorId(executorId);
+                                    taskRemind.setExecutorName(selectedUser.getName());
+                                    taskRemind.setWxOpenid(selectedUser.getWxOpenid());
+                                    taskRemind.setCorpwxUserid(selectedUser.getCorpwxUserid());
+                                    if (repeatType==0) {
+                                        repeatDate = startDate.plusDays(i);
+                                    } else if (repeatType==1) {
+                                        repeatDate = startDate.plusWeeks(i);
+                                    } else if (repeatType==2) {
+                                        repeatDate = startDate.plusMonths(i);
+                                    } else if (repeatType==3&&repeatDesignSameday!=null) {
+                                        repeatDate = startDate.plusDays((long) i *repeatDesignSameday);
+                                    }
+                                    taskRemind.setRemindDate(repeatDate);
+                                    taskRemind.setDept(selectedUser.getDepartmentId());
+                                    taskRemindList.add(taskRemind);
+                                }
+                            }
+                            if (repeatEndDate!=null) {
+                                LocalDateTime repeatDate=startDate;
+                                while (repeatDate.toLocalDate().isBefore(repeatEndDate)){
+                                    TaskRemind taskRemind = new TaskRemind();
+                                    taskRemind.setTaskId(task.getId());
+                                    taskRemind.setTaskName(task.getTaskName());
+                                    taskRemind.setExecutorId(executorId);
+                                    taskRemind.setExecutorName(selectedUser.getName());
+                                    taskRemind.setWxOpenid(selectedUser.getWxOpenid());
+                                    taskRemind.setCorpwxUserid(selectedUser.getCorpwxUserid());
+                                    if (repeatType==0) {
+                                        repeatDate = repeatDate.plusDays(1L);
+                                    } else if (repeatType==1) {
+                                        repeatDate = repeatDate.plusWeeks(1L);
+                                    } else if (repeatType==2) {
+                                        repeatDate = repeatDate.plusMonths(1L);
+                                    } else if (repeatType==3&&repeatDesignSameday!=null) {
+                                        repeatDate = repeatDate.plusDays((long) repeatDesignSameday);
+                                    }
+                                    taskRemind.setRemindDate(repeatDate);
+                                    taskRemind.setDept(selectedUser.getDepartmentId());
+                                    taskRemindList.add(taskRemind);
+                                }
+                            }
+                        }
+                        else if (task.getRepeatType() != null && task.getRepeatType() ==4) {
+
+                            String repeatDesignDay = task.getRepeatDesignDay();
+                            if (StringUtils.isNotEmpty(repeatDesignDay)) {
+                                String[] strings = repeatDesignDay.split(",");
+                                List<String> list = Arrays.asList(strings);
+                                for (String s : list) {
+                                    LocalDateTime repeatDate=null;
+                                    TaskRemind taskRemind = new TaskRemind();
+                                    taskRemind.setTaskId(task.getId());
+                                    taskRemind.setTaskName(task.getTaskName());
+                                    taskRemind.setExecutorId(executorId);
+                                    taskRemind.setExecutorName(selectedUser.getName());
+                                    taskRemind.setWxOpenid(selectedUser.getWxOpenid());
+                                    taskRemind.setCorpwxUserid(selectedUser.getCorpwxUserid());
+                                    repeatDate=startDate.plusDays(Integer.parseInt(s));
+                                    taskRemind.setRemindDate(repeatDate);
+                                    taskRemind.setDept(selectedUser.getDepartmentId());
+                                    taskRemindList.add(taskRemind);
+                                }
+                            }
+
+                        }
+
+                        taskRemindService.saveBatch(taskRemindList);
+                    }
+                }
             }
             }
         }
         }
+        else {
+            if (task.getStartDate()!=null) {
+                if (task.getIsRepeat() != null && task.getIsRepeat() == 1) {
+                    ArrayList<TaskRemind> taskRemindList = new ArrayList<>();
+                    LocalDateTime startDate = task.getStartDate();
+                    Integer repeatEndCount=0;//重复几次
+                    LocalDate repeatEndDate=null;//重复到某个日期
+                    //repeatType  重复类型 :每天:0、每周:1、每月:2、自定义周期:3、自定义日期:4
+                    if (task.getRepeatType() != null && task.getRepeatType() <= 3) {
+                        Integer repeatType = task.getRepeatType();
+                        Integer repeatDesignSameday = task.getRepeatDesignSameday();
+                        //重复结束在几次之后
+                        if (task.getRepeatEndCount()!=null&&task.getRepeatEndCount()>0) {
+                            repeatEndCount = task.getRepeatEndCount();
+                        } else if (task.getRepeatEndDate()!=null) {
+                            repeatEndDate=task.getRepeatEndDate();
+                        }
+
+                        if (repeatEndCount!=null) {
+                            for (int i = 1; i <= repeatEndCount; i++) {
+                                LocalDateTime repeatDate=null;
+                                TaskRemind taskRemind = new TaskRemind();
+                                taskRemind.setTaskId(task.getId());
+                                taskRemind.setTaskName(task.getTaskName());
+                                taskRemind.setExecutorId(null);
+                                taskRemind.setExecutorName(null);
+                                taskRemind.setWxOpenid(null);
+                                taskRemind.setCorpwxUserid(null);
+                                if (repeatType==0) {
+                                    repeatDate = startDate.plusDays(i);
+                                } else if (repeatType==1) {
+                                    repeatDate = startDate.plusWeeks(i);
+                                } else if (repeatType==2) {
+                                    repeatDate = startDate.plusMonths(i);
+                                } else if (repeatType==3&&repeatDesignSameday!=null) {
+                                    repeatDate = startDate.plusDays((long) i *repeatDesignSameday);
+                                }
+                                taskRemind.setRemindDate(repeatDate);
+                                taskRemind.setDept(null);
+                                taskRemindList.add(taskRemind);
+                            }
+                        }
+                        if (repeatEndDate!=null) {
+                            LocalDateTime repeatDate=startDate;
+                            while (repeatDate.toLocalDate().isBefore(repeatEndDate)){
+                                TaskRemind taskRemind = new TaskRemind();
+                                taskRemind.setTaskId(task.getId());
+                                taskRemind.setTaskName(task.getTaskName());
+                                taskRemind.setExecutorId(null);
+                                taskRemind.setExecutorName(null);
+                                taskRemind.setWxOpenid(null);
+                                taskRemind.setCorpwxUserid(null);
+                                if (repeatType==0) {
+                                    repeatDate = repeatDate.plusDays(1L);
+                                } else if (repeatType==1) {
+                                    repeatDate = repeatDate.plusWeeks(1L);
+                                } else if (repeatType==2) {
+                                    repeatDate = repeatDate.plusMonths(1L);
+                                } else if (repeatType==3&&repeatDesignSameday!=null) {
+                                    repeatDate = repeatDate.plusDays((long) repeatDesignSameday);
+                                }
+                                taskRemind.setRemindDate(repeatDate);
+                                taskRemind.setDept(null);
+                                taskRemindList.add(taskRemind);
+                            }
+                        }
+                    }
+                    else if (task.getRepeatType() != null && task.getRepeatType() ==4) {
+
+                        String repeatDesignDay = task.getRepeatDesignDay();
+                        if (StringUtils.isNotEmpty(repeatDesignDay)) {
+                            String[] strings = repeatDesignDay.split(",");
+                            List<String> list = Arrays.asList(strings);
+                            for (String s : list) {
+                                LocalDateTime repeatDate=null;
+                                TaskRemind taskRemind = new TaskRemind();
+                                taskRemind.setTaskId(task.getId());
+                                taskRemind.setTaskName(task.getTaskName());
+                                taskRemind.setExecutorId(null);
+                                taskRemind.setExecutorName(null);
+                                taskRemind.setWxOpenid(null);
+                                taskRemind.setCorpwxUserid(null);
+                                repeatDate=startDate.plusDays(Integer.parseInt(s));
+                                taskRemind.setRemindDate(repeatDate);
+                                taskRemind.setDept(null);
+                                taskRemindList.add(taskRemind);
+                            }
+                        }
 
 
+                    }
+                    taskRemindService.saveBatch(taskRemindList);
+                }
+            }
+        }
         //添加任务编译记录
         //添加任务编译记录
         TaskLog taskLog = new TaskLog();
         TaskLog taskLog = new TaskLog();
         taskLog.setTaskId(task.getId());
         taskLog.setTaskId(task.getId());
@@ -1629,6 +1910,215 @@ public class TaskServiceImpl extends ServiceImpl<TaskMapper, Task> implements Ta
             }
             }
             //重启后 状态直接默认为 进行中
             //重启后 状态直接默认为 进行中
             taskDto.setStatus(1);
             taskDto.setStatus(1);
+
+            taskRemindService.remove(new QueryWrapper<TaskRemind>().eq("task_id",taskDto.getId()));
+            Task task = taskMapper.selectById(taskDto.getId());
+            task.setStartDate(taskDto.getStartDate());
+            task.setEndDate(taskDto.getEndDate());
+            if (StringUtils.isNotEmpty(task.getExecutorId())){
+                String[] executorIds = task.getExecutorId().split(",");
+                for (String executorId : executorIds) {
+                    TaskExecutor taskExecutor = new TaskExecutor();
+                    User selectedUser = userMapper.selectById(executorId);
+                    taskExecutor.setExecutorId(executorId)
+                            .setTaskId(task.getId())
+                            .setExecutorName(selectedUser.getName())
+                            .setCompanyId(user.getCompanyId());
+                    taskExecutorMapper.insert(taskExecutor);
+                    if (task.getStartDate()!=null) {
+                        if (task.getIsRepeat() != null && task.getIsRepeat() == 1) {
+                            ArrayList<TaskRemind> taskRemindList = new ArrayList<>();
+                            LocalDateTime startDate = task.getStartDate();
+                            Integer repeatEndCount=0;//重复几次
+                            LocalDate repeatEndDate=null;//重复到某个日期
+                            //repeatType  重复类型 :每天:0、每周:1、每月:2、自定义周期:3、自定义日期:4
+                            if (task.getRepeatType() != null && task.getRepeatType() <= 3) {
+                                Integer repeatType = task.getRepeatType();
+                                Integer repeatDesignSameday = task.getRepeatDesignSameday();
+                                //重复结束在几次之后
+                                if (task.getRepeatEndCount()!=null&&task.getRepeatEndCount()>0) {
+                                    repeatEndCount = task.getRepeatEndCount();
+                                } else if (task.getRepeatEndDate()!=null) {
+                                    repeatEndDate=task.getRepeatEndDate();
+                                }
+
+                                if (repeatEndCount!=null) {
+                                    for (int i = 1; i <= repeatEndCount; i++) {
+                                        LocalDateTime repeatDate=null;
+                                        TaskRemind taskRemind = new TaskRemind();
+                                        taskRemind.setTaskId(task.getId());
+                                        taskRemind.setTaskName(task.getTaskName());
+                                        taskRemind.setExecutorId(executorId);
+                                        taskRemind.setExecutorName(selectedUser.getName());
+                                        taskRemind.setWxOpenid(selectedUser.getWxOpenid());
+                                        taskRemind.setCorpwxUserid(selectedUser.getCorpwxUserid());
+                                        if (repeatType==0) {
+                                            repeatDate = startDate.plusDays(i);
+                                        } else if (repeatType==1) {
+                                            repeatDate = startDate.plusWeeks(i);
+                                        } else if (repeatType==2) {
+                                            repeatDate = startDate.plusMonths(i);
+                                        } else if (repeatType==3&&repeatDesignSameday!=null) {
+                                            repeatDate = startDate.plusDays((long) i *repeatDesignSameday);
+                                        }
+                                        taskRemind.setRemindDate(repeatDate);
+                                        taskRemind.setDept(selectedUser.getDepartmentId());
+                                        taskRemindList.add(taskRemind);
+                                    }
+                                }
+                                if (repeatEndDate!=null) {
+                                    LocalDateTime repeatDate=startDate;
+                                    while (repeatDate.toLocalDate().isBefore(repeatEndDate)){
+                                        TaskRemind taskRemind = new TaskRemind();
+                                        taskRemind.setTaskId(task.getId());
+                                        taskRemind.setTaskName(task.getTaskName());
+                                        taskRemind.setExecutorId(executorId);
+                                        taskRemind.setExecutorName(selectedUser.getName());
+                                        taskRemind.setWxOpenid(selectedUser.getWxOpenid());
+                                        taskRemind.setCorpwxUserid(selectedUser.getCorpwxUserid());
+                                        if (repeatType==0) {
+                                            repeatDate = repeatDate.plusDays(1L);
+                                        } else if (repeatType==1) {
+                                            repeatDate = repeatDate.plusWeeks(1L);
+                                        } else if (repeatType==2) {
+                                            repeatDate = repeatDate.plusMonths(1L);
+                                        } else if (repeatType==3&&repeatDesignSameday!=null) {
+                                            repeatDate = repeatDate.plusDays((long) repeatDesignSameday);
+                                        }
+                                        taskRemind.setRemindDate(repeatDate);
+                                        taskRemind.setDept(selectedUser.getDepartmentId());
+                                        taskRemindList.add(taskRemind);
+                                    }
+                                }
+                            }
+                            else if (task.getRepeatType() != null && task.getRepeatType() ==4) {
+
+                                String repeatDesignDay = task.getRepeatDesignDay();
+                                if (StringUtils.isNotEmpty(repeatDesignDay)) {
+                                    String[] strings = repeatDesignDay.split(",");
+                                    List<String> list = Arrays.asList(strings);
+                                    for (String s : list) {
+                                        LocalDateTime repeatDate=null;
+                                        TaskRemind taskRemind = new TaskRemind();
+                                        taskRemind.setTaskId(task.getId());
+                                        taskRemind.setTaskName(task.getTaskName());
+                                        taskRemind.setExecutorId(executorId);
+                                        taskRemind.setExecutorName(selectedUser.getName());
+                                        taskRemind.setWxOpenid(selectedUser.getWxOpenid());
+                                        taskRemind.setCorpwxUserid(selectedUser.getCorpwxUserid());
+                                        repeatDate=startDate.plusDays(Integer.parseInt(s));
+                                        taskRemind.setRemindDate(repeatDate);
+                                        taskRemind.setDept(selectedUser.getDepartmentId());
+                                        taskRemindList.add(taskRemind);
+                                    }
+                                }
+
+                            }
+
+                            taskRemindService.saveBatch(taskRemindList);
+                        }
+                    }
+                }
+            }
+            else {
+                if (task.getStartDate()!=null) {
+                    if (task.getIsRepeat() != null && task.getIsRepeat() == 1) {
+                        ArrayList<TaskRemind> taskRemindList = new ArrayList<>();
+                        LocalDateTime startDate = task.getStartDate();
+                        Integer repeatEndCount=0;//重复几次
+                        LocalDate repeatEndDate=null;//重复到某个日期
+                        //repeatType  重复类型 :每天:0、每周:1、每月:2、自定义周期:3、自定义日期:4
+                        if (task.getRepeatType() != null && task.getRepeatType() <= 3) {
+                            Integer repeatType = task.getRepeatType();
+                            Integer repeatDesignSameday = task.getRepeatDesignSameday();
+                            //重复结束在几次之后
+                            if (task.getRepeatEndCount()!=null&&task.getRepeatEndCount()>0) {
+                                repeatEndCount = task.getRepeatEndCount();
+                            } else if (task.getRepeatEndDate()!=null) {
+                                repeatEndDate=task.getRepeatEndDate();
+                            }
+
+                            if (repeatEndCount!=null) {
+                                for (int i = 1; i <= repeatEndCount; i++) {
+                                    LocalDateTime repeatDate=null;
+                                    TaskRemind taskRemind = new TaskRemind();
+                                    taskRemind.setTaskId(task.getId());
+                                    taskRemind.setTaskName(task.getTaskName());
+                                    taskRemind.setExecutorId(null);
+                                    taskRemind.setExecutorName(null);
+                                    taskRemind.setWxOpenid(null);
+                                    taskRemind.setCorpwxUserid(null);
+                                    if (repeatType==0) {
+                                        repeatDate = startDate.plusDays(i);
+                                    } else if (repeatType==1) {
+                                        repeatDate = startDate.plusWeeks(i);
+                                    } else if (repeatType==2) {
+                                        repeatDate = startDate.plusMonths(i);
+                                    } else if (repeatType==3&&repeatDesignSameday!=null) {
+                                        repeatDate = startDate.plusDays((long) i *repeatDesignSameday);
+                                    }
+                                    taskRemind.setRemindDate(repeatDate);
+                                    taskRemind.setDept(null);
+                                    taskRemindList.add(taskRemind);
+                                }
+                            }
+                            if (repeatEndDate!=null) {
+                                LocalDateTime repeatDate=startDate;
+                                while (repeatDate.toLocalDate().isBefore(repeatEndDate)){
+                                    TaskRemind taskRemind = new TaskRemind();
+                                    taskRemind.setTaskId(task.getId());
+                                    taskRemind.setTaskName(task.getTaskName());
+                                    taskRemind.setExecutorId(null);
+                                    taskRemind.setExecutorName(null);
+                                    taskRemind.setWxOpenid(null);
+                                    taskRemind.setCorpwxUserid(null);
+                                    if (repeatType==0) {
+                                        repeatDate = repeatDate.plusDays(1L);
+                                    } else if (repeatType==1) {
+                                        repeatDate = repeatDate.plusWeeks(1L);
+                                    } else if (repeatType==2) {
+                                        repeatDate = repeatDate.plusMonths(1L);
+                                    } else if (repeatType==3&&repeatDesignSameday!=null) {
+                                        repeatDate = repeatDate.plusDays((long) repeatDesignSameday);
+                                    }
+                                    taskRemind.setRemindDate(repeatDate);
+                                    taskRemind.setDept(null);
+                                    taskRemindList.add(taskRemind);
+                                }
+                            }
+                        }
+                        else if (task.getRepeatType() != null && task.getRepeatType() ==4) {
+
+                            String repeatDesignDay = task.getRepeatDesignDay();
+                            if (StringUtils.isNotEmpty(repeatDesignDay)) {
+                                String[] strings = repeatDesignDay.split(",");
+                                List<String> list = Arrays.asList(strings);
+                                for (String s : list) {
+                                    LocalDateTime repeatDate=null;
+                                    TaskRemind taskRemind = new TaskRemind();
+                                    taskRemind.setTaskId(task.getId());
+                                    taskRemind.setTaskName(task.getTaskName());
+                                    taskRemind.setExecutorId(null);
+                                    taskRemind.setExecutorName(null);
+                                    taskRemind.setWxOpenid(null);
+                                    taskRemind.setCorpwxUserid(null);
+                                    repeatDate=startDate.plusDays(Integer.parseInt(s));
+                                    taskRemind.setRemindDate(repeatDate);
+                                    taskRemind.setDept(null);
+                                    taskRemindList.add(taskRemind);
+                                }
+                            }
+
+                        }
+                        taskRemindService.saveBatch(taskRemindList);
+                    }
+                }
+            }
+
+        }
+        //完成任务将任务提醒删掉
+        else if (2==taskDto.getStatus()){
+            taskRemindService.remove(new QueryWrapper<TaskRemind>().eq("task_id", taskDto.getId()));
         }
         }
 
 
         LambdaUpdateWrapper<Task> luw = new LambdaUpdateWrapper<>();
         LambdaUpdateWrapper<Task> luw = new LambdaUpdateWrapper<>();

+ 1 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/java/com/management/platform/task/TimingTask.java

@@ -169,7 +169,7 @@ public class TimingTask {
         WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
         WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
                 .toUser(toOpenId)//要推送的用户openid
                 .toUser(toOpenId)//要推送的用户openid
                 .templateId(TEMPLATE_REPORT_FILL)//模版id
                 .templateId(TEMPLATE_REPORT_FILL)//模版id
-                .url("http://mob.ttkuaiban.com/")//点击模版消息要访问的网址
+                .url("https://mobcrm.ttkuaiban.com/")//点击模版消息要访问的网址
                 .build();
                 .build();
         //3,如果是正式版发送模版消息,这里需要配置你的信息
         //3,如果是正式版发送模版消息,这里需要配置你的信息
         //templateMessage.addData(new WxMpTemplateData("first", "您今天的工时填报还未完成", "#FF00FF"));
         //templateMessage.addData(new WxMpTemplateData("first", "您今天的工时填报还未完成", "#FF00FF"));

+ 1 - 1
fhKeeper/formulahousekeeper/management-crm/src/main/resources/application.yml

@@ -108,7 +108,7 @@ picrecongnize:
   design: C:/picrecongnize/design/
   design: C:/picrecongnize/design/
 # 智能客户管家公众号参数
 # 智能客户管家公众号参数
 wx:
 wx:
-  template_report_fill: lhwkaW9BKwCvMtCuoAxLw4lZoGgMaucL0Ap0Vz-5KOY
+  template_report_fill: tty9TkCAAADWNCMiTzLogJoWVSMsJ6XQ
   app_id: wx1c1d8fc81bc073a8
   app_id: wx1c1d8fc81bc073a8
   app_secret: 17ad07f90ee845f99f4c1605647ef755
   app_secret: 17ad07f90ee845f99f4c1605647ef755
   template_report_pass: dbMuR2v7lxXLwRaorIWQ4T6ilvn0vzqmDDkD_3ZsaXc
   template_report_pass: dbMuR2v7lxXLwRaorIWQ4T6ilvn0vzqmDDkD_3ZsaXc

+ 17 - 0
fhKeeper/formulahousekeeper/management-crm/src/main/resources/mapper/BusReportStoreMapper.xml

@@ -33,4 +33,21 @@
                         left join user u2 on tmp.update_by = u2.id
                         left join user u2 on tmp.update_by = u2.id
         order by store_type asc,order_item asc
         order by store_type asc,order_item asc
     </select>
     </select>
+    <select id="getCusReportForm" resultType="com.management.platform.entity.BusReportStore">
+        select  brs.id,brs.store_type,brs.store_name,brs.parent_store_id,brs.create_by,brs.create_time
+             ,brs.update_by,brs.update_time,brs.description
+             ,brs.order_item,brs.relate_form_id,brs.company_id
+        from bus_report_store brs
+                 left join cus_report_form crf on brs.relate_form_id = crf.id
+        where store_type = 2 and brs.company_id = #{queryBO.companyId}
+          and (
+            crf.privilege = 1 or (crf.privilege = 2 and
+                                  exists(
+                                      select 1 from report_form_access rfa where brs.relate_form_id = rfa.relate_form_id
+                                      and (rfa.user_id =#{queryBO.userId} or rfa.department_id = #{queryBO.departmentId} )
+                                  )
+                )
+            )
+        order by brs.parent_store_id asc,order_item asc
+    </select>
 </mapper>
 </mapper>

+ 1 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/constant/Constant.java

@@ -60,4 +60,5 @@ public class Constant {
     public static final String[] LEAVE_CHECK= {"审核结果","审核人","请假时间","备注"};
     public static final String[] LEAVE_CHECK= {"审核结果","审核人","请假时间","备注"};
     
     
     public static final int ZHE_ZHONG_COMPANY_ID=4811;
     public static final int ZHE_ZHONG_COMPANY_ID=4811;
+    public static final int MLD_COMPANY_ID=876;
 }
 }

+ 3 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectController.java

@@ -211,12 +211,13 @@ public class ProjectController {
                                    String plate8,
                                    String plate8,
                                    String plate9,
                                    String plate9,
                                    String plate10,
                                    String plate10,
-                                   @RequestParam(required = false,value = "deptIds") String deptIds) {
+                                   @RequestParam(required = false,value = "deptIds") String deptIds,
+                                   String[] leaderIds) {
         return projectService.editProject(id, name, code, userId, inchargerId, isPublic, planStartDate, planEndDate, level, contractAmount,changeContractReason,
         return projectService.editProject(id, name, code, userId, inchargerId, isPublic, planStartDate, planEndDate, level, contractAmount,changeContractReason,
                 projectBaseCostData,projectKeyNodesData,
                 projectBaseCostData,projectKeyNodesData,
                  budget,customerId,chosenLeaders, associateDegrees, associateDegreeNames,
                  budget,customerId,chosenLeaders, associateDegrees, associateDegreeNames,
                 taskGpIncharge,auditUserIds, ccUserIds, category, projectDesc,projectMainId, providerIds, providerNames, request,projectSeparate,outputValue,deptId,onlyChangeParticipate,buId,manDay,manDayStartDate,reviwerId, plate1,plate2,plate3,plate4,plate5,plate6,plate7,plate8,plate9,plate10
                 taskGpIncharge,auditUserIds, ccUserIds, category, projectDesc,projectMainId, providerIds, providerNames, request,projectSeparate,outputValue,deptId,onlyChangeParticipate,buId,manDay,manDayStartDate,reviwerId, plate1,plate2,plate3,plate4,plate5,plate6,plate7,plate8,plate9,plate10
-        ,deptIds);
+        ,deptIds,leaderIds);
     }
     }
 
 
     @RequestMapping("/adjustBase")
     @RequestMapping("/adjustBase")

+ 21 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ProjectLeaderController.java

@@ -0,0 +1,21 @@
+package com.management.platform.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-04-02
+ */
+@RestController
+@RequestMapping("/project-leader")
+public class ProjectLeaderController {
+
+}
+

+ 3 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/Project.java

@@ -491,6 +491,9 @@ public class Project extends Model<Project> {
     @TableField(exist = false)
     @TableField(exist = false)
     private List<ProjectDeptInfo> departmentList;
     private List<ProjectDeptInfo> departmentList;
 
 
+    @TableField(exist = false)
+    private List<ProjectLeader> leaderList;
+
 
 
     @Override
     @Override
     protected Serializable pkVal() {
     protected Serializable pkVal() {

+ 57 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/entity/ProjectLeader.java

@@ -0,0 +1,57 @@
+package com.management.platform.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-04-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class ProjectLeader extends Model<ProjectLeader> {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 项目id
+     */
+    @TableField("project_id")
+    private Integer projectId;
+
+    /**
+     * 小组长id
+     */
+    @TableField("leader_id")
+    private String leaderId;
+
+    /**
+     * 公司id
+     */
+    @TableField("company_id")
+    private Integer companyId;
+
+    @TableField(exist = false)
+    private String userName;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ProjectLeaderMapper.java

@@ -0,0 +1,16 @@
+package com.management.platform.mapper;
+
+import com.management.platform.entity.ProjectLeader;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-04-02
+ */
+public interface ProjectLeaderMapper extends BaseMapper<ProjectLeader> {
+
+}

+ 16 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectLeaderService.java

@@ -0,0 +1,16 @@
+package com.management.platform.service;
+
+import com.management.platform.entity.ProjectLeader;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-04-02
+ */
+public interface ProjectLeaderService extends IService<ProjectLeader> {
+
+}

+ 2 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ProjectService.java

@@ -61,7 +61,8 @@ public interface ProjectService extends IService<Project> {
                             String plate8,
                             String plate8,
                             String plate9,
                             String plate9,
                             String plate10,
                             String plate10,
-                            String deptIds);
+                            String deptIds,
+                            String[] leaderIds);
 
 
     HttpRespMsg deleteProject(Integer id, Integer force);
     HttpRespMsg deleteProject(Integer id, Integer force);
 
 

+ 20 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectLeaderServiceImpl.java

@@ -0,0 +1,20 @@
+package com.management.platform.service.impl;
+
+import com.management.platform.entity.ProjectLeader;
+import com.management.platform.mapper.ProjectLeaderMapper;
+import com.management.platform.service.ProjectLeaderService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author Seyason
+ * @since 2025-04-02
+ */
+@Service
+public class ProjectLeaderServiceImpl extends ServiceImpl<ProjectLeaderMapper, ProjectLeader> implements ProjectLeaderService {
+
+}

+ 41 - 2
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -259,6 +259,9 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
     @Resource
     @Resource
     private ProjectDeptRelateMapper projectDeptRelateMapper;
     private ProjectDeptRelateMapper projectDeptRelateMapper;
 
 
+    @Resource
+    private ProjectLeaderService projectLeaderService;
+
     @Value(value = "${upload.path}")
     @Value(value = "${upload.path}")
     private String path;
     private String path;
     @Value("${configEnv.isDev}")
     @Value("${configEnv.isDev}")
@@ -1430,6 +1433,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
             List<ProjectMain> projectMainList = projectMainMapper.selectList(new QueryWrapper<ProjectMain>().eq("company_id", companyId));
             List<ProjectMain> projectMainList = projectMainMapper.selectList(new QueryWrapper<ProjectMain>().eq("company_id", companyId));
             List<ProjectLevel> projectLevelList = projectLevelMapper.selectList(new QueryWrapper<ProjectLevel>().eq("company_id", companyId));
             List<ProjectLevel> projectLevelList = projectLevelMapper.selectList(new QueryWrapper<ProjectLevel>().eq("company_id", companyId));
             TimeType timeType = timeTypeMapper.selectById(companyId);
             TimeType timeType = timeTypeMapper.selectById(companyId);
+            List<ProjectLeader> leaderList = projectLeaderService.list(new QueryWrapper<ProjectLeader>().eq("company_id", companyId));
+
             List<Integer> projectIds = new ArrayList<>();
             List<Integer> projectIds = new ArrayList<>();
             for (Project p : projectList) {
             for (Project p : projectList) {
                 projectIds.add(p.getId());
                 projectIds.add(p.getId());
@@ -1578,7 +1583,18 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     if(first1.isPresent()){
                     if(first1.isPresent()){
                         projectVO.setProjectSeparate(first1.get());
                         projectVO.setProjectSeparate(first1.get());
                     }
                     }
+                }else if (companyId==Constant.MLD_COMPANY_ID){
+                    List<ProjectLeader> leaderCollect = leaderList.stream().filter(l -> l.getProjectId().equals(project.getId())).collect(Collectors.toList());
+                    leaderCollect.forEach(l->{
+                        Optional<User> userOptional = userList.stream().filter(u -> u.getId().equals(l.getLeaderId())).findFirst();
+                        if(userOptional.isPresent()){
+                            User user1 = userOptional.get();
+                            l.setUserName(user1.getName());
+                        }
+                    });
+                    projectVO.setLeaderList(leaderCollect);
                 }
                 }
+
                 //工程专业版:计算当前项目的总进度
                 //工程专业版:计算当前项目的总进度
                 if (company.getPackageEngineering() == 1) {
                 if (company.getPackageEngineering() == 1) {
                     List<PpMembs> curProjectPMList = ppMembList.stream().filter(pp->pp.getProjectId().equals(project.getId())).collect(Collectors.toList());
                     List<PpMembs> curProjectPMList = ppMembList.stream().filter(pp->pp.getProjectId().equals(project.getId())).collect(Collectors.toList());
@@ -1697,7 +1713,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                                    String plate8,
                                    String plate8,
                                    String plate9,
                                    String plate9,
                                    String plate10,
                                    String plate10,
-                                   String deptIds) {
+                                   String deptIds,
+                                   String[] leaderIds) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         HttpRespMsg httpRespMsg = new HttpRespMsg();
         User user = userMapper.selectById(request.getHeader("Token"));
         User user = userMapper.selectById(request.getHeader("Token"));
         Integer companyId = user.getCompanyId();
         Integer companyId = user.getCompanyId();
@@ -1839,6 +1856,16 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     if(companyId==936){
                     if(companyId==936){
                         projectSeparate.setId(id);
                         projectSeparate.setId(id);
                         projectSeparateMapper.insert(projectSeparate);
                         projectSeparateMapper.insert(projectSeparate);
+                    }else if (companyId==Constant.MLD_COMPANY_ID){
+                        ArrayList<ProjectLeader> leaderArrayList = new ArrayList<>();
+                        for (String leaderId : leaderIds) {
+                            ProjectLeader leader = new ProjectLeader();
+                            leader.setProjectId(project.getId());
+                            leader.setLeaderId(leaderId);
+                            leader.setCompanyId(companyId);
+                            leaderArrayList.add(leader);
+                        }
+                        projectLeaderService.saveBatch(leaderArrayList);
                     }
                     }
                     OperationRecord operationRecord=new OperationRecord();
                     OperationRecord operationRecord=new OperationRecord();
                     operationRecord.setProjectName(project.getProjectName());
                     operationRecord.setProjectName(project.getProjectName());
@@ -1874,7 +1901,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     getParentFolders(list,proDocumentTemDetailList,project,user);
                     getParentFolders(list,proDocumentTemDetailList,project,user);
                 }
                 }
             }
             }
-        } else {
+        }
+        else {
             oldProject = projectMapper.selectById(id);
             oldProject = projectMapper.selectById(id);
             isNew = false;
             isNew = false;
             //修改项目
             //修改项目
@@ -2108,6 +2136,17 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             content+="\n"+s;
                             content+="\n"+s;
                         }
                         }
                     }
                     }
+                }else if (companyId==Constant.MLD_COMPANY_ID){
+                    projectLeaderService.remove(new QueryWrapper<ProjectLeader>().eq("project_id",p.getId()));
+                    ArrayList<ProjectLeader> leaderArrayList = new ArrayList<>();
+                    for (String leaderId : leaderIds) {
+                        ProjectLeader leader = new ProjectLeader();
+                        leader.setProjectId(p.getId());
+                        leader.setLeaderId(leaderId);
+                        leader.setCompanyId(companyId);
+                        leaderArrayList.add(leader);
+                    }
+                    projectLeaderService.saveBatch(leaderArrayList);
                 }
                 }
                 operationRecord.setContent(content);
                 operationRecord.setContent(content);
                 //operationRecord.setModuleName("项目管理");
                 //operationRecord.setModuleName("项目管理");

+ 5 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ReportServiceImpl.java

@@ -10902,6 +10902,10 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
                         //不一致
                         //不一致
                         if (Math.abs(corpwxTime.getWorkHours() - report.getWorkingTime()) > 0.01) {
                         if (Math.abs(corpwxTime.getWorkHours() - report.getWorkingTime()) > 0.01) {
                             isMatch = false;
                             isMatch = false;
+                            //设置人员姓名
+                            if (corpwxTime.getName() == null) {
+                                corpwxTime.setName(targetUser.getName());
+                            }
                         }
                         }
                         break;
                         break;
                     }
                     }
@@ -10910,7 +10914,7 @@ public class ReportServiceImpl extends ServiceImpl<ReportMapper, Report> impleme
 
 
             if (!isMatch) {
             if (!isMatch) {
                 Map<String, Object> map = new HashMap<>();
                 Map<String, Object> map = new HashMap<>();
-                map.put("name", corpwxTime.getName()==null?corpwxTime.getCorpwxUserid():corpwxTime.getName());
+                map.put("name", corpwxTime.getName());
                 map.put("createDate", dateTimeFormatter.format(corpwxTime.getCreateDate()));
                 map.put("createDate", dateTimeFormatter.format(corpwxTime.getCreateDate()));
                 map.put("workHours", corpwxTime.getWorkHours());
                 map.put("workHours", corpwxTime.getWorkHours());
                 map.put("reportTime", reportTime);
                 map.put("reportTime", reportTime);

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/resources/application.yml

@@ -15,7 +15,7 @@ spring:
       location: C:/upload/
       location: C:/upload/
   datasource:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://1.94.62.58:17089/man_dev?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
+    url: jdbc:mysql://1.94.62.58:17089/man_mld?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true&useSSL=false
     username: root
     username: root
     password: P011430@Huoshi*
     password: P011430@Huoshi*
 #    url: jdbc:mysql://47.100.37.243:7644/man_hour_manager?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true
 #    url: jdbc:mysql://47.100.37.243:7644/man_hour_manager?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true

+ 17 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ProjectLeaderMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.management.platform.mapper.ProjectLeaderMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.management.platform.entity.ProjectLeader">
+        <id column="id" property="id" />
+        <result column="project_id" property="projectId" />
+        <result column="leader_id" property="leaderId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, project_id, leader_id
+    </sql>
+
+</mapper>