diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/externalimport/ExternalImportController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/externalimport/ExternalImportController.java index 584b5e39..ee7a2b1e 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/externalimport/ExternalImportController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/externalimport/ExternalImportController.java @@ -95,7 +95,7 @@ public class ExternalImportController extends BaseController { * 查询外部数据导入列表、不分页、sn不为空 */ @PostMapping("/externalImports") - public List getExternalImports(ExternalImportDto externalImport) { + public List getExternalImports(@RequestBody ExternalImportDto externalImport) { return externalImportService.getExternalImports(externalImport); } } \ No newline at end of file diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/externalimport/ExternalImportMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/externalimport/ExternalImportMapper.java index 29c51853..80526840 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/externalimport/ExternalImportMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/externalimport/ExternalImportMapper.java @@ -2,6 +2,7 @@ package com.xinelu.manage.mapper.externalimport; import com.xinelu.manage.domain.externalimport.ExternalImport; import com.xinelu.manage.dto.externalimport.ExternalImportDto; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -90,4 +91,13 @@ public interface ExternalImportMapper { * @return Long */ Long getExternalImportCount(); + + /** + * 修改医共体数据 + * + * @param ids 医共体ids + * @param sn 批次号 + * @return int + */ + int updateExternalImportSn(@Param("ids") List ids, @Param("sn") String sn); } \ No newline at end of file diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/externalimport/impl/ExternalImportServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/externalimport/impl/ExternalImportServiceImpl.java index 2a8ef7d8..ea702dfa 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/externalimport/impl/ExternalImportServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/externalimport/impl/ExternalImportServiceImpl.java @@ -8,6 +8,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import java.util.Objects; /** * 外部数据导入Service业务层处理 @@ -95,6 +96,17 @@ public class ExternalImportServiceImpl implements IExternalImportService { */ @Override public List getExternalImports(ExternalImportDto externalImport) { + if (Objects.isNull(externalImport.getVisitMethod())) { + externalImport.setVisitMethod("1"); + } + if (externalImport.getVisitMethod().equals("1")) { + externalImport.setDischargeDateStart(null); + externalImport.setDischargeDateEnd(null); + } + if (externalImport.getVisitMethod().equals("2")) { + externalImport.setVisitDateStart(null); + externalImport.setVisitDateEnd(null); + } return externalImportMapper.getExternalImports(externalImport); } } \ No newline at end of file diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfoimportmain/impl/PatientInfoImportMainServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfoimportmain/impl/PatientInfoImportMainServiceImpl.java index aae4761c..b5aeb445 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfoimportmain/impl/PatientInfoImportMainServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patientinfoimportmain/impl/PatientInfoImportMainServiceImpl.java @@ -22,6 +22,7 @@ import com.xinelu.manage.domain.residentinfo.ResidentInfo; import com.xinelu.manage.dto.patientinfoimportmain.PatientInfoImportMainDto; import com.xinelu.manage.mapper.agency.AgencyMapper; import com.xinelu.manage.mapper.department.DepartmentMapper; +import com.xinelu.manage.mapper.externalimport.ExternalImportMapper; import com.xinelu.manage.mapper.patientinfo.PatientInfoMapper; import com.xinelu.manage.mapper.patientinfoimport.PatientInfoImportMapper; import com.xinelu.manage.mapper.patientinfoimportmain.PatientInfoImportMainMapper; @@ -39,7 +40,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @@ -71,6 +71,8 @@ public class PatientInfoImportMainServiceImpl implements IPatientInfoImportMainS private PatientInfoMapper patientInfoMapper; @Resource private PatientVisitRecordMapper patientVisitRecordMapper; + @Resource + private ExternalImportMapper externalImportMapper; @DataScope(agencyAlias = "p") @@ -214,14 +216,14 @@ public class PatientInfoImportMainServiceImpl implements IPatientInfoImportMainS } //新增导入信息 PatientInfoImportMain patientInfoImportMain = new PatientInfoImportMain(); + patientInfoImportMain.setImportName(patientInfoImportMainDto.getImportName()); patientInfoImportMain.setHospitalAgencyId(agency.getId()); patientInfoImportMain.setHospitalAgencyName(agency.getAgencyName()); patientInfoImportMain.setCreateBy(SecurityUtils.getUsername()); patientInfoImportMain.setCreateTime(LocalDateTime.now()); String sn = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); patientInfoImportMain.setSn(sn); - patientInfoImportMain.setImportStatus(ImportStatusEnum.UNFINISHED.getInfo()); - patientInfoImportMain.setImportName(LocalDate.now() + "医共体获取数据"); + patientInfoImportMain.setImportStatus(ImportStatusEnum.FINISHED.getInfo()); patientInfoImportMainMapper.insertPatientInfoImportMain(patientInfoImportMain); List patientInfoImportList = new ArrayList<>(); Long i = 1L; @@ -266,6 +268,8 @@ public class PatientInfoImportMainServiceImpl implements IPatientInfoImportMainS } //新增缓存表 patientInfoImportMapper.insertPatientInfoImportList(patientInfoImportList); + List ids = patientInfoImportMainDto.getExternalImports().stream().filter(Objects::nonNull).map(ExternalImport::getId).collect(Collectors.toList()); + externalImportMapper.updateExternalImportSn(ids, sn); List residentInfos = residentInfoMapper.selectResidentInfoByPhoneList(patientInfoImportList); List resident = new ArrayList<>(); patientInfoImportList.forEach(item -> { diff --git a/postdischarge-manage/src/main/resources/mapper/manage/externalImport/ExternalImportMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/externalImport/ExternalImportMapper.xml index 62120c4e..71772240 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/externalImport/ExternalImportMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/externalImport/ExternalImportMapper.xml @@ -320,8 +320,8 @@ + + + update external_import + set sn = #{sn} + where id in + + #{id} + + \ No newline at end of file diff --git a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/MedicalConsortiumPlatformTask.java b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/MedicalConsortiumPlatformTask.java index 006f134a..ec92df54 100644 --- a/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/MedicalConsortiumPlatformTask.java +++ b/postdischarge-quartz/src/main/java/com/xinelu/quartz/task/MedicalConsortiumPlatformTask.java @@ -1,6 +1,13 @@ package com.xinelu.quartz.task; +import com.xinelu.common.constant.Constants; +import com.xinelu.common.enums.NodeTypeEnum; +import com.xinelu.common.utils.codes.GenerateSystemCodeUtil; +import com.xinelu.manage.domain.agency.Agency; +import com.xinelu.manage.domain.department.Department; import com.xinelu.manage.domain.externalimport.ExternalImport; +import com.xinelu.manage.mapper.agency.AgencyMapper; +import com.xinelu.manage.mapper.department.DepartmentMapper; import com.xinelu.manage.mapper.externalimport.ExternalImportMapper; import com.xinelu.quartz.domain.TbFollowUp; import lombok.extern.slf4j.Slf4j; @@ -34,8 +41,14 @@ public class MedicalConsortiumPlatformTask { @Resource private ExternalImportMapper externalImportMapper; - + @Resource + private DepartmentMapper departmentMapper; @Value("${xinyilu-database.main_hospital}") + private Long mainHospitalId; + @Resource + private GenerateSystemCodeUtil generateSystemCodeUtil; + @Resource + private AgencyMapper agencyMapper; static final String sql = "SELECT * FROM tb_follow_up"; static final String sql_date = "SELECT * FROM tb_follow_up where TSXJ > TO_DATE('" + LocalDate.now() + "', 'YYYY-MM-DD HH24:MI:SS') AND TSXJ < TO_DATE('" + LocalDate.now().plusDays(1) + "', 'YYYY-MM-DD HH24:MI:SS')"; @@ -100,6 +113,35 @@ public class MedicalConsortiumPlatformTask { list = list.stream().filter(Objects::nonNull).filter(item -> StringUtils.isNotBlank(item.getJZLSH()) && StringUtils.isNotBlank(item.getXM()) && StringUtils.isNotBlank(item.getLXDH()) && StringUtils.isNotBlank(item.getZJHM())).collect(Collectors.toList()); List collect = list.stream().filter(Objects::nonNull).map(TbFollowUp::getJZLSH).collect(Collectors.toList()); + //科室信息组装-新增不存在科室 + Agency agency = agencyMapper.selectAgencyById(mainHospitalId); + List departments = new ArrayList<>(); + List difference; + Department department = new Department(); + department.setHospitalAgencyId(mainHospitalId); + List departmentList = departmentMapper.selectDepartmentNameCount(department); + List importDepartmentName = list.stream().filter(Objects::nonNull).map(TbFollowUp::getJZKSMC).distinct().collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(departmentList)) { + List dateDepartmentName = departmentList.stream().filter(Objects::nonNull).map(Department::getDepartmentName).distinct().collect(Collectors.toList()); + difference = importDepartmentName.stream().filter(element -> !dateDepartmentName.contains(element)).collect(Collectors.toList()); + } else { + difference = importDepartmentName; + } + if (CollectionUtils.isNotEmpty(difference) || difference.size() > 0) { + for (String s : difference) { + Department newDepartment = new Department(); + newDepartment.setParentDepartmentId(0L); + newDepartment.setNodeType(NodeTypeEnum.DEPARTMENT.getInfo()); + newDepartment.setDepartmentName(s); + newDepartment.setDepartmentCode(Constants.DEPARTMENT_IMPORT_CODE + generateSystemCodeUtil.generateSystemCode(Constants.DEPARTMENT_IMPORT_CODE)); + newDepartment.setHospitalAgencyName(agency.getAgencyName()); + newDepartment.setHospitalAgencyId(agency.getId()); + newDepartment.setCreateTime(LocalDateTime.now()); + newDepartment.setCreateBy("数据导入"); + departments.add(newDepartment); + } + departmentMapper.insertPartDepartmentList(departments); + } //筛选就诊号并根据就诊号查询数据库 List dataExternalImports = externalImportMapper.selectExternalByPhone(collect); List externalImports = new ArrayList<>();