package com.supervision.police.service.impl; import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.supervision.constant.CaseAnalysisStatusEnum; import com.supervision.constant.CaseDataStatusEnum; import com.supervision.constant.ScoreEnum; import com.supervision.police.domain.ModelCase; import com.supervision.police.domain.NoteRecord; import com.supervision.police.mapper.ModelCaseMapper; import com.supervision.police.mapper.NoteRecordMapper; import com.supervision.police.service.CaseStatusManageService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @Slf4j @Service @RequiredArgsConstructor public class CaseStatusManageServiceImpl implements CaseStatusManageService { private final ModelCaseMapper modelCaseMapper; private final NoteRecordMapper noteRecordMapper; @Override public void whenSaveCasePeople(String caseId, String roleId) { Assert.notEmpty(caseId, "案件id不能为空"); Assert.notEmpty(roleId, "角色id不能为空"); // 只处理行为人的角色类型 if (!"1".equals(roleId)){ return; } ModelCase modelCase = modelCaseMapper.selectById(caseId); Assert.notNull(modelCase,"案件信息不存在"); if (0 != modelCase.getCaseDataStatus()){ return; } // 查看是否有笔录 Long count = noteRecordMapper.selectCount( new LambdaQueryWrapper<>(new NoteRecord()) .eq(NoteRecord::getCaseId, caseId).eq(NoteRecord::getRole, roleId)); if (count > 0){ modelCaseMapper.update(new LambdaUpdateWrapper() .eq(ModelCase::getId, caseId) .set(ModelCase::getCaseDataStatus, CaseDataStatusEnum.UPDATE)); } } @Override public void whenDeleteCaseIndex(String caseId) { } @Override public void whenUploadRecord(String caseId) { modelCaseMapper.update(new LambdaUpdateWrapper() .eq(ModelCase::getId, caseId) .set(ModelCase::getCaseDataStatus, CaseDataStatusEnum.UPDATE)); } @Override public void whenDeleteRecord(String caseId) { this.whenUpdateData(caseId); } @Override public void whenUpdateData(String caseId) { Assert.notEmpty(caseId, "案件id不能为空"); modelCaseMapper.update(new LambdaUpdateWrapper() .eq(ModelCase::getId, caseId) .set(ModelCase::getCaseDataStatus, CaseAnalysisStatusEnum.UNANALYZED) .set(ModelCase::getCaseDataStatus, CaseDataStatusEnum.NOT_UPDATE) ); } @Override public void whenAnalyseCaseSuccess(String caseId, Integer score) { Assert.notEmpty(caseId, "案件id不能为空"); modelCaseMapper.update(new LambdaUpdateWrapper() .eq(ModelCase::getId, caseId) .set(ModelCase::getCaseAnalysisStatus, CaseAnalysisStatusEnum.ANALYZED) .set(ModelCase::getCaseDataStatus, CaseDataStatusEnum.NOT_UPDATE) .set(ModelCase::getTotalScore, score) .set(ModelCase::getIdentifyResult, ScoreEnum.getScoreEnum(score))); } @Override public void whenAnalyseCaseFail(String caseId) { Assert.notEmpty(caseId, "案件id不能为空"); modelCaseMapper.update(new LambdaUpdateWrapper() .eq(ModelCase::getId, caseId) .set(ModelCase::getCaseAnalysisStatus, CaseAnalysisStatusEnum.ANALYZE_FAIL)); } @Override public void whenAnalyseCaseStart(String caseId) { Assert.notEmpty(caseId, "案件id不能为空"); modelCaseMapper.update(new LambdaUpdateWrapper() .eq(ModelCase::getId, caseId) .set(ModelCase::getCaseAnalysisStatus, CaseAnalysisStatusEnum.ANALYZING)); } }