中扬CRM客户关系管理系统
LSH
2023-10-10 dda5c81dbf88549ade7aaaf352a261c7d638f045
src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java
@@ -144,24 +144,28 @@
        priOnline2.setItemId(Long.parseLong(map.get("itemId").toString()));
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
        priOnline2.setOrderNum(format.format(new Date()));
        //创建人员
        priOnline2.setUserId(getUserId());
        //创建人员部门
        priOnline2.setDeptId(getDeptId());
        //更新时间
        priOnline2.setUpdateTime(new Date());
        //更新人员
        priOnline2.setUpdateUserId(getUserId());
        //状态,未完成
        priOnline2.setStatus(0);
        //业务员
//        Item item = itemService.selectById(priOnline.getItemId());
        Plan plan = planService.selectById(priOnline2.getItemId());
        User userUp = userService.selectById(plan.getUserId());
        //业务员
        priOnline2.setUserId(userUp.getId());
        //业务员部门
        priOnline2.setDeptId(userUp.getDeptId());
        //更新人员
        priOnline2.setUpdateUserId(getUserId());
        //更新时间
        priOnline2.setUpdateTime(new Date());
        //状态,未完成
        priOnline2.setStatus(0);
        if (plan.getStatus()!=1){
            return R.error("此规划单状态改变,请刷新页面重新选择!");
        }
        priOnline2.setMemberId(plan.getUserId());
        priOnline2.setMemberId(getUserId());
        Cstmr cstmr = cstmrService.selectById(plan.getCstmrId());
        priOnline2.setTemplateName(cstmr.getName());  //甲方单位名称
@@ -182,7 +186,7 @@
        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("接取核价任务");
        initNames.add("完成核价");
@@ -403,7 +407,7 @@
            map.put("id", priOnline2.getId());
//            map.put("value", priOnline2.getOrderNum() + "/" + priOnline2.getPlanId$() + "/" + priOnline2.getMemberId$());
//            map.put("value", priOnline2.getOrderNum() + "/" + priOnline2.getTemplateName());
            map.put("value", priOnline2.getOrderNum() + "/" + priOnline2.getPlanId$() + "/" + priOnline2.getMemberId$() + "/" + priOnline2.getTemplateName());
            map.put("value", priOnline2.getOrderNum() + "/" + priOnline2.getPlanId$() + "/" + priOnline2.getUser$() + "/" + priOnline2.getTemplateName());
            result.add(map);
        }
@@ -438,13 +442,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("抱歉,您没有提交的权限");
@@ -480,8 +483,6 @@
                }
                break;
            case 1:
                User user = userService.selectById(priOnline2.getUserId());
                // 本部门经理审核  节点负责人
                Plan plan = planService.selectById(priOnline2.getItemId());
                PlanType planType = planTypeService.selectById(plan.getPlanType());
@@ -518,6 +519,8 @@
                    // 修改规划单状态
                    priOnline2.setSettle(2);  // 申请通过
                    priOnline2.setUpdateTime(now);
                    priOnline2.setUpdateUserId(getUserId());
                    priOnline2.setMemberId(plan.getUserId());
                    if (!priOnline2Service.updateById(priOnline2)) {
                        throw new CoolException("审核失败,请联系管理员");
                    }
@@ -552,9 +555,15 @@
                priOnline2.setSettle(3);  // 审批通过
                priOnline2.setStatus(1);
                priOnline2.setUpdateTime(new Date());
                priOnline2.setUpdateUserId(getUserId());
                if (!priOnline2Service.updateById(priOnline2)) {
                    throw new CoolException("确认失败,请联系管理员");
                }
                try{
                    priQuoteAdd(priOnline2.getId(),plannerId);
                }catch (Exception e){
                    return R.error("自动生成报价单失败");
                }
                break;
            default:
@@ -563,4 +572,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()));
        //业务员
        Plan plan = planService.selectById(priQuote.getItemId());
        User userUp = userService.selectById(plan.getUserId());
        //业务员
        priQuote.setUserId(userUp.getId());
        //更新人员
        priQuote.setUpdateUserId(getUserId());
        //所属部门
        priQuote.setDeptId(userUp.getDeptId());
        //更新时间
        priQuote.setUpdateTime(new Date());
        //模板
        Integer i = priType == 1L ? 1 : 2;
        priQuote.setTemplate(i.toString());
        //设置项目流程
        plan.setStep(3);
//        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();
        }
        priQuote.setMemberId(manager.getId());
        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);
    }
}