中扬CRM客户关系管理系统
LSH
2023-11-09 858f10899cc7e6c35647a4a61f30f35e88af2407
#规划分离核价归一
8个文件已修改
661 ■■■■ 已修改文件
src/main/java/com/zy/crm/manager/controller/PlanController.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/entity/Plan.java 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/entity/PriOnline2.java 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/PriOnline2Mapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/plan/plan.js 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/priOnline2/priOnline.js 143 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/plan/plan.html 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/crm/manager/controller/PlanController.java
@@ -118,6 +118,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 +186,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)));
@@ -333,6 +355,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 +534,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("未查找到规划组长,请联系管理员");
                }
@@ -654,6 +676,12 @@
                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 +745,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 +814,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 +849,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);
    }
src/main/java/com/zy/crm/manager/controller/PriOnline2Controller.java
@@ -89,7 +89,7 @@
                  @RequestParam(required = false) String condition,
                  @RequestParam Map<String, Object> param) {
        EntityWrapper<PriOnline2> wrapper = new EntityWrapper<>();
        wrapper.setSqlSelect("id,title,create_time as createTime,filepath,settle,settle_size as settleSize,item_id as itemId,order_num as orderNum,template_name as templateName,user_id as userId,dept_id as deptId,status,update_time as updateTime,check_data as checkData,update_user_id as updateUserId,member_id as memberId");
        wrapper.setSqlSelect("id,title,create_time as createTime,assistant_plan_id as assistantPlanId,host_plan_id as hostPlanId,assistant_host_sign as assistantHostSign,filepath,settle,settle_size as settleSize,item_id as itemId,order_num as orderNum,template_name as templateName,user_id as userId,dept_id as deptId,status,update_time as updateTime,check_data as checkData,update_user_id as updateUserId,member_id as memberId");
//        wrapper.in("member_id", getUserRoleBelongsToUserId("allopen"));
        excludeTrash(param);
        convert(param, wrapper);
@@ -143,68 +143,68 @@
            wrapper.or().eq("host_id", 1);
        }
    }
    @RequestMapping(value = "/priOnline2/HJ/add/auth")
    @ManagerAuth(memo = "接取集成核价任务")
    public R addHJ(PriOnline2 priOnline2) {
        PriOnline2 priOnline21 = priOnline2Service.selectById(priOnline2.getId());
        if (priOnline21.getSettle()!=1 || !priOnline21.getMemberId().equals(0L)){
            return R.error("此集成核价单状态已改变,请刷新页面重新选择!");
        }
        Date now = new Date();
        priOnline21.setMemberId(getUserId());
//    @RequestMapping(value = "/priOnline2/HJ/add/auth")
//    @ManagerAuth(memo = "接取集成核价任务")
//    public R addHJ(PriOnline2 priOnline2) {
//        PriOnline2 priOnline21 = priOnline2Service.selectById(priOnline2.getId());
//        if (priOnline21.getSettle()!=1 || !priOnline21.getMemberId().equals(0L)){
//            return R.error("此集成核价单状态已改变,请刷新页面重新选择!");
//        }
//        Date now = new Date();
//        priOnline21.setMemberId(getUserId());
//
//
//        List<SettleDto> planDtos = JSON.parseArray(priOnline21.getSettleMsg(), SettleDto.class);
//        List<SettleDto> planDtoList = new ArrayList<>();
//        for (SettleDto dto : planDtos) {
//            if (dto.getStep().equals(2)) {
//                dto.setUserId(getUserId());
//                dto.setUsername(getUser().getNickname());
//                if (Cools.isEmpty(dto.getMsg())) {
//                    dto.setMsg(getUser().getNickname() + "接取核价");
//                } else {
//                    dto.setMsg(dto.getMsg() + PZH + DateUtils.convert(now) + " " + getUser().getNickname() + "接取核价");
//                }
//                dto.setTime(DateUtils.convert(new Date()));
//            }
//            planDtoList.add(dto);
//        }
//        priOnline21.setSettleMsg(JSON.toJSONString(planDtoList));
//        priOnline21.setUpdateUserId(getUserId());
//        priOnline21.setUpdateTime(now);
//        priOnline2Service.updateById(priOnline21);
//        return R.ok("接取成功");
//    }
        List<SettleDto> planDtos = JSON.parseArray(priOnline21.getSettleMsg(), SettleDto.class);
        List<SettleDto> planDtoList = new ArrayList<>();
        for (SettleDto dto : planDtos) {
            if (dto.getStep().equals(2)) {
                dto.setUserId(getUserId());
                dto.setUsername(getUser().getNickname());
                if (Cools.isEmpty(dto.getMsg())) {
                    dto.setMsg(getUser().getNickname() + "接取核价");
                } else {
                    dto.setMsg(dto.getMsg() + PZH + DateUtils.convert(now) + " " + getUser().getNickname() + "接取核价");
                }
                dto.setTime(DateUtils.convert(new Date()));
            }
            planDtoList.add(dto);
        }
        priOnline21.setSettleMsg(JSON.toJSONString(planDtoList));
        priOnline21.setUpdateUserId(getUserId());
        priOnline21.setUpdateTime(now);
        priOnline2Service.updateById(priOnline21);
        return R.ok("接取成功");
    }
    @RequestMapping(value = "/priOnline2/HJ/search/auth")
    @ManagerAuth
    public R priOnline2Search(String condition) {
        EntityWrapper<PriOnline2> wrapper = new EntityWrapper<>();
        wrapper.like("template_name", condition);
        wrapper.eq("member_id",0L);
        List<ProcessPermissions> processPermissionsList = processPermissionsService.selectList(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5));//2:核价流程
        int type =0;
        for (ProcessPermissions processPermissions:processPermissionsList){
            if (getUserId().equals(processPermissions.getUserId())){
                type=1;
                break;
            }
        }
        if (type==0){
            return R.error("你不是核价员,无权接任务");
        }
        List<Map<String, Object>> result = new ArrayList<>();
        List<PriOnline2> priOnline2s = priOnline2Service.selectList(wrapper);
        for (PriOnline2 priOnline2 : priOnline2s){
            Map<String, Object> map = new HashMap<>();
            map.put("id", priOnline2.getId());
            map.put("name", priOnline2.getTemplateName()+" - ID:"+priOnline2.getId());
            result.add(map);
        }
        return R.ok(result);
    }
