Parcourir la source

工单问题单

tags/V1.3.2
chenlu il y a 4 mois
Parent
révision
a74cacbf4c
11 fichiers modifiés avec 229 ajouts et 5 suppressions
  1. +13
    -0
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/controller/InspectionFileHandleController.java
  2. +15
    -0
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/entity/InspectionFileHandle.java
  3. +2
    -1
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/entity/WorkOrder.java
  4. +3
    -0
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/enums/WorkOrderStatusEnum.java
  5. +3
    -1
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/enums/code/inspectionfilehandle/InspectionFileProcessingCodeEnum.java
  6. +36
    -0
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/request/inspectionfile/InspectionFileHandleAuditRresultRequest.java
  7. +3
    -0
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/inspectionfile/IInspectionFileService.java
  8. +85
    -0
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/inspectionfile/InspectionFileServiceImpl.java
  9. +32
    -1
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/inspectionfile/processing/InspectionFileProcessingService.java
  10. +21
    -2
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/inspectionfile/query/QueryInspectionFilePageListByWorkOrderIdService.java
  11. +16
    -0
      tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/vo/inspection/InspectionFileHandleVo.java

+ 13
- 0
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/controller/InspectionFileHandleController.java Voir le fichier

package com.tuoheng.admin.controller; package com.tuoheng.admin.controller;


import com.tuoheng.admin.request.inspectionfile.InspectionFileHandleAuditRresultRequest;
import com.tuoheng.admin.request.inspectionfile.InspectionFileProcessingRresultRequest; import com.tuoheng.admin.request.inspectionfile.InspectionFileProcessingRresultRequest;
import com.tuoheng.admin.service.inspectionfile.IInspectionFileService; import com.tuoheng.admin.service.inspectionfile.IInspectionFileService;
import com.tuoheng.common.core.utils.JsonResult; import com.tuoheng.common.core.utils.JsonResult;
return iInspectionFileService.processing(request); return iInspectionFileService.processing(request);
} }


/**
* 审核结果
*
* @param request
* @return
*/
@PostMapping("/audit")
public JsonResult audit(@RequestBody InspectionFileHandleAuditRresultRequest request){
return iInspectionFileService.audit(request);
}


} }

+ 15
- 0
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/entity/InspectionFileHandle.java Voir le fichier

@JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd")
private Date handlerTime; private Date handlerTime;
/**
* 审核结果 0未审核 1审核通过 2审核未通过
*/
private Integer audit;
/**
* 审核意见
*/
private String auditView;
/**
* 审核时间
*/
private Date auditTime;
} }

+ 2
- 1
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/entity/WorkOrder.java Voir le fichier

private String code; private String code;
/** /**
* 工单状态:5待分配 10处理中(已分配) 15已完成
* 更新前 (工单状态:5待分配 10处理中(已分配) 15已完成)
* 更新后 工单状态:5待分配 10处理中(问题未全部处理) 11待审核(问题已经处理完) 15已完成
*/ */
private Integer status; private Integer status;

+ 3
- 0
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/enums/WorkOrderStatusEnum.java Voir le fichier



WAIT(5,"待分配"), WAIT(5,"待分配"),
PROCESSING(10,"处理中(已分配)"), PROCESSING(10,"处理中(已分配)"),

PENDING_REVIEW(11,"待审核"),

COMPLETED(15,"已完成"); COMPLETED(15,"已完成");


