中扬CRM客户关系管理系统
LSH
2023-10-10 dda5c81dbf88549ade7aaaf352a261c7d638f045
src/main/java/com/zy/crm/manager/controller/PlanController.java
@@ -33,6 +33,7 @@
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.xml.crypto.Data;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
@@ -152,6 +153,8 @@
        PlanType planType = planTypeService.selectById(plan.getPlanType());
        User planLeader = planTypeService.findPlanLeader(planType);
        plan.setSettleMsg(JSON.toJSONString(SettleDto.init(plan, manager, planLeader)));
        plan.setDirector(planLeader.getId());
        if (!planService.insert(plan)) {
            throw new CoolException("保持失败,请重试");
@@ -417,6 +420,7 @@
                if (Cools.isEmpty(plannerId)) {
                    return R.error("指定规划员不能为空");
                }
                plan.setDirector(plannerId);
                User planner = userService.selectById(plannerId);
                // 修改 settle 步骤数据
                List<SettleDto> list = JSON.parseArray(plan.getSettleMsg(), SettleDto.class);
@@ -427,7 +431,11 @@
                            break;
                        case 2:
                            dto.setCurr(Boolean.TRUE);
                            if (Cools.isEmpty(dto.getMsg())){
                            dto.setMsg("售前组长" + planLeader.getNickname() + "审批通过");
                            }else {
                                dto.setMsg(dto.getMsg()+" ————————————————— "+DateUtils.convert(new Date())+" "+"售前组长" + planLeader.getNickname() + "审批通过");
                            }
                            dto.setTime(DateUtils.convert(new Date()));
                            break;
                        case 3:
@@ -472,6 +480,8 @@
                }
                // 业务员
                User salesman = userService.selectById(plan.getUserId());
                plan.setDirector(salesman.getId());
                // 修改 settle 步骤数据
                List<SettleDto> list0 = JSON.parseArray(plan.getSettleMsg(), SettleDto.class);
                for (SettleDto dto : list0) {
@@ -481,7 +491,11 @@
                            break;
                        case 3:
                            dto.setCurr(Boolean.TRUE);
                            if (Cools.isEmpty(dto.getMsg())){
                            dto.setMsg("规划员" + plannerUser.getNickname() + "审批通过");
                            }else {
                                dto.setMsg(dto.getMsg()+" ————————————————— "+DateUtils.convert(new Date())+" "+"规划员" + plannerUser.getNickname() + "审批通过");
                            }
                            dto.setTime(DateUtils.convert(new Date()));
                            break;
                        case 4:
@@ -517,7 +531,11 @@
                            break;
                        case 4:
                            dto.setCurr(Boolean.TRUE);
                            if (Cools.isEmpty(dto.getMsg())){
                            dto.setMsg("业务员" + salesman0.getNickname() + "审批通过");
                            }else {
                                dto.setMsg(dto.getMsg()+" ————————————————— "+DateUtils.convert(new Date())+" "+"业务员" + salesman0.getNickname() + "审批通过");
                            }
                            dto.setTime(DateUtils.convert(new Date()));
                            break;
                        default:
@@ -541,6 +559,47 @@
        return R.ok("审批成功");
    }
    @PostMapping(value = "/plan/approvalEnd/auth")
    @ManagerAuth(memo = "拒绝申请单")
    public R approvalEnd(@RequestParam Long planId,
                         @RequestParam(required = false) Long plannerId) {
        Plan plan = planService.selectById(planId);
        Date now = new Date();
        Long directorId = plan.getDirector();
        User director = userService.selectById(directorId);
        if (!director.getId().equals(getUserId())){
            return R.error("抱歉,您没有审核的权限");
        }
        List<SettleDto> planDtos = JSON.parseArray(plan.getSettleMsg(), SettleDto.class);
        List<SettleDto> planDtoList = new ArrayList<>();
        boolean sign = true;
        for (SettleDto dto : planDtos) {
            if (sign && dto.getUserId().equals(directorId) && plan.getSettle()+1==dto.getStep()){
                if (Cools.isEmpty(dto.getMsg())){
                    dto.setMsg(DateUtils.convert(now)+" "+director.getNickname()+"回退审批");
                }else {
                    dto.setMsg(dto.getMsg()+" ————————————————— "+DateUtils.convert(now)+" "+director.getNickname()+"回退审批");
                }
                sign = false;
            }
            if (sign){
                dto.setMsg(dto.getMsg()+" ————————————————— "+DateUtils.convert(now)+" "+director.getNickname()+"回退审批");
            }
            planDtoList.add(dto);
        }
        plan.setStatus(0);
        plan.setStep(1);
        plan.setSettle(1);
        PlanType planType = planTypeService.selectById(plan.getPlanType());
        User planLeader = planTypeService.findPlanLeader(planType);
        plan.setDirector(planLeader.getId());
        plan.setSettleMsg(JSON.toJSONString(planDtoList));
        planService.updateById(plan);
        return R.ok("回退成功");
    }
    @PostMapping(value = "/plan/planner/list/auth")
    @ManagerAuth
    public R plannerList(@RequestParam Long planId){