liusheng
9 天以前 a1e256f64930865ae2d170e333ee3f1a773c6c49
出入院模块、门急诊模块、模块模块、宣教模块
已删除498个文件
已修改74个文件
61444 ■■■■■ 文件已修改
pom.xml 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/pom.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/read/PatientInfoImportController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseDictOperationController.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseTagController.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseTagcategoryController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeCategoryController.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryAssortController.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryController.java 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryTagController.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLocallibraryController.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/Icd10AssociationController.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaExtemplateCategoryController.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaExtemplateController.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaExtemplatescriptController.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptAssortController.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptController.java 143 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptTagController.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptTargetController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptTargetoptionController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetAssortController.java 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetController.java 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetTagController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetoptionController.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateAssortController.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateController.java 175 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateScriptController.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateTagController.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateTargetoptionController.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskTemplateController.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskTemplateScriptController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskTemplateTargetoptionController.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskcallrecordController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTasksmsController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedOperationController.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedOperationItemController.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedOuthospController.java 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedOuthospProvisionalController.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/QRCodeController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeLocallibraryController.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyCategoryController.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyFinishController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyFinishoptionController.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyFinishtopicController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibExceptionController.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibResultController.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptCategoryController.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptController.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptOptionController.java 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptTagController.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateCategoryController.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateController.java 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateScriptController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateScriptWjxController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTagController.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTargetoptionController.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTargetoptionWjxController.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateWjxController.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskController.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptController.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptoptionController.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskSingleController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateController.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateScriptController.java 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateTargetoptionController.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TemplateDeptController.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/tools/BaseSmsaccountController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-ywry.yml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/MessageChannel.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/SendException.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/SendResult.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/config/AliyunSmsConfig.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/config/MessageConfigValidator.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties$MessagingInsert.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties$ShiyiSms.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties$ShiyiWechat.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties$Sms.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties$Wechat.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties$Xinhua.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/config/MtSmsConfig.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/config/RootMessageProperties.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/config/XhsmsConfig.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/AbstractSmsSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/SmsSendRequest.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/SmsSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/SmsSenderFactory.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/aliyun/AliYunSmsApi.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/aliyun/AliYunSmsSender$1.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/aliyun/AliYunSmsSender$SendSmsRequestAdapter.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/aliyun/AliYunSmsSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/hzszlyy/ShiyiSmsApi.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/hzszlyy/ShiyiSmsSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/ls/LishuiMessageConfig.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/ls/LishuiMessageConfigProvider.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/ls/LishuiSmsSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/ls/LishuiStaticConfig.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/MessagingInsertSmsApi.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/MessagingInsertSmsSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/ws/MessagingInsert.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/ws/MessagingInsertLocator.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/ws/MessagingInsertSoap12Stub.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/ws/MessagingInsertSoap_BindingStub.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/ws/MessagingInsertSoap_PortType.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/nhfy/MtSubmitSmResp.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/nhfy/MtSubmitSmUtil.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/nhfy/NhfySmsSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/shiyi/ShiyiHisSmsSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/shiyi/ShiyiSmsRequest.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/shiyi/ShiyiSmsResponse.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/shiyi/ShiyiSmsUtil.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/SltdResponseParser.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/SltdSmsSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/Hello.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/HelloResponse.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GReply.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GReplyResponse.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GReport.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GReportResponse.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GSearchNumber.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GSearchNumberResponse.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GSend.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GSendResponse.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/MessageSend.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/ObjectFactory.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSGetNumber.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSGetNumberResponse.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSGetTemplateList.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSGetTemplateListResponse.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSGetUserList.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSGetUserListResponse.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSSaveContent.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSSaveContentResponse.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSVerify.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSVerifyPrivate.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSVerifyPrivateResponse.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSVerifyResponse.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SmsService.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SmsServiceSoap.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/package-info.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/xh/XinHuaSmsSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/wechat/WechatMpConfig.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/wechat/WechatMpConfigProvider.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/wechat/WechatSendRequest.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/wechat/WechatSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/wechat/WechatSenderFactory.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/wechat/provider/hzszlyy/ShiyiMpApi.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/wechat/provider/hzszlyy/ShiyiMpSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/wechat/provider/sdk/WxMpSdkSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/wechat/provider/xh/XinHuaMpApi.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/wechat/provider/xh/XinHuaMpSender.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/wechat/provider/xh/XinHuaWXReq.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/com/ruoyi/message/wechat/support/WxMpUtils.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/message-binding-check.yml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/classes/wsdl/MessagingInsert.asmx 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/maven-archiver/pom.properties 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/ruoyi-message-3.8.5.jar 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/test-classes/com/ruoyi/message/config/MessagePropertiesBindingCheck.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/test-classes/com/ruoyi/message/config/PerSiteBindingCheck.class 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-message/target/test-classes/message-binding-check.yml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/pom.xml 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/CollectHISMapper.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ICollectHISService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/CreateDataTable.java 587 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-satisfaction/src/main/java/com/ruoyi/satisfaction/domain/row/SatisfactionIvrScriptRow.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-satisfaction/src/main/java/com/ruoyi/satisfaction/domain/row/SatisfactionSvyScriptRow.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-satisfaction/src/main/java/com/ruoyi/satisfaction/mapper/SatisfactionScriptMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/pom.xml 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/common/PinYinUtil.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/config/PhoneUtils.java 311 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/BaseDictOperation.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/BaseTag.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/BaseTagcategory.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/DTO/AiMatcherDto.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/DTO/PatMedInhospDTO.java 565 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/HeCategory.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/HeCategoryVO.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/HeLibrary.java 258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/HeLibraryAssort.java 161 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/HeLibraryAssortVO.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/HeLibraryTag.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/HeLibraryVO.java 254 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/HeLocallibrary.java 282 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/HeTaskVO.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/Icd10Association.java 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaExtemplate.java 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaExtemplateCategory.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaExtemplatescript.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaScript.java 353 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaScriptAssort.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaScriptAssortVO.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaScriptTag.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaScriptTarget.java 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaScriptTargetoption.java 234 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaScriptVO.java 357 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTarget.java 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTargetAssort.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTargetAssortVO.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTargetTag.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTargetTagVO.java 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTargetoption.java 211 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java 377 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateAssort.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateAssortVO.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java 395 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java 412 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateTag.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateTargetoption.java 272 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateVO.java 357 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTemplatetargetAssort.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrTaskTemplate.java 400 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScript.java 384 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java 414 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrTaskTemplateTargetoption.java 294 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrTaskTemplateVO.java 423 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedInhosp.java 589 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java 461 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedOperation.java 551 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java 271 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedOuthosp.java 264 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedOuthospError.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedOuthospProvisional.java 258 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedOuthospQueryReq.java 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedReq.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedRes.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/QuestionMessage.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/QuestionMessagePhone.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SchemeLocallibrary.java 437 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubTaskMYDAnswerReq.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtaskCountReq.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailVO.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtaskTemplateVO.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyCategory.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyCategoryVO.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyFinish.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyFinishoption.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyFinishtopic.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibException.java 267 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibResult.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibScript.java 213 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibScriptCategory.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibScriptCategoryVO.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibScriptOption.java 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibScriptRes.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibScriptTag.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplateCategory.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplateCategoryVO.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplateReq.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplateScript.java 346 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java 353 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptWjx.java 208 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplateTag.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplateTargetoption.java 286 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplateTargetoptionWjx.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplateVO.java 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplateWjx.java 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTopicAndOptionRes.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTopicdirection.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyTaskScript.java 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyTaskScriptoption.java 282 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java 243 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScript.java 306 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java 388 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyTaskTemplateTargetoption.java 267 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyTaskTemplateVO.java 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyTopic.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyTopicReq.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyTopicoption.java 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/TemplateDept.java 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/TemplateDeptVO.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/TemplateSmsRequest.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/BaseDictOperationMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/BaseTagMapper.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/BaseTagcategoryMapper.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/HNGatherPatArchiveMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/HeCategoryMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/HeLibraryAssortMapper.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/HeLibraryMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/HeLibraryTagMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/HeLocallibraryMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/Icd10AssociationMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaExtemplateCategoryMapper.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaExtemplateMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaExtemplatescriptMapper.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaScriptAssortMapper.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaScriptMapper.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaScriptTagMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaScriptTargetMapper.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaScriptTargetoptionMapper.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaTargetAssortMapper.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaTargetMapper.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaTargetTagMapper.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaTargetoptionMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateAssortMapper.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateScriptMapper.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateTagMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateTargetoptionMapper.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrTaskTemplateMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrTaskTemplateScriptMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/IvrTaskTemplateTargetoptionMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/PatMedOperationMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/PatMedOuthospErrorMapper.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/PatMedOuthospMapper.java 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/PatMedOuthospProvisionalMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SchemeLocallibraryMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyCategoryMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyFinishMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyFinishoptionMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyFinishtopicMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibExceptionMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibResultMapper.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibScriptCategoryMapper.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibScriptMapper.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibScriptOptionMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibScriptTagMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateCategoryMapper.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateMapper.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateScriptMapper.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateScriptWjxMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateTagMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateTargetoptionMapper.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateTargetoptionWjxMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateWjxMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyLibTopicdirectionMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyTaskScriptMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyTaskScriptoptionMapper.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateScriptMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateTargetoptionMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyTopicMapper.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/SvyTopicoptionMapper.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/TemplateDeptMapper.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/DingTalkService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IBaseDictOperationService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IBaseSmsaccountService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IBaseTagService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IBaseTagcategoryService.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IHNGatherPatArchiveService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IHeCategoryService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IHeLibraryAssortService.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IHeLibraryService.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IHeLibraryTagService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IHeLocallibraryService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIcd10AssociationService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaExtemplateCategoryService.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaExtemplateService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaExtemplatescriptService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaScriptAssortService.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaScriptService.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaScriptTagService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaScriptTargetService.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaScriptTargetoptionService.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaTargetAssortService.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaTargetService.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaTargetTagService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaTargetoptionService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaTemplateAssortService.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaTemplateScriptService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaTemplateService.java 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaTemplateTagService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrLibaTemplateTargetoptionService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrTaskTemplateScriptService.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrTaskTemplateService.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IIvrTaskTemplateTargetoptionService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatMedInhospService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatMedOperationItemService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatMedOperationService.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatMedOuthospProvisionalService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatMedOuthospService.java 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISchemeLocallibraryService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IServicePhoneService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IServiceTaskService.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyCategoryService.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyFinishService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyFinishoptionService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyFinishtopicService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibExceptionService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibResultService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibScriptCategoryService.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibScriptOptionService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibScriptService.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibScriptTagService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibTemplateCategoryService.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibTemplateScriptService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibTemplateScriptWjxService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibTemplateService.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibTemplateTagService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibTemplateTargetoptionService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibTemplateTargetoptionWjxService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibTemplateWjxService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyLibTopicdirectionService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyTaskScriptService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyTaskScriptoptionService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyTaskService.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyTaskTemplateScriptService.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyTaskTemplateService.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyTaskTemplateTargetoptionService.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ISvyTopicService.java 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/ITemplateDeptService.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/PersonWorkbenchService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/BaseDictOperationServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/BaseSmsaccountServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/BaseTagServiceImpl.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/BaseTagcategoryServiceImpl.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/HNGatherPatArchiveServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/HeCategoryServiceImpl.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/HeLibraryAssortServiceImpl.java 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/HeLibraryServiceImpl.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/HeLibraryTagServiceImpl.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/HeLocallibraryServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/Icd10AssociationServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaExtemplateCategoryServiceImpl.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaExtemplateServiceImpl.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaExtemplatescriptServiceImpl.java 122 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaScriptAssortServiceImpl.java 216 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaScriptServiceImpl.java 251 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaScriptTagServiceImpl.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaScriptTargetServiceImpl.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaScriptTargetoptionServiceImpl.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetAssortServiceImpl.java 191 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetServiceImpl.java 300 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetTagServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetoptionServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateAssortServiceImpl.java 186 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateScriptServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java 332 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateTagServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateTargetoptionServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrTaskTemplateScriptServiceImpl.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrTaskTemplateServiceImpl.java 333 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/IvrTaskTemplateTargetoptionServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedOperationItemServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedOperationServiceImpl.java 247 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospProvisionalServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java 769 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PersonVoiceServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PersonWorkbenchServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SchemeLocallibraryServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServicPhoneServiceImpl.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailTraceServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyCategoryServiceImpl.java 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyFinishServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyFinishoptionServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyFinishtopicServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibExceptionServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibResultServiceImpl.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibScriptCategoryServiceImpl.java 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibScriptOptionServiceImpl.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibScriptServiceImpl.java 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibScriptTagServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateCategoryServiceImpl.java 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateScriptServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateScriptWjxServiceImpl.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java 343 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateTagServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateTargetoptionServiceImpl.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateTargetoptionWjxServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateWjxServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyLibTopicdirectionServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyTaskScriptServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyTaskScriptoptionServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyTaskServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateScriptServiceImpl.java 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateServiceImpl.java 281 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateTargetoptionServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyTopicServiceImpl.java 313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/TemplateDeptServiceImpl.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/XHGatherPatArchiveServiceImpl.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/statemachine/InhospStateMachine.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/statemachine/InhospStateMachineService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/statemachine/handler/InhospStateHandler.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/statemachine/handler/impl/DischargeHandler.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/statemachine/handler/impl/InHospitalHandler.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/statemachine/handler/impl/PreAdmissionHandler.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/BaseDictOperationMapper.xml 280 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/BaseTagMapper.xml 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/BaseTagcategoryMapper.xml 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/HNGatherPatArchiveMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/HeCategoryMapper.xml 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/HeLibraryAssortMapper.xml 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/HeLibraryMapper.xml 265 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/HeLibraryTagMapper.xml 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/HeLocallibraryMapper.xml 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/Icd10AssociationMapper.xml 205 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaExtemplateCategoryMapper.xml 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaExtemplateMapper.xml 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaExtemplatescriptMapper.xml 182 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaScriptAssortMapper.xml 118 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaScriptMapper.xml 315 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaScriptTagMapper.xml 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetMapper.xml 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetoptionMapper.xml 242 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaTargetAssortMapper.xml 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaTargetMapper.xml 317 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaTargetTagMapper.xml 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaTargetoptionMapper.xml 224 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaTemplateAssortMapper.xml 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaTemplateMapper.xml 267 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaTemplateScriptMapper.xml 445 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaTemplateTagMapper.xml 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaTemplateTargetoptionMapper.xml 286 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrTaskTemplateMapper.xml 361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrTaskTemplateScriptMapper.xml 392 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrTaskTemplateTargetoptionMapper.xml 270 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml 1181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml 792 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatMedOperationMapper.xml 940 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatMedOuthospErrorMapper.xml 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml 536 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatMedOuthospProvisionalMapper.xml 455 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SchemeLocallibraryMapper.xml 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceSubtaskPreachformMapper.xml 307 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyCategoryMapper.xml 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyFinishMapper.xml 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyFinishoptionMapper.xml 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyFinishtopicMapper.xml 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibExceptionMapper.xml 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibResultMapper.xml 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibScriptMapper.xml 246 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibScriptOptionMapper.xml 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibScriptTagMapper.xml 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibTemplageCategoryMapper.xml 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibTemplateMapper.xml 323 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibTemplateScriptMapper.xml 451 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibTemplateScriptWjxMapper.xml 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibTemplateTagMapper.xml 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibTemplateTargetoptionMapper.xml 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibTemplateTargetoptionWjxMapper.xml 242 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibTemplateWjxMapper.xml 250 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibTopicCategoryMapper.xml 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyLibTopicdirectionMapper.xml 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyTaskScriptMapper.xml 176 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyTaskScriptoptionMapper.xml 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyTaskTemplateMapper.xml 279 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyTaskTemplateScriptMapper.xml 354 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyTaskTemplateTargetoptionMapper.xml 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyTopicMapper.xml 165 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyTopicoptionMapper.xml 237 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/TemplateDeptMapper.xml 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -199,6 +199,41 @@
                <version>${ruoyi.version}</version>
            </dependency>
            <!-- å‡ºå…¥é™¢éšè®¿æ¨¡å—(只依赖 ruoyi-common,不依赖 smartor,故无循环依赖) -->
            <dependency>
                <groupId>com.ruoyi</groupId>
                <artifactId>ruoyi-inhospvisit</artifactId>
                <version>${ruoyi.version}</version>
            </dependency>
            <!-- å®£æ•™æ¨¡å—(只依赖 ruoyi-common,不依赖 smartor/inhospvisit,故无循环依赖) -->
            <dependency>
                <groupId>com.ruoyi</groupId>
                <artifactId>ruoyi-publicity</artifactId>
                <version>${ruoyi.version}</version>
            </dependency>
            <!-- é—¨æ€¥è¯Šéšè®¿æ¨¡å—(只依赖 ruoyi-common,不依赖 smartor,故无循环依赖) -->
            <dependency>
                <groupId>com.ruoyi</groupId>
                <artifactId>ruoyi-outpatientvisit</artifactId>
                <version>${ruoyi.version}</version>
            </dependency>
            <!-- å…¶ä»–随访模块(手术随访;只依赖 ruoyi-common,不依赖 smartor) -->
            <dependency>
                <groupId>com.ruoyi</groupId>
                <artifactId>ruoyi-othervisit</artifactId>
                <version>${ruoyi.version}</version>
            </dependency>
            <!-- æ¨¡æ¿æ¨¡å—(宣教模板/语音模板/问卷模板/方案库;只依赖 ruoyi-common,不依赖 smartor) -->
            <dependency>
                <groupId>com.ruoyi</groupId>
                <artifactId>ruoyi-template</artifactId>
                <version>${ruoyi.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
@@ -211,6 +246,13 @@
        <module>ruoyi-common</module>
        <module>ruoyi-message</module>
        <module>ruoyi-satisfaction</module>
        <!-- å‡ºå…¥é™¢éšè®¿ / å®£æ•™ / é—¨æ€¥è¯Šéšè®¿ / å…¶ä»–随访 / æ¨¡æ¿ï¼šéƒ½åªä¾èµ– ruoyi-common,必须排在依赖它们的 smartor ä¹‹å‰ -->
        <module>ruoyi-inhospvisit</module>
        <module>ruoyi-publicity</module>
        <module>ruoyi-outpatientvisit</module>
        <module>ruoyi-othervisit</module>
        <module>ruoyi-template</module>
        <!-- smartor ä¾èµ– ruoyi-satisfaction / ruoyi-inhospvisit / ruoyi-publicity / ruoyi-outpatientvisit / ruoyi-othervisit / ruoyi-template,必须排最后 -->
        <module>smartor</module>
    </modules>
    <packaging>pom</packaging>
ruoyi-admin/pom.xml
@@ -97,6 +97,21 @@
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-satisfaction</artifactId>
        </dependency>
        <!--
            å‡ºå…¥é™¢éšè®¿æ¨¡å— / å®£æ•™æ¨¡å—。
            âš ï¸ è¿™é‡Œã€å¿…须显式声明】,不能只靠 smartor ä¼ é€’:
               æ»¡æ„åº¦é‚£æ¬¡å°±æ˜¯"æ ¹ pom æ³¨å†Œäº†æ¨¡å—,但没有任何模块直接依赖它",
               å¯¼è‡´æ¨¡å—根本没被打进 smartor-suifang.jar,新搬的端点全部不可达。
               æœ¬æ¨¡å—要放 Controller ä¸Ž Mapper XML,所以直接依赖。
        -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-inhospvisit</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-publicity</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/net.glxn.qrgen/javase -->
        <dependency>
            <groupId>net.glxn.qrgen</groupId>
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -39,6 +39,8 @@
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import com.ruoyi.template.domain.HeLibrary;
import com.ruoyi.template.api.TemplateFacade;
@Slf4j
@Component//监听此队列
public class RedisMqReceiver extends KeyExpirationEventMessageListener {
@@ -58,12 +60,26 @@
    @Autowired
    private IServiceOutPathService iServiceOutPathService;
    /**
     * æ¨¡æ¿æ•°æ®ä¸€å¾‹ç» ruoyi-template çš„门面取用(跨模块数据访问原则)。
     */
    @Autowired
    private TemplateFacade templateFacade;
    /**
     * å®£æ•™æ¨¡å—çš„<b>常驻门面</b>,用于判 {@code sys_config: publicity.enabled}。
     * <p>
     * âš ï¸ 2025 ä¿®å¤ï¼šæœ¬ç±»åŽŸæœ¬<b>完全没读宣教开关</b> â€”—
     * {@code tsakHandle} çš„公众号 {@code type == 3} åˆ†æ”¯ï¼ˆL518「//宣教」)
     * ç…§å¸¸æ‹¼å®£æ•™é“¾æŽ¥å¹¶å‘送,所以关掉 {@code publicity.enabled} ä¹Ÿæ‹¦ä¸ä½è¿™æ¡è·¯ã€‚
     */
    @Autowired
    private com.ruoyi.publicity.api.PublicityFacade publicityFacade;
    @Autowired
    private ServiceSubtaskMapper ivrTaskcallMapper;
    @Autowired
    private HeLibraryMapper heLibraryMapper;
    @Autowired
    private ServiceTaskMapper ivrTaskMapper;
@@ -208,6 +224,22 @@
                continue;
            }
            String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(sendPreachform));
            // âš ï¸ 2025 ä¿®å¤ï¼ˆå®£æ•™å¼€å…³å¤±æ•ˆï¼‰ï¼štype == 3 æ˜¯**宣教/通知**(纯发送、无作答,
            // è§ setFailPreachForm é‡Œã€Œå®£æ•™æˆ–通知…直接改成 9」的判定),整条派发的所有通道
            // ï¼ˆç”µè¯/短信/公众号/人工)发的都是宣教内容。所以关掉 publicity.enabled æ—¶
            // åº”当**一个通道都不发**,而不是只拦其中一段。
            //
            // âš ï¸ åˆ»æ„**不推进 subtask çŠ¶æ€ã€ä¹Ÿä¸è®°å¤±è´¥**:关闭是"暂时不发",
            // ä¸æ˜¯"这个患者不需要宣教"。若标成失败/不需要,开关恢复后这条宣教就永远丢了。
            // ä¿æŒ sendstate=2 ä¸åŠ¨ï¼Œå¼€å…³æ‰“å¼€åŽä¸‹ä¸€æ¬¡æ´¾å‘ä¼šç…§å¸¸å‘å‡ºã€‚
            // ï¼ˆæœ¬æ–¹æ³•的调用方 onMessage å¤„理完即删 Redis æ¶ˆæ¯ã€ä¸é‡æŠ•,所以不会造成重投风暴。)
            if (type != null && type == 3 && !publicityFacade.isEnabled()) {
                log.warn("【宣教】模块未启用(参数配置 publicity.enabled=false),跳过宣教发送。subtaskId={}, patid={}",
                        serviceSubtask.getId(), serviceSubtask.getPatid());
                continue;
            }
            if (descByCode.equals("电话")) {
                try {
                    ServiceTask ivrTask = ivrTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
@@ -379,7 +411,10 @@
                        String url = "";
                        String format = String.format("%03X", serviceOutPath.getId());
                        //需要通过模板ID去判断要发的内容是宣教还是通知
                        HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid());
                        // âš ï¸ ä¸Ž RyTask åŒå£å¾„:**刻意不**为 TemplateModuleDisabledException é™çº§ â€”—
                        // æ¨¡æ¿æ¨¡å—关闭时宣教内容取不到、短信确实发不出去,外层 try-catch å¦‚实记失败
                        // å¹¶èµ°æ—¢æœ‰çš„通道升级机制。硬记成功等于用假记录掩盖"没发出去"。
                        HeLibrary heLibrary = templateFacade.findHeLibraryById(serviceSubtask.getLibtemplateid());
                        if (heLibrary.getHetype().equals("1")) {
                            sendMagParam.setPhone(serviceSubtask.getPhone());
                            url = StringUtils.isNotEmpty(req_path) ? ip + ":" + req_path + "/xj?p=" + format : ip + "/xj?p=" + format;
@@ -523,7 +558,7 @@
                        String format = String.format("%03X", serviceOutPath.getId());
                        //需要通过模板ID去判断要发的内容是宣教还是通知
//                        HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid());
//                        HeLibrary heLibrary = templateFacade.findHeLibraryById(serviceSubtask.getLibtemplateid());
//                        if (heLibrary.getHetype().equals("1")) {
//                            sendMagParam.setPhone(serviceSubtask.getPhone());
//                            sendMagParam.setUrl(ip + ":" + req_path + "/xj?p=" + format);
ruoyi-admin/src/main/java/com/ruoyi/web/controller/hanler/ChatWebSocketHandler.java
@@ -6,8 +6,6 @@
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.StringUtils;
import com.smartor.domain.*;
import com.smartor.mapper.IvrLibaExtemplatescriptMapper;
import com.smartor.service.IIvrLibaTemplateService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -26,28 +24,31 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.ruoyi.template.domain.IvrLibaExtemplatescript;
import com.ruoyi.template.domain.IvrLibaTemplateScriptVO;
import com.ruoyi.template.domain.IvrLibaTemplateVO;
import com.ruoyi.template.api.TemplateFacade;
@Slf4j
@Component
public class ChatWebSocketHandler extends AbstractWebSocketHandler {
    private static RedisCache redisCache;
    private static IIvrLibaTemplateService ivrLibaTemplateService;
    /**
     * æ¨¡æ¿æ•°æ®ä¸€å¾‹ç» ruoyi-template çš„门面取用(跨模块数据访问原则)。
     * <p>
     * æ²¿ç”¨æœ¬ç±»åŽŸæœ‰çš„ã€Œstatic å­—段 + @Autowired setter」装配风格,
     * ä¸æ”¹é€ æˆæž„造注入 â€”— é¿å…å½±å“è¿™æ¡å·²æœ‰çš„装配路径。
     */
    private static TemplateFacade templateFacade;
    private static IvrLibaExtemplatescriptMapper ivrLibaExtemplatescriptMapper;
    @Autowired
    public void setTemplateFacade(TemplateFacade templateFacade) {
        ChatWebSocketHandler.templateFacade = templateFacade;
    }
    // ç”¨äºŽå­˜å‚¨ç”¨æˆ·ID和WebSocketSession的映射关系
    private static Map<String, WebSocketSession> sessions = new ConcurrentHashMap<>();
    @Autowired
    public void setIEMapper(IvrLibaExtemplatescriptMapper ivrLibaExtemplatescriptMapper) {
        ChatWebSocketHandler.ivrLibaExtemplatescriptMapper = ivrLibaExtemplatescriptMapper;
    }
    @Autowired
    public void setTodayReaderService(IIvrLibaTemplateService ivrLibaTemplateService) {
        ChatWebSocketHandler.ivrLibaTemplateService = ivrLibaTemplateService;
    }
    @Autowired
    public void setRedisCache(RedisCache redisCache) {
@@ -118,7 +119,12 @@
                //通过模板ID获取模板问题
                IvrLibaTemplateVO ivrLibaTemplateVO = new IvrLibaTemplateVO();
                ivrLibaTemplateVO.setId(socketMessage.getTemplateId());
                IvrLibaTemplateVO ivrLibaTemplateVO1 = ivrLibaTemplateService.selectInfoByCondition(ivrLibaTemplateVO);
                // âš ï¸ è¿™é‡Œ**刻意不**为 TemplateModuleDisabledException é™çº§ï¼š
                // è¯­éŸ³é—®å·æœ¬èº«å°±æ˜¯æ¨¡æ¿é©±åŠ¨çš„ â€”— æ¨¡æ¿æ¨¡å—关闭(sys_config: template.enabled=false)时
                // è¿™æ¬¡å¯¹è¯æ²¡æœ‰ä»»ä½•问题可问,继续走下去只会拿到 null ç„¶åŽåœ¨ä¸‹ä¸€è¡Œ NPE。
                // æŠ›å‡ºæ˜Žç¡®å¼‚常(提示"模板功能未启用…")远好于一个看不懂的空指针,
                // ä¸”异常会由 handleTextMessage æŠ›å‡ºã€ç”± WebSocket å®¹å™¨æ”¶å£ã€‚
                IvrLibaTemplateVO ivrLibaTemplateVO1 = templateFacade.findIvrLibaTemplateInfoByCondition(ivrLibaTemplateVO);
                redisCache.setCacheObject(userId + "ivrLibaTemplateVO1", ivrLibaTemplateVO1, 120, TimeUnit.MINUTES);
                //将查出来的问题,放到全局变量中去
                List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOList = ivrLibaTemplateVO1.getIvrLibaTemplateScriptVOList();
@@ -167,7 +173,6 @@
                }
                //获取模板信息
                IvrLibaTemplateVO ivrLibaTemplateVO1 = redisCache.getCacheObject(userId + "ivrLibaTemplateVO1");
                if (StringUtils.isEmpty(questionMessage.getContent())) {
                    //调用ivrTaskTemplateScriptVO中的slienceText(静默话术)
@@ -229,7 +234,9 @@
                        for (String str : list) {
                            list1.add(Long.valueOf(str));
                        }
                        List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = ivrLibaExtemplatescriptMapper.queryIvrLibaExtemplatescriptList(list1);
                        // âš ï¸ ä¸Žä¸Šé¢é‚£å¤„不同:本方法返回的是**列表**,空列表天然可容错
                        // ï¼ˆä¸‹é¢çš„ for å¾ªçŽ¯ä¸€æ¬¡éƒ½ä¸è¿›ï¼‰ï¼Œæ‰€ä»¥æ¨¡æ¿æ¨¡å—å…³é—­æ—¶ä¸éœ€è¦é¢å¤–é™çº§åˆ†æ”¯ã€‚
                        List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = templateFacade.findIvrLibaExtemplatescriptsByIds(list1);
                        IvrLibaExtemplatescript les = null;
                        for (IvrLibaExtemplatescript ivrLibaExtemplatescript : ivrLibaExtemplatescripts) {
                            Matcher matcher = null;
@@ -272,7 +279,6 @@
                            }
                        }
                    }
                    //通过valueType判断是什么题型(值类型(1 é€‰é¡¹  2 æ–‡æœ¬  3 æ•°å€¼ï¼‰ï¼‰
                    if (ivrLibaTemplateScriptVO.getValueType() == 2 || ivrLibaTemplateScriptVO.getValueType() == 3) {
@@ -420,7 +426,7 @@
//                        for (String str : list) {
//                            list1.add(Long.valueOf(str));
//                        }
//                        List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = ivrLibaExtemplatescriptMapper.queryIvrLibaExtemplatescriptList(list1);
//                        List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = templateFacade.findIvrLibaExtemplatescriptsByIds(list1);
//                        for (IvrLibaExtemplatescript ivrLibaExtemplatescript : ivrLibaExtemplatescripts) {
//                            Matcher matcher = null;
//                            if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex())) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/read/PatientInfoImportController.java
@@ -1,7 +1,6 @@
package com.ruoyi.web.controller.read;
import com.ruoyi.common.core.controller.BaseController;
import com.smartor.service.IBaseTagService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -25,8 +24,6 @@
@RestController
@RequestMapping("/patient/read")
public class PatientInfoImportController extends BaseController {
    @Autowired
    private IBaseTagService baseTagService;
    /**
     * æ‚£è€…基本信息
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseDictOperationController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseTagController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseTagcategoryController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeCategoryController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryAssortController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryTagController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLocallibraryController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/Icd10AssociationController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaExtemplateCategoryController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaExtemplateController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaExtemplatescriptController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptAssortController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptTagController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptTargetController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptTargetoptionController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetAssortController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetTagController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetoptionController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateAssortController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateScriptController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateTagController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateTargetoptionController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskTemplateController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskTemplateScriptController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskTemplateTargetoptionController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskcallrecordController.java
@@ -1,4 +1,4 @@
package com.smartor.controller;
package com.ruoyi.web.controller.smartor;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTasksmsController.java
@@ -1,4 +1,4 @@
package com.smartor.controller;
package com.ruoyi.web.controller.smartor;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java
@@ -1,34 +1,19 @@
package com.ruoyi.web.controller.smartor;
import com.github.pagehelper.ISelect;
import com.github.pagehelper.PageInfo;
import com.ruoyi.common.annotation.AddOrgId;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.service.ISysConfigService;
import com.smartor.domain.DTO.PatMedInhospDTO;
import com.smartor.domain.PatMedInhosp;
import com.smartor.domain.PatMedInhospVO;
import com.smartor.domain.PatMedReq;
import com.smartor.domain.PatServiceCount;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.ruoyi.common.core.service.dto.PatMedReq;
import com.smartor.service.IPatMedInhospService;
import com.smartor.service.IPatMedOuthospService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
 * æ‚£è€…住院记录Controller
@@ -49,167 +34,29 @@
    @Autowired
    private IPatMedInhospService iPatMedInhospService;
    /**
     * å‡ºå…¥é™¢éšè®¿æ¨¡å—çš„<b>常驻门面</b>(第 10 æ­¥åˆ‡æ¢ï¼‰ã€‚
     * <p>
     * âš ï¸ æ³¨å…¥é—¨é¢è€Œä¸æ˜¯å†…部实现:门面永远存在,所以即使模块被开关关掉
     * æˆ–没被打进应用,本 Controller ä¹Ÿ<b>不会启动失败</b>,只是调用降级并打 WARN。
     */
    @Autowired
    private com.ruoyi.inhospvisit.api.InhospVisitFacade inhospVisitFacade;
    @Autowired
    private ISysConfigService configService;
    @Value("${server.port}")
    private String port;
    @Value("${spring.profiles.active}")
    private String active;
    /**
     * æŸ¥è¯¢æ‚£è€…住院记录列表
     */
    @ApiOperation("查询患者住院记录列表")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:list')")
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/selectPatMedInhospList")
    public TableDataInfo selectPatMedInhosplist(@RequestBody PatMedInhosp patMedInhosp) {
        PageUtils.startPageByPost(patMedInhosp.getPageNum(), patMedInhosp.getPageSize());
        SysUser user = getLoginUser().getUser();
        patMedInhosp.setOrgid(user.getOrgid());
        List<PatMedInhosp> list = patMedInhospService.selectPatMedInhospList(patMedInhosp);
        // startPage ä¹‹åŽ PageHelper å·²ç»è‡ªåŠ¨æ‰§è¡Œè¿‡ä¸€æ¬¡ count æŸ¥è¯¢ï¼Œç›´æŽ¥å¤ç”¨ Page é‡Œçš„ total,
        // é¿å…ç”¨ PageUtils.count æŠŠå¸¦ JOIN çš„统计语句再跑一遍
        long count = new PageInfo<>(list).getTotal();
        return getDataTable2(count, list);
    }
    /**
     * æŸ¥è¯¢æ‚£è€…住院记录通过入院申请单信息
     */
    @ApiOperation("查询患者住院记录通过入院申请单信息")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:list')")
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/selectPatMedInhospByApplication")
    public TableDataInfo selectPatMedInhospByApplication(@RequestBody PatMedInhosp patMedInhosp) {
        PageUtils.startPageByPost(patMedInhosp.getPageNum(), patMedInhosp.getPageSize());
        SysUser user = getLoginUser().getUser();
        patMedInhosp.setOrgid(user.getOrgid());
        List<PatMedInhospDTO> list = patMedInhospService.selectPatMedInhospByApplication(patMedInhosp);
        long count = PageUtils.count(new ISelect() {
            @Override
            public void doSelect() {
                patMedInhospService.selectPatMedInhospByApplication(patMedInhosp);
            }
        });
        return getDataTable2(count, list);
    }
    /**
     * å‡ºé™¢ã€é—¨è¯Šäººæ•°å’Œéšè®¿é‡ç»Ÿè®¡ï¼ˆå‘¨ï¼Œæœˆï¼Œå¹´ï¼‰
     */
    @ApiOperation("出院、门诊人数和随访量统计(周,月,年)")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:list')")
    @PostMapping("/queryPersonCount")
    public TableDataInfo queryPersonCount(@RequestBody PatServiceCount patServiceCount) {
        return null;
    }
    /**
     * æŸ¥è¯¢å½“前登陆人自己(病区、部门)的患者住院记录列表
     */
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @ApiOperation("查询当前登陆人自己(病区、部门)的患者住院记录列表")
    @PostMapping("/selectPatMedInhospListByCondition")
    public TableDataInfo selectPatMedInhospListByCondition(@RequestBody PatMedInhospVO patMedInhospVO) {
        PageUtils.startPageByPost(patMedInhospVO.getPageNum(), patMedInhospVO.getPageSize());
        List<PatMedInhosp> list = null;
        if (!CollectionUtils.isEmpty(patMedInhospVO.getLeavehospitaldistrictcodes())) {
            list = patMedInhospService.selectPatMedInhospListByCondition(patMedInhospVO);
        } else if (!CollectionUtils.isEmpty(patMedInhospVO.getLeaveldeptcodes())) {
            list = patMedInhospService.selectPatMedInhospListByCondition(patMedInhospVO);
        }
        long count = PageUtils.count(new ISelect() {
            @Override
            public void doSelect() {
                patMedInhospService.selectPatMedInhospListByCondition(patMedInhospVO);
            }
        });
        return getDataTable2(count, list);
    }
    @PostMapping("/getDeptCodeByPatId")
    @ApiOperation("查询住、出院部门编码通过patId")
    public AjaxResult getDeptCodeByPatId(@RequestBody PatMedInhosp patMedInhosp) {
        return success(patMedInhospService.getDeptCodeByPatId(patMedInhosp));
    }
    /**
     * æŸ¥è¯¢å‡ºã€å…¥é™¢çœ‹ç—…人次和人数(人数分为首次服务、再次服务、专病服务)
     */
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/selectPatMedInhospListCount")
    @ApiOperation("查询出、入院看病人次和人数")
    public AjaxResult selectPatMedInhospListCount(@RequestBody PatMedReq patMedReq) {
        SysUser user = getLoginUser().getUser();
        patMedReq.setOrgid(user.getOrgid());
        return success(patMedInhospService.selectPatMedInhospListCount(patMedReq));
    }
    /**
     * å¯¼å‡ºæ‚£è€…住院记录列表
     */
    @ApiOperation("导出患者住院记录列表")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:export')")
    @Log(title = "患者住院记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatMedInhosp patMedInhosp) {
        List<PatMedInhosp> list = patMedInhospService.selectPatMedInhospList(patMedInhosp);
        ExcelUtil<PatMedInhosp> util = new ExcelUtil<PatMedInhosp>(PatMedInhosp.class);
        util.exportExcel(response, list, "患者住院记录数据");
    }
    /**
     * èŽ·å–æ‚£è€…ä½é™¢è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取患者住院记录详细信息")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:query')")
    @GetMapping(value = "/getInfo/{inhospid}")
    public AjaxResult getInfo(@PathVariable("inhospid") Long inhospid) {
        return success(patMedInhospService.selectPatMedInhospByInhospid(inhospid));
    }
    /**
     * æ–°å¢žæ‚£è€…住院记录
     */
    @ApiOperation("新增患者住院记录")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:add')")
    @Log(title = "患者住院记录", businessType = BusinessType.INSERT)
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatMedInhosp patMedInhosp) {
        SysUser user = getLoginUser().getUser();
        patMedInhosp.setOrgid(user.getOrgid());
        return toAjax(patMedInhospService.insertPatMedInhosp(patMedInhosp));
    }
    /**
     * ä¿®æ”¹æ‚£è€…住院记录
     */
    @ApiOperation("修改患者住院记录")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:edit')")
    @Log(title = "患者住院记录", businessType = BusinessType.UPDATE)
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatMedInhosp patMedInhosp) {
        return toAjax(patMedInhospService.updatePatMedInhosp(patMedInhosp));
    }
    /**
     * åˆ é™¤æ‚£è€…住院记录
     */
    @ApiOperation("删除患者住院记录")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:remove')")
    @Log(title = "患者住院记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{inhospids}")
    public AjaxResult remove(@PathVariable Long[] inhospids) {
        return toAjax(patMedInhospService.deletePatMedInhospByInhospids(inhospids));
    }
    /**
     * å„科室服务人次
     *
@@ -222,7 +69,6 @@
        return getDataTable(patMedInhospService.getDeptRanking(patMedReq));
    }
    /**
     * åŒ»æŠ¤ä¸Žæ‚£è€…关联关系
     *
@@ -232,57 +78,5 @@
    @PostMapping("/getDocAndPat")
    public TableDataInfo getDocAndPat(@RequestBody PatMedInhosp patMedInhosp) {
        return getDataTable(patMedInhospService.getDocAndPat(patMedInhosp));
    }
//    /**
//     * åŒ»æŠ¤ä¸Žæ‚£è€…关联关系
//     *
//     * @return
//     */
//    @ApiOperation("医护与患者关联关系")
//    @GetMapping("/test")
//    public void test() {
//        patMedInhospService.dealOutHospInfo();
//
//        //门诊表
//        if (visitHosp != 1) {
//            iPatMedOuthospService.dealOutpatientInfo();
//        }
//    }
    /**
     * å¤„理患者信息,进入子任务表
     */
    @ApiOperation("dealOutHospInfo")
    @PostMapping("/dealOutHospInfo")
    public void dealOutHospInfo() {
        String config = configService.selectConfigByKey("visit.early.day");
        //出院表
        iPatMedInhospService.dealOutHospInfo(config);
        //门诊表(新华的暂时不做门诊随访)
        if (!active.equals("xh")) {
            iPatMedOuthospService.dealOutpatientInfo();
        }
    }
    /**
     * å¤„理患者信息,进入子任务表
     */
    @ApiOperation("dealOutHospInfoBySchedule")
    @PostMapping("/dealOutHospInfoBySchedule")
    public void dealOutHospInfoBySchedule() {
        String config = configService.selectConfigByKey("visit.early.day");
        //出院表
        iPatMedInhospService.dealOutHospInfoBySchedule(config);
    }
    /**
     * å¤„理患者信息,进入子任务表
     */
    @ApiOperation("addOperationSubTask")
    @PostMapping("/addOperationSubTask")
    public void addOperationSubTask() {
        String config = configService.selectConfigByKey("visit.early.day");
        iPatMedInhospService.addOperationSubTask(config);
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedOperationController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedOperationItemController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedOuthospController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedOuthospProvisionalController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/QRCodeController.java
@@ -11,8 +11,7 @@
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.framework.config.ServerConfig;
import com.smartor.domain.Question;
import com.smartor.domain.SvyLibTemplate;
import freemarker.template.Configuration;
import com.ruoyi.template.domain.SvyLibTemplate;import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import io.swagger.annotations.Api;
@@ -73,7 +72,12 @@
    public String generateStaticHtml(@PathVariable("reqid") String reqid, @PathVariable("userid") String userid) throws IOException, TemplateException {
        // åˆ›å»ºFreemarker配置
        Configuration configuration = new Configuration(Configuration.VERSION_2_3_31);
        configuration.setClassForTemplateLoading(SvyLibTemplateController.class, "/template");
        // âš ï¸ åŽŸå†™æ³•æ˜¯ `setClassForTemplateLoading(SvyLibTemplateController.class, "/template")`,
        //    é‚£æ˜¯æ‹¿å®ƒå½“**类路径锚点**(模板在 ruoyi-template çš„ resources/template ä¸‹ï¼‰ã€‚
        //    è¯¥ Controller å·²éšæ¨¡æ¿æ¨¡å—化搬进 ruoyi-template,类路径根**没变**
        //    ï¼ˆåŒä¸€ä¸ª jar),所以等价地改用同为 ruoyi-template é‡Œçš„ SvyLibTemplate ä½œé”šç‚¹
        //    â€”— é¿å… smartor ä¾§åŽ»å¼•ç”¨æ¨¡å—çš„ controller åŒ…。
        configuration.setClassForTemplateLoading(SvyLibTemplate.class, "/template");
        configuration.setDefaultEncoding("UTF-8");
        try {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeLocallibraryController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -49,6 +49,7 @@
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import com.ruoyi.template.domain.VO.HeLibraryCountVO;
import static com.ruoyi.common.utils.SecurityUtils.getLoginUser;
/**
@@ -208,6 +209,10 @@
        LoginUser loginUser = getLoginUser();
        SysUser user = loginUser.getUser();
        serviceSubtaskVO.setOrgid(user.getOrgid());
        //与 /patItem æŸ¥è¯¢ä¿æŒå®Œå…¨ä¸€è‡´çš„æœºæž„+院区范围:
        //导出原先只设置 orgid,缺少 campusid,SQL é‡Œå°±ä¸ä¼šæ‹¼ and campusid = ?,
        //导致导出的数据包含其它院区的患者,出现“查询与导出数据不一致”
        serviceSubtaskVO.setCampusid(user.getCampusid());
        List<ServiceSubtaskRes> serviceSubtaskList = null;
        if (serviceSubtaskVO != null) {
           ServiceSubtaskEntity serviceSubtaskEntity = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskEntity.class);
@@ -374,7 +379,9 @@
     * éšè®¿åŽ†å²è®°å½•å¯¼å‡º
     */
    @Log(title = "随访历史记录导出", businessType = BusinessType.EXPORT)
    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
    //第 0 ä¸ªå‚数是 HttpServletResponse,注解取到它等于没生效(orgid/campusid éƒ½æ²¡æ³¨å…¥ï¼‰ï¼Œ
    //所以这里要用 paramIndex = 1 æŒ‡å‘ ServiceSubtask,与查询接口 /getSubtaskByDiagname ä¿æŒåŒä¸€èŒƒå›´
    @AddOrgId(field = "orgid", paramIndex = 1, campusField = "campusid")
    @PostMapping("/getSubtaskByDiagnameExport")
    public void getSubtaskByDiagnameExport(HttpServletResponse response, ServiceSubtask serviceSubtask) {
        LoginUser loginUser = getLoginUser();
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyCategoryController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyFinishController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyFinishoptionController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyFinishtopicController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibExceptionController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibResultController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptCategoryController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptOptionController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptTagController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateCategoryController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateScriptController.java
@@ -10,7 +10,7 @@
import com.ruoyi.common.utils.PageUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.smartor.domain.ServiceSubtaskCountReq;
import com.smartor.domain.SvyLibTemplateScript;
import com.ruoyi.template.domain.SvyLibTemplateScript;
import com.smartor.service.ISvyLibTemplateScriptService;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.collections4.CollectionUtils;
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateScriptWjxController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTagController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTargetoptionController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTargetoptionWjxController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateWjxController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskController.java
@@ -30,6 +30,7 @@
import java.util.List;
import java.util.stream.Collectors;
import com.smartor.domain.SvyTask;
/**
 * é—®å·ä»»åŠ¡ï¼ˆä»»åŠ¡ï¼‰Controller
 *
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptoptionController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskSingleController.java
@@ -14,6 +14,8 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.smartor.domain.SvyTaskSingleVO;
import com.smartor.domain.SvyTaskVO;
/**
 * å•一任务(问卷)Controller
 *
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateScriptController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateTargetoptionController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TemplateDeptController.java
ÎļþÒÑɾ³ý
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/tools/BaseSmsaccountController.java
@@ -17,7 +17,7 @@
import com.smartor.domain.BaseSmsRequest;
import com.smartor.domain.BaseSmsaccount;
import com.smartor.domain.BatchBaseSmsRequest;
import com.smartor.domain.TemplateSmsRequest;
import com.ruoyi.template.domain.TemplateSmsRequest;
import com.smartor.service.IBaseSmsaccountService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
ruoyi-admin/src/main/java/com/ruoyi/web/task/PhoneTask.java
@@ -5,7 +5,7 @@
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.smartor.config.PhoneUtils;
import com.ruoyi.common.utils.PhoneUtils;
import com.smartor.config.RobotPhoneUtils;
import com.smartor.domain.*;
import com.smartor.domain.robot.RobotData;
@@ -16,6 +16,8 @@
import java.util.*;
import java.util.concurrent.TimeUnit;
import com.ruoyi.template.domain.IvrTaskTemplateScriptVO;
import com.ruoyi.template.domain.IvrTaskTemplateVO;
public class PhoneTask implements Runnable {
    private ServiceSubtask ivrTaskSingle;
    private List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVO;
ruoyi-admin/src/main/resources/application-ywry.yml
@@ -6,9 +6,10 @@
    druid:
      # ä¸»åº“数据源
      master:
        url: jdbc:mysql://127.0.0.1:3306/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        url: jdbc:mysql://127.0.0.1:3306/smartor-suifang?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&connectTimeout=60000&socketTimeout=120000
        username: root
        password: Smartor.2023
        password: 123456
        driverClassName: com.mysql.cj.jdbc.Driver
      # ä»Žåº“数据源
      slave:
ruoyi-admin/src/main/resources/application.yml
@@ -75,7 +75,7 @@
    # å›½é™…化资源文件路径
    basename: i18n/messages
  profiles:
    active: sltd
    active: druid
  # æ–‡ä»¶ä¸Šä¼ 
  servlet:
ruoyi-message/target/classes/com/ruoyi/message/MessageChannel.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/SendException.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/SendResult.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/config/AliyunSmsConfig.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/config/MessageConfigValidator.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties$MessagingInsert.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties$ShiyiSms.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties$ShiyiWechat.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties$Sms.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties$Wechat.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties$Xinhua.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/config/MessageProperties.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/config/MtSmsConfig.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/config/RootMessageProperties.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/config/XhsmsConfig.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/AbstractSmsSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/SmsSendRequest.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/SmsSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/SmsSenderFactory.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/aliyun/AliYunSmsApi.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/aliyun/AliYunSmsSender$1.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/aliyun/AliYunSmsSender$SendSmsRequestAdapter.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/aliyun/AliYunSmsSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/hzszlyy/ShiyiSmsApi.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/hzszlyy/ShiyiSmsSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/ls/LishuiMessageConfig.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/ls/LishuiMessageConfigProvider.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/ls/LishuiSmsSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/ls/LishuiStaticConfig.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/MessagingInsertSmsApi.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/MessagingInsertSmsSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/ws/MessagingInsert.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/ws/MessagingInsertLocator.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/ws/MessagingInsertSoap12Stub.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/ws/MessagingInsertSoap_BindingStub.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/messaginginsert/ws/MessagingInsertSoap_PortType.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/nhfy/MtSubmitSmResp.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/nhfy/MtSubmitSmUtil.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/nhfy/NhfySmsSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/shiyi/ShiyiHisSmsSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/shiyi/ShiyiSmsRequest.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/shiyi/ShiyiSmsResponse.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/shiyi/ShiyiSmsUtil.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/SltdResponseParser.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/SltdSmsSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/Hello.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/HelloResponse.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GReply.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GReplyResponse.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GReport.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GReportResponse.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GSearchNumber.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GSearchNumberResponse.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GSend.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/I5GSendResponse.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/MessageSend.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/ObjectFactory.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSGetNumber.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSGetNumberResponse.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSGetTemplateList.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSGetTemplateListResponse.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSGetUserList.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSGetUserListResponse.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSSaveContent.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSSaveContentResponse.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSVerify.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSVerifyPrivate.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSVerifyPrivateResponse.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SMSVerifyResponse.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SmsService.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/SmsServiceSoap.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/sltd/ws/package-info.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/sms/provider/xh/XinHuaSmsSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/wechat/WechatMpConfig.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/wechat/WechatMpConfigProvider.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/wechat/WechatSendRequest.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/wechat/WechatSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/wechat/WechatSenderFactory.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/wechat/provider/hzszlyy/ShiyiMpApi.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/wechat/provider/hzszlyy/ShiyiMpSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/wechat/provider/sdk/WxMpSdkSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/wechat/provider/xh/XinHuaMpApi.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/wechat/provider/xh/XinHuaMpSender.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/wechat/provider/xh/XinHuaWXReq.class
Binary files differ
ruoyi-message/target/classes/com/ruoyi/message/wechat/support/WxMpUtils.class
Binary files differ
ruoyi-message/target/classes/message-binding-check.yml
ÎļþÒÑɾ³ý
ruoyi-message/target/classes/wsdl/MessagingInsert.asmx
ÎļþÒÑɾ³ý
ruoyi-message/target/maven-archiver/pom.properties
ÎļþÒÑɾ³ý
ruoyi-message/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
ÎļþÒÑɾ³ý
ruoyi-message/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
ÎļþÒÑɾ³ý
ruoyi-message/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
ÎļþÒÑɾ³ý
ruoyi-message/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
ÎļþÒÑɾ³ý
ruoyi-message/target/ruoyi-message-3.8.5.jar
Binary files differ
ruoyi-message/target/test-classes/com/ruoyi/message/config/MessagePropertiesBindingCheck.class
Binary files differ
ruoyi-message/target/test-classes/com/ruoyi/message/config/PerSiteBindingCheck.class
Binary files differ
ruoyi-message/target/test-classes/message-binding-check.yml
ÎļþÒÑɾ³ý
ruoyi-quartz/pom.xml
@@ -44,6 +44,38 @@
            <version>3.8.5</version>
        </dependency>
        <!--
            å‡ºå…¥é™¢éšè®¿æ¨¡å—:本模块的 HIS é‡‡é›†ï¼ˆCollectHISServiceImpl / CollectHISMapper)
            éœ€è¦è¯»å†™å‡ºå…¥é™¢è®°å½•,而 PatMedInhosp / PatMedInhospVO / PatMedInhospMapper
            å·²ç‹¬å æ¬å…¥è¯¥æ¨¡å—,故此处需要编译期依赖。
        -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-inhospvisit</artifactId>
        </dependency>
        <!--
            é—¨æ€¥è¯Šéšè®¿æ¨¡å—:门诊分表维护 + å­˜å‚¨è¿‡ç¨‹é‡å»ºï¼ˆåŽŸ ruoyi-quartz.util.CreateDataTable)
            å·²æ•´ä½“迁入该模块,RyTask æ”¹ä¸ºç»å…¶é—¨é¢è°ƒç”¨ï¼Œæ•…此处需要编译期依赖。
        -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-outpatientvisit</artifactId>
        </dependency>
        <!--
            å…¶ä»–随访模块(手术随访):`CollectHISMapper.xml` é‡Œå£°æ˜Žäº†
            `com.ruoyi.othervisit.domain.PatMedOperation` / `PatMedOperationItem`
            ä½œä¸º parameterType/resultType â€”— MyBatis è¿è¡Œæ—¶è¦ Class.forName å®ƒä»¬ã€‚
            åŽŸå…ˆåªé  smartor ä¼ é€’带进来(smartor ä¾èµ– othervisit),
            ä¸€æ—¦ smartor ä¸å†ä¾èµ–它,**XML ä¼šåœ¨å¯åЍ/首次调用时失败**。
            æ•…此处显式声明,让"能解析到"成为编译期事实而不是传递依赖的巧合。
        -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-othervisit</artifactId>
        </dependency>
        <!-- æ¶ˆæ¯å‘送(短信/微信公众号)模块 -->
        <dependency>
            <groupId>com.ruoyi</groupId>
ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/CollectHISMapper.java
@@ -7,6 +7,10 @@
import com.ruoyi.common.core.domain.entity.SysUserRole;
import com.ruoyi.common.enums.DataSourceType;
import com.smartor.domain.*;
import com.ruoyi.othervisit.domain.PatMedOperation;
import com.ruoyi.othervisit.domain.PatMedOperationItem;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ICollectHISService.java
@@ -3,6 +3,8 @@
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.smartor.domain.*;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import java.util.List;
ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java
@@ -1,5 +1,7 @@
package com.ruoyi.quartz.service.impl;
import com.ruoyi.othervisit.api.OtherVisitFacade;
import com.ruoyi.inhospvisit.api.InhospVisitFacade;
import com.google.gson.Gson;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
@@ -29,11 +31,22 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;
import com.ruoyi.othervisit.domain.PatMedOperationItem;
import com.ruoyi.outpatientvisit.mapper.PatMedOuthospMapper;
import com.ruoyi.othervisit.domain.PatMedOperation;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
@Slf4j
@Service
public class CollectHISServiceImpl implements ICollectHISService {
    @Autowired
    private CollectHISMapper chMapper;
    /**
     * æ‰‹æœ¯æ•°æ®ä¸€å¾‹ç» ruoyi-othervisit çš„门面取用(跨模块数据访问原则)。
     */
    @Autowired
    private OtherVisitFacade otherVisitFacade;
    @Autowired
    private SysUser2Mapper sysUser2Mapper;
@@ -57,7 +70,7 @@
    private PatMedOuthospMapper patMedOuthospMapper;
    @Autowired
    private PatMedInhospMapper patMedInhospMapper;
    private InhospVisitFacade inhospVisitFacade;
    @Autowired
    private PatArchiveMapper patArchiveMapper;
@@ -83,11 +96,7 @@
    @Value("${spring.profiles.active}")
    private String active;
    @Autowired
    private PatMedOperationMapper patMedOperationMapper;
    @Autowired
    private PatMedOperationItemMapper patMedOperationItemMapper;
    @Override
    public List<PatArchive> selectPatArchiveList(PatArchive patArchive) {
@@ -238,7 +247,7 @@
                //同步出入院
                PatMedInhosp pmi = new PatMedInhosp();
                pmi.setSerialnum(pm.getSerialnum());
                List<PatMedInhosp> patMedInhospList1 = patMedInhospMapper.selectPatMedInhospListBySerialnum(pmi);
                List<PatMedInhosp> patMedInhospList1 = inhospVisitFacade.selectPatMedInhospListBySerialnum(pmi);
                if (patMedInhospList1.size() == 0) {
                    pm.setCreateTime(new Date());
                    //市一 é™¢åŒºid对应orgid,机构id为默认的1
@@ -246,7 +255,7 @@
                        pm.setCampusid(pm.getOrgid());
                        pm.setOrgid("1");
                    }
                    count += patMedInhospMapper.insertPatMedInhosp(pm);
                    count += inhospVisitFacade.insertPatMedInhosp(pm);
                } else {
                    pm.setInhospid(patMedInhospList1.get(0).getInhospid());
                    pm.setUpdateTime(new Date());
@@ -255,7 +264,7 @@
                        pm.setCampusid(pm.getOrgid());
                        pm.setOrgid("1");
                    }
                    count += patMedInhospMapper.updatePatMedInhosp(pm);
                    count += inhospVisitFacade.updatePatMedInhosp(pm);
                }
            } catch (Exception ex) {
                log.info("同步出入院:" + ex.getMessage());
@@ -366,15 +375,15 @@
                }
                PatMedOperation oper = new PatMedOperation();
                oper.setOpreqid(operation.getOpreqid());
                List<PatMedOperation> patMedOperations1 = patMedOperationMapper.selectPatMedOperationList(oper);
                List<PatMedOperation> patMedOperations1 = otherVisitFacade.selectOperationList(oper);
                if (CollectionUtils.isNotEmpty(patMedOperations1)) {
                    operation.setId(patMedOperations1.get(0).getId());
                    operation.setUpdateTime(new Date());
                    count += patMedOperationMapper.updatePatMedOperation(operation);
                    count += otherVisitFacade.updateOperation(operation);
                    syncOperItem(operation);
                } else {
                    operation.setCreateTime(new Date());
                    count += patMedOperationMapper.insertPatMedOperation(operation);
                    count += otherVisitFacade.insertOperation(operation);
                    syncOperItem(operation);
                }
            } catch (Exception ex) {
@@ -387,7 +396,7 @@
    private Integer cancelOper(PatMedOperation oper){
        PatMedOperation operationVo = new PatMedOperation();
        operationVo.setOpreqid(oper.getOpreqid());
        List<PatMedOperation> operations = patMedOperationMapper.selectPatMedOperationList(operationVo);
        List<PatMedOperation> operations = otherVisitFacade.selectOperationList(operationVo);
        PatMedOperation operation = new PatMedOperation();
        if(CollectionUtils.isEmpty(operations)){
            return 0;
@@ -399,7 +408,7 @@
        //获取需要出院手术随访,未处理的数据
        pmoi.setOpid(operation.getId().toString());
        List<PatMedOperationItem> patMedOperationItems
                = patMedOperationItemMapper.selectOperationItemList(pmoi);
                = otherVisitFacade.selectOperationItemListByCondition(pmoi);
        List<Long> operationItemIds = patMedOperationItems.stream()
                .map(PatMedOperationItem::getId)
                .filter(Objects::nonNull)
@@ -432,8 +441,8 @@
            }
        }
        operation.setUpdateTime(new Date());
        patMedOperationMapper.updatePatMedOperation(operation);
        patMedOperationItemMapper.deleteSoftPatMedOperationItemByOpId(operation.getOpid());
        otherVisitFacade.updateOperation(operation);
        otherVisitFacade.deleteSoftOperationItemByOpId(operation.getOpid());
        return 1;
    }
@@ -448,7 +457,7 @@
            operation.setOpid(operation.getId().toString());
        }
        operation.setUpdateTime(new Date());
        patMedOperationMapper.updatePatMedOperation(operation);
        otherVisitFacade.updateOperation(operation);
        Integer count = 0;
        if(StringUtils.isNotEmpty(operation.getOpid())){
@@ -465,7 +474,7 @@
            PatMedOperationItem operItem = new PatMedOperationItem();
            operItem.setOperationid(operation.getOpreqid());
            List<PatMedOperationItem> patMedOperationItems1 = patMedOperationItemMapper.selectPatMedOperationItemList(operItem);
            List<PatMedOperationItem> patMedOperationItems1 = otherVisitFacade.selectOperationItemList(operItem);
            Map<String, List<PatMedOperationItem>> maps = ArrayListUtils.splitListsById(patMedOperationItems,
                    patMedOperationItems1, PatMedOperationItem::getOperationid);
@@ -486,12 +495,12 @@
                    operationItem.setOperationid(operation.getOpreqid());
                    operationItem.setOpercheckFlag("0");
                    operationItem.setCreateTime(new Date());
                    count += patMedOperationItemMapper.insertPatMedOperationItem(operationItem);
                    count += otherVisitFacade.insertOperationItem(operationItem);
                }
                for (PatMedOperationItem operationItem : delItems) {
                    operationItem.setUpdateTime(new Date());
                    count += patMedOperationItemMapper.deletePatMedOperationItemByOperationid(operationItem.getOperationid());
                    count += otherVisitFacade.deleteOperationItemByOperationid(operationItem.getOperationid());
                }
                for (PatMedOperationItem operationItem : editItems) {
@@ -500,7 +509,7 @@
                    operationItem.setOpid(operation.getId().toString());
                    operationItem.setOperationid(operation.getOpreqid());
                    operationItem.setUpdateTime(new Date());
                    count += patMedOperationItemMapper.updatePatMedOperationItemByOperationid(operationItem);
                    count += otherVisitFacade.updateOperationItemByOperationid(operationItem);
                }
                log.info("同步手术id={}详情信息数量, æ–°å¢ž{}条,删除{}条,修改{}条", operation.getId(), addItems.size(), delItems.size(), editItems.size());
            } catch (Exception ex) {
@@ -508,8 +517,8 @@
            }
//            try {
//                patMedOperationItemMapper.deleteHardPatMedOperationItemByOpId(operation.getOpid());
//                count += patMedOperationItemMapper.insertPatMedOperationItems(patMedOperationItems);
//                otherVisitFacade.deleteHardOperationItemByOpId(operation.getOpid());
//                count += otherVisitFacade.insertOperationItems(patMedOperationItems);
//            }catch (Exception ex) {
//                log.info("同步手术详情信息:" + ex.getMessage());
//            }
@@ -593,20 +602,20 @@
                //入院
                pm.setInhospstate("0");
                pm.setCreateTime(new Date());
                patMedInhospMapper.insertPatMedInhosp(pm);
                inhospVisitFacade.insertPatMedInhosp(pm);
            } else if (!Objects.isNull(patMedInhosp.getStartOutHospTime()) && !Objects.isNull(patMedInhosp.getEndOutHospTime())) {
                //出院
                pm.setInhospstate("1");
                pm.setUpdateTime(new Date());
                PatMedInhosp pmi = new PatMedInhosp();
                pmi.setSerialnum(pm.getSerialnum());
                List<PatMedInhosp> patMedInhospList1 = patMedInhospMapper.selectPatMedInhospList(pmi);
                List<PatMedInhosp> patMedInhospList1 = inhospVisitFacade.selectPatMedInhospList(pmi);
                if (CollectionUtils.isEmpty(patMedInhospList1)) {
                    pm.setCreateTime(new Date());
                    patMedInhospMapper.insertPatMedInhosp(pm);
                    inhospVisitFacade.insertPatMedInhosp(pm);
                } else {
                    pm.setInhospid(patMedInhospList1.get(0).getInhospid());
                    patMedInhospMapper.updatePatMedInhosp(pm);
                    inhospVisitFacade.updatePatMedInhosp(pm);
                }
            }
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -25,7 +25,6 @@
import com.ruoyi.quartz.enums.MzGatherSlotEnum;
import com.ruoyi.quartz.enums.MzGatherStatusEnum;
import com.ruoyi.quartz.service.ICollectHISService;
import com.ruoyi.quartz.util.CreateDataTable;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.mapper.SysConfigMapper;
import com.ruoyi.system.service.ISysConfigService;
@@ -60,6 +59,9 @@
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import com.ruoyi.template.domain.HeLibrary;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.ruoyi.template.api.TemplateFacade;
/**
 * å®šæ—¶ä»»åŠ¡è°ƒåº¦æµ‹è¯•
 *
@@ -71,6 +73,12 @@
    @Autowired
    private IServiceThirdDataService iServiceThirdDataService;
    /**
     * æ¨¡æ¿æ•°æ®ä¸€å¾‹ç» ruoyi-template çš„门面取用(跨模块数据访问原则)。
     */
    @Autowired
    private TemplateFacade templateFacade;
    @Autowired
    private IServiceOutPathService iServiceOutPathService;