//    @RequestMapping(value = "/priOnline2/HJ/search/auth")
//    @ManagerAuth
//    public R priOnline2Search(String condition) {
//        EntityWrapper<PriOnline2> wrapper = new EntityWrapper<>();
//        wrapper.like("template_name", condition);
//        wrapper.eq("member_id",0L);
//
//        List<ProcessPermissions> processPermissionsList = processPermissionsService.selectList(new EntityWrapper<ProcessPermissions>().eq("process_memo", 5));//2:核价流程
//        int type =0;
//        for (ProcessPermissions processPermissions:processPermissionsList){
//            if (getUserId().equals(processPermissions.getUserId())){
//                type=1;
//                break;
//            }
//        }
//        if (type==0){
//            return R.error("你不是核价员,无权接任务");
//        }
//        List<Map<String, Object>> result = new ArrayList<>();
//
//        List<PriOnline2> priOnline2s = priOnline2Service.selectList(wrapper);
//        for (PriOnline2 priOnline2 : priOnline2s){
//            Map<String, Object> map = new HashMap<>();
//            map.put("id", priOnline2.getId());
//            map.put("name", priOnline2.getTemplateName()+" - ID:"+priOnline2.getId());
//            result.add(map);
//        }
//        return R.ok(result);
//    }
    @RequestMapping(value = "/priOnline2/add/auth")
@@ -223,6 +223,10 @@
//        Item item = itemService.selectById(priOnline.getItemId());
        Plan plan = planService.selectById(priOnline2.getItemId());
        User userUp = userService.selectById(plan.getUserId());
        priOnline2.setAssistantHostSign(plan.getAssistantHostSign());
        priOnline2.setAssistantPlanId(plan.getAssistantPlanId());
        priOnline2.setHostPlanId(plan.getHostPlanId());
        //业务员
        priOnline2.setUserId(userUp.getId());
@@ -263,17 +267,11 @@
        List<String> initNames = new ArrayList<>();
        initNames.add("接取核价任务");
        initNames.add("完成核价");
        if (planType.getType().equals(2)) {
            initNames.add("完成核价");
        }
