zhuo
2025-03-29 e19c5c816f8abfbbdb197e698cae285ab434fddb
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java
@@ -3,6 +3,7 @@
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -21,6 +22,7 @@
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.WxCpUtils;
import com.ruoyi.device.pojo.DeviceExamineRecord;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
import com.ruoyi.inspect.util.UserUtils;
@@ -177,6 +179,7 @@
                    detailsUploadList.add(superviseDetails);
                }
                @Override
                public void doAfterAllAnalysed(AnalysisContext analysisContext) {
@@ -349,8 +352,30 @@
        QualitySuperviseDetailsRecord detailsRecord;
        detailsRecord = qualitySuperviseDetailsRecordMapper.selectOne(Wrappers.<QualitySuperviseDetailsRecord>lambdaQuery()
                .eq(QualitySuperviseDetailsRecord::getSuperviseDetailsId, superviseDetailsId));
        // 查询上一个月第一条的记录信息, 判断被监督人去另外一个
        if (detailsRecord == null) {
            // 查询详情信息
            QualitySuperviseDetails qualitySuperviseDetails = qualitySuperviseDetailsMapper.selectById(superviseDetailsId);
            // 查询上一个月第一条的记录信息, 判断被监督人去另外一个
            QualitySuperviseDetailsRecord laseRecord = qualitySuperviseDetailsRecordMapper.selectOne(Wrappers.<QualitySuperviseDetailsRecord>lambdaQuery()
                    .last("limit 1"));
            detailsRecord = new QualitySuperviseDetailsRecord();
            detailsRecord.setSuperviseDetailsId(superviseDetailsId);
            detailsRecord.setTestMember(qualitySuperviseDetails.getSupervisee());
            detailsRecord.setSupervisor(null);
            detailsRecord.setPersonnel("()有相应检测员的上岗证");
            detailsRecord.setEnvironment("温度:()℃ 湿度:()%");
            detailsRecord.setInspectionRecord("检测人员()进行检测记录,记录内容真实有效");
            detailsRecord.setExaminingReport("由()黄秋实出示的检测报告符合规范要求");
            detailsRecord.setSupervisionEvaluation("检测按照要求进行,判定为满意");
            detailsRecord.setHandlingAdvice("/");
        }
        // 添加批准人名称
        if (detailsRecord.getRatifyUserId() != null) {
@@ -370,7 +395,11 @@
        if (qualitySuperviseDetailsRecord.getSuperviseDetailsId() == null) {
            throw new ErrorException("缺少监督详细信息id");
        }
        qualitySuperviseDetailsRecordMapper.insert(qualitySuperviseDetailsRecord);
        if (qualitySuperviseDetailsRecord.getSuperviseDetailsRecordId() == null) {
            qualitySuperviseDetailsRecordMapper.insert(qualitySuperviseDetailsRecord);
        } else {
            qualitySuperviseDetailsRecordMapper.updateById(qualitySuperviseDetailsRecord);
        }
        if (qualitySuperviseDetailsRecord.getRatifyUserId() != null) {
@@ -408,6 +437,10 @@
                }
            });
        }
        // 清空状态
        qualitySuperviseDetailsRecordMapper.update(null, Wrappers.<QualitySuperviseDetailsRecord>lambdaUpdate()
                .eq(QualitySuperviseDetailsRecord::getSuperviseDetailsRecordId, qualitySuperviseDetailsRecord.getSuperviseDetailsRecordId())
                .set(QualitySuperviseDetailsRecord::getIsFinish, null));
        return true;
    }