@@ -80,11 +88,15 @@
    @Autowired
    private IPatMedInhospService iPatMedInhospService;
    /**
     * æ‰‹æœ¯éšè®¿æ¨¡å—çš„<b>常驻门面</b>(原注入 {@code IPatMedOperationService})。
     * <p>
     * æ‰‹æœ¯éšè®¿ç¼–排已整体迁入 {@code ruoyi-othervisit},本类只做调用。
     * âš ï¸ æ³¨å…¥é—¨é¢è€Œä¸æ˜¯æ¨¡å—内部实现:门面永远存在,模块未打进应用或
     * {@code othervisit.enabled=false} æ—¶åªæ˜¯é™çº§å¹¶æ‰“ WARN,不会启动失败。
     */
    @Autowired
    private IPatMedOuthospService iPatMedOuthospService;
    @Autowired
    private IPatMedOperationService iPatMedOperationService;
    private com.ruoyi.othervisit.api.OtherVisitFacade otherVisitFacade;
    @Autowired
    private IServiceSubtaskService iServiceSubtaskService;
@@ -102,9 +114,6 @@
    private SysUserImportMapper sysUserImportMapper;
    @Autowired
    private HeLibraryMapper heLibraryMapper;
    @Autowired
    private ICollectHISService ichService;
    @Autowired
