k94314517
2025-04-24 17f3ed801cb43325650bd77a84f306cfa661d562
工单业务
已修改2个文件
32 ■■■■ 文件已修改
server/src/main/java/com/doumee/dao/business/model/Workorder.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/src/main/java/com/doumee/dao/business/model/Workorder.java
@@ -162,6 +162,9 @@
    @ApiModelProperty(value = "下次催促时间")
    private Date urgeDate;
    @ApiModelProperty(value = "可处理SHE人员企微主键")
    private String sheDealUserQwIds;
    @ApiModelProperty("附件信息")
    @TableField(exist = false)
    private List<Multifile> multifileList;
server/src/main/java/com/doumee/service/business/impl/WorkorderServiceImpl.java
@@ -94,6 +94,7 @@
        //处理SHE事件状态
        Constants.WorkOrderStatus  workOrderStatus = Constants.equalsInteger(workorder.getType(),Constants.ZERO)?Constants.WorkOrderStatus.close:Constants.WorkOrderStatus.waitConfirm;
        workorder.setStatus(workOrderStatus.getKey());
        workorder.setSheDealUserQwIds(workorder.getQwnoticeMemberIds());
        workorderMapper.insert(workorder);
        //存储DCA 问题记录表
@@ -269,6 +270,7 @@
                    dcaWorkOrder.setEventInfo(dcaNoProblemDTO.getEventInfo());
                    dcaWorkOrder.setQwnoticeMemberIds(workorder.getQwnoticeMemberIds());
                    dcaWorkOrder.setMemberNames(workorder.getMemberNames());
                    dcaWorkOrder.setSheDealUserQwIds(dcaWorkOrder.getQwnoticeMemberIds());
                    workorderMapper.insert(dcaWorkOrder);
                    //存储日志
                    this.dealLogData(dcaWorkOrder,workOrderStatus);
@@ -443,7 +445,7 @@
            if(Objects.isNull(workorder.getMemberType())
                    || Objects.isNull(workorder.getOutJiuyi())
                    || (Constants.equalsInteger(workorder.getOutJiuyi(),Constants.ZERO) && Objects.isNull(workorder.getIsYiwushi()))
                    || (Constants.equalsInteger(workorder.getIsYiwushi(),Constants.ZERO) && Objects.isNull(workorder.getIsHurted()))
                    || (Constants.equalsInteger(workorder.getOutJiuyi(),Constants.ZERO) && Constants.equalsInteger(workorder.getIsYiwushi(),Constants.ZERO) && Objects.isNull(workorder.getIsHurted()))
                    || Objects.isNull(workorder.getWorkRelated())
                    || (Constants.equalsInteger(workorder.getMemberType(),Constants.TWO) && StringUtils.isEmpty(workorder.getMemberNames()))
                    || (Constants.equalsInteger(workorder.getMemberType(),Constants.ONE) && StringUtils.isEmpty(workorder.getMemberQwids()))
@@ -505,7 +507,8 @@
        this.dealButton(workorder,member);
        //查询附件信息
        List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda().eq(Multifile::getIsdeleted,Constants.ZERO)
                .eq(Multifile::getObjId,workorder.getId()).orderByAsc(Multifile::getId));
                .eq(Multifile::getObjType,Constants.multiFileType.upload)
                .eq(Multifile::getObjId,workorder.getId().toString()).orderByAsc(Multifile::getId));
        String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
                +systemDictDataBiz.queryByCode(Constants.FTP,Constants.WORKORDER_FILE_PATH).getCode();
@@ -543,7 +546,7 @@
            if(org.apache.commons.lang3.StringUtils.isNotBlank(workorder.getQwnoticeMemberIds())&&
                    (Constants.equalsInteger(workorder.getStatus(),Constants.ZERO)||
                            Constants.equalsInteger(workorder.getStatus(),Constants.ONE)||Constants.equalsInteger(workorder.getStatus(),Constants.TWO))){
                closeUserList.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(",")));
                closeUserList.addAll(Arrays.asList(workorder.getSheDealUserQwIds().split(",")));
            }
            if(org.apache.commons.lang3.StringUtils.isNotBlank(workorder.getManagerId())&&
                    (Constants.equalsInteger(workorder.getStatus(),Constants.ONE)||Constants.equalsInteger(workorder.getStatus(),Constants.TWO))){
@@ -560,7 +563,7 @@
            //待分配状态 处理转交按钮
            if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())
            ){
                passOnUserList.addAll(Arrays.asList(workorder.getQwnoticeMemberIds().split(",")));
                passOnUserList.addAll(Arrays.asList(workorder.getSheDealUserQwIds().split(",")));
            }
            if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey())
                || Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitDeal.getKey())
@@ -839,7 +842,7 @@
        //提交后的 待确认/待初审状态 如果去关闭 只有工单里绑定的SHE人员可以关闭
        if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){
            //判断SHE人员内是否有当前登录账号
            if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO){
            if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理");
            }
            workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey());
@@ -847,12 +850,12 @@
            qwIds.remove(closeDTO.getMember().getQwId());
        }else if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey())){
            //判断SHE人员内是否有当前登录账号
            if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO &&  !workorder.getManagerId().equals(closeDTO.getMember().getQwId())){
            if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO &&  !workorder.getManagerId().equals(closeDTO.getMember().getQwId())){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理");
            }
            if(workorder.getManagerId().equals(closeDTO.getMember().getQwId())){
                workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey());
            }else if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){
            }else if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){
                workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey());
            }else{
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理");
@@ -862,7 +865,7 @@
            qwIds.remove(closeDTO.getMember().getQwId());
        }else if(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitDeal.getKey())){
            //判断SHE人员内是否有当前登录账号
            if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO &&  !workorder.getManagerId().equals(closeDTO.getMember().getQwId())
            if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())<Constants.ZERO &&  !workorder.getManagerId().equals(closeDTO.getMember().getQwId())
                    &&  !workorder.getDealerId().equals(closeDTO.getMember().getQwId()) ){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理");
            }
@@ -870,7 +873,7 @@
                workorder.setStatus(Constants.WorkOrderStatus.wtsClose.getKey());
            }else if(workorder.getDealerId().equals(closeDTO.getMember().getQwId())){
                workorder.setStatus(Constants.WorkOrderStatus.close.getKey());
            }else if(workorder.getQwnoticeMemberIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){
            }else if(workorder.getSheDealUserQwIds().indexOf(closeDTO.getMember().getQwId())>Constants.ZERO){
                workorder.setStatus(Constants.WorkOrderStatus.sheClose.getKey());
            }else{
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,当前工单非您的工单,无法进行处理");
@@ -947,13 +950,21 @@
            if(!Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitConfirm.getKey())){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"工单状态已流转");
            }
            if(workorder.getSheDealUserQwIds().indexOf(passOnDTO.getMember().getQwId())<Constants.ZERO){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,非带您处理的工单,无法进行该操作");
            }
            workorder.setManagerId(member.getQwId());
            workorder.setStatus(Constants.WorkOrderStatus.waitAllocation.getKey());
            workorder.setSheDealUserQwIds(passOnDTO.getMember().getQwId());
        }else{
            if(!(Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitAllocation.getKey())
                || Constants.equalsInteger(workorder.getStatus(),Constants.WorkOrderStatus.waitDeal.getKey()))){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"工单状态已流转");
            }
            if(!workorder.getManagerId().equals(passOnDTO.getMember().getQwId())){
                throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,非带您处理的工单,无法进行该操作");
            }
            workorder.setDealerId(member.getQwId());
            workorder.setStatus(Constants.WorkOrderStatus.waitDeal.getKey());
        }