WorkOrderStatusEnum(int code, String description){ WorkOrderStatusEnum(int code, String description){

+ 3
- 1
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/enums/code/inspectionfilehandle/InspectionFileProcessingCodeEnum.java Voir le fichier

WORK_ORDER_IS_NOT_EXIST(1250102, "工单不存在"), WORK_ORDER_IS_NOT_EXIST(1250102, "工单不存在"),
INSPECTION_FILE_ID_IS_NULL(1250103, "任务问题id为空"), INSPECTION_FILE_ID_IS_NULL(1250103, "任务问题id为空"),
INSPECTION_FILE_IS_NOT_EXIST(1250104, "任务问题不存在"), INSPECTION_FILE_IS_NOT_EXIST(1250104, "任务问题不存在"),
INSPECTION_FILE_Handle_IS_EXIST(1250105, "该问题已处理");
INSPECTION_FILE_Handle_IS_EXIST(1250105, "该问题已处理"),

INSPECTION_FILE_HANDLE_ISERROR(1250106, "当前问题未处理完毕或数据已失效");


/** /**
* 错误码 * 错误码

+ 36
- 0
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/request/inspectionfile/InspectionFileHandleAuditRresultRequest.java Voir le fichier

package com.tuoheng.admin.request.inspectionfile;

import lombok.Data;

import java.util.Date;

/**
* 处理任务问题结果请求实体
*
* @author wanjing
* @team tuoheng
* @date 2022-12-09
*/
@Data
public class InspectionFileHandleAuditRresultRequest {

/**
* 工单ID
*/
private String workOrderId;

/**
* 巡检问题文件ID
*/
private String inspectionFileId;

/**
* 审核结果 0未审核 1审核通过 2审核未通过
*/
private Integer audit;

/**
* 审核意见
*/
private String auditView;
}

+ 3
- 0
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/inspectionfile/IInspectionFileService.java Voir le fichier

* @return * @return
*/ */
JsonResult editQuestionType(String id, String questionCode); JsonResult editQuestionType(String id, String questionCode);


JsonResult audit(InspectionFileHandleAuditRresultRequest request);
} }

+ 85
- 0
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/inspectionfile/InspectionFileServiceImpl.java Voir le fichier

import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.tuoheng.admin.entity.Inspection; import com.tuoheng.admin.entity.Inspection;
import com.tuoheng.admin.entity.InspectionFile; import com.tuoheng.admin.entity.InspectionFile;
import com.tuoheng.admin.entity.InspectionFileHandle;
import com.tuoheng.admin.entity.QuestionType; import com.tuoheng.admin.entity.QuestionType;
import com.tuoheng.admin.entity.Report;
import com.tuoheng.admin.entity.User; import com.tuoheng.admin.entity.User;
import com.tuoheng.admin.entity.WorkOrder;
import com.tuoheng.admin.entity.WorkOrderFile;
import com.tuoheng.admin.enums.DataPermissionEnum; import com.tuoheng.admin.enums.DataPermissionEnum;
import com.tuoheng.admin.enums.MarkEnum;
import com.tuoheng.admin.enums.WorkOrderStatusEnum;
import com.tuoheng.admin.enums.code.inspectionfile.ListByDeptUserTypeEnum; import com.tuoheng.admin.enums.code.inspectionfile.ListByDeptUserTypeEnum;
import com.tuoheng.admin.enums.code.inspectionfilehandle.InspectionFileProcessingCodeEnum;
import com.tuoheng.admin.enums.code.questiontype.QuestionTypeEnum; import com.tuoheng.admin.enums.code.questiontype.QuestionTypeEnum;
import com.tuoheng.admin.mapper.*; import com.tuoheng.admin.mapper.*;
import com.tuoheng.admin.query.InspectionFileQuery; import com.tuoheng.admin.query.InspectionFileQuery;
import com.tuoheng.common.core.config.common.CommonConfig; import com.tuoheng.common.core.config.common.CommonConfig;
import com.tuoheng.common.core.enums.ServiceExceptionEnum; import com.tuoheng.common.core.enums.ServiceExceptionEnum;
import com.tuoheng.common.core.exception.ServiceException; import com.tuoheng.common.core.exception.ServiceException;
import com.tuoheng.common.core.utils.DateUtils;
import com.tuoheng.common.core.utils.JsonResult; import com.tuoheng.common.core.utils.JsonResult;
import com.tuoheng.common.core.utils.StringUtils; import com.tuoheng.common.core.utils.StringUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;


import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;