//        initNames.add("经理审核");
        initNames.add("业务员确认");
        List<User> users = new ArrayList<>();
        users.add(getUser());
        users.add(getUser());
        if (planType.getType().equals(2)) {
            users.add(new User());
        }
        users.add(userUp);
        priOnline2.setSettleMsg(JSON.toJSONString(SettleDto.InItFlowPath(users, initNames, users.size())));
        priOnline2.setSettleSize(users.size());
@@ -285,12 +283,23 @@
        planService.updateById(plan);
        priOnline2Service.insert(priOnline2);
        if (plan.getAssistantHostSign()==1){
            Plan plan1 = planService.selectById(plan.getHostPlanId());
            plan1.setStatus2(2);
            planService.updateById(plan1);
        }
        return R.ok();
    }
    @RequestMapping(value = "/priOnline2/addOther/auth")
    @ManagerAuth(memo = "另存核价管理")
    public R addOther(@RequestBody Map<String, Object> map) {
        if (true){
            return R.error("禁止!");
        }
        PriOnline2 online = priOnline2Service.selectById(Long.parseLong(map.get("id").toString()));
        PriOnline2 priOnline2 = new PriOnline2();
@@ -441,6 +450,11 @@
                Plan plan = planService.selectById(priOnline2.getItemId());
                plan.setStatus(1);
                planService.updateById(plan);
                if (plan.getAssistantHostSign()==1){
                    Plan planHost = planService.selectById(priOnline2.getHostPlanId());
                    planHost.setStatus2(1);
                    planService.updateById(planHost);
                }
            }
            priOnline2Service.deleteBatchIds(Arrays.asList(ids));
@@ -614,12 +628,28 @@
        if (!priOnline2Service.updateById(priOnline2)) {
            throw new CoolException("确认失败,请联系管理员");
        }
        Plan plan = planService.selectById(priOnline2.getItemId());
        plan.setStatus(3);
        planService.selectById(plan);
        if (user.getId().equals(priOnline2.getUserId())) {
            try {
                priQuoteAdd(priOnline2.getId(), plannerId);
            } catch (Exception e) {
                return R.error("自动生成报价单失败");
            if (priOnline2.getAssistantHostSign()==0){
                try {
                    priQuoteAdd(priOnline2.getId(), plannerId);
                } catch (Exception e) {
                    return R.error("自动生成报价单失败");
                }
            }else {
                try {
                    Plan planHost = planService.selectById(priOnline2.getHostPlanId());
                    planHost.setStatus2(3);
                    planService.selectById(planHost);
                } catch (Exception e) {
                    return R.error("更新主表失败");
                }
            }
        }
        return R.ok("审批成功");
src/main/java/com/zy/crm/manager/entity/Plan.java
@@ -351,6 +351,47 @@
        return null;
    }
    public String getStatusAll$(){
        if (this.status2>3 || this.getAssistantHostSign()==1){
            return getStatus$();
        }else {
            return "集成"+getStatus$()+"/"+"货架"+getStatus2$();
        }
    }
    public String getStatus$(){
        if (null == this.status){ return null; }
        switch (this.status){
            case 3:
                return "完成核价";
            case 2:
                return "开始核价";
            case 1:
                return "等待核价";
            case 0:
                return "初始";
            default:
                return String.valueOf(this.status);
        }
    }
    public String getStatus2$(){
        if (null == this.status2){ return null; }
        switch (this.status2){
            case 3:
                return "完成核价";
            case 2:
                return "开始核价";
            case 1:
                return "等待核价";
            case 0:
                return "初始";
            default:
                return String.valueOf(this.status2);
        }
    }
    public String getUserId$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.userId);