@@ -115,7 +124,6 @@
    @Autowired
    private ISysUserService userService;
    @Value("${localIP}")
    private String localIP;
@@ -154,12 +162,6 @@
    IPatMedOuthospService patMedOuthospService;
    @Autowired
    ISvyTaskTemplateService svyTaskTemplateService;
    @Autowired
    IIvrTaskTemplateService iIvrTaskTemplateService;
    @Autowired
    IXHGatherPatArchiveService ixhGatherPatArchiveService;
    @Autowired
@@ -168,9 +170,48 @@
    @Autowired
    ICollectHISService icollectHis;
    /**
     * é—¨è¯Šåˆ†è¡¨ç»´æŠ¤å·²æ•´ä½“迁入 {@code ruoyi-outpatientvisit},这里只持有它的常驻门面。
     * <p>
     * âš ï¸ æ³¨å…¥é—¨é¢è€Œä¸æ˜¯å†…部实现:门面<b>永远存在</b>,即使模块没被打进应用本类也不会启动失败。
     */
    @Autowired
    CreateDataTable createDataTable;
    private com.ruoyi.outpatientvisit.api.OuthospVisitFacade outhospVisitFacade;
    /**
     * å‡ºå…¥é™¢éšè®¿æ¨¡å—çš„<b>常驻门面</b>。
     * <p>
     * âš ï¸ 2025 ä¿®å¤ï¼šæœ¬ç±»çš„ <b>3 ä¸ªéšè®¿å…¥å£åŽŸå…ˆä¸åˆ¤å¼€å…³</b> â€”—
     * å®ƒä»¬è°ƒç”¨ {@code IPatMedInhospService}(smartor é‡Œçš„遗留实现,见
     * {@code PatMedInhospServiceImpl}),而那个实现用门面<b>只是为了取数据</b>
     * ï¼ˆ{@code selectPatMedInhospList} / {@code updatePatMedInhosp}),
     * <b>从不调用门面的编排方法</b>。于是 {@code inhospvisit.enabled} /
     * {@code publicity.enabled} / {@code othervisit.enabled} å¯¹å®šæ—¶ä»»åŠ¡<b>完全失效</b>:
     * é—¨é¢çš„编排守卫({@code InhospVisitFacade#dealOutHospInfo} ç­‰ï¼‰è™½ç„¶æœ‰å®žçŽ°ã€
     * æœ‰æµ‹è¯•,却只有 HTTP æ‰‹åŠ¨è§¦å‘é‚£ä¸€æ¡è·¯èµ°å¾—åˆ°ã€‚
     * <p>
     * çŽ°åœ¨æ”¹ä¸ºä¸Žæ‰‹æœ¯éšè®¿ï¼ˆæ‰‹æœ¯éšè®¿æ—©å·²èµ° {@code otherVisitFacade},见 {@link #dealOperationInfo()})
     * å®Œå…¨åŒå½¢ï¼šå®šæ—¶ä»»åŠ¡èµ°é—¨é¢ï¼Œå¼€å…³åœ¨é—¨é¢é‡Œç»Ÿä¸€åˆ¤ã€‚æ¨¡å—å®žçŽ°å†…éƒ¨ä¼šå›žè°ƒ
     * {@code PublicityApi} / {@code OtherVisitApi},那两处各自判自己的开关,
     * æ‰€ä»¥ä¸€æ¬¡åˆ‡æ¢è®© 3 ä¸ªå¼€å…³åŒæ—¶ç”Ÿæ•ˆã€‚
     * <p>
     * âš ï¸ <b>不能注入 {@code InhospVisitApi} æŽ¥å£</b>:容器里有两个实现
     * ï¼ˆæœ¬é—¨é¢ + å†…部实现 {@code DefaultInhospVisitApi}),按类型注入会歧义;
     * è€Œä¸”只有门面才判开关。Quartz ä¾èµ–本模块、不存在反向依赖,所以直接注入门面是安全的。
     */
    @Autowired
    private com.ruoyi.inhospvisit.api.InhospVisitFacade inhospVisitFacade;
    /**
     * å®£æ•™æ¨¡å—çš„<b>常驻门面</b>,用于判 {@code sys_config: publicity.enabled}。
     * <p>
     * âš ï¸ 2025 ä¿®å¤ï¼šæœ¬ç±»åŽŸæœ¬åªåœ¨**生成**宣教时受开关管(走 inhospvisit é—¨é¢å›žè°ƒ PublicityApi),
     * ä½†**发送**宣教({@link #sfHandlle} çš„ {@code type == 3} åˆ†æ”¯ï¼‰ä»Žæ¥ä¸è¯»å®£æ•™å¼€å…³ â€”—
     * æ‰€ä»¥å…³æŽ‰ {@code publicity.enabled} åŽï¼Œå·²ç”Ÿæˆçš„宣教子任务照样通过
     * çŸ­ä¿¡/公众号/电话发出去。
     */
    @Autowired
    private com.ruoyi.publicity.api.PublicityFacade publicityFacade;
    @Value("${appid}")
    private String appid;
@@ -195,8 +236,12 @@
    @Autowired
    private SysConfigMapper sysConfigMapper;
    @Autowired
    private IServiceTaskScheduleService serviceTaskScheduleService;
    // âš ï¸ 2025 ç§»é™¤ï¼šåŽŸ `IServiceTaskScheduleService serviceTaskScheduleService` å­—段。
    //    å®ƒåœ¨æœ¬ç±»é‡Œ**只**被 rollTaskGroupCycle() ç”¨æ¥è°ƒ rollCycleTasks()(死字段检查:
    //    æ”¹å‰å…¨æ–‡ä»¶ä»… 1 å¤„使用)。该调用已切到 inhospVisitFacade.rollTaskGroupCycle(),
    //    æ‰€ä»¥å­—段连带失效并删除 â€”— ç•™ç€å®ƒä¼šè®©äººè¯¯ä»¥ä¸º smartor çš„ rollCycleTasks è¿˜æœ‰äººç”¨ã€‚
    //    smartor ä¾§çš„ ServiceTaskScheduleServiceImpl.rollCycleTasks() æœ¬èº«**保留不删**
    //    ï¼ˆå®ƒå¯èƒ½ä»è¢«çŽ°ç½‘å…¶å®ƒå…¥å£/接口调用,删除属另一件事)。
    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) {
        System.out.println(StringUtils.format("执行多参方法: å­—符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
@@ -352,7 +397,6 @@
        }
    }
    /**
     * å®šæ—¶å¤„理外链的数据
     */
@@ -379,7 +423,6 @@
        String formattedNow = now.format(formatter);
        dealHisData(formattedNow);
    }
    /**
     * HIS数据采集
@@ -1072,7 +1115,6 @@
        }
    }
    public void dealHisDataSLTD() {
        log.info("【dealHisData】开始执行HIS数据采集任务");
@@ -1130,27 +1172,50 @@
    /**
     * å¤„理患者信息,进入子任务表
     * <p>
     * âš ï¸ 2025 ä¿®å¤ï¼ˆå¼€å…³å¤±æ•ˆï¼‰ï¼šæœ¬æ–¹æ³•原走 {@code iPatMedInhospService.dealOutHospInfo(config)},
     * é‚£æ˜¯ smartor é‡Œçš„遗留实现,**不判任何模块开关** â€”— äºŽæ˜¯ï¼š
     * <ul>
     *   <li>关 {@code inhospvisit.enabled} ç…§æ ·ç”Ÿæˆå‡ºé™¢/长期随访;</li>
     *   <li>关 {@code publicity.enabled} ç…§æ ·å‘入院宣教与药品宣教;</li>
     *   <li>关 {@code othervisit.enabled} ç…§æ ·ç”Ÿæˆæ‰‹æœ¯éšè®¿ã€‚</li>
     * </ul>
     * çŽ°æ”¹èµ°æ¨¡å—é—¨é¢ï¼šé—¨é¢åˆ¤ {@code inhospvisit.enabled},模块实现内部再回调
     * {@code PublicityApi} / {@code OtherVisitApi},三处各自判自己的开关。
     */
    public void dealOutHospInfo() {
        String config = configService.selectConfigByKey("visit.early.day");
        if (port.equals("8095")) {
            //出院表
            iPatMedInhospService.dealOutHospInfo(config);
            //出院表(含入院宣教 / è¯å“å®£æ•™ / æ‰‹æœ¯éšè®¿ â€”— å‡ç”±æ¨¡å—实现回调对应模块门面)
            inhospVisitFacade.dealOutHospInfo(config);
            //门诊表(新华的暂时不做门诊随访)
            if (!active.equals("xh")) {
                iPatMedOuthospService.dealOutpatientInfo();
                // ã€é—¨æ€¥è¯Šæ¨¡å—化切换】门面内部判 sys_config: outpatientvisit.enabled(运行时热读),
                // å…³é—­æ—¶è¿”回 0 å¹¶æ‰“ WARN。
                //
                // âš ï¸ 2025 ä¿®å¤ï¼šè¿™é‡ŒåŽŸå…ˆæ˜¯ iPatMedOuthospService.dealOutpatientInfo(),
                // å®ƒç» IPatMedOuthospService â†’ PatMedOuthospServiceDelegatingImpl
                // â†’ OuthospDataFacade.dealOutpatientInfo(),而**那条路上没有开关守卫** â€”—
                // OuthospVisitFacade.dealOutpatientInfo() æ‰æ˜¯å¸¦å®ˆå«çš„入口,却全仓零调用者。
                // ç»“果是 outpatientvisit.enabled=false å¯¹å®šæ—¶ä»»åŠ¡**完全失效**。
                // çŽ°åœ¨ä¸Žä¸‹é¢ dealOperationInfo() èµ° otherVisitFacade çš„形状一致。
                outhospVisitFacade.dealOutpatientInfo();
            }
        }
    }
    /**
     * å¤„理患者信息,进入子任务表(任务组)
     * <p>
     * âš ï¸ 2025 ä¿®å¤ï¼ˆå¼€å…³å¤±æ•ˆï¼‰ï¼šåŽŸèµ° smartor é—留实现,不判开关(同 {@link #dealOutHospInfo()})。
     * çŽ°èµ°æ¨¡å—é—¨é¢ã€‚æ³¨æ„æ¨¡å—ä¾§çš„ {@code dealOutHospInfoBySchedule} å†…部仍会转发回 smartor
     * ï¼ˆ{@code OtherVisitApiBridge},见该类注释),但<b>开关在门面这一层判</b>,所以关闭时不会走到那里。
     */
    public void dealOutHospInfoBySchedule() {
        String config = configService.selectConfigByKey("visit.early.day");
        if (port.equals("8095")) {
            //出院表
            iPatMedInhospService.dealOutHospInfoBySchedule(config);
            inhospVisitFacade.dealOutHospInfoBySchedule(config);
            //门诊表(新华的暂时不做门诊随访)
//            if (!active.equals("xh")) {
//                //iPatMedOuthospService.dealOutpatientInfo();
@@ -1158,12 +1223,13 @@
        }
    }
    /**
     * å¤„理手术信息,进入子任务表
     */
    public void dealOperationInfo() {
        if (port.equals("8095")) iPatMedOperationService.dealOperationInfo();
        // ã€æ‰‹æœ¯æ¨¡å—化切换】出口改为调用 ruoyi-othervisit çš„常驻门面。
        // é—¨é¢å†…部判 sys_config: othervisit.enabled(运行时热读),关闭时返回 0 å¹¶æ‰“ WARN。
        if (port.equals("8095")) otherVisitFacade.dealOperationInfo();
    }
