liurunyu
2024-12-13 bb1f589a8db11d62976f3d8125a2bf6beb13bb73
pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
@@ -1,21 +1,32 @@
package com.dy.pipIrrApp.workOrder;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrApp.workOrder.qo.QoWorkOrder;
import com.dy.pipIrrGlobal.daoBa.BaUserMapper;
import com.dy.pipIrrGlobal.daoOp.OpeApproveResultMapper;
import com.dy.pipIrrGlobal.daoOp.OpeProcessingResultMapper;
import com.dy.pipIrrGlobal.daoOp.OpeTaskTypeMapper;
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.voBa.VoRoleSimple;
import com.dy.pipIrrGlobal.voOp.VoProcessingResult;
import com.dy.pipIrrGlobal.voOp.VoProcessingResult_temp;
import com.dy.pipIrrGlobal.voOp.VoTaskType;
import com.dy.pipIrrGlobal.voOp.VoWorkOrder;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/**
 * @author ZhuBaoMin
@@ -32,6 +43,15 @@
    @Autowired
    private OpeProcessingResultMapper opeProcessingResultMapper;
    @Autowired
    private OpeApproveResultMapper opeApproveResultMapper;
    @Autowired
    private OpeTaskTypeMapper opeTaskTypeMapper;
    @Autowired
    private BaUserMapper baUserMapper;
    /**
     * 添加工单记录
@@ -167,6 +187,87 @@
     * @return
     */
    public VoProcessingResult getProResultById(Long proResultId) {
        return opeProcessingResultMapper.getProResultById(proResultId);
        VoProcessingResult_temp result_temp = opeProcessingResultMapper.getProResultById(proResultId);
        VoProcessingResult result = new VoProcessingResult();
        BeanUtils.copyProperties(result_temp, result);
        JSONArray images_array = Optional.ofNullable(JSON.parseArray(result_temp.getImages())).orElse(new JSONArray());
        JSONArray audios_array = Optional.ofNullable(JSON.parseArray(result_temp.getAudios())).orElse(new JSONArray());
        JSONArray videos_array = Optional.ofNullable(JSON.parseArray(result_temp.getVideos())).orElse(new JSONArray());
        result.setImages(images_array);
        result.setAudios(audios_array);
        result.setVideos(videos_array);
        return result;
    }
    /**
     * 审核工单处理结果
     *      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";
    }
    /**
     * 获取任务类型列表
     * @return
     */
    public List<VoTaskType> getTaskTypes() {
        return opeTaskTypeMapper.getTaskTypes();
    }
    /**
     * 获取巡检员列表
     * @param inspector
     * @return
     */
    public List<VoRoleSimple> getInspectors(String inspector) {
        return baUserMapper.getInspectors(inspector);
    }
}