@@ -416,6 +457,20 @@
        }
    }
    public String getAssistantHostSign$() {
        if (null == this.assistantHostSign) {
            return null;
        }
        switch (this.assistantHostSign) {
            case 1:
                return "副流程";
            case 0:
                return "主流程";
            default:
                return String.valueOf(this.assistantHostSign);
        }
    }
    public String getFinishTime$() {
        if (Cools.isEmpty(this.finishTime)) {
            return "";
@@ -475,22 +530,6 @@
            return String.valueOf(user.getNickname());
        }
        return null;
    }
    public String getStatus$() {
        if (null == this.status) {
            return null;
        }
        switch (this.status) {
            case 2:
                return "开始核价";
            case 1:
                return "等待核价";
            case 0:
                return "未完成";
            default:
                return String.valueOf(this.status);
        }
    }
    public String getCreateBy$() {
src/main/java/com/zy/crm/manager/entity/PriOnline2.java
@@ -150,6 +150,47 @@
    @ApiModelProperty(value= "")
    private String form;
    /**
     * 集成项目货架核价状态
     */
    @ApiModelProperty(value = "状态 3: 完成核价 2: 开始核价 1: 等待核价  0: 初始  ")
    private Integer status2;
    /**
     * 节点负责人
     */
    @ApiModelProperty(value = "副planId")
    @TableField("assistant_plan_id")
    private Long assistantPlanId;
    /**
     * 节点负责人
     */
    @ApiModelProperty(value = "主planId")
    @TableField("host_plan_id")
    private Long hostPlanId;
    /**
     * 节点负责人
     */
    @ApiModelProperty(value = "副planId")
    @TableField("assistant_pri_id")
    private Long assistantPriId;
    /**
     * 节点负责人
     */
    @ApiModelProperty(value = "主planId")
    @TableField("host_pri_id")
    private Long hostPriId;
    /**
     * 节点负责人
     */
    @ApiModelProperty(value = "主planId")
    @TableField("assistant_host_sign")
    private Integer assistantHostSign;
    public PriOnline2() {}
    public PriOnline2(String title, String sheetData, Date createTime, String filepath,Integer settle,Integer settleSize) {
@@ -180,6 +221,20 @@
                return "审批通过";
            default:
                return String.valueOf(this.settle);
        }
    }
    public String getAssistantHostSign$() {
        if (null == this.assistantHostSign) {
            return null;
        }
        switch (this.assistantHostSign) {
            case 1:
                return "副流程";
            case 0:
                return "主流程";
            default:
                return String.valueOf(this.assistantHostSign);
        }
    }