@@ -1177,7 +1243,10 @@
     */
    public void createOuthospQuarterTable() {
        log.info("【createOuthospQuarterTable】开始执行门诊分表任务");
        createDataTable.createOuthospQuarterTable();
        // ã€é—¨è¯Šæ¨¡å—化】CreateDataTable å·²æ•´ä½“迁入 ruoyi-outpatientvisit
        // ï¼ˆå®žçŽ°ä¸º OuthospPartitionMaintainer,经 OuthospVisitFacade æš´éœ²ï¼‰ã€‚
        // è¿™é‡Œåªåšè°ƒç”¨ï¼›å»ºè¡¨é€»è¾‘一行未动。
        outhospVisitFacade.createOuthospQuarterTable();
    }
    /**
@@ -1190,7 +1259,6 @@
            List<ServicePatientTemp> servicePatientTemps = iServicePatientTempService.selectServicePatientTempList(new ServicePatientTemp());
        }
    }
    /**
     * é•¿æœŸä»»åŠ¡å‘é€
@@ -1289,7 +1357,6 @@
        if (StringUtils.isNotEmpty(failDay)) iServiceSubtaskService.setFailSubTaskDefalutVal(Long.valueOf(failDay));
    }
    /**
     * åˆ¤æ–­æ—¥æœŸæ˜¯å¦æ˜¯ä»Šå¤©
     *
@@ -1341,6 +1408,22 @@
        }
        String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(sendPreachform));
        // âš ï¸ 2025 ä¿®å¤ï¼ˆå®£æ•™å¼€å…³å¤±æ•ˆï¼‰ï¼štype == 3 æ˜¯**宣教/通知**(纯发送、无作答 â€”—
        // è§ setSuccessPreachForm é‡Œã€Œå®£æ•™æˆ–通知…直接改成 9」、以及本方法后面
        // ã€Œå®£æ•™æˆ–通知,发送成功则直接改成 6L」的判定),整条派发的所有通道
        // ï¼ˆç”µè¯/短信/公众号/人工)发的都是宣教内容。关掉 publicity.enabled æ—¶åº”**一个通道都不发**。
        //
        // âš ï¸ åˆ»æ„**不推进 subtask çŠ¶æ€ã€ä¹Ÿä¸è®°å¤±è´¥**(与 RedisMqReceiver åŒå£å¾„):
        // å…³é—­æ˜¯"暂时不发",不是"这个患者不需要宣教"。标成失败/不需要会让这条宣教
        // åœ¨å¼€å…³æ¢å¤åŽæ°¸è¿œä¸¢å¤±ã€‚保持 sendstate ä¸åŠ¨ï¼Œå¼€å…³æ‰“å¼€åŽä¸‹ä¸€æ¬¡ longTaskSend/compensateTask
        // ä¼šç…§å¸¸æŠŠå®ƒæžå‡ºæ¥å‘出。
        if ("3".equals(serviceSubtask.getType()) && !publicityFacade.isEnabled()) {
            log.warn("【宣教】模块未启用(参数配置 publicity.enabled=false),跳过宣教发送。subtaskId={}, patid={}",
                    serviceSubtask.getId(), serviceSubtask.getPatid());
            return;
        }
        if (descByCode.equals("电话")) {
            List<String> list = new ArrayList<>();
            ServiceTask ivrTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid());
@@ -1450,7 +1533,13 @@
                            sendMagParam.setContent(smsContemt.replace("${wjurl}", sendMagParam.getUrl()));
                        }
                    } else {
                        HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid());
                        // âš ï¸ è¿™é‡Œ**刻意不**为 TemplateModuleDisabledException åšé™çº§ï¼š
                        // æ¨¡æ¿æ¨¡å—关闭(sys_config: template.enabled=false)时,宣教内容确实取不到,
                        // çŸ­ä¿¡ä¹Ÿå°±ç¡®å®žå‘不出去。外层 try-catch ä¼šå¦‚实记为"短信发送失败",
                        // å¹¶é€šè¿‡ setSuccessPreachForm(..., "5") æŒ‰æ—¢æœ‰æœºåˆ¶å‡çº§åˆ°ä¸‹ä¸€ä¸ªé€šé“(公众号/人工)。
                        // è‹¥åœ¨è¿™é‡Œç¡¬è®°æˆ"发送成功",等于用一条假记录掩盖"没发出去",
                        // äº‹åŽä»Žä»»åŠ¡è®°å½•ä¸Šå®Œå…¨çœ‹ä¸å‡ºé—®é¢˜ â€”— é‚£æ˜¯æ›´åçš„降级。
                        HeLibrary heLibrary = templateFacade.findHeLibraryById(serviceSubtask.getLibtemplateid());
                        if (heLibrary.getHetype().equals("1")) {
                            sendMagParam.setPhone(serviceSubtask.getPhone());
                            url = StringUtils.isNotEmpty(req_path) ? localIP + ":" + req_path + "/xj?p=" + format : localIP + "/xj?p=" + format;
@@ -1643,7 +1732,6 @@
        SysDept sysDept = CollectionUtils.isNotEmpty(sysDepts) ? sysDepts.get(0) : new SysDept();
        return ObjectUtils.isNotEmpty(sysDept) ? sysDept.getCampusid() : "2";
    }
    private Date getNextVisitTime(Long subid, Long taskid, Date visitTime) {
        ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform();
@@ -1970,7 +2058,9 @@
        }
        try {
            String config = configService.selectConfigByKey("visit.early.day");
            iPatMedInhospService.dealOutHospInfoBySchedule(config);
            // âš ï¸ 2025 ä¿®å¤ï¼ˆå¼€å…³å¤±æ•ˆï¼‰ï¼šåŽŸèµ° smartor é—留实现,不判开关(同 dealOutHospInfo)。
            // çŽ°èµ°æ¨¡å—é—¨é¢ï¼Œä¸Ž RyTask#dealOutHospInfo ä¸€è‡´ã€‚
            inhospVisitFacade.dealOutHospInfoBySchedule(config);
            log.info("【dealTaskGroupOutHosp】任务组首轮纳入扫描完成");
        } catch (Exception e) {
            log.error("【dealTaskGroupOutHosp】任务组扫描异常", e);
@@ -1988,7 +2078,18 @@
    public void rollTaskGroupCycle() {
        log.info("【rollTaskGroupCycle】开始扫描循环任务组");
        try {
            int rolled = serviceTaskScheduleService.rollCycleTasks();
            // âš ï¸ 2025 ä¿®å¤ï¼ˆå¼€å…³å¤±æ•ˆï¼‰ï¼šåŽŸèµ° smartor çš„ ServiceTaskScheduleServiceImpl.rollCycleTasks(),
            // ä¸åˆ¤å¼€å…³ â€”— å…³æŽ‰ inhospvisit.enabled ç…§æ ·ã€ŒæŽ¨è¿›è½®æ¬¡ + æ–°å»º subtask」。
            //
            // çŽ°èµ°æ¨¡å—é—¨é¢ï¼Œå®Œæˆæ¨¡å—åŒ–æ–¹æ¡ˆé‡Œç¬¬ 10 æ­¥ä¸€ç›´æ²¡åšçš„那一步切换:
            //   InhospVisitFacade#rollTaskGroupCycle(判开关)
            //     â†’ DefaultInhospVisitApi#rollTaskGroupCycle
            //     â†’ TaskGroupCycleRoller#rollCycleTasks(逐行搬自原 L170-190)
            //     â†’ ScheduleRollPortBridge(smartor ä¾§ç«¯å£å®žçŽ°ï¼Œ116 å­—段深拷贝等留在实现侧)
            // è¯¥ç±»çš„æ³¨é‡Šæ˜Žç¡®å†™äº†ã€Œç¬¬ 10 æ­¥åˆ‡è¿‡æ¥ä¹‹å‰ä¸èƒ½è¢«æŒ‚到任何调度上,否则双跑」——
            // æœ¬è¡Œå°±æ˜¯é‚£ä¸ªåˆ‡æ¢ç‚¹ï¼Œåˆ‡å®Œè€çš„ rollCycleTasks å³é€€å½¹ï¼ˆå…¨ä»“只有本方法调它)。
            int rolled = inhospVisitFacade.rollTaskGroupCycle();
            // é—¨é¢å†…部的 TaskGroupCycleRoller å·²æ‰“「本次推进 N ä¸ªè®¡åˆ’」,这里只补一句总览
            log.info("【rollTaskGroupCycle】本次推进 {} ä¸ªè®¡åˆ’", rolled);
        } catch (Exception e) {
            log.error("【rollTaskGroupCycle】滚动调度异常", e);
@@ -2027,10 +2128,26 @@
    }
    /**
     * å¤„理超时随访任务
     * @return
     * å¤„理超时随访任务(随访超时 â†’ ç”Ÿæˆ"再次随访")
     * <p>
     * âš ï¸ 2025 ä¿®å¤ï¼ˆå¼€å…³å¤±æ•ˆï¼‰ï¼šæœ¬æ–¹æ³•原不判任何模块开关 â€”—
     * å…³æŽ‰ {@code inhospvisit.enabled} ç…§æ ·å»º"再次随访"子任务。
     * <p>
     * <b>为什么这里是"入口判开关"而不是像 {@link #dealOutHospInfo()} é‚£æ ·åˆ‡åˆ°é—¨é¢</b>:
     * æ¨¡å—侧只提供了 {@code InhospVisitApi#buildAgainVisitDraft}(组装草稿),
     * <b>没有</b>完整的"扫描超时 â†’ è½åº“ â†’ å›žå†™åŽŸä»»åŠ¡çŠ¶æ€"入口,
     * è€Œæœ¬æ–¹æ³•自己组装并 insert(见下方 {@code insertServiceSubtask})。
     * é€ ä¸€ä¸ªæ¨¡å—入口属于新增能力、超出"只解决开关"的范围,所以取最小改动:入口守卫。
     * <p>
     * âš ï¸ å…¨ä»“只有 {@code ServiceSubtaskController#dealSubtaskDeadline} ä¸€ä¸ªè°ƒç”¨è€…。
     */
    public void dealSubtaskDeadline(String orgid, Integer deadlineDay){
        // âš ï¸ å¼€å…³å®ˆå«ï¼šå…ˆåˆ¤å†å¹²æ´»ï¼Œä¸Ž dealOutHospInfo / rollTaskGroupCycle åŒå£å¾„。
        // å…³é—­æ—¶ç›´æŽ¥è¿”回,不扫描、不建"再次随访"子任务。
        if (!inhospVisitFacade.isEnabled()) {
            log.warn("【dealSubtaskDeadline】模块未启用(参数配置 inhospvisit.enabled=false),跳过超时随访处理。orgid={}", orgid);
            return;
        }
        //获取任务信息
        ServiceTask st = new ServiceTask();
        st.setDelFlag("0");
ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/CreateDataTable.java
ÎļþÒÑɾ³ý
ruoyi-quartz/src/main/resources/mapper/quartz/CollectHISMapper.xml
@@ -153,7 +153,7 @@
        <result property="filterDrcode" column="filter_drcode"/>
    </resultMap>
    <resultMap type="com.smartor.domain.PatMedInhosp" id="PatMedInhospResult">
    <resultMap type="com.ruoyi.inhospvisit.domain.PatMedInhosp" id="PatMedInhospResult">
        <result property="inhospid" column="inhospid"/>
        <result property="inhospno" column="inhospno"/>
        <result property="serialnum" column="serialnum"/>
@@ -223,7 +223,7 @@
        <result property="fuspecialadvice" column="fuspecialadvice"/>
    </resultMap>
    <resultMap type="com.smartor.domain.PatMedOuthosp" id="PatMedOuthospResult">
    <resultMap type="com.ruoyi.outpatientvisit.domain.PatMedOuthosp" id="PatMedOuthospResult">
        <result property="id" column="id"/>
        <result property="serialnum" column="serialnum"/>
        <result property="patidHis" column="patid"/>
@@ -336,7 +336,7 @@
        <result property="guid" column="guid"/>
    </resultMap>
    <resultMap type="com.smartor.domain.PatMedOperation" id="PatMedOperationResult">
    <resultMap type="com.ruoyi.othervisit.domain.PatMedOperation" id="PatMedOperationResult">
        <result property="id" column="id"/>
        <result property="patidHis" column="patid_his"/>
        <result property="patcode" column="patcode"/>
@@ -414,7 +414,7 @@
        <result property="opleveldesc" column="opleveldesc"/>
    </resultMap>
    <resultMap type="com.smartor.domain.PatMedOperationItem" id="PatMedOperationItemResult">
    <resultMap type="com.ruoyi.othervisit.domain.PatMedOperationItem" id="PatMedOperationItemResult">
        <result property="id" column="id"/>
        <result property="operationid" column="operationid"/>
        <result property="opid" column="opid"/>
@@ -593,7 +593,7 @@
    </select>
    <select id="selectPatMedInhospListCount" parameterType="com.smartor.domain.PatMedInhosp" resultType="Long">
    <select id="selectPatMedInhospListCount" parameterType="com.ruoyi.inhospvisit.domain.PatMedInhosp" resultType="Long">
        select count(*)
        FROM healthy_inhosp
    </select>
@@ -617,13 +617,13 @@
        WHERE row_num > #{lastRowNumber} LIMIT #{ps}
    </select>
    <select id="selectPatArchiveCount" parameterType="com.smartor.domain.PatMedInhosp" resultType="Long">
    <select id="selectPatArchiveCount" parameterType="com.ruoyi.inhospvisit.domain.PatMedInhosp" resultType="Long">
        select count(*)
        FROM healthy_archive
    </select>
    <select id="selectPatMedInhospList" parameterType="com.smartor.domain.PatMedInhosp" resultMap="PatMedInhospResult">
    <select id="selectPatMedInhospList" parameterType="com.ruoyi.inhospvisit.domain.PatMedInhosp" resultMap="PatMedInhospResult">
        select
        b.nurse_id,
        b.nurse_name,
@@ -694,7 +694,7 @@
    </select>
    <select id="selectPatMedOuthospList" parameterType="com.smartor.domain.PatMedOuthosp"
    <select id="selectPatMedOuthospList" parameterType="com.ruoyi.outpatientvisit.domain.PatMedOuthosp"
            resultMap="PatMedOuthospResult">
        select
        outhospno,
@@ -819,7 +819,7 @@
    </select>
    <select id="selectOperList" parameterType="com.smartor.domain.PatMedOperation"
    <select id="selectOperList" parameterType="com.ruoyi.othervisit.domain.PatMedOperation"
            resultMap="PatMedOperationResult">
        select
        o.patid_his,
@@ -911,7 +911,7 @@
        </if>
    </select>
    <select id="selectOperItemList" parameterType="com.smartor.domain.PatMedOperationItem"
    <select id="selectOperItemList" parameterType="com.ruoyi.othervisit.domain.PatMedOperationItem"
            resultMap="PatMedOperationItemResult">
        select
               oi.operationid,
ruoyi-satisfaction/src/main/java/com/ruoyi/satisfaction/domain/row/SatisfactionIvrScriptRow.java
@@ -5,7 +5,7 @@
/**
 * æ»¡æ„åº¦ç»Ÿè®¡ç”¨çš„「语音模板问题」只读视图。
 * <p>
 * ä¸ºä»€ä¹ˆéœ€è¦è¿™ä¸ªç±»ï¼ˆè€Œä¸æ˜¯ç›´æŽ¥ç”¨ {@code com.smartor.domain.IvrLibaTemplateScript}):
 * ä¸ºä»€ä¹ˆéœ€è¦è¿™ä¸ªç±»ï¼ˆè€Œä¸æ˜¯ç›´æŽ¥ç”¨ {@code com.ruoyi.template.domain.IvrLibaTemplateScript}):
 * <ul>
 *   <li>那个实体属于 smartor çš„**语音模板管理**业务,被 9 ä¸ªæ–‡ä»¶ä½¿ç”¨ï¼ˆå«æ¨¡æ¿å¢žåˆ æ”¹æŸ¥ï¼‰ï¼Œä¸èƒ½æ¬è¿›æœ¬æ¨¡å—ï¼›</li>
 *   <li>满意度统计其实只用到它的 5 ä¸ªå­—段(见下),按需取列比整套实体更清晰;</li>
ruoyi-satisfaction/src/main/java/com/ruoyi/satisfaction/domain/row/SatisfactionSvyScriptRow.java
@@ -5,7 +5,7 @@
/**
 * æ»¡æ„åº¦ç»Ÿè®¡ç”¨çš„「问卷模板问题」只读视图。
 * <p>
 * ä¸ºä»€ä¹ˆéœ€è¦è¿™ä¸ªç±»ï¼ˆè€Œä¸æ˜¯ç›´æŽ¥ç”¨ {@code com.smartor.domain.SvyLibTemplateScript}):
 * ä¸ºä»€ä¹ˆéœ€è¦è¿™ä¸ªç±»ï¼ˆè€Œä¸æ˜¯ç›´æŽ¥ç”¨ {@code com.ruoyi.template.domain.SvyLibTemplateScript}):
 * <ul>
 *   <li>那个实体属于 smartor çš„**问卷模板管理**业务,被 13 ä¸ªæ–‡ä»¶ä½¿ç”¨ï¼ˆå«æ¨¡æ¿å¢žåˆ æ”¹æŸ¥ï¼‰ï¼Œä¸èƒ½æ¬è¿›æœ¬æ¨¡å—ï¼›</li>
 *   <li>满意度统计只用到它的 5 ä¸ªå­—段(见下);</li>
ruoyi-satisfaction/src/main/java/com/ruoyi/satisfaction/mapper/SatisfactionScriptMapper.java
@@ -16,7 +16,7 @@
 * <p>
 * <b>为什么不复用 smartor çš„æ¨¡æ¿/分类 Mapper:</b>
 * <ul>
 *   <li>{@code com.smartor.domain.IvrLibaScriptAssort} / {@code IvrLibaTemplateScript} /
 *   <li>{@code com.ruoyi.template.domain.IvrLibaScriptAssort} / {@code IvrLibaTemplateScript} /
 *       {@code SvyLibScriptCategory} / {@code SvyLibTemplateScript} è¿™ 4 ä¸ªå®žä½“属于
 *       smartor çš„**模板与分类管理**业务(分别被 11/9/12/13 ä¸ªæ–‡ä»¶ä½¿ç”¨ï¼Œå«å¢žåˆ æ”¹æŸ¥ï¼‰ï¼Œ
 *       ä¸èƒ½æ¬è¿›æœ¬æ¨¡å—ï¼›</li>
smartor/pom.xml
@@ -169,6 +169,60 @@
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-satisfaction</artifactId>
        </dependency>
        <!--
            å‡ºå…¥é™¢éšè®¿æ¨¡å—:smartor åªé€šè¿‡å®ƒçš„对外门面 InhospVisitFacade è§¦å‘出入院随访
            ï¼ˆRyTask å®šæ—¶ä»»åŠ¡ + PatMedInhospController æ‰‹åŠ¨è§¦å‘ï¼‰ï¼Œä¸ç›´æŽ¥ä¾èµ–å…¶å†…éƒ¨ Service/Mapper。
            æœ¬æ¨¡å—反过来要"建随访任务"时走 ruoyi-common é‡Œä¸‹æ²‰çš„ VisitTaskCreateApi,
            ç”± smartor ä¾§æä¾›è¿‡æ¸¡å®žçް VisitTaskCreateApiBridge。
            æ³¨æ„ï¼šruoyi-inhospvisit åªä¾èµ– ruoyi-common,因此不会与本模块形成循环依赖。
        -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-inhospvisit</artifactId>
        </dependency>
        <!--
            å®£æ•™æ¨¡å—:smartor åªé€šè¿‡å®ƒçš„对外门面 PublicityFacade è§¦å‘宣教。
            æ³¨æ„ï¼šruoyi-publicity åªä¾èµ– ruoyi-common,因此不会与本模块形成循环依赖。
        -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-publicity</artifactId>
        </dependency>
        <!--
            é—¨æ€¥è¯Šéšè®¿æ¨¡å—:smartor åªé€šè¿‡å®ƒçš„对外门面触发门诊随访。
            æ³¨æ„ï¼šruoyi-outpatientvisit åªä¾èµ– ruoyi-common,因此不会与本模块形成循环依赖。
            ï¼ˆæœ¬æ¨¡å—çš„ ServiceTaskMatchApiBridge / VisitTaskCreateApiBridge æ˜¯å®ƒéœ€è¦çš„
              ruoyi-common å¥‘约在 smartor ä¾§çš„过渡实现,方向仍是 smartor -> æ–°æ¨¡å—。)
        -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-outpatientvisit</artifactId>
        </dependency>
        <!--
            å…¶ä»–随访模块(手术随访):smartor åªé€šè¿‡å®ƒçš„门面触发手术随访。
            æ³¨æ„ï¼šruoyi-othervisit åªä¾èµ– ruoyi-common,因此不会与本模块形成循环依赖。
            ï¼ˆæœ¬æ¨¡å—çš„ ServiceTaskMatchApiBridge / VisitTaskCreateApiBridge ç­‰
              æ˜¯å®ƒéœ€è¦çš„ ruoyi-common å¥‘约在 smartor ä¾§çš„过渡实现。)
        -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-othervisit</artifactId>
        </dependency>
        <!--
            æ¨¡æ¿æ¨¡å—:宣教模板 / è¯­éŸ³æ¨¡æ¿ / é—®å·æ¨¡æ¿ / æ–¹æ¡ˆåº“的唯一实现处。
            æ³¨æ„ï¼šruoyi-template åªä¾èµ– ruoyi-common,因此不会与本模块形成循环依赖。
            æŒ‰è·¨æ¨¡å—数据访问原则,模板数据(he_library / svy_lib_template / ivr_liba_template â€¦ï¼‰
            ä¸€å¾‹ç»å®ƒçš„门面 TemplateFacade å–用,其它模块不得自己写 SQL。
        -->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-template</artifactId>
        </dependency>
    </dependencies>
smartor/src/main/java/com/smartor/common/PinYinUtil.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/config/PhoneUtils.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/BaseDictOperation.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/BaseTag.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/BaseTagcategory.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/DTO/AiMatcherDto.java
@@ -1,6 +1,6 @@
package com.smartor.domain.DTO;
import com.smartor.domain.IvrTaskTemplateTargetoption;
import com.ruoyi.template.domain.IvrTaskTemplateTargetoption;
import lombok.Data;
import java.util.List;
smartor/src/main/java/com/smartor/domain/DTO/PatMedInhospDTO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/HeCategory.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/HeCategoryVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/HeLibrary.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/HeLibraryAssort.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/HeLibraryAssortVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/HeLibraryTag.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/HeLibraryVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/HeLocallibrary.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/HeTaskVO.java
@@ -12,6 +12,7 @@
import java.util.List;
import java.util.Map;
import com.ruoyi.template.domain.HeLibraryVO;
/**
 * å®£æ•™ä»»åŠ¡å¯¹è±¡ he_task
 *
smartor/src/main/java/com/smartor/domain/Icd10Association.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaExtemplate.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaExtemplateCategory.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaExtemplatescript.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaScript.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaScriptAssort.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaScriptAssortVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaScriptTag.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaScriptTarget.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaScriptTargetoption.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaScriptVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTarget.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTargetAssort.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTargetAssortVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTargetTag.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTargetTagVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTargetoption.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateAssort.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateAssortVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScript.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateScriptVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateTag.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateTargetoption.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTemplateVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrLibaTemplatetargetAssort.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrTaskTemplate.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScript.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrTaskTemplateTargetoption.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/IvrTaskTemplateVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/PatMedOperation.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/PatMedOperationItem.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/PatMedOuthosp.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/PatMedOuthospError.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/PatMedOuthospProvisional.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/PatMedOuthospQueryReq.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/PatMedReq.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/PatMedRes.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/QuestionMessage.java
@@ -5,6 +5,7 @@
import java.util.ArrayList;
import java.util.List;
import com.ruoyi.template.domain.IvrTaskTemplateScriptVO;
@Data
public class QuestionMessage {
    //    //题号targetId
smartor/src/main/java/com/smartor/domain/QuestionMessagePhone.java
@@ -5,6 +5,7 @@
import java.util.ArrayList;
import java.util.List;
import com.ruoyi.template.domain.IvrLibaTemplateScriptVO;
@Data
public class QuestionMessagePhone {
    //    //题号targetId
smartor/src/main/java/com/smartor/domain/SchemeLocallibrary.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/ServiceSubTaskCacheReq.java
@@ -6,6 +6,8 @@
import java.util.List;
import com.ruoyi.template.domain.IvrTaskTemplateScriptVO;
import com.ruoyi.template.domain.SvyTaskTemplateScriptVO;
/**
 * ç”µè¯é—®é¢˜å›žç­”明细
 *
smartor/src/main/java/com/smartor/domain/ServiceSubTaskMYDAnswerReq.java
@@ -6,6 +6,7 @@
import java.util.List;
import com.ruoyi.template.domain.SvyTaskTemplateScriptVO;
/**
 * ç”µè¯é—®é¢˜å›žç­”明细
 *
smartor/src/main/java/com/smartor/domain/ServiceSubtaskCountReq.java
@@ -2,10 +2,12 @@
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -128,6 +130,27 @@
    private String scriptids;
    /**
     * æŠŠ scriptids(逗号分隔的问题ID字符串)严格解析为 Long é›†åˆï¼Œä»…ä¾› SQL çš„ foreach é¢„编译使用。
     * <p>
     * åªä¿ç•™çº¯æ•°å­—项,其余内容一律丢弃,返回 null è¡¨ç¤ºâ€œä¸è¿‡æ»¤â€ã€‚
     * è¿™æ · scriptids è¿™ä¸ªè¯·æ±‚字段永远不会被拼接进 SQL,避免注入(原实现是 in (${scriptids}))。
     */
    @JsonIgnore
    public List<Long> getScriptidList() {
        if (scriptids == null || scriptids.trim().isEmpty()) {
            return null;
        }
        List<Long> scriptidList = new ArrayList<>();
        for (String item : scriptids.split(",")) {
            String scriptid = item.trim();
            if (scriptid.matches("\\d+")) {
                scriptidList.add(Long.valueOf(scriptid));
            }
        }
        return scriptidList.isEmpty() ? null : scriptidList;
    }
    /**
     * åˆ†ç»„类型 drCode, deptCode, leaveHospitalDistrictCode
     */
    @ApiModelProperty(value = "分组类型")
smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetailVO.java
@@ -10,6 +10,7 @@
import java.util.Date;
import java.util.List;
import com.ruoyi.template.domain.SvyTaskTemplateTargetoption;
/**
 * è¯­éŸ³ä»»åŠ¡å‘¼å«æ˜Žç»†å¯¹è±¡ ivr_taskcalldetail
 *
smartor/src/main/java/com/smartor/domain/ServiceSubtaskTemplateVO.java
@@ -10,6 +10,7 @@
import java.util.Date;
import java.util.List;
import com.ruoyi.template.domain.SvyTaskTemplateVO;
/**
 * å­ä»»åŠ¡é—®å·æ¨¡æ¿
 *
smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
@@ -11,6 +11,8 @@
import java.util.List;
import java.util.Map;
import com.ruoyi.template.domain.IvrTaskTemplateVO;
import com.ruoyi.template.domain.SvyTaskTemplateVO;
/**
 * è¯­éŸ³ä»»åŠ¡å¯¹è±¡ ivr_task
 *
smartor/src/main/java/com/smartor/domain/SvyCategory.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyCategoryVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyFinish.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyFinishoption.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyFinishtopic.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibException.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibResult.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibScript.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibScriptCategory.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibScriptCategoryVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibScriptOption.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibScriptRes.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibScriptTag.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTemplateCategory.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTemplateCategoryVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTemplateReq.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTemplateScript.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTemplateScriptWjx.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTemplateTag.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTemplateTargetoption.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTemplateTargetoptionWjx.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTemplateVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTemplateWjx.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTopicAndOptionRes.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyLibTopicdirection.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyTaskScript.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyTaskScriptoption.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScript.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyTaskTemplateTargetoption.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyTaskTemplateVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyTopic.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyTopicReq.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/SvyTopicoption.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/TemplateDept.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/TemplateDeptVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/TemplateSmsRequest.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/VO/HeLibraryCountVO.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/BaseDictOperationMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/BaseTagMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/BaseTagcategoryMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/HNGatherPatArchiveMapper.java
@@ -7,6 +7,8 @@
import com.ruoyi.common.core.domain.entity.SysUserRole;
import com.ruoyi.common.enums.DataSourceType;
import com.smartor.domain.*;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
smartor/src/main/java/com/smartor/mapper/HeCategoryMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/HeLibraryAssortMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/HeLibraryMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/HeLibraryTagMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/HeLocallibraryMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/Icd10AssociationMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaExtemplateCategoryMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaExtemplateMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaExtemplatescriptMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaScriptAssortMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaScriptMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaScriptTagMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaScriptTargetMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaScriptTargetoptionMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaTargetAssortMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaTargetMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaTargetTagMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaTargetoptionMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateAssortMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateScriptMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateTagMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrLibaTemplateTargetoptionMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrTaskTemplateMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrTaskTemplateScriptMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/IvrTaskTemplateTargetoptionMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/PatMedOperationItemMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/PatMedOperationMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/PatMedOuthospErrorMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/PatMedOuthospMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/PatMedOuthospProvisionalMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SchemeLocallibraryMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -1,7 +1,7 @@
package com.smartor.mapper;
import com.smartor.domain.*;
import com.smartor.domain.VO.HeLibraryCountVO;
import com.ruoyi.template.domain.VO.HeLibraryCountVO;
import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import org.apache.ibatis.annotations.MapKey;
@@ -12,6 +12,8 @@
import java.util.List;
import java.util.Map;
import com.ruoyi.common.core.service.dto.PatMedReq;
import com.ruoyi.common.core.service.dto.PatMedRes;
/**
 * å•一任务(随访)Mapper接口
 *
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java
@@ -3,16 +3,48 @@
import java.util.List;
import com.smartor.domain.ServiceSubtask;
import org.apache.ibatis.annotations.Mapper;
import com.smartor.domain.ServiceSubtaskPreachform;
/**
 * ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘Mapper接口
 * éšè®¿å­ä»»åŠ¡ã€Œæ‰§è¡Œæ–¹å¼æ˜Žç»†ã€ï¼ˆ{@code service_subtask_preachform})—— <b>过渡接口</b>。
 *
 * @author lihu
 * @date 2025-09-15
 * <h3>⚠️ æœ¬æŽ¥å£å·²ä¸å†æ˜¯ MyBatis Mapper</h3>
 * è¿™å¼ è¡¨çš„归属模块是 {@code ruoyi-inhospvisit}。按「各模块独占自己的数据访问」原则,
 * è¯¥è¡¨çš„读写已收口到该模块的 {@code com.ruoyi.common.core.service.PreachformApi}:
 * <ul>
 *   <li><b>本接口已去掉 {@code @Mapper} æ³¨è§£</b>,配套的
 *       {@code mapper/smartor/ServiceSubtaskPreachformMapper.xml} <b>也已删除</b>
 *       â€”— åŒä¸€ä¸ªè¡¨ä¸èƒ½å†æœ‰ä¸¤å¥— SQL(改一边就与另一边漂移);</li>
 *   <li>由 {@link com.smartor.mapper.impl.ServiceSubtaskPreachformMapperBridge}
 *       å®žçŽ°ï¼Œé€æ–¹æ³•å§”æ‰˜åˆ°æ¨¡å— API;</li>
 *   <li>保留本接口是为了让<b>11 ä¸ªè°ƒç”¨æ–‡ä»¶é›¶æ”¹åЍ</b>(它们注入的仍是这个类型)。</li>
 * </ul>
 *
 * <h3>⚠️ åŽ»æŽ‰ {@code @Mapper} æ³¨è§£å¹¶<b>不能</b>让它注销</h3>
 * {@code RuoYiApplication} ä¸Šå†™çš„æ˜¯ {@code @MapperScan(value = "com.smartor.mapper")}
 * â€”—<b>按包扫描</b>,与注解无关。因此本接口仍会被注册成一个
 * <b>空的 MyBatis ä»£ç† Bean</b>(名字就叫 {@code serviceSubtaskPreachformMapper}),
 * è€Œè°ƒç”¨æ–¹å­—段名恰好也是它,Spring å¤šå€™é€‰æ—¶ä¼šæŒ‰åå­—命中这个空代理,
 * è°ƒç”¨å³æŠ› {@code BindingException: Invalid bound statement (not found)}。
 * <p>
 * ç›®å‰ç”± {@code ServiceSubtaskPreachformMapperBridge} ä¸Šçš„ {@code @Primary} å…œä½
 * ï¼ˆprimary åˆ¤å®šæ—©äºŽæŒ‰åå­—回退),<b>那个注解不能删</b>。
 * <p>
 * è¦çœŸæ­£æ¶ˆé™¤è¿™ä¸ªç©ºä»£ç†ï¼Œåªèƒ½äºŒè€…之一:
 * <ul>
 *   <li>收紧扫描:{@code @MapperScan(value = "com.smartor.mapper", annotationClass = Mapper.class)},
 *       å¹¶ç»™ smartor é‡Œ 27 ä¸ªæ¼æ ‡ {@code @Mapper} çš„老 Mapper è¡¥ä¸Šæ³¨è§£ï¼›</li>
 *   <li>或把本接口移出 {@code com.smartor.mapper} åŒ…(该扫描是递归的,子包无效)。</li>
 * </ul>
 *
 * <h3>将来动作</h3>
 * è°ƒç”¨æ–¹é€æ­¥æ”¹ä¸ºç›´æŽ¥æ³¨å…¥ {@code PreachformApi} åŽï¼Œæœ¬æŽ¥å£ä¸Ž Bridge å³å¯æ•´ä½“删除。
 * æ–°ä»£ç <b>请直接注入 {@code PreachformApi}</b>,不要再依赖本接口。
 *
 * @deprecated ç”¨ {@code com.ruoyi.common.core.service.PreachformApi} ä»£æ›¿ã€‚
 *         ä¿ç•™ä»…为兼容既有调用方,新代码不要使用。
 */
@Mapper
@Deprecated
public interface ServiceSubtaskPreachformMapper
{
    /**
smartor/src/main/java/com/smartor/mapper/SvyCategoryMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyFinishMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyFinishoptionMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyFinishtopicMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibExceptionMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibResultMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibScriptCategoryMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibScriptMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibScriptOptionMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibScriptTagMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateCategoryMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateScriptMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateScriptWjxMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateTagMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateTargetoptionMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateTargetoptionWjxMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibTemplateWjxMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyLibTopicdirectionMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyTaskScriptMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyTaskScriptoptionMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateScriptMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyTaskTemplateTargetoptionMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyTopicMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/SvyTopicoptionMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/mapper/TemplateDeptMapper.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/DingTalkService.java
@@ -2,7 +2,7 @@
import com.ruoyi.common.core.domain.DingTalkReqVo;
import com.ruoyi.common.core.service.IDingTalkService;
import com.smartor.domain.HeCategory;
import com.ruoyi.template.domain.HeCategory;
import com.taobao.api.ApiException;
import org.springframework.web.bind.annotation.RequestBody;
smartor/src/main/java/com/smartor/service/IBaseDictOperationService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IBaseSmsaccountService.java
@@ -8,7 +8,7 @@
import com.smartor.domain.BaseSmsRequest;
import com.smartor.domain.BaseSmsaccount;
import com.smartor.domain.BatchBaseSmsRequest;
import com.smartor.domain.TemplateSmsRequest;
import com.ruoyi.template.domain.TemplateSmsRequest;
import org.springframework.web.bind.annotation.PathVariable;
/**
smartor/src/main/java/com/smartor/service/IBaseTagService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IBaseTagcategoryService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IHNGatherPatArchiveService.java
@@ -3,6 +3,8 @@
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.smartor.domain.*;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
smartor/src/main/java/com/smartor/service/IHeCategoryService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IHeLibraryAssortService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IHeLibraryService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IHeLibraryTagService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IHeLocallibraryService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIcd10AssociationService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaExtemplateCategoryService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaExtemplateService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaExtemplatescriptService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaScriptAssortService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaScriptService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaScriptTagService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaScriptTargetService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaScriptTargetoptionService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaTargetAssortService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaTargetService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaTargetTagService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaTargetoptionService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaTemplateAssortService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaTemplateScriptService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaTemplateService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaTemplateTagService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrLibaTemplateTargetoptionService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrTaskTemplateScriptService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrTaskTemplateService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IIvrTaskTemplateTargetoptionService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
@@ -2,13 +2,17 @@
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.smartor.domain.DTO.PatMedInhospDTO;
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;
/**
 * æ‚£è€…住院记录Service接口
 *
@@ -35,11 +39,6 @@
    public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp);
    public List<PatMedInhospDTO> selectPatMedInhospByApplication(PatMedInhosp patMedInhosp);
    /**
     * å‡ºé™¢ã€é—¨è¯Šäººæ•°å’Œéšè®¿é‡ç»Ÿè®¡ï¼ˆå‘¨ï¼Œæœˆï¼Œå¹´ï¼‰
     */
    public Map<String, Integer> queryPersonCount(PatServiceCount patServiceCount);
    /**
     * æŸ¥è¯¢å½“前登陆人自己(病区、部门)的患者住院记录列表
@@ -128,4 +127,56 @@
    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/IPatMedOperationItemService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IPatMedOperationService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IPatMedOuthospProvisionalService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IPatMedOuthospService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISchemeLocallibraryService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/IServicePhoneService.java
@@ -1,7 +1,7 @@
package com.smartor.service;
import com.smartor.domain.*;
import com.smartor.domain.VO.HeLibraryCountVO;
import com.ruoyi.template.domain.VO.HeLibraryCountVO;
import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
import com.smartor.domain.VO.TransferDeptVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -11,6 +11,8 @@
import java.util.List;
import java.util.Map;
import com.ruoyi.template.domain.VO.HeLibraryCountVO;
import com.ruoyi.template.domain.IvrTaskTemplateTargetoption;
/**
 * å•一任务(随访)Service接口
 *
@@ -225,7 +227,18 @@
    
    public Integer matchOptionIndex(String url, String questionText, String voiceText, List<IvrTaskTemplateTargetoption> options, String uuid);
    /**
     * AI é€‰é¡¹åŒ¹é…ï¼ˆæŠŠ options åºåˆ—化后 POST åˆ°å¤–部 AI æœåŠ¡ï¼‰ã€‚
     * <p>
     * âš ï¸ å…¥å‚改成<b>泛型</b> {@code List<T>}(原为 {@code List<IvrTaskTemplateTargetoption>}):
     * é‚£ä¸ªç±»åž‹å·²éšæ¨¡æ¿æ¨¡å—化搬进 {@code ruoyi-template},而本方法要经
     * {@code SubtaskOptionMatchApiBridge} å‘模板模块暴露(接口在 ruoyi-common)。
     * æ³›åž‹è®©æ¨¡æ¿æ¨¡å—不必知道 {@code T} æ˜¯ä»€ä¹ˆï¼ŒåŒæ—¶ä¿æŒ smartor å†…部 4 å¤„调用点形状不变。
     * <p>
     * è¯­ä¹‰æ— å˜åŒ–:方法体只做 {@code jsonObject.put("options", options)} åŽæ•´ä½“序列化,
     * ä»Žä¸è¯» {@code T} çš„字段。
     */
    public <T> Integer matchOptionIndex(String url, String questionText, String voiceText, List<T> options, String uuid);
    
}
smartor/src/main/java/com/smartor/service/IServiceTaskService.java
@@ -3,10 +3,10 @@
import java.util.List;
import java.util.Map;
import com.smartor.domain.IvrLibaTemplateScriptVO;
import com.ruoyi.template.domain.IvrLibaTemplateScriptVO;
import com.smartor.domain.ServiceSubtask;
import com.smartor.domain.ServiceTask;
import com.smartor.domain.SvyLibTemplateScriptVO;
import com.ruoyi.template.domain.SvyLibTemplateScriptVO;
/**
 * è¯­éŸ³ä»»åŠ¡Service接口
smartor/src/main/java/com/smartor/service/ISvyCategoryService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyFinishService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyFinishoptionService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyFinishtopicService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibExceptionService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibResultService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibScriptCategoryService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibScriptOptionService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibScriptService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibScriptTagService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibTemplateCategoryService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibTemplateScriptService.java
@@ -2,7 +2,7 @@
import com.smartor.domain.ServiceSubtaskCountReq;
import com.smartor.domain.ServiceSubtaskScriptCount;
import com.smartor.domain.SvyLibTemplateScript;
import com.ruoyi.template.domain.SvyLibTemplateScript;
import java.util.List;
import java.util.Map;
smartor/src/main/java/com/smartor/service/ISvyLibTemplateScriptWjxService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibTemplateService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibTemplateTagService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibTemplateTargetoptionService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibTemplateTargetoptionWjxService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibTemplateWjxService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyLibTopicdirectionService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyTaskScriptService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyTaskScriptoptionService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyTaskService.java
@@ -1,7 +1,7 @@
package com.smartor.service;
import com.smartor.domain.IvrLibaTemplateScriptVO;
import com.smartor.domain.SvyLibTemplateScriptVO;
import com.ruoyi.template.domain.IvrLibaTemplateScriptVO;
import com.ruoyi.template.domain.SvyLibTemplateScriptVO;
import com.smartor.domain.SvyTask;
import java.util.List;
smartor/src/main/java/com/smartor/service/ISvyTaskTemplateScriptService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyTaskTemplateService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyTaskTemplateTargetoptionService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ISvyTopicService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/ITemplateDeptService.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/PersonWorkbenchService.java
@@ -1,6 +1,6 @@
package com.smartor.service;
import com.smartor.domain.BaseTag;
import com.ruoyi.template.domain.BaseTag;
import com.smartor.domain.PerSonWorkbenchDto;
import java.util.List;
smartor/src/main/java/com/smartor/service/impl/BaseDictOperationServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/BaseSmsaccountServiceImpl.java
@@ -10,7 +10,7 @@
import com.smartor.domain.BaseSmsRequest;
import com.smartor.domain.BaseSmsaccount;
import com.smartor.domain.BatchBaseSmsRequest;
import com.smartor.domain.TemplateSmsRequest;
import com.ruoyi.template.domain.TemplateSmsRequest;
import com.smartor.mapper.BaseSmsaccountMapper;
import com.smartor.service.IBaseSmsaccountService;
import org.springframework.beans.factory.annotation.Autowired;
smartor/src/main/java/com/smartor/service/impl/BaseTagServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/BaseTagcategoryServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/HNGatherPatArchiveServiceImpl.java
@@ -6,7 +6,11 @@
import com.ruoyi.common.core.domain.entity.SysUserRole;
import com.ruoyi.common.utils.StringUtils;
import com.smartor.domain.*;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.inhospvisit.api.InhospVisitFacade;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.smartor.mapper.*;
import com.ruoyi.outpatientvisit.mapper.PatMedOuthospMapper;
import com.smartor.service.IHNGatherPatArchiveService;
import com.smartor.service.IPatMedOuthospService;
import lombok.extern.slf4j.Slf4j;
@@ -51,7 +55,7 @@
    private PatMedOuthospMapper patMedOuthospMapper;
    @Autowired
    private PatMedInhospMapper patMedInhospMapper;
    private InhospVisitFacade inhospVisitFacade;
    @Autowired
    private PatArchiveMapper patArchiveMapper;
@@ -109,20 +113,20 @@
                //入院
                pm.setInhospstate("0");
                pm.setCreateTime(new Date());
                patMedInhospMapper.insertPatMedInhosp(pm);
                inhospVisitFacade.insertPatMedInhosp(pm);
            } else if (!Objects.isNull(patMedInhosp.getStartOutHospTime()) && !Objects.isNull(patMedInhosp.getEndOutHospTime())) {
                //出院
                pm.setInhospstate("1");
                pm.setUpdateTime(new Date());
                PatMedInhosp pmi = new PatMedInhosp();
                pmi.setSerialnum(pm.getSerialnum());
                List<PatMedInhosp> patMedInhospList1 = patMedInhospMapper.selectPatMedInhospList(pmi);
                List<PatMedInhosp> patMedInhospList1 = inhospVisitFacade.selectPatMedInhospList(pmi);
                if (CollectionUtils.isEmpty(patMedInhospList1)) {
                    pm.setCreateTime(new Date());
                    patMedInhospMapper.insertPatMedInhosp(pm);
                    inhospVisitFacade.insertPatMedInhosp(pm);
                } else {
                    pm.setInhospid(patMedInhospList1.get(0).getInhospid());
                    patMedInhospMapper.updatePatMedInhosp(pm);
                    inhospVisitFacade.updatePatMedInhosp(pm);
                }
            }
smartor/src/main/java/com/smartor/service/impl/HeCategoryServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/HeLibraryAssortServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/HeLibraryServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/HeLibraryTagServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/HeLocallibraryServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/Icd10AssociationServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaExtemplateCategoryServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaExtemplateServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaExtemplatescriptServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaScriptAssortServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaScriptServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaScriptTagServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaScriptTargetServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaScriptTargetoptionServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetAssortServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetTagServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetoptionServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateAssortServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateScriptServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateTagServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrLibaTemplateTargetoptionServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrTaskTemplateScriptServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrTaskTemplateServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/IvrTaskTemplateTargetoptionServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
@@ -7,8 +7,12 @@
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.domain.entity.ServiceSubtaskEntity;
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;
@@ -39,6 +43,8 @@
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
import com.ruoyi.template.domain.BaseTag;
import com.ruoyi.template.mapper.BaseTagMapper;
/**
 * æ‚£è€…档案Service业务层处理
 *
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -1,17 +1,21 @@
package com.smartor.service.impl;
import com.ruoyi.othervisit.api.OtherVisitFacade;
import com.ruoyi.inhospvisit.api.InhospVisitFacade;
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.common.ScheduleSubtaskBuilder;
import com.smartor.domain.*;
import com.smartor.domain.DTO.PatMedInhospDTO;
import com.ruoyi.inhospvisit.domain.PatMedInhospDTO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.mapper.*;
import com.smartor.service.IPatMedInhospService;
@@ -28,6 +32,9 @@
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;
/**
 * æ‚£è€…住院记录Service业务层处理
 *
@@ -38,7 +45,13 @@
@Service
public class PatMedInhospServiceImpl implements IPatMedInhospService {
    @Autowired
    private PatMedInhospMapper patMedInhospMapper;
    private InhospVisitFacade inhospVisitFacade;
    /**
     * æ‰‹æœ¯æ•°æ®ä¸€å¾‹ç» ruoyi-othervisit çš„门面取用(跨模块数据访问原则)。
     */
    @Autowired
    private OtherVisitFacade otherVisitFacade;
    @Autowired
    private ServiceTaskdeptMapper serviceTaskdeptMapper;
    @Autowired
@@ -57,8 +70,6 @@
    private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper;
    @Autowired
    private ServiceTaskmedicalMapper serviceTaskmedicalMapper;
    @Autowired
    private PatMedOperationItemMapper patMedOperationItemMapper;
    @Autowired
    private ServiceTaskRuleMapper serviceTaskRuleMapper;
@@ -83,12 +94,12 @@
     */
    @Override
    public PatMedInhosp selectPatMedInhospByInhospid(Long inhospid) {
        return patMedInhospMapper.selectPatMedInhospByInhospid(inhospid);
        return inhospVisitFacade.selectPatMedInhospByInhospid(inhospid);
    }
    @Override
    public List<PatMedInhosp> selectPatMedInhosp(PatMedInhosp patMedInhosp) {
        return patMedInhospMapper.selectPatMedInhosp(patMedInhosp);
        return inhospVisitFacade.selectPatMedInhosp(patMedInhosp);
    }
    /**
@@ -115,7 +126,7 @@
            patMedInhosp.setInhospstate("3");
        }
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
        fillTagname(patMedInhospList);
        return patMedInhospList;
    }
@@ -149,7 +160,7 @@
        int batchSize = 1000;
        for (int i = 0; i < patidList.size(); i += batchSize) {
            List<Long> batch = patidList.subList(i, Math.min(i + batchSize, patidList.size()));
            List<Map<String, Object>> rows = patMedInhospMapper.getTagnameByPatids(batch);
            List<Map<String, Object>> rows = inhospVisitFacade.getTagnameByPatids(batch);
            if (CollectionUtils.isEmpty(rows)) {
                continue;
            }
@@ -205,19 +216,6 @@
        return patMedInhospDTOList;
    }
    @Override
    public Map<String, Integer> queryPersonCount(PatServiceCount patServiceCount) {
        if (patServiceCount.getInterval() == 1) {
            //周
        } else if (patServiceCount.getInterval() == 2) {
            //月
        } else if (patServiceCount.getInterval() == 3) {
            //å¹´
        }
        return null;
    }
    /**
     * æŸ¥è¯¢å½“前登陆人自己(病区、部门)的患者住院记录列表
     *
@@ -225,7 +223,7 @@
     * @return
     */
    public List<PatMedInhosp> selectPatMedInhospListByCondition(PatMedInhospVO patMedInhospVO) {
        return patMedInhospMapper.selectPatMedInhospListByCondition(patMedInhospVO);
        return inhospVisitFacade.selectPatMedInhospListByCondition(patMedInhospVO);
    }
@@ -258,7 +256,7 @@
    public PatMedRes selectPatMedInhospListCount(PatMedReq patMedReq) {
        PatMedRes patMedRes = null;
        // èŽ·å–å½“å‰ç™»é™†äººçš„éƒ¨é—¨æƒé™
        patMedRes = patMedInhospMapper.selectPatMedInhospCount(patMedReq);
        patMedRes = inhospVisitFacade.selectPatMedInhospCount(patMedReq);
        return patMedRes;
    }
@@ -272,7 +270,7 @@
    public int insertPatMedInhosp(PatMedInhosp patMedInhosp) {
        patMedInhosp.setCreateTime(DateUtils.getNowDate());
        patMedInhosp.setUpdateTime(DateUtils.getNowDate());
        return patMedInhospMapper.insertPatMedInhosp(patMedInhosp);
        return inhospVisitFacade.insertPatMedInhosp(patMedInhosp);
    }
    /**
@@ -284,7 +282,7 @@
    @Override
    public int updatePatMedInhosp(PatMedInhosp patMedInhosp) {
        patMedInhosp.setUpdateTime(DateUtils.getNowDate());
        return patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
        return inhospVisitFacade.updatePatMedInhosp(patMedInhosp);
    }
    /**
@@ -295,7 +293,7 @@
     */
    @Override
    public int deletePatMedInhospByInhospids(Long[] inhospids) {
        return patMedInhospMapper.deletePatMedInhospByInhospids(inhospids);
        return inhospVisitFacade.deletePatMedInhospByInhospids(inhospids);
    }
    /**
@@ -306,7 +304,7 @@
     */
    @Override
    public int deletePatMedInhospByInhospid(Long inhospid) {
        return patMedInhospMapper.deletePatMedInhospByInhospid(inhospid);
        return inhospVisitFacade.deletePatMedInhospByInhospid(inhospid);
    }
    /**
@@ -317,7 +315,7 @@
     */
    @Override
    public int deletePatMedInhospByInhospno(String inhospno) {
        return patMedInhospMapper.deletePatMedInhospByInhospno(inhospno);
        return inhospVisitFacade.deletePatMedInhospByInhospno(inhospno);
    }
    @Override
@@ -326,7 +324,7 @@
        pmks.setDeptcheckFlag("0");
        pmks.setInhospstate("1");
        pmks.setFuflag("1");
        List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks);
        List<PatMedInhosp> patMedInhosps = inhospVisitFacade.selectPatMedInhospList(pmks);
        //1.入院宣教
        String helibrarySwitch = iSysConfigService.selectConfigByKey("in.helibrary.switch");