@@ -419,16 +452,27 @@
     */
    @Override
    public boolean addSuperviseRecordOpinion(QualitySuperviseDetailsRecord qualitySuperviseDetailsRecord) {
        if (qualitySuperviseDetailsRecord.getIsAccording() == null) {
            throw new ErrorException("缺少最终结果");
        if (qualitySuperviseDetailsRecord.getIsFinish() == null) {
            throw new RuntimeException("缺少记录结果状态");
        }
        qualitySuperviseDetailsRecordMapper.update(null, Wrappers.<QualitySuperviseDetailsRecord>lambdaUpdate()
        LambdaUpdateWrapper<QualitySuperviseDetailsRecord> wrapper = Wrappers.<QualitySuperviseDetailsRecord>lambdaUpdate()
                .eq(QualitySuperviseDetailsRecord::getSuperviseDetailsId, qualitySuperviseDetailsRecord.getSuperviseDetailsId())
                .set(QualitySuperviseDetailsRecord::getRatifyOpinion, qualitySuperviseDetailsRecord.getRatifyOpinion())
                .set(QualitySuperviseDetailsRecord::getRatifyTime, LocalDateTime.now())
                .set(QualitySuperviseDetailsRecord::getIsAccording, qualitySuperviseDetailsRecord.getIsAccording())
                .set(QualitySuperviseDetailsRecord::getIsFinish, 1));
                .set(QualitySuperviseDetailsRecord::getIsFinish, qualitySuperviseDetailsRecord.getIsFinish());
        // 为0清除审核人
        if (qualitySuperviseDetailsRecord.getIsFinish().equals(0)) {
            wrapper.set(QualitySuperviseDetailsRecord::getRatifyUserId, null)
                    .set(QualitySuperviseDetailsRecord::getRatifyTime, null);
        } else {
            wrapper.set(QualitySuperviseDetailsRecord::getRatifyTime, LocalDateTime.now());
        }
        qualitySuperviseDetailsRecordMapper.update(null, wrapper);
        return true;
    }
@@ -439,7 +483,7 @@
     */
    @Override
    public void exportSuperviseDetailRecord(Integer superviseDetailsId, HttpServletResponse response) {
        QualitySuperviseDetailsRecord recordDto =  qualitySuperviseDetailsRecordMapper.selectSuperviseDetailRecord(superviseDetailsId);
        QualitySuperviseDetailsRecord recordDto = qualitySuperviseDetailsRecordMapper.selectSuperviseDetailRecord(superviseDetailsId);
        //获取技术负责人的签名地址
        String ratifyUrl = null;
@@ -491,10 +535,10 @@
    public boolean addSuperviseDetailAccording(QualitySuperviseDetailsAccording detailsAccording) {
        QualitySuperviseDetailsAccording according = new QualitySuperviseDetailsAccording();
        // 当前登录用户信息和部门
        User user = userMapper.selectById( SecurityUtils.getUserId().intValue());
        User user = userMapper.selectById(SecurityUtils.getUserId().intValue());
        String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId());
        switch (detailsAccording.getFlowType()) {
                // 不符合工作情况记录
            // 不符合工作情况记录
            case 0:
                if (detailsAccording.getSuperviseDetailsId() == null) {
                    throw new ErrorException("缺少质量监督详情Id");
@@ -527,7 +571,7 @@
                qualitySuperviseDetailsAccordingMapper.insert(according);
                break;
                // 1处理措施
            // 1处理措施
            case 1:
                according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId());
                according.setEliminateMeasure(detailsAccording.getEliminateMeasure());//清除不符合措施
@@ -542,7 +586,7 @@
                qualitySuperviseDetailsAccordingMapper.updateById(according);
                break;
                // 纠正措施
            // 纠正措施
            case 2:
                according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId());
                according.setCorrectContent(detailsAccording.getCorrectContent());//纠正措施内容
@@ -557,7 +601,7 @@
                qualitySuperviseDetailsAccordingMapper.updateById(according);
                break;
                //是否通知客户可恢复工作
            //是否通知客户可恢复工作
            case 3:
                according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId());
                according.setNotifyCustomer(detailsAccording.getNotifyCustomer());//通知客户
@@ -592,7 +636,12 @@
        // 被监督人
        User supervisedUser = userMapper.selectById(detailsAccording.getSupervisedUserId());
        detailsAccording.setSupervisedUserName(supervisedUser.getName());//被监督
        qualitySuperviseDetailsAccordingMapper.insert(detailsAccording);
        if (detailsAccording.getSuperviseDetailsAccordingId() == null) {
            qualitySuperviseDetailsAccordingMapper.insert(detailsAccording);
        } else {
            qualitySuperviseDetailsAccordingMapper.updateById(detailsAccording);
        }
        if (detailsAccording.getApproverUserId() != null) {
            // 查询详情信息
@@ -628,6 +677,11 @@
            });
        }
        // 清空状态
        qualitySuperviseDetailsAccordingMapper.update(null, Wrappers.<QualitySuperviseDetailsAccording>lambdaUpdate()
                .eq(QualitySuperviseDetailsAccording::getSuperviseDetailsAccordingId, detailsAccording.getSuperviseDetailsAccordingId())
                .set(QualitySuperviseDetailsAccording::getIsFinish, null));
        return true;
    }
