From dd6f149730e63796fdaed65c6076ca84e4d1a187 Mon Sep 17 00:00:00 2001 From: liu Date: Fri, 22 Dec 2023 15:17:52 +0800 Subject: [PATCH] =?UTF-8?q?bugfix:=E4=BF=AE=E5=A4=8D=E5=88=9D=E6=AD=A5?= =?UTF-8?q?=E8=AF=8A=E6=96=AD=E6=9C=AA=E9=80=89=E4=B8=AD=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervision/config/JwtInterceptor.java | 30 ++++++------ .../mapper/DiagnosisPrimaryMapper.java | 4 +- .../service/DiagnosisPrimaryService.java | 4 +- .../impl/DiagnosisPrimaryServiceImpl.java | 20 +++++--- .../mapper/DiagnosisPrimaryMapper.xml | 48 +++++++++++-------- .../controller/AskPrimaryController.java | 6 +++ .../service/AskPrimaryService.java | 2 + .../service/impl/AskAncillaryServiceImpl.java | 2 +- .../service/impl/AskPhysicalServiceImpl.java | 2 +- .../service/impl/AskPrimaryServiceImpl.java | 29 ++++++++--- .../impl/MedicalRecordServiceImpl.java | 2 +- 11 files changed, 96 insertions(+), 53 deletions(-) diff --git a/virtual-patient-common/src/main/java/com/supervision/config/JwtInterceptor.java b/virtual-patient-common/src/main/java/com/supervision/config/JwtInterceptor.java index 89d7e453..70fe2534 100644 --- a/virtual-patient-common/src/main/java/com/supervision/config/JwtInterceptor.java +++ b/virtual-patient-common/src/main/java/com/supervision/config/JwtInterceptor.java @@ -37,21 +37,21 @@ public class JwtInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { -// //请求消息头获取用户ID -// String token = request.getHeader("token"); -// if (StrUtil.isBlank(token)) { -// // 如果是swagger来的接口,说明这里是测试的,会伪造一个用户 -// if (StrUtil.isNotBlank(request.getHeader("Knife4j-Gateway-Code"))) { -// cacheAuth(JWTUtil.parseToken(devActiveUser())); -// return true; -// } else { -// throw new BusinessException("当前用户未登录", HttpStatus.UNAUTHORIZED.value()); -// } -// } -// JWT jwt = JWTUtil.parseToken(token); -// // 校验token是否过期,如果过期了,需要提示过期重新登录 -// checkTokenExpire(jwt); -// cacheAuth(jwt); + //请求消息头获取用户ID + String token = request.getHeader("token"); + if (StrUtil.isBlank(token)) { + // 如果是swagger来的接口,说明这里是测试的,会伪造一个用户 + if (StrUtil.isNotBlank(request.getHeader("Knife4j-Gateway-Code"))) { + cacheAuth(JWTUtil.parseToken(devActiveUser())); + return true; + } else { + throw new BusinessException("当前用户未登录", HttpStatus.UNAUTHORIZED.value()); + } + } + JWT jwt = JWTUtil.parseToken(token); + // 校验token是否过期,如果过期了,需要提示过期重新登录 + checkTokenExpire(jwt); + cacheAuth(jwt); return true; } diff --git a/virtual-patient-model/src/main/java/com/supervision/mapper/DiagnosisPrimaryMapper.java b/virtual-patient-model/src/main/java/com/supervision/mapper/DiagnosisPrimaryMapper.java index cebd1432..5521672b 100644 --- a/virtual-patient-model/src/main/java/com/supervision/mapper/DiagnosisPrimaryMapper.java +++ b/virtual-patient-model/src/main/java/com/supervision/mapper/DiagnosisPrimaryMapper.java @@ -16,7 +16,9 @@ import java.util.List; */ public interface DiagnosisPrimaryMapper extends BaseMapper { - List queryAskPrimaryList(@Param("processId") String processId); + List queryAskPrimaryListByProcessId(@Param("processId") String processId); + + DiagnosisPrimaryVO queryAskPrimaryListByPrimaryId(@Param("primaryId") String primaryId); List queryAskPrimaryListByProcessIds(@Param("processIds") List processIds); diff --git a/virtual-patient-model/src/main/java/com/supervision/service/DiagnosisPrimaryService.java b/virtual-patient-model/src/main/java/com/supervision/service/DiagnosisPrimaryService.java index e7980e89..f47e4dfa 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/DiagnosisPrimaryService.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/DiagnosisPrimaryService.java @@ -14,7 +14,9 @@ import java.util.List; */ public interface DiagnosisPrimaryService extends IService { - List queryAskPrimaryList(String processId); + List queryAskPrimaryListByProcessId(String processId); + + DiagnosisPrimaryVO queryAskPrimaryListByPrimaryId(String primaryId); List queryAskPrimaryListByProcessIds(List processIds); diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/DiagnosisPrimaryServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/DiagnosisPrimaryServiceImpl.java index bfcf360f..a22a8187 100644 --- a/virtual-patient-model/src/main/java/com/supervision/service/impl/DiagnosisPrimaryServiceImpl.java +++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/DiagnosisPrimaryServiceImpl.java @@ -6,22 +6,28 @@ import com.supervision.service.DiagnosisPrimaryService; import com.supervision.mapper.DiagnosisPrimaryMapper; import com.supervision.vo.ask.DiagnosisPrimaryVO; import com.supervision.vo.ask.DiagnosticBasisForPrimaryResVO; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; import java.util.List; /** -* @author flevance -* @description 针对表【vp_diagnosis_primary(初步诊断表)】的数据库操作Service实现 -* @createDate 2023-10-26 11:33:21 -*/ + * @author flevance + * @description 针对表【vp_diagnosis_primary(初步诊断表)】的数据库操作Service实现 + * @createDate 2023-10-26 11:33:21 + */ @Service public class DiagnosisPrimaryServiceImpl extends ServiceImpl - implements DiagnosisPrimaryService{ + implements DiagnosisPrimaryService { @Override - public List queryAskPrimaryList(String processId) { - return this.baseMapper.queryAskPrimaryList(processId); + public List queryAskPrimaryListByProcessId(String processId) { + return this.baseMapper.queryAskPrimaryListByProcessId(processId); + } + + @Override + public DiagnosisPrimaryVO queryAskPrimaryListByPrimaryId(String primaryId) { + return this.baseMapper.queryAskPrimaryListByPrimaryId(primaryId); } @Override diff --git a/virtual-patient-model/src/main/resources/mapper/DiagnosisPrimaryMapper.xml b/virtual-patient-model/src/main/resources/mapper/DiagnosisPrimaryMapper.xml index e9ffb324..8aa6cb34 100644 --- a/virtual-patient-model/src/main/resources/mapper/DiagnosisPrimaryMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/DiagnosisPrimaryMapper.xml @@ -23,7 +23,7 @@ update_time - select t1.*, if(t2.disease_name_alias is null, t2.disease_name, t2.disease_name_alias) as primaryDiseaseName from vp_diagnosis_primary t1 left join vp_disease t2 on t1.primary_diagnosis_id = t2.id @@ -33,14 +33,23 @@ + + + + + diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java b/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java index 290d228d..43c8b856 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/AskPrimaryController.java @@ -44,6 +44,12 @@ public class AskPrimaryController { return askPrimaryService.queryPrimaryCanChooseList(); } + + @ApiOperation("获取单个初步诊断详细信息") + @GetMapping("queryPrimaryDetailInfo") + public DiagnosisPrimaryVO queryPrimaryDetailInfo(String primaryId) { + return askPrimaryService.queryPrimaryDetailInfo(primaryId); + } @ApiOperation("修改初步诊断病情依据") @PostMapping("modifyPrimaryDiseaseInfo") public void modifyPrimaryDiseaseInfo(@RequestBody @Validated ModifyPrimaryDiseaseInfoReqVO reqVO) { diff --git a/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java b/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java index e7753b41..0eb78674 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/AskPrimaryService.java @@ -19,6 +19,8 @@ public interface AskPrimaryService { List queryPrimaryCanChooseList(); + DiagnosisPrimaryVO queryPrimaryDetailInfo(String primaryId); + void modifyPrimaryDiseaseInfo(ModifyPrimaryDiseaseInfoReqVO reqVO); void savePrimary(SaveDiagnosisPrimaryReqVO reqVO); diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java index f643f8d3..78c2a022 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java @@ -115,7 +115,7 @@ public class AskAncillaryServiceImpl implements AskAncillaryService { public List queryAskAncillaryHistory(String processId) { List historyList = diagnosisAncillaryRecordService.queryAncillaryRecord(processId); // 找到问诊流程对应的初步诊断项目 - List diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId); + List diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryListByProcessId(processId); Map primaryMap = diagnosisPrimaryVOS.stream().collect(Collectors.toMap(DiagnosisPrimaryVO::getId, Function.identity())); // 这里需要根据item和primaryId进行去重,对于完全相同的,只保留一个, Map> collect = historyList.stream().collect(Collectors.groupingBy(e -> e.getItemId() + e.getPrimaryId())); diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java index a0ce7d34..40316fd9 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java @@ -113,7 +113,7 @@ public class AskPhysicalServiceImpl implements AskPhysicalService { Map> relationMap = relationList.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getRelationId)); // 找到process对应的所有的初步诊断 - List diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId); + List diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryListByProcessId(processId); Map diseaseNameMap = diagnosisPrimaryVOS.stream().collect(Collectors.toMap(DiagnosisPrimaryVO::getId, DiagnosisPrimaryVO::getPrimaryDiseaseName)); for (AskPhysicalHistoryResVO node : res) { List temp = relationMap.get(node.getId()); diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java index c630b762..fde9c96d 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPrimaryServiceImpl.java @@ -8,13 +8,12 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.druid.sql.visitor.functions.If; import com.sun.media.sound.AiffFileReader; import com.supervision.exception.BusinessException; -import com.supervision.model.*; import com.supervision.model.Process; +import com.supervision.model.*; import com.supervision.pojo.vo.*; -import com.supervision.vo.ask.*; import com.supervision.service.*; import com.supervision.util.UserUtil; -import io.swagger.models.auth.In; +import com.supervision.vo.ask.*; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -44,7 +43,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService { @Override public List queryAskPrimaryList(String processId) { - List resVoList = diagnosisPrimaryService.queryAskPrimaryList(processId); + List resVoList = diagnosisPrimaryService.queryAskPrimaryListByProcessId(processId); List list = diagnosisPrimaryRelationService.lambdaQuery().eq(DiagnosisPrimaryRelation::getProcessId, processId).list(); if (CollUtil.isNotEmpty(list)) { Map> relationMap = list.stream().collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getPrimaryId)); @@ -67,6 +66,22 @@ public class AskPrimaryServiceImpl implements AskPrimaryService { return diseaseService.list(); } + @Override + public DiagnosisPrimaryVO queryPrimaryDetailInfo(String primaryId) { + DiagnosisPrimaryVO diagnosisPrimaryVO = diagnosisPrimaryService.queryAskPrimaryListByPrimaryId(primaryId); + List relationList = diagnosisPrimaryRelationService.lambdaQuery() + .eq(DiagnosisPrimaryRelation::getPrimaryId, primaryId) + .list(); + if (CollUtil.isNotEmpty(relationList)) { + Map> relationIdMap = relationList.stream() + .collect(Collectors.groupingBy(DiagnosisPrimaryRelation::getType, Collectors.mapping(DiagnosisPrimaryRelation::getRelationId, Collectors.toList()))); + diagnosisPrimaryVO.setAskIdList(Optional.ofNullable(relationIdMap.get(1)).orElseGet(ArrayList::new)); + diagnosisPrimaryVO.setPhysicalIdList(Optional.ofNullable(relationIdMap.get(2)).orElseGet(ArrayList::new)); + diagnosisPrimaryVO.setAncillaryIdList(Optional.ofNullable(relationIdMap.get(3)).orElseGet(ArrayList::new)); + } + return diagnosisPrimaryVO; + } + @Override @Transactional(rollbackFor = Exception.class) public void modifyPrimaryDiseaseInfo(ModifyPrimaryDiseaseInfoReqVO reqVO) { @@ -115,10 +130,10 @@ public class AskPrimaryServiceImpl implements AskPrimaryService { diagnosisPrimary.setCreateUserId(UserUtil.getUser().getId()); String primaryDiagnosisId = diagnosisPrimary.getPrimaryDiagnosisId(); - Assert.notEmpty(primaryDiagnosisId,"疾病不能为空"); + Assert.notEmpty(primaryDiagnosisId, "疾病不能为空"); List dbList = diagnosisPrimaryService.lambdaQuery().eq(DiagnosisPrimary::getPrimaryDiagnosisId, primaryDiagnosisId) .eq(DiagnosisPrimary::getProcessId, diagnosisPrimary.getProcessId()).list(); - Assert.isTrue(CollectionUtil.isEmpty(dbList),"初步诊断已存在"); + Assert.isTrue(CollectionUtil.isEmpty(dbList), "初步诊断已存在"); diagnosisPrimaryService.save(diagnosisPrimary); // 然后开始保存初步诊断关键的诊断 @@ -256,7 +271,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService { return resList; } // 找到process对应的所有的初步诊断 - List diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId); + List diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryListByProcessId(processId); Map diseaseNameMap = diagnosisPrimaryVOS.stream().peek(vo -> { if (StrUtil.isEmpty(vo.getPrimaryDiseaseName())) { vo.setPrimaryDiseaseName(""); diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/MedicalRecordServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/MedicalRecordServiceImpl.java index 3010b712..5667ceea 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/MedicalRecordServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/MedicalRecordServiceImpl.java @@ -81,7 +81,7 @@ public class MedicalRecordServiceImpl implements MedicalRecordService { ProcessMedicalViewDetailResVo resultVo = BeanUtil.toBean(processMedicalResVo, ProcessMedicalViewDetailResVo.class); // 2. 获取初步诊断疾病信息 - List diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryList(processId); + List diagnosisPrimaryVOS = diagnosisPrimaryService.queryAskPrimaryListByProcessId(processId); resultVo.setPrimaryDiseaseNameList( diagnosisPrimaryVOS.stream().map(DiagnosisPrimaryVO::getPrimaryDiseaseName).distinct().collect(Collectors.toList()));