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");
        }
        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;
    }
@@ -592,7 +636,12 @@
        // 被监督人
        User supervisedUser = userMapper.selectById(detailsAccording.getSupervisedUserId());
        detailsAccording.setSupervisedUserName(supervisedUser.getName());//被监督
        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,8 +693,14 @@
     */
    @Override
    public boolean approverEquipSuperviseDetailAccording(QualitySuperviseDetailsAccording detailsAccording) {
        if (detailsAccording.getIsFinish() == null) {
            throw new RuntimeException("缺少批准状态");
        }
        QualitySuperviseDetailsAccording according = new QualitySuperviseDetailsAccording();
        according.setSuperviseDetailsAccordingId(detailsAccording.getSuperviseDetailsAccordingId());
        if (detailsAccording.getIsFinish().equals(1)) {
        // 当前登录用户信息和部门
        User user = userMapper.selectById(SecurityUtils.getUserId().intValue());
        String departmentLimsName = userMapper.selectUserDepartmentLimsName(user.getId());
@@ -654,7 +714,20 @@
        according.setQualityManagerUserId(user.getId());//质量负责人id
        according.setQualityManagerUserName(user.getName());//质量负责人
        according.setIsFinish(1);
        } 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());
        }
@@ -866,7 +940,11 @@
        detailsCorrect.setRaiseDepartment(departmentLimsName);//提出部门
        detailsCorrect.setRaiseUserId(user.getId());//提出人id
        detailsCorrect.setRaiseUserName(user.getName());// 提出人
        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,12 +993,17 @@
     */
    @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());
        if (detailsCorrect.getIsFinish().equals(1)) {
        correct.setCauseDepartment(departmentLimsName);//原因分析责任部门
        correct.setCauseUserId(user.getId());//1原因分析人id
        correct.setCauseUserName(user.getName());// 1原因分析人
@@ -928,7 +1015,23 @@
        correct.setValidationDepartment(departmentLimsName);//3验证部门
        correct.setValidationUserId(user.getId());//3验证人id
        correct.setValidationUserName(user.getName());// 3验证人
        correct.setIsFinish(1);
        } 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;
    }