@@ -639,22 +693,41 @@
     */
    @Override
    public boolean approverEquipSuperviseDetailAccording(QualitySuperviseDetailsAccording detailsAccording) {
        if (detailsAccording.getIsFinish() == null) {
            throw new RuntimeException("缺少批准状态");
        }
        QualitySuperviseDetailsAccording according = new QualitySuperviseDetailsAccording();
        according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId());
        // 当前登录用户信息和部门
        User user = userMapper.selectById(SecurityUtils.getUserId().intValue());
        String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId());
        according.setResponsibleDepartment(departmentLimsName);//责任部门
        according.setActionsUserId(user.getId());//处理人id
        according.setActionsUserName(user.getName());//处理人
        if (detailsAccording.getIsFinish().equals(1)) {
            // 当前登录用户信息和部门
            User user = userMapper.selectById(SecurityUtils.getUserId().intValue());
            String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId());
        according.setCorrectUserId(user.getId());//纠正负责人id
        according.setCorrectUserName(user.getName());//纠正负责人
            according.setResponsibleDepartment(departmentLimsName);//责任部门
            according.setActionsUserId(user.getId());//处理人id
            according.setActionsUserName(user.getName());//处理人
        according.setQualityManagerUserId(user.getId());//质量负责人id
        according.setQualityManagerUserName(user.getName());//质量负责人
        according.setIsFinish(1);
            according.setCorrectUserId(user.getId());//纠正负责人id
            according.setCorrectUserName(user.getName());//纠正负责人
            according.setQualityManagerUserId(user.getId());//质量负责人id
            according.setQualityManagerUserName(user.getName());//质量负责人
        } else {
            qualitySuperviseDetailsAccordingMapper.update(null, Wrappers.<QualitySuperviseDetailsAccording>lambdaUpdate()
                    .eq(QualitySuperviseDetailsAccording::getSuperviseDetailsAccordingId, detailsAccording.getSuperviseDetailsAccordingId())
                    .set(QualitySuperviseDetailsAccording::getResponsibleDepartment, null)
                    .set(QualitySuperviseDetailsAccording::getActionsUserId, null)
                    .set(QualitySuperviseDetailsAccording::getActionsUserName, null)
                    .set(QualitySuperviseDetailsAccording::getCorrectUserId, null)
                    .set(QualitySuperviseDetailsAccording::getCorrectUserName, null)
                    .set(QualitySuperviseDetailsAccording::getQualityManagerUserId, null)
                    .set(QualitySuperviseDetailsAccording::getQualityManagerUserName, null)
                    .set(QualitySuperviseDetailsAccording::getApproverUserId, null));
        }
        according.setIsFinish(detailsAccording.getIsFinish());
        qualitySuperviseDetailsAccordingMapper.updateById(according);
        return true;
    }
@@ -675,6 +748,7 @@
            detailsAccording = new QualitySuperviseDetailsAccording();
            // 查询监督计划详情
            QualitySuperviseDetails superviseDetails = qualitySuperviseDetailsMapper.selectById(superviseDetailsId);
            superviseDetails.setSuperviseDetailsId(superviseDetailsId);
            detailsAccording.setSupervisedUserId(superviseDetails.getSupervisedUserId());
            detailsAccording.setSupervisedUserName(superviseDetails.getSupervisee());
        }
@@ -779,7 +853,7 @@
        String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId());
        switch (detailsCorrect.getFlowType()) {
                // 不合格提出
            // 不合格提出
            case 0:
                if (detailsCorrect.getSuperviseDetailsId() == null) {
                    throw new ErrorException("缺少质量监督详情Id");
@@ -803,7 +877,7 @@
                break;
                // 原因分析
            // 原因分析
            case 1:
                correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId());
                correct.setCauseResult(detailsCorrect.getCauseResult());//原因分析
@@ -819,7 +893,7 @@
                qualitySuperviseDetailsCorrectMapper.updateById(correct);
                break;
                // 纠正措施
            // 纠正措施
            case 2:
                correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId());
                correct.setCorrectResult(detailsCorrect.getCorrectResult());//2纠正措施
@@ -836,7 +910,7 @@
                qualitySuperviseDetailsCorrectMapper.updateById(correct);
                break;
                // 验证结果
            // 验证结果
            case 3:
                correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId());
                correct.setValidationResult(detailsCorrect.getValidationResult());//3验证结果