@@ -262,15 +317,50 @@
        return null;
    }
    public String getStatus$() {
        if (null == this.status){ return null; }
        switch (this.status){
    public String getStatusAll$(){
        PlanService planService = SpringUtils.getBean(PlanService.class);
        Plan plan = planService.selectById(this.itemId);
        if (plan.getStatus2()>3 || (!Cools.isEmpty(this.getAssistantHostSign()) && this.getAssistantHostSign()==1)){
            return getStatus$();
        }else {
            return "集成"+getStatus$()+"/"+"货架"+getStatus2$();
        }
    }
    public String getStatus$(){
        PlanService planService = SpringUtils.getBean(PlanService.class);
        Plan plan = planService.selectById(this.itemId);
        if (null == plan.getStatus()){ return null; }
        switch (plan.getStatus()){
            case 3:
                return "完成核价";
            case 2:
                return "开始核价";
            case 1:
                return "已完成";
                return "等待核价";
            case 0:
                return "未完成";
                return "初始";
            default:
                return String.valueOf(this.status);
                return String.valueOf(plan.getStatus());
        }
    }
    public String getStatus2$(){
        PlanService planService = SpringUtils.getBean(PlanService.class);
        Plan plan = planService.selectById(this.itemId);
        if (null == plan.getStatus2()){ return null; }
        switch (plan.getStatus2()){
            case 3:
                return "完成核价";
            case 2:
                return "开始核价";
            case 1:
                return "等待核价";
            case 0:
                return "初始";
            default:
                return String.valueOf(plan.getStatus2());
        }
    }
src/main/resources/mapper/PriOnline2Mapper.xml
@@ -19,6 +19,11 @@
        <result column="check_data" property="checkData" />
        <result column="settle" property="settle" />
        <result column="settle_size" property="settleSize" />
        <result column="assistant_plan_id" property="assistantPlanId" />
        <result column="host_plan_id" property="hostPlanId" />
        <result column="assistant_pri_id" property="assistantPriId" />
        <result column="host_pri_id" property="hostPriId" />
        <result column="assistant_host_sign" property="assistantHostSign" />
    </resultMap>
    <!-- 查询结果不包含excel数据data,以免结果集过大 -->
@@ -36,6 +41,14 @@
        <result column="update_time" property="updateTime" />
        <result column="settle" property="settle" />
        <result column="settle_size" property="settleSize" />
        <result column="assistant_plan_id" property="assistantPlanId" />
        <result column="host_plan_id" property="hostPlanId" />
        <result column="assistant_host_sign" property="assistantHostSign" />
        <result column="assistant_plan_id" property="assistantPlanId" />
        <result column="host_plan_id" property="hostPlanId" />
        <result column="assistant_pri_id" property="assistantPriId" />
        <result column="host_pri_id" property="hostPriId" />
        <result column="assistant_host_sign" property="assistantHostSign" />
    </resultMap>
    <select id="listByPage" resultMap="NoDataResultMap">
src/main/webapp/static/js/plan/plan.js
@@ -196,12 +196,14 @@
            ,{field: 'settle$', align: 'center',title: '进度', width: 150}
            // ,{field: 'settleMsg', align: 'center',title: '审核进度'}
            // ,{field: 'comment', align: 'center',title: '评论'}
            ,{field: 'status$', align: 'center',title: '状态'}
            ,{field: 'statusAll$', align: 'center',title: '状态'}
            ,{field: 'createTime$', align: 'left',title: '添加日期', width: 160, hide: true}
            ,{field: 'updateBy$', align: 'left',title: '修改人', width: 100}
            ,{field: 'updateTime$', align: 'left',title: '修改时间', hide: true}
            ,{field: 'memo', align: 'left',title: '注释', hide: true}
            ,{field: 'assistantHostSign', align: 'left',title: '主副标记', hide: false}
            ,{field: 'center', align: 'left',title: '关联流程', toolbar: '#tbLook', minWidth: 160, hide: false}
            ,{field: 'assistantHostSign$', align: 'left',title: '主副标记', hide: false}
            ,{field: 'assistantHostSign', align: 'left',title: '主副标记', hide: true}
            ,{field: 'hostPlanId', align: 'left',title: '主ID', hide: false}
            ,{field: 'assistantPlanId', align: 'left',title: '副ID', hide: false}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width: 340}
@@ -657,6 +659,99 @@
                    }
                });
                break;
            case "look":
                var $a = $(obj.tr).find('a[lay-event="look"]');
                var offset = $a.offset();
                var top2 = offset.top;
                var left = offset.left;
                layer.open({
                    type: 1,
                    title: false,
                    area: '2100px',
                    offset: [top2 + 'px', (left - 1430 + $a.outerWidth()) + 'px'],
                    shade: .01,
                    shadeClose: true,
                    fixed: false,
                    content: '<table id="lookSSXMTable" lay-filter="lookSSXMTable"></table>',
                    success: function (layero) {
                        table.render({
                            elem: '#lookSSXMTable',
                            headers: {token: localStorage.getItem('token')},
                            url: baseUrl+'/plan/assistantPlan/view/auth',
                            where: {
                                hostPlanId: data.id
                            },
                            page: true,
                            cellMinWidth: 100,
                            cols: [[
                                {field: 'id', align: 'center',title: 'ID'}
                                ,{field: 'userId$', align: 'left',title: '业务员',hide: false, width: 100}
                                ,{field: 'planType$', align: 'left',title: '业务类型', width: 150,hide: false}
                                ,{
                                    field: 'name',
                                    align: 'left',
                                    title: '售前规划申请单名称',
                                    width: 220,
                                    style: 'cursor:pointer',
                                    event: 'more',
                                    hide: false
                                }
                                ,{field: 'uuid', align: 'left',title: '规划单号', width: 100,hide: false}
                                ,{
                                    field: 'planNeed$',
                                    align: 'left',
                                    title: '所需',
                                    templet:function(d){
                                        return emptyShow(d.planNeed$)
                                    },
                                    hide: false
                                }
                                ,{field: 'deptId$', align: 'left',title: '所属部门',hide: true}
                                ,{field: 'planner$', align: 'left',title: '规划员',hide: false, width: 100}
                                ,{
                                    field: 'orderId$',
                                    align: 'left',
                                    title: '跟踪项目',
                                    width: 220,
                                    style: 'cursor:pointer',
                                    event: 'orderMore',hide: false
                                }
                                ,{field: 'appleTime$', align: 'left',title: '申请日期', hide: false}
                                ,{field: 'settle$', align: 'center',title: '进度', width: 150}
                                ,{field: 'statusAll$', align: 'center',title: '状态'}
                                ,{field: 'createTime$', align: 'left',title: '添加日期', width: 160, hide: true}
                                ,{field: 'updateBy$', align: 'left',title: '修改人', width: 100}
                                ,{field: 'updateTime$', align: 'left',title: '修改时间', hide: true}
                                ,{field: 'memo', align: 'left',title: '注释', hide: true}
                                ,{field: 'assistantHostSign', align: 'left',title: '主副标记', hide: true}
                                ,{field: 'hostPlanId', align: 'left',title: '主ID', hide: true}
                                ,{field: 'assistantPlanId', align: 'left',title: '副ID', hide: true}
                                ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width: 340}
                            ]],
                            request: {
                                pageName: 'curr',
                                pageSize: 'limit'
                            },
                            parseData: function (res) {
                                console.log(res)
                                return {
                                    'code': res.code,
                                    'msg': res.msg,
                                    'count': res.data.total,
                                    'data': res.data.records
                                }
                            },
                            response: {
                                statusCode: 200
                            },
                            done: function () {
                                $(layero).find('.layui-table-view').css('margin', '0');
                            },
                            size: ''
                        });
                    }
                });
                break;
        }
    });