/** /**
@Autowired @Autowired
private UpdateInspectionFileQuestionTypeService updateInspectionFileQuestionTypeService; private UpdateInspectionFileQuestionTypeService updateInspectionFileQuestionTypeService;


@Autowired
private InspectionFileHandleMapper inspectionFileHandleMapper;

@Autowired
private WorkOrderMapper workOrderMapper;

@Autowired
private WorkOrderFileMapper workOrderFileMapper;


/** /**
* 问题类型和任务名称 * 问题类型和任务名称
* *
public JsonResult editQuestionType(String id, String questionCode) { public JsonResult editQuestionType(String id, String questionCode) {
return updateInspectionFileQuestionTypeService.update(id, questionCode); return updateInspectionFileQuestionTypeService.update(id, questionCode);
} }


@Override
public JsonResult audit(InspectionFileHandleAuditRresultRequest request) {
//获取当前用户信息
User user = CurrentUserUtil.getUserInfo();
String userId = user.getId();
String tenantId = user.getTenantId();
//查询巡检问题处理结果表
LambdaQueryWrapper<InspectionFileHandle> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq( InspectionFileHandle::getInspectionFileId, request.getInspectionFileId());
queryWrapper.eq( InspectionFileHandle::getMark, MarkEnum.VALID.getCode() );
InspectionFileHandle inspectionFileHandle = inspectionFileHandleMapper.selectOne(queryWrapper);
if (Objects.isNull(inspectionFileHandle) || !inspectionFileHandle.getAudit().equals(0)){
log.info("问题单未处理/或者已审核,inspectionFileId:{}", request.getInspectionFileId());
return JsonResult.error(InspectionFileProcessingCodeEnum.PROCESSING_IS_FAILED.getCode(), InspectionFileProcessingCodeEnum.INSPECTION_FILE_HANDLE_ISERROR.getMsg());
}
//审核 新增审核意见 审核理由
inspectionFileHandle.setAudit(request.getAudit());
inspectionFileHandle.setAuditView(request.getAuditView());
inspectionFileHandle.setAuditTime(new Date());
int i = inspectionFileHandleMapper.updateById(inspectionFileHandle);
if (i < 1 ){
log.info("修改问题处理单失败,inspectionFileId:{}", request.getInspectionFileId());
return JsonResult.error(InspectionFileProcessingCodeEnum.PROCESSING_IS_FAILED.getCode(), InspectionFileProcessingCodeEnum.PROCESSING_IS_FAILED.getMsg());
}
//判断处理工单的状态
JsonResult jsonResult = workOrderUpdateStatus(userId, request);
return jsonResult;
}

private JsonResult workOrderUpdateStatus(String userId, InspectionFileHandleAuditRresultRequest request) {
//当工单关联的任务问题都审核完,将工单状态改为已完成 反之待审核
//巡检问题工单子表
List<WorkOrderFile> workOrderFileList = workOrderFileMapper.selectList(new LambdaQueryWrapper<WorkOrderFile>()
.eq(WorkOrderFile::getWorkOrderId, request.getWorkOrderId()));
List<String> inspectionFileIdList = workOrderFileList.stream().map(o -> o.getInspectionFileId()).collect(Collectors.toList());
//巡检问题处理结果表
LambdaQueryWrapper<InspectionFileHandle> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(InspectionFileHandle::getInspectionFileId, inspectionFileIdList);
queryWrapper.eq(InspectionFileHandle::getAudit, 1);
List<InspectionFileHandle> inspectionFileHandles = inspectionFileHandleMapper.selectList(queryWrapper);
if (CollectionUtil.isEmpty(inspectionFileHandles)){
return JsonResult.success();
}
//查询所有的审核单的数据
List<String> idList = inspectionFileHandles.stream().map(InspectionFileHandle::getInspectionFileId).collect(Collectors.toList());

//如果这条审核的数据+原始数据 = 所有问题单 代表所有问题均审核 修改工单状态为已完成 反之不做修改
if (workOrderFileList.size() != idList.size()){
return JsonResult.success();
}
//处理工单表的状态
WorkOrder workOrder = new WorkOrder();
workOrder.setId(request.getWorkOrderId());
workOrder.setStatus(WorkOrderStatusEnum.COMPLETED.getCode());
workOrder.setUpdateUser(userId);
workOrder.setUpdateTime(DateUtils.now());
Integer rowCount = workOrderMapper.update(workOrder);
if (rowCount <= 0) {
log.info("更新工单状态失败,workOrderId:{}", request.getWorkOrderId());
return JsonResult.error(InspectionFileProcessingCodeEnum.PROCESSING_IS_FAILED.getCode(), InspectionFileProcessingCodeEnum.PROCESSING_IS_FAILED.getMsg());
}
return JsonResult.success();
}
} }

+ 32
- 1
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/inspectionfile/processing/InspectionFileProcessingService.java Voir le fichier

return result; return result;
} }


result = this.updateWorkOrderStatus(userId, request);
result = this.updateNewWorkOrderStatus(userId, request);
if (0 != result.getCode()) { if (0 != result.getCode()) {
log.info("进入任务问题处理业务:更新工单状态失败:{}", result.getMsg()); log.info("进入任务问题处理业务:更新工单状态失败:{}", result.getMsg());
return result; return result;
return JsonResult.success(); return JsonResult.success();
} }



/**
* 更新工单状态 —— 更新
* 当工单关联的任务问题都被处理完时,将工单状态改为待审核 反之处理中
*/
private JsonResult updateNewWorkOrderStatus(String userId, InspectionFileProcessingRresultRequest request) {
//巡检问题工单子表
List<WorkOrderFile> workOrderFileList = workOrderFileMapper.selectList(new LambdaQueryWrapper<WorkOrderFile>()
.eq(WorkOrderFile::getWorkOrderId, request.getWorkOrderId()));
List<String> inspectionFileIdList = workOrderFileList.stream().map(o -> o.getInspectionFileId()).collect(Collectors.toList());
//巡检问题处理结果表
Integer count = inspectionFileHandleMapper.selectCount(new LambdaQueryWrapper<InspectionFileHandle>()
.in(InspectionFileHandle::getInspectionFileId, inspectionFileIdList));
if (workOrderFileList.size() > count) {
return JsonResult.success();
}
//处理工单表的状态
WorkOrder workOrder = new WorkOrder();
workOrder.setId(request.getWorkOrderId());
workOrder.setStatus(WorkOrderStatusEnum.COMPLETED.getCode());
workOrder.setUpdateUser(userId);
workOrder.setUpdateTime(DateUtils.now());
Integer rowCount = workOrderMapper.update(workOrder);
if (rowCount <= 0) {
log.info("更新工单状态失败,workOrderId:{}", request.getWorkOrderId());
return JsonResult.error(InspectionFileProcessingCodeEnum.PROCESSING_IS_FAILED.getCode(), InspectionFileProcessingCodeEnum.PROCESSING_IS_FAILED.getMsg());
}
return JsonResult.success();
}


} }

