中扬CRM客户关系管理系统
#
LSH
2023-10-17 fabb29dfd7fdcc19727c459c8ef309a86d73ed09
#
5个文件已修改
82 ■■■■■ 已修改文件
src/main/java/com/zy/crm/common/model/SettleDto.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/controller/ContractController.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/entity/Contract.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/contract/contract.html 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/contract/contract_more.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/common/model/SettleDto.java
@@ -290,7 +290,7 @@
            SettleDto dto = new SettleDto();
            dto.setStep(i);
            switch (i) {
                case 0:
                case 1:
                    dto.setTitle("开始");
                    dto.setMsg(user.getUsername() + names.get(i));
                    dto.setUserId(user.getId());
@@ -299,12 +299,12 @@
                    dto.setCurr(Boolean.TRUE);
                    list.add(dto);
                    break;
                case 1:
                    dto.setTitle(names.get(i));
                    dto.setUserId(user.getId());
                    dto.setUsername(user.getNickname());
                    list.add(dto);
                    break;
//                case 1:
//                    dto.setTitle(names.get(i));
//                    dto.setUserId(user.getId());
//                    dto.setUsername(user.getNickname());
//                    list.add(dto);
//                    break;
                case 2:
                    dto.setTitle(names.get(i));
                    dto.setUserId(manager.getId());
src/main/java/com/zy/crm/manager/controller/ContractController.java
@@ -1,7 +1,6 @@
package com.zy.crm.manager.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -26,16 +25,12 @@
import com.zy.crm.system.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.InputStreamResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ClassUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -53,7 +48,7 @@
    @Autowired
    private ProcessPermissionsService processPermissionsService;
    @RequestMapping(value = "/contract/{id}/auth")
    @RequestMapping(value = "/contract/{id}/auth2")
    @ManagerAuth
    public R get(@PathVariable("id") String id) {
        Contract contract = contractService.selectById(String.valueOf(id));
@@ -126,16 +121,22 @@
        contract.setDeptId(getDeptId());
        contract.setCreateTime(now);
        contract.setSettle(0);
        contract.setSettle(1);
        User manager = userService.getDeptManager(getHostId(), getUser().getDeptId());        // 获取部门领导
        User manager = new User();
        try{
            manager = userService.getDeptManager(getHostId(), getUser().getDeptId());        // 获取部门领导
        }catch (Exception e){
            manager = getUser();
        }
        contract.setDirector(manager.getId());
        List<String> initNames = new ArrayList<>();
        initNames.add("创建产品费用明细模板");
        initNames.add("提交产品费用明细");
        initNames.add("创建合同模板");
        initNames.add("提交合同");
        initNames.add("部门经理审核");
        ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 7).eq("process",  "3-1" ));//7:合同管理
        User president = userService.selectById(processPermissions.getUserId());
        initNames.add("总裁办"+president.getNickname()+"审核");
        initNames.add("总经办"+president.getNickname()+"审核");
        initNames.add("业务员确认");
        contract.setSettleMsg(JSON.toJSONString(SettleDto.initContract(manager,getUser(),president,initNames,4)));
