中扬CRM客户关系管理系统
LSH
2024-03-28 ea269db73631ff50e9d161f69b044b915cdac089
src/main/java/com/zy/crm/manager/controller/WeeklyController.java
@@ -5,11 +5,14 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.DateUtils;
import com.zy.crm.manager.entity.ReimburseOnlineDetl;
import com.core.exception.CoolException;
import com.zy.crm.manager.entity.Weekly;
import com.zy.crm.manager.entity.WeeklyDailyPlan;
import com.zy.crm.manager.entity.WeeklyDailyReality;
import com.zy.crm.manager.entity.param.CstmrUtilsParam;
import com.zy.crm.manager.entity.param.WeeklyDomainParam;
import com.zy.crm.manager.service.WeeklyDailyPlanService;
import com.zy.crm.manager.service.WeeklyDailyRealityService;
import com.zy.crm.manager.service.WeeklyService;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
@@ -18,12 +21,14 @@
import com.core.domain.KeyValueVo;
import com.zy.crm.common.web.BaseController;
import com.zy.crm.manager.utils.TimeCalculatorUtils;
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 {
@@ -31,6 +36,8 @@
    private WeeklyService weeklyService;
    @Autowired
    private WeeklyDailyPlanService weeklyDailyPlanService;
    @Autowired
    private WeeklyDailyRealityService weeklyDailyRealityService;
    @RequestMapping(value = "/weekly/{id}/auth")
    @ManagerAuth
@@ -145,21 +152,23 @@
    public R formAdd(@RequestBody WeeklyDomainParam param){
        try{
            if (Cools.isEmpty(param)){
                return R.error("参数为空:WeeklyDomainParam");
                throw new CoolException("参数为空:WeeklyDomainParam");
            } else if (Cools.isEmpty(param.getWeeklyDailyPlanList()) || param.getWeeklyDailyPlanList().size()==0){
                return R.error("参数为空:WeeklyDailyPlanList");
                throw new CoolException("参数为空:WeeklyDailyPlanList");
            } else if (Cools.isEmpty(param.getWeeklyType())){
                return R.error("参数为空:WeeklyDailyPlanList");
                throw new CoolException("参数为空:WeeklyDailyPlanList");
            } else if (Cools.isEmpty(param.getType())){
                return R.error("参数为空:Type");
                throw new CoolException("参数为空:Type");
            } else if (Cools.isEmpty(param.getWeeklyType())){
                return R.error("参数为空:Weekly");
                throw new CoolException("参数为空:Weekly");
            }
            Date now = new Date();
            Weekly weekly = new Weekly();
            weekly.setHostId(getHostId());
            weekly.setDeptId(getDeptId());               // 所属部门
            weekly.setUserId(getUserId());               // 所属人员
            weekly.setDirector(getUserId());               // 所属人员
            weekly.setCreateBy(getUserId());
            weekly.setCreateTime(now);
@@ -168,7 +177,7 @@
            List<Date> dateList = new ArrayList<>();//获取周一与周日日期
            switch (param.getType()){
            switch (param.getWeeklyType()) {
                case 1:
                    dateList = TimeCalculatorUtils.WeeklyMondayAndSundayFront(now);
                    weekly.setStatus(2);
@@ -182,15 +191,360 @@
                    weekly.setStatus(0);
                    break;
                default:
                    return R.error("参数异常:Weekly="+param.getType());
                    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);//获取周一到周日日期
            System.out.println(dates.toString());
            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(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){
            return R.error("异常:"+e);
            log.error("创建周计划异常,异常信息:"+e);
            throw new CoolException("创建周计划失败==>"+e);
        }
        return R.ok();
        return R.ok("创建成功");
    }
    @RequestMapping(value = "/weekly/from/add/auth2")
    @ManagerAuth(memo = "周计划/日计划/日实际")
    @Transactional
    public R formAdd2(@RequestBody WeeklyDomainParam param){
        try{
            if (Cools.isEmpty(param)){
                throw new CoolException("参数为空:WeeklyDomainParam");
            } else if (Cools.isEmpty(param.getWeeklyDailyRealityList()) || param.getWeeklyDailyRealityList().size()==0){
                throw new CoolException("参数为空:WeeklyDailyRealityList");
            } else if (Cools.isEmpty(param.getWeeklyType())){
                throw new CoolException("参数为空:WeeklyDailyPlanList");
            } else if (Cools.isEmpty(param.getType())){
                throw new CoolException("参数为空:Type");
            } else if (Cools.isEmpty(param.getWeeklyType())){
                throw new CoolException("参数为空:Weekly");
            }
            Date now = new Date();
            Weekly weekly = new Weekly();
            weekly.setHostId(getHostId());
            weekly.setDeptId(getDeptId());               // 所属部门
            weekly.setUserId(getUserId());               // 所属人员
            weekly.setDirector(getUserId());               // 所属人员
            weekly.setCreateBy(getUserId());
            weekly.setCreateTime(now);
            weekly.setUpdateBy(getUserId());
            weekly.setUpdateTime(now);
            List<Date> dateList = new ArrayList<>();//获取周一与周日日期
            switch (param.getWeeklyType()) {
                case 1:
                    dateList = TimeCalculatorUtils.WeeklyMondayAndSundayFront(now);
                    weekly.setStatus(2);
                    break;
                case 2:
                    dateList = TimeCalculatorUtils.WeeklyMondayAndSundayNow(now);
                    weekly.setStatus(1);
                    break;
                case 3:
                    dateList = TimeCalculatorUtils.WeeklyMondayAndSundayAfter(now);
                    weekly.setStatus(0);
                    break;
                default:
                    log.error("请选择日期:参数异常:Weekly="+param.getWeeklyType());
                    throw new CoolException("请选择日期");
            }
            Integer weeklyRepeatCount = weeklyService.selectUserStartAndEnd(dateList, getUserId());
            if (Cools.isEmpty(weeklyRepeatCount) && weeklyRepeatCount!=0){
                log.error("周计划已存在==》开始日期:"+dateList.get(0)+"结束日期:"+dateList.get(1)+"员工:"+getUser().getNickname());
                throw new CoolException("周计划已存在==》开始日期:"+dateList.get(0)+"结束日期:"+dateList.get(1)+"员工:"+getUser().getNickname());
            }
//            List<CstmrUtilsParam> cstmrUtilsParamList = JSON.parseArray(weekly.getCstmrIdsPlan(), CstmrUtilsParam.class);
            weekly.setStartTime(dateList.get(0));
            weekly.setEndTime(dateList.get(1));
            weekly.setWeeklyYear(TimeCalculatorUtils.timeYest(weekly.getStartTime()));
            weekly.setWeeklyMonth(TimeCalculatorUtils.timeMonth(weekly.getStartTime()));
            weekly.setWeeklyDay(TimeCalculatorUtils.timeDay(weekly.getStartTime()));
            weekly.setWeeklyNowMonth(TimeCalculatorUtils.WeeklyNowMonthDay(weekly.getStartTime()));
            weekly.setWeeklyDayMonth(weekly.getWeeklyMonth()+"月第"+weekly.getWeeklyNowMonth()+"周");
            List<Date> dates = TimeCalculatorUtils.WeeklyListDays(dateList);//获取周一到周日日期
            try{
                weeklyService.insert(weekly);
            } catch (Exception e) {
                log.error("新增周计划主表失败,异常信息:"+e);
                throw new CoolException("新增周计划主表失败");
            }
            List<CstmrUtilsParam> cstmrUtilsParamList = new ArrayList<>();
            for (WeeklyDailyReality weeklyDailyReality : param.getWeeklyDailyRealityList()){
                weeklyDailyReality.setHostId(getHostId());
                weeklyDailyReality.setDeptId(getDeptId());               // 所属部门
                weeklyDailyReality.setUserId(getUserId());               // 所属人员
                weeklyDailyReality.setDirector(getUserId());               // 所属人员
                weeklyDailyReality.setCreateBy(getUserId());
                weeklyDailyReality.setCreateTime(now);
                weeklyDailyReality.setUpdateBy(getUserId());
                weeklyDailyReality.setUpdateTime(now);
                weeklyDailyReality.setStatus(weekly.getStatus());
                weeklyDailyReality.setDailyTime(dates.get(weeklyDailyReality.getWeeklyDay()-1));
                weeklyDailyReality.setWeeklyId(weekly.getId());
                try{
                    weeklyDailyRealityService.insert(weeklyDailyReality);
                } catch (Exception e){
                    log.error("新增日计划失败"+e);
                    throw new CoolException("新增日计划失败");
                }
            }
        } catch (Exception e){
            log.error("创建周计划异常,异常信息:"+e);
            throw new CoolException("创建周计划失败==>"+e);
        }
        return R.ok("创建成功");
    }
    @RequestMapping(value = "/weekly/from/modify/auth")
    @ManagerAuth(memo = "周计划/日计划/日实际")
    @Transactional
    public R formAddModify(@RequestBody WeeklyDomainParam param){
        try{
            if (Cools.isEmpty(param)){
                throw new CoolException("参数为空:WeeklyDomainParam");
            } else if (Cools.isEmpty(param.getWeeklyDailyPlanList()) || param.getWeeklyDailyPlanList().size()==0){
                throw new CoolException("参数为空:WeeklyDailyPlanList");
            } else if (Cools.isEmpty(param.getWeeklyId())){
                throw new CoolException("参数为空:WeeklyId");
            } else if (Cools.isEmpty(param.getWeeklyType())){
                throw new CoolException("参数为空:WeeklyDailyPlanList");
            } else if (Cools.isEmpty(param.getType())){
                throw new CoolException("参数为空:Type");
            } else if (Cools.isEmpty(param.getWeeklyType())){
                throw new CoolException("参数为空:Weekly");
            }
            Date now = new Date();
            Weekly weekly = weeklyService.selectById(param.getWeeklyId());
            weekly.setUpdateBy(getUserId());
            weekly.setUpdateTime(now);
            List<Date> dateList = new ArrayList<>();//获取周一与周日日期
            dateList = TimeCalculatorUtils.WeeklyMondayAndSundayNow(weekly.getStartTime());
//            List<CstmrUtilsParam> cstmrUtilsParamList = JSON.parseArray(weekly.getCstmrIdsPlan(), CstmrUtilsParam.class);
            List<Date> dates = TimeCalculatorUtils.WeeklyListDays(dateList);//获取周一到周日日期
            try{
                weeklyService.updateById(weekly);
            } catch (Exception e) {
                log.error("更新周计划主表失败,异常信息:"+e);
                throw new CoolException("更新周计划主表失败");
            }
            List<CstmrUtilsParam> cstmrUtilsParamList = new ArrayList<>();
            for (WeeklyDailyPlan  weeklyDailyPlan: param.getWeeklyDailyPlanList()){
                WeeklyDailyPlan weeklyDailyPlan1 = new WeeklyDailyPlan();
                if (!Cools.isEmpty(weeklyDailyPlan.getId())){
                    Long weeklyDailyPlanId = weeklyDailyPlan.getId();
                    weeklyDailyPlan1 = weeklyDailyPlanService.selectById(weeklyDailyPlan.getId());
                    if (Cools.isEmpty(weeklyDailyPlan)){
                        throw new CoolException("更新失败:id:"+weeklyDailyPlanId);
                    }
                    weeklyDailyPlan1.setComment(weeklyDailyPlan1.getComment()+";"+weeklyDailyPlan.getComment());
                    weeklyDailyPlan1.setWorkContent(weeklyDailyPlan.getWorkContent());
                    weeklyDailyPlan1.setWorkPurpose(weeklyDailyPlan.getWorkPurpose());
                    weeklyDailyPlan1.setMemo(weeklyDailyPlan.getMemo());
                    weeklyDailyPlan1.setUpdateBy(getUserId());
                    weeklyDailyPlan1.setUpdateTime(now);
                    weeklyDailyPlanService.updateById(weeklyDailyPlan1);
                }else {
                    weeklyDailyPlan.setHostId(getHostId());
                    weeklyDailyPlan.setDeptId(getDeptId());               // 所属部门
                    weeklyDailyPlan.setUserId(getUserId());               // 所属人员
                    weeklyDailyPlan.setDirector(getUserId());               // 所属人员
                    weeklyDailyPlan.setCreateBy(getUserId());
                    weeklyDailyPlan.setCreateTime(now);
                    weeklyDailyPlan.setUpdateBy(getUserId());
                    weeklyDailyPlan.setUpdateTime(now);
                    weeklyDailyPlan.setStatus(weekly.getStatus());
                    weeklyDailyPlan.setDailyTime(dates.get(weeklyDailyPlan.getWeeklyDay()-1));
                    weeklyDailyPlan.setWeeklyId(weekly.getId());
                    try{
                        weeklyDailyPlanService.insert(weeklyDailyPlan);
                    } catch (Exception e){
                        log.error("新增日计划失败"+e);
                        throw new CoolException("新增日计划失败");
                    }
                }
            }
        } catch (Exception e){
            log.error("更新周计划异常,异常信息:"+e);
            throw new CoolException("更新周计划失败==>"+e);
        }
        return R.ok("更新成功");
    }
    @RequestMapping(value = "/weekly/from/modify/auth2")
    @ManagerAuth(memo = "周计划/日计划/日实际")
    @Transactional
    public R formAddModify2(@RequestBody WeeklyDomainParam param){
        try{
            if (Cools.isEmpty(param)){
                throw new CoolException("参数为空:WeeklyDomainParam");
            } else if (Cools.isEmpty(param.getWeeklyDailyRealityList()) || param.getWeeklyDailyRealityList().size()==0){
                throw new CoolException("参数为空:WeeklyDailyRealityList");
            } else if (Cools.isEmpty(param.getWeeklyId())){
                throw new CoolException("参数为空:WeeklyId");
            } else if (Cools.isEmpty(param.getWeeklyType())){
                throw new CoolException("参数为空:WeeklyDailyPlanList");
            } else if (Cools.isEmpty(param.getType())){
                throw new CoolException("参数为空:Type");
            } else if (Cools.isEmpty(param.getWeeklyType())){
                throw new CoolException("参数为空:Weekly");
            }
            Date now = new Date();
            Weekly weekly = weeklyService.selectById(param.getWeeklyId());
            weekly.setUpdateBy(getUserId());
            weekly.setUpdateTime(now);
            List<Date> dateList = new ArrayList<>();//获取周一与周日日期
            dateList = TimeCalculatorUtils.WeeklyMondayAndSundayNow(weekly.getStartTime());
//            List<CstmrUtilsParam> cstmrUtilsParamList = JSON.parseArray(weekly.getCstmrIdsPlan(), CstmrUtilsParam.class);
            List<Date> dates = TimeCalculatorUtils.WeeklyListDays(dateList);//获取周一到周日日期
            try{
                weeklyService.updateById(weekly);
            } catch (Exception e) {
                log.error("更新周计划主表失败,异常信息:"+e);
                throw new CoolException("更新周计划主表失败");
            }
            List<CstmrUtilsParam> cstmrUtilsParamList = new ArrayList<>();
            for (WeeklyDailyReality  weeklyDailyReality: param.getWeeklyDailyRealityList()){
                WeeklyDailyReality weeklyDailyReality1 = new WeeklyDailyReality();
                if (!Cools.isEmpty(weeklyDailyReality.getId())){
                    Long weeklyDailyPlanId = weeklyDailyReality.getId();
                    weeklyDailyReality1 = weeklyDailyRealityService.selectById(weeklyDailyReality.getId());
                    if (Cools.isEmpty(weeklyDailyReality)){
                        throw new CoolException("更新失败:id:"+weeklyDailyPlanId);
                    }
                    weeklyDailyReality1.setComment(weeklyDailyReality1.getComment()+";"+weeklyDailyReality.getComment());
                    weeklyDailyReality1.setWorkContent(weeklyDailyReality.getWorkContent());
                    weeklyDailyReality1.setWorkPurpose(weeklyDailyReality.getWorkPurpose());
                    weeklyDailyReality1.setMemo(weeklyDailyReality.getMemo());
                    weeklyDailyReality1.setUpdateBy(getUserId());
                    weeklyDailyReality1.setUpdateTime(now);
                    weeklyDailyRealityService.updateById(weeklyDailyReality1);
                }else {
                    weeklyDailyReality.setHostId(getHostId());
                    weeklyDailyReality.setDeptId(getDeptId());               // 所属部门
                    weeklyDailyReality.setUserId(getUserId());               // 所属人员
                    weeklyDailyReality.setDirector(getUserId());               // 所属人员
                    weeklyDailyReality.setCreateBy(getUserId());
                    weeklyDailyReality.setCreateTime(now);
                    weeklyDailyReality.setUpdateBy(getUserId());
                    weeklyDailyReality.setUpdateTime(now);
                    weeklyDailyReality.setStatus(weekly.getStatus());
                    weeklyDailyReality.setDailyTime(dates.get(weeklyDailyReality.getWeeklyDay()-1));
                    weeklyDailyReality.setWeeklyId(weekly.getId());
                    try{
                        weeklyDailyRealityService.insert(weeklyDailyReality);
                    } catch (Exception e){
                        log.error("新增日计划失败"+e);
                        throw new CoolException("新增日计划失败");
                    }
                }
            }
        } catch (Exception e){
            log.error("更新周计划异常,异常信息:"+e);
            throw new CoolException("更新周计划失败==>"+e);
        }
        return R.ok("更新成功");
    }
    @RequestMapping(value = "/weekly/detl/all/auth")
@@ -199,4 +553,11 @@
        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);
    }
}