+ 21
- 2
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/service/inspectionfile/query/QueryInspectionFilePageListByWorkOrderIdService.java Voir le fichier

.in(InspectionFile::getId, inspectionFileIdList) .in(InspectionFile::getId, inspectionFileIdList)
.eq(InspectionFile::getTenantId, tenantId) .eq(InspectionFile::getTenantId, tenantId)
.eq(InspectionFile::getMark, 1)); .eq(InspectionFile::getMark, 1));
//查询问题单子表审核时间 意见等信息
List<InspectionFileHandle> inspectionFileHandles = inspectionFileHandleMapper.selectList(new LambdaQueryWrapper<InspectionFileHandle>()
.in(InspectionFileHandle::getInspectionFileId, inspectionFileIdList)
.eq(InspectionFileHandle::getTenantId, tenantId)
.eq(InspectionFileHandle::getMark, 1));


// 构造返回结果对象 // 构造返回结果对象
List<InspectionFileHandleVo> inspectionFileHandleVoList = this.buildInspectionFileHandleVoList(request.getWorkOrderId(), inspectionFileIdList, inspectionFileList);
List<InspectionFileHandleVo> inspectionFileHandleVoList = this.buildInspectionFileHandleVoList(request.getWorkOrderId(), inspectionFileIdList, inspectionFileList, inspectionFileHandles);


