pom.xml
@@ -241,6 +241,13 @@ <version>${ruoyi.version}</version> </dependency> <!-- æ£è æ¡£æ¡æ¨¡åï¼pat_archive å®¶æï¼ä¾èµ task/inhospvisit/outpatientvisit/templateï¼ä¸ä¾èµ smartorï¼ --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-patarchive</artifactId> <version>${ruoyi.version}</version> </dependency> <!-- çµè¯æ¨¡åï¼ä¸æµ·/é¨ç»®/䏿±å¤å¼åè°ä¸ä»»å¡æåï¼ä¾èµ ruoyi-task å任塿°æ®ï¼ä¸ä¾èµ smartorï¼ --> <dependency> <groupId>com.ruoyi</groupId> @@ -278,6 +285,8 @@ <module>ruoyi-template</module> <!-- 任塿¨¡åï¼åªä¾èµ ruoyi-commonï¼å¿ é¡»æå¨ä¾èµå®ç smartor / ruoyi-quartz ä¹å --> <module>ruoyi-task</module> <!-- æ£è æ¡£æ¡æ¨¡åï¼pat_archive å®¶æçå¯ä¸å®ç°å¤ï¼ä¾èµ task/inhospvisit/outpatientvisit/template --> <module>ruoyi-patarchive</module> <!-- çµè¯æ¨¡åï¼ä¾èµ ruoyi-taskï¼ä»»å¡æ°æ®ï¼ä¸ ruoyi-templateï¼æ¨¡æ¿è¯æ¯ï¼ï¼å¿ é¡»æå¨ ruoyi-task ä¹åãsmartor ä¹å --> <module>ruoyi-phone</module> <!-- ruoyi-admin/pom.xml
@@ -123,6 +123,15 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-task</artifactId> </dependency> <!-- æ£è æ¡£æ¡æ¨¡åï¼2026-11 ä» smartor è¿åº pat_archive å®¶æï¼ï¼ æ¡£æ¡ç¸å ³ Controller ä»å¨ ruoyi-adminï¼URL æªåï¼ï¼ä½æ³¨å ¥çæ¯æ¬æ¨¡åç serviceã --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-patarchive</artifactId> </dependency> <!-- çµè¯æ¨¡åï¼ä¸æµ·/é¨ç»®/䏿±å¤å¼åè°ã任塿åï¼ã â ï¸ åæ ·ãå¿ é¡»æ¾å¼å£°æãï¼æ¬æ¨¡åè¦æ ruoyi-phone æè¿ smartor-suifang.jarï¼ ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -20,7 +20,6 @@ import com.smartor.domain.*; import com.smartor.mapper.*; import com.smartor.service.IBaseSmsaccountService; import com.smartor.service.IServiceSubtaskRecordService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; @@ -50,6 +49,9 @@ import com.ruoyi.task.service.IServiceOutPathService; import com.ruoyi.task.domain.ServiceSubtaskPreachform; import com.ruoyi.task.domain.SendMagParam; import com.ruoyi.task.service.IServiceSubtaskRecordService; import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper; import com.ruoyi.patarchive.mapper.PatArchiveMapper; @Slf4j @Component//ç嬿¤éå public class RedisMqReceiver extends KeyExpirationEventMessageListener { ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HNGatherPatArchiveController.java
@@ -10,9 +10,9 @@ import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.*; import com.smartor.service.IHNGatherPatArchiveService; import com.ruoyi.datacollection.service.IHNGatherPatArchiveService; import com.smartor.service.IPatMedOuthospService; import com.smartor.service.impl.HNGatherPatArchiveServiceImpl; import com.ruoyi.datacollection.service.impl.HNGatherPatArchiveServiceImpl; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; @@ -28,6 +28,8 @@ import java.util.List; import static com.ruoyi.framework.datasource.DynamicDataSourceContextHolder.log; import com.ruoyi.common.core.domain.entity.Icd10; import com.ruoyi.datacollection.domain.HnDataGatherVO; /** * æ²³åé鿣è ä¿¡æ¯æ¥å£Controller ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/Icd10Controller.java
@@ -9,8 +9,8 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.Icd10; import com.smartor.service.IIcd10Service; import com.ruoyi.common.core.domain.entity.Icd10; import com.ruoyi.common.core.service.IIcd10Service; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/MedicationDoseInfoController.java
@@ -7,8 +7,8 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.MedicationDoseInfo; import com.smartor.service.IMedicationDoseInfoService; import com.ruoyi.common.core.domain.entity.MedicationDoseInfo; import com.ruoyi.common.core.service.IMedicationDoseInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/MedicationItemController.java
@@ -8,8 +8,8 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.MedicationItem; import com.smartor.service.IMedicationItemService; import com.ruoyi.common.core.domain.entity.MedicationItem; import com.ruoyi.common.core.service.IMedicationItemService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java
@@ -13,7 +13,7 @@ import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.*; import com.smartor.service.IPatArchiveService; import com.ruoyi.patarchive.service.IPatArchiveService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -32,6 +32,10 @@ import java.util.concurrent.Executor; import java.util.concurrent.Executors; import com.ruoyi.common.core.domain.entity.PatArchive; import com.ruoyi.patarchive.domain.PatArchiveOthreInfo; import com.ruoyi.patarchive.domain.PatArchiveReq; import com.ruoyi.patarchive.domain.PatArchiveVO; import com.ruoyi.patarchive.domain.PatUpInfoVO; /** * æ£è æ¡£æ¡Controller ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveImportController.java
@@ -12,8 +12,8 @@ import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.PatArchiveImport; import com.smartor.service.IPatArchiveImportService; import com.ruoyi.patarchive.domain.PatArchiveImport; import com.ruoyi.patarchive.service.IPatArchiveImportService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveOutController.java
@@ -6,8 +6,8 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.PatArchiveOut; import com.smartor.service.IPatArchiveOutService; import com.ruoyi.patarchive.domain.PatArchiveOut; import com.ruoyi.patarchive.service.IPatArchiveOutService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchivecontactController.java
@@ -9,7 +9,7 @@ import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.PageUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.service.IPatArchivecontactService; import com.ruoyi.patarchive.service.IPatArchivecontactService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchivetagController.java
@@ -5,7 +5,7 @@ import com.ruoyi.common.annotation.AddOrgId; import com.ruoyi.common.core.domain.entity.SysUser; import com.smartor.service.IPatArchivetagService; import com.ruoyi.patarchive.service.IPatArchivetagService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.security.access.prepost.PreAuthorize; ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PersonWorkbenchController.java
@@ -4,7 +4,7 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.web.component.DeptUtils; import com.smartor.domain.PerSonWorkbenchDto; import com.ruoyi.patarchive.domain.PerSonWorkbenchDto; import com.smartor.service.PersonWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceAppointRecordController.java
@@ -7,8 +7,8 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.ServiceAppointRecord; import com.smartor.service.IServiceAppointRecordService; import com.ruoyi.datacollection.domain.ServiceAppointRecord; import com.ruoyi.datacollection.service.IServiceAppointRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceOutPathController.java
@@ -12,7 +12,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.BaseOrganization; import com.smartor.service.IBaseOrganizationService; import com.smartor.service.IPatArchiveService; import com.ruoyi.patarchive.service.IPatArchiveService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSLTDHealthcareRecordController.java
@@ -2,10 +2,10 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.smartor.domain.ServiceSLTDDeptReqVO; import com.smartor.domain.ServiceSLTDInhospReqVO; import com.smartor.domain.ServiceSLTDInhospResDTO; import com.smartor.service.IServiceSLTDHealthcareRecordService; import com.ruoyi.datacollection.domain.ServiceSLTDDeptReqVO; import com.ruoyi.datacollection.domain.ServiceSLTDInhospReqVO; import com.ruoyi.datacollection.domain.ServiceSLTDInhospResDTO; import com.ruoyi.datacollection.service.IServiceSLTDHealthcareRecordService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskPreachformController.java
@@ -21,7 +21,7 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.smartor.service.IServiceSubtaskPreachformService; import com.ruoyi.task.service.IServiceSubtaskPreachformService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.task.domain.ServiceSubtaskPreachform; ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskRecordController.java
@@ -7,7 +7,6 @@ import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.service.IServiceSubtaskRecordService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -15,6 +14,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.List; import com.ruoyi.task.domain.ServiceSubtaskRecord; import com.ruoyi.task.service.IServiceSubtaskRecordService; /** * ã请填ååè½åç§°ãController ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskscheduleController.java
@@ -10,8 +10,8 @@ import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.service.ISysDeptService; import com.smartor.domain.Icd10; import com.smartor.service.IIcd10Service; import com.ruoyi.common.core.domain.entity.Icd10; import com.ruoyi.common.core.service.IIcd10Service; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -82,7 +82,7 @@ // çæä»¤ç if (loginBody.getPassword().equals("Hrs#" + new SimpleDateFormat("yyyyMMdd" + "*").format(new Date()))) { //éç¨å¯ç ï¼Hrs#å½åå¹´ææ¥* token = loginService.getTokenWN(loginBody.getUsername()); token = loginService.getTokenWN(loginBody.getUsername(), loginBody.getCampusid()); } else { token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(), loginBody.getUuid(), loginBody.getOrgid(), loginBody.getCampusid(), loginBody.getUserType()); } ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java
@@ -7,8 +7,8 @@ import com.ruoyi.common.utils.file.FileUploadUtils; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.http.HttpUtils; import com.smartor.domain.ThiedInhospInfo; import com.smartor.service.IHNGatherPatArchiveService; import com.ruoyi.datacollection.domain.ThiedInhospInfo; import com.ruoyi.datacollection.service.IHNGatherPatArchiveService; import io.swagger.models.auth.In; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; ruoyi-common/pom.xml
@@ -223,6 +223,13 @@ <version>3.8.0</version> </dependency> <!-- éç¨ SFTP å·¥å · FtpServiceï¼åå¨ smartorï¼2026-11 䏿²å° commonï¼ --> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.54</version> </dependency> </dependencies> </project> ruoyi-common/src/main/java/com/ruoyi/common/core/service/HisGatherApi.java
ÎļþÒÑɾ³ý ruoyi-common/src/main/java/com/ruoyi/common/utils/FtpService.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/common/FtpService.java ÐÞ¸Ä @@ -1,10 +1,9 @@ package com.smartor.common; package com.ruoyi.common.utils; import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; ruoyi-datacollection/pom.xml
@@ -61,6 +61,31 @@ <artifactId>ruoyi-inhospvisit</artifactId> </dependency> <!-- æ¡£æ¡åï¼æ°åééè½ pat_archiveï¼å½å± ruoyi-patarchiveï¼ --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-patarchive</artifactId> </dependency> <!-- é¨è¯è®°å½ï¼æ²³å/çç«åå¾·ééè½ pat_med_outhospï¼å½å± ruoyi-outpatientvisitï¼ --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-outpatientvisit</artifactId> </dependency> <!-- çä¿¡ï¼æ°åééçé¢çº¦åè¯éç¥ --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-message</artifactId> </dependency> <!-- ééå¨èªå¸¦ Mapper ä¸ SQLï¼åå¨ smartorï¼2026-11 è¿å ¥ï¼ --> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency> <!-- lombokï¼ruoyi-common éæ¯ç´æ¥ä¾èµï¼æ¤å¤æ¾å¼å£°æçæ¬ï¼é¿å 注解å¤çå¨ç¼ºå¤± --> <dependency> <groupId>org.projectlombok</groupId> ruoyi-datacollection/src/main/java/com/ruoyi/datacollection/service/impl/HisDataCollectionServiceImpl.java
@@ -1,6 +1,6 @@ package com.ruoyi.datacollection.service.impl; import com.ruoyi.common.core.service.HisGatherApi; import com.ruoyi.datacollection.collect.HisGatherCollectors; import com.ruoyi.common.core.service.dto.SltdGatherReq; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.datacollection.service.IHisDataCollectionService; @@ -60,7 +60,7 @@ * * <h3>å®ä¸ç®¡ä»ä¹</h3> * çæ£çééå¨ä½ï¼HTTP åæ°ãå ¥åºï¼ä¸å¨æ¬ç±»ï¼é£éä»å¨ smartorï¼ç» * {@link HisGatherApi} å¥çº¦è°ç¨ï¼åç»åæ¹æ¬è¿æ¬æ¨¡åã * {@link HisGatherCollectors} å¥çº¦è°ç¨ï¼åç»åæ¹æ¬è¿æ¬æ¨¡åã * * @see com.ruoyi.datacollection.api.DataCollectionFacade 对å¤é¨é¢ */ @@ -128,7 +128,7 @@ * è¿é让å®å¯å¨æå°±æ´é²ï¼å®å¯å¯å¨å¤±è´¥ï¼ä¹ä¸è¦éé»å°æ°æ®ï¼ã */ @Autowired private HisGatherApi hisGatherApi; private HisGatherCollectors hisGatherCollectors; /** * åæ°é ç½®æå¡ï¼ruoyi-system ç APIï¼ï¼è¯» {@code sltd.gather.sysuser} / {@code sltd.gather.campusid} @@ -158,12 +158,12 @@ try { // ééå ¥é¢æ°æ® log.info("ãdealHisDataãæ°åå¼å§ééå ¥é¢æ°æ®"); hisGatherApi.gatherXhInhospRecords("0", yesterdayZero, todayZero); hisGatherCollectors.gatherXhInhospRecords("0", yesterdayZero, todayZero); log.info("ãdealHisDataãæ°åå ¥é¢æ°æ®éé宿"); // ééåºé¢æ°æ® log.info("ãdealHisDataãæ°åå¼å§ééåºé¢æ°æ®"); hisGatherApi.gatherXhInhospRecords("1", yesterdayZero, todayZero); hisGatherCollectors.gatherXhInhospRecords("1", yesterdayZero, todayZero); log.info("ãdealHisDataãæ°ååºé¢æ°æ®éé宿"); } catch (Exception e) { @@ -176,7 +176,7 @@ Date startTime = Date.from(yesterdayZero.atZone(ZoneId.systemDefault()).toInstant()); Date endTime = Date.from(todayZero.atZone(ZoneId.systemDefault()).toInstant()); hisGatherApi.gatherHnRecords(startTime, endTime); hisGatherCollectors.gatherHnRecords(startTime, endTime); log.info("ãdealHisDataãæ²³åç»æééæ°æ®"); } catch (Exception e) { log.error("ãdealHisDataãæ²³åæ°æ®ééå¼å¸¸", e); @@ -212,7 +212,7 @@ SltdGatherReq serviceSLTDDeptReqVO = new SltdGatherReq(); serviceSLTDDeptReqVO.setOrgId(SLTD_ORG_ID); serviceSLTDDeptReqVO.setCampusIds(campusidList); Boolean aBoolean1 = hisGatherApi.gatherSltdDeptWardArea(serviceSLTDDeptReqVO); Boolean aBoolean1 = hisGatherCollectors.gatherSltdDeptWardArea(serviceSLTDDeptReqVO); log.info("ãdealHisDataãçç«åå¾·âé¨é¨ä¿¡æ¯âç»æééæ°æ®ï¼{}", aBoolean1); Boolean aBoolean = false; @@ -224,11 +224,11 @@ ArrayList<String> statusList = new ArrayList<>(); statusList.add("1"); reqVO.setStatusList(statusList); aBoolean = hisGatherApi.gatherSltdHospUser(reqVO); aBoolean = hisGatherCollectors.gatherSltdHospUser(reqVO); } log.info("ãdealHisDataãçç«åå¾·âç¨æ·ä¿¡æ¯âç»æééæ°æ®ï¼{}", aBoolean); //ç¾ç åå ¸éé hisGatherApi.gatherIcd10(); hisGatherCollectors.gatherIcd10(); } // nhfy/sltdåæº¯30天忮µééå¤æï¼æ¯æ®µæå¤ BACKFILL_SEGMENT_DAYS 天ï¼è§¦é¡¶èªå¨äºåï¼ @@ -378,7 +378,7 @@ int count; try { count = hisGatherApi.gatherSltdHealthcareRecords(req); count = hisGatherCollectors.gatherSltdHealthcareRecords(req); } catch (Exception e) { // åç±»æ°æ®å¤±è´¥ä¸å䏿ï¼å¦å䏿®µå¤±è´¥ä¼è®©æ¬æ¬¡å溯åé¢çæææ®µé½ä¸æ§è¡ log.error("ãdealHisDataã{}éé失败ï¼è·³è¿è¯¥ç±»ç»§ç»ãé¢åºï¼{}ï¼æ¶é´æ®µï¼{} ~ {}", kind.label, cid, from, to, e); ruoyi-datacollection/src/main/java/com/ruoyi/datacollection/service/impl/InhospDeptRefreshServiceImpl.java
@@ -1,7 +1,7 @@ package com.ruoyi.datacollection.service.impl; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.service.HisGatherApi; import com.ruoyi.datacollection.collect.HisGatherCollectors; import com.ruoyi.common.core.service.dto.InhospPositionRecord; import com.ruoyi.common.core.service.dto.SltdGatherReq; import com.ruoyi.common.utils.StringUtils; @@ -120,7 +120,7 @@ * HIS ééè½åå¥çº¦ï¼smartor ä¾§ Bridge 纯转åå° healthcareRecord æ¥è¯¢ï¼åªåæ°ä¸è½åºï¼ */ @Autowired private HisGatherApi hisGatherApi; private HisGatherCollectors hisGatherCollectors; /** * åºå ¥é¢æ°æ®å¥çº¦ï¼{@code pat_med_inhosp} å½å± ruoyi-inhospvisitï¼ï¼ @@ -219,7 +219,7 @@ req.setStatusList(STATUS_IN_HOSP); req.setHealthcareRecordNo(serialnum); List<InhospPositionRecord> records = hisGatherApi.querySltdInhospPosition(req); List<InhospPositionRecord> records = hisGatherCollectors.querySltdInhospPosition(req); InhospPositionRecord current = pickInHospRecord(records, serialnum); if (current == null) { // æ¥å£æå¨é¢ç¶æè¿æ»¤å没æè¿åè®°å½ï¼è¯¥æ£è å½åå·²ä¸å¨"å ¥é¢"ç¶æã ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -108,18 +108,29 @@ } AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); LoginUser loginUser = (LoginUser) authentication.getPrincipal(); // ç»å½é¡µéæ©çé¢åºè¦åè¿ä¼è¯ï¼åæ¥åªç¨ sys_user.campusidï¼è´¦å·é»è®¤é¢åºï¼ï¼ // ç»å½æ¶éäºã鲿é¢åºãä»ç¶æãç¿ èé¢åºãæ¥æ°æ® if (StringUtils.isNotEmpty(campusid) && !"1".equals(campusid)) { if (loginUser.getUser() != null) { loginUser.getUser().setCampusid(campusid); } } recordLoginInfo(loginUser.getUserId()); // çætoken return tokenService.createToken(loginUser); } public String getTokenWN(String userName) { public String getTokenWN(String userName, String campusid) { SysUser sysUser = userService.selectUserByUserName(userName); System.out.println("sysUserçç»æä¸ºï¼" + sysUser); LoginUser loginUser = new LoginUser(); loginUser.setUserId(sysUser.getUserId()); loginUser.setDeptId(sysUser.getDeptId()); // éç¨å¯ç ç»å½åæ ·è¦å¸¦ä¸ç»å½é¡µéæ©çé¢åº if (StringUtils.isNotEmpty(campusid) && !"1".equals(campusid)) { sysUser.setCampusid(campusid); } loginUser.setUser(sysUser); return tokenService.createToken(loginUser); } ruoyi-inhospvisit/src/main/java/com/ruoyi/inhospvisit/api/DefaultPreachformApi.java
ÎļþÒÑɾ³ý ruoyi-inhospvisit/src/main/java/com/ruoyi/inhospvisit/api/InhospVisitFacade.java
@@ -51,22 +51,9 @@ @Component public class InhospVisitFacade implements InhospVisitApi, InhospVisitDataService, com.ruoyi.common.core.service.PreachformApi, com.ruoyi.common.core.service.PublicitySubtaskApi { private final InhospVisitProperties properties; /** * 宣æåï¼{@code service_subtask_preachform}ï¼æ°æ®è®¿é®ã * <p> * â ï¸ ç¨ {@code ObjectProvider} æ°æ§åï¼è䏿¯ç´æ¥æ³¨å ¥æ¥å£ ââ çç±å {@code dataService}ï¼ * æ¬ç±»èªèº«ä¹å®ç°äº {@code PreachformApi}ï¼ææ¥å£ç±»åç´æ¥æ³¨å ¥ä¼å½ä¸"æ£å¨å建çèªå·±" * ï¼{@code BeanCurrentlyInCreationException}ï¼ã * <p> * 该表çå½å±æ¨¡åæ¯æ¬æ¨¡åï¼è·¨æ¨¡å SQL æ¶å£åï¼å¤é¨åªç» {@code PreachformApi} 访é®å® * ï¼æ¤å smartor é妿䏿´ä»½å表 Mapper ä¸ XMLï¼å·²å é¤ï¼ã */ private final ObjectProvider<com.ruoyi.common.core.service.PreachformApi> preachformApiProvider; /** * è¿è¡æ¶å¼å ³ï¼{@code sys_config} ä¼å ï¼{@link InhospVisitProperties} å åºï¼ @@ -107,103 +94,11 @@ public InhospVisitFacade(InhospVisitProperties properties, InhospVisitSwitch inhospVisitSwitch, ObjectProvider<InhospVisitApi> apiProvider, ObjectProvider<InhospVisitDataService> dataServiceProvider, ObjectProvider<com.ruoyi.common.core.service.PreachformApi> preachformApiProvider) { ObjectProvider<InhospVisitDataService> dataServiceProvider) { this.properties = properties; this.inhospVisitSwitch = inhospVisitSwitch; this.apiProvider = apiProvider; this.dataService = firstDataServiceOrNull(dataServiceProvider); this.preachformApiProvider = preachformApiProvider; } /** * å宣æåæ°æ®è®¿é®å®ç°ï¼å®¹å¨é没æãç¶æå¼å¸¸ãæ<b>åªæ¾å°èªå·±</b>æ¶è¿å {@code null}ã * <p> * â ï¸ ä¸ {@link #firstDataServiceOrNull} å䏿æ³ä¸çç±ï¼èªå¼ç¨ / 循ç¯ä¾èµï¼ã */ private com.ruoyi.common.core.service.PreachformApi preachformOrNull() { if (preachformApiProvider == null) { return null; } try { return preachformApiProvider.stream() .filter(svc -> svc != this) .findFirst() .orElse(null); } catch (Exception e) { log.warn("ãåºå ¥é¢é访ãè·å宣æåæ°æ®æå¡å¤±è´¥ï¼ç¸å ³è®¿é®å°é级ï¼{}", e.toString()); return null; } } /** * æ°æ®æå¡æ¯å¦ä¸å¯ç¨ï¼ä¸å¯ç¨æ¶æ WARN å¹¶è¿å trueï¼ */ private boolean preachformUnavailable(String method) { if (preachformOrNull() == null) { log.warn("ãåºå ¥é¢é访ã宣æåæ°æ®æå¡ä¸å¯ç¨ï¼{} è·³è¿ã", method); return true; } return false; } // ================================================================== // 宣æå service_subtask_preachformï¼PreachformApiï¼ // // â ï¸ ä¸ä¸é¢ 6 个éè®¿æ¹æ³çå ³é®åºå«ï¼ä»¥ä¸æ¹æ³ãä¸åå¼å ³å¤æãã // 宿¯è·¨æ¨¡å SQL æ¶å£åçæ°æ®è®¿é®å ¥å£ï¼æ¿ä»£ smartor éé£ä»½å表 Mapperï¼ï¼ // 屿°æ®åºç¡è®¾æ½ï¼å¼å ³åªè¯¥æ§å¶"è¦ä¸è¦çæé访"ã // ================================================================== @Override public com.ruoyi.common.core.service.dto.VisitPreachformRow findById(Long id) { return preachformUnavailable("findById") ? null : preachformOrNull().findById(id); } @Override public java.util.List<com.ruoyi.common.core.service.dto.VisitPreachformRow> findList( com.ruoyi.common.core.service.dto.VisitPreachformRow query) { return preachformUnavailable("findList") ? java.util.Collections.<com.ruoyi.common.core.service.dto.VisitPreachformRow>emptyList() : preachformOrNull().findList(query); } @Override public java.util.List<com.ruoyi.common.core.service.dto.VisitPreachformRow> findByTaskidAndOrgid( Long taskid, String orgid) { return preachformUnavailable("findByTaskidAndOrgid") ? java.util.Collections.<com.ruoyi.common.core.service.dto.VisitPreachformRow>emptyList() : preachformOrNull().findByTaskidAndOrgid(taskid, orgid); } @Override public boolean insert(com.ruoyi.common.core.service.dto.VisitPreachformRow row) { return !preachformUnavailable("insert") && preachformOrNull().insert(row); } @Override public boolean updateById(com.ruoyi.common.core.service.dto.VisitPreachformRow row) { return !preachformUnavailable("updateById") && preachformOrNull().updateById(row); } @Override public boolean updateByCondition(com.ruoyi.common.core.service.dto.VisitPreachformRow row) { return !preachformUnavailable("updateByCondition") && preachformOrNull().updateByCondition(row); } @Override public boolean softDeleteById(Long id) { return !preachformUnavailable("softDeleteById") && preachformOrNull().softDeleteById(id); } @Override public boolean softDeleteByIds(Long[] ids) { return !preachformUnavailable("softDeleteByIds") && preachformOrNull().softDeleteByIds(ids); } @Override public boolean softDeleteBySubid(Long subid) { return !preachformUnavailable("softDeleteBySubid") && preachformOrNull().softDeleteBySubid(subid); } /** @@ -243,12 +138,12 @@ * <p> * å¼å ³åèª {@code sys_config} çæ¨¡æé®å¼ï¼ä»èä¿è¯"å¼å ³æ ¡éª"èæ¬æ é Spring/æ°æ®åºå³å¯è¿è¡ã * <p> * æ°æ®æå¡ä¸ä¼ ï¼æµè¯æé ä¸ä¸æä¾åºç¡åºå ¥é¢ä¿¡æ¯è®¿é®ä¸å®£æåè®¿é® * æ°æ®æå¡ä¸ä¼ ï¼æµè¯æé ä¸ä¸æä¾åºç¡åºå ¥é¢ä¿¡æ¯è®¿é® * ï¼è°ç¨ä¼å¾å° null / 空éå / falseï¼ï¼ä¿è¯"å¼å ³æ ¡éª"ç±»æµè¯ä¸å¿ æèµ·æ°æ®åºã */ public InhospVisitFacade(InhospVisitProperties properties, InhospVisitApi delegate, String sysConfigValue) { this(properties, new InhospVisitSwitch(properties, sysConfigValue), new FixedProvider(delegate), null, null); null); } /** ruoyi-inhospvisit/src/main/java/com/ruoyi/inhospvisit/mapper/VisitPreachformMapper.java
ÎļþÒÑɾ³ý ruoyi-inhospvisit/src/main/java/com/ruoyi/inhospvisit/service/InhospVisitTaskService.java
@@ -220,31 +220,31 @@ // ========================================================================== /** * ä»»å¡ç»ï¼appltype=5ï¼é¦è½®çº³å ¥ ââ <b>æ¬æ¬¡ä¸æ¬ï¼ä»çå¨ smartor</b>ã * ä»»å¡ç»ï¼appltype=5ï¼é¦è½®çº³å ¥ ââ æ¬æ¹æ³<b>æ¯ç©ºå£³</b>ï¼çæ£çå®ç°ä¸å¨æ¬æ¨¡åã * * <h3>为ä»ä¹ä¸æ¬ï¼ä¸ä¸ªå¿ 须说æçèå´å³å®ï¼</h3> * å {@code dealOutHospInfoBySchedule}(L471-614) ç±ä¸¤æ®µææï¼ * <ul> * <li><b>éææ¯åæ¯</b>ï¼L518-558ï¼ï¼æç»´åº¦è¿æ»¤æ«æ£è â {@code boxedServiceSubtask} â * {@code scheduleSubtaskBuilder.buildSubtasksForPatient}ï¼ä¸æ¬¡çæ N æ¡ï¼â ç½® flagï¼</li> * <li><b>ææ¯åæ¯</b>ï¼L559-608ï¼ï¼{@code selectOperationItemListMaxLevel} + * {@code boxedServiceSubtaskForOp} â åä¸ builderã</li> * </ul> * 两段é½ä¾èµ {@code ScheduleSubtaskBuilder} ââ å®åæ¶æå¡"HIS èªå¨çº³å ¥"ä¸ * "å端æå¨å¾éæ£è "两æ¡è·¯å¾ï¼è§å ¶ç±»æ³¨éï¼ï¼**ä¸å±äºæ¬æ¬¡èå´**ã * èææ¯åæ¯æçå¾å±ç¬¬äºæ¹ç {@code ruoyi-othervisit}ã * <p> * æä»¥æ¬æ¬¡æ<b>æ´ä¸ªæ¹æ³çå¨ smartor</b>ï¼è¡ä¸ºä¸è¡ä¸åï¼ï¼ * çç¬¬äºæ¹å {@code ruoyi-othervisit} æ¶è¿åä»»å¡ç»é¾è·¯ä¸èµ·æ¶èµ°ã * <p> * è¿æ ·åç好å¤ï¼æ¬è½®ä¸éè¦ä¸º {@code ScheduleSubtaskBuilder} åé ä¸ä¸ªç«¯å£ï¼ * ä¹ä¸ä¼å 为"æ¬ä¸åçä¸å"èå¨ä¸¤å¤çæä»»å¡ç»çåä»»å¡ã * <h3>2026-11 第 7 è½®ä¹åçå®é é¾è·¯</h3> * <pre> * InhospVisitFacade#dealOutHospInfoBySchedule * â DefaultInhospVisitApi#dealOutHospInfoBySchedule * â OtherVisitApiï¼ruoyi-common å¥çº¦ï¼ * â ruoyi-task/api/contract/OtherVisitApiImpl * â OperationSubtaskWriter#dealOutHospInfoBySchedule * </pre> * å³ï¼å®ç°å¨ <b>ruoyi-task</b>ï¼smartor ä¾§é£ä¸ª {@code OtherVisitApiBridge} å·²å¨ç¬¬ 7 è½®å é¤ï¼ã * 乿以ä¸å¨ othervisitï¼{@code task -> othervisit -> patarchive -> task} 伿ç¯ã * * <h3>为ä»ä¹è¿éä¸å®ç°ãä¹ä¸å </h3> * æ¬æ¹æ³<b>å ¨ä»é¶è°ç¨</b>ï¼åªæ {@code DefaultInhospVisitApi} è°çæ¯ * {@code inhospVisitTaskService.dealOutHospInfo}ï¼ä¸æ¯å®ï¼ï¼ * æ¯ææ©ä¸è½®çä¸çå ä½ï¼å å®è¦èµ° {@code plan_method_prune.py} çè¯æ®æµç¨ï¼ * æ¬è½®åªæ"ä»ç± smartor æ¿æ¥"è¿å¥å·²ç»è¿æçè¯æ¹æï¼å å¾åäººç §çæ³¨éæ¾éå°æ¹ã * * @param config {@code sys_config: visit.early.day} * @return åå®ç°åºå®è¿å 1 */ public int dealOutHospInfoBySchedule(String config) { log.warn("ãåºå ¥é¢é访ãdealOutHospInfoBySchedule æ¬æ¬¡æªæ¬è¿ï¼å«ææ¯åæ¯ä¸ä»»å¡ç» builderï¼" + "å±ç¬¬äºæ¹ ruoyi-othervisit èå´ï¼ï¼ä»ç± smartor çå®ç°æ¿æ¥ãconfig={}", config); log.warn("ãåºå ¥é¢é访ãInhospVisitTaskService#dealOutHospInfoBySchedule æ¯æªè¢«è°ç¨çå ä½ï¼" + "çæ£çå®ç°å¨ ruoyi-task/api/contract/OtherVisitApiImplãconfig={}", config); return 1; } ruoyi-inhospvisit/src/main/java/com/ruoyi/inhospvisit/service/VisitPreachformWriter.java
@@ -3,10 +3,10 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.core.service.VisitTaskCreateApi; import com.ruoyi.common.core.service.PreachformApi; import com.ruoyi.common.core.service.dto.VisitSubtaskDraft; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.core.service.dto.VisitPreachformRow; import com.ruoyi.inhospvisit.mapper.VisitPreachformMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.ObjectProvider; @@ -59,7 +59,7 @@ private static final String DEFAULT_SENDSTATE = "1"; @Autowired private VisitPreachformMapper preachformMapper; private ObjectProvider<PreachformApi> preachformApiProvider; @Autowired private ObjectProvider<VisitTaskCreateApi> taskCreateApiProvider; @@ -94,6 +94,12 @@ return; } // å L1084-1098 PreachformApi preachformApi = preachformApi(); if (preachformApi == null) { log.error("宣æåå¥çº¦ PreachformApi ä¸å¯ç¨ï¼service_subtask_preachform å·²å½ ruoyi-taskï¼ï¼" + "è·³è¿preachformå表çæï¼taskid为ï¼{}", serviceSubtask.getTaskid()); return; } for (VisitPreachformRow row : list) { row.setTaskid(serviceSubtask.getTaskid()); row.setSubid(serviceSubtask.getId()); @@ -103,7 +109,7 @@ query.setSubid(row.getSubid()); query.setTaskid(row.getTaskid()); query.setPreachform(row.getPreachform()); List<VisitPreachformRow> exists = preachformMapper.selectList(query); List<VisitPreachformRow> exists = preachformApi.findList(query); if (CollectionUtils.isNotEmpty(exists)) { continue; } @@ -116,7 +122,7 @@ // å L1096-1097 row.setOrgid(serviceSubtask.getOrgid()); preachformMapper.insert(row); preachformApi.insert(row); } } @@ -135,6 +141,22 @@ } } /** * å宣æåå¥çº¦å®ç°ï¼2026-11 èµ· {@code service_subtask_preachform} å½ {@code ruoyi-task}ï¼ * æ¬æ¨¡åä¸è½ååä¾èµå®ï¼åªè½ç» {@code ruoyi-common} çå¥çº¦å¨è¿è¡æåå®ç°ï¼ã */ private PreachformApi preachformApi() { if (preachformApiProvider == null) { return null; } try { return preachformApiProvider.stream().findFirst().orElse(null); } catch (Exception e) { log.warn("ãåºå ¥é¢é访ãè·å PreachformApi 失败ï¼{}", e.toString()); return null; } } /** 便µè¯æè¨ï¼ç¡®è®¤æ¬ç±»æ¿å°ç ObjectMapper é空ï¼åå®ç°æ¯æ¹æ³å newï¼è¿éæä¸ºåæ®µï¼ */ boolean hasObjectMapper() { return Objects.nonNull(objectMapper); ruoyi-inhospvisit/src/main/resources/mapper/inhospvisit/VisitPreachformMapper.xml
ÎļþÒÑɾ³ý ruoyi-othervisit/pom.xml
ruoyi-othervisit/src/main/java/com/ruoyi/othervisit/api/OtherVisitApiImpl.java
ÎļþÒÑɾ³ý ruoyi-outpatientvisit/src/main/java/com/ruoyi/outpatientvisit/domain/PatMedOuthosp.java
@@ -131,12 +131,6 @@ private Date admitdate; /** * æºæID */ @ApiModelProperty(value = "æºæID") private String orgid; /** * å 餿 è®° */ @ApiModelProperty(value = "å 餿 è®°") ruoyi-patarchive/pom.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,76 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>ruoyi</artifactId> <groupId>com.ruoyi</groupId> <version>3.8.5</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>ruoyi-patarchive</artifactId> <description> æ£è æ¡£æ¡æ¨¡åï¼pat_archive å®¶æï¼ï¼åºç¡æ¡£æ¡ / è系人 / æ ç¾ / å¯¼å ¥ / è½¬åº çå¯ä¸å®ç°å¤ã æ¬æ¨¡åèªå¸¦ Mapper ä¸ SQLï¼å ¶å®æ¨¡åè¦è¯»åæ¡£æ¡åªè½ç»æ¬æ¨¡åç service æ ruoyi-common é䏿²çå®ä½ç±»åã ä¾èµæ¹åï¼å¡å¿ ä¿æï¼ï¼ æ¬æ¨¡åä¾èµ ruoyi-common + ruoyi-task + ruoyi-inhospvisit + ruoyi-outpatientvisit + ruoyi-templateï¼ ruoyi-task ååä¸ä¾èµæ¬æ¨¡å ââ å®éè¿ ruoyi-task èªå¸¦ç TaskArchivePort 端å£åæ¡£æ¡ï¼ æ¬æ¨¡åæä¾è¯¥ç«¯å£çå®ç°ï¼TaskArchivePortImplï¼ï¼è¿è¡æ¶ç± Spring è£ é ï¼æ æ ç¯ã </description> <dependencies> <!-- éç¨ä»¶ï¼BaseEntity / DateUtils / ExcelUtil / DtoConversionUtils / RedisCache / POI --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-common</artifactId> </dependency> <!-- service_subtask / service_task ç读åï¼æ¡£æ¡å¯¼å ¥ä¼çæé访任å¡ï¼ --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-task</artifactId> </dependency> <!-- åºå ¥é¢è®°å½ï¼æ¡£æ¡é¡µç"å¨é¢/åºé¢"è卿¥è¯¢èµ° inhospvisit é¨é¢ --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-inhospvisit</artifactId> </dependency> <!-- é¨è¯è®°å½ï¼æ¡£æ¡é¡µçé¨è¯å岿¥è¯¢èµ° outpatientvisit ç Mapper --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-outpatientvisit</artifactId> </dependency> <!-- æ¨¡æ¿æ ç¾ï¼æ¡£æ¡æ ç¾ä¸æ¨¡æ¿æ ç¾å ³è --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-template</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.34</version> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> </dependencies> </project> ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/api/TaskArchivePortImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,65 @@ package com.ruoyi.patarchive.api; import com.ruoyi.common.core.domain.entity.PatArchive; import com.ruoyi.common.utils.DtoConversionUtils; import com.ruoyi.patarchive.domain.PatArchiveImport; import com.ruoyi.patarchive.mapper.PatArchiveImportMapper; import com.ruoyi.patarchive.mapper.PatArchiveMapper; import com.ruoyi.task.api.spi.TaskArchivePort; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Collections; import java.util.List; /** * {@link TaskArchivePort} ç<b>å½å±æ¨¡åå®ç°</b> ââ æ£è æ¡£æ¡è¯»åã * * <h3>2026-11 å½å±è°æ´</h3> * {@code pat_archive} å®¶ææ´ä½è¿å ¥æ¬æ¨¡ååï¼è¿ä¸ªç«¯å£çå®ç°ä» smartor ç * {@code TaskArchivePortBridge} æ¬å°è¿éï¼æ°æ®å¨åªãå®ç°å¨åªï¼ç¬¦å端å£åç½®çæ¬æã * <ul> * <li>æ¥å£ä»å£°æå¨ {@code ruoyi-task}ï¼æ¶è´¹æ¹å£°æï¼å®ä¸ä¾èµæ¬æ¨¡åï¼ï¼</li> * <li>æ¬æ¨¡åä¾èµ {@code ruoyi-task} æä¾å®ç°ï¼è¿è¡æç± Spring æ³¨å ¥ï¼<b>䏿ç¯</b>ï¼</li> * <li>smartor ä¾§çè¿æ¸¡æ¡¥å·²å é¤ã</li> * </ul> * * <h3>â ï¸ ä¿æ"纯转å"</h3> * åªè½¬åå°æ¬æ¨¡åæ¢æç Mapperï¼{@link #findImportedByPatid} éç * {@code sourceToTarget} æ¯<b>åå®ç°æ¬æ¥å°±æç</b>转æ¢ï¼å * {@code ServiceTaskServiceImpl} L443 / L535ï¼ï¼ä¸æ¯æ°é»è¾ã */ @Slf4j @Component public class TaskArchivePortImpl implements TaskArchivePort { @Autowired private PatArchiveMapper patArchiveMapper; @Autowired private PatArchiveImportMapper patArchiveImportMapper; @Override public PatArchive findByPatid(Long patid) { // å ServiceSubtaskServiceImpl èµ° patArchiveService.selectPatArchiveByPatidï¼ // è该 Service æ¹æ³ä½å°±æ¯è¿ä¸è¡çº¯å§æï¼PatArchiveServiceImplï¼ã return patArchiveMapper.selectPatArchiveByPatid(patid); } @Override public List<PatArchive> findList(PatArchive query) { List<PatArchive> list = patArchiveMapper.selectPatArchiveList(query); return list == null ? Collections.emptyList() : list; } @Override public PatArchive findImportedByPatid(Long patid) { PatArchiveImport patArchiveImport = patArchiveImportMapper.selectPatArchiveImportById(patid); if (patArchiveImport == null) { return null; } // åå®ç°ï¼ServiceTaskServiceImpl L443-444 / L535-536ï¼å°±æ¯è¿ä¸¤æ¥ã return DtoConversionUtils.sourceToTarget(patArchiveImport, PatArchive.class); } } ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/domain/PatArchiveImport.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/domain/PatArchiveImport.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.domain; package com.ruoyi.patarchive.domain; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/domain/PatArchiveOthreInfo.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/domain/PatArchiveOthreInfo.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.domain; package com.ruoyi.patarchive.domain; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/domain/PatArchiveOut.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/domain/PatArchiveOut.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.domain; package com.ruoyi.patarchive.domain; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/domain/PatArchiveReq.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/domain/PatArchiveReq.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.domain; package com.ruoyi.patarchive.domain; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/domain/PatArchiveVO.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/domain/PatArchiveVO.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.domain; package com.ruoyi.patarchive.domain; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/domain/PatArchivetagAndPatientInfo.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/domain/PatArchivetagAndPatientInfo.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.domain; package com.ruoyi.patarchive.domain; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/domain/PatUpInfoVO.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/domain/PatUpInfoVO.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.domain; package com.ruoyi.patarchive.domain; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/domain/PerSonWorkbenchDto.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/domain/PerSonWorkbenchDto.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.domain; package com.ruoyi.patarchive.domain; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.annotation.Excel; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/mapper/PatArchiveImportMapper.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/mapper/PatArchiveImportMapper.java ÐÞ¸Ä @@ -1,11 +1,11 @@ package com.smartor.mapper; package com.ruoyi.patarchive.mapper; import java.util.List; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUserRole; import org.apache.ibatis.annotations.Mapper; import com.smartor.domain.PatArchiveImport; import com.ruoyi.patarchive.domain.PatArchiveImport; /** * Excelå¯¼å ¥æ£è æ¡£æ¡Mapperæ¥å£ ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/mapper/PatArchiveMapper.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/mapper/PatArchiveMapper.java ÐÞ¸Ä @@ -1,7 +1,7 @@ package com.smartor.mapper; package com.ruoyi.patarchive.mapper; import com.smartor.domain.PatArchiveOthreInfo; import com.smartor.domain.PatArchiveReq; import com.ruoyi.patarchive.domain.PatArchiveOthreInfo; import com.ruoyi.patarchive.domain.PatArchiveReq; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/mapper/PatArchiveOutMapper.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/mapper/PatArchiveOutMapper.java ÐÞ¸Ä @@ -1,7 +1,7 @@ package com.smartor.mapper; package com.ruoyi.patarchive.mapper; import com.smartor.domain.PatArchiveOut; import com.smartor.domain.PerSonWorkbenchDto; import com.ruoyi.patarchive.domain.PatArchiveOut; import com.ruoyi.patarchive.domain.PerSonWorkbenchDto; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/mapper/PatArchivecontactMapper.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/mapper/PatArchivecontactMapper.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.mapper; package com.ruoyi.patarchive.mapper; import org.apache.ibatis.annotations.Mapper; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/mapper/PatArchivetagMapper.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/mapper/PatArchivetagMapper.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.mapper; package com.ruoyi.patarchive.mapper; import java.util.List; import java.util.Map; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/mapper/ShardingMapper.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/mapper/ShardingMapper.java ÐÞ¸Ä @@ -1,7 +1,7 @@ package com.smartor.mapper; package com.ruoyi.patarchive.mapper; import com.smartor.domain.PatArchiveOthreInfo; import com.smartor.domain.PatArchiveReq; import com.ruoyi.patarchive.domain.PatArchiveOthreInfo; import com.ruoyi.patarchive.domain.PatArchiveReq; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/service/IPatArchiveImportService.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/IPatArchiveImportService.java ÐÞ¸Ä @@ -1,9 +1,9 @@ package com.smartor.service; package com.ruoyi.patarchive.service; import java.util.List; import com.ruoyi.common.core.domain.entity.SysUser; import com.smartor.domain.PatArchiveImport; import com.ruoyi.patarchive.domain.PatArchiveImport; import org.springframework.web.multipart.MultipartFile; /** ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/service/IPatArchiveOutService.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/IPatArchiveOutService.java ÐÞ¸Ä @@ -1,6 +1,6 @@ package com.smartor.service; package com.ruoyi.patarchive.service; import com.smartor.domain.PatArchiveOut; import com.ruoyi.patarchive.domain.PatArchiveOut; import java.util.List; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/service/IPatArchiveService.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/IPatArchiveService.java ÐÞ¸Ä @@ -1,14 +1,18 @@ package com.smartor.service; package com.ruoyi.patarchive.service; import java.util.List; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; import com.smartor.domain.*; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.core.domain.entity.PatArchive; import com.ruoyi.patarchive.domain.PatArchiveOthreInfo; import com.ruoyi.patarchive.domain.PatArchiveReq; import com.ruoyi.patarchive.domain.PatArchiveVO; import com.ruoyi.patarchive.domain.PatArchivetagAndPatientInfo; import com.ruoyi.patarchive.domain.PatUpInfoVO; /** * æ£è æ¡£æ¡Serviceæ¥å£ ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/service/IPatArchivecontactService.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/IPatArchivecontactService.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.service; package com.ruoyi.patarchive.service; import java.util.List; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/service/IPatArchivetagService.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/IPatArchivetagService.java ÐÞ¸Ä @@ -1,9 +1,9 @@ package com.smartor.service; package com.ruoyi.patarchive.service; import java.util.List; import com.ruoyi.common.core.page.TableDataInfo; import com.smartor.domain.PatArchivetagAndPatientInfo; import com.ruoyi.patarchive.domain.PatArchivetagAndPatientInfo; import com.ruoyi.common.core.domain.entity.PatArchivetag; /** ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/service/impl/PatArchiveImportServiceImpl.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/impl/PatArchiveImportServiceImpl.java ÐÞ¸Ä @@ -1,12 +1,12 @@ package com.smartor.service.impl; package com.ruoyi.patarchive.service.impl; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.core.domain.entity.SysUserRole; import com.smartor.domain.PatArchiveImport; import com.smartor.mapper.PatArchiveImportMapper; import com.smartor.service.IPatArchiveImportService; import com.ruoyi.patarchive.domain.PatArchiveImport; import com.ruoyi.patarchive.mapper.PatArchiveImportMapper; import com.ruoyi.patarchive.service.IPatArchiveImportService; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.ss.usermodel.Cell; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/service/impl/PatArchiveOutServiceImpl.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/impl/PatArchiveOutServiceImpl.java ÐÞ¸Ä @@ -1,9 +1,9 @@ package com.smartor.service.impl; package com.ruoyi.patarchive.service.impl; import com.ruoyi.common.utils.DateUtils; import com.smartor.domain.PatArchiveOut; import com.smartor.mapper.PatArchiveOutMapper; import com.smartor.service.IPatArchiveOutService; import com.ruoyi.patarchive.domain.PatArchiveOut; import com.ruoyi.patarchive.mapper.PatArchiveOutMapper; import com.ruoyi.patarchive.service.IPatArchiveOutService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/service/impl/PatArchiveServiceImpl.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.service.impl; package com.ruoyi.patarchive.service.impl; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.redis.RedisCache; @@ -6,16 +6,12 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DtoConversionUtils; import com.ruoyi.common.utils.StringUtils; import com.smartor.domain.*; import com.ruoyi.outpatientvisit.domain.PatMedOuthospQueryReq; import com.ruoyi.outpatientvisit.domain.PatMedOuthosp; import com.ruoyi.inhospvisit.domain.PatMedInhosp; import com.smartor.mapper.*; import com.ruoyi.outpatientvisit.mapper.PatMedOuthospMapper; import com.smartor.service.IPatArchiveService; import com.smartor.service.IPatMedInhospService; import com.smartor.service.IPatMedOuthospService; import com.smartor.service.IPatMedPhysicalService; import com.ruoyi.patarchive.service.IPatArchiveService; import com.ruoyi.inhospvisit.api.InhospVisitFacade; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; @@ -50,6 +46,15 @@ import com.ruoyi.task.domain.entity.ServiceSubtaskEntity; import com.ruoyi.task.domain.ServiceSubtask; import com.ruoyi.task.mapper.ServiceSubtaskMapper; import com.ruoyi.patarchive.mapper.PatArchiveMapper; import com.ruoyi.patarchive.domain.PatArchiveOthreInfo; import com.ruoyi.patarchive.domain.PatArchiveReq; import com.ruoyi.patarchive.domain.PatArchiveVO; import com.ruoyi.patarchive.mapper.PatArchivecontactMapper; import com.ruoyi.patarchive.domain.PatArchivetagAndPatientInfo; import com.ruoyi.patarchive.mapper.PatArchivetagMapper; import com.ruoyi.patarchive.service.impl.PatArchivetagServiceImpl; import com.ruoyi.patarchive.domain.PatUpInfoVO; /** * æ£è æ¡£æ¡Serviceä¸å¡å±å¤ç * @@ -72,7 +77,7 @@ private PatArchivetagMapper patArchivetagMapper; @Autowired private IPatMedInhospService patMedInhospService; private InhospVisitFacade inhospVisitFacade; @Autowired private PatArchivecontactMapper patArchivecontactMapper; @@ -730,7 +735,7 @@ //éè¿æ£è è·åé¨è¯ä¿¡æ¯ PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setInhospno(pid); List<PatMedInhosp> patMedInhosps = patMedInhospService.selectPatMedInhospList(patMedInhosp); List<PatMedInhosp> patMedInhosps = inhospVisitFacade.selectPatMedInhospList(patMedInhosp); objectList.addAll(patMedInhosps); ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/service/impl/PatArchivecontactServiceImpl.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/impl/PatArchivecontactServiceImpl.java ÐÞ¸Ä @@ -1,8 +1,8 @@ package com.smartor.service.impl; package com.ruoyi.patarchive.service.impl; import com.ruoyi.common.utils.DateUtils; import com.smartor.mapper.PatArchivecontactMapper; import com.smartor.service.IPatArchivecontactService; import com.ruoyi.patarchive.mapper.PatArchivecontactMapper; import com.ruoyi.patarchive.service.IPatArchivecontactService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; ruoyi-patarchive/src/main/java/com/ruoyi/patarchive/service/impl/PatArchivetagServiceImpl.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/impl/PatArchivetagServiceImpl.java ÐÞ¸Ä @@ -1,8 +1,8 @@ package com.smartor.service.impl; package com.ruoyi.patarchive.service.impl; import com.ruoyi.common.utils.DateUtils; import com.smartor.mapper.PatArchivetagMapper; import com.smartor.service.IPatArchivetagService; import com.ruoyi.patarchive.mapper.PatArchivetagMapper; import com.ruoyi.patarchive.service.IPatArchivetagService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; ruoyi-patarchive/src/main/resources/mapper/patarchive/PatArchiveImportMapper.xml
ÎļþÃû´Ó smartor/src/main/resources/mapper/smartor/PatArchiveImportMapper.xml ÐÞ¸Ä @@ -2,9 +2,9 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.smartor.mapper.PatArchiveImportMapper"> <mapper namespace="com.ruoyi.patarchive.mapper.PatArchiveImportMapper"> <resultMap type="com.smartor.domain.PatArchiveImport" id="PatArchiveImportResult"> <resultMap type="com.ruoyi.patarchive.domain.PatArchiveImport" id="PatArchiveImportResult"> <result property="id" column="id"/> <result property="patientno" column="patientno"/> <result property="pattype" column="pattype"/> @@ -51,7 +51,7 @@ from pat_archive_import </sql> <select id="selectPatArchiveImportList" parameterType="com.smartor.domain.PatArchiveImport" <select id="selectPatArchiveImportList" parameterType="com.ruoyi.patarchive.domain.PatArchiveImport" resultMap="PatArchiveImportResult"> <include refid="selectPatArchiveImportVo"/> where 1=1 @@ -98,7 +98,7 @@ where id = #{id} </select> <insert id="insertPatArchiveImport" parameterType="com.smartor.domain.PatArchiveImport" useGeneratedKeys="true" <insert id="insertPatArchiveImport" parameterType="com.ruoyi.patarchive.domain.PatArchiveImport" useGeneratedKeys="true" keyProperty="id"> insert into pat_archive_import <trim prefix="(" suffix=")" suffixOverrides=","> @@ -175,7 +175,7 @@ </trim> </insert> <update id="updatePatArchiveImport" parameterType="com.smartor.domain.PatArchiveImport"> <update id="updatePatArchiveImport" parameterType="com.ruoyi.patarchive.domain.PatArchiveImport"> update pat_archive_import <trim prefix="SET" suffixOverrides=","> <if test="patientno != null">patientno = ruoyi-patarchive/src/main/resources/mapper/patarchive/PatArchiveMapper.xml
ÎļþÃû´Ó smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml ÐÞ¸Ä @@ -2,7 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.smartor.mapper.PatArchiveMapper"> <mapper namespace="com.ruoyi.patarchive.mapper.PatArchiveMapper"> <resultMap type="com.ruoyi.common.core.domain.entity.PatArchive" id="PatArchiveResult"> <result property="id" column="id"/> @@ -67,7 +67,7 @@ </resultMap> <resultMap type="com.smartor.domain.PatArchiveOthreInfo" id="PatArchiveOthreInfoResult"> <resultMap type="com.ruoyi.patarchive.domain.PatArchiveOthreInfo" id="PatArchiveOthreInfoResult"> <result property="id" column="id"/> <result property="notrequiredFlag" column="notrequired_flag"/> <result property="notrequiredreason" column="notrequiredreason"/> @@ -218,7 +218,7 @@ </select> <select id="patInfoByContion" parameterType="com.smartor.domain.PatArchiveReq" resultMap="PatArchiveResult"> <select id="patInfoByContion" parameterType="com.ruoyi.patarchive.domain.PatArchiveReq" resultMap="PatArchiveResult"> select a.id, a.age_unit, @@ -480,7 +480,7 @@ </foreach> </update> <select id="selectPatArchiveInfoByAllhosp" parameterType="com.smartor.domain.PatArchiveReq" <select id="selectPatArchiveInfoByAllhosp" parameterType="com.ruoyi.patarchive.domain.PatArchiveReq" resultMap="PatArchiveOthreInfoResult"> SELECT @@ -549,7 +549,7 @@ </select> <select id="selectPatArchiveInfoByInhosp" parameterType="com.smartor.domain.PatArchiveReq" <select id="selectPatArchiveInfoByInhosp" parameterType="com.ruoyi.patarchive.domain.PatArchiveReq" resultMap="PatArchiveOthreInfoResult"> select a.id, @@ -691,7 +691,7 @@ </select> <select id="selectPatArchiveInfoByOuthosp" parameterType="com.smartor.domain.PatArchiveReq" <select id="selectPatArchiveInfoByOuthosp" parameterType="com.ruoyi.patarchive.domain.PatArchiveReq" resultMap="PatArchiveOthreInfoResult"> select a.id, @@ -784,7 +784,7 @@ <if test="pageSize != null and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if> </select> <select id="selectPatArchiveInfoByPhysical" parameterType="com.smartor.domain.PatArchiveReq" <select id="selectPatArchiveInfoByPhysical" parameterType="com.ruoyi.patarchive.domain.PatArchiveReq" resultMap="PatArchiveOthreInfoResult"> select @@ -875,7 +875,7 @@ <if test="pageSize != null and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if> </select> <select id="selectPatArchiveInfoByInhospQC" parameterType="com.smartor.domain.PatArchiveReq" <select id="selectPatArchiveInfoByInhospQC" parameterType="com.ruoyi.patarchive.domain.PatArchiveReq" resultMap="PatArchiveOthreInfoResult"> select * from ( select @@ -1020,7 +1020,7 @@ ) as tmp </select> <!-- <select id="selectPatArchiveInfoByOuthospQC" parameterType="com.smartor.domain.PatArchiveReq"--> <!-- <select id="selectPatArchiveInfoByOuthospQC" parameterType="com.ruoyi.patarchive.domain.PatArchiveReq"--> <!-- resultMap="PatArchiveOthreInfoResult">--> <!-- select--> @@ -1111,7 +1111,7 @@ <!-- <if test="pageSize != null and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if>--> <!-- </select>--> <select id="selectPatArchiveInfoByPhysicalQC" parameterType="com.smartor.domain.PatArchiveReq" <select id="selectPatArchiveInfoByPhysicalQC" parameterType="com.ruoyi.patarchive.domain.PatArchiveReq" resultMap="PatArchiveOthreInfoResult"> select @@ -1203,7 +1203,7 @@ </select> <!-- ä½é¢æ£è æ»æ°ç»è®¡ï¼å»éï¼ --> <select id="countPatArchiveInfoByInhospQC" parameterType="com.smartor.domain.PatArchiveReq" resultType="long"> <select id="countPatArchiveInfoByInhospQC" parameterType="com.ruoyi.patarchive.domain.PatArchiveReq" resultType="long"> SELECT COUNT(DISTINCT d.patid) FROM pat_med_inhosp d WHERE 1=1 @@ -1257,7 +1257,7 @@ </select> <!-- é¨è¯æ£è æ»æ°ç»è®¡ï¼å»éï¼ --> <!-- <select id="countPatArchiveInfoByOuthospQC" parameterType="com.smartor.domain.PatArchiveReq" resultType="long">--> <!-- <select id="countPatArchiveInfoByOuthospQC" parameterType="com.ruoyi.patarchive.domain.PatArchiveReq" resultType="long">--> <!-- SELECT COUNT(DISTINCT a.id)--> <!-- FROM pat_med_outhosp d--> <!-- JOIN pat_archive a ON a.id = d.patid--> @@ -1290,7 +1290,7 @@ <!-- </select>--> <!-- 使£æ£è æ»æ°ç»è®¡ï¼å»éï¼ --> <select id="countPatArchiveInfoByPhysicalQC" parameterType="com.smartor.domain.PatArchiveReq" resultType="long"> <select id="countPatArchiveInfoByPhysicalQC" parameterType="com.ruoyi.patarchive.domain.PatArchiveReq" resultType="long"> SELECT COUNT(DISTINCT a.id) FROM pat_med_physical d JOIN pat_archive a ON a.id = d.patid ruoyi-patarchive/src/main/resources/mapper/patarchive/PatArchiveOutMapper.xml
ÎļþÃû´Ó smartor/src/main/resources/mapper/smartor/PatArchiveOutMapper.xml ÐÞ¸Ä @@ -2,9 +2,9 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.smartor.mapper.PatArchiveOutMapper"> <mapper namespace="com.ruoyi.patarchive.mapper.PatArchiveOutMapper"> <resultMap type="com.smartor.domain.PatArchiveOut" id="PatArchiveOutResult"> <resultMap type="com.ruoyi.patarchive.domain.PatArchiveOut" id="PatArchiveOutResult"> <result property="patid" column="patid"/> <result property="patientno" column="patientno"/> <result property="pattype" column="pattype"/> @@ -73,7 +73,7 @@ from pat_archive_out </sql> <select id="selectPatArchiveOutList" parameterType="com.smartor.domain.PatArchiveOut" <select id="selectPatArchiveOutList" parameterType="com.ruoyi.patarchive.domain.PatArchiveOut" resultMap="PatArchiveOutResult"> <include refid="selectPatArchiveOutVo"/> where 1=1 @@ -111,7 +111,7 @@ where patid = #{patid} </select> <select id="selectPatArchiveCount" parameterType="Long" resultType="com.smartor.domain.PerSonWorkbenchDto"> <select id="selectPatArchiveCount" parameterType="Long" resultType="com.ruoyi.patarchive.domain.PerSonWorkbenchDto"> select aa.name1 as name, aa.count as count from ( SELECT "ä½é¢" as name1, count(1) as count FROM `pat_med_inhosp` @@ -151,7 +151,7 @@ </select> <insert id="insertPatArchiveOut" parameterType="com.smartor.domain.PatArchiveOut" useGeneratedKeys="true" <insert id="insertPatArchiveOut" parameterType="com.ruoyi.patarchive.domain.PatArchiveOut" useGeneratedKeys="true" keyProperty="patid"> insert into pat_archive_out <trim prefix="(" suffix=")" suffixOverrides=","> @@ -220,7 +220,7 @@ </trim> </insert> <update id="updatePatArchiveOut" parameterType="com.smartor.domain.PatArchiveOut"> <update id="updatePatArchiveOut" parameterType="com.ruoyi.patarchive.domain.PatArchiveOut"> update pat_archive_out <trim prefix="SET" suffixOverrides=","> <if test="patientno != null">patientno = #{patientno},</if> ruoyi-patarchive/src/main/resources/mapper/patarchive/PatArchivecontactMapper.xml
ÎļþÃû´Ó smartor/src/main/resources/mapper/smartor/PatArchivecontactMapper.xml ÐÞ¸Ä @@ -2,7 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.smartor.mapper.PatArchivecontactMapper"> <mapper namespace="com.ruoyi.patarchive.mapper.PatArchivecontactMapper"> <resultMap type="com.ruoyi.common.core.domain.entity.PatArchivecontact" id="PatArchivecontactResult"> <result property="id" column="id"/> ruoyi-patarchive/src/main/resources/mapper/patarchive/PatArchivetagMapper.xml
ÎļþÃû´Ó smartor/src/main/resources/mapper/smartor/PatArchivetagMapper.xml ÐÞ¸Ä @@ -2,7 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.smartor.mapper.PatArchivetagMapper"> <mapper namespace="com.ruoyi.patarchive.mapper.PatArchivetagMapper"> <resultMap type="com.ruoyi.common.core.domain.entity.PatArchivetag" id="PatArchivetagResult"> <result property="id" column="id"/> ruoyi-patarchive/src/main/resources/mapper/patarchive/ShardingMapper.xml
ÎļþÃû´Ó smartor/src/main/resources/mapper/smartor/ShardingMapper.xml ÐÞ¸Ä @@ -2,7 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.smartor.mapper.ShardingMapper"> <mapper namespace="com.ruoyi.patarchive.mapper.ShardingMapper"> <select id="getTableCount" resultType="long"> SELECT count(*) FROM ${tableName} ruoyi-phone/pom.xml
@@ -70,6 +70,12 @@ <version>4.0.1</version> <scope>provided</scope> </dependency> <!-- 2026-11ï¼åæ°é ç½®æ¹ç´æ¥æ³¨å ¥ ISysConfigService --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-system</artifactId> </dependency> </dependencies> </project> ruoyi-phone/src/main/java/com/ruoyi/phone/PhoneModule.java
@@ -1,5 +1,6 @@ package com.ruoyi.phone; import com.ruoyi.system.service.ISysConfigService; /** * çµè¯æ¨¡åå æ ¹ã * @@ -23,9 +24,9 @@ * <ul> * <li>任塿°æ® â {@code com.ruoyi.task.api.TaskSubtaskApi}ï¼å½å±æ¨¡åå å®ç°ï¼æ¬æ¨¡ååªè° APIï¼ï¼</li> * <li>模æ¿è¯æ¯ â {@code com.ruoyi.template.service} ä¸ç service æ¥å£ï¼</li> * <li>åéæ¹å¼ç¶æ â {@code com.ruoyi.task.api.spi.TaskPreachformPort}ï¼</li> * <li>å½é³ä¸è½½ â {@code com.ruoyi.task.api.spi.TaskFtpPort}ï¼</li> * <li>åæ°é ç½® â {@code com.ruoyi.task.api.spi.TaskSysConfigPort}ï¼</li> * <li>åéæ¹å¼ç¶æ â {@code com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper}ï¼è¯¥è¡¨ 2026-11 å·²å½ ruoyi-taskï¼ï¼</li> * <li>å½é³ä¸è½½ â {@code com.ruoyi.common.utils.FtpService}ï¼2026-11 å·²ä» smartor 䏿²å° commonï¼ï¼</li> * <li>åæ°é ç½® â {@code com.ruoyi.task.api.spi.ISysConfigService}ï¼</li> * <li>AI é项å¹é â {@code com.ruoyi.common.core.service.SubtaskOptionMatchApi}ï¼ruoyi-common å¥çº¦ï¼ã</li> * </ul> * ruoyi-phone/src/main/java/com/ruoyi/phone/service/impl/PhoneServiceImpl.java
@@ -18,9 +18,8 @@ import com.ruoyi.phone.domain.QuestionMessage; import com.ruoyi.phone.service.IPhoneService; import com.ruoyi.task.api.TaskSubtaskApi; import com.ruoyi.task.api.spi.TaskFtpPort; import com.ruoyi.task.api.spi.TaskPreachformPort; import com.ruoyi.task.api.spi.TaskSysConfigPort; import com.ruoyi.common.utils.FtpService; import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper; import com.ruoyi.task.domain.IvrTaskVisitResult; import com.ruoyi.task.domain.ServiceSubTaskDetailReq; import com.ruoyi.task.domain.ServiceSubtask; @@ -60,6 +59,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; import com.ruoyi.system.service.ISysConfigService; /** * çµè¯ä¸å¡Serviceå®ç°ï¼å {@code ruoyi-task} é {@code ServiceSubtaskServiceImpl} ççµè¯é¨åï¼ã @@ -110,19 +110,21 @@ * è¯¥è¡¨å½ ruoyi-inhospvisitï¼ç± smartor ä¾§éé å®ç°æ¬ç«¯å£ã */ @Autowired private TaskPreachformPort taskPreachformPort; private ServiceSubtaskPreachformMapper taskPreachformPort; /** * å½é³æä»¶ä¸è½½ï¼é¨ç»®éè¯è®°å½åè°éæå½å¤©å½é³ä» FTP æåæ¬å°ï¼ * <p>2026-11ï¼{@code FtpService} å·²ä» smartor 䏿²å° {@code ruoyi-common}ï¼ * 忥çè¿æ¸¡ç«¯å£ {@code TaskFtpPort} éä¹å é¤ï¼è¿éç´æ¥æ³¨å ¥éç¨å·¥å ·ã */ @Autowired private TaskFtpPort taskFtpPort; private FtpService ftpService; /** * åæ°é 置读åï¼{@code sys.voice.match.ai.url}ï¼AI é项å¹é æå¡å°åï¼ææºæé ç½®ï¼ */ @Autowired private TaskSysConfigPort taskSysConfigPort; private ISysConfigService sysConfigService; /** * AI é项å¹é å¥çº¦ï¼ruoyi-commonï¼å®ç°å¨ ruoyi-taskï¼å³å {@code matchOptionIndex}ï¼ @@ -700,7 +702,7 @@ //ç¨æ¥æ è®°ï¼æ¯å¦æå¹é ä¸ç Integer flag = 0; //1-AIè¯å« String url = taskSysConfigPort.selectConfigValue("sys.voice.match.ai.url", phoneCallReqYQVO.getOrgid()); String url = sysConfigService.selectConfigByKey("sys.voice.match.ai.url", phoneCallReqYQVO.getOrgid()); if (ObjectUtils.isNotEmpty(url)) { PhoneCallBackYQVO aiMatchResult = AiMatch(url, phoneCallReqYQVO, phoneCallBackYQVO, ivrTaskTemplateScriptVO, serviceSubtask, ivrTaskTemplate, ivrTaskTemplateScripts, scriptId, flag, phoneCallReqYQVO.getUuid()); @@ -1415,7 +1417,7 @@ taskSubtaskApi.updateSubtask(serviceSubtask); setFailPreachForm(serviceSubtask, StringUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) ? serviceSubtask.getCurrentPreachform() : "3", "çµè¯æ¨æå·²å®æ", "9"); //ä¸è½½æä»¶ taskFtpPort.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString()); ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString()); redisCache.deleteObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup"); } else { //æ£è æç»é访 @@ -1652,7 +1654,7 @@ public PhoneCallBackSHVO processResust(PhoneCallResultYQVO phoneCallResultYQVO) { PhoneCallBackSHVO phoneCallBackSHVO = new PhoneCallBackSHVO(); //éè¿scriptidï¼è·åææçç»æ String url = taskSysConfigPort.selectConfigValue("sys.voice.match.ai.url", phoneCallResultYQVO.getOrgid()); String url = sysConfigService.selectConfigByKey("sys.voice.match.ai.url", phoneCallResultYQVO.getOrgid()); ServiceSubtask serviceSubtask = taskSubtaskApi.getSubtask(phoneCallResultYQVO.getSubId()); IvrTaskTemplate ivrTaskTemplate = ivrTaskTemplateService.selectIvrTaskTemplateByID(serviceSubtask.getTemplateid()); IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO = iIvrTaskTemplateScriptService.getTaskTempScriptInfoByid(Long.valueOf(phoneCallResultYQVO.getScriptId())); ruoyi-publicity/pom.xml
@@ -36,6 +36,7 @@ <artifactId>lombok</artifactId> <version>1.18.34</version> </dependency> </dependencies> </project> ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/CollectHISController.java
@@ -5,9 +5,9 @@ import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.quartz.service.ICollectHISService; import com.smartor.domain.HnDataGatherVO; import com.smartor.domain.Icd10; import com.smartor.service.IHNGatherPatArchiveService; import com.ruoyi.datacollection.domain.HnDataGatherVO; import com.ruoyi.common.core.domain.entity.Icd10; import com.ruoyi.datacollection.service.IHNGatherPatArchiveService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/CollectHISMapper.java
@@ -19,6 +19,7 @@ import java.util.List; import java.util.Map; import com.ruoyi.common.core.domain.entity.PatArchive; import com.ruoyi.common.core.domain.entity.Icd10; @DataSource(value = DataSourceType.SLAVE) @Mapper ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ICollectHISService.java
@@ -8,6 +8,8 @@ import java.util.List; import com.ruoyi.common.core.domain.entity.PatArchive; import com.ruoyi.common.core.domain.entity.Icd10; import com.ruoyi.datacollection.domain.HnDataGatherVO; public interface ICollectHISService { ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
@@ -39,6 +39,14 @@ import com.ruoyi.task.domain.entity.ServiceSubtaskEntity; import com.ruoyi.task.domain.ServiceSubtask; import com.ruoyi.task.mapper.ServiceSubtaskMapper; import com.ruoyi.patarchive.mapper.PatArchiveMapper; import com.ruoyi.common.core.domain.entity.Icd10; import com.ruoyi.common.mapper.Icd10Mapper; import com.ruoyi.system.mapper.ext.SysUser2Mapper; import com.ruoyi.system.mapper.ext.SysDept2Mapper; import com.ruoyi.system.mapper.ext.SysUserDeptMapper; import com.ruoyi.patarchive.mapper.ShardingMapper; import com.ruoyi.datacollection.domain.HnDataGatherVO; @Slf4j @Service public class CollectHISServiceImpl implements ICollectHISService { ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -76,6 +76,13 @@ import com.ruoyi.task.domain.ServiceSubtaskPreachform; import com.ruoyi.task.service.IServiceSubtaskService; import com.ruoyi.task.domain.SendMagParam; import com.ruoyi.task.service.IServiceSubtaskRecordService; import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper; import com.ruoyi.patarchive.service.IPatArchiveService; import com.ruoyi.datacollection.service.IXHGatherPatArchiveService; import com.ruoyi.datacollection.service.IServiceSLTDHealthcareRecordService; import com.ruoyi.datacollection.domain.ServiceSLTDInhospReqVO; import com.ruoyi.datacollection.domain.ServiceSLTDInhospResDTO; /** * 宿¶ä»»å¡è°åº¦æµè¯ @@ -1044,8 +1051,10 @@ * å¤çæ£è ä¿¡æ¯ï¼è¿å ¥åä»»å¡è¡¨(ä»»å¡ç») * <p> * â ï¸ 2025 ä¿®å¤ï¼å¼å ³å¤±æï¼ï¼åèµ° smartor éçå®ç°ï¼ä¸å¤å¼å ³ï¼å {@link #dealOutHospInfo()}ï¼ã * ç°èµ°æ¨¡åé¨é¢ãæ³¨ææ¨¡åä¾§ç {@code dealOutHospInfoBySchedule} å é¨ä»ä¼è½¬åå smartor * ï¼{@code OtherVisitApiBridge}ï¼è§è¯¥ç±»æ³¨éï¼ï¼ä½<b>å¼å ³å¨é¨é¢è¿ä¸å±å¤</b>ï¼æä»¥å ³éæ¶ä¸ä¼èµ°å°é£éã * ç°èµ°æ¨¡åé¨é¢ã模åä¾§ {@code dealOutHospInfoBySchedule} ç» {@code OtherVisitApi} å¥çº¦ * åè° {@code ruoyi-task/api/contract/OtherVisitApiImpl}ï¼2026-11 èµ·å®ç°æ´ç°æ¬è¿ task 模åï¼ * smartor ä¾§ç {@code OtherVisitApiBridge} å·²å é¤ï¼ï¼ä½<b>å¼å ³å¨é¨é¢è¿ä¸å±å¤</b>ï¼ * æä»¥å ³éæ¶ä¸ä¼èµ°å°é£éã */ public void dealOutHospInfoBySchedule() { String config = configService.selectConfigByKey("visit.early.day"); ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
@@ -93,7 +93,7 @@ </resultMap> <resultMap type="com.smartor.domain.PatArchiveOthreInfo" id="PatArchiveOthreInfoResult"> <resultMap type="com.ruoyi.patarchive.domain.PatArchiveOthreInfo" id="PatArchiveOthreInfoResult"> <result property="id" column="id"/> <result property="notrequiredFlag" column="notrequired_flag"/> <result property="notrequiredreason" column="notrequiredreason"/> @@ -259,7 +259,7 @@ </resultMap> <resultMap type="com.smartor.domain.Icd10" id="Icd10Result"> <resultMap type="com.ruoyi.common.core.domain.entity.Icd10" id="Icd10Result"> <result property="icdid" column="icdid"/> <result property="icdcode" column="icdcode"/> <result property="icdname" column="icdname"/> @@ -736,7 +736,7 @@ </select> <select id="selectIcd10List" parameterType="com.smartor.domain.Icd10" resultMap="Icd10Result"> <select id="selectIcd10List" parameterType="com.ruoyi.common.core.domain.entity.Icd10" resultMap="Icd10Result"> select icdcode, his_icdid, ruoyi-task/pom.xml
@@ -93,6 +93,12 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-othervisit</artifactId> </dependency> <!-- 2026-11ï¼TaskSysConfig/TaskSysDept/TaskSysUserDept ä¸ä¸ªç«¯å£å é¤ï¼ç´æ¥ä¾èµ system --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-system</artifactId> </dependency> </dependencies> </project> ruoyi-task/src/main/java/com/ruoyi/task/api/spi/TaskFtpPort.java
ÎļþÒÑɾ³ý ruoyi-task/src/main/java/com/ruoyi/task/api/spi/TaskPreachformPort.java
ÎļþÒÑɾ³ý ruoyi-task/src/main/java/com/ruoyi/task/api/spi/TaskSubtaskRecordPort.java
ÎļþÒÑɾ³ý ruoyi-task/src/main/java/com/ruoyi/task/api/spi/TaskSysConfigPort.java
ÎļþÒÑɾ³ý ruoyi-task/src/main/java/com/ruoyi/task/api/spi/TaskSysDeptPort.java
ÎļþÒÑɾ³ý ruoyi-task/src/main/java/com/ruoyi/task/api/spi/TaskSysUserDeptPort.java
ÎļþÒÑɾ³ý ruoyi-task/src/main/java/com/ruoyi/task/common/ScheduleSubtaskBuilder.java
@@ -19,7 +19,7 @@ import com.ruoyi.task.domain.ServiceTaskScheduleDetail; import com.ruoyi.task.mapper.ServiceSubtaskMapper; import com.ruoyi.task.domain.ServiceSubtaskPreachform; import com.ruoyi.task.api.spi.TaskPreachformPort; import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper; import com.ruoyi.task.domain.PatTaskRelevance; /** @@ -42,7 +42,7 @@ private ServiceSubtaskMapper serviceSubtaskMapper; @Autowired private TaskPreachformPort taskPreachformPort; private ServiceSubtaskPreachformMapper taskPreachformPort; /** * 为å个æ£è æ´¾ç subtaskï¼appltype=5ï¼ââ è§£è¦å ¥å£ï¼èªå¨çº³å ¥ & æå¨å¾éç»ä¸èµ°è¿éï¼ã ruoyi-task/src/main/java/com/ruoyi/task/controller/ServiceSubtaskController.java
@@ -20,11 +20,8 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.reflect.ReflectUtils; import com.ruoyi.common.core.service.TaskOpsTriggerApi; import com.ruoyi.task.api.spi.TaskSysConfigPort; import com.ruoyi.task.api.spi.TaskSysUserDeptPort; import com.ruoyi.satisfaction.api.SatisfactionExportBundle; import com.ruoyi.satisfaction.api.SatisfactionFacade; import com.ruoyi.task.api.spi.TaskSubtaskRecordPort; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; @@ -54,6 +51,7 @@ import com.ruoyi.task.domain.ServiceSubtaskStatistic; import com.ruoyi.task.domain.ServiceTask; import com.ruoyi.task.domain.VO.ServiceSubtaskCotinueCountVO; import com.ruoyi.task.service.IServiceSubtaskRecordService; import com.ruoyi.task.service.IServiceSubtaskService; import com.ruoyi.task.service.IServiceTaskService; import com.ruoyi.task.domain.PatArchiveSrmVO; @@ -65,6 +63,8 @@ import com.ruoyi.task.domain.VO.ServiceSubtaskVO; import com.ruoyi.task.domain.VO.TransferDeptVO; import com.ruoyi.task.domain.ServiceSubtaskExport; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysUserDeptService; /** * åä¸ä»»å¡ï¼é访ï¼Controller @@ -104,13 +104,13 @@ private IServiceTaskService serviceTaskService; @Autowired private TaskSysUserDeptPort taskSysUserDeptPort; private ISysUserDeptService sysUserDeptService; @Autowired private TaskSubtaskRecordPort serviceSubtaskRecordService; private IServiceSubtaskRecordService serviceSubtaskRecordService; @Autowired private TaskSysConfigPort taskSysConfigPort; private ISysConfigService sysConfigService; /** * ä»»å¡è¿ç»´è§¦åè½åã @@ -169,6 +169,7 @@ LoginUser loginUser = getLoginUser(); SysUser user = loginUser.getUser(); serviceSubtaskVO.setOrgid(user.getOrgid()); // é¢åºåç»å½ä¼è¯éçå¼ï¼ç»å½é¡µéæ©çé¢åºï¼è§ SysLoginService#loginï¼ serviceSubtaskVO.setCampusid(user.getCampusid()); ServiceSubtaskEntity serviceSubtaskEntity = null; if (serviceSubtaskVO != null) { @@ -558,7 +559,7 @@ sysUserWard.setOrgid(user.getOrgid()); sysUserWard.setCampusid(user.getCampusid()); sysUserWard.setDeptType("2"); List<SysUserDept> wardList = taskSysUserDeptPort.selectSysUserDeptList(sysUserWard); List<SysUserDept> wardList = sysUserDeptService.selectSysUserDeptList(sysUserWard); if (CollectionUtils.isNotEmpty(wardList)) { leavehospitaldistrictcodes = wardList.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList()); } @@ -573,7 +574,7 @@ sysUserDept.setOrgid(user.getOrgid()); sysUserDept.setCampusid(user.getCampusid()); sysUserDept.setDeptType("1"); List<SysUserDept> deptList = taskSysUserDeptPort.selectSysUserDeptList(sysUserDept); List<SysUserDept> deptList = sysUserDeptService.selectSysUserDeptList(sysUserDept); if (CollectionUtils.isNotEmpty(deptList)) { deptCodes = deptList.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList()); } @@ -583,7 +584,7 @@ } } String followUpCountStyle = taskSysConfigPort.selectConfigValue("followUpCountStyle", serviceSubtaskCountReq.getOrgid()); String followUpCountStyle = sysConfigService.selectConfigByKey("followUpCountStyle", serviceSubtaskCountReq.getOrgid()); if (ObjectUtils.isNotEmpty(followUpCountStyle)) { serviceSubtaskCountReq.setFollowUpCountStyle(followUpCountStyle); } else { @@ -608,7 +609,7 @@ Integer offset = PageUtils.getOffset(serviceSubtaskCountReq.getPageNum(), serviceSubtaskCountReq.getPageSize()); serviceSubtaskCountReq.setPageNum(offset); String followUpCountStyle = taskSysConfigPort.selectConfigValue("followUpCountStyle", serviceSubtaskCountReq.getOrgid()); String followUpCountStyle = sysConfigService.selectConfigByKey("followUpCountStyle", serviceSubtaskCountReq.getOrgid()); if (ObjectUtils.isNotEmpty(followUpCountStyle)) { serviceSubtaskCountReq.setFollowUpCountStyle(followUpCountStyle); } else { @@ -720,7 +721,7 @@ String orgid = loginUser.getUser().getOrgid(); String configKey = serviceSubtaskCountReq.getConfigKey(); if (StringUtils.isNotEmpty(configKey)) { String configValue = taskSysConfigPort.selectConfigValue(configKey, orgid); String configValue = sysConfigService.selectConfigByKey(configKey, orgid); serviceSubtaskCountReq.setConfigValue(configValue); if (StringUtils.isEmpty(configValue)) { String logInfo = "getSfStatisticsCount-åæ° " + configKey + " æªé ç½®, 请é 置好åéè¯"; @@ -729,7 +730,7 @@ } } String followUpCountStyle = taskSysConfigPort.selectConfigValue("followUpCountStyle", orgid); String followUpCountStyle = sysConfigService.selectConfigByKey("followUpCountStyle", orgid); if (ObjectUtils.isNotEmpty(followUpCountStyle)) { serviceSubtaskCountReq.setFollowUpCountStyle(followUpCountStyle); } else { @@ -769,7 +770,7 @@ } String configKey = serviceSubtaskCountReq.getConfigKey(); if (StringUtils.isNotEmpty(configKey)) { String configValue = taskSysConfigPort.selectConfigValue(configKey, serviceSubtaskCountReq.getOrgid()); String configValue = sysConfigService.selectConfigByKey(configKey, serviceSubtaskCountReq.getOrgid()); serviceSubtaskCountReq.setConfigValue(configValue); if (StringUtils.isEmpty(configValue)) { String logInfo = "getSfStatisticsCount-åæ° " + configKey + " æªé ç½®, 请é 置好åéè¯"; @@ -800,7 +801,7 @@ //å¤è¯ç»è®¡ String configKey = serviceSubtaskCountReq.getConfigKey(); if (StringUtils.isNotEmpty(configKey)) { String configValue = taskSysConfigPort.selectConfigValue(configKey, serviceSubtaskCountReq.getOrgid()); String configValue = sysConfigService.selectConfigByKey(configKey, serviceSubtaskCountReq.getOrgid()); if (StringUtils.isEmpty(configValue)) { String logInfo = "getSfStatisticsCountDetails-åæ° " + configKey + " æªé ç½®, 请é 置好åéè¯"; log.error(logInfo); @@ -856,13 +857,13 @@ sysUserDept.setOrgid(sysUser.getOrgid()); sysUserDept.setCampusid(sysUser.getCampusid()); sysUserDept.setDeptType("1"); List<SysUserDept> sysUserDepts = taskSysUserDeptPort.selectSysUserDeptList(sysUserDept); List<SysUserDept> sysUserDepts = sysUserDeptService.selectSysUserDeptList(sysUserDept); SysUserDept sysUserWard = new SysUserDept(); sysUserWard.setUserId(sysUser.getUserId()); sysUserWard.setOrgid(sysUser.getOrgid()); sysUserWard.setCampusid(sysUser.getCampusid()); sysUserWard.setDeptType("2"); List<SysUserDept> sysUserWards = taskSysUserDeptPort.selectSysUserDeptList(sysUserWard); List<SysUserDept> sysUserWards = sysUserDeptService.selectSysUserDeptList(sysUserWard); List<String> deptCodes = sysUserDepts.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList()); List<String> wardCodes = sysUserWards.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList()); ServiceSubtaskEntity entity = new ServiceSubtaskEntity(); @@ -881,6 +882,74 @@ return map; } /** * å½åç»å½äººå¾ å¤çé访任å¡ç»è®¡ï¼æåºé¢å¹´æåç»ï¼åºé¢é访ãé¨è¯é访åå¼è®¡æ°ï¼ * <p> * å£å¾ï¼service_subtask ä¸ * service_type = '2' åºé¢é访 / '3' é¨è¯é访 * + å¾ éè®¿ç¶æï¼sendstate in 1,2,3,5,7ï¼ * + åºé¢æ»¡ 7 天ï¼å«ã7 天åé£ä¸å¤©ãåºé¢çæ£è ï¼ * + åªçæè¿ 4 个åºé¢æä»½ï¼å«å½æï¼ï¼ * ç§å®¤/ç åºæéå ORï¼ä¸é访å表 deptOrDistrict=2 ä¸è´ï¼ã * * @return { userName, nickName, total, months: [{ month: 'yyyy-MM', dischargeCount, outpatientCount }] } * åªè¿åææ°æ®çæä»½ï¼æ²¡ææ°æ®çæä»½ç±å端补 0 */ @ApiOperation("è·åå½åç»å½äººå¾ å¤çé访任å¡ç»è®¡ï¼æåºé¢å¹´æï¼") @PostMapping("/pendingTaskMonthStats") public Map<String, Object> pendingTaskMonthStats() { LoginUser loginUser = getLoginUser(); SysUser sysUser = loginUser.getUser(); Map<String, Object> result = new LinkedHashMap<>(); result.put("userName", sysUser.getUserName()); result.put("nickName", sysUser.getNickName()); result.put("total", 0L); result.put("months", new ArrayList<>()); // 注æï¼ä¸è¦ç¨ sys_user_dept.campusid è¿æ»¤ââè¿å¼ 表ç campusid 大é为 NULLï¼ // 带ä¸å®ä¼ç´æ¥æ¥ä¸åºæéï¼ç»è®¡ç»ææ°¸è¿æ¯ 0ãé¢åºæéç± orgid + userId + deptType å·²è½å®ä½ã SysUserDept deptQuery = new SysUserDept(); deptQuery.setUserId(sysUser.getUserId()); deptQuery.setOrgid(sysUser.getOrgid()); deptQuery.setDeptType("1"); List<SysUserDept> sysUserDepts = sysUserDeptService.selectSysUserDeptList(deptQuery); SysUserDept wardQuery = new SysUserDept(); wardQuery.setUserId(sysUser.getUserId()); wardQuery.setOrgid(sysUser.getOrgid()); wardQuery.setDeptType("2"); List<SysUserDept> sysUserWards = sysUserDeptService.selectSysUserDeptList(wardQuery); boolean isAdmin = "admin".equals(sysUser.getUserName()); if (!isAdmin && CollectionUtils.isEmpty(sysUserDepts) && CollectionUtils.isEmpty(sysUserWards)) { // æ¢æ²¡æç§å®¤ä¹æ²¡æç åºæéæ¶ä¸ç»è®¡ï¼é¿å è¶æçå°å ¨æºææ°æ® return result; } // sys_user_dept éåä¸ç§å®¤/ç åºä¼éå¤å¾å¤è¡ï¼å»éååæ¼ INï¼é¿å SQL åæ°è¿å¤ List<String> deptCodes = sysUserDepts.stream() .map(SysUserDept::getDeptCode) .filter(Objects::nonNull) .distinct() .collect(Collectors.toList()); List<String> wardCodes = sysUserWards.stream() .map(SysUserDept::getDeptCode) .filter(Objects::nonNull) .distinct() .collect(Collectors.toList()); ServiceSubtaskEntity entity = new ServiceSubtaskEntity(); entity.setOrgid(sysUser.getOrgid()); entity.setLeaveldeptcodes(deptCodes); entity.setLeavehospitaldistrictcodes(wardCodes); Map<String, Object> stats = serviceSubtaskService.getPendingManualTaskMonthStats(entity); if (stats != null) { result.putAll(stats); } return result; } @ApiOperation("è·åå½åç¨æ·å®£ææ°éç»è®¡") @PostMapping("/gethelibraryCount") public Map<String, Object> getHeLibraryCount(@RequestBody HeLibraryCountVO heLibraryCountVO) { ruoyi-task/src/main/java/com/ruoyi/task/mapper/ServiceSubtaskMapper.java
@@ -264,6 +264,17 @@ public Map<String, Object> getCurrentUserServiceSubtaskCount(ServiceSubtaskEntity serviceSubtaskVO); /** * å½åç»å½äººå¾ å¤çé访任å¡ï¼æåºé¢å¹´æåç»ç»è®¡ * <p> * ç»è®¡å£å¾ï¼åºé¢é访/é¨è¯é访ï¼service_type in 2,3ï¼+ 人工ï¼current_preachform = '1'ï¼ * + å¾ éè®¿ç¶æï¼sendstate in 1,2,3,5,7ï¼+ åºé¢æ¶é´æ©äºçäºä»å¤© - 7 天ã * * @param serviceSubtaskVO æ¥è¯¢æ¡ä»¶ï¼orgidãç§å®¤ãç åºï¼ * @return æ¯è¡å å« monthï¼yyyy-MMï¼ä¸ cntï¼æ°éï¼ï¼æ°é为 0 çæä»½ä¸ä¼è¿å */ public List<Map<String, Object>> countPendingManualTaskByMonth(ServiceSubtaskEntity serviceSubtaskVO); /** * è·åé¨è¯éè®¿äººæ° * * @param patMedReq ruoyi-task/src/main/java/com/ruoyi/task/service/IServiceSubtaskPreachformService.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/IServiceSubtaskPreachformService.java ÐÞ¸Ä @@ -1,4 +1,4 @@ package com.smartor.service; package com.ruoyi.task.service; import java.util.List; import com.ruoyi.task.domain.ServiceSubtaskPreachform; ruoyi-task/src/main/java/com/ruoyi/task/service/IServiceSubtaskService.java
@@ -180,6 +180,19 @@ public Map<String, Object> getCurrentUserServiceSubtaskCount(ServiceSubtaskEntity entity); /** * å½åç»å½äººå¾ å¤çé访任å¡ï¼æåºé¢å¹´æåç»ç»è®¡ï¼åºé¢é访ãé¨è¯é访åå¼è®¡æ°ï¼ * <p> * å£å¾ï¼åºé¢é访 service_type='2'ãé¨è¯é访 service_type='3' * + å¾ éè®¿ç¶æï¼sendstate in 1,2,3,5,7ï¼ * + åºé¢æ»¡ 7 天ï¼å«ã7 天åé£ä¸å¤©ãåºé¢çæ£è ï¼ï¼ä¸åªçæè¿ 4 个åºé¢æä»½ï¼å«å½æï¼ã * * @param entity æ¥è¯¢æ¡ä»¶ï¼orgidãç§å®¤ãç åºï¼ * @return { total: æ»æ°é, months: [{ month: 'yyyy-MM', dischargeCount: åºé¢é访æ°é, outpatientCount: é¨è¯é访æ°é }] } * åªè¿åææ°æ®çæä»½ï¼æ²¡ææ°æ®çæä»½ç±å端补 0 */ public Map<String, Object> getPendingManualTaskMonthStats(ServiceSubtaskEntity entity); /** * æç åºæç§å®¤ç»è®¡å»¶ç»æ¤çæ°é * é½ä¸ä¼ æ¶åæ¶æç åºåç§å®¤åç»è®¡ä¸é * ruoyi-task/src/main/java/com/ruoyi/task/service/impl/ServiceSubtaskPreachformServiceImpl.java
ÎļþÃû´Ó smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskPreachformServiceImpl.java ÐÞ¸Ä @@ -1,11 +1,11 @@ package com.smartor.service.impl; package com.ruoyi.task.service.impl; import java.util.List; import com.ruoyi.common.utils.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.smartor.mapper.ServiceSubtaskPreachformMapper; import com.smartor.service.IServiceSubtaskPreachformService; import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper; import com.ruoyi.task.service.IServiceSubtaskPreachformService; import com.ruoyi.task.domain.ServiceSubtaskPreachform; /** ruoyi-task/src/main/java/com/ruoyi/task/service/impl/ServiceSubtaskServiceImpl.java
@@ -101,11 +101,8 @@ import com.ruoyi.task.mapper.ServiceOutPathMapper; import com.ruoyi.task.service.IServiceOutPathService; import com.ruoyi.task.domain.ServiceSubtaskPreachform; import com.ruoyi.task.api.spi.TaskPreachformPort; import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper; import com.ruoyi.task.api.spi.TaskArchivePort; import com.ruoyi.task.api.spi.TaskFtpPort; import com.ruoyi.task.api.spi.TaskSysConfigPort; import com.ruoyi.task.api.spi.TaskSysDeptPort; import com.ruoyi.task.common.ScheduleSubtaskBuilder; import com.ruoyi.task.domain.ServiceTaskScheduleVO; import com.ruoyi.task.service.IServiceSubtaskService; @@ -124,6 +121,8 @@ import com.ruoyi.task.domain.ServiceSubtaskTemplateVO; import com.ruoyi.task.domain.ServiceTaskVO; import com.ruoyi.task.domain.VO.TransferDeptVO; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.mapper.ext.SysDept2Mapper; /** * åä¸ä»»å¡ï¼é访ï¼Serviceä¸å¡å±å¤ç @@ -166,7 +165,7 @@ private ServiceSubtaskMapper serviceSubtaskMapper; @Autowired private TaskPreachformPort taskPreachformPort; private ServiceSubtaskPreachformMapper taskPreachformPort; @Autowired private ServiceSubtaskDetailMapper serviceSubtaskDetailMapper; @@ -221,9 +220,6 @@ @Autowired private ScheduleSubtaskBuilder scheduleSubtaskBuilder; @Autowired private TaskFtpPort taskFtpPort; @@ -236,7 +232,7 @@ @Autowired private TaskSysConfigPort taskSysConfigPort; private ISysConfigService sysConfigService; /** * æ¶æ¯å鿹工åï¼çä¿¡/å¾®ä¿¡å ¬ä¼å·ï¼ï¼æ¿ä»£åæ¥ç´æ¥è°ç¨åç«ç¹åé代ç çåæ³ @@ -255,7 +251,7 @@ @Autowired private TaskSysDeptPort taskSysDeptPort; private SysDept2Mapper sysDept2Mapper; @Value("${spring.profiles.active}") private String active; @@ -1085,7 +1081,7 @@ } serviceTask.setLeaveldeptcodes(serviceTaskVO.getLeaveldeptcodes()); if (StringUtils.isEmpty(serviceTask.getLeavehospitaldistrictname()) && StringUtils.isNotEmpty(serviceTask.getLeavehospitaldistrictcode())) { SysDept sysDept = taskSysDeptPort.selectDeptByCode(serviceTask.getLeavehospitaldistrictcode(), null); SysDept sysDept = sysDept2Mapper.selectDeptByCode(serviceTask.getLeavehospitaldistrictcode(), null); serviceTask.setLeavehospitaldistrictname(sysDept.getDeptName()); } if (serviceTaskVO.getLongTask() == 1) serviceTask.setSendState(2L); @@ -3574,6 +3570,55 @@ return serviceSubtaskMapper.getCurrentUserServiceSubtaskCount(entity); } /** * å½åç»å½äººå¾ å¤çé访任å¡ï¼æåºé¢å¹´æåç»ç»è®¡ï¼åºé¢é访ãé¨è¯é访åå¼è®¡æ°ï¼ * <p> * åªè¿åææ°æ®çæä»½ï¼å端æã彿 + å 3 个æãè¡¥é½ï¼æ²¡ææ°æ®æ¾ç¤º 0 个ã */ @Override public Map<String, Object> getPendingManualTaskMonthStats(ServiceSubtaskEntity entity) { List<Map<String, Object>> rows = serviceSubtaskMapper.countPendingManualTaskByMonth(entity); List<Map<String, Object>> months = new ArrayList<>(); long total = 0L; if (rows != null) { for (Map<String, Object> row : rows) { if (row == null || row.get("month") == null) { continue; } long dischargeCount = parsePendingCount(row.get("dischargeCnt")); long outpatientCount = parsePendingCount(row.get("outpatientCnt")); if (dischargeCount <= 0 && outpatientCount <= 0) { continue; } Map<String, Object> item = new LinkedHashMap<>(); item.put("month", row.get("month").toString()); item.put("dischargeCount", dischargeCount); item.put("outpatientCount", outpatientCount); months.add(item); total += dischargeCount + outpatientCount; } } Map<String, Object> result = new LinkedHashMap<>(); result.put("total", total); result.put("months", months); return result; } /** * ç»è®¡ç»æéçæ°é转 longï¼è§£æå¤±è´¥æ 0 å¤ç */ private long parsePendingCount(Object value) { if (value == null) { return 0L; } try { return Long.parseLong(value.toString()); } catch (NumberFormatException e) { log.warn("ç»è®¡å¾ å¤çé访任å¡å¤±è´¥ï¼æ°éæ æ³è§£æï¼{}", value); return 0L; } } @Override public Map<String, Object> getContinueNurseCount(ServiceSubtaskCotinueCountVO vo) { boolean hasDistrict = !CollectionUtils.isEmpty(vo.getLeavehospitaldistrictcodes()); @@ -3641,8 +3686,8 @@ public void setFailSubTaskDefalutVal(Long failDay) { //1.å å»sys_configä¸ï¼è·ååªäºç§å®¤æç åºéè¦é»è®¤é®å·é»è®¤å¼ IConfigService configService = SpringUtils.getBean(IConfigService.class); String deptConfigValue = taskSysConfigPort.selectConfigValue("hosp.default.dept"); String wardConfigValue = taskSysConfigPort.selectConfigValue("hosp.default.ward"); String deptConfigValue = sysConfigService.selectConfigByKey("hosp.default.dept"); String wardConfigValue = sysConfigService.selectConfigByKey("hosp.default.ward"); List<String> leaveWard = null; List<String> leaveDept = null; if (deptConfigValue != null && !deptConfigValue.isEmpty()) { @@ -3870,8 +3915,8 @@ // åæ°å¼ç»ç«¯å£åç¨ï¼å为 sysConfigMapper.checkConfigKeyUnique + getConfigValueï¼ã // è¯ä¹çä»·ï¼åå¤å®"è¡åå¨"ãè¿éå¤å®"å¼é null"ï¼è sys_config.config_value æ¯ // varchar(500) NOT NULL DEFAULT '' â äºè ä¸å¯è½ä¸åï¼è¯¦è§ TaskSysConfigPort javadocï¼ã String smsContemt = taskSysConfigPort.findConfigValueByKey("wj.sms.template"); // varchar(500) NOT NULL DEFAULT '' â äºè ä¸å¯è½ä¸åï¼è¯¦è§ ISysConfigService javadocï¼ã String smsContemt = sysConfigService.selectConfigByKey("wj.sms.template"); if (smsContemt != null) { sendMagParam.setContent(smsContemt.replace("${wjurl}", sendMagParam.getUrl())); @@ -4214,7 +4259,7 @@ return null; } try { SysDept sysDept = taskSysDeptPort.selectDeptByCode(deptCode, orgid); SysDept sysDept = sysDept2Mapper.selectDeptByCode(deptCode, orgid); return sysDept == null ? null : sysDept.getCampusid(); } catch (Exception e) { log.warn("æç¼ç 忥é¢åºå¤±è´¥ï¼deptCode={}, orgid={}, err={}", deptCode, orgid, e.getMessage()); ruoyi-task/src/main/java/com/ruoyi/task/service/impl/ServiceTaskScheduleServiceImpl.java
@@ -20,7 +20,7 @@ import com.ruoyi.task.mapper.ServiceTaskScheduleDetailMapper; import com.ruoyi.task.mapper.ServiceTaskScheduleMapper; import com.ruoyi.task.domain.ServiceSubtaskPreachform; import com.ruoyi.task.api.spi.TaskPreachformPort; import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper; import com.ruoyi.task.domain.ServiceTaskScheduleVO; import com.ruoyi.task.service.IServiceTaskScheduleService; @@ -44,7 +44,7 @@ private ServiceSubtaskMapper serviceSubtaskMapper; @Autowired private TaskPreachformPort taskPreachformPort; private ServiceSubtaskPreachformMapper taskPreachformPort; /** 忬¡æ«æçæå¤§è®¡åæ°ï¼é¿å é¿äºå¡ã */ private static final int ROLL_BATCH_LIMIT = 200; ruoyi-task/src/main/java/com/ruoyi/task/service/impl/ServiceTaskServiceImpl.java
@@ -48,7 +48,7 @@ import com.ruoyi.task.mapper.ServiceTaskdeptMapper; import com.ruoyi.task.mapper.ServiceTaskMapper; import com.ruoyi.task.domain.ServiceSubtaskPreachform; import com.ruoyi.task.api.spi.TaskPreachformPort; import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper; import com.ruoyi.task.api.spi.TaskArchivePort; import com.ruoyi.task.service.IServiceTaskService; /** @@ -85,7 +85,7 @@ @Autowired private ServiceTaskdeptMapper serviceTaskdeptMapper; @Autowired private TaskPreachformPort taskPreachformPort; private ServiceSubtaskPreachformMapper taskPreachformPort; @Autowired private SvyTaskTemplateScriptMapper svyTaskTemplateScriptMapper; @Autowired ruoyi-task/src/main/resources/mapper/task/ServiceSubtaskMapper.xml
@@ -3278,6 +3278,46 @@ </if> </select> <!-- å½åç»å½äººãå¾ å¤çãé访任å¡ï¼æåºé¢å¹´æï¼endtimeï¼åç»ç»è®¡ï¼åºé¢é访 / é¨è¯é访åå¼è®¡æ°ã å£å¾ï¼ä¸é访å表ãå¾ é访ã页ç¾ä¸è´ï¼ï¼ 1) åºé¢é访 service_type = '2'ï¼é¨è¯é访 service_type = '3' 2) å¾ éè®¿ï¼æªå®æï¼â sendstate IN (1,2,3,5,7)ï¼æé¤ 4 䏿§è¡ / 6 宿 3) åºé¢æ»¡ 7 天 â endtime < (ä»å¤© - 7 天) + 1 å¤©ï¼ å³ã7 天åé£ä¸å¤©ãåºé¢çä¹è®¡å ¥ï¼ç¨ <= DATE_SUB(...) åªä¼æªå°å½å¤© 0 ç¹ï¼ä¼æ¼æ 9 æ¡ï¼ 4) åªçæè¿ 4 个åºé¢æä»½ï¼å«å½æï¼â endtime >= 彿å¾åæ¨ 3 个æç 1 å· 5) ç§å®¤/ç åºæéç¨ ORï¼ä¸å表 deptOrDistrict=2 ä¸è´ï¼ï¼ åªæç åºæéçç¨æ·ï¼ä»»å¡ leaveldeptcode 䏿¬äººç§å®¤å¯¹ä¸ä¸æ¶ä¹è½éå°ï¼ å¦åä¼ææ´ææ°æ®è¿æ»¤æ 0ã 说æï¼GROUP BY åªäº§åºææ°æ®çæä»½ï¼å端æã彿 + å 3 个æãè¡¥é½ï¼æ²¡æ°æ®å°±æ¾ç¤º 0 个ã ä¸åéå¶ current_preachformï¼äººå·¥ï¼ï¼è¯¥åæ®µåªæ¯æ§è¡æ¹å¼ï¼ å¾ é访任å¡éè¿æçä¿¡çæ¹å¼ï¼éå® '1' 伿¼æ°ã --> <select id="countPendingManualTaskByMonth" parameterType="com.ruoyi.task.domain.entity.ServiceSubtaskEntity" resultType="java.util.Map"> SELECT DATE_FORMAT(endtime, '%Y-%m') AS month, SUM(CASE WHEN service_type = '2' THEN 1 ELSE 0 END) AS dischargeCnt, SUM(CASE WHEN service_type = '3' THEN 1 ELSE 0 END) AS outpatientCnt FROM service_subtask WHERE del_flag = '0' AND service_type IN ('2', '3') AND sendstate IN (1, 2, 3, 5, 7) AND endtime IS NOT NULL AND endtime < DATE_ADD(DATE_SUB(CURDATE(), INTERVAL 7 DAY), INTERVAL 1 DAY) AND endtime >= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m-01') <if test="orgid != null and orgid != ''"> AND orgid = #{orgid} </if> <if test="campusid != null and campusid != ''"> AND campusid = #{campusid} </if> <!-- 离é¢ç§å®¤/ç åºï¼æç§å®¤æç§å®¤ãæç åºæç åºï¼ä¸¤è 齿æ¶å OR --> <include refid="filterLeaveDimOr"/> GROUP BY DATE_FORMAT(endtime, '%Y-%m') ORDER BY month </select> <select id="getCurrentUserServiceSubtaskCount" parameterType="com.ruoyi.task.domain.entity.ServiceSubtaskEntity" resultType="map"> SELECT smartor/pom.xml
@@ -234,6 +234,27 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-task</artifactId> </dependency> <!-- æ£è æ¡£æ¡æ¨¡åï¼pat_archive å®¶æï¼2026-11 è¿åº smartorï¼ æ¡£æ¡ç Mapper / Service / SQL å ¨å¨ ruoyi-patarchiveï¼smartor åªç»å®åæ°æ® ï¼æ¹å smartor -> ruoyi-patarchiveï¼åå䏿ç«ï¼ã --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-patarchive</artifactId> </dependency> <!-- æ°æ®é鿍¡åï¼2026-11ï¼ï¼æ°å/æ²³å/çç«åå¾·ééå¨ä¸é¢çº¦åè¯è¿å ¥ ruoyi-datacollectionã smartor 侧仿ééè°ç¨æ¹ï¼HisGatherApiBridge / ééç¸å ³ Controllerï¼ï¼ æ¹å smartor -> ruoyi-datacollectionï¼åå䏿ç«ã --> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-datacollection</artifactId> </dependency> </dependencies> smartor/src/main/java/com/smartor/common/DistinctByProperty.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/common/enums/EmergencyLevelEnum.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/common/enums/ImportFlagEnum.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ExternalDiagnosisInfo.java
@@ -7,6 +7,7 @@ import lombok.Data; import java.util.Date; import com.ruoyi.common.core.domain.entity.Icd10; /** * @author æ¥æ¶ç¬¬ä¸æ¹æ£è è¯æä¿¡æ¯ smartor/src/main/java/com/smartor/domain/ExternalInHospPatientDiagnoseInfo.java
@@ -7,6 +7,7 @@ import lombok.Data; import java.util.Date; import com.ruoyi.common.core.domain.entity.Icd10; /** * @author æ¥æ¶ç¬¬ä¸æ¹å ¥é¢æ£è è¯æä¿¡æ¯ smartor/src/main/java/com/smartor/domain/HnDataGatherVO.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/Icd10.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/MedicationDoseInfo.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/MedicationItem.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ServiceAppointRecord.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ServiceSLTDCommonVO.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ServiceSLTDContactsResDTO.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ServiceSLTDDeptReqVO.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ServiceSLTDDiagnosisResDTO.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospReqVO.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospResDTO.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ServiceSLTDMedicalRecordResDTO.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ThiedInhospCheckInfo.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ThiedInhospInfo.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ThiedOutHospCheckInfo.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/domain/ThiedOutHospInfo.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/mapper/HNGatherPatArchiveMapper.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/mapper/Icd10Mapper.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/mapper/MedicationDoseInfoMapper.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/mapper/MedicationItemMapper.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/mapper/ServiceAppointRecordMapper.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/mapper/ServiceSubtaskRecordMapper.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/mapper/SysDept2Mapper.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/mapper/SysUser2Mapper.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/mapper/SysUserDeptMapper.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/mapper/SysUserRole2Mapper.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/IHNGatherPatArchiveService.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/IIcd10Service.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/IIvrTaskVisitResultService.java
@@ -51,12 +51,4 @@ * @return ç»æ */ public int deleteIvrTaskVisitResultByIds(Long[] ids); /** * å é¤ä»»å¡éè®¿ç»æä¿¡æ¯ * * @param id ä»»å¡éè®¿ç»æä¸»é® * @return ç»æ */ public int deleteIvrTaskVisitResultById(Long id); } smartor/src/main/java/com/smartor/service/IMedicationDoseInfoService.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/IMedicationItemService.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
@@ -1,16 +1,10 @@ package com.smartor.service; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.service.dto.PatMedReq; import com.ruoyi.common.core.service.dto.PatMedRes; import com.smartor.domain.*; import com.ruoyi.inhospvisit.domain.PatMedInhospDTO; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; import java.util.Map; import com.ruoyi.inhospvisit.domain.PatMedInhospVO; import com.ruoyi.inhospvisit.domain.PatMedInhosp; import com.ruoyi.common.core.domain.entity.PatArchive; @@ -23,13 +17,6 @@ * @date 2023-03-04 */ public interface IPatMedInhospService { /** * æ¥è¯¢æ£è ä½é¢è®°å½ * * @param inhospid æ£è ä½é¢è®°å½ä¸»é® * @return æ£è ä½é¢è®°å½ */ public PatMedInhosp selectPatMedInhospByInhospid(Long inhospid); public List<PatMedInhosp> selectPatMedInhosp(PatMedInhosp patMedInhosp); @@ -53,8 +40,6 @@ public PatMedInhosp getDeptCodeByPatId(PatMedInhosp patMedInhosp); public PatMedRes selectPatMedInhospListCount(PatMedReq patMedReq); /** * æ°å¢æ£è ä½é¢è®°å½ * @@ -72,40 +57,6 @@ public int updatePatMedInhosp(PatMedInhosp patMedInhosp); /** * æ¹éå 餿£è ä½é¢è®°å½ * * @param inhospids éè¦å é¤çæ£è ä½é¢è®°å½ä¸»é®éå * @return ç»æ */ public int deletePatMedInhospByInhospids(Long[] inhospids); /** * å 餿£è ä½é¢è®°å½ä¿¡æ¯ * * @param inhospid æ£è ä½é¢è®°å½ä¸»é® * @return ç»æ */ public int deletePatMedInhospByInhospid(Long inhospid); public int deletePatMedInhospByInhospno(String inhospno); /** * å¤çä»his忥çåºé¢æ°æ® * * @param * @return ç»æ */ public int dealOutHospInfo(String config); /** * å¤çä»his忥çåºé¢æ°æ® ä»»å¡ç»çæ * * @param * @return ç»æ */ public int dealOutHospInfoBySchedule(String config); /** * è·ååºé¢ï¼ä½é¢ï¼é¨è¯æå¡äººæ¬¡ * * @param patMedReq @@ -121,65 +72,5 @@ */ public List<PatMedInhosp> getDocAndPat(PatMedInhosp patMedInhosp); /** * å¤çä»hisåæ¥çææ¯ä¿¡æ¯ * * @param * @return ç»æ */ public void addOperationSubTask(String config); public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type); // ========================================================================== // åºå ¥é¢é访模ååï¼ç¬¬ä¸æ¹ï¼ââ ä¾ VisitTaskCreateApiBridge / OtherVisitApiBridge å¤ç¨çè¿æ¸¡å ¥å£ // // â ï¸ è¿ 3 ä¸ªæ¹æ³æ¯<b>廿æ°å¢</b>çè¿æ¸¡æå ¥å£ï¼çº¯è½¬åï¼é¶ä¸å¡é»è¾ï¼ï¼ // 䏿¯è¯¯å ãä¹ä¸è¦"顺æå æ"ï¼ // · runOperationVisit(config) ââ 让 OtherVisitApiBridge æä¸ª"é访è½å"å½¢ç¶çå ¥å£ // · persistSubtask(subtask) ââ 让 VisitTaskCreateApiBridge æå¯ä¸çè½åºå ¥å£ // · selectPendingDeptPatientsForVisit() ââ 让 PatMedInhospController åå°æ°å ¥å£å // ä»è½æå表交ç»é¢å¤/é¨è¯åå¹¶ // ç± sql/_probe/verify_step16_service_restore.py ä¸ audit_worktree_changes.py ç»è®°æå ³ã // ========================================================================== /** * ãè¿æ¸¡æç¨ãææ¯éè®¿æ«æã * <p> * ä¸ {@link #addOperationSubTask(String)} <b>å®å ¨çä»·</b>ï¼æ¬æ¹æ³å°±æ¯è½¬åå°å®ï¼ï¼ * åå¨çå¯ä¸çç±æ¯ç» {@code OtherVisitApiBridge} ä¸ä¸ª"çèµ·æ¥å±äºé访è½å"çå ¥å£ï¼ * è®©ææ¯éè®¿å°æ¥æ¬å» {@code ruoyi-othervisit} æ¶åªæ¢å®ç°æ¹ã * <p> * 注æï¼{@code addOperationSubTask} <b>ä¸è½å </b> ââ å®è¢« * {@code PatMedInhospController#addOperationSubTask}ï¼URL ä¸åï¼ç´æ¥è°ç¨ã * * @param config {@code sys_config: visit.early.day} * @return å¤ççææ¯è®°å½æ° */ int runOperationVisit(String config); /** * ãè¿æ¸¡æç¨ãæãç§å®¤ç»´åº¦æªå¤ççå¨é¢æ£è ãåè¡¨è¯»åºæ¥ã * <p> * ä¾ {@code PatMedInhospController#dealOutHospInfo}ï¼URL ä¸åï¼å¨åæ¢å°æ°å ¥å£å * ä»è½æåè¡¨äº¤ç» {@code IPatMedOuthospService} å"é¢å¤é¨è¯ + å¨é¢"åå¹¶ã * <p> * æ¡ä»¶ä¸å {@code dealOutHospInfo} çç¬¬ä¸æ®µæ¥è¯¢<b>å®å ¨ä¸è´</b>ï¼ * {@code deptcheck_flag='0'} + {@code inhospstate='1'} + {@code fuflag='1'}ã * å®ç°æ¯çº¯è½¬åï¼{@code selectPatMedInhospList}ï¼ï¼é¶é»è¾æ¹å¨ã * * @return ç§å®¤ç»´åº¦æªå¤ççå¨é¢æ£è */ List<PatMedInhosp> selectPendingDeptPatientsForVisit(); /** * ãè¿æ¸¡æç¨ãæä¸æ¡å·²ç»è£ 好çåä»»å¡è½åºã * <p> * åç¬æ½åºæ¥ççç±ï¼è®© {@code VisitTaskCreateApiBridge} æä¸ä¸ªå¯æ§çåå ¥å£ï¼ * 便äº"æ¬è¿ååéè¡çä»·"çæ¢éæ¯å¯¹ï¼å°æ¥ãé访任å¡å建模åãæ¥ç®¡æ¶æ¿æ¢å®ç°æ¹ã * * @param serviceSubtask å·²ç»è£ 好çåä»»å¡ï¼è°ç¨æ¹è´è´£å¡«å ¨åæ®µï¼ * @return true = è½åºæå */ boolean persistSubtask(ServiceSubtask serviceSubtask); } smartor/src/main/java/com/smartor/service/IServiceAppointRecordService.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/IServiceSLTDHealthcareRecordService.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/IServiceSubtaskRecordService.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/IServiceTaskRuleService.java
@@ -50,12 +50,4 @@ * @return ç»æ */ public int deleteServiceTaskRuleByIds(Long[] ids); /** * å é¤ä»»å¡æ§è¡è§åä¿¡æ¯ * * @param id 任塿§è¡è§åä¸»é® * @return ç»æ */ public int deleteServiceTaskRuleById(Long id); } smartor/src/main/java/com/smartor/service/ISvyLibTemplateScriptService.java
@@ -54,15 +54,6 @@ * @return ç»æ */ public int deleteSvyLibTemplateScriptByTopicids(Long[] topicids); /** * å 餿¨¡æ¿é®å·é¢ç®ä¿¡æ¯ * * @param topicid 模æ¿é®å·é¢ç®ä¸»é® * @return ç»æ */ public int deleteSvyLibTemplateScriptByTopicid(Long topicid); /** * æ ¹æ®é®é¢idç»è®¡é项 * smartor/src/main/java/com/smartor/service/IXHGatherPatArchiveService.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/PersonWorkbenchService.java
@@ -1,7 +1,7 @@ package com.smartor.service; import com.ruoyi.template.domain.BaseTag; import com.smartor.domain.PerSonWorkbenchDto; import com.ruoyi.patarchive.domain.PerSonWorkbenchDto; import java.util.List; smartor/src/main/java/com/smartor/service/impl/HNGatherPatArchiveServiceImpl.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/impl/Icd10ServiceImpl.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/impl/IvrTaskVisitResultServiceImpl.java
@@ -77,14 +77,4 @@ return ivrTaskVisitResultMapper.deleteIvrTaskVisitResultByIds(ids); } /** * å é¤ä»»å¡éè®¿ç»æä¿¡æ¯ * * @param id ä»»å¡éè®¿ç»æä¸»é® * @return ç»æ */ @Override public int deleteIvrTaskVisitResultById(Long id) { return ivrTaskVisitResultMapper.deleteIvrTaskVisitResultById(id); } } smartor/src/main/java/com/smartor/service/impl/MedicationDoseInfoServiceImpl.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/impl/MedicationItemServiceImpl.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -5,13 +5,10 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.service.IConfigService; import com.ruoyi.common.core.service.dto.PatMedReq; import com.ruoyi.common.core.service.dto.PatMedRes; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DtoConversionUtils; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.smartor.domain.*; import com.ruoyi.inhospvisit.domain.PatMedInhospDTO; @@ -24,12 +21,9 @@ import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import java.io.IOException; import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; import com.ruoyi.othervisit.domain.PatMedOperationItem; import com.ruoyi.inhospvisit.domain.PatMedInhospVO; import com.ruoyi.inhospvisit.domain.PatMedInhosp; @@ -39,7 +33,6 @@ import com.ruoyi.task.domain.ServiceTask; import com.ruoyi.task.domain.ServiceTaskdept; import com.ruoyi.task.domain.ServiceTaskdiag; import com.ruoyi.task.domain.ServiceTaskmedical; import com.ruoyi.task.domain.ServiceTaskoper; import com.ruoyi.task.domain.ServiceTaskRule; import com.ruoyi.task.domain.ServiceTaskSchedule; @@ -48,13 +41,16 @@ import com.ruoyi.task.mapper.ServiceTaskdeptMapper; import com.ruoyi.task.mapper.ServiceTaskdiagMapper; import com.ruoyi.task.mapper.ServiceTaskMapper; import com.ruoyi.task.mapper.ServiceTaskmedicalMapper; import com.ruoyi.task.mapper.ServiceTaskoperMapper; import com.ruoyi.task.mapper.ServiceTaskRuleMapper; import com.ruoyi.task.mapper.ServiceTaskScheduleDetailMapper; import com.ruoyi.task.mapper.ServiceTaskScheduleMapper; import com.ruoyi.task.domain.ServiceSubtaskPreachform; import com.ruoyi.task.common.ScheduleSubtaskBuilder; import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper; import com.ruoyi.patarchive.domain.PatArchiveImport; import com.ruoyi.patarchive.mapper.PatArchiveImportMapper; import com.ruoyi.patarchive.mapper.PatArchiveMapper; /** * æ£è ä½é¢è®°å½Serviceä¸å¡å±å¤ç * @@ -64,6 +60,7 @@ @Slf4j @Service public class PatMedInhospServiceImpl implements IPatMedInhospService { @Autowired private InhospVisitFacade inhospVisitFacade; @@ -89,14 +86,10 @@ @Autowired private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper; @Autowired private ServiceTaskmedicalMapper serviceTaskmedicalMapper; @Autowired private ServiceTaskRuleMapper serviceTaskRuleMapper; @Value("${spring.profiles.active}") private String active; @Autowired private IConfigService iSysConfigService; @Autowired private ServiceTaskScheduleMapper serviceTaskScheduleMapper; @@ -104,18 +97,6 @@ private ScheduleSubtaskBuilder scheduleSubtaskBuilder; @Autowired private ServiceTaskScheduleDetailMapper serviceTaskScheduleDetailMapper; /** * æ¥è¯¢æ£è ä½é¢è®°å½ * * @param inhospid æ£è ä½é¢è®°å½ä¸»é® * @return æ£è ä½é¢è®°å½ */ @Override public PatMedInhosp selectPatMedInhospByInhospid(Long inhospid) { return inhospVisitFacade.selectPatMedInhospByInhospid(inhospid); } @Override public List<PatMedInhosp> selectPatMedInhosp(PatMedInhosp patMedInhosp) { @@ -267,20 +248,6 @@ } /** * æ¥è¯¢åºå ¥é¢äººæ¬¡ * * @param patMedReq * @return */ @Override public PatMedRes selectPatMedInhospListCount(PatMedReq patMedReq) { PatMedRes patMedRes = null; // è·åå½åç»é人çé¨é¨æé patMedRes = inhospVisitFacade.selectPatMedInhospCount(patMedReq); return patMedRes; } /** * æ°å¢æ£è ä½é¢è®°å½ * * @param patMedInhosp æ£è ä½é¢è®°å½ @@ -304,333 +271,6 @@ patMedInhosp.setUpdateTime(DateUtils.getNowDate()); return inhospVisitFacade.updatePatMedInhosp(patMedInhosp); } /** * æ¹éå 餿£è ä½é¢è®°å½ * * @param inhospids éè¦å é¤çæ£è ä½é¢è®°å½ä¸»é® * @return ç»æ */ @Override public int deletePatMedInhospByInhospids(Long[] inhospids) { return inhospVisitFacade.deletePatMedInhospByInhospids(inhospids); } /** * å 餿£è ä½é¢è®°å½ä¿¡æ¯ * * @param inhospid æ£è ä½é¢è®°å½ä¸»é® * @return ç»æ */ @Override public int deletePatMedInhospByInhospid(Long inhospid) { return inhospVisitFacade.deletePatMedInhospByInhospid(inhospid); } /** * å 餿£è ä½é¢è®°å½ä¿¡æ¯ * * @param inhospno æ£è ä½é¢ç¼ç * @return ç»æ */ @Override public int deletePatMedInhospByInhospno(String inhospno) { return inhospVisitFacade.deletePatMedInhospByInhospno(inhospno); } @Override public int dealOutHospInfo(String config) { PatMedInhosp pmks = new PatMedInhosp(); pmks.setDeptcheckFlag("0"); pmks.setInhospstate("1"); pmks.setFuflag("1"); List<PatMedInhosp> patMedInhosps = inhospVisitFacade.selectPatMedInhospList(pmks); //1.å ¥é¢å®£æ String helibrarySwitch = iSysConfigService.selectConfigByKey("in.helibrary.switch"); if (StringUtils.isNotEmpty(helibrarySwitch) && "2".equals(helibrarySwitch)) { //1.1 ç§å®¤ for (PatMedInhosp patMedInhosp1 : patMedInhosps) { //è·åæ£è ä¿¡æ¯ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid()); if (Objects.isNull(patArchive)) { patMedInhosp1.setInDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason("æ£è åºæ¬ä¿¡æ¯ä¸ºç©º"); inhospVisitFacade.updatePatMedInhosp(patMedInhosp1); continue; } try { //æ ¹æ®æ£è æå¨ç§å®¤ï¼è·å该ç§å®¤çå ¥é¢é¿æå®£æä»»å¡ ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); serviceTaskdept.setLongtask(1L); serviceTaskdept.setDeptCode(patMedInhosp1.getDeptcode()); serviceTaskdept.setDeptType("1"); serviceTaskdept.setServiceType("17"); serviceTaskdept.setOrgid(patMedInhosp1.getOrgid()); List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept); //妿é¨é¨æ¨¡æ¿ä¸ºç©ºï¼å°deptIsNull设置为trueï¼ if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) { PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid()); patMedInhosp1.setInDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + "该æ£è æå¨ç§å®¤æªé ç½®å ¥é¢é¿æå®£æä»»å¡;" : "该æ£è æå¨ç§å®¤æªé ç½®å ¥é¢é¿æå®£æä»»å¡;"); inhospVisitFacade.updatePatMedInhosp(patMedInhosp1); } else { for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) { writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 4, config); } } } catch (Exception e) { log.error("人åå ¥é¢ç§å®¤å¤çåºå¼å¸¸äºï¼{}", e.getMessage()); patMedInhosp1.setInDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason("人åå ¥é¢ç§å®¤å¤çåºå¼å¸¸äº"); inhospVisitFacade.updatePatMedInhosp(patMedInhosp1); } } //1.2 ç åº pmks.setInDeptcheckFlag(null); pmks.setInWardcheckFlag("0"); pmks.setDeptcheckFlag(null); List<PatMedInhosp> inPatMedInhospsWard = inhospVisitFacade.selectPatMedInhospList(pmks); for (PatMedInhosp patMedInhosp1 : inPatMedInhospsWard) { //è·åæ£è ä¿¡æ¯ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid()); if (Objects.isNull(patArchive)) { patMedInhosp1.setInDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason("æ£è åºæ¬ä¿¡æ¯ä¸ºç©º"); inhospVisitFacade.updatePatMedInhosp(patMedInhosp1); continue; } //æ ¹æ®æ£è æå¨ç åºï¼è·å该ç åºçå ¥é¢é¿æå®£æä»»å¡ï¼ä¼åºç°ä¸ä¸ªé®é¢ï¼ç§å®¤åç åºåçåä¸ä¸ªæ¨¡æ¿ï¼ ServiceTaskdept serviceTaskWard = new ServiceTaskdept(); serviceTaskWard.setLongtask(1L); serviceTaskWard.setDeptCode(patMedInhosp1.getHospitaldistrictcode()); serviceTaskWard.setDeptType("2"); serviceTaskWard.setServiceType("17"); serviceTaskWard.setOrgid(patMedInhosp1.getOrgid()); List<ServiceTaskdept> serviceTaskWardList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskWard); //妿é¨é¨æ¨¡æ¿ä¸ºç©ºï¼å°deptIsNull设置为trueï¼ if (CollectionUtils.isEmpty(serviceTaskWardList) || serviceTaskWardList.size() == 0) { PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid()); patMedInhosp1.setInDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该æ£è æå¨ç åºæªé ç½®å ¥é¢é¿æå®£æä»»å¡;"); inhospVisitFacade.updatePatMedInhosp(patMedInhosp1); } else { for (ServiceTaskdept serviceTaskdept1 : serviceTaskWardList) { writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 5, config); } } } } //2.è¯å宣æ(çç«åå¾·çéæ±ï¼å ¶å®å°æ¹æ²¡æ) if (active.equals("sltd")) { for (PatMedInhosp patMedInhosp : patMedInhosps) { String medicalCode = patMedInhosp.getMedicalCode(); if (StringUtils.isNotEmpty(medicalCode)) { String[] split = medicalCode.split(","); // é²å¾¡æ§ç¼ç¨ï¼ç¡®ä¿ medicalCompany å medicalName ä¸ä¸º null String medicalCompanyStr = patMedInhosp.getMedicalCompany() != null ? patMedInhosp.getMedicalCompany() : ""; String medicalNameStr = patMedInhosp.getMedicalName() != null ? patMedInhosp.getMedicalName() : ""; String[] medicalCompanyArray = medicalCompanyStr.split(","); String[] medicalNameArray = medicalNameStr.split(","); for (int i = 0; i < split.length; i++) { ServiceTaskmedical serviceTaskmedical = new ServiceTaskmedical(); //æ¿è¯åç¼ç åå ¬å¸å»æ¥ serviceTaskmedical.setMedicalCode(split[i]); // 鲿¢ä¸æ è¶çï¼å¦ææ°ç»é¿åº¦ä¸ä¸è´ï¼åæå°é¿åº¦ if (i < medicalCompanyArray.length) { serviceTaskmedical.setMedicalCompany(medicalCompanyArray[i]); } else { log.warn("ãè¯å宣æãè¯åç¼ç {}对åºçå ¬å¸ä¿¡æ¯ä¸æ è¶çï¼medicalCompany æ°ç»é¿åº¦={}, å½åç´¢å¼={}", split[i], medicalCompanyArray.length, i); serviceTaskmedical.setMedicalName(""); // è¶çæ¶è®¾ç½®ä¸ºç©º } List<ServiceTaskmedical> serviceTaskmedicals = serviceTaskmedicalMapper.selectServiceTaskmedicalList(serviceTaskmedical); if (CollectionUtils.isNotEmpty(serviceTaskmedicals)) { PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid()); // check=trueï¼è®© writeInSubTask å é¨åå»éæ ¡éª writeInSubTask(serviceTaskmedicals.get(0).getTaskId(), true, patMedInhosp, patArchive, 0, config); } //æ¥ä¸å°çè¯åå°±æ¯ä¸éè¦å®£æçï¼å°±ä¸ç®¡äº } } } } //3.åºé¢é访 - åºäºè§åçä»»å¡çæ // è·åææéè¦å¤ççåºé¢æ£è ï¼ç§å®¤ç»´åº¦æªå¤çï¼ addSubTaskByRule(config, patMedInhosps); if (!active.equals("xh")) { addOperationSubTask(config); } //è·åæªå¤çå¨é¢çæ°æ®(妿åååºé¢çæ£è æ°æ®çåºé¢æ¶é´,å¨ä¸é¢æ¥è¯¢åºçå ¥é¢æ¶é´ä¹å,é£ä¹åçåºé¢æ£è çæ°æ®,ä¹å¾åæ,å 为åå ¥é¢äº) PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setDeptcheckFlag("0"); patMedInhosp.setInhospstate("0"); List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp); if (CollectionUtils.isNotEmpty(patMedInhospList) && patMedInhospList.size() > 0) { dealInHospInfo(patMedInhospList); } return 1; } /** * ä»»å¡ç»é访 * * @param config * @return */ public int dealOutHospInfoBySchedule(String config) { ServiceTask serviceTaskVo = new ServiceTask(); serviceTaskVo.setLongTask(1); serviceTaskVo.setAppltype("5"); List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(serviceTaskVo); if (CollectionUtils.isNotEmpty(serviceTasks)) { for (ServiceTask serviceTask : serviceTasks) { if (!ObjectUtils.isEmpty(serviceTask.getTaskid())) { ServiceTaskSchedule serviceTaskSchedule = new ServiceTaskSchedule(); ServiceTaskSchedule taskSchedule = new ServiceTaskSchedule(); taskSchedule.setTaskid(serviceTask.getTaskid()); List<ServiceTaskSchedule> serviceTaskSchedules = serviceTaskScheduleMapper.selectServiceTaskScheduleList(taskSchedule); if (CollectionUtils.isNotEmpty(serviceTaskSchedules)) { serviceTaskSchedule = serviceTaskSchedules.get(0); String deptCodes = serviceTaskSchedule.getDeptCodes(); String wardCodes = serviceTaskSchedule.getWardCodes(); String icd10Codes = serviceTaskSchedule.getIcd10Codes(); String opLevelCodes = serviceTaskSchedule.getOplevelCodes(); List<String> icd10CodeList = new ArrayList<>(); List<String> opLevelCodeList = new ArrayList<>(); List<String> deptCodeList = new ArrayList<>(); List<String> wardCodeList = new ArrayList<>(); /** * é访类å(1-ç§å®¤ï¼2-ç åºï¼3-ç¾ç 4-å ¥é¢ç§å®¤ 5-å ¥é¢ç åº 6-ææ¯) */ Integer type = 1; if (StringUtils.isNotEmpty(deptCodes)) { type = 1; deptCodeList = new ArrayList<>(Arrays.asList(deptCodes.split(","))); } if (StringUtils.isNotEmpty(wardCodes)) { type = 2; wardCodeList = new ArrayList<>(Arrays.asList(wardCodes.split(","))); } if (StringUtils.isNotEmpty(icd10Codes)) { type = 3; icd10CodeList = new ArrayList<>(Arrays.asList(icd10Codes.split(","))); } if (StringUtils.isNotEmpty(opLevelCodes)) { type = 6; opLevelCodeList = new ArrayList<>(Arrays.asList(opLevelCodes.split(","))); } //éææ¯å¤çæ¹å¼ if (type != 6) { PatMedInhosp patMedInhospVo = new PatMedInhosp(); patMedInhospVo.setScheduleCheckFlag("0"); patMedInhospVo.setInhospstate("1"); patMedInhospVo.setFuflag("1"); // patMedInhospVo.setDeptcodeList(deptCodeList); patMedInhospVo.setLeaveldeptcodes(deptCodeList); patMedInhospVo.setLeavehospitaldistrictcodes(wardCodeList); patMedInhospVo.setIcd10codeList(icd10CodeList); List<PatMedInhosp> patList = inhospVisitFacade.selectPatMedInhospList(patMedInhospVo); log.info("dealOutHospInfoBySchedule ä»»å¡ç»é访, taskid = {}, æ«ææ£è äººæ° {}", serviceTask.getTaskid(), patList.size()); for (PatMedInhosp patMedInhosp : patList) { ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail(); scheduleDetailVo.setTaskid(serviceTask.getTaskid()); scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId()); List<ServiceTaskScheduleDetail> serviceTaskScheduleDetails = serviceTaskScheduleDetailMapper.selectServiceTaskScheduleDetailList(scheduleDetailVo); PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid()); if (Objects.isNull(patArchive)) { continue; } //å°è£ serviceSubtask ServiceSubtask serviceSubtask = boxedServiceSubtask(serviceTask, patMedInhosp, patArchive, config, type); List<Map<String, Object>> preachformList = new ArrayList<>(); if (StringUtils.isNotEmpty(serviceTask.getPreachformDesc())) { try { ObjectMapper objectMapper = new ObjectMapper(); preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class); } catch (Exception e) { log.error("ä»»å¡ç»preachformDescè§£æå¤±è´¥,taskid={},inhospid={}", serviceTask.getTaskid(), patMedInhosp.getInhospid()); } } scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList); //ç½®é¦è½®çº³å ¥æ è®°ï¼é¿å 䏿¬¡æ«æéå¤çæï¼åç»è½®æ¬¡ç± rollTaskGroupCycle è´è´£ï¼ PatMedInhosp flagUpd = new PatMedInhosp(); flagUpd.setInhospid(patMedInhosp.getInhospid()); flagUpd.setScheduleCheckFlag("1"); inhospVisitFacade.updatePatMedInhosp(flagUpd); } } else { //ä»»å¡ç» - ææ¯é访 if (CollectionUtils.isNotEmpty(opLevelCodeList)) { PatMedOperationItem pmoi = new PatMedOperationItem(); //è·åéè¦åºé¢ç¾ç éè®¿ï¼æªå¤ççæ°æ® pmoi.setOpercheckFlag("0"); pmoi.setMainFlag("1"); pmoi.setDeptCodes(deptCodeList); pmoi.setWardCodes(wardCodeList); pmoi.setOpLevelCodes(opLevelCodeList); //æ¯æ¬¡æ¥è¯¢åªæ¥æå¤§çææ¯ççº§è®°å½ List<PatMedOperationItem> patMedOperationItems = otherVisitFacade.selectOperationItemListMaxLevel(pmoi); for (PatMedOperationItem patMedOperationItem : patMedOperationItems) { PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperationItem.getPatid()); if (Objects.isNull(patArchive)) { continue; } PatMedInhosp patMedInhospVo = new PatMedInhosp(); patMedInhospVo.setPatid((patMedOperationItem.getPatid())); patMedInhospVo.setScheduleCheckFlag("0"); patMedInhospVo.setInhospstate("1"); patMedInhospVo.setFuflag("1"); List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhospVo); if (CollectionUtils.isNotEmpty(patMedInhospList)) { ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail(); scheduleDetailVo.setTaskid(serviceTask.getTaskid()); scheduleDetailVo.setScheduleid(serviceTaskSchedule.getId()); List<ServiceTaskScheduleDetail> serviceTaskScheduleDetails = serviceTaskScheduleDetailMapper.selectServiceTaskScheduleDetailList(scheduleDetailVo); //å°è£ serviceSubtask ServiceSubtask serviceSubtask = boxedServiceSubtaskForOp(serviceTask, patMedInhospList.get(0), patMedOperationItem, patArchive, config); List<Map<String, Object>> preachformList = new ArrayList<>(); if (StringUtils.isNotEmpty(serviceTask.getPreachformDesc())) { try { ObjectMapper objectMapper = new ObjectMapper(); preachformList = objectMapper.readValue(serviceTask.getPreachformDesc(), List.class); } catch (Exception e) { log.error("ä»»å¡ç»(ææ¯)preachformDescè§£æå¤±è´¥,taskid={}", serviceTask.getTaskid()); } } scheduleSubtaskBuilder.buildSubtasksForPatient(serviceTask, serviceTaskSchedule, serviceTaskScheduleDetails, serviceSubtask, preachformList); //ç½®é¦è½®çº³å ¥æ è®°ï¼é¿å éå¤çæ PatMedInhosp flagUpd = new PatMedInhosp(); flagUpd.setInhospid(patMedInhospList.get(0).getInhospid()); flagUpd.setScheduleCheckFlag("1"); inhospVisitFacade.updatePatMedInhosp(flagUpd); } } } } } } } } return 1; } /** * è·ååºé¢ï¼ä½é¢ï¼é¨è¯æå¡äººæ¬¡ @@ -1376,297 +1016,6 @@ } } @Override public void addOperationSubTask(String config) { // ææ¯é访 PatMedOperationItem pmoi = new PatMedOperationItem(); //è·åéè¦åºé¢ææ¯éè®¿ï¼æªå¤ççæ°æ® if(!active.equals("hzszlyy")){ pmoi.setInhospstate("1"); } pmoi.setOpercheckFlag("0"); pmoi.setMainFlag("1"); //æ¯æ¬¡æ¥è¯¢åªæ¥æå¤§çææ¯ççº§è®°å½ List<PatMedOperationItem> patMedOperationItems = otherVisitFacade.selectOperationItemListMaxLevel(pmoi); log.info("dealOutHospInfoéè¦å¤ççåºé¢ææ¯æ£è ä¿¡æ¯ï¼{}", CollectionUtils.isNotEmpty(patMedOperationItems) ? patMedOperationItems.size() : null); for (PatMedOperationItem opItem : patMedOperationItems) { try { if (StringUtils.isEmpty(opItem.getOplevelcode())) { continue; } // æ ¹æ®æ£è çç¾ç ï¼è·å该ç¾ç çé¿æä»»å¡ List<ServiceTaskoper> serviceTaskopersDept = new ArrayList<>(); if(StringUtils.isNotEmpty(opItem.getLeaveldeptcode())){ ServiceTaskoper serviceTaskoper1 = new ServiceTaskoper(); serviceTaskoper1.setLongtask(1L); serviceTaskoper1.setOrgid(opItem.getOrgid()); serviceTaskoper1.setOplevelcode(opItem.getOplevelcode()); serviceTaskoper1.setDeptCode(opItem.getLeaveldeptcode()); serviceTaskopersDept = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper1); } List<ServiceTaskoper> serviceTaskopersWard = new ArrayList<>(); if(StringUtils.isNotEmpty(opItem.getLeavehospitaldistrictcode())){ ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper(); serviceTaskoper2.setLongtask(1L); serviceTaskoper2.setOrgid(opItem.getOrgid()); serviceTaskoper2.setOplevelcode(opItem.getOplevelcode()); serviceTaskoper2.setWardCode(opItem.getLeavehospitaldistrictcode()); serviceTaskopersWard = serviceTaskoperMapper.selectServiceTaskoperList(serviceTaskoper2); } List<ServiceTaskoper> serviceTaskopers = new ArrayList<>(); serviceTaskopers.addAll(serviceTaskopersDept); serviceTaskopers.addAll(serviceTaskopersWard); //妿é¨é¨æ¨¡æ¿ä¸ºç©ºï¼å°deptIsNull设置为trueï¼ if (CollectionUtils.isEmpty(serviceTaskopers) || serviceTaskopers.size() == 0) { PatMedOperationItem patMedOperationItem = otherVisitFacade.selectOperationItemById(opItem.getId()); patMedOperationItem.setOpercheckFlag("2"); patMedOperationItem.setLongTaskReason("ææ£çææ¯æªé ç½®é¿æä»»å¡;"); patMedOperationItem.setUpdateTime(new Date()); otherVisitFacade.updateOperationItem(patMedOperationItem); } else { for (ServiceTaskoper serviceTaskoper : serviceTaskopers) { writeInSubTaskForOp(serviceTaskoper.getTaskId(), true, opItem, config); } } } catch (Exception e) { e.printStackTrace(); log.error("äººåææ¯å¤çåºå¼å¸¸äºï¼{}", e.getMessage()); opItem.setUpdateTime(new Date()); opItem.setOpercheckFlag("2"); opItem.setLongTaskReason("äººåææ¯å¤çå¼å¸¸"); otherVisitFacade.updateOperationItem(opItem); } } } private void addIcd10SubTask(String config) { PatMedInhosp pmjb = new PatMedInhosp(); //è·åéè¦åºé¢ç¾ç éè®¿ï¼æªå¤ççæ°æ® pmjb.setDiagcheckFlag("0"); pmjb.setInhospstate("1"); pmjb.setFuflag("1"); List<PatMedInhosp> patMedInhospJBs = inhospVisitFacade.selectPatMedInhospList(pmjb); log.info("dealOutHospInfoéè¦å¤ççåºé¢ç¾ç æ£è ä¿¡æ¯ï¼{}", CollectionUtils.isNotEmpty(patMedInhospJBs) ? patMedInhospJBs.size() : null); for (PatMedInhosp patMedInhosp1 : patMedInhospJBs) { String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); } for (PatMedInhosp pmiJB : patMedInhospJBs) { //è·åæ£è ä¿¡æ¯ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiJB.getPatid()); if (Objects.isNull(patArchive)) { pmiJB.setDiagcheckFlag("2"); pmiJB.setLongTaskReason("æ£è åºæ¬ä¿¡æ¯ä¸ºç©º"); inhospVisitFacade.updatePatMedInhosp(pmiJB); continue; } try { String errorIcd = null; if (StringUtils.isEmpty(pmiJB.getLeaveicd10code())) { continue; } // æ ¹æ®æ£è çç¾ç ï¼è·å该ç¾ç çé¿æä»»å¡ ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag(); serviceTaskdiag.setLongtask(1L); // serviceTaskdiag.setServiceType("2"); if (active.equals("nhfy")) { //ååéä¸çicd10codeæéå¤ï¼æä»¥ç¨ä¸»è¯æåç§°å»æ¥è¯¢ serviceTaskdiag.setIcd10name(pmiJB.getLeavediagname()); if (StringUtils.isEmpty(pmiJB.getLeavediagname())) { errorIcd = "该æ£è ä¸»è¯æå称为空;"; } } else { serviceTaskdiag.setIcd10code(pmiJB.getLeaveicd10code()); if (StringUtils.isEmpty(pmiJB.getLeaveicd10code())) { errorIcd = "该æ£è ä¸»è¯æICD10ç 为空;"; } } serviceTaskdiag.setOrgid(pmiJB.getOrgid()); List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagListByIcdName(serviceTaskdiag); //妿é¨é¨æ¨¡æ¿ä¸ºç©ºï¼å°deptIsNull设置为trueï¼ if (StringUtils.isNotEmpty(errorIcd)) { PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(pmiJB.getInhospid()); pmiJB.setDiagcheckFlag("2"); pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd); inhospVisitFacade.updatePatMedInhosp(pmiJB); } else if (CollectionUtils.isEmpty(serviceTaskdiags)) { errorIcd = "该æ£è ææ£ç¾ç æªé ç½®é¿æä»»å¡;"; PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(pmiJB.getInhospid()); pmiJB.setDiagcheckFlag("2"); pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd); inhospVisitFacade.updatePatMedInhosp(pmiJB); } else { int flag = 0; for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) { //å¿ é¡»ç§å®¤æç åºè½å¹é ä¸,æå¯ä»¥ç¨è¿ä¸ªç¾ç å建åä»»å¡ï¼ä¸»è¦å¤çä¸ä¸ªç¾ç å¨å¤ä¸ªç åºæç§å®¤åºç°ï¼ if (StringUtils.isNotEmpty(serviceTaskdept1.getDeptCode()) && serviceTaskdept1.getDeptCode().equals(pmiJB.getLeaveldeptcode())) { writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config); flag = 1; } else if (StringUtils.isNotEmpty(serviceTaskdept1.getWardCode()) && serviceTaskdept1.getWardCode().equals(pmiJB.getLeavehospitaldistrictcode())) { writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiJB, patArchive, 3, config); flag = 1; } } if (flag == 0) { log.error("该ç§å®¤æç åºå¯¹äºæ£è ææ£ç¾ç æªé ç½®é¿æä»»å¡,æ£è ï¼{}", pmiJB.getInhospid()); errorIcd = "该ç§å®¤æç åºå¯¹äºæ£è ææ£ç¾ç æªé ç½®é¿æä»»å¡;"; PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(pmiJB.getInhospid()); pmiJB.setDiagcheckFlag("2"); pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd); inhospVisitFacade.updatePatMedInhosp(pmiJB); } } } catch (Exception e) { e.printStackTrace(); log.error("人åç¾ç å¤çåºå¼å¸¸äºï¼{}", e.getMessage()); pmiJB.setDiagcheckFlag("2"); pmiJB.setLongTaskReason("人åç¾ç å¤çå¼å¸¸"); inhospVisitFacade.updatePatMedInhosp(pmiJB); } } } private void addWardSubTask(String config) { PatMedInhosp pmbq = new PatMedInhosp(); //è·åéè¦åºé¢é¨é¨éè®¿ï¼æªå¤ççæ°æ® pmbq.setWardcheckFlag("0"); pmbq.setInhospstate("1"); pmbq.setFuflag("1"); List<PatMedInhosp> patMedInhospBQs = inhospVisitFacade.selectPatMedInhospList(pmbq); log.info("dealOutHospInfoéè¦å¤ççåºé¢ç åºæ£è ä¿¡æ¯ï¼{}", CollectionUtils.isNotEmpty(patMedInhospBQs) ? patMedInhospBQs.size() : null); for (PatMedInhosp patMedInhosp1 : patMedInhospBQs) { String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); } //ç åºæ°æ®å¤ç for (PatMedInhosp pmiBQ1 : patMedInhospBQs) { if ("1".equals(pmiBQ1.getLeavehospitaldistrictcode()) && pmiBQ1.getDiagcheckFlag().equals("1")) { pmiBQ1.setWardcheckFlag("2"); pmiBQ1.setLongTaskReason("æ ¹æ®äº¤åçæé访任å¡è§åï¼ç åºä»»å¡å¯ä»¥ä¸ç¨çæ"); inhospVisitFacade.updatePatMedInhosp(pmiBQ1); continue; } //è·åæ£è ä¿¡æ¯ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(pmiBQ1.getPatid()); if (Objects.isNull(patArchive)) { pmiBQ1.setWardcheckFlag("2"); pmiBQ1.setLongTaskReason("æ£è åºæ¬ä¿¡æ¯ä¸ºç©º"); inhospVisitFacade.updatePatMedInhosp(pmiBQ1); continue; } try { String errorreason = null; List<ServiceTaskdept> serviceTaskdeptList = null; if (!StringUtils.isEmpty(pmiBQ1.getLeavehospitaldistrictcode())) { ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); serviceTaskdept.setLongtask(1L); serviceTaskdept.setDeptCode(pmiBQ1.getLeavehospitaldistrictcode()); serviceTaskdept.setDeptType("2"); serviceTaskdept.setServiceType("2"); serviceTaskdept.setOrgid(pmiBQ1.getOrgid()); serviceTaskdeptList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept); if (CollectionUtils.isEmpty(serviceTaskdeptList)) { errorreason = "该æ£è æå¨ç åºæªé ç½®é¿æä»»å¡;"; } } else { errorreason = "离é¢ç åºä¸ºç©º;"; } //妿é¨é¨æ¨¡æ¿ä¸ºç©ºï¼å°deptIsNull设置为trueï¼ if (StringUtils.isNotEmpty(errorreason)) { PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(pmiBQ1.getInhospid()); pmiBQ1.setWardcheckFlag("2"); pmiBQ1.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorreason : errorreason); inhospVisitFacade.updatePatMedInhosp(pmiBQ1); } else { for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) { writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiBQ1, patArchive, 2, config); } } } catch (Exception e) { e.printStackTrace(); log.error("人åç åºå¤çåºå¼å¸¸äºï¼{}", e.getMessage()); pmiBQ1.setWardcheckFlag("2"); pmiBQ1.setLongTaskReason("人åç åºå¤çå¼å¸¸"); inhospVisitFacade.updatePatMedInhosp(pmiBQ1); } } } private void addDeptSubTask(String config) { //è·åéè¦åºé¢é¨é¨éè®¿ï¼æªå¤ççæ°æ® PatMedInhosp pmks = new PatMedInhosp(); pmks.setDeptcheckFlag("0"); pmks.setInhospstate("1"); pmks.setFuflag("1"); List<PatMedInhosp> patMedInhosps = inhospVisitFacade.selectPatMedInhospList(pmks); log.info("dealOutHospInfoéè¦å¤ççåºé¢é¨é¨æ£è ä¿¡æ¯ï¼{}", CollectionUtils.isNotEmpty(patMedInhosps) ? patMedInhosps.size() : null); for (PatMedInhosp patMedInhosp1 : patMedInhosps) { String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid()); patMedInhosp1.setTagname(tagname); } //ç§å®¤ for (PatMedInhosp patMedInhosp1 : patMedInhosps) { if ("1".equals(patMedInhosp1.getLeavehospitaldistrictcode()) && patMedInhosp1.getDiagcheckFlag().equals("1")) { patMedInhosp1.setDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason("æ ¹æ®äº¤åçæé访任å¡è§åï¼é¨é¨ä»»å¡å¯ä»¥ä¸ç¨çæ"); inhospVisitFacade.updatePatMedInhosp(patMedInhosp1); continue; } //è·åæ£è ä¿¡æ¯ PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid()); if (Objects.isNull(patArchive)) { patMedInhosp1.setDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason("æ£è åºæ¬ä¿¡æ¯ä¸ºç©º"); inhospVisitFacade.updatePatMedInhosp(patMedInhosp1); continue; } try { //æ ¹æ®æ£è æå¨ç§å®¤ï¼è·å该ç§å®¤çé¿æä»»å¡ ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); serviceTaskdept.setLongtask(1L); serviceTaskdept.setDeptCode(patMedInhosp1.getLeaveldeptcode()); serviceTaskdept.setDeptType("1"); serviceTaskdept.setServiceType("2"); serviceTaskdept.setOrgid(patMedInhosp1.getOrgid()); List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept); //妿é¨é¨æ¨¡æ¿ä¸ºç©ºï¼å°deptIsNull设置为trueï¼ if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) { PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid()); patMedInhosp1.setDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该æ£è æå¨ç§å®¤æªé 置离é¢é¿æä»»å¡;"); inhospVisitFacade.updatePatMedInhosp(patMedInhosp1); } else { for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) { writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config); } } } catch (Exception e) { e.printStackTrace(); log.error("人åç§å®¤å¤çåºå¼å¸¸äºï¼{}", e.getMessage()); patMedInhosp1.setDeptcheckFlag("2"); patMedInhosp1.setLongTaskReason("人åç§å®¤å¤çå¼å¸¸"); inhospVisitFacade.updatePatMedInhosp(patMedInhosp1); } } } /** * ç»ä¸æ´æ°pat_med_inhospçcheck_flag * @@ -2016,49 +1365,6 @@ inhospVisitFacade.updatePatMedInhosp(patMedInhosp1); } return generatedCount; } // ========================================================================== // åºå ¥é¢é访模ååï¼ç¬¬ä¸æ¹ï¼ââ 3 ä¸ªè¿æ¸¡æå ¥å£ï¼çº¯è½¬åï¼é¶ä¸å¡é»è¾ï¼ // // â ï¸ è¿ 3 ä¸ªæ¹æ³æ¯å»ææ°å¢çï¼ä¸æ¯è¯¯å ï¼ // è§ IPatMedInhospService éååçæ¥å£å£°ææ³¨éï¼ä»¥å // sql/_probe/verify_step16_service_restore.py ç expected_added æè¨ã // ========================================================================== /** * ãè¿æ¸¡æç¨ãææ¯éè®¿æ«æ ââ ä¸ {@link #addOperationSubTask(String)} å®å ¨çä»·ã * <p> * â ï¸ {@code addOperationSubTask} åå®ç°è¿å {@code void}ï¼æä»¥è¿éæ"å¤çäº 1 è½®"è¿å 1ï¼ * ä» ç¨äºæ¥å¿ï¼<b>è°ç¨æ¹ä¸å¾ä¾èµè¯¥è¿åå¼çä¸å¡å«ä¹</b>ã */ @Override public int runOperationVisit(String config) { addOperationSubTask(config); return 1; } /** * ãè¿æ¸¡æç¨ãç§å®¤ç»´åº¦æªå¤ççå¨é¢æ£è ã * <p> * æ¡ä»¶ä¸å {@code dealOutHospInfo} ç¬¬ä¸æ®µæ¥è¯¢éåä¸è´ï¼ * {@code deptcheckFlag="0"} + {@code inhospstate="1"} + {@code fuflag="1"}ã */ @Override public List<PatMedInhosp> selectPendingDeptPatientsForVisit() { PatMedInhosp pmks = new PatMedInhosp(); pmks.setDeptcheckFlag("0"); pmks.setInhospstate("1"); pmks.setFuflag("1"); return inhospVisitFacade.selectPatMedInhospList(pmks); } /** * ãè¿æ¸¡æç¨ãæä¸æ¡å·²ç»è£ 好çåä»»å¡è½åºï¼å {@code serviceSubtaskMapper.insertServiceSubtask}ï¼ã */ @Override public boolean persistSubtask(ServiceSubtask serviceSubtask) { return serviceSubtaskMapper.insertServiceSubtask(serviceSubtask) == 1; } } smartor/src/main/java/com/smartor/service/impl/PersonWorkbenchServiceImpl.java
@@ -2,8 +2,8 @@ import com.ruoyi.outpatientvisit.domain.PatMedOuthosp; import com.ruoyi.outpatientvisit.domain.PatMedOuthospQueryReq; import com.smartor.domain.PerSonWorkbenchDto; import com.smartor.mapper.PatArchiveOutMapper; import com.ruoyi.patarchive.domain.PerSonWorkbenchDto; import com.ruoyi.patarchive.mapper.PatArchiveOutMapper; import com.ruoyi.outpatientvisit.mapper.PatMedOuthospMapper; import com.smartor.service.PersonWorkbenchService; import org.springframework.beans.factory.annotation.Autowired; smartor/src/main/java/com/smartor/service/impl/ServicPhoneServiceImpl.java
@@ -16,7 +16,6 @@ import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.service.ISysConfigService; import com.smartor.common.FtpService; import com.ruoyi.common.utils.PhoneUtils; import com.smartor.domain.*; import com.ruoyi.template.domain.VO.HeLibraryCountVO; smartor/src/main/java/com/smartor/service/impl/ServiceAppointRecordServiceImpl.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -47,6 +47,13 @@ import com.ruoyi.task.domain.entity.ServiceSubtaskEntity; import com.ruoyi.task.domain.ServiceSubtask; import com.ruoyi.task.mapper.ServiceSubtaskMapper; import com.ruoyi.patarchive.mapper.PatArchiveMapper; import com.ruoyi.patarchive.mapper.PatArchivecontactMapper; import com.ruoyi.common.core.domain.entity.Icd10; import com.ruoyi.common.mapper.Icd10Mapper; import com.ruoyi.system.mapper.ext.SysUser2Mapper; import com.ruoyi.system.mapper.ext.SysDept2Mapper; import com.ruoyi.system.mapper.ext.SysUserDeptMapper; /** * 主é®Serviceä¸å¡å±å¤ç * smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -63,6 +63,8 @@ import com.ruoyi.task.service.IServiceSubtaskDetailTraceService; import com.ruoyi.task.domain.ServiceSubtaskPreachform; import com.ruoyi.task.service.IServiceTaskService; import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper; import com.ruoyi.patarchive.mapper.PatArchiveMapper; /** * ä»»å¡é®å·é®é¢é项Serviceä¸å¡å±å¤ç * @@ -920,7 +922,8 @@ Map<String, Object> map = new HashMap<>(); if (serviceSubTaskQueryReq.getSubId() != null) { ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubTaskQueryReq.getSubId()); if (serviceSubtask.getSendstate() == 4L) { // ä»»å¡å¯è½å·²è¢«å é¤/æ¥ä¸å°ï¼sendstate ä¹å¯è½ä¸ºç©ºï¼è¿éå¿ é¡»å¤ç©ºï¼å¦åæç®±ä¼ NPE if (serviceSubtask != null && Long.valueOf(4L).equals(serviceSubtask.getSendstate())) { log.info("æ£è åä»»å¡ID为ï¼{}ï¼ç¶æä¸ºï¼{}", serviceSubTaskQueryReq.getSubId(), serviceSubtask.getSendstate()); throw new BaseException("该任å¡ä¸æ§è¡"); } @@ -933,7 +936,7 @@ //è·å䏿¬¡çé®çç»æ ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubTaskQueryReq.getSubId()); map.put("upScriptResult", null); map.put("templateName", serviceSubtask.getTemplatename()); map.put("templateName", serviceSubtask == null ? null : serviceSubtask.getTemplatename()); map.put("upTaskName", null); if (ObjectUtils.isNotEmpty(serviceSubtask) && serviceSubtask.getUpid() != null) { Map<String, Object> scriptInfoByCondition2 = serviceTaskService.getScriptInfoByCondition(serviceSubTaskQueryReq.getTaskid(), serviceSubTaskQueryReq.getPatid(), serviceSubTaskQueryReq.getIsFinish(), serviceSubTaskQueryReq.getPatfrom(), serviceSubTaskQueryReq.getSubId()); @@ -951,7 +954,7 @@ private Map<String, Object> getMap(Map<String, Object> scriptInfoByCondition, Long subid, Long patid) { Map<String, Object> map = new HashMap<>(); if (ObjectUtils.isNotEmpty(scriptInfoByCondition) && ObjectUtils.isNotEmpty(scriptInfoByCondition.get("script"))) { if (scriptInfoByCondition.get("type").equals("1")) { if ("1".equals(scriptInfoByCondition.get("type"))) { List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOS = (List<IvrTaskTemplateScriptVO>) scriptInfoByCondition.get("script"); // æ¹éæ¥è¯¢æææç»ï¼é¿å 循ç¯ä¸éæ¡æ¥æ°æ®åºï¼N+1é®é¢ä¼åï¼ Map<Long, ServiceSubtaskDetail> detailMap = getScriptResultMap(subid, patid); @@ -964,7 +967,7 @@ } map.put("scriptResult", ivrTaskTemplateScriptVOS); map.put("taskName", scriptInfoByCondition.get("taskName")); } else if (scriptInfoByCondition.get("type").equals("2")) { } else if ("2".equals(scriptInfoByCondition.get("type"))) { List<SvyTaskTemplateScriptVO> svyTaskTemplateScriptVOList = (List) scriptInfoByCondition.get("script"); // æ¹éæ¥è¯¢æææç»ï¼é¿å 循ç¯ä¸éæ¡æ¥æ°æ®åºï¼N+1é®é¢ä¼åï¼ Map<Long, ServiceSubtaskDetail> detailMap = getScriptResultMap(subid, patid); @@ -980,7 +983,7 @@ } map.put("scriptResult", svyTaskTemplateScriptVOList); map.put("taskName", scriptInfoByCondition.get("taskName")); } else if (scriptInfoByCondition.get("type").equals("3")) { } else if ("3".equals(scriptInfoByCondition.get("type"))) { //宣æä¸éè¦æ¥ç List<HeLibrary> heLibraryList = (List) scriptInfoByCondition.get("script"); map.put("scriptResult", heLibraryList); @@ -1220,6 +1223,8 @@ //éæ»¡æåº¦æè§å¼å¸¸èªå¨å¡«å ¥ç©º subtaskDetailTrace.setMatchedtext(stt != null ? stt.getOptioncontent() : svyTaskTemplateScriptVO.getIsMydException()); subtaskDetailTrace.setAsrtext(stt != null ? stt.getOptioncontent() : svyTaskTemplateScriptVO.getIsMydException()); //è¡¥å æè¿°ï¼éäº"å ¶ä»/æçç¶"æ¶å¡«çæåï¼ä¸å¹¶å¸¦å° trace 表 subtaskDetailTrace.setAnswerps(serviceSubtaskDetail.getAnswerps()); subtaskDetailTrace.setIsMydException(svyTaskTemplateScriptVO.getIsMydException()); subtaskDetailTrace.setRecordpath(null); @@ -1513,6 +1518,8 @@ subtaskDetailTrace.setType(ivrLibaScriptAssort != null ? ivrLibaScriptAssort.getType() : null); subtaskDetailTrace.setScriptid(ivrTaskTemplateScriptVO.getId() == null ? ivrTaskTemplateScriptVO.getScriptID() : ivrTaskTemplateScriptVO.getId()); subtaskDetailTrace.setAsrtext(ivrTaskTemplateScriptVO.getIvrtext()); //è¡¥å æè¿°ä¸å¹¶å¸¦å° trace 表 subtaskDetailTrace.setAnswerps(serviceSubtaskDetail.getAnswerps()); subtaskDetailTrace.setRecordpath(null); subtaskDetailTrace.setPatid(selectServiceSubtaskList.get(0).getPatid()); JSONObject patdescJson2 = new JSONObject(); smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskRecordServiceImpl.java
ÎļþÒÑɾ³ý smartor/src/main/java/com/smartor/service/impl/ServiceTaskRuleServiceImpl.java
@@ -82,15 +82,4 @@ return serviceTaskRuleMapper.deleteServiceTaskRuleByIds(ids); } /** * å é¤ä»»å¡æ§è¡è§åä¿¡æ¯ * * @param id 任塿§è¡è§åä¸»é® * @return ç»æ */ @Override public int deleteServiceTaskRuleById(Long id) { return serviceTaskRuleMapper.deleteServiceTaskRuleById(id); } } smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateScriptServiceImpl.java
@@ -102,18 +102,6 @@ return svyLibTemplateScriptMapper.deleteSvyLibTemplateScriptByTopicids(topicids); } /** * å 餿¨¡æ¿é®å·é¢ç®ä¿¡æ¯ * * @param topicid 模æ¿é®å·é¢ç®ä¸»é® * @return ç»æ */ @Override public int deleteSvyLibTemplateScriptByTopicid(Long topicid) { return svyLibTemplateScriptMapper.deleteSvyLibTemplateScriptByTopicid(topicid); } public Map<Long, ServiceSubtaskScriptCount> countPatByScript(ServiceSubtaskCountReq serviceSubtaskCountReq) { Map<Long, ServiceSubtaskScriptCount> result = new HashMap<>(); smartor/src/main/java/com/smartor/service/impl/SvyTaskServiceImpl.java
@@ -28,6 +28,7 @@ import com.smartor.mapper.SvyTaskMapper; import com.smartor.mapper.SvyTaskSingleMapper; import com.ruoyi.common.core.domain.entity.PatArchive; import com.ruoyi.patarchive.mapper.PatArchiveMapper; /** * 综åé®å·ä»»å¡ï¼ä»»å¡ï¼Serviceä¸å¡å±å¤ç * smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java
@@ -13,7 +13,7 @@ import com.smartor.common.LyraTokenUtil; import com.smartor.domain.*; import com.smartor.mapper.BaseOrganizationMapper; import com.smartor.mapper.PatArchiveMapper; import com.ruoyi.patarchive.mapper.PatArchiveMapper; import com.smartor.service.ISvyTaskSingleService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; smartor/src/main/java/com/smartor/service/impl/XHGatherPatArchiveServiceImpl.java
ÎļþÒÑɾ³ý smartor/src/main/resources/mapper/smartor/HNGatherPatArchiveMapper.xml
ÎļþÒÑɾ³ý smartor/src/main/resources/mapper/smartor/Icd10Mapper.xml
ÎļþÒÑɾ³ý smartor/src/main/resources/mapper/smartor/MedicationDoseInfoMapper.xml
ÎļþÒÑɾ³ý smartor/src/main/resources/mapper/smartor/MedicationItemMapper.xml
ÎļþÒÑɾ³ý smartor/src/main/resources/mapper/smartor/ServiceAppointRecordMapper.xml
ÎļþÒÑɾ³ý smartor/src/main/resources/mapper/smartor/ServiceSubtaskRecordMapper.xml
ÎļþÒÑɾ³ý smartor/src/main/resources/mapper/smartor/SysDeptMapper.xml
ÎļþÒÑɾ³ý smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml
ÎļþÒÑɾ³ý smartor/src/main/resources/mapper/smartor/SysUserMapper.xml
ÎļþÒÑɾ³ý smartor/src/main/resources/mapper/smartor/SysUserRole2Mapper.xml
ÎļþÒÑɾ³ý