From b523cf62af9369901cdeff2b2ae188a0af856558 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 19 四月 2024 15:47:16 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/crm/manager/controller/WeeklyController.java | 857 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 848 insertions(+), 9 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 7200aca..c39bd11 100644
--- a/src/main/java/com/zy/crm/manager/controller/WeeklyController.java
+++ b/src/main/java/com/zy/crm/manager/controller/WeeklyController.java
@@ -1,34 +1,72 @@
package com.zy.crm.manager.controller;
-import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.DateUtils;
-import com.zy.crm.manager.entity.Weekly;
-import com.zy.crm.manager.service.WeeklyService;
+import com.core.exception.CoolException;
+import com.zy.crm.common.entity.PhoneCodeTypeParam;
+import com.zy.crm.common.model.SettleDto;
+import com.zy.crm.manager.entity.*;
+import com.zy.crm.manager.entity.param.CstmrUtilsParam;
+import com.zy.crm.manager.entity.param.WeeklyDomainParam;
+import com.zy.crm.manager.service.*;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
import com.core.domain.KeyValueVo;
import com.zy.crm.common.web.BaseController;
+import com.zy.crm.manager.utils.TimeCalculatorUtils;
+import com.zy.crm.system.entity.User;
+import com.zy.crm.system.service.UserService;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.*;
+@Slf4j
@RestController
public class WeeklyController extends BaseController {
@Autowired
private WeeklyService weeklyService;
+ @Autowired
+ private WeeklyDailyPlanService weeklyDailyPlanService;
+ @Autowired
+ private WeeklyDailyRealityService weeklyDailyRealityService;
+ @Autowired
+ private UserService userService;
+ @Autowired
+ private WeeklyFollService weeklyFollService;
+ @Autowired
+ private SmsCodeService smsCodeService;
+ @Autowired
+ private CstmrService cstmrService;
+
+ String PZH = " 鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�� ";
+ Integer PBN = 3;
@RequestMapping(value = "/weekly/{id}/auth")
@ManagerAuth
public R get(@PathVariable("id") String id) {
- return R.ok(weeklyService.selectById(String.valueOf(id)));
+ Weekly weekly = weeklyService.selectById(String.valueOf(id));
+ assert weekly != null;
+ JSONObject resultObj = JSON.parseObject(JSON.toJSONString(weekly));
+ if (!Cools.isEmpty(weekly.getForm())) {
+ JSONObject formObj = JSON.parseObject(weekly.getForm());
+ formObj.forEach(resultObj::putIfAbsent);
+ }
+
+ // 姝ラ鏉$浉鍏�
+ resultObj.put("step", weekly.getSettle().equals(weekly.getSettleSize()) ? 0 : weekly.getSettle() + 1);
+
+ return R.ok().add(resultObj);
+// return R.ok(weeklyService.selectById(String.valueOf(id)));
}
@RequestMapping(value = "/weekly/list/auth")
@@ -47,16 +85,76 @@
return R.ok(weeklyService.selectPage(new Page<>(curr, limit), wrapper));
}
+// private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+// for (Map.Entry<String, Object> entry : map.entrySet()){
+// String val = String.valueOf(entry.getValue());
+// if (val.contains(RANGE_TIME_LINK)){
+// String[] dates = val.split(RANGE_TIME_LINK);
+// wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
+// wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+// } else {
+// wrapper.like(entry.getKey(), val);
+// }
+// }
+// }
+
+ @RequestMapping(value = "/weekly/list/auth2")
+ @ManagerAuth
+ public R list2(@RequestParam(defaultValue = "1")Integer curr,
+ @RequestParam(defaultValue = "10")Integer limit,
+ @RequestParam(required = false)String orderByField,
+ @RequestParam(required = false)String orderByType,
+ @RequestParam(required = false)String condition,
+ @RequestParam Map<String, Object> param) {
+ EntityWrapper<Weekly> wrapper = new EntityWrapper<>();
+ excludeTrash(param);
+ convert(param, wrapper);
+ allLike(Weekly.class, param.keySet(), wrapper, condition);
+ if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
+ return R.ok(weeklyService.selectPage(new Page<>(curr, limit), wrapper));
+ }
+
private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
+ Long deptId = getDeptId();
+ boolean signUserId = false;
+ boolean signDeptId = false;
+ boolean signHostId = false;
+ for (Map.Entry<String, Object> entry : map.entrySet()){
+ if (entry.getKey().equals("dept_id")){
+ signDeptId = true;
+ if (String.valueOf(entry.getValue()).equals("19")){
+ signHostId = true;
+ }
+ }
+ }
for (Map.Entry<String, Object> entry : map.entrySet()){
String val = String.valueOf(entry.getValue());
if (val.contains(RANGE_TIME_LINK)){
String[] dates = val.split(RANGE_TIME_LINK);
wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
+ } else if (entry.getKey().equals("dept_id")){
+ if (!val.equals("19")){
+ wrapper.eq(entry.getKey(), val);
+ }
+ } else if (entry.getKey().equals("user_id") && !signDeptId){
+ signUserId = true;
+ wrapper.eq(entry.getKey(), val);
} else {
wrapper.like(entry.getKey(), val);
}
+ }
+ if (!signUserId && !signDeptId){
+ if (getRole().getId()==1){
+ wrapper.or().eq("host_id",getHostId());
+ }else if (getRole().getId()==2){
+ wrapper.eq("dept_id",getDeptId());
+ }else {
+ wrapper.eq("user_id", getUserId());
+ }
+ }
+ if (signHostId){
+ wrapper.or().eq("host_id",getHostId());
}
}
@@ -79,11 +177,27 @@
@RequestMapping(value = "/weekly/delete/auth")
@ManagerAuth
- public R delete(@RequestParam(value="ids[]") Long[] ids){
- for (Long id : ids){
- weeklyService.deleteById(id);
- }
- return R.ok();
+ public R delete(@RequestParam() Long[] ids){
+ try{
+ for (Long id : ids){
+ List<WeeklyDailyReality> weeklyDailyRealities = weeklyDailyRealityService.selectList(new EntityWrapper<WeeklyDailyReality>().eq("weekly_id", id));
+ for (WeeklyDailyReality weeklyDailyReality:weeklyDailyRealities){
+ weeklyDailyRealityService.deleteById(weeklyDailyReality);
+ }
+ List<WeeklyDailyPlan> weeklyDailyPlans = weeklyDailyPlanService.selectList(new EntityWrapper<WeeklyDailyPlan>().eq("weekly_id", id));
+ for (WeeklyDailyPlan weeklyDailyPlan:weeklyDailyPlans){
+ weeklyDailyPlanService.deleteById(weeklyDailyPlan);
+ }
+ List<WeeklyFoll> weeklyFolls = weeklyFollService.selectList(new EntityWrapper<WeeklyFoll>().eq("weekly_id", id));
+ for (WeeklyFoll weeklyFoll:weeklyFolls){
+ weeklyFollService.deleteById(weeklyFoll);
+ }
+ weeklyService.deleteById(id);
+ }
+ }catch (Exception e){
+ throw new CoolException("鍒犻櫎澶辫触锛屽紓甯镐俊鎭細"+e);
+ }
+ return R.ok();
}
@RequestMapping(value = "/weekly/export/auth")
@@ -132,4 +246,729 @@
return R.ok().add(vos);
}
+ @RequestMapping(value = "/weekly/from/add/auth")
+ @ManagerAuth(memo = "鍛ㄨ鍒�/鏃ヨ鍒�/鏃ュ疄闄�")
+ @Transactional
+ public R formAdd(@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.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.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()+"鍛�");
+
+ User manager = new User();
+ try {
+ manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗
+ } catch (Exception e) {
+ manager = getUser();
+ }
+ // 鑾峰彇涓氬姟鍛�
+ List<String> initNames = new ArrayList<>();
+ initNames.add("鍒涘缓浜嗗鎵�");
+ initNames.add("涓氬姟鍛樻彁浜�");
+ initNames.add("閮ㄩ棬棰嗗瀹℃牳");
+ List<User> users = new ArrayList<>();
+ users.add(getUser());
+ users.add(getUser());
+ users.add(manager);
+// users.add(getUser());
+ weekly.setSettleMsg(JSON.toJSONString(SettleDto.InItFlowPathTwo(users, initNames, users.size())));
+ weekly.setSettleSize(users.size());
+ weekly.setSettleCurrent(1);
+ if (users.size() > 1) {
+ weekly.setDirector(users.get(1).getId());
+ } else {
+ weekly.setDirector(getUserId());
+ }
+
+
+ weekly.setSettleSize(users.size());
+
+ List<Date> dates = TimeCalculatorUtils.WeeklyListDays(dateList);//鑾峰彇鍛ㄤ竴鍒板懆鏃ユ棩鏈�
+
+ try{
+ weeklyService.insert(weekly);
+ } catch (Exception e) {
+ log.error("鏂板鍛ㄨ鍒掍富琛ㄥけ璐ワ紝寮傚父淇℃伅锛�"+e);
+ throw new CoolException("鏂板鍛ㄨ鍒掍富琛ㄥけ璐�");
+ }
+
+ List<CstmrUtilsParam> cstmrUtilsParamList = new ArrayList<>();
+ for (WeeklyDailyPlan weeklyDailyPlan : param.getWeeklyDailyPlanList()){
+
+ weeklyDailyPlan.setHostId(getHostId());
+ weeklyDailyPlan.setDeptId(getDeptId()); // 鎵�灞為儴闂�
+ weeklyDailyPlan.setUserId(getUserId()); // 鎵�灞炰汉鍛�
+
+ weeklyDailyPlan.setDirector(manager.getId()); // 鎵�灞炰汉鍛�
+
+ 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);
+ WeeklyDailyReality weeklyDailyReality = new WeeklyDailyReality();
+ weeklyDailyReality.sync(weeklyDailyPlan);
+ weeklyDailyReality.setWorkContent("");
+ weeklyDailyRealityService.insert(weeklyDailyReality);
+
+ } catch (Exception e){
+ log.error("鏂板鏃ヨ鍒掑け璐�"+e);
+ throw new CoolException("鏂板鏃ヨ鍒掑け璐�");
+ }
+ }
+
+ try{
+ insertWeeklyFoll(users,weekly.getId()); // 鑷姩娣诲姞璺熻繘浜�
+ }catch (Exception e){
+ log.error("鍛ㄦ姤娣诲姞璺熻繘浜哄紓甯革紝寮傚父淇℃伅1锛�"+e);
+ }
+
+ } catch (Exception e){
+ log.error("鍒涘缓鍛ㄨ鍒掑紓甯革紝寮傚父淇℃伅锛�"+e);
+ return R.error("鍒涘缓鍛ㄨ鍒掑け璐�==>"+e);
+// throw new CoolException("鍒涘缓鍛ㄨ鍒掑け璐�==>"+e);
+ }
+
+ return R.ok("鍒涘缓鎴愬姛");
+ }
+
+ public void insertWeeklyFoll(List<User> userList,Long weeklyId){
+ for (User user:userList){
+ try{
+ // 鑷姩娣诲姞璺熻繘浜�
+ List<WeeklyFoll> weeklyFolls = weeklyFollService.selectList(new EntityWrapper<WeeklyFoll>().eq("weekly_id", weeklyId).eq("user_id", user.getId()));
+ if (weeklyFolls.size()==0){
+ WeeklyFoll weeklyFoll = new WeeklyFoll();
+ weeklyFoll.setUserId(user.getId());
+ weeklyFoll.setWeeklyId(weeklyId);
+ weeklyFollService.insert(weeklyFoll);
+ }
+ }catch (Exception e){
+ log.error("鍛ㄦ姤娣诲姞璺熻繘浜哄紓甯革紝寮傚父淇℃伅2锛�"+e);
+ continue;
+ }
+ }
+ }
+
+ @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.setCreateBy(getUserId());
+ weekly.setCreateTime(now);
+ weekly.setUpdateBy(getUserId());
+ weekly.setUpdateTime(now);
+
+ User manager = new User();
+ try {
+ manager = userService.getDeptManager(getHostId(), getUser().getDeptId()); // 鑾峰彇閮ㄩ棬棰嗗
+ } catch (Exception e) {
+ manager = getUser();
+ }
+ weekly.setDirector(manager.getId());
+
+ // 鑾峰彇涓氬姟鍛�
+ List<String> initNames = new ArrayList<>();
+ initNames.add("鍒涘缓浜嗗鎵�");
+ initNames.add("涓氬姟鍛樻彁浜�");
+ initNames.add("閮ㄩ棬棰嗗瀹℃牳");
+ List<User> users = new ArrayList<>();
+ users.add(getUser());
+ users.add(getUser());
+ users.add(manager);
+// users.add(getUser());
+ weekly.setSettleMsg(JSON.toJSONString(SettleDto.InItFlowPathTwo(users, initNames, users.size())));
+ weekly.setSettleSize(users.size());
+ weekly.setSettleCurrent(1);
+ if (users.size() > 1) {
+ weekly.setDirector(users.get(1).getId());
+ } else {
+ weekly.setDirector(getUserId());
+ }
+
+
+ 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);
+ return R.error("鏂板鍛ㄨ鍒掍富琛ㄥけ璐�");
+// throw new CoolException("鏂板鍛ㄨ鍒掍富琛ㄥけ璐�");
+ }
+
+ List<CstmrUtilsParam> cstmrUtilsParamList = new ArrayList<>();
+ for (WeeklyDailyReality weeklyDailyReality : param.getWeeklyDailyRealityList()){
+
+ weeklyDailyReality.setHostId(getHostId());
+ weeklyDailyReality.setDeptId(getDeptId()); // 鎵�灞為儴闂�
+ weeklyDailyReality.setUserId(getUserId()); // 鎵�灞炰汉鍛�
+
+ weeklyDailyReality.setDirector(manager.getId()); // 鎵�灞炰汉鍛�
+
+ 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("鏂板鏃ヨ鍒掑け璐�");
+ return R.error("鏂板鏃ヨ鍒掑け璐�");
+ }
+ }
+
+ try{
+ insertWeeklyFoll(users,weekly.getId()); // 鑷姩娣诲姞璺熻繘浜�
+ }catch (Exception e){
+ log.error("鍛ㄦ姤娣诲姞璺熻繘浜哄紓甯革紝寮傚父淇℃伅1锛�"+e);
+ }
+
+ } catch (Exception e){
+ log.error("鍒涘缓鍛ㄨ鍒掑紓甯革紝寮傚父淇℃伅锛�"+e);
+// throw new CoolException("鍒涘缓鍛ㄨ鍒掑け璐�==>"+e);
+ return R.error("鍒涘缓鍛ㄨ鍒掑け璐�==>"+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.getType())){
+ throw new CoolException("鍙傛暟涓虹┖锛歍ype");
+ }
+// 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<WeeklyDailyPlan> weeklyDailyPlanList = weeklyDailyPlanService.selectList(new EntityWrapper<WeeklyDailyPlan>().eq("weekly_id", weekly.getId()));
+ List<Long> ids = new ArrayList<>();
+ for (WeeklyDailyPlan weeklyDailyPlan: param.getWeeklyDailyPlanList()) {
+ if (!Cools.isEmpty(weeklyDailyPlan.getId())) {
+ ids.add(weeklyDailyPlan.getId());
+ }
+ }
+ try{
+ for (WeeklyDailyPlan weeklyDailyPlan2:weeklyDailyPlanList){
+ if (!ids.contains(weeklyDailyPlan2.getId())){
+ weeklyDailyPlanService.deleteById(weeklyDailyPlan2.getId());
+ }
+ }
+ }catch (Exception e){
+
+ }
+ 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(weeklyDailyPlan1)){
+ throw new CoolException("鏇存柊澶辫触锛歩d:"+weeklyDailyPlanId);
+ }
+ weeklyDailyPlan1.setComment(weeklyDailyPlan.getComment());
+ weeklyDailyPlan1.setWorkContent(weeklyDailyPlan.getWorkContent());
+ weeklyDailyPlan1.setWorkPurpose(weeklyDailyPlan.getWorkPurpose());
+ weeklyDailyPlan1.setWeeklyMatter(weeklyDailyPlan.getWeeklyMatter());
+ weeklyDailyPlan1.setAddr(weeklyDailyPlan.getAddr());
+ weeklyDailyPlan1.setMemo(weeklyDailyPlan.getMemo());
+ weeklyDailyPlan1.setUpdateBy(getUserId());
+ weeklyDailyPlan1.setUpdateTime(now);
+ if (!Cools.isEmpty(weeklyDailyPlan.getCstmrId())){
+ weeklyDailyPlan1.setCstmrId(weeklyDailyPlan.getCstmrId());
+ }
+ 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.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<WeeklyDailyReality> weeklyDailyRealitieList = weeklyDailyRealityService.selectList(new EntityWrapper<WeeklyDailyReality>().eq("weekly_id", weekly.getId()));
+ List<Long> ids = new ArrayList<>();
+ for (WeeklyDailyReality weeklyDailyReality: param.getWeeklyDailyRealityList()) {
+ if (!Cools.isEmpty(weeklyDailyReality.getId())) {
+ ids.add(weeklyDailyReality.getId());
+ }
+ }
+ try{
+ for (WeeklyDailyReality weeklyDailyReality2:weeklyDailyRealitieList){
+ if (!ids.contains(weeklyDailyReality2.getId())){
+ weeklyDailyRealityService.deleteById(weeklyDailyReality2.getId());
+ }
+ }
+ }catch (Exception e){
+
+ }
+ for (WeeklyDailyReality weeklyDailyReality: param.getWeeklyDailyRealityList()){
+ WeeklyDailyReality weeklyDailyReality1 = new WeeklyDailyReality();
+ if (!Cools.isEmpty(weeklyDailyReality.getId())){
+ Long weeklyDailyRealityId = weeklyDailyReality.getId();
+ weeklyDailyReality1 = weeklyDailyRealityService.selectById(weeklyDailyReality.getId());
+ if (Cools.isEmpty(weeklyDailyReality1)){
+ throw new CoolException("鏇存柊澶辫触锛歩d:"+weeklyDailyRealityId);
+ }
+ weeklyDailyReality1.setComment(weeklyDailyReality.getComment());
+ weeklyDailyReality1.setWorkContent(weeklyDailyReality.getWorkContent());
+ weeklyDailyReality1.setWorkPurpose(weeklyDailyReality.getWorkPurpose());
+ weeklyDailyReality1.setWeeklyMatter(weeklyDailyReality.getWeeklyMatter());
+ weeklyDailyReality1.setAddr(weeklyDailyReality.getAddr());
+ weeklyDailyReality1.setMemo(weeklyDailyReality.getMemo());
+ weeklyDailyReality1.setUpdateBy(getUserId());
+ weeklyDailyReality1.setUpdateTime(now);
+ if (!Cools.isEmpty(weeklyDailyReality.getCstmrId())){
+ weeklyDailyReality1.setCstmrId(weeklyDailyReality.getCstmrId());
+ }
+ 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);
+ }
+
+ @PostMapping(value = "/weekly/approval/auth")
+ @ManagerAuth(memo = "瀹℃壒鐢宠鍗�")
+ public R approval(@RequestParam Long weeklyId,
+ @RequestParam(required = false) Long plannerId) {
+ Weekly weekly = weeklyService.selectById(weeklyId);
+ assert weekly != null;
+ Long nextUserId = getUserId();
+ User director = userService.selectById(weekly.getDirector());
+
+ if (Cools.isEmpty(getUser()) || Cools.isEmpty(director)) {
+ return R.error("鎶辨瓑锛屾偍鏃犻渶纭锛侊紒锛�");
+ }
+
+ if (!getUserId().equals(director.getId())) {
+ return R.error("鎶辨瓑锛屾偍鏃犻渶纭锛侊紒锛�");
+ }
+
+ // 淇敼 settle 姝ラ鏁版嵁
+ List<SettleDto> list = JSON.parseArray(weekly.getSettleMsg(), SettleDto.class);
+ // 淇敼 settle 姝ラ鏁版嵁
+ for (SettleDto dto : list) {
+ if (dto.getStep().equals(weekly.getSettle())) {
+ dto.setCurr(Boolean.TRUE);
+ } else if (dto.getStep().equals(weekly.getSettle() + 1)) {
+ dto.setCurr(Boolean.TRUE);
+ if (Cools.isEmpty(dto.getMsg())) {
+ dto.setMsg(director.getNickname() + "瀹℃壒閫氳繃");
+ } else {
+ dto.setMsg(dto.getMsg() + PZH + DateUtils.convert(new Date()) + " " + director.getNickname() + "瀹℃壒閫氳繃");
+ }
+ dto.setTime(DateUtils.convert(new Date()));
+ } else if (dto.getStep().equals(weekly.getSettle() + 2)) {
+ nextUserId = dto.getUserId();
+ }
+ }
+ weekly.setSettleMsg(JSON.toJSONString(list));
+ // 淇敼瑙勫垝鍗曠姸鎬�
+ weekly.setSettle(weekly.getSettle() + 1); // 瀹℃壒閫氳繃
+
+ weekly.setUpdateBy(getUserId());
+ weekly.setUpdateTime(new Date());
+ weekly.setDirector(nextUserId);
+
+ if (!weeklyService.updateById(weekly)) {
+ throw new CoolException("瀹℃牳澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ if (!weekly.getSettle().equals(weekly.getSettleSize())) {
+ User phoneUser = userService.selectById(nextUserId);
+ if (!smsCodeService.sendSmsCodeText(phoneUser.getMobile(), PhoneCodeTypeParam.ALIYUN_M1ABAC630E, getUserId())) {
+ return R.ok("瀹℃牳鎴愬姛浣嗙煭淇″彂閫佸け璐�!");
+ }
+ }
+
+ return R.ok("瀹℃壒鎴愬姛");
+ }
+
+ @PostMapping(value = "/weekly/approvalEnd/auth")
+ @ManagerAuth(memo = "鎷掔粷鐢宠鍗�")
+ public R approvalEnd(@RequestParam Long weeklyId,
+ @RequestParam(required = false) Long plannerId) {
+ Weekly weekly = weeklyService.selectById(weeklyId);
+ Date now = new Date();
+ Long nextUserId = getUserId();
+ Long directorId = weekly.getDirector();
+ User director = userService.selectById(directorId);
+ if (!director.getId().equals(getUserId())) {
+ return R.error("鎶辨瓑锛屾偍娌℃湁瀹℃牳鐨勬潈闄�");
+ }
+ List<SettleDto> planDtos = JSON.parseArray(weekly.getSettleMsg(), SettleDto.class);
+ List<SettleDto> planDtoList = new ArrayList<>();
+ boolean sign = true;
+ for (SettleDto dto : planDtos) {
+ if (dto.getStep().equals(2)) {
+ nextUserId = dto.getUserId();
+ weekly.setDirector(dto.getUserId());
+ }
+ if (sign && dto.getUserId().equals(directorId) && weekly.getSettle() + 1 == dto.getStep()) {
+ if (Cools.isEmpty(dto.getMsg())) {
+ dto.setMsg(DateUtils.convert(now) + " " + director.getNickname() + "鍥為��瀹℃壒");
+ } else {
+ dto.setMsg(dto.getMsg() + PZH + DateUtils.convert(now) + " " + director.getNickname() + "鍥為��瀹℃壒");
+ }
+ sign = false;
+ }
+ if (sign) {
+ dto.setMsg(dto.getMsg() + PZH + DateUtils.convert(now) + " " + director.getNickname() + "鍥為��瀹℃壒");
+ }
+
+ planDtoList.add(dto);
+ }
+ weekly.setStatus(0);
+ weekly.setSettle(1);
+ weekly.setSettleMsg(JSON.toJSONString(planDtoList));
+ weekly.setUpdateBy(getUserId());
+ weekly.setUpdateTime(now);
+ weeklyService.updateById(weekly);
+ if (!weekly.getSettle().equals(weekly.getSettleSize())) {
+ User phoneUser = userService.selectById(nextUserId);
+ if (!smsCodeService.sendSmsCodeText(phoneUser.getMobile(), PhoneCodeTypeParam.ALIYUN_M1ABAC630E, getUserId())) {
+ return R.ok("瀹℃牳鎴愬姛浣嗙煭淇″彂閫佸け璐�!");
+ }
+ }
+ return R.ok("鍥為��鎴愬姛");
+ }
+
+ @RequestMapping(value = "/weekly/from/add/phone/auth")
+ @ManagerAuth(memo = "鍛ㄨ鍒�/鏃ヨ鍒�/鏃ュ疄闄�")
+ @Transactional
+ public R formAddModifyPhone(@RequestBody WeeklyDomainParam param){
+ try{
+ if (Cools.isEmpty(param)){
+ throw new CoolException("鍙傛暟涓虹┖锛歐eeklyDomainParam");
+ } else if (Cools.isEmpty(param.getWeeklyDailyRealityList()) || param.getWeeklyDailyRealityList().size()==0){
+ throw new CoolException("鍙傛暟涓虹┖锛歐eeklyDailyRealityList");
+ } else if (Cools.isEmpty(param.getWeeklyId())){
+ throw new CoolException("鍙傛暟涓虹┖锛歐eeklyId");
+// } else if (Cools.isEmpty(param.getType())){
+// throw new CoolException("鍙傛暟涓虹┖锛歍ype");
+// } else if (Cools.isEmpty(param.getWeeklyType())){
+// throw new CoolException("鍙傛暟涓虹┖锛歐eekly");
+ }
+ Date now = new Date();
+ Weekly weekly = weeklyService.selectById(param.getWeeklyId());
+ weekly.setUpdateBy(getUserId());
+ weekly.setUpdateTime(now);
+
+
+ List<Date> dateList = new ArrayList<>();//鑾峰彇鍛ㄤ竴涓庡懆鏃ユ棩鏈�
+ dateList = TimeCalculatorUtils.WeeklyMondayAndSundayNow(weekly.getStartTime());
+
+ List<Date> dates = TimeCalculatorUtils.WeeklyListDays(dateList);//鑾峰彇鍛ㄤ竴鍒板懆鏃ユ棩鏈�
+
+ try{
+ weeklyService.updateById(weekly);
+ } catch (Exception e) {
+ log.error("鏇存柊鍛ㄨ鍒掍富琛ㄥけ璐ワ紝寮傚父淇℃伅锛�"+e);
+ throw new CoolException("鏇存柊鍛ㄨ鍒掍富琛ㄥけ璐�");
+ }
+
+ List<CstmrUtilsParam> cstmrUtilsParamList = new ArrayList<>();
+ for (WeeklyDailyReality weeklyDailyReality: param.getWeeklyDailyRealityList()){
+ Cstmr cstmr = null;
+ if (!Cools.isEmpty(weeklyDailyReality.getCstmrName())){
+ cstmr = cstmrService.selectByName(getHostId(), weeklyDailyReality.getCstmrName());
+ if(Cools.isEmpty(cstmr)){
+ throw new CoolException("鏈煡璇㈠埌鐢叉柟鍗曚綅锛�");
+ }else {
+ weeklyDailyReality.setCstmrId(cstmr.getId());
+ }
+ }
+ weeklyDailyReality.setHostId(getHostId());
+ weeklyDailyReality.setDeptId(getDeptId()); // 鎵�灞為儴闂�
+ weeklyDailyReality.setUserId(getUserId()); // 鎵�灞炰汉鍛�
+
+ weeklyDailyReality.setDirector(getUserId()); // 鎵�灞炰汉鍛�
+
+ weeklyDailyReality.setCreateBy(getUserId());
+ weeklyDailyReality.setCreateTime(now);
+ weeklyDailyReality.setUpdateBy(getUserId());
+ weeklyDailyReality.setUpdateTime(now);
+
+ weeklyDailyReality.setStatus(weekly.getStatus());
+
+ weeklyDailyReality.setDailyTime(dates.get(weeklyDailyReality.getWeeklyDay()-1));
+ weeklyDailyReality.setWeeklyId(weekly.getId());
+
+ try{
+ weeklyDailyRealityService.insert(weeklyDailyReality);
+ } catch (Exception e){
+ log.error("鏂板鏃ヨ鍒掑け璐�"+e);
+ throw new CoolException("鏂板鏃ヨ鍒掑け璐�");
+ }
+
+ }
+
+ } catch (Exception e){
+ log.error("鏇存柊鍛ㄨ鍒掑紓甯革紝寮傚父淇℃伅锛�"+e);
+ throw new CoolException("鏇存柊鍛ㄨ鍒掑け璐�==>"+e);
+ }
+
+ return R.ok("鏇存柊鎴愬姛");
+ }
}
--
Gitblit v1.9.1