@@ -339,7 +337,7 @@
                if (Objects.isNull(patArchive)) {
                    patMedInhosp1.setInDeptcheckFlag("2");
                    patMedInhosp1.setLongTaskReason("患者基本信息为空");
                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                    inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                    continue;
                }
                try {
@@ -353,10 +351,10 @@
                    List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
                    //如果部门模板为空(将deptIsNull设置为true)
                    if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) {
                        PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                        PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                        patMedInhosp1.setInDeptcheckFlag("2");
                        patMedInhosp1.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + "该患者所在科室未配置入院长期宣教任务;" : "该患者所在科室未配置入院长期宣教任务;");
                        patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                        inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                    } else {
                        for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
                            writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 4, config);
@@ -367,7 +365,7 @@
                    log.error("人员入院科室处理出异常了:{}", e.getMessage());
                    patMedInhosp1.setInDeptcheckFlag("2");
                    patMedInhosp1.setLongTaskReason("人员入院科室处理出异常了");
                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                    inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                }
            }
@@ -376,14 +374,14 @@
            pmks.setInDeptcheckFlag(null);
            pmks.setInWardcheckFlag("0");
            pmks.setDeptcheckFlag(null);
            List<PatMedInhosp> inPatMedInhospsWard = patMedInhospMapper.selectPatMedInhospList(pmks);
            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("患者基本信息为空");
                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                    inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                    continue;
                }
                //根据患者所在病区,获取该病区的入院长期宣教任务(会出现一个问题,科室和病区发的同一个模板)