// 重写返回结果对象 // 重写返回结果对象
IPage<InspectionFileHandleVo> inspectionFilePageListVoPageData = new Page<>(); IPage<InspectionFileHandleVo> inspectionFilePageListVoPageData = new Page<>();
* *
* @return * @return
*/ */
private List<InspectionFileHandleVo> buildInspectionFileHandleVoList(String workOrderId, List<String> inspectionFileIdList, List<InspectionFile> inspectionFileList) {
private List<InspectionFileHandleVo> buildInspectionFileHandleVoList(String workOrderId, List<String> inspectionFileIdList, List<InspectionFile> inspectionFileList, List<InspectionFileHandle> inspectionFileHandles) {
Map<String, QuestionType> questionTypeMap = this.getQuestionTypeMap(); Map<String, QuestionType> questionTypeMap = this.getQuestionTypeMap();
List<InspectionFileHandle> inspectionFileHandleList = this.getInspectionFileHandleList(inspectionFileIdList); List<InspectionFileHandle> inspectionFileHandleList = this.getInspectionFileHandleList(inspectionFileIdList);
Map<String, InspectionFileHandle> inspectionFileHandleMap = this.getInspectionFileHandleMap(inspectionFileHandleList); Map<String, InspectionFileHandle> inspectionFileHandleMap = this.getInspectionFileHandleMap(inspectionFileHandleList);
User user; User user;
QuestionType questionType; QuestionType questionType;
InspectionFileHandle inspectionFileHandle; InspectionFileHandle inspectionFileHandle;
//子表信息处理
Map<String, InspectionFileHandle> detailMap = new HashMap<>();
if (!CollectionUtil.isEmpty(inspectionFileHandles)){
detailMap = inspectionFileHandles.stream().collect(Collectors.toMap(InspectionFileHandle::getInspectionFileId, a -> a));
}
for (InspectionFile inspectionFile : inspectionFileList) { for (InspectionFile inspectionFile : inspectionFileList) {
inspectionFileHandleVo = new InspectionFileHandleVo(); inspectionFileHandleVo = new InspectionFileHandleVo();
//处理明细表审核数据
if (!CollectionUtil.isEmpty(detailMap) && Objects.nonNull(detailMap.get(inspectionFile.getId())) ){
InspectionFileHandle item = detailMap.get(inspectionFile.getId());
inspectionFileHandleVo.setAudit(item.getAudit());
inspectionFileHandleVo.setAuditView(item.getAuditView());
inspectionFileHandleVo.setAuditTime(item.getAuditTime());
}else {
inspectionFileHandleVo.setAudit(0);
}
inspectionFileHandleVo.setWorkOrderId(workOrderId); inspectionFileHandleVo.setWorkOrderId(workOrderId);
inspectionFileHandleVo.setInspectionFileId(inspectionFile.getId()); inspectionFileHandleVo.setInspectionFileId(inspectionFile.getId());
inspectionFileHandleVo.setStatus(inspectionFile.getStatus()); inspectionFileHandleVo.setStatus(inspectionFile.getStatus());

+ 16
- 0
tuoheng-service/tuoheng-admin/src/main/java/com/tuoheng/admin/vo/inspection/InspectionFileHandleVo.java Voir le fichier

*/ */
private String inspectionCode; private String inspectionCode;


/**
* 审核结果 0未审核 1审核通过 2审核未通过
*/
private Integer audit;

/**
* 审核意见
*/
private String auditView;

/**
* 审核时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
private Date auditTime;

} }

Chargement…
Annuler
Enregistrer