@@ -866,7 +940,11 @@
        detailsCorrect.setRaiseDepartment(departmentLimsName);//提出部门
        detailsCorrect.setRaiseUserId(user.getId());//提出人id
        detailsCorrect.setRaiseUserName(user.getName());// 提出人
        qualitySuperviseDetailsCorrectMapper.insert(detailsCorrect);
        if (detailsCorrect.getSuperviseDetailsCorrectId() == null) {
            qualitySuperviseDetailsCorrectMapper.insert(detailsCorrect);
        } else {
            qualitySuperviseDetailsCorrectMapper.updateById(detailsCorrect);
        }
        if (detailsCorrect.getApproverUserId() != null) {
            // 查询详情信息
@@ -902,6 +980,10 @@
            });
        }
        // 清空状态
        qualitySuperviseDetailsCorrectMapper.update(null, Wrappers.<QualitySuperviseDetailsCorrect>lambdaUpdate()
                .eq(QualitySuperviseDetailsCorrect::getSuperviseDetailsCorrectId, detailsCorrect.getSuperviseDetailsCorrectId())
                .set(QualitySuperviseDetailsCorrect::getIsFinish, null));
        return true;
    }
@@ -911,24 +993,45 @@
     */
    @Override
    public boolean approveEquipSuperviseDetailCorrect(QualitySuperviseDetailsCorrect detailsCorrect) {
        if (detailsCorrect.getIsFinish() == null) {
            throw new RuntimeException("缺少批准状态");
        }
        QualitySuperviseDetailsCorrect correct = new QualitySuperviseDetailsCorrect();
        // 当前登录用户信息和部门
        User user = userMapper.selectById(SecurityUtils.getUserId().intValue());
        String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId());
        correct.setSuperviseDetailsCorrectId(detailsCorrect.getSuperviseDetailsCorrectId());
        correct.setCauseDepartment(departmentLimsName);//原因分析责任部门
        correct.setCauseUserId(user.getId());//1原因分析人id
        correct.setCauseUserName(user.getName());// 1原因分析人
        if (detailsCorrect.getIsFinish().equals(1)) {
            correct.setCauseDepartment(departmentLimsName);//原因分析责任部门
            correct.setCauseUserId(user.getId());//1原因分析人id
            correct.setCauseUserName(user.getName());// 1原因分析人
        correct.setCorrectDepartment(departmentLimsName);//2纠正责任部门
        correct.setCorrectUserId(user.getId());//2纠正人id
        correct.setCorrectUserName(user.getName());// 2纠正人
            correct.setCorrectDepartment(departmentLimsName);//2纠正责任部门
            correct.setCorrectUserId(user.getId());//2纠正人id
            correct.setCorrectUserName(user.getName());// 2纠正人
        correct.setValidationDepartment(departmentLimsName);//3验证部门
        correct.setValidationUserId(user.getId());//3验证人id
        correct.setValidationUserName(user.getName());// 3验证人
        correct.setIsFinish(1);
            correct.setValidationDepartment(departmentLimsName);//3验证部门
            correct.setValidationUserId(user.getId());//3验证人id
            correct.setValidationUserName(user.getName());// 3验证人
        } else {
            qualitySuperviseDetailsCorrectMapper.update(null, Wrappers.<QualitySuperviseDetailsCorrect>lambdaUpdate()
                    .eq(QualitySuperviseDetailsCorrect::getSuperviseDetailsCorrectId, detailsCorrect.getSuperviseDetailsCorrectId())
                    .set(QualitySuperviseDetailsCorrect::getCauseDepartment, null)
                    .set(QualitySuperviseDetailsCorrect::getCauseUserId, null)
                    .set(QualitySuperviseDetailsCorrect::getCauseUserName, null)
                    .set(QualitySuperviseDetailsCorrect::getCorrectDepartment, null)
                    .set(QualitySuperviseDetailsCorrect::getCorrectUserId, null)
                    .set(QualitySuperviseDetailsCorrect::getCorrectUserName, null)
                    .set(QualitySuperviseDetailsCorrect::getValidationDepartment, null)
                    .set(QualitySuperviseDetailsCorrect::getValidationUserId, null)
                    .set(QualitySuperviseDetailsCorrect::getValidationUserName, null)
                    .set(QualitySuperviseDetailsCorrect::getApproverUserId, null)
            );
        }
        correct.setIsFinish(detailsCorrect.getIsFinish());
        qualitySuperviseDetailsCorrectMapper.updateById(correct);
        return true;
@@ -948,6 +1051,7 @@
        if (detailsCorrect == null) {
            detailsCorrect = new QualitySuperviseDetailsCorrect();
            detailsCorrect.setSuperviseDetailsId(superviseDetailsId);
        }
        return detailsCorrect;
    }