@@ -396,10 +394,10 @@
                List<ServiceTaskdept> serviceTaskWardList = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskWard);
                //如果部门模板为空(将deptIsNull设置为true)
                if (CollectionUtils.isEmpty(serviceTaskWardList) || serviceTaskWardList.size() == 0) {
                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                    PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                    patMedInhosp1.setInDeptcheckFlag("2");
                    patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该患者所在病区未配置入院长期宣教任务;");
                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                    inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                } else {
                    for (ServiceTaskdept serviceTaskdept1 : serviceTaskWardList) {
                        writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 5, config);
@@ -455,7 +453,7 @@
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        patMedInhosp.setDeptcheckFlag("0");
        patMedInhosp.setInhospstate("0");
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
        if (CollectionUtils.isNotEmpty(patMedInhospList) && patMedInhospList.size() > 0) {
            dealInHospInfo(patMedInhospList);
        }
@@ -524,7 +522,7 @@
                            patMedInhospVo.setLeaveldeptcodes(deptCodeList);
                            patMedInhospVo.setLeavehospitaldistrictcodes(wardCodeList);
                            patMedInhospVo.setIcd10codeList(icd10CodeList);
                            List<PatMedInhosp> patList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo);
                            List<PatMedInhosp> patList = inhospVisitFacade.selectPatMedInhospList(patMedInhospVo);
                            log.info("dealOutHospInfoBySchedule ä»»åŠ¡ç»„éšè®¿, taskid = {}, æ‰«ææ‚£è€…人数 {}", serviceTask.getTaskid(), patList.size());
                            for (PatMedInhosp patMedInhosp : patList) {
@@ -554,7 +552,7 @@
                                PatMedInhosp flagUpd = new PatMedInhosp();
                                flagUpd.setInhospid(patMedInhosp.getInhospid());
                                flagUpd.setScheduleCheckFlag("1");
                                patMedInhospMapper.updatePatMedInhosp(flagUpd);
                                inhospVisitFacade.updatePatMedInhosp(flagUpd);
                            }
                        } else {
                            //任务组 - æ‰‹æœ¯éšè®¿
@@ -568,7 +566,7 @@
                                pmoi.setOpLevelCodes(opLevelCodeList);
                                //每次查询只查最大的手术等级记录
                                List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemListMaxLevel(pmoi);
                                List<PatMedOperationItem> patMedOperationItems = otherVisitFacade.selectOperationItemListMaxLevel(pmoi);
                                for (PatMedOperationItem patMedOperationItem : patMedOperationItems) {
                                    PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOperationItem.getPatid());
                                    if (Objects.isNull(patArchive)) {
@@ -579,7 +577,7 @@
                                    patMedInhospVo.setScheduleCheckFlag("0");
                                    patMedInhospVo.setInhospstate("1");
                                    patMedInhospVo.setFuflag("1");
                                    List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhospVo);
                                    List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhospVo);
                                    if (CollectionUtils.isNotEmpty(patMedInhospList)) {
                                        ServiceTaskScheduleDetail scheduleDetailVo = new ServiceTaskScheduleDetail();
                                        scheduleDetailVo.setTaskid(serviceTask.getTaskid());
@@ -601,7 +599,7 @@
                                        PatMedInhosp flagUpd = new PatMedInhosp();
                                        flagUpd.setInhospid(patMedInhospList.get(0).getInhospid());
                                        flagUpd.setScheduleCheckFlag("1");
                                        patMedInhospMapper.updatePatMedInhosp(flagUpd);
                                        inhospVisitFacade.updatePatMedInhosp(flagUpd);
                                    }
                                }
                            }
@@ -628,9 +626,9 @@
    @Override
    public List<PatMedInhosp> getDocAndPat(PatMedInhosp patMedInhosp) {
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
        for (PatMedInhosp patMedInhosp1 : patMedInhospList) {
            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
            String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid());
            patMedInhosp1.setTagname(tagname);
        }
        if (StringUtils.isNotEmpty(patMedInhosp.getPatname()) || StringUtils.isNotEmpty(patMedInhosp.getNurseName()) || StringUtils.isNotEmpty(patMedInhosp.getDrname())) {
@@ -693,34 +691,34 @@
                log.info("该患者药品宣教长期任务不存在,任务ID为:{}", taskid);
                patMedInhosp1.setMedcheckFlag("2");
                patMedInhosp1.setLongTaskReason(longTaskReason + " & è¯¥æ‚£è€…药品宣教长期任务不存在,任务ID为:" + taskid);
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                return;
            }
            if (type == 1) {
                log.info("该患者出院随访长期任务不存在,任务ID为:{}", taskid);
                patMedInhosp1.setDeptcheckFlag("2");
                patMedInhosp1.setLongTaskReason(longTaskReason + " & è¯¥æ‚£è€…离院科室长期任务不存在,任务ID为:" + taskid);
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                return;
            } else if (type == 2) {
                patMedInhosp1.setWardcheckFlag("2");
                patMedInhosp1.setLongTaskReason(longTaskReason + " & è¯¥æ‚£è€…离院病区长期任务不存在,任务ID为:" + taskid);
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                return;
            } else if (type == 3) {
                patMedInhosp1.setDiagcheckFlag("2");
                patMedInhosp1.setLongTaskReason(longTaskReason + " & è¯¥æ‚£è€…疾病长期任务不存在,任务ID为:" + taskid);
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                return;
            } else if (type == 4) {
                patMedInhosp1.setInDeptcheckFlag("2");
                patMedInhosp1.setLongTaskReason(longTaskReason + " & è¯¥æ‚£è€…入院科室长期任务不存在,任务ID为:" + taskid);
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                return;
            } else if (type == 5) {
                patMedInhosp1.setInWardcheckFlag("2");
                patMedInhosp1.setLongTaskReason(longTaskReason + " & è¯¥æ‚£è€…入院病区长期任务不存在,任务ID为:" + taskid);
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                return;
            }
        } else {
@@ -883,7 +881,7 @@
                if (type == 3) patMedInhosp2.setDiagcheckFlag("1");
                if (type == 4) patMedInhosp2.setInDeptcheckFlag("1");
                if (type == 5) patMedInhosp2.setInWardcheckFlag("1");
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp2);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp2);
            } else {
                //生成子任务失败,
                log.info("生成子任务失败serviceSubtask的taskid为:{},patid为:{}", serviceSubtask.getTaskid(), serviceSubtask.getPatid());
@@ -895,7 +893,7 @@
                if (type == 4) patMedInhosp2.setInDeptcheckFlag("2");
                if (type == 5) patMedInhosp2.setInWardcheckFlag("2");
                patMedInhosp2.setRemark("生成子任务失败 " + type);
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp2);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp2);
            }
        } catch (Exception e) {
            //出错回滚事务
@@ -907,7 +905,7 @@
            if (type == 3) patMedInhosp2.setDiagcheckFlag("2");
            if (type == 0) patMedInhosp2.setMedcheckFlag("2");
            patMedInhosp2.setRemark("生成子任务报错回滚 " + type);
            patMedInhospMapper.updatePatMedInhosp(patMedInhosp2);
            inhospVisitFacade.updatePatMedInhosp(patMedInhosp2);
            e.printStackTrace();
        }
    }
@@ -934,7 +932,7 @@
            log.info("该手术对应手术等级的长期任务不存在,任务ID为:{}", taskid);
            patMedOperationItem.setOpercheckFlag("2");
            patMedOperationItem.setLongTaskReason(" & è¯¥æ‰‹æœ¯å¯¹åº”手术等级的长期任务不存在,任务ID为:" + taskid +";");
            patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem);
            otherVisitFacade.updateOperationItem(patMedOperationItem);
            return;
        } else {
            serviceTask = serviceTasks.get(0);
@@ -957,7 +955,7 @@
        if(!active.equals("hzszlyy")){
            patMedInhosp.setSerialnum(patMedOperationItem.getSerialnum());
        }
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
        if (CollectionUtils.isEmpty(patMedInhospList)) {
            return;
@@ -1032,7 +1030,7 @@
                PatMedOperationItem patMedOperationItem2 = new PatMedOperationItem();
                patMedOperationItem2.setId(patMedOperationItem.getId());
                patMedOperationItem2.setOpercheckFlag("1");
                patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2);
                otherVisitFacade.updateOperationItem(patMedOperationItem2);
            } else {
                //生成子任务失败,
                log.info("生成子任务失败serviceSubtask的taskid为:{},patid为:{}", serviceSubtask.getTaskid(), serviceSubtask.getPatid());
@@ -1041,7 +1039,7 @@
                patMedOperationItem2.setOpercheckFlag("2");
                patMedOperationItem2.setLongTaskReason("生成子任务失败 4;");
                patMedOperationItem2.setUpdateTime(new Date());
                patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2);
                otherVisitFacade.updateOperationItem(patMedOperationItem2);
            }
        } catch (Exception e) {
            //出错回滚事务
@@ -1053,7 +1051,7 @@
            patMedOperationItem2.setOpercheckFlag("2");
            patMedOperationItem2.setUpdateTime(new Date());
            patMedOperationItem2.setLongTaskReason("生成子任务报错回滚 4;");
            patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem2);
            otherVisitFacade.updateOperationItem(patMedOperationItem2);
            e.printStackTrace();
        }
    }
@@ -1173,7 +1171,7 @@
            if (type != 4 && type != 5) {
                patMedInhosp1.setDeptcheckFlag("2");
                patMedInhosp1.setRemark(patMedInhosp1.getRemark() + "& è¯¥æ‚£è€…疾病出院时间为空,出院记录ID为:" + patMedInhosp1.getInhospid());
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                //如果出院时间为空,则返回一个新对象
                return new ServiceSubtask();
            }
@@ -1273,10 +1271,10 @@
        } else {
            patMedOperationItem.setOpercheckFlag("2");
            patMedOperationItem.setLongTaskReason("该患者手术出院时间为空,手术详情ID为:" + patMedOperationItem.getId() + ";");
            patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem);
            otherVisitFacade.updateOperationItem(patMedOperationItem);
//            patMedInhosp1.setDeptcheckFlag("2");
//            patMedInhosp1.setRemark(patMedInhosp1.getRemark() + "& è¯¥æ‚£è€…手术出院时间为空,出院记录ID为:" + patMedInhosp1.getInhospid());
//            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
//            inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
            //如果出院时间为空,则返回一个新对象
            return null;
        }
@@ -1370,7 +1368,7 @@
        pmoi.setMainFlag("1");
        //每次查询只查最大的手术等级记录
        List<PatMedOperationItem> patMedOperationItems = patMedOperationItemMapper.selectOperationItemListMaxLevel(pmoi);
        List<PatMedOperationItem> patMedOperationItems = otherVisitFacade.selectOperationItemListMaxLevel(pmoi);
        log.info("dealOutHospInfo需要处理的出院手术患者信息:{}", CollectionUtils.isNotEmpty(patMedOperationItems) ? patMedOperationItems.size() : null);
        for (PatMedOperationItem opItem : patMedOperationItems) {
@@ -1407,11 +1405,11 @@
                serviceTaskopers.addAll(serviceTaskopersWard);
                //如果部门模板为空(将deptIsNull设置为true)
                if (CollectionUtils.isEmpty(serviceTaskopers) || serviceTaskopers.size() == 0) {
                    PatMedOperationItem patMedOperationItem = patMedOperationItemMapper.selectPatMedOperationItemById(opItem.getId());
                    PatMedOperationItem patMedOperationItem = otherVisitFacade.selectOperationItemById(opItem.getId());
                    patMedOperationItem.setOpercheckFlag("2");
                    patMedOperationItem.setLongTaskReason("所患的手术未配置长期任务;");
                    patMedOperationItem.setUpdateTime(new Date());
                    patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem);
                    otherVisitFacade.updateOperationItem(patMedOperationItem);
                } else {
                    for (ServiceTaskoper serviceTaskoper : serviceTaskopers) {
                        writeInSubTaskForOp(serviceTaskoper.getTaskId(), true, opItem, config);
@@ -1424,7 +1422,7 @@
                opItem.setUpdateTime(new Date());
                opItem.setOpercheckFlag("2");
                opItem.setLongTaskReason("人员手术处理异常");
                patMedOperationItemMapper.updatePatMedOperationItem(opItem);
                otherVisitFacade.updateOperationItem(opItem);
            }
        }
    }
@@ -1435,10 +1433,10 @@
        pmjb.setDiagcheckFlag("0");
        pmjb.setInhospstate("1");
        pmjb.setFuflag("1");
        List<PatMedInhosp> patMedInhospJBs = patMedInhospMapper.selectPatMedInhospList(pmjb);
        List<PatMedInhosp> patMedInhospJBs = inhospVisitFacade.selectPatMedInhospList(pmjb);
        log.info("dealOutHospInfo需要处理的出院疾病患者信息:{}", CollectionUtils.isNotEmpty(patMedInhospJBs) ? patMedInhospJBs.size() : null);
        for (PatMedInhosp patMedInhosp1 : patMedInhospJBs) {
            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
            String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid());
            patMedInhosp1.setTagname(tagname);
        }
@@ -1448,7 +1446,7 @@
            if (Objects.isNull(patArchive)) {
                pmiJB.setDiagcheckFlag("2");
                pmiJB.setLongTaskReason("患者基本信息为空");
                patMedInhospMapper.updatePatMedInhosp(pmiJB);
                inhospVisitFacade.updatePatMedInhosp(pmiJB);
                continue;
            }
            try {
@@ -1477,16 +1475,16 @@
                //如果部门模板为空(将deptIsNull设置为true)
                if (StringUtils.isNotEmpty(errorIcd)) {
                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid());
                    PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(pmiJB.getInhospid());
                    pmiJB.setDiagcheckFlag("2");
                    pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd);
                    patMedInhospMapper.updatePatMedInhosp(pmiJB);
                    inhospVisitFacade.updatePatMedInhosp(pmiJB);
                } else if (CollectionUtils.isEmpty(serviceTaskdiags)) {
                    errorIcd = "该患者所患疾病未配置长期任务;";
                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid());
                    PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(pmiJB.getInhospid());
                    pmiJB.setDiagcheckFlag("2");
                    pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd);
                    patMedInhospMapper.updatePatMedInhosp(pmiJB);
                    inhospVisitFacade.updatePatMedInhosp(pmiJB);
                } else {
                    int flag = 0;
                    for (ServiceTaskdiag serviceTaskdept1 : serviceTaskdiags) {
@@ -1502,10 +1500,10 @@
                    if (flag == 0) {
                        log.error("该科室或病区对于患者所患疾病未配置长期任务,患者:{}", pmiJB.getInhospid());
                        errorIcd = "该科室或病区对于患者所患疾病未配置长期任务;";
                        PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiJB.getInhospid());
                        PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(pmiJB.getInhospid());
                        pmiJB.setDiagcheckFlag("2");
                        pmiJB.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorIcd : errorIcd);
                        patMedInhospMapper.updatePatMedInhosp(pmiJB);
                        inhospVisitFacade.updatePatMedInhosp(pmiJB);
                    }
                }
@@ -1515,7 +1513,7 @@
                log.error("人员疾病处理出异常了:{}", e.getMessage());
                pmiJB.setDiagcheckFlag("2");
                pmiJB.setLongTaskReason("人员疾病处理异常");
                patMedInhospMapper.updatePatMedInhosp(pmiJB);
                inhospVisitFacade.updatePatMedInhosp(pmiJB);
            }
        }
    }
@@ -1526,10 +1524,10 @@
        pmbq.setWardcheckFlag("0");
        pmbq.setInhospstate("1");
        pmbq.setFuflag("1");
        List<PatMedInhosp> patMedInhospBQs = patMedInhospMapper.selectPatMedInhospList(pmbq);
        List<PatMedInhosp> patMedInhospBQs = inhospVisitFacade.selectPatMedInhospList(pmbq);
        log.info("dealOutHospInfo需要处理的出院病区患者信息:{}", CollectionUtils.isNotEmpty(patMedInhospBQs) ? patMedInhospBQs.size() : null);
        for (PatMedInhosp patMedInhosp1 : patMedInhospBQs) {
            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
            String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid());
            patMedInhosp1.setTagname(tagname);
        }
@@ -1538,7 +1536,7 @@
            if ("1".equals(pmiBQ1.getLeavehospitaldistrictcode()) && pmiBQ1.getDiagcheckFlag().equals("1")) {
                pmiBQ1.setWardcheckFlag("2");
                pmiBQ1.setLongTaskReason("根据交叉生成随访任务规则,病区任务可以不用生成");
                patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
                inhospVisitFacade.updatePatMedInhosp(pmiBQ1);
                continue;
            }
@@ -1547,7 +1545,7 @@
            if (Objects.isNull(patArchive)) {
                pmiBQ1.setWardcheckFlag("2");
                pmiBQ1.setLongTaskReason("患者基本信息为空");
                patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
                inhospVisitFacade.updatePatMedInhosp(pmiBQ1);
                continue;
            }
            try {
@@ -1569,10 +1567,10 @@
                }
                //如果部门模板为空(将deptIsNull设置为true)
                if (StringUtils.isNotEmpty(errorreason)) {
                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(pmiBQ1.getInhospid());
                    PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(pmiBQ1.getInhospid());
                    pmiBQ1.setWardcheckFlag("2");
                    pmiBQ1.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorreason : errorreason);
                    patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
                    inhospVisitFacade.updatePatMedInhosp(pmiBQ1);
                } else {
                    for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
                        writeInSubTask(serviceTaskdept1.getTaskId(), true, pmiBQ1, patArchive, 2, config);
@@ -1584,7 +1582,7 @@
                log.error("人员病区处理出异常了:{}", e.getMessage());
                pmiBQ1.setWardcheckFlag("2");
                pmiBQ1.setLongTaskReason("人员病区处理异常");
                patMedInhospMapper.updatePatMedInhosp(pmiBQ1);
                inhospVisitFacade.updatePatMedInhosp(pmiBQ1);
            }
        }
    }
@@ -1595,10 +1593,10 @@
        pmks.setDeptcheckFlag("0");
        pmks.setInhospstate("1");
        pmks.setFuflag("1");
        List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(pmks);
        List<PatMedInhosp> patMedInhosps = inhospVisitFacade.selectPatMedInhospList(pmks);
        log.info("dealOutHospInfo需要处理的出院部门患者信息:{}", CollectionUtils.isNotEmpty(patMedInhosps) ? patMedInhosps.size() : null);
        for (PatMedInhosp patMedInhosp1 : patMedInhosps) {
            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
            String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid());
            patMedInhosp1.setTagname(tagname);
        }
@@ -1607,7 +1605,7 @@
            if ("1".equals(patMedInhosp1.getLeavehospitaldistrictcode()) && patMedInhosp1.getDiagcheckFlag().equals("1")) {
                patMedInhosp1.setDeptcheckFlag("2");
                patMedInhosp1.setLongTaskReason("根据交叉生成随访任务规则,部门任务可以不用生成");
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                continue;
            }
            //获取患者信息
@@ -1615,7 +1613,7 @@
            if (Objects.isNull(patArchive)) {
                patMedInhosp1.setDeptcheckFlag("2");
                patMedInhosp1.setLongTaskReason("患者基本信息为空");
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                continue;
            }
            try {
@@ -1629,10 +1627,10 @@
                List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
                //如果部门模板为空(将deptIsNull设置为true)
                if (CollectionUtils.isEmpty(serviceTaskdepts) || serviceTaskdepts.size() == 0) {
                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                    PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                    patMedInhosp1.setDeptcheckFlag("2");
                    patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该患者所在科室未配置离院长期任务;");
                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                    inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                } else {
                    for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
                        writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config);
@@ -1644,7 +1642,7 @@
                log.error("人员科室处理出异常了:{}", e.getMessage());
                patMedInhosp1.setDeptcheckFlag("2");
                patMedInhosp1.setLongTaskReason("人员科室处理异常");
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
            }
        }
    }