@@ -350,18 +351,15 @@
        return R.ok().add(vos);
    }
    @PostMapping(value = "/contracr/approval/auth")
    @PostMapping(value = "/contract/approval/auth")
    @ManagerAuth
    public R approvalBusinessTrip(@RequestParam Long contracrId,
    public R approvalBusinessTrip(@RequestParam Long contractId,
                                  @RequestParam(required = false) Long plannerId){
        Contract contract = contractService.selectById(contracrId);
        Contract contract = contractService.selectById(contractId);
        assert contract != null;
        Date now = new Date();
        switch (contract.getSettle()) {
            case 0:
                User user2 = userService.selectById(contract.getUserId());
                User manager1 = userService.getDeptManager(getHostId(), user2.getDeptId());
                if (Cools.isEmpty(getUser())) {
                    return R.error("抱歉,您没有提交的权限");
                }
@@ -380,6 +378,9 @@
                            dto.setMsg(getUser().getNickname() + "提交完成");
                            dto.setTime(DateUtils.convert(now));
                            break;
                        case 2:
                            contract.setDirector(dto.getUserId());
                            break;
                        default:
                            break;
                    }
@@ -395,8 +396,8 @@
                break;
            case 1:
                // 本部门经理审核
                User user = userService.selectById(contract.getUserId());
                User manager = userService.getDeptManager(getHostId(), user.getDeptId());
                User manager = userService.selectById(contract.getDirector());
                if (manager.getId().equals(getUserId())) {
                    // 修改 settle 步骤数据
@@ -410,6 +411,9 @@
                                dto.setCurr(Boolean.TRUE);
                                dto.setMsg("部门经理" + manager.getNickname() + "审批通过");
                                dto.setTime(DateUtils.convert(now));
                                break;
                            case 3:
                                contract.setDirector(dto.getUserId());
                                break;
                            default:
                                break;
@@ -428,8 +432,7 @@
                }
                break;
            case 2:
                ProcessPermissions processPermissions = processPermissionsService.selectOne(new EntityWrapper<ProcessPermissions>().eq("process_memo", 7).eq("process", "3-1"));//3:报销流程
                User planLeader = userService.selectById(processPermissions.getUserId());       // 获取合同管理流程节点确认人
                User planLeader = userService.selectById(contract.getDirector());
                if (planLeader.getId().equals(getUserId())) {
@@ -445,6 +448,9 @@
                                dto.setMsg("总裁办" + planLeader.getNickname() + "审批通过");
                                dto.setTime(DateUtils.convert(now));
                                break;
                            case 4:
                                contract.setDirector(dto.getUserId());
                                break;
                            default:
                                break;
                        }
src/main/java/com/zy/crm/manager/entity/Contract.java
@@ -205,6 +205,12 @@
    @TableField("settle_msg")
    private String settleMsg;
    /**
     * 节点负责人
     */
    @ApiModelProperty(value= "节点负责人")
    private Long director;
    public Contract() {}
    public Contract(Long id, String customer, String address, String company, String companyAddress, String taxNum, String bank, String bankNum, Date createTime, Date updateTime, Long userId, Long updateBy, String filepath, String city, String shippingAddress, String shippingName, String shippingPhone, Double price, String email, String name, Integer status, String memo, String boss, String serial, Long deptId, Long hostId,Integer settle,String settleMsg) {
src/main/webapp/views/contract/contract.html
@@ -74,18 +74,20 @@
    {{# if (d.settle == 0) { }}
        <a class="layui-btn layui-btn-xs btn-edit" lay-event="approval">提交</a>
    {{# } }}
    {{# if (d.settle == 1) { }}
    {{# if (d.settle == 1 || d.settle == 2) { }}
        <a class="layui-btn layui-btn-xs btn-edit" lay-event="approval">审批</a>
    {{# } }}
    {{# if (d.settle == 2) { }}
    {{# if (d.settle == 3) { }}
        <a class="layui-btn layui-btn-xs btn-edit" lay-event="approval">确认</a>
    {{# } }}
    {{# if (d.settle == 0 || d.settle == 1) { }}
    {{# if (d.settle == 0 || d.settle == 1 || d.settle == 2) { }}
        <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</a>
        <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">编辑</a>
    {{# } }}
    {{# if (d.settle == 4) { }}
        <a class="layui-btn layui-btn-xs btn-edit" lay-event="generate">生成合同</a>
    {{# } }}
    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="sales">合同明细</a>
    <a class="layui-btn layui-btn-xs btn-edit" lay-event="generate">生成合同</a>
    <a class="layui-btn layui-btn-xs btn-edit" lay-event="upload">上传合同</a>
    <a class="layui-btn layui-btn-xs btn-edit" lay-event="download">下载</a>
</script>
src/main/webapp/views/contract/contract_more.html
@@ -135,7 +135,7 @@
        function init(){
            notice.msg('正在载入数据......', {icon: 4, position: "topRight"});
            $.ajax({
                url: baseUrl + "/contract/" + contractId + "/auth",
                url: baseUrl + "/contract/" + contractId + "/auth2",
                headers: {'token': localStorage.getItem('token')},
                method: 'GET',
                success: function (res) {