中扬CRM客户关系管理系统
#
LSH
2023-11-23 456f8b69675f9734efe19ed1842c9821ee080b1c
src/main/java/com/zy/crm/manager/controller/PlanController.java
@@ -6,12 +6,10 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.R;
import com.core.common.*;
import com.core.domain.KeyValueVo;
import com.core.exception.CoolException;
import com.zy.crm.common.entity.PhoneCodeTypeParam;
import com.zy.crm.common.model.SettleDto;
import com.zy.crm.common.service.OssService;
import com.zy.crm.common.utils.FileSaveExampleUtil;
@@ -118,6 +116,23 @@
        });
    }
    @RequestMapping(value = "/plan/assistantPlan/view/auth")
    @ManagerAuth(memo = "查看副规划申请单")
    @Transactional
    public R assistantPlanView(@RequestParam Long hostPlanId) {
        Plan plan = planService.selectById(hostPlanId);
        if (plan.getAssistantHostSign()==1){
            EntityWrapper<Plan> wrapper = new EntityWrapper<>();
            wrapper.eq("id",plan.getHostPlanId());
            Page<Plan> planPage = planService.selectPage(new Page<>(1, 1), wrapper);
            return R.ok(planPage);
        }
        EntityWrapper<Plan> wrapper = new EntityWrapper<>();
        wrapper.eq("id",plan.getAssistantPlanId());
        Page<Plan> planPage = planService.selectPage(new Page<>(1, 1), wrapper);
        return R.ok(planPage);
    }
    @RequestMapping(value = "/plan/add/auth")
    @ManagerAuth(memo = "添加规划申请单")
    @Transactional
@@ -169,6 +184,11 @@
            manager = getUser();
        }
        PlanType planType = planTypeService.selectById(plan.getPlanType());
        if (planType.getType().equals(2)) {
            plan.setStatus2(0);
        }else {
            plan.setStatus2(10);
        }
        User planLeader = planTypeService.findPlanLeader(planType);
        plan.setSettleMsg(JSON.toJSONString(SettleDto.init(plan, manager, planLeader)));
@@ -186,6 +206,10 @@
            throw new CoolException("保持失败,请重试");
        }
        if (!smsCodeService.sendSmsCodeText(planLeader.getMobile(), PhoneCodeTypeParam.ALIYUN_M1ABAC630E)) {
            return R.ok("创建成功但短信发送失败!");
        }
        return R.ok();
    }
@@ -194,6 +218,13 @@
    @Transactional
    public R assistantPlanAdd(@RequestParam Long hostPlanId) {
        Plan hostPlan = planService.selectById(hostPlanId);
        if (hostPlan.getAssistantHostSign()!=0){
            return R.error("此规划单不需要创建副流程");
        }
        PlanType planType2 = planTypeService.selectById(hostPlan.getPlanType());
        if (planType2.getType()!=2){
            return R.error("此规划单不需要创建副流程");
        }
        if (!Cools.isEmpty(hostPlan.getAssistantPlanId()) && hostPlan.getAssistantPlanId()!=0){
            return R.error("此规划单已存在副规划单,id为"+hostPlan.getAssistantPlanId());
        }
@@ -264,6 +295,9 @@
        if (!planService.updateById(hostPlan)) {
            throw new CoolException("更新失败,请重试");
        }
        if (!smsCodeService.sendSmsCodeText(planLeader.getMobile(), PhoneCodeTypeParam.ALIYUN_M1ABAC630E)) {
            return R.ok("创建成功但短信发送失败!");
        }
        return R.ok("保存成功");
    }