@@ -1680,7 +1678,7 @@
        if (StringUtils.isNotEmpty(remark)) {
            updateObj.setRemark(remark + " (type=" + type + ")");
        }
        patMedInhospMapper.updatePatMedInhosp(updateObj);
        inhospVisitFacade.updatePatMedInhosp(updateObj);
    }
    /**
@@ -1695,7 +1693,7 @@
            if (Objects.isNull(patArchive)) {
                patMedInhosp1.setDeptcheckFlag("2");
                patMedInhosp1.setLongTaskReason("患者基本信息为空");
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                continue;
            }
@@ -1841,7 +1839,7 @@
                log.error("【基于规则】患者{}处理异常:{}", patMedInhosp1.getInhospid(), e.getMessage());
                patMedInhosp1.setDeptcheckFlag("2");
                patMedInhosp1.setLongTaskReason("基于规则处理异常");
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
            }
        }
    }
@@ -1864,12 +1862,12 @@
            List<ServiceTaskdept> serviceTaskdepts = serviceTaskdeptMapper.selectServiceTaskdeptList(serviceTaskdept);
            if (CollectionUtils.isEmpty(serviceTaskdepts)) {
                PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                patMedInhosp1.setDeptcheckFlag("2");
                patMedInhosp1.setWardcheckFlag(patMedInhosp.getWardcheckFlag());
                patMedInhosp1.setDiagcheckFlag(patMedInhosp.getDiagcheckFlag());
                patMedInhosp1.setLongTaskReason(patMedInhosp.getLongTaskReason() + "该患者所在科室未配置离院长期任务;");
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
            } else {
                for (ServiceTaskdept serviceTaskdept1 : serviceTaskdepts) {
                    writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 1, config);
@@ -1881,7 +1879,7 @@
            log.error("【科室任务】患者{}处理异常:{}", patMedInhosp1.getInhospid(), e.getMessage());
            patMedInhosp1.setDeptcheckFlag("2");
            patMedInhosp1.setLongTaskReason("科室任务处理异常");
            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
        }
        return generatedCount;
    }
@@ -1912,12 +1910,12 @@
            }
            if (StringUtils.isNotEmpty(errorreason)) {
                PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                patMedInhosp1.setWardcheckFlag("2");
                patMedInhosp1.setDeptcheckFlag(patMedInhosp.getDeptcheckFlag());
                patMedInhosp1.setDiagcheckFlag(patMedInhosp.getDiagcheckFlag());
                patMedInhosp1.setLongTaskReason(StringUtils.isNotEmpty(patMedInhosp.getLongTaskReason()) ? patMedInhosp.getLongTaskReason() + errorreason : errorreason);
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
            } else {
                for (ServiceTaskdept serviceTaskdept1 : serviceTaskdeptList) {
                    writeInSubTask(serviceTaskdept1.getTaskId(), true, patMedInhosp1, patArchive, 2, config);
@@ -1929,7 +1927,7 @@
            log.error("【病区任务】患者{}处理异常:{}", patMedInhosp1.getInhospid(), e.getMessage());
            patMedInhosp1.setWardcheckFlag("2");
            patMedInhosp1.setLongTaskReason("病区任务处理异常");
            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
        }
        return generatedCount;
    }
@@ -1952,10 +1950,10 @@
            if (active.equals("nhfy")) {
                serviceTaskdiag.setIcd10name(patMedInhosp1.getLeavediagname());
                if (StringUtils.isEmpty(patMedInhosp1.getLeavediagname())) {
                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                    PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                    patMedInhosp1.setDiagcheckFlag("2");
                    patMedInhosp1.setLongTaskReason("该患者主诊断名称为空;");
                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                    inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                    return 0;
                }
            } else {
@@ -1965,10 +1963,10 @@
            List<ServiceTaskdiag> serviceTaskdiags = serviceTaskdiagMapper.selectServiceTaskdiagListByIcdName(serviceTaskdiag);
            if (CollectionUtils.isEmpty(serviceTaskdiags)) {
                PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                patMedInhosp.setDiagcheckFlag("2");
                patMedInhosp.setLongTaskReason("该患者所患疾病未配置长期任务;");
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
                inhospVisitFacade.updatePatMedInhosp(patMedInhosp);
            } else {
                int flag = 0;
                for (ServiceTaskdiag serviceTaskdiag1 : serviceTaskdiags) {
@@ -1984,10 +1982,10 @@
                }
                if (flag == 0) {
                    log.error("该科室或病区对于患者所患疾病未配置长期任务,患者:{}", patMedInhosp1.getInhospid());
                    PatMedInhosp patMedInhosp = patMedInhospMapper.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                    PatMedInhosp patMedInhosp = inhospVisitFacade.selectPatMedInhospByInhospid(patMedInhosp1.getInhospid());
                    patMedInhosp.setDiagcheckFlag("2");
                    patMedInhosp.setLongTaskReason("该科室或病区对于患者所患疾病未配置长期任务;");
                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
                    inhospVisitFacade.updatePatMedInhosp(patMedInhosp);
                }
            }
        } catch (Exception e) {
@@ -1995,10 +1993,52 @@
            log.error("【疾病任务】患者{}处理异常:{}", patMedInhosp1.getInhospid(), e.getMessage());
            patMedInhosp1.setDiagcheckFlag("2");
            patMedInhosp1.setLongTaskReason("疾病任务处理异常");
            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            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/PatMedOperationItemServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/PatMedOperationServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospProvisionalServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/PatMedOuthospServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/PersonVoiceServiceImpl.java
@@ -29,6 +29,14 @@
import java.nio.ByteBuffer;
import java.nio.file.Files;
import com.ruoyi.template.domain.SvyLibTemplateScriptWjx;
import com.ruoyi.template.domain.SvyLibTemplateTargetoptionWjx;
import com.ruoyi.template.domain.SvyLibTopicdirection;
import com.ruoyi.template.mapper.SvyLibTemplateScriptWjxMapper;
import com.ruoyi.template.mapper.SvyLibTemplateTargetoptionWjxMapper;
import com.ruoyi.template.mapper.SvyLibTopicdirectionMapper;
import com.ruoyi.template.domain.SvyLibTemplateWjx;
import com.ruoyi.template.mapper.SvyLibTemplateWjxMapper;
/**
 * çŸ­ä¿¡è´¦å·Service业务层处理
 *
smartor/src/main/java/com/smartor/service/impl/PersonWorkbenchServiceImpl.java
@@ -1,10 +1,10 @@
package com.smartor.service.impl;
import com.smartor.domain.PatMedOuthosp;
import com.smartor.domain.PatMedOuthospQueryReq;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.outpatientvisit.domain.PatMedOuthospQueryReq;
import com.smartor.domain.PerSonWorkbenchDto;
import com.smartor.mapper.PatArchiveOutMapper;
import com.smartor.mapper.PatMedOuthospMapper;
import com.ruoyi.outpatientvisit.mapper.PatMedOuthospMapper;
import com.smartor.service.PersonWorkbenchService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
smartor/src/main/java/com/smartor/service/impl/SchemeLocallibraryServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/ServicPhoneServiceImpl.java
@@ -18,10 +18,10 @@
import com.ruoyi.system.service.ISysConfigService;
import com.smartor.common.FtpService;
import com.smartor.common.ScheduleSubtaskBuilder;
import com.smartor.config.PhoneUtils;
import com.ruoyi.common.utils.PhoneUtils;
import com.smartor.domain.DTO.ServiceSubtaskDetailDTO;
import com.smartor.domain.*;
import com.smartor.domain.VO.HeLibraryCountVO;
import com.ruoyi.template.domain.VO.HeLibraryCountVO;
import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
import com.smartor.domain.VO.TransferDeptVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -1,5 +1,7 @@
package com.smartor.service.impl;
import com.ruoyi.othervisit.api.OtherVisitFacade;
import com.ruoyi.inhospvisit.api.InhospVisitFacade;
import cn.hutool.core.bean.BeanUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
@@ -35,6 +37,12 @@
import java.util.*;
import java.util.stream.Collectors;
import com.ruoyi.outpatientvisit.domain.PatMedOuthospQueryReq;
import com.ruoyi.othervisit.domain.PatMedOperationItem;
import com.ruoyi.outpatientvisit.mapper.PatMedOuthospMapper;
import com.ruoyi.othervisit.domain.PatMedOperation;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
/**
 * ä¸»é”®Service业务层处理
 *
@@ -46,6 +54,12 @@
public class ServiceExternalServiceImpl implements IServiceExternalService {
    @Autowired
    private SysDept2Mapper sysDeptMapper;
    /**
     * æ‰‹æœ¯æ•°æ®ä¸€å¾‹ç» ruoyi-othervisit çš„门面取用(跨模块数据访问原则)。
     */
    @Autowired
    private OtherVisitFacade otherVisitFacade;
    @Autowired
    private SysUser2Mapper sysUserMapper;
    @Autowired
@@ -57,11 +71,7 @@
    @Autowired
    private PatArchivecontactMapper patArchivecontactMapper;
    @Autowired
    private PatMedInhospMapper patMedInhospMapper;
    @Autowired
    private PatMedOperationMapper patMedOperationMapper;
    @Autowired
    private PatMedOperationItemMapper patMedOperationItemMapper;
    private InhospVisitFacade inhospVisitFacade;
    @Autowired
    private PatMedInspectionMapper patMedInspectionMapper;
    @Autowired
@@ -483,9 +493,9 @@
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
        patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
        for (PatMedInhosp patMedInhosp1 : patMedInhospList) {
            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
            String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid());
            patMedInhosp1.setTagname(tagname);
        }
        if (CollectionUtils.isNotEmpty(patMedInhospList)) {
@@ -498,7 +508,7 @@
                patMedInhosp1.setOperatorId(ObjectUtils.isNotEmpty(JiuZhenXX.get("CaoZuoRID")) ? JiuZhenXX.get("CaoZuoRID").toString() : null);
            }
            patMedInhosp1.setUpdateTime(new Date());
            int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            int i = inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        }
        return true;
@@ -577,9 +587,9 @@
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
        patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
        for (PatMedInhosp patMedInhosp1 : patMedInhospList) {
            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
            String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid());
            patMedInhosp1.setTagname(tagname);
        }
        PatMedInhosp patMedInhosp1 = new PatMedInhosp();
@@ -694,7 +704,7 @@
                //不需要长期任务随访
                patMedInhosp1.setFuflag("0");
            }
            int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            int i = inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        } else {
            if (ObjectUtils.isNotEmpty(BingRenXX)) {
@@ -718,7 +728,7 @@
                patMedInhosp1.setFuflag("0");
            }
            int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1);
            int i = inhospVisitFacade.insertPatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        }
        return true;
@@ -776,9 +786,9 @@
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
        patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
        for (PatMedInhosp patMedInhosp1 : patMedInhospList) {
            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
            String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid());
            patMedInhosp1.setTagname(tagname);
        }
        PatMedInhosp patMedInhosp1 = new PatMedInhosp();
@@ -860,7 +870,7 @@
                //不需要长期任务随访
                patMedInhosp1.setFuflag("0");
            }
            int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            int i = inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        } else {
            if (ObjectUtils.isNotEmpty(BingRenXX)) {
@@ -883,7 +893,7 @@
                //不需要长期任务随访
                patMedInhosp1.setFuflag("0");
            }
            int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1);
            int i = inhospVisitFacade.insertPatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        }
        return true;
@@ -898,9 +908,9 @@
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
        patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
        for (PatMedInhosp patMedInhosp1 : patMedInhospList) {
            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
            String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid());
            patMedInhosp1.setTagname(tagname);
        }
        if (CollectionUtils.isNotEmpty(patMedInhospList)) {
@@ -914,7 +924,7 @@
                patMedInhosp1.setOperatorId(ObjectUtils.isNotEmpty(JiuZhenXX.get("CaoZuoRXM")) ? JiuZhenXX.get("CaoZuoRID").toString() : null);
            }
            patMedInhosp1.setUpdateTime(new Date());
            int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            int i = inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
            //取消出院,就不需要服务了,需要通过patid和sendstate=2或者sendstate=1去查询一下,service_subtask里是否有正在执行的任务,有的话,立即停了
            ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
@@ -998,9 +1008,9 @@
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
        patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
        for (PatMedInhosp patMedInhosp1 : patMedInhospList) {
            String tagname = patMedInhospMapper.getTagnameBypatid(patMedInhosp1.getPatid());
            String tagname = inhospVisitFacade.getTagnameBypatid(patMedInhosp1.getPatid());
            patMedInhosp1.setTagname(tagname);
        }
        Map<String, Object> JiuZhenXX = ObjectUtils.isNotEmpty(yeWuXX) ? (Map<String, Object>) yeWuXX.get("JiuZhenXX") : null;
@@ -1084,7 +1094,7 @@
        if (CollectionUtils.isNotEmpty(patMedInhospList)) {
            patMedInhosp1.setUpdateTime(new Date());
            patMedInhosp1.setOrgid(ObjectUtils.isNotEmpty(BingRenXX) && ObjectUtils.isNotEmpty(BingRenXX.get("ZuZhiJGID")) ? BingRenXX.get("ZuZhiJGID").toString() : null);
            int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            int i = inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        } else {
            if (ObjectUtils.isNotEmpty(BingRenXX)) {
@@ -1103,7 +1113,7 @@
            patMedInhosp1.setPatname(patArchive.getName());
            patMedInhosp1.setCreateTime(new Date());
            int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1);
            int i = inhospVisitFacade.insertPatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        }
@@ -1138,7 +1148,7 @@
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
        patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
        PatMedInhosp patMedInhosp1 = null;
        if (CollectionUtils.isNotEmpty(patMedInhospList)) patMedInhosp1 = patMedInhospList.get(0);
        if (ObjectUtils.isNotEmpty(patMedInhosp1)) {
@@ -1149,7 +1159,7 @@
                    patMedInhosp1.setUpdateTime(new Date());
                    //更新出院状态
                    patMedInhosp1.setInhospstate("1");
                    int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                    int i = inhospVisitFacade.updatePatMedInhosp(patMedInhosp1);
                    if (i != 1) return false;
                } catch (ParseException e) {
                    e.printStackTrace();
@@ -1418,7 +1428,7 @@
        patMedOperation.setPatid(patArchive.getId());
        patMedOperation.setOpreqcode(externalOperationInfo.getShenQingDID());
        //查询一下,该患者是否已经有这些数据
        List<PatMedOperation> patMedOperations = patMedOperationMapper.selectPatMedOperationList(patMedOperation);
        List<PatMedOperation> patMedOperations = otherVisitFacade.selectOperationList(patMedOperation);
        patMedOperation.setOpsstatus(null);
        if (ObjectUtils.isNotEmpty(externalOperationInfo)) {
@@ -1495,10 +1505,10 @@
                //同时去查询,是否在subtask中生成任务,如果生成出得立马删除
            }
            patMedOperation.setUpdateTime(new Date());
            patMedOperationMapper.updatePatMedOperation(patMedOperation);
            otherVisitFacade.updateOperation(patMedOperation);
        } else {
            patMedOperation.setCreateTime(new Date());
            patMedOperationMapper.insertPatMedOperation(patMedOperation);
            otherVisitFacade.insertOperation(patMedOperation);
        }
        log.info("-----patMedOperation的主键id为:{}", patMedOperation.getId());
@@ -1522,7 +1532,7 @@
            }).collect(Collectors.toList()) : null;
            if(ObjectUtils.isNotEmpty(patMedOperation.getId())){
                patMedOperationItemMapper.deleteHardPatMedOperationItemByOpId(patMedOperation.getId().toString());
                otherVisitFacade.deleteHardOperationItemByOpId(patMedOperation.getId().toString());
            }
            //addMianTableFalg是否需要将主手术的信息放到PatMedOperation表中(只有第一个主手术信息需要放,后面的都不需要放了,也就是说,第一个放完后,就要把这个flag改成false)
@@ -1554,12 +1564,12 @@
                    }
                    patMedOperation.setUpdateTime(new Date());
                    patMedOperationMapper.updatePatMedOperation(patMedOperation);
                    otherVisitFacade.updateOperation(patMedOperation);
                    addMianTableFalg = false;
                }
                patMedOperationItem.setCreateTime(new Date());
                patMedOperationItem.setUpdateTime(new Date());
                patMedOperationItemMapper.insertPatMedOperationItem(patMedOperationItem);
                otherVisitFacade.insertOperationItem(patMedOperationItem);
            }
        }
        return true;
@@ -1583,7 +1593,7 @@
        patMedOperation.setOrgid(patArchive.getOrgid());
        patMedOperation.setOpreqcode(externalOperationInfo.getShenQingDID());
        //查询一下,该患者是否已经有这些数据
        List<PatMedOperation> patMedOperations = patMedOperationMapper.selectPatMedOperationList(patMedOperation);
        List<PatMedOperation> patMedOperations = otherVisitFacade.selectOperationList(patMedOperation);
        if (CollectionUtils.isNotEmpty(patMedOperations)) {
            for(PatMedOperation operation : patMedOperations){
                Long id = operation.getId();
@@ -1598,7 +1608,7 @@
                    //获取需要出院手术随访,未处理的数据
                    pmoi.setOpid(operation.getId().toString());
                    List<PatMedOperationItem> patMedOperationItems
                            = patMedOperationItemMapper.selectOperationItemList(pmoi);
                            = otherVisitFacade.selectOperationItemListByCondition(pmoi);
                    List<Long> operationItemIds = patMedOperationItems.stream()
                            .map(PatMedOperationItem::getId)
                            .filter(Objects::nonNull)
@@ -1632,8 +1642,8 @@
                        }
                    }
                    operation.setUpdateTime(new Date());
                    patMedOperationMapper.updatePatMedOperation(operation);
                    patMedOperationItemMapper.deleteSoftPatMedOperationItemByOpId(operation.getOpid());
                    otherVisitFacade.updateOperation(operation);
                    otherVisitFacade.deleteSoftOperationItemByOpId(operation.getOpid());
                }
            }
        }
@@ -1752,7 +1762,7 @@
            //医院那边说要用病案号,不要用住院号
            patMedInhosp.setInhospno(externalInHospPatientInfo.getBingAnHao());
            patMedInhosp.setSerialnum(externalInHospPatientInfo.getJiuZhenYWID());
            patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
            patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
            patMedInhosp.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC());
            patMedInhosp.setHospitalcode(externalInHospPatientInfo.getZuZhiJGID());
            patMedInhosp.setStarttime(externalInHospPatientInfo.getRuYuanSJ());
@@ -1803,10 +1813,10 @@
        int i = 1;
        if (CollectionUtils.isNotEmpty(patMedInhospList)) {
            patMedInhosp.setInhospid(patMedInhospList.get(0).getInhospid());
            i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
            i = inhospVisitFacade.updatePatMedInhosp(patMedInhosp);
        } else {
            patMedInhosp.setCreateTime(new Date());
            i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp);
            i = inhospVisitFacade.insertPatMedInhosp(patMedInhosp);
        }
        if (i == 1) return true;
        return false;
smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java
@@ -15,7 +15,12 @@
import com.ruoyi.common.utils.http.HttpUtils;
import com.smartor.common.DistinctByProperty;
import com.smartor.domain.*;
import com.ruoyi.outpatientvisit.domain.PatMedOuthospError;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.inhospvisit.api.InhospVisitFacade;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.smartor.mapper.*;
import com.ruoyi.outpatientvisit.mapper.PatMedOuthospErrorMapper;
import com.smartor.service.IPatArchiveService;
import com.smartor.service.IPatMedInhospService;
import com.smartor.service.IPatMedOuthospService;
@@ -91,7 +96,7 @@
    @Autowired
    private ServiceSubtaskMapper serviceSubtaskMapper;
    @Autowired
    private PatMedInhospMapper patMedInhospMapper;
    private InhospVisitFacade inhospVisitFacade;
    @Autowired
    private PatMedOuthospErrorMapper patMedOuthospErrorMapper;
