zhubaomin
2024-11-11 3de17c8b85f91b55175b631b0b8bdc837b24e993
工单处理结果审核接口
4个文件已修改
101 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeApproveResultMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeApproveResult.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeApproveResultMapper.java
@@ -6,8 +6,8 @@
/**
 * @author ZhuBaoMin
 * @date 2024-11-06 11:49
 * @LastEditTime 2024-11-06 11:49
 * @date 2024-11-11 9:32
 * @LastEditTime 2024-11-11 9:32
 * @Description
 */
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeApproveResult.java
@@ -7,14 +7,18 @@
import com.baomidou.mybatisplus.annotation.TableName;
import com.dy.common.po.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive;
import lombok.*;
import java.util.Date;
/**
 * @author ZhuBaoMin
 * @date 2024-11-06 11:49
 * @LastEditTime 2024-11-06 11:49
 * @date 2024-11-11 9:32
 * @LastEditTime 2024-11-11 9:32
 * @Description 处理结果审核实体类
 */
@@ -25,7 +29,7 @@
@NoArgsConstructor
@AllArgsConstructor
public class OpeApproveResult implements BaseEntity {
    public static final long serialVersionUID = 202411061152001L;
    public static final long serialVersionUID = 202411110935001L;
    /**
    * 主键
@@ -38,18 +42,21 @@
    * 工单ID
    */
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    @NotNull(message = "工单ID不能为空")
    private Long workOrderId;
    /**
    * 处理结果ID
    */
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    @NotNull(message = "处理结果不能为空")
    private Long processingResultId;
    /**
    * 审核人ID
    */
    @JSONField(serializeUsing= ObjectWriterImplToString.class)
    @NotNull(message = "审核人不能为空")
    private Long approverId;
    /**
@@ -61,6 +68,10 @@
    /**
    * 审核结果;1-通过,2-驳回
    */
    @NotNull(message = "审核结果不能为空")
    @Positive(message = "审核结果值必须为正数")
    @Min(value = 1, message = "审核结果最小为1")
    @Max(value = 2, message = "审核结果最大为2")
    private Byte approveResult;
    /**
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java
@@ -8,6 +8,7 @@
import com.dy.pipIrrApp.workOrder.dto.DtoDeleteProResult;
import com.dy.pipIrrApp.workOrder.dto.DtoDeleteWorkOrder;
import com.dy.pipIrrApp.workOrder.qo.QoWorkOrder;
import com.dy.pipIrrGlobal.pojoOp.OpeApproveResult;
import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult;
import com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder;
import com.dy.pipIrrGlobal.voOp.VoProcessingResult;
@@ -244,4 +245,25 @@
            return BaseResponseUtils.buildException(e.getMessage());
        }
    }
    /**
     * 审核处理结果
     * @param po
     * @param bindingResult
     * @return
     */
    @PostMapping(path = "approveProResult")
    @Transactional(rollbackFor = Exception.class)
    public BaseResponse<Boolean> approveProResult(@RequestBody @Valid OpeApproveResult po, BindingResult bindingResult) {
        if(bindingResult != null && bindingResult.hasErrors()){
            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
        }
        String result = workOrderSv.approveProResult(po);
        if(!result.equals("success")) {
            return BaseResponseUtils.buildErrorMsg(result);
        }
        return BaseResponseUtils.buildSuccess(true) ;
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
@@ -2,8 +2,10 @@
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrApp.workOrder.qo.QoWorkOrder;
import com.dy.pipIrrGlobal.daoOp.OpeApproveResultMapper;
import com.dy.pipIrrGlobal.daoOp.OpeProcessingResultMapper;
import com.dy.pipIrrGlobal.daoOp.OpeWorkOrderMapper;
import com.dy.pipIrrGlobal.pojoOp.OpeApproveResult;
import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult;
import com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder;
import com.dy.pipIrrGlobal.voOp.VoProcessingResult;
@@ -32,6 +34,9 @@
    @Autowired
    private OpeProcessingResultMapper opeProcessingResultMapper;
    @Autowired
    private OpeApproveResultMapper opeApproveResultMapper;
    /**
     * 添加工单记录
@@ -169,4 +174,57 @@
    public VoProcessingResult getProResultById(Long proResultId) {
        return opeProcessingResultMapper.getProResultById(proResultId);
    }
    /**
     * 审核工单处理结果
     *      1. 判断指定的工单及处理结果是否存在且未完成
     *      2. 添加审核记录
     *      3. 如果审核通过
     *          处理结果状态改为已通过
     *          工单补充任务完成时间
     *          工单状态改为已完成
     *      4. 如果驳回
     *          任务处理结果改为驳回
     *          工单驳回次数加1
     * @param po
     * @return
     */
    public String approveProResult(OpeApproveResult po) {
        OpeProcessingResult processingResult = opeProcessingResultMapper.selectByPrimaryKey(po.getProcessingResultId());
        if(processingResult == null || processingResult.getDeleted() != 0 || processingResult.getState() != 1) {
            return "处理结果不存在或已完成审核";
        }
        OpeWorkOrder workOrder = opeWorkOrderMapper.selectByPrimaryKey(po.getWorkOrderId());
        if(workOrder == null || workOrder.getDeleted() != 0 || workOrder.getState() == 2) {
            return "工单不存在或已完成";
        }
        po.setApproveTime(new Date());
        po.setDeleted(0L);
        if(opeApproveResultMapper.insert(po) == 0) {
            return "审核记录添加失败";
        }
        if(po.getApproveResult() == 1) {
            // 审核通过
            processingResult.setState((byte)2);
            opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult);
            workOrder.setCompleteTime(processingResult.getCompleteTime());
            workOrder.setState((byte)2);
            opeWorkOrderMapper.updateByPrimaryKeySelective(workOrder);
        } else {
            // 驳回
            processingResult.setState((byte)3);
            opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult);
            workOrder.setRejectTimes(workOrder.getRejectTimes() + 1);
            opeWorkOrderMapper.updateByPrimaryKeySelective(workOrder);
        }
        return "success";
    }
}