@@ -333,6 +367,7 @@
                 Plan planB = planService.selectById(planA.getHostPlanId());
                 planB.setAssistantPlanId(0L);
                 planB.setHostPlanId(0L);
                 planB.setStatus2(0);
                 planService.updateById(planB);
             }else {
                 if (!Cools.isEmpty(planA.getAssistantPlanId()) && planA.getAssistantPlanId()!=0){
@@ -511,8 +546,7 @@
//                break;
            case 1:
                // 查找规划组长
                PlanType planType = planTypeService.selectById(plan.getPlanType());
                User planLeader = planTypeService.findPlanLeader(planType);
                User planLeader = userService.selectById(plan.getDirector());
                if (Cools.isEmpty(planLeader)) {
                    throw new CoolException("未查找到规划组长,请联系管理员");
                }
@@ -558,11 +592,6 @@
                plan.setUpdateBy(getUserId());
                plan.setUpdateTime(new Date());
                boolean sendSmsCode = smsCodeService.sendSmsCodeText(planner.getMobile());
                if (!sendSmsCode) {
                    System.out.println("短信发送失败!");
                }
                if (!planService.updateById(plan)) {
                    throw new CoolException("审核失败,请联系管理员");
                }
@@ -573,6 +602,10 @@
                planFoll.setUserId(planner.getId());
                if (!planFollService.insert(planFoll)) {
                    throw new CoolException("审核失败,请联系管理员");
                }
                if (!smsCodeService.sendSmsCodeText(planner.getMobile(), PhoneCodeTypeParam.ALIYUN_M6F3C81FE3)) {
                    return R.ok("审核成功但短信发送失败!");
                }
                break;
            case 2:
@@ -620,6 +653,9 @@
                if (!planService.updateById(plan)) {
                    throw new CoolException("审核失败,请联系管理员");
                }
                if (!smsCodeService.sendSmsCodeText(salesman.getMobile(), PhoneCodeTypeParam.ALIYUN_M1ABAC630E)) {
                    return R.ok("审核成功但短信发送失败!");
                }
                break;
            case 3:
                // 业务员
@@ -653,6 +689,12 @@
                plan.setStatus(1);  // 审批通过
                plan.setUpdateBy(getUserId());
                plan.setUpdateTime(new Date());
                if (plan.getAssistantHostSign()==1){
                    Plan planHost = planService.selectById(plan.getHostPlanId());
                    planHost.setStatus2(1);
                    planService.updateById(planHost);
                }
                if (!planService.updateById(plan)) {
                    throw new CoolException("审核失败,请联系管理员");
@@ -717,6 +759,9 @@
        }
        // 查找规划组长
        PlanType planType = planTypeService.selectById(plan.getPlanType());
        if (plan.getAssistantHostSign()==1){
            planType.setType(1);
        }
        User planLeader = planTypeService.findPlanLeader(planType);
        if (Cools.isEmpty(planLeader)) {
            throw new CoolException("未查找到规划组长,请联系管理员");
@@ -783,6 +828,7 @@
        EntityWrapper<Plan> wrapper = new EntityWrapper<>();
        wrapper.like("name", condition);
        wrapper.eq("status",1);
        wrapper.eq("assistant_host_sign",0);
        List<ProcessPermissions> processPermissionsList = processPermissionsService.selectList(new EntityWrapper<ProcessPermissions>().eq("process_memo", 4).or().eq("process_memo", 5));//2:核价流程
        int type =0;
@@ -817,6 +863,20 @@
            map.put("value", plan.getName());
            result.add(map);
        }
        if (type==1){
            EntityWrapper<Plan> wrapper2 = new EntityWrapper<>();
            wrapper2.like("name", condition);
            wrapper2.eq("status",1);
            wrapper2.eq("assistant_host_sign",1);
            List<Plan> plan2s = planService.selectList(wrapper2);
            for (Plan plan : plan2s){
                Map<String, Object> map = new HashMap<>();
                map.put("id", plan.getId());
//            map.put("value", plan.getName()+"---"+plan.getId());
                map.put("value", plan.getName());
                result.add(map);
            }
        }
        return R.ok(result);
    }
@@ -845,7 +905,7 @@
     * excel导入
     */
    @PostMapping(value = "/plan/excel/import/auth")
    @ManagerAuth(memo = "甲方单位Excel导入")
    @ManagerAuth(memo = "客户信息Excel导入")
//    @Transactional
    public R planExcelImport(MultipartFile file) throws IOException {
        InputStream inStream = file.getInputStream();