@@ -918,7 +923,7 @@
                            if (pmIn.getStarttime() != null) {
                                Date dayStart = DateUtils.truncate(pmIn.getStarttime(), Calendar.DAY_OF_MONTH);
                                Date dayEnd = DateUtils.addDays(dayStart, 1);
                                List<PatMedInhosp> outInhosps = patMedInhospMapper.selectOutInhospByPatnoAndOutDate(
                                List<PatMedInhosp> outInhosps = inhospVisitFacade.selectOutInhospByPatnoAndOutDate(
                                        StringUtils.trim(pmIn.getPatno()), dayStart, dayEnd);
                                if (CollectionUtils.isNotEmpty(outInhosps)) {
                                    //存在出院记录,说明该患者是再入院,把上一次出院产生的子任务改成不执行
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -29,6 +29,27 @@
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import com.ruoyi.template.domain.HeLibrary;
import com.ruoyi.template.domain.IvrLibaScriptAssort;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.outpatientvisit.domain.PatMedOuthospQueryReq;
import com.ruoyi.inhospvisit.api.InhospVisitFacade;
import com.ruoyi.outpatientvisit.api.OuthospDataFacade;
import com.ruoyi.template.domain.IvrTaskTemplate;
import com.ruoyi.template.domain.IvrTaskTemplateScriptVO;
import com.ruoyi.template.domain.IvrTaskTemplateTargetoption;
import com.ruoyi.template.service.IIvrTaskTemplateService;
import com.ruoyi.template.domain.IvrLibaTemplateScript;
import com.ruoyi.template.mapper.IvrLibaScriptAssortMapper;
import com.ruoyi.template.service.IIvrLibaTemplateScriptService;
import com.ruoyi.template.domain.SvyLibScriptCategory;
import com.ruoyi.template.domain.SvyLibTemplateScript;
import com.ruoyi.template.domain.SvyTaskTemplate;
import com.ruoyi.template.domain.SvyTaskTemplateScriptVO;
import com.ruoyi.template.domain.SvyTaskTemplateTargetoption;
import com.ruoyi.template.mapper.SvyLibScriptCategoryMapper;
import com.ruoyi.template.service.ISvyTaskTemplateService;
/**
 * ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹Service业务层处理
 *
@@ -40,6 +61,18 @@
public class ServiceSubtaskAnswerServiceImpl implements IServiceSubtaskAnswerService {
    @Autowired
    private ServiceSubtaskAnswerMapper serviceSubtaskAnswerMapper;
    /**
     * è·¨æ¨¡å—访问一律经模块门面(禁止直连已搬走的 Mapper)。
     */
    @Autowired
    private OuthospDataFacade outhospDataFacade;
    /**
     * è·¨æ¨¡å—访问一律经模块门面(禁止直连已搬走的 Mapper)。
     */
    @Autowired
    private InhospVisitFacade inhospVisitFacade;
    @Autowired
    private ServiceSubtaskMapper serviceSubtaskMapper;
@@ -66,11 +99,7 @@
    private PatArchiveMapper patArchiveMapper;
    @Autowired
    private PatMedInhospMapper patMedInhospMapper;
    @Autowired
    private PatMedOuthospMapper patMedOuthospMapper;
    @Autowired
    private IServiceSubtaskDetailTraceService traceService;
@@ -81,8 +110,6 @@
    @Autowired
    private ISvyLibTemplateScriptService svyLibTemplateScriptService;
    @Autowired
    private ISvyTaskTemplateTargetoptionService svyTaskTemplateTargetoptionService;
    @Autowired
    private IIvrTaskTemplateService ivrTaskTemplateService;
@@ -613,13 +640,13 @@
            //住院
            PatMedInhosp patMedInhosp = new PatMedInhosp();
            patMedInhosp.setSerialnum(serviceSubTaskMYDAnswerReq.getSerialnum());
            patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
            patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
            if (CollectionUtils.isNotEmpty(patMedInhospList)) patid = patMedInhospList.get(0).getPatid();
        } else if (serviceSubTaskMYDAnswerReq.getMzzy().equals("2")) {
            //门诊
            PatMedOuthospQueryReq patMedOuthosp = new PatMedOuthospQueryReq();
            patMedOuthosp.setSerialnum(serviceSubTaskMYDAnswerReq.getSerialnum());
            patMedOuthosps = patMedOuthospMapper.callSpQueryOuthosp(patMedOuthosp);
            patMedOuthosps = outhospDataFacade.callSpQueryOuthosp(patMedOuthosp);
            if (CollectionUtils.isNotEmpty(patMedOuthosps)) patid = patMedOuthosps.get(0).getPatid();
        } else if (serviceSubTaskMYDAnswerReq.getMzzy().equals("3")) {
            //指定一个部门,用来处理投诉建议
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskDetailTraceServiceImpl.java
@@ -13,8 +13,6 @@
import com.smartor.domain.VO.ServiceSubtaskDetailTraceVO;
import com.smartor.mapper.ServiceSubtaskDetailMapper;
import com.smartor.mapper.ServiceSubtaskDetailTraceMapper;
import com.smartor.mapper.SvyLibScriptCategoryMapper;
import com.smartor.mapper.SvyLibTemplateScriptMapper;
import com.smartor.service.*;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -34,20 +32,12 @@
    @Autowired
    private ServiceSubtaskDetailMapper serviceSubtaskDetailMapper;
    @Autowired
    private ISvyLibScriptCategoryService iSvyLibScriptCategoryService;
    @Autowired
    private SvyLibScriptCategoryMapper svyLibScriptCategoryMapper;
    @Autowired
    private ISvyLibTemplateScriptService isvyLibTemplateScriptService;
    @Autowired
    private IIvrLibaScriptAssortService iIvrLibaScriptAssortService;
    @Autowired
    private IIvrLibaTemplateScriptService iIvrLibaTemplateScriptService;
    /**
     * æŸ¥è¯¢éšè®¿ä»»åŠ¡å¼‚å¸¸è®°å½•è·Ÿè¸ª
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -25,7 +25,7 @@
import com.ruoyi.system.service.ISysConfigService;
import com.smartor.common.FtpService;
import com.smartor.common.ScheduleSubtaskBuilder;
import com.smartor.config.PhoneUtils;
import com.ruoyi.common.utils.PhoneUtils;
import com.smartor.domain.DTO.*;
import com.smartor.domain.*;
import com.smartor.domain.VO.*;
@@ -62,6 +62,35 @@
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import com.ruoyi.template.domain.VO.HeLibraryCountVO;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.ruoyi.othervisit.domain.PatMedOperationItem;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.outpatientvisit.domain.PatMedOuthospQueryReq;
import com.ruoyi.inhospvisit.api.InhospVisitFacade;
import com.ruoyi.outpatientvisit.api.OuthospDataFacade;
import com.ruoyi.othervisit.api.OtherVisitFacade;
import com.ruoyi.template.domain.IvrTaskTemplate;
import com.ruoyi.template.domain.IvrTaskTemplateScript;
import com.ruoyi.template.domain.IvrTaskTemplateScriptVO;
import com.ruoyi.template.domain.IvrTaskTemplateTargetoption;
import com.ruoyi.template.domain.IvrTaskTemplateVO;
import com.smartor.domain.IvrTaskVisitResult;
import com.ruoyi.template.mapper.IvrTaskTemplateTargetoptionMapper;
import com.smartor.mapper.IvrTaskVisitResultMapper;
import com.ruoyi.template.service.IIvrTaskTemplateScriptService;
import com.ruoyi.template.service.IIvrTaskTemplateService;
import com.ruoyi.template.service.IIvrTaskTemplateTargetoptionService;
import com.ruoyi.template.domain.IvrLibaExtemplatescript;
import com.ruoyi.template.mapper.IvrLibaExtemplatescriptMapper;
import com.ruoyi.template.domain.SvyLibScriptCategory;
import com.ruoyi.template.domain.SvyTaskTemplate;
import com.ruoyi.template.domain.SvyTaskTemplateScript;
import com.ruoyi.template.domain.SvyTaskTemplateScriptVO;
import com.ruoyi.template.domain.SvyTaskTemplateTargetoption;
import com.ruoyi.template.mapper.SvyLibScriptCategoryMapper;
import com.ruoyi.template.service.ISvyTaskTemplateScriptService;
import com.ruoyi.template.service.ISvyTaskTemplateService;
import static cn.hutool.core.convert.Convert.toHex;
/**
@@ -82,6 +111,24 @@
     */
    @Autowired
    private SatisfactionFacade satisfactionFacade;
    /**
     * è·¨æ¨¡å—访问一律经模块门面(禁止直连已搬走的 Mapper)。
     */
    @Autowired
    private OtherVisitFacade otherVisitFacade;
    /**
     * è·¨æ¨¡å—访问一律经模块门面(禁止直连已搬走的 Mapper)。
     */
    @Autowired
    private OuthospDataFacade outhospDataFacade;
    /**
     * è·¨æ¨¡å—访问一律经模块门面(禁止直连已搬走的 Mapper)。
     */
    @Autowired
    private InhospVisitFacade inhospVisitFacade;
    @Autowired
    private ServiceSubtaskMapper serviceSubtaskMapper;
@@ -151,11 +198,7 @@
    @Autowired
    private FtpService ftpService;
    @Autowired
    private PatMedInhospMapper patMedInhospMapper;
    @Autowired
    private PatMedOuthospMapper patMedOuthospMapper;
    @Autowired
    private PatArchiveMapper patArchiveMapper;
@@ -228,8 +271,6 @@
    private ServiceOutPathMapper serviceOutPathMapper;
    private static final String KEY_SEP = "\u0001";
    @Autowired
    private PatMedOperationItemMapper patMedOperationItemMapper;
    /**
     * æŸ¥è¯¢å•一任务(随访)
@@ -452,7 +493,7 @@
                    serviceSubtaskRes.setCurrentPreachform(serviceSubtask.getPreachform().split(",")[0]);
                }
            }
            PatMedInhosp inhosp = patMedInhospMapper.selectPatMedInhospByInhospid(serviceSubtask.getInhospid());
            PatMedInhosp inhosp = inhospVisitFacade.selectPatMedInhospByInhospid(serviceSubtask.getInhospid());
            if (ObjectUtils.isNotEmpty(inhosp)) {
                PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(inhosp.getPatid());
                if (ObjectUtils.isNotEmpty(patArchive)) {
@@ -513,7 +554,7 @@
        patMedInhosp.setDeptcheckFlag("0");
        patMedInhosp.setWardcheckFlag("0");
        patMedInhosp.setDiagcheckFlag("0");
        return patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
        return inhospVisitFacade.updatePatMedInhosp(patMedInhosp);
    }
    public Map<String, String> calculateAge(LocalDate birthdate, LocalDate today) {
@@ -737,7 +778,7 @@
                    PatMedInhosp patMedInhosp = new PatMedInhosp();
                    patMedInhosp.setInhospMydFlag("1");
                    patMedInhosp.setInhospid(inhospid);
                    patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
                    inhospVisitFacade.updatePatMedInhosp(patMedInhosp);
                }
            }
            format = getOutPath(serviceSubtask, rsaPublicKeyExample);
@@ -785,7 +826,7 @@
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        patMedInhosp.setPatid(serviceSubtask1.getPatid());
        patMedInhosp.setInhospstate("0");
        List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospList(patMedInhosp);
        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(serviceSubtask1.getPatid());
        //景宁 æ–°å¢žå†æ¬¡éšè®¿ä¸èƒ½è§¦å‘患者再入院
        boolean inhospAgain = true;
@@ -1232,13 +1273,13 @@
                            patMedInhosp.setWardcheckFlag("0");
                            patMedInhosp.setDiagcheckFlag("0");
                            patMedInhosp.setInhospid(serviceSubtask.getInhospid());
                            patMedInhospMapper.updatePatMedInhosp(patMedInhosp);
                            inhospVisitFacade.updatePatMedInhosp(patMedInhosp);
                        }
                    } else if (serviceSubtask.getServiceType().equals("3")) {
                        if (serviceSubtask.getInhospid() != null) {
                            PatMedOuthospQueryReq req = new PatMedOuthospQueryReq();
                            req.setOuthospno(serviceSubtask.getHospno());
                            List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.callSpQueryOuthosp(req);
                            List<PatMedOuthosp> patMedOuthosps = outhospDataFacade.callSpQueryOuthosp(req);
                            if (CollectionUtils.isNotEmpty(patMedOuthosps)) {
                                PatMedOuthosp patMedOuthosp = patMedOuthosps.get(0);
                                patMedOuthosp.setServerState("0");
@@ -1253,7 +1294,7 @@
                            PatMedOperationItem patMedOperationItem = new PatMedOperationItem();
                            patMedOperationItem.setOpercheckFlag("0");
                            patMedOperationItem.setId(serviceSubtask.getOperationItemId());
                            patMedOperationItemMapper.updatePatMedOperationItem(patMedOperationItem);
                            otherVisitFacade.updateOperationItem(patMedOperationItem);
                        }
                    }
                }
@@ -2890,7 +2931,7 @@
            }
            req.setDeptcode(deptcodes);
            req.setOrgid(request.getOrgid());
            Long count = patMedOuthospMapper.callSpQueryOuthospCount(req);
            Long count = outhospDataFacade.callSpQueryOuthospCount(req);
            serviceStatisticsResponse.setPmoCount(count);
        }
@@ -5461,7 +5502,7 @@
     * @return
     */
    @Override
    public Integer matchOptionIndex(String url, String questionText, String voiceText, List<IvrTaskTemplateTargetoption> options, String uuid) {
    public <T> Integer matchOptionIndex(String url, String questionText, String voiceText, List<T> options, String uuid) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("userQuestion", questionText);
        jsonObject.put("userAnswer", voiceText);
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -5,6 +5,7 @@
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.core.service.TemplateModuleDisabledException;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
@@ -20,6 +21,28 @@
import com.smartor.service.IServiceTaskService;
import org.springframework.transaction.annotation.Transactional;
import com.ruoyi.template.domain.HeLibrary;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.ruoyi.inhospvisit.domain.PatMedInhospVO;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.outpatientvisit.domain.PatMedOuthospQueryReq;
import com.ruoyi.inhospvisit.api.InhospVisitFacade;
import com.ruoyi.outpatientvisit.api.OuthospDataFacade;
import com.ruoyi.template.domain.IvrTaskTemplateScript;
import com.ruoyi.template.domain.IvrTaskTemplateScriptVO;
import com.ruoyi.template.domain.IvrTaskTemplateTargetoption;
import com.ruoyi.template.mapper.IvrTaskTemplateScriptMapper;
import com.ruoyi.template.mapper.IvrTaskTemplateTargetoptionMapper;
import com.ruoyi.template.domain.SvyLibTemplateScript;
import com.ruoyi.template.domain.SvyLibTemplateTargetoption;
import com.ruoyi.template.domain.SvyTaskTemplateScript;
import com.ruoyi.template.domain.SvyTaskTemplateScriptVO;
import com.ruoyi.template.domain.SvyTaskTemplateTargetoption;
import com.ruoyi.template.mapper.SvyLibTemplateScriptMapper;
import com.ruoyi.template.mapper.SvyLibTemplateTargetoptionMapper;
import com.ruoyi.template.mapper.SvyTaskTemplateScriptMapper;
import com.ruoyi.template.mapper.SvyTaskTemplateTargetoptionMapper;
import com.ruoyi.template.api.TemplateFacade;
/**
 * è¯­éŸ³ä»»åŠ¡Service业务层处理
 *
@@ -31,6 +54,24 @@
public class ServiceTaskServiceImpl implements IServiceTaskService {
    @Autowired
    private ServiceTaskMapper serviceTaskMapper;
    /**
     * æ¨¡æ¿æ•°æ®ä¸€å¾‹ç» ruoyi-template çš„门面取用(跨模块数据访问原则)。
     */
    @Autowired
    private TemplateFacade templateFacade;
    /**
     * è·¨æ¨¡å—访问一律经模块门面(禁止直连已搬走的 Mapper)。
     */
    @Autowired
    private OuthospDataFacade outhospDataFacade;
    /**
     * è·¨æ¨¡å—访问一律经模块门面(禁止直连已搬走的 Mapper)。
     */
    @Autowired
    private InhospVisitFacade inhospVisitFacade;
    @Autowired
    private ServiceSubtaskMapper serviceSubtaskMapper;
    @Autowired
@@ -40,8 +81,6 @@
    @Autowired
    private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper;
    @Autowired
    private HeLibraryMapper heLibraryMapper;
    @Autowired
    private SvyTaskTemplateScriptMapper svyTaskTemplateScriptMapper;
    @Autowired
    private IvrTaskTemplateScriptMapper ivrTaskTemplateScriptMapper;
@@ -49,10 +88,6 @@
    private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper;
    @Autowired
    private PatArchiveMapper patArchiveMapper;
    @Autowired
    private PatMedInhospMapper patMedInhospMapper;
    @Autowired
    private PatMedOuthospMapper patMedOuthospMapper;
    @Autowired
    private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper;
    @Autowired
@@ -303,14 +338,14 @@
        if (StringUtils.isNotEmpty(zyserialnum)) {
            PatMedInhospVO patMedInhospVO = new PatMedInhospVO();
            patMedInhospVO.setSerialnum(zyserialnum);
            List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospListByCondition(patMedInhospVO);
            List<PatMedInhosp> patMedInhospList = inhospVisitFacade.selectPatMedInhospListByCondition(patMedInhospVO);
            if (CollectionUtils.isNotEmpty(patMedInhospList)) {
                patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhospList.get(0).getPatid());
            }
        } else if (StringUtils.isNotEmpty(mzserialnum)) {
            PatMedOuthospQueryReq patMedOuthosp = new PatMedOuthospQueryReq();
            patMedOuthosp.setSerialnum(mzserialnum);
            List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.callSpQueryOuthosp(patMedOuthosp);
            List<PatMedOuthosp> patMedOuthosps = outhospDataFacade.callSpQueryOuthosp(patMedOuthosp);
            if (CollectionUtils.isNotEmpty(patMedOuthosps)) {
                patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosps.get(0).getPatid());
            }
@@ -619,7 +654,18 @@
                serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
            }
        }
        HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(Long.valueOf(templateId));
        HeLibrary heLibrary;
        try {
            heLibrary = templateFacade.findHeLibraryById(Long.valueOf(templateId));
        } catch (TemplateModuleDisabledException e) {
            // æ¨¡æ¿æ¨¡å—被关闭(sys_config: template.enabled=false):
            // è¿™é‡Œé™çº§ä¸ºç©ºåˆ—表,而**不是**让异常冒出去 â€”—
            // æ‚£è€…打开的宣教页面照常可看、可提交("只要打开了页面就算成功"的后续状态更新照旧执行)。
            // åŽŸå®žçŽ°åœ¨æ¨¡æ¿æŸ¥ä¸åˆ°æ—¶è¿”å›žçš„ä¹Ÿæ˜¯ [null],前端本就能容错;空列表更干净。
            log.warn("【模板】宣教任务取模板被拒(模块已关闭),taskid={}, templateId={},本次返回空内容",
                    taskid, templateId);
            return new ArrayList();
        }
        List list = new ArrayList();
        list.add(heLibrary);
        return list;
smartor/src/main/java/com/smartor/service/impl/SvyCategoryServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyFinishServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyFinishoptionServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyFinishtopicServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibExceptionServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibResultServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibScriptCategoryServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibScriptOptionServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibScriptServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibScriptTagServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateCategoryServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateScriptServiceImpl.java
@@ -3,9 +3,9 @@
import com.ruoyi.common.utils.DateUtils;
import com.smartor.domain.*;
import com.smartor.mapper.ServiceSubtaskMapper;
import com.smartor.mapper.SvyLibTemplateScriptMapper;
import com.ruoyi.template.mapper.SvyLibTemplateScriptMapper;
import com.smartor.service.ISvyLibTemplateScriptService;
import com.smartor.service.ISvyLibTemplateTargetoptionService;
import com.ruoyi.template.service.ISvyLibTemplateTargetoptionService;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -17,6 +17,8 @@
import java.util.List;
import java.util.Map;
import com.ruoyi.template.domain.SvyLibTemplateScript;
import com.ruoyi.template.domain.SvyLibTemplateTargetoption;
import static net.sf.jsqlparser.parser.feature.Feature.values;
/**
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateScriptWjxServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateTagServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateTargetoptionServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateTargetoptionWjxServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibTemplateWjxServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyLibTopicdirectionServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyTaskScriptServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyTaskScriptoptionServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyTaskServiceImpl.java
@@ -18,6 +18,15 @@
import java.util.List;
import java.util.Map;
import com.ruoyi.template.domain.SvyLibTemplateScript;
import com.ruoyi.template.domain.SvyLibTemplateScriptVO;
import com.ruoyi.template.domain.SvyLibTemplateTargetoption;
import com.smartor.domain.SvyTask;
import com.smartor.domain.SvyTaskSingle;
import com.ruoyi.template.mapper.SvyLibTemplateScriptMapper;
import com.ruoyi.template.mapper.SvyLibTemplateTargetoptionMapper;
import com.smartor.mapper.SvyTaskMapper;
import com.smartor.mapper.SvyTaskSingleMapper;
/**
 * ç»¼åˆé—®å·ä»»åŠ¡ï¼ˆä»»åŠ¡ï¼‰Service业务层处理
 *
smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateScriptServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyTaskTemplateTargetoptionServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/SvyTopicServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/TemplateDeptServiceImpl.java
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/service/impl/XHGatherPatArchiveServiceImpl.java
@@ -18,6 +18,7 @@
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.mapper.SysConfigMapper;
import com.smartor.domain.*;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.smartor.mapper.*;
import com.smartor.service.*;
import lombok.extern.slf4j.Slf4j;
smartor/src/main/java/com/smartor/statemachine/InhospStateMachine.java
@@ -3,7 +3,7 @@
import com.ruoyi.common.utils.StringUtils;
import com.smartor.common.enums.InhospStateEnum;
import com.smartor.common.exception.StateTransitionException;
import com.smartor.domain.PatMedInhosp;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.smartor.service.IPatMedInhospService;
import com.smartor.statemachine.handler.InhospStateHandler;
import lombok.extern.slf4j.Slf4j;
smartor/src/main/java/com/smartor/statemachine/InhospStateMachineService.java
@@ -1,6 +1,6 @@
package com.smartor.statemachine;
import com.smartor.domain.PatMedInhosp;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
smartor/src/main/java/com/smartor/statemachine/handler/InhospStateHandler.java
@@ -1,6 +1,6 @@
package com.smartor.statemachine.handler;
import com.smartor.domain.PatMedInhosp;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
/**
 * ä½é™¢çŠ¶æ€å¤„ç†å™¨æŽ¥å£
smartor/src/main/java/com/smartor/statemachine/handler/impl/DischargeHandler.java
@@ -1,7 +1,7 @@
package com.smartor.statemachine.handler.impl;
import com.ruoyi.common.utils.StringUtils;
import com.smartor.domain.PatMedInhosp;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.smartor.service.IPatMedInhospService;
import com.smartor.statemachine.handler.InhospStateHandler;
import lombok.extern.slf4j.Slf4j;
smartor/src/main/java/com/smartor/statemachine/handler/impl/InHospitalHandler.java
@@ -1,7 +1,7 @@
package com.smartor.statemachine.handler.impl;
import com.ruoyi.common.utils.StringUtils;
import com.smartor.domain.PatMedInhosp;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.smartor.service.IPatMedInhospService;
import com.smartor.statemachine.handler.InhospStateHandler;
import lombok.extern.slf4j.Slf4j;
smartor/src/main/java/com/smartor/statemachine/handler/impl/PreAdmissionHandler.java
@@ -1,7 +1,7 @@
package com.smartor.statemachine.handler.impl;
import com.ruoyi.common.utils.StringUtils;
import com.smartor.domain.PatMedInhosp;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.smartor.service.IPatMedInhospService;
import com.smartor.statemachine.handler.InhospStateHandler;
import lombok.extern.slf4j.Slf4j;
smartor/src/main/resources/mapper/smartor/BaseDictOperationMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/BaseTagMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/BaseTagcategoryMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/HNGatherPatArchiveMapper.xml
@@ -147,7 +147,7 @@
        <result property="filterDrcode" column="filter_drcode"/>
    </resultMap>
    <resultMap type="com.smartor.domain.PatMedInhosp" id="PatMedInhospResult">
    <resultMap type="com.ruoyi.inhospvisit.domain.PatMedInhosp" id="PatMedInhospResult">
        <result property="inhospid" column="inhospid"/>
        <result property="inhospno" column="inhospno"/>
        <result property="serialnum" column="serialnum"/>
@@ -215,7 +215,7 @@
        <result property="fuspecialadvice" column="fuspecialadvice"/>
    </resultMap>
    <resultMap type="com.smartor.domain.PatMedOuthosp" id="PatMedOuthospResult">
    <resultMap type="com.ruoyi.outpatientvisit.domain.PatMedOuthosp" id="PatMedOuthospResult">
        <result property="id" column="id"/>
        <result property="serialnum" column="serialnum"/>
        <result property="patid" column="patid"/>
@@ -418,7 +418,7 @@
    </select>
    <select id="selectPatMedInhospListCount" parameterType="com.smartor.domain.PatMedInhosp" resultType="Long">
    <select id="selectPatMedInhospListCount" parameterType="com.ruoyi.inhospvisit.domain.PatMedInhosp" resultType="Long">
        select count(*)
        FROM cryxx
    </select>
@@ -442,13 +442,13 @@
        WHERE row_num > #{lastRowNumber} LIMIT #{ps}
    </select>
    <select id="selectPatArchiveCount" parameterType="com.smartor.domain.PatMedInhosp" resultType="Long">
    <select id="selectPatArchiveCount" parameterType="com.ruoyi.inhospvisit.domain.PatMedInhosp" resultType="Long">
        select count(*)
        FROM hzjbxx
    </select>
    <select id="selectPatMedInhospList" parameterType="com.smartor.domain.PatMedInhosp" resultMap="PatMedInhospResult">
    <select id="selectPatMedInhospList" parameterType="com.ruoyi.inhospvisit.domain.PatMedInhosp" resultMap="PatMedInhospResult">
        select
        b.nurse_id,
        b.nurse_name,
@@ -519,7 +519,7 @@
    </select>
    <select id="selectPatMedOuthospList" parameterType="com.smartor.domain.PatMedOuthosp"
    <select id="selectPatMedOuthospList" parameterType="com.ruoyi.outpatientvisit.domain.PatMedOuthosp"
            resultMap="PatMedOuthospResult">
        select
        outhospno,
smartor/src/main/resources/mapper/smartor/HeCategoryMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/HeLibraryAssortMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/HeLibraryMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/HeLibraryTagMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/HeLocallibraryMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/Icd10AssociationMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaExtemplateCategoryMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaExtemplateMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaExtemplatescriptMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaScriptAssortMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaScriptMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaScriptTagMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaScriptTargetoptionMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaTargetAssortMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaTargetMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaTargetTagMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaTargetoptionMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaTemplateAssortMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaTemplateMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaTemplateScriptMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaTemplateTagMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrLibaTemplateTargetoptionMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrTaskTemplateMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrTaskTemplateScriptMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/IvrTaskTemplateTargetoptionMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/PatMedOperationItemMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/PatMedOperationMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/PatMedOuthospErrorMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/PatMedOuthospProvisionalMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SchemeLocallibraryMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -2362,7 +2362,7 @@
            month, st.service_type, st.id;
    </select>
    <select id="getDeptRanking" parameterType="com.smartor.domain.PatMedReq" resultType="com.smartor.domain.PatMedRes">
    <select id="getDeptRanking" parameterType="com.ruoyi.common.core.service.dto.PatMedReq" resultType="com.ruoyi.common.core.service.dto.PatMedRes">
        SELECT deptname,
        count(1) AS rc
        FROM service_subtask
@@ -2756,8 +2756,8 @@
        </if>
    </select>
    <select id="selectVisitCount" parameterType="com.smartor.domain.PatMedReq"
            resultType="com.smartor.domain.PatMedRes">
    <select id="selectVisitCount" parameterType="com.ruoyi.common.core.service.dto.PatMedReq"
            resultType="com.ruoyi.common.core.service.dto.PatMedRes">
        select
        0 AS rc,
        count(1) AS rs
@@ -2887,7 +2887,7 @@
    </select>
    <!-- å®£æ•™ç»Ÿè®¡ï¼šæŒ‰ç—…区或科室分组,统计发送总量、发送成功量(sendstate=6)、已读量(finishtime不为空) -->
    <select id="getHeLibraryCount" parameterType="com.smartor.domain.VO.HeLibraryCountVO" resultType="map">
    <select id="getHeLibraryCount" parameterType="com.ruoyi.template.domain.VO.HeLibraryCountVO" resultType="map">
        SELECT
        <choose>
            <when test="hospitaldistrictcodes != null and hospitaldistrictcodes.size() > 0">
@@ -2963,7 +2963,7 @@
        order by schedule_seq asc, id asc
    </select>
    <select id="gethelibraryCountHyperlink" parameterType="com.smartor.domain.VO.HeLibraryCountVO"
    <select id="gethelibraryCountHyperlink" parameterType="com.ruoyi.template.domain.VO.HeLibraryCountVO"
            resultMap="ServiceSubtaskResult">
        select id,
        visit_count,
smartor/src/main/resources/mapper/smartor/ServiceSubtaskPreachformMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyCategoryMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyFinishMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyFinishoptionMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyFinishtopicMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibExceptionMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibResultMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibScriptMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibScriptOptionMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibScriptTagMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibTemplageCategoryMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibTemplateMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibTemplateScriptMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibTemplateScriptWjxMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibTemplateTagMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibTemplateTargetoptionMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibTemplateTargetoptionWjxMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibTemplateWjxMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibTopicCategoryMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyLibTopicdirectionMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyTaskScriptMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyTaskScriptoptionMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyTaskTemplateMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyTaskTemplateScriptMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyTaskTemplateTargetoptionMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyTopicMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/SvyTopicoptionMapper.xml
ÎļþÒÑɾ³ý
smartor/src/main/resources/mapper/smartor/TemplateDeptMapper.xml
ÎļþÒÑɾ³ý