src/main/webapp/static/js/priOnline2/priOnline.js
@@ -104,7 +104,7 @@
                hide: false
            }
            , {field: 'itemId', align: 'center', title: '规划单号', hide: true}
            , {field: 'status$', align: 'center', title: '状态', hide: false}
            , {field: 'statusAll$', align: 'center',title: '状态'}
            // ,{field: 'memberId$', align: 'center',title: ''}
            , {
                field: 'settle$',
@@ -121,6 +121,10 @@
            , {field: 'createTime$', align: 'center', title: '创建时间', hide: true}
            , {field: 'updateUserId$', align: 'center', title: '更新人员', hide: false}
            , {field: 'updateTime$', align: 'center', title: '更新时间', hide: false}
            ,{field: 'assistantHostSign$', align: 'left',title: '主副标记', hide: false}
            ,{field: 'assistantHostSign', align: 'left',title: '主副标记', hide: true}
            ,{field: 'hostPlanId', align: 'left',title: '主ID', hide: false}
            ,{field: 'assistantPlanId', align: 'left',title: '副ID', hide: false}
            , {fixed: 'right', title: '操作', align: 'center', toolbar: '#operate', width: 350}
        ]],
        request: {
@@ -375,7 +379,7 @@
                    console.log(data)
                    layer.close(i);
                    // 指定模板
                    if ((data.settle === 1 && data.settleSize===3) || (data.settle===2 && data.settleSize===4)) {
                    if (((data.settle === 1 && data.settleSize===3) || (data.settle===2 && data.settleSize===4)) && data.assistantHostSign==0) {
                        admin.open({
                            type: 1,
                            area: '300px',
@@ -600,17 +604,20 @@
            case "uploadLink":
                // 打开弹窗
                // 构建带参数的内容
                console.log(data)
                var planIdSign = data.id;
                if (data.assistantHostSign==1){
                    planIdSign = data.hostPlanId;
                }
                layer.open({
                    type: 1,
                    title: '上传文件-'+data.itemId,
                    title: '上传文件-'+planIdSign,
                    content: $('#myModal')
                });
                // 获取路径下的文件列表,使用 jQuery 的 ajax 方法
                $.ajax({
                    url: '/plan/view/file/auth',
                    data:{
                        planId:data.itemId
                        planId:planIdSign
                    },
                    success: function(response) {
                        if (response.code==200){
@@ -695,41 +702,41 @@
        });
    }
    /* 弹窗 - 新增、修改 */
    function showEditModel2(mData) {
        admin.open({
            type: 1,
            area: '800px',
            title: '接取' + '核价',
            content: $('#editDialogHJ').html(),
            success: function (layero, dIndex) {
                let loadNameXml = loadNameXmlSel()
                form.val('detailHJ', mData);
                form.on('submit(editSubmitHJ)', function (data) {
                    data.field.id = loadNameXml.getValue()[0] ? loadNameXml.getValue()[0].id : null;
                    $.ajax({
                        url: baseUrl+"/priOnline2/HJ/add/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: data.field,
                        method: 'POST',
                        success: function (res) {
                            if (res.code === 200){
                                layer.close(dIndex);
                                layer.msg(res.msg, {icon: 1});
                                tableReload()
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            }else {
                                layer.msg(res.msg, {icon: 2});
                            }
                        }
                    })
                });
                $(layero).children('.layui-layer-content').css('overflow', 'visible');
                layui.form.render('select');
            }
        });
    }
    // /* 弹窗 - 新增、修改 */
    // function showEditModel2(mData) {
    //     admin.open({
    //         type: 1,
    //         area: '800px',
    //         title: '接取' + '核价',
    //         content: $('#editDialogHJ').html(),
    //         success: function (layero, dIndex) {
    //             let loadNameXml = loadNameXmlSel()
    //             form.val('detailHJ', mData);
    //             form.on('submit(editSubmitHJ)', function (data) {
    //                 data.field.id = loadNameXml.getValue()[0] ? loadNameXml.getValue()[0].id : null;
    //                 $.ajax({
    //                     url: baseUrl+"/priOnline2/HJ/add/auth",
    //                     headers: {'token': localStorage.getItem('token')},
    //                     data: data.field,
    //                     method: 'POST',
    //                     success: function (res) {
    //                         if (res.code === 200){
    //                             layer.close(dIndex);
    //                             layer.msg(res.msg, {icon: 1});
    //                             tableReload()
    //                         } else if (res.code === 403){
    //                             top.location.href = baseUrl+"/";
    //                         }else {
    //                             layer.msg(res.msg, {icon: 2});
    //                         }
    //                     }
    //                 })
    //             });
    //             $(layero).children('.layui-layer-content').css('overflow', 'visible');
    //             layui.form.render('select');
    //         }
    //     });
    // }
    //更新form
    function showEditForm(mData) {
@@ -824,34 +831,34 @@
        })
    }
    window.loadNameXmlSel = function () {
        return xmSelect.render({
            el: '#nameXmlSel',
            autoRow: true,
            filterable: true,
            remoteSearch: true,
            clickClose: true,
            radio: true,
            remoteMethod: function (val, cb, show) {
                $.ajax({
                    url: baseUrl + "/priOnline2/HJ/search/auth",
                    headers: {'token': localStorage.getItem('token')},
                    data: {
                        condition: val
                    },
                    method: 'POST',
                    success: function (res) {
                        if (res.code === 200) {
                            cb(res.data)
                        } else {
                            cb([]);
                            layer.msg(res.msg, {icon: 2});
                        }
                    }
                });
            }
        });
    }
    // window.loadNameXmlSel = function () {
    //     return xmSelect.render({
    //         el: '#nameXmlSel',
    //         autoRow: true,
    //         filterable: true,
    //         remoteSearch: true,
    //         clickClose: true,
    //         radio: true,
    //         remoteMethod: function (val, cb, show) {
    //             $.ajax({
    //                 url: baseUrl + "/priOnline2/HJ/search/auth",
    //                 headers: {'token': localStorage.getItem('token')},
    //                 data: {
    //                     condition: val
    //                 },
    //                 method: 'POST',
    //                 success: function (res) {
    //                     if (res.code === 200) {
    //                         cb(res.data)
    //                     } else {
    //                         cb([]);
    //                         layer.msg(res.msg, {icon: 2});
    //                     }
    //                 }
    //             });
    //         }
    //     });
    // }
});
src/main/webapp/views/plan/plan.html
@@ -106,6 +106,15 @@
    </div>
</div>
<!-- 表格操作列 -->
<script type="text/html" id="tbLook">
    <span class="layui-text">
        <a href="javascript:;" lay-event="look">
            <i class="layui-icon" style="font-size: 12px;">&#xe61a;</i> 查看关联流程
        </a>
    </span>
</script>
<div id="myModal"  style="display: none;">
    <div style="padding: 10px">
        <div class="layui-upload">