中扬CRM客户关系管理系统
LSH
2023-10-09 064e2b95e2a88f9679a1834e4dec95038c0482ff
src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java
@@ -42,7 +42,10 @@
    private PlanService planService;
    @Autowired
    private PriSalesService priSalesService;
    private  PlanTypeService planTypeService;
    @Autowired
    private ProcessPermissionsService processPermissionsService;
    @Autowired
    private PriQuoteService priQuoteService;
@@ -165,12 +168,20 @@
        priOnline2.setSettle(0);
        User manager = new User();
        try{
            manager = userService.getDeptManager(getHostId(), getUser().getDeptId());        // 获取部门领导
        }catch (Exception e){
            manager = getUser();
        }
//        User manager = new User();
//        try{
//            manager = userService.getDeptManager(getHostId(), getUser().getDeptId());        // 获取部门领导
//        }catch (Exception e){
//            manager = getUser();
//        }
        String node="2-";
        PlanType planType = planTypeService.selectById(plan.getPlanType());
        node = node+planType.getType();
        ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", node));//2:报价流程
        User manager = userService.selectById(processPermissions.getUserId());       // 获取报价流程节点2确认人
        User userUp = userService.selectById(plan.getUserId());                               // 获取业务员
        List<String> initNames = new ArrayList<>();
        initNames.add("接取核价任务");
@@ -427,13 +438,12 @@
        Date now = new Date();
        switch (priOnline2.getSettle()) {
            case 0:
                User user2 = userService.selectById(priOnline2.getUserId());
                User manager1 = new User();
                try{
                    manager1 = userService.getDeptManager(getHostId(), user2.getDeptId());        // 获取部门领导
                }catch (Exception e){
                    manager1 = user2;
                }
                // 本部门经理审核  节点负责人
                Plan plan1 = planService.selectById(priOnline2.getItemId());
                PlanType planType1 = planTypeService.selectById(plan1.getPlanType());
                ProcessPermissions processPermissions1 = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", "2-"+planType1.getType()));//2:报价流程
                User manager1 = userService.selectById(processPermissions1.getUserId());       // 获取报价流程节点2确认人
                if (Cools.isEmpty(getUser())) {
                    return R.error("抱歉,您没有提交的权限");
@@ -469,14 +479,19 @@
                }
                break;
            case 1:
                // 本部门经理审核
                User user = userService.selectById(priOnline2.getUserId());
                User manager = new User();
                try{
                    manager = userService.getDeptManager(getHostId(), getUser().getDeptId());        // 获取部门领导
                }catch (Exception e){
                    manager = user;
                }
                // 本部门经理审核  节点负责人
                Plan plan = planService.selectById(priOnline2.getItemId());
                PlanType planType = planTypeService.selectById(plan.getPlanType());
                ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5).eq("process", "2-"+planType.getType()));//2:报价流程
                User manager = userService.selectById(processPermissions.getUserId());       // 获取报价流程节点2确认人
//                User manager = new User();
//                try{
//                    manager = userService.getDeptManager(getHostId(), getUser().getDeptId());        // 获取部门领导
//                }catch (Exception e){
//                    manager = user;
//                }
                if (manager.getId().equals(getUserId())) {
                    // 修改 settle 步骤数据
@@ -488,7 +503,7 @@
                                break;
                            case 2:
                                dto.setCurr(Boolean.TRUE);
                                dto.setMsg("部门经理" + manager.getNickname() + "审批通过");
                                dto.setMsg(manager.getNickname() + "审批通过");
                                dto.setTime(DateUtils.convert(now));
                                break;
                            default:
@@ -532,10 +547,16 @@
                priOnline2.setSettleMsg(JSON.toJSONString(list2));
                // 修改规划单状态
                priOnline2.setSettle(3);  // 审批通过
                priOnline2.setStatus(1);
                priOnline2.setUpdateTime(new Date());
                if (!priOnline2Service.updateById(priOnline2)) {
                    throw new CoolException("确认失败,请联系管理员");
                }
                try{
                    priQuoteAdd(priOnline2.getId(),plannerId);
                }catch (Exception e){
                    return R.error("自动生成报价单失败");
                }
                break;
            default:
@@ -544,4 +565,70 @@
        return R.ok("审批成功");
    }
    public void priQuoteAdd(Long priOnlineId,Long priType){
        Pri pri = null;
        if (priType==1L){
            pri = priService.selectById(114);
        }else {
            pri = priService.selectById(115);
        }
        PriOnline2 priOnline2 = priOnline2Service.selectById(priOnlineId);
        PriQuote priQuote = new PriQuote();
        priQuote.setCreateTime(new Date());
        priQuote.setTitle(pri.getTitle());
        priQuote.setTemplateName(priOnline2.getTemplateName());
        priQuote.setSheetData(pri.getSheetData());
        priQuote.setPriOnlineId(priOnlineId);
        priQuote.setItemId(priOnline2.getItemId());
        priQuote.setOrderNum(priOnline2.getOrderNum());
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
        priQuote.setInOrderNum(format.format(new Date()));
        //创建人员
        priQuote.setUserId(getUserId());
        //更新人员
        priQuote.setUpdateUserId(getUserId());
        //所属部门
        priQuote.setDeptId(getDeptId());
        //更新时间
        priQuote.setUpdateTime(new Date());
        //模板
        Integer i = priType == 1L ? 1 : 2;
        priQuote.setTemplate(i.toString());
        //业务员
        Plan plan = planService.selectById(priQuote.getItemId());
        priQuote.setMemberId(plan.getUserId());
        //设置项目流程
        plan.setStep(5);
//        priQuote.setForm(JSON.toJSONString(map));     // 自定义表单内容
        priQuote.setSettle(1);  // 1.开始
        User manager = new User();
        try{
            manager = userService.getDeptManager(getHostId(), getUser().getDeptId());        // 获取部门领导
        }catch (Exception e){
            manager = getUser();
        }
        ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 2).eq("process", "3-1"));//2:报价流程
        User president = userService.selectById(processPermissions.getUserId());       // 获取报价流程节点3-1确认人
        priQuote.setSettleMsg(JSON.toJSONString(SettleDto.initPriQuote(plan, manager,president,getUser())));
        planService.updateById(plan);
        priQuoteService.insert(priQuote);
    }
    @PostMapping(value = "/priOnline2/priQuoteAdd/list/auth")
    @ManagerAuth
    public R priOnline2priQuoteAdd(@RequestParam Long planId){
        List<KeyValueVo> vos = new ArrayList<>();
        vos.add(new KeyValueVo("报价模板1", 1L));
        vos.add(new KeyValueVo("报价模板2", 2L));
        return R.ok().add(vos);
    }
}