liusheng
2024-09-18 907641e56c2085aaa81f267946dc3e3e9fca73e7
代码提交
已修改199个文件
已添加8个文件
7710 ■■■■■ 文件已修改
ruoyi-admin/pom.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java 384 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseTagController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseTagcategoryController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseUserInfoController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/EquipmentinfoController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeCategoryController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryAssortController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryTagController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLocallibraryController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/Icd10AssociationController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/Icd10Controller.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibIntentController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibIntentcategoryController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptcategoryController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptmodelController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaExtemplateCategoryController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaExtemplateController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaExtemplatescriptController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptAssortController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptTagController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptTargetController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptTargetoptionController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetAssortController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetTagController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetoptionController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateAssortController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateScriptController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateTagController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateTargetoptionController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneExecuteconfigController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlowController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlownodeController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlownodebranchController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneGlobalconfigController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneIntentController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneRecallController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneScriptController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneScriptmodelController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrScenecategoryController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskTemplateController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskTemplateScriptController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskTemplateTargetoptionController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskVisitResultController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskcallrecordController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTasksmsController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/MedicalHistoryController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/MinioFileController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveImportController.java 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchivecontactController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchivetagController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatFilterlistController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedBloodsugarController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedDrugController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedHypertensionController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInspectionController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedOperationController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedOuthospController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedPhysicalController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedRegistrationController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedWeightController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatSpeciallistCategoryController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatSpeciallistController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatTaskRelevanceController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatWildcardController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PersonWorkbenchController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeAutofinshruleController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeCategoryController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeLocallibraryController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemePlanController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTaskController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTaskconfigController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTaskrecordCalldetailController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTaskrecordController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTaskrepeatconfigController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTriggerruleController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTriggersceneController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskRecordController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsParamController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsRecordsController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsTempletController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyCategoryController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyFinishController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyFinishoptionController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyFinishtopicController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibExceptionController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibResultController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptCategoryController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptOptionController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptTagController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateCategoryController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateScriptController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateScriptWjxController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTagController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTargetoptionController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTargetoptionWjxController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateWjxController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskAnswerController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptoptionController.java 12 ●●●● 补丁 | 查看 | 原始文档 | 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 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateScriptController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateTargetoptionController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TempDetpRelevanceController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/tools/BaseSmsaccountController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserDeptController.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java 194 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-druid.yml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/pom.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java 158 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUserDept.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java 923 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/src/main/resources/vm/java/controller.java.vm 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java 213 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserDeptServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml 338 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 458 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/menu/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/system/role/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/HeLibrary.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/HeLibraryVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrTaskTemplate.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/IvrTaskTemplateVO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatArchive.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatArchiveImport.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatArchiveOthreInfo.java 351 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatArchiveReq.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedInhosp.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java 308 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SendTaskVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubTaskAnswerReq.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtask.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceTask.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyLibTemplateVO.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ThiedInhospInfo.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/XinHuaWXReq.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/PatArchiveImportMapper.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/PatArchiveMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatArchiveImportService.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatArchiveService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IPatMedInhospService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/IServiceSubtaskAnswerService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatArchiveImportServiceImpl.java 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/HeLibraryMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrLibaTemplateMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/IvrTaskTemplateMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatArchiveImportMapper.xml 216 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SvyTaskTemplateMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/pom.xml
@@ -163,7 +163,7 @@
        <dependency>
            <groupId>org.apache.xmlbeans</groupId>
            <artifactId>xmlbeans</artifactId>
            <version>3.1.0</version>
            <version>5.1.0</version>
        </dependency>
    </dependencies>
    <build>
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -26,6 +26,11 @@
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.stereotype.Component;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -52,6 +57,8 @@
    @Autowired
    private IIvrTaskTemplateService ivrTaskTemplateService;
    @Autowired
    private ISvyTaskTemplateService svyTaskTemplateService;
    @Autowired
    private ServiceSubtaskMapper ivrTaskcallMapper;
@@ -109,46 +116,42 @@
            } else {
                commonTaskcallMQ = mapper.readValue(content, CommonTaskcallMQ.class);
            }
            if (commonTaskcallMQ.getTaskType() == 1) {
                //随访
                sfHandle(commonTaskcallMQ, ip);
            } else if (commonTaskcallMQ.getTaskType() == 2) {
                //问卷
                wjHandle(commonTaskcallMQ, ip);
            } else if (commonTaskcallMQ.getTaskType() == 3) {
                //宣教
                xjHandle(commonTaskcallMQ, ip);
            }
            if (commonTaskcallMQ != null) tsakHandle(commonTaskcallMQ, ip, commonTaskcallMQ.getTaskType());
            //处理完成,移除redis
            redisCache.deleteObject(message.toString());
            //将状态改成完成
            ServiceTask serviceTask = new ServiceTask();
            serviceTask.setTaskid(Long.valueOf(commonTaskcallMQ.getTaskid()));
            serviceTask.setSendState(5);
            serviceTask.setSendState(5L);
            serviceTask.setFail(1L);
            svyTaskMapper.updateServiceTask(serviceTask);
        } catch (Exception e) {
            Integer integer = redisCache.getCacheObject(commonTaskcallMQ.getTaskid().toString());
            if (integer != null && integer == 2) {
            if (integer != null && integer == 3) {
                redisCache.deleteObject(message.toString());
                ServiceTask serviceTask = new ServiceTask();
                serviceTask.setTaskid(Long.valueOf(commonTaskcallMQ.getTaskid().toString()));
                serviceTask.setFail(0L);
                svyTaskMapper.updateServiceTask(serviceTask);
                //将消息从队列中删除
            } else if (integer == null) {
                redisCache.setCacheObject(commonTaskcallMQ.getTaskid().toString(), 1, 120, TimeUnit.MINUTES);
            } else {
                redisCache.setCacheObject(commonTaskcallMQ.getTaskid().toString(), integer + 1, 120, TimeUnit.MINUTES);
            }
            log.error("============消费失败,尝试消息补发再次消费!==============  {}", e.getMessage());
            redisCache.setCacheObject(message.toString(), message.toString(), 60, TimeUnit.SECONDS);
        }
    }
    /**
     * éšè®¿ä»»åŠ¡å¤„ç†
     * ä»»åŠ¡å¤„ç†
     *
     * @param commonTaskcallMQ
     */
    public void sfHandle(CommonTaskcallMQ commonTaskcallMQ, String ip) {
        log.error("进随访了吗?{}", commonTaskcallMQ);
    public void tsakHandle(CommonTaskcallMQ commonTaskcallMQ, String ip, Integer type) {
        log.error("进任务了吗?{}", commonTaskcallMQ);
        //判断一下commonTaskcallMQ中的stopstate是否与ivr_task中的一致,不一致,则说明是暂停了
        ServiceTask ivrTask1 = ivrTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid());
        if (ivrTask1.getStopState() != commonTaskcallMQ.getStopState()) {
@@ -226,10 +229,10 @@
                    }
                } else if (descByCode.equals("多媒体")) {
                    //多媒体
                    return;
                    continue;
                } else if (descByCode.equals("纸质")) {
                    //纸质
                    return;
                    continue;
                } else if (descByCode.equals("短信")) {
                    //短信
//                        http://localhost:8099/followvisit/particty?param1=3&param2=348
@@ -238,22 +241,39 @@
                    String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
                    for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
                        String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
                        SendMagParam sendMagParam = new SendMagParam();
                        sendMagParam.setType("4");
                        sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "&param2=" + patid + "&param5=false");
                        Boolean aBoolean = sendService.sendMsg(sendMagParam);
                        try {
                            String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
                            SendMagParam sendMagParam = new SendMagParam();
                            sendMagParam.setType("4");
                            if (type == 1) {
                                sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "&param2=" + patid + "&param5=false");
                            } else if (type == 1) {
                                sendMagParam.setUrl(ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false");
                            } else if (type == 3) {
                                sendMagParam.setUrl(ip + ":" + req_path + "/outsideChainxj?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false");
                            }
                            Boolean aBoolean = sendService.sendMsg(sendMagParam);
                        //任务发送记录
                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                        serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
                        serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                        serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
                        serviceSubtaskRecord.setPreachform("4");
                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                        serviceSubtaskRecord.setResult(aBoolean == true ? "成功" : "失败");
                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                            //任务发送记录
                            ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                            serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
                            serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                            serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
                            serviceSubtaskRecord.setPreachform("4");
                            serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                            serviceSubtaskRecord.setResult(aBoolean == true ? "success" : "error");
                            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                            serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                        } catch (UnsupportedEncodingException e) {
                            String guid = UUID.randomUUID().toString();
                            log.error("短信任务,发送失败原因:{},{}", e.getMessage(), guid);
                            serviceSubtask.setResult("error");
                            serviceSubtask.setRemark("系统错误(任务)");
                            serviceSubtask.setGuid(guid);
                            serviceSubtask.setSendstate(4L);
                            serviceSubtask.setFinishtime(new Date());
                            serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                        }
                    }
                } else if (descByCode.equals("公众号")) {
                    //公众号
@@ -261,6 +281,7 @@
                    String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
                    for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
                        String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
//                        SendMagParam sendMagParam = new SendMagParam();
//                        sendMagParam.setType("5");
//                        sendMagParam.setUrl(ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
@@ -272,252 +293,56 @@
//                        sendMagParam.setContent(JSON.toJSONString(map));
//                        sendMagParam.setOpenid(serviceSubtask.getOpenid());
//                        Boolean aBoolean = sendService.sendMsg(sendMagParam);
                        String url = null;
                        try {
                            if (type == 1) {
                                url = ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
                            } else if (type == 2) {
                                url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
                            } else if (type == 3) {
                                url = ip + ":" + req_path + "/outsideChainxj?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
                            }
                        String url = ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false";
                        String wxCode = getWXCode(serviceSubtask.getIdcardno(), url);
                        //任务发送记录
                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                        serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
                        serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                        serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
                        serviceSubtaskRecord.setPreachform("4");
                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                        serviceSubtaskRecord.setResult("成功");
                        if (wxCode.equals("0")) serviceSubtaskRecord.setResult("失败");
                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                            String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), "无");
                            Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
                            if (!map.isEmpty()) {
                                serviceSubtask.setResult("success");
                                serviceSubtask.setSendstate(3L);
                                if ((Boolean) map.get("succ") == false) {
                                    serviceSubtask.setResult("error");
                                    serviceSubtask.setRemark(map.get("msg").toString());
                                    serviceSubtask.setSendstate(5L);
                                }
                            }
                            //任务发送记录
                            ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                            serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
                            serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                            serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
                            serviceSubtaskRecord.setPreachform("5");
                            serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                            serviceSubtaskRecord.setResult("success");
                            if ((Boolean) map.get("succ") == false) {
                                serviceSubtaskRecord.setResult("error");
                            }
                            serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                            serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                        } catch (Exception e) {
                            String guid = UUID.randomUUID().toString();
                            log.error("公众号任务,发送失败原因:{},{}", e.getMessage(), guid);
                            serviceSubtask.setResult("error");
                            serviceSubtask.setRemark("系统错误(任务)");
                            serviceSubtask.setGuid(guid);
                            serviceSubtask.setSendstate(5L);
                            serviceSubtask.setFinishtime(new Date());
                            serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                        }
                    }
                }
                //通知 MQ æ¶ˆæ¯å·²è¢«æŽ¥æ”¶,可以ACK(从队列中删除)了   ï¼ˆè¿™ä¸ªéœ€è¦æ ¹æ®ä¸šåŠ¡å†åŽ»å¤„ç†ACK)
            }
        }
    }
    /**
     * å®£æ•™ä»»åŠ¡å¤„ç†
     *
     * @param commonTaskcallMQ
     */
    private void xjHandle(CommonTaskcallMQ commonTaskcallMQ, String ip) {
        log.error("进宣教了吗?{}", commonTaskcallMQ);
        //判断一下commonTaskcallMQ中的stopstate是否与ivr_task中的一致,不一致,则说明是暂停了
        ServiceTask ivrTask1 = ivrTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid());
        if (ivrTask1.getStopState() != commonTaskcallMQ.getStopState()) {
            //将消息从队列中剔除
            return;
        }
        if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) {
            //如何任务发送方式不为空
            String[] split = commonTaskcallMQ.getPreachform().split(",");
            System.out.println("split的值为:" + split);
            for (String serviceFrom : split) {
                String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom));
                //这里可以考虑用策略模式优化一下,不然太难看了
                //通过模板ID获取模板问题
                IvrTaskTemplateVO ivrTaskTemplateVO1 = null;
                if (commonTaskcallMQ.getTaskType().equals("1")) {
                    IvrTaskTemplateVO ivrTaskTemplateVO = new IvrTaskTemplateVO();
                    ivrTaskTemplateVO.setId(Long.valueOf(commonTaskcallMQ.getTemplateid()));
                    ivrTaskTemplateVO1 = ivrTaskTemplateService.selectInfoByCondition(ivrTaskTemplateVO);
                }
                //通过任务ID拿到患者信息
                ServiceSubtaskVO ivrTaskcall = new ServiceSubtaskVO();
                ivrTaskcall.setTaskid(commonTaskcallMQ.getTaskid());
                List<ServiceSubtask> ivrTaskcalls = ivrTaskcallMapper.selectServiceSubtaskList(ivrTaskcall);
                if (descByCode.equals("电话")) {
                    for (ServiceSubtask ivrTaskcall1 : ivrTaskcalls) {
                        ServiceTask ivrTask = ivrTaskMapper.selectServiceTaskByTaskid(ivrTaskcall1.getTaskid());
                        if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) {
                            //如何任务被“暂停”或“终止”
                            break;
                        }
                        //任务发送记录(这个代码应该写在phoneTask中,先写在这,后面再改)
                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                        serviceSubtaskRecord.setTaskid(ivrTaskcall1.getTaskid().toString());
                        serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                        serviceSubtaskRecord.setTasktype(ivrTaskcall1.getType());
                        serviceSubtaskRecord.setPreachform("3");
                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                        //通过多线程的方式去打电话
                        executorService.submit(new PhoneTask(ivrTaskcall1, ivrTaskTemplateVO1, redisCache, sendService, phonePath, robotPhoneUtils));
                    }
                } else if (descByCode.equals("多媒体")) {
                    //多媒体
                } else if (descByCode.equals("纸质")) {
                    //纸质
                } else if (descByCode.equals("短信")) {
                    //短信
//                        http://localhost:8099/followvisit/particty?param1=3&param2=348
                    //对url中两个参数加密
                    RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
                    String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
                    for (ServiceSubtask ivrTaskSingle : ivrTaskcalls) {
                        String patid = rsaPublicKeyExample.encryptedData(ivrTaskSingle.getPatid().toString(), pub_key);
                        SendMagParam sendMagParam = new SendMagParam();
                        sendMagParam.setType("4");
                        sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "&param2=" + patid + "&param5=false");
                        Boolean aBoolean = sendService.sendMsg(sendMagParam);
                        //任务发送记录
                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                        serviceSubtaskRecord.setTaskid(ivrTaskSingle.getTaskid().toString());
                        serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                        serviceSubtaskRecord.setTasktype(ivrTaskSingle.getType());
                        serviceSubtaskRecord.setPreachform("4");
                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                        serviceSubtaskRecord.setResult(aBoolean == true ? "成功" : "失败");
                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                    }
                } else if (descByCode.equals("公众号")) {
                    //公众号
                    RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
                    String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
                    for (ServiceSubtask ivrTaskSingle : ivrTaskcalls) {
                        String patid = rsaPublicKeyExample.encryptedData(ivrTaskSingle.getPatid().toString(), pub_key);
//                        SendMagParam sendMagParam = new SendMagParam();
//                        sendMagParam.setType("5");
//                        sendMagParam.setUrl(ip + ":" + req_path + "/outsideChainxj?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
//                        log.info("链接完整路径:{}", req_path + "/outsideChainxj?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
//                        //这个模板ID先写死,后面做成可选
//                        sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4");
//                        Map map = new HashMap();
//                        map.put("first", ivrTask1.getTaskName());
//                        sendMagParam.setContent(JSON.toJSONString(map));
//                        sendMagParam.setOpenid(ivrTaskSingle.getOpenid());
                        //新华医院有自己的公众号发送接口,我们的先不用(先保留,其它项目可以用)
//                        Boolean aBoolean = sendService.sendMsg(sendMagParam);
//                        log.error("是否发送成功:{}", aBoolean);
                        String url = ip + ":" + req_path + "/outsideChainxj?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false";
                        String wxCode = getWXCode(ivrTaskSingle.getIdcardno(), url);
                        //任务发送记录
                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                        serviceSubtaskRecord.setTaskid(ivrTaskSingle.getTaskid().toString());
                        serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                        serviceSubtaskRecord.setTasktype(ivrTaskSingle.getType());
                        serviceSubtaskRecord.setPreachform("4");
                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                        serviceSubtaskRecord.setResult("成功");
                        if (!wxCode.equals("0")) {
                            serviceSubtaskRecord.setResult("失败");
                        }
                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                    }
                }
                //通知 MQ æ¶ˆæ¯å·²è¢«æŽ¥æ”¶,可以ACK(从队列中删除)了   ï¼ˆè¿™ä¸ªéœ€è¦æ ¹æ®ä¸šåŠ¡å†åŽ»å¤„ç†ACK)
            }
        }
    }
    /**
     * é—®å·ä»»åŠ¡å¤„ç†
     *
     * @param commonTaskcallMQ
     */
    private void wjHandle(CommonTaskcallMQ commonTaskcallMQ, String ip) {
        log.error("进问卷了吗?{}", commonTaskcallMQ);
        //判断一下commonTaskcallMQ中的stopstate是否与ivr_task中的一致,不一致,则说明是暂停了
        ServiceTask svyTask = svyTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid());
        log.error("svyTask.getStopState()的值为:{} ï¼Œ commonTaskcallMQ.getStopState()的值为:{}", svyTask.getStopState(), commonTaskcallMQ.getStopState());
        if (svyTask.getStopState() != commonTaskcallMQ.getStopState()) {
            //将消息从队列中剔除
            return;
        }
        if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) {
            //如何任务发送方式不为空
            String[] split = commonTaskcallMQ.getPreachform().split(",");
            System.out.println("split的值为:" + split);
            for (String serviceFrom : split) {
                String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom));
                //这里可以考虑用策略模式优化一下,不然太难看了
                //通过模板ID获取模板问题
                SvyTaskTemplateVO svyTaskTemplateVO = new SvyTaskTemplateVO();
                svyTaskTemplateVO.setId(Long.valueOf(commonTaskcallMQ.getTemplateid()));
                SvyTaskTemplateVO svyTaskTemplateVO1 = iSvyTaskTemplateService.selectInfoByCondition(svyTaskTemplateVO);
                //通过任务ID拿到患者信息
                ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
                serviceSubtaskVO.setTaskid(commonTaskcallMQ.getTaskid());
                List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
                log.error("selectServiceSubtaskList数据是多少?{}", selectServiceSubtaskList.size());
                if (descByCode.equals("电话")) {
                    for (ServiceSubtask svyTaskSingle1 : selectServiceSubtaskList) {
                        ServiceTask svyTask1 = svyTaskMapper.selectServiceTaskByTaskid(svyTaskSingle1.getTaskid());
                        if (svyTask1.getSendState() != null && svyTask1.getSendState().equals("3") || svyTask1.getSendState() != null && svyTask1.getSendState().equals("4")) {
                            //如何任务被“暂停”或“终止”
                            break;
                        }
                        //任务发送记录(这个代码应该写在phoneTask中,先写在这,后面再改)
                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                        serviceSubtaskRecord.setTaskid(svyTaskSingle1.getTaskid().toString());
                        serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                        serviceSubtaskRecord.setTasktype(svyTaskSingle1.getType());
                        serviceSubtaskRecord.setPreachform("3");
                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                        //通过多线程的方式去打电话
//                        executorService.submit(new PhoneTask(ivrTaskcall1, ivrTaskTemplateVO1, redisCache, sendService, phonePath, robotPhoneUtils));
                    }
                } else if (descByCode.equals("多媒体")) {
                    //多媒体
                } else if (descByCode.equals("纸质")) {
                    //纸质
                } else if (descByCode.equals("短信")) {
                    //短信
                } else if (descByCode.equals("公众号")) {
                    log.error("进问卷公众号了吗?{}", descByCode);
                    //公众号
                    RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
                    String taskId = rsaPublicKeyExample.encryptedData(svyTask.getTaskid().toString(), pub_key);
                    for (ServiceSubtask svyTaskSingle1 : selectServiceSubtaskList) {
                        String patid = rsaPublicKeyExample.encryptedData(svyTaskSingle1.getPatid().toString(), pub_key);
                        String url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + svyTask.getTaskName() + "&param5=false";
                        //这个是我们自己的微信公众号发送方式,
                        SendMagParam sendMagParam = new SendMagParam();
                        sendMagParam.setType("5");
                        sendMagParam.setUrl(url);
                        log.info("链接完整路径:{}", req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + svyTask.getTaskName() + "&param5=false");
                        //这个模板ID先写死,后面做成可选
                        sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4");
                        Map map = new HashMap();
                        map.put("first", svyTask.getTaskName());
                        sendMagParam.setContent(JSON.toJSONString(map));
                        sendMagParam.setOpenid(svyTaskSingle1.getOpenid());
                        Boolean aBoolean = sendService.sendMsg(sendMagParam);
                        log.error("发送成功了吗?{}", aBoolean);
//                        String wxCode = getWXCode(svyTaskSingle1.getIdcardno(), url);
                        //任务发送记录
                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                        serviceSubtaskRecord.setTaskid(svyTaskSingle1.getTaskid().toString());
                        serviceSubtaskRecord.setUuid(UUID.randomUUID().toString());
                        serviceSubtaskRecord.setTasktype(svyTaskSingle1.getType());
                        serviceSubtaskRecord.setPreachform("4");
                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                        serviceSubtaskRecord.setResult("成功");
//                        if (!wxCode.equals("0")) {
//                            serviceSubtaskRecord.setResult("失败");
//                        }
                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                    }
                }
                //通知 MQ æ¶ˆæ¯å·²è¢«æŽ¥æ”¶,可以ACK(从队列中删除)了   ï¼ˆè¿™ä¸ªéœ€è¦æ ¹æ®ä¸šåŠ¡å†åŽ»å¤„ç†ACK)
            }
        }
    }
    //    /**
//     * æœºå™¨äººç¬¬ä¸€å¥è¯è¯­éŸ³
@@ -582,17 +407,18 @@
        return key;
    }
    private String getWXCode(String idcard, String url) {
    private String getWXCode(String idcard, String url, String taskName, String taskDesc, String submitprompt) {
        XinHuaWXReq xinHuaWXReq = new XinHuaWXReq();
        xinHuaWXReq.setIdcard(idcard);
        xinHuaWXReq.setUrl(url);
        xinHuaWXReq.setKeyword1(null);
        xinHuaWXReq.setKeyword2(null);
        xinHuaWXReq.setKeyword3(null);
        xinHuaWXReq.setKeyword4(null);
        xinHuaWXReq.setKeyword1("浙中医大二院出院随访");
        xinHuaWXReq.setKeyword2(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
        xinHuaWXReq.setKeyword3(taskName);
        xinHuaWXReq.setKeyword4("疾病康复注意事项");
        String result = HttpUtils.sendPost(thirdWXUrl, new Gson().toJson(xinHuaWXReq));
        JSONObject jsonObject = JSONObject.parseObject(result);
        String code = (String) jsonObject.get("code");
        String code = (String) jsonObject.toString();
        return code;
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
@@ -11,6 +11,8 @@
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.framework.config.ServerConfig;
import com.smartor.domain.HtmlContentVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.converter.PicturesManager;
import org.apache.poi.hwpf.converter.WordToHtmlConverter;
@@ -18,6 +20,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -43,6 +46,7 @@
 * @author ruoyi
 */
@RestController
@Api(description = "通过请求处理")
@RequestMapping("/common")
public class CommonController {
    private static final Logger log = LoggerFactory.getLogger(CommonController.class);
@@ -51,6 +55,9 @@
    private ServerConfig serverConfig;
    private static final String FILE_DELIMETER = ",";
    @Value("${uploadSwitch}")
    private Integer uploadSwitch;
    /**
     * é€šç”¨ä¸‹è½½è¯·æ±‚
@@ -81,6 +88,7 @@
    /**
     * åˆ†ç±»ä¸Šä¼ è¯·æ±‚
     */
    @ApiOperation("分类上传请求")
    @PostMapping("/uploadSort")
    public AjaxResult uploadFileSort(MultipartFile file) {
        try {
@@ -98,7 +106,15 @@
            }
            // ä¸Šä¼ å¹¶è¿”回新文件名称
            String fileName = FileUploadUtils.uploadSort(filePath, file);
            String url = serverConfig.getUrl() + fileName;
            String url = null;
            //新华医院特殊,这个视频的访问得转
            String xhPath = "http://218.108.11.22:8093/profile-api";
            if (uploadSwitch == 1) {
                String fn = fileName.replaceAll("/profile", "");
                url = xhPath + fn;
            } else {
                url = serverConfig.getUrl() + fileName;
            }
            AjaxResult ajax = AjaxResult.success();
            ajax.put("url", url);
            ajax.put("fileName", fileName);
@@ -113,6 +129,7 @@
    /**
     * ä¸Šä¼ å¹¶è½¬æˆhtml请求
     */
    @ApiOperation("word文件上传并转成html")
    @PostMapping("/uploadShow")
    public AjaxResult uploadFileShow(MultipartFile file) {
        try {
@@ -125,7 +142,15 @@
            //将word转成html
            convertDocToHtml(filePath + "\\" + file.getOriginalFilename(), filePath + "\\" + file.getOriginalFilename().split("\\.", 2)[0] + ".html");
            String url = serverConfig.getUrl() + fileName.replaceAll("\\.[^.]*$", ".html");
            String url = null;
            String xhPath = "http://218.108.11.22:8093/profile-api";
            if (uploadSwitch == 1) {
                String fn = fileName.replaceAll("\\.[^.]*$", ".html").replaceAll("/profile", "");
                url = xhPath + fn;
            } else {
                url = serverConfig.getUrl() + fileName.replaceAll("\\.[^.]*$", ".html");
            }
            AjaxResult ajax = AjaxResult.success();
            ajax.put("url", url);
            ajax.put("fileName", fileName);
@@ -140,6 +165,7 @@
    /**
     * é€šç”¨ä¸Šä¼ è¯·æ±‚(单个)
     */
    @ApiOperation("通用上传请求")
    @PostMapping("/upload")
    public AjaxResult uploadFile(MultipartFile file) {
        try {
@@ -218,19 +244,37 @@
     * @param
     * @return
     */
    @ApiOperation("富文本转html")
    @PostMapping("/htmlContent")
    public AjaxResult htmlContent(@RequestBody HtmlContentVO htmlContentVO) {
        log.error("htmlContentVO入参为:{}", htmlContentVO);
        // èŽ·å–æ–‡ä»¶çš„åŽŸå§‹åç§°
        String fileName = htmlContentVO.getFileName();
        if (!fileName.endsWith(".html")) {
            // åŽ»æŽ‰ä¹‹å‰çš„æ‰©å±•å
            int lastIndex = fileName.lastIndexOf('.');
            if (lastIndex != -1) {
                fileName = fileName.substring(0, lastIndex); // åŽ»æŽ‰æ‰©å±•å
            }
            // æ·»åŠ .html后缀
            fileName += ".html";
        }
        FileUtils.createFile(RuoYiConfig.getUploadPath() + "/show/" + fileName.split("\\.", 2)[0]);
        // å°†æ–‡ä»¶ä¿å­˜åˆ°æŒ‡å®šç›®å½•
        File outputFile = new File(RuoYiConfig.getUploadPath() + "/show/" + fileName.split("\\.", 2)[0] + "/" + fileName);
        try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile), "UTF-8"))) {
            writer.write(htmlContentVO.getContent());
            if (StringUtils.isNotEmpty(htmlContentVO.getContent()))
                writer.write(htmlContentVO.getContent());
        } catch (IOException e) {
            e.printStackTrace();
        }
        String url = serverConfig.getUrl() + "/profile/upload/show/" + fileName.split("\\.", 2)[0] + "/" + fileName;
        String url = null;
        String xhPath = "http://218.108.11.22:8093/profile-api";
        if (uploadSwitch == 1) {
            url = xhPath + "/upload/show/" + fileName.split("\\.", 2)[0] + "/" + fileName;
        } else {
            url = serverConfig.getUrl() + "/profile/upload/show/" + fileName.split("\\.", 2)[0] + "/" + fileName;
        }
        return AjaxResult.success(url);
    }
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
@@ -23,7 +23,7 @@
/**
 * ç¼“存监控
 *
 *
 * @author ruoyi
 */
@RestController
@@ -44,7 +44,7 @@
        caches.add(new SysCache(CacheConstants.PWD_ERR_CNT_KEY, "密码错误次数"));
    }
    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    @GetMapping()
    public AjaxResult getInfo() throws Exception
    {
@@ -68,14 +68,14 @@
        return AjaxResult.success(result);
    }
    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    @GetMapping("/getNames")
    public AjaxResult cache()
    {
        return AjaxResult.success(caches);
    }
    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    @GetMapping("/getKeys/{cacheName}")
    public AjaxResult getCacheKeys(@PathVariable String cacheName)
    {
@@ -83,7 +83,7 @@
        return AjaxResult.success(cacheKeys);
    }
    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    @GetMapping("/getValue/{cacheName}/{cacheKey}")
    public AjaxResult getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey)
    {
@@ -92,7 +92,7 @@
        return AjaxResult.success(sysCache);
    }
    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    @DeleteMapping("/clearCacheName/{cacheName}")
    public AjaxResult clearCacheName(@PathVariable String cacheName)
    {
@@ -101,7 +101,7 @@
        return AjaxResult.success();
    }
    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    @DeleteMapping("/clearCacheKey/{cacheKey}")
    public AjaxResult clearCacheKey(@PathVariable String cacheKey)
    {
@@ -109,7 +109,7 @@
        return AjaxResult.success();
    }
    @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
    @DeleteMapping("/clearCacheAll")
    public AjaxResult clearCacheAll()
    {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java
@@ -16,7 +16,7 @@
@RequestMapping("/monitor/server")
public class ServerController
{
    @PreAuthorize("@ss.hasPermi('monitor:server:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:server:list')")
    @GetMapping()
    public AjaxResult getInfo() throws Exception
    {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
@@ -22,7 +22,7 @@
/**
 * ç³»ç»Ÿè®¿é—®è®°å½•
 *
 *
 * @author ruoyi
 */
@RestController
@@ -35,7 +35,7 @@
    @Autowired
    private SysPasswordService passwordService;
    @PreAuthorize("@ss.hasPermi('monitor:logininfor:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:logininfor:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysLogininfor logininfor)
    {
@@ -45,7 +45,7 @@
    }
    @Log(title = "登录日志", businessType = BusinessType.EXPORT)
    @PreAuthorize("@ss.hasPermi('monitor:logininfor:export')")
    //@PreAuthorize("@ss.hasPermi('monitor:logininfor:export')")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysLogininfor logininfor)
    {
@@ -54,7 +54,7 @@
        util.exportExcel(response, list, "登录日志");
    }
    @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
    //@PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
    @Log(title = "登录日志", businessType = BusinessType.DELETE)
    @DeleteMapping("/{infoIds}")
    public AjaxResult remove(@PathVariable Long[] infoIds)
@@ -62,7 +62,7 @@
        return toAjax(logininforService.deleteLogininforByIds(infoIds));
    }
    @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
    //@PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
    @Log(title = "登录日志", businessType = BusinessType.CLEAN)
    @DeleteMapping("/clean")
    public AjaxResult clean()
@@ -71,7 +71,7 @@
        return success();
    }
    @PreAuthorize("@ss.hasPermi('monitor:logininfor:unlock')")
    //@PreAuthorize("@ss.hasPermi('monitor:logininfor:unlock')")
    @Log(title = "账户解锁", businessType = BusinessType.OTHER)
    @GetMapping("/unlock/{userName}")
    public AjaxResult unlock(@PathVariable("userName") String userName)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
@@ -31,7 +31,7 @@
    @Autowired
    private ISysOperLogService operLogService;
    @PreAuthorize("@ss.hasPermi('monitor:operlog:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:operlog:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysOperLog operLog)
    {
@@ -41,7 +41,7 @@
    }
    @Log(title = "操作日志", businessType = BusinessType.EXPORT)
    @PreAuthorize("@ss.hasPermi('monitor:operlog:export')")
    //@PreAuthorize("@ss.hasPermi('monitor:operlog:export')")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysOperLog operLog)
    {
@@ -51,7 +51,7 @@
    }
    @Log(title = "操作日志", businessType = BusinessType.DELETE)
    @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
    //@PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
    @DeleteMapping("/{operIds}")
    public AjaxResult remove(@PathVariable Long[] operIds)
    {
@@ -59,7 +59,7 @@
    }
    @Log(title = "操作日志", businessType = BusinessType.CLEAN)
    @PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
    //@PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
    @DeleteMapping("/clean")
    public AjaxResult clean()
    {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
@@ -25,7 +25,7 @@
/**
 * åœ¨çº¿ç”¨æˆ·ç›‘控
 *
 *
 * @author ruoyi
 */
@RestController
@@ -38,7 +38,7 @@
    @Autowired
    private RedisCache redisCache;
    @PreAuthorize("@ss.hasPermi('monitor:online:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:online:list')")
    @GetMapping("/list")
    public TableDataInfo list(String ipaddr, String userName)
    {
@@ -81,7 +81,7 @@
    /**
     * å¼ºé€€ç”¨æˆ·
     */
    @PreAuthorize("@ss.hasPermi('monitor:online:forceLogout')")
    //@PreAuthorize("@ss.hasPermi('monitor:online:forceLogout')")
    @Log(title = "在线用户", businessType = BusinessType.FORCE)
    @DeleteMapping("/{tokenId}")
    public AjaxResult forceLogout(@PathVariable String tokenId)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseTagController.java
@@ -44,7 +44,7 @@
     * æŸ¥è¯¢æ ‡ç­¾åˆ—表
     */
    @ApiOperation("查询标签列表")
    @PreAuthorize("@ss.hasPermi('system:tag:list')")
    //@PreAuthorize("@ss.hasPermi('system:tag:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody BaseTag baseTag) {
        PageUtils.startPageByPost(baseTag.getPageNum(), baseTag.getPageSize());
@@ -57,7 +57,7 @@
     * å¯¼å‡ºæ ‡ç­¾åˆ—表
     */
    @ApiOperation("导出标签列表")
    @PreAuthorize("@ss.hasPermi('system:tag:export')")
    //@PreAuthorize("@ss.hasPermi('system:tag:export')")
    @Log(title = "标签", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, BaseTag baseTag) {
@@ -71,7 +71,7 @@
     */
    @ApiOperation("获取标签详细信息")
    @ApiImplicitParam(name = "remove", value = "主键ID", dataType = "long", dataTypeClass = Long.class)
    @PreAuthorize("@ss.hasPermi('system:tag:query')")
    //@PreAuthorize("@ss.hasPermi('system:tag:query')")
    @GetMapping(value = "/{tagid}")
    public AjaxResult getInfo(@PathVariable("tagid") Long tagid) {
        return success(baseTagService.selectBaseTagByTagid(tagid));
@@ -81,7 +81,7 @@
     * æ–°å¢žæ ‡ç­¾
     */
    @ApiOperation("新增标签")
    @PreAuthorize("@ss.hasPermi('system:tag:add')")
    //@PreAuthorize("@ss.hasPermi('system:tag:add')")
    @Log(title = "标签", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody BaseTag baseTag) {
@@ -92,7 +92,7 @@
     * ä¿®æ”¹æ ‡ç­¾
     */
    @ApiOperation("修改标签")
    @PreAuthorize("@ss.hasPermi('system:tag:edit')")
    //@PreAuthorize("@ss.hasPermi('system:tag:edit')")
    @Log(title = "标签", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody BaseTag baseTag) {
@@ -104,7 +104,7 @@
     */
    @ApiOperation("删除标签")
    @ApiImplicitParam(name = "remove", value = "主键ID", dataType = "long", dataTypeClass = Array.class)
    @PreAuthorize("@ss.hasPermi('system:tag:remove')")
    //@PreAuthorize("@ss.hasPermi('system:tag:remove')")
    @Log(title = "标签", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{tagids}")
    public AjaxResult remove(@PathVariable Long[] tagids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseTagcategoryController.java
@@ -35,7 +35,7 @@
    /**
     * æŸ¥è¯¢æ ‡ç­¾åˆ†ç±»åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:tagcategory:list')")
    //@PreAuthorize("@ss.hasPermi('system:tagcategory:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody  BaseTagcategory baseTagcategory) {
        startPage();
@@ -46,7 +46,7 @@
    /**
     * å¯¼å‡ºæ ‡ç­¾åˆ†ç±»åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:tagcategory:export')")
    //@PreAuthorize("@ss.hasPermi('system:tagcategory:export')")
    @Log(title = "标签分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, BaseTagcategory baseTagcategory) {
@@ -58,7 +58,7 @@
    /**
     * èŽ·å–æ ‡ç­¾åˆ†ç±»è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:tagcategory:query')")
    //@PreAuthorize("@ss.hasPermi('system:tagcategory:query')")
    @GetMapping(value = "/{tagcategoryid}")
    public AjaxResult getInfo(@PathVariable("tagcategoryid") Long tagcategoryid) {
        return success(baseTagcategoryService.selectBaseTagcategoryByTagcategoryid(tagcategoryid));
@@ -67,7 +67,7 @@
    /**
     * æ–°å¢žæ ‡ç­¾åˆ†ç±»
     */
    @PreAuthorize("@ss.hasPermi('system:tagcategory:add')")
    //@PreAuthorize("@ss.hasPermi('system:tagcategory:add')")
    @Log(title = "标签分类", businessType = BusinessType.INSERT)
    @ApiOperation("新增标签分类")
    @PostMapping("/add")
@@ -78,7 +78,7 @@
    /**
     * ä¿®æ”¹æ ‡ç­¾åˆ†ç±»
     */
    @PreAuthorize("@ss.hasPermi('system:tagcategory:edit')")
    //@PreAuthorize("@ss.hasPermi('system:tagcategory:edit')")
    @Log(title = "标签分类", businessType = BusinessType.UPDATE)
    @ApiOperation("修改标签分类")
    @PostMapping("/edit")
@@ -89,7 +89,7 @@
    /**
     * æ ¹æ®åˆ†ç±»ID删除标签分类
     */
    @PreAuthorize("@ss.hasPermi('system:tagcategory:remove')")
    //@PreAuthorize("@ss.hasPermi('system:tagcategory:remove')")
    @Log(title = "标签分类", businessType = BusinessType.DELETE)
    @ApiOperation("根据分类ID删除标签分类")
    @GetMapping("/remove/{tagcategoryids}")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseUserInfoController.java
@@ -35,7 +35,7 @@
     * æŸ¥è¯¢ç”¨æˆ·åˆ—表
     */
    @ApiOperation("查询用户列表")
    @PreAuthorize("@ss.hasPermi('system:info:list')")
    //@PreAuthorize("@ss.hasPermi('system:info:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody BaseUserInfo baseUserInfo) {
        startPage();
@@ -47,7 +47,7 @@
     * å¯¼å‡ºç”¨æˆ·åˆ—表
     */
    @ApiOperation("导出用户列表")
    @PreAuthorize("@ss.hasPermi('system:info:export')")
    //@PreAuthorize("@ss.hasPermi('system:info:export')")
    @Log(title = "用户" , businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, BaseUserInfo baseUserInfo) {
@@ -60,7 +60,7 @@
     * èŽ·å–ç”¨æˆ·è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取用户详细信息")
    @PreAuthorize("@ss.hasPermi('system:info:query')")
    //@PreAuthorize("@ss.hasPermi('system:info:query')")
    @GetMapping(value = "/{userid}")
    public AjaxResult getInfo(@PathVariable("userid") Long userid) {
        return success(baseUserInfoService.selectBaseUserInfoByUserid(userid));
@@ -70,7 +70,7 @@
     * æ–°å¢žç”¨æˆ·
     */
    @ApiOperation("新增用户")
    @PreAuthorize("@ss.hasPermi('system:info:add')")
    //@PreAuthorize("@ss.hasPermi('system:info:add')")
    @Log(title = "用户" , businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody BaseUserInfo baseUserInfo) {
@@ -81,7 +81,7 @@
     * ä¿®æ”¹ç”¨æˆ·
     */
    @ApiOperation("修改用户")
    @PreAuthorize("@ss.hasPermi('system:info:edit')")
    //@PreAuthorize("@ss.hasPermi('system:info:edit')")
    @Log(title = "用户" , businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody BaseUserInfo baseUserInfo) {
@@ -92,7 +92,7 @@
     * åˆ é™¤ç”¨æˆ·
     */
    @ApiOperation("删除用户")
    @PreAuthorize("@ss.hasPermi('system:info:remove')")
    //@PreAuthorize("@ss.hasPermi('system:info:remove')")
    @Log(title = "用户" , businessType = BusinessType.DELETE)
    @GetMapping("/remove/{userids}")
    public AjaxResult remove(@PathVariable Long[] userids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/EquipmentinfoController.java
@@ -43,7 +43,7 @@
    /**
     * æŸ¥è¯¢ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:equipmentinfo:list')")
    //@PreAuthorize("@ss.hasPermi('system:equipmentinfo:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody Equipmentinfo equipmentinfo) {
        startPage();
@@ -54,7 +54,7 @@
    /**
     * å¯¼å‡ºã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:equipmentinfo:export')")
    //@PreAuthorize("@ss.hasPermi('system:equipmentinfo:export')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, Equipmentinfo equipmentinfo) {
@@ -66,7 +66,7 @@
    /**
     * èŽ·å–ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:equipmentinfo:query')")
    //@PreAuthorize("@ss.hasPermi('system:equipmentinfo:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(equipmentinfoService.selectEquipmentinfoById(id));
@@ -75,7 +75,7 @@
    /**
     * æ–°å¢žã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @PreAuthorize("@ss.hasPermi('system:equipmentinfo:add')")
    //@PreAuthorize("@ss.hasPermi('system:equipmentinfo:add')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody Equipmentinfo equipmentinfo) {
@@ -85,7 +85,7 @@
    /**
     * ä¿®æ”¹ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @PreAuthorize("@ss.hasPermi('system:equipmentinfo:edit')")
    //@PreAuthorize("@ss.hasPermi('system:equipmentinfo:edit')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody Equipmentinfo equipmentinfo) {
@@ -95,7 +95,7 @@
    /**
     * åˆ é™¤ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @PreAuthorize("@ss.hasPermi('system:equipmentinfo:remove')")
    //@PreAuthorize("@ss.hasPermi('system:equipmentinfo:remove')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeCategoryController.java
@@ -42,7 +42,7 @@
     * æŸ¥è¯¢å®£æ•™åˆ†ç±»åˆ—表
     */
    @ApiOperation("查询宣教分类列表")
    @PreAuthorize("@ss.hasPermi('smartor:hecategory:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:hecategory:list')")
    @PostMapping("/selectHeCategoryList")
    public TableDataInfo selectHeCategorylist(@RequestBody HeCategory heCategory) {
        // startPage();
@@ -54,7 +54,7 @@
     * å¯¼å‡ºå®£æ•™åˆ†ç±»åˆ—表
     */
    @ApiOperation("导出宣教分类列表")
    @PreAuthorize("@ss.hasPermi('smartor:hecategory:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:hecategory:export')")
    @Log(title = "宣教分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, HeCategory heCategory) {
@@ -67,7 +67,7 @@
     * èŽ·å–å®£æ•™åˆ†ç±»è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取宣教分类详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:hecategory:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:hecategory:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(heCategoryService.selectHeCategoryById(id));
@@ -77,7 +77,7 @@
     * æ–°å¢žå®£æ•™åˆ†ç±»
     */
    @ApiOperation("新增宣教分类")
    @PreAuthorize("@ss.hasPermi('smartor:hecategory:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:hecategory:add')")
    @Log(title = "宣教分类", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody HeCategory heCategory) {
@@ -88,7 +88,7 @@
     * ä¿®æ”¹å®£æ•™åˆ†ç±»
     */
    @ApiOperation("修改宣教分类")
    @PreAuthorize("@ss.hasPermi('smartor:hecategory:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:hecategory:edit')")
    @Log(title = "宣教分类", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody HeCategory heCategory) {
@@ -99,7 +99,7 @@
     * åˆ é™¤å®£æ•™åˆ†ç±»
     */
    @ApiOperation("删除宣教分类")
    @PreAuthorize("@ss.hasPermi('smartor:hecategory:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:hecategory:remove')")
    @Log(title = "宣教分类", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryAssortController.java
@@ -42,7 +42,7 @@
     * æŸ¥è¯¢å®£æ•™åˆ†ç±»åˆ—表
     */
    @ApiOperation("查询宣教分类列表")
    @PreAuthorize("@ss.hasPermi('smartor:assort:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:list')")
    @PostMapping("/selectHeLibraryAssortList")
    public TableDataInfo list(@RequestBody HeLibraryAssort heLibraryAssort) {
        startPage();
@@ -54,7 +54,7 @@
     * å¯¼å‡ºå®£æ•™åˆ†ç±»åˆ—表
     */
    @ApiOperation("导出宣教分类列表")
    @PreAuthorize("@ss.hasPermi('smartor:assort:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:export')")
    @Log(title = "宣教分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, HeLibraryAssort heLibraryAssort) {
@@ -67,7 +67,7 @@
     * èŽ·å–å®£æ•™åˆ†ç±»è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取宣教分类详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:assort:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(heLibraryAssortService.selectHeLibraryAssortById(id));
@@ -77,7 +77,7 @@
     * æ–°å¢žå®£æ•™åˆ†ç±»
     */
    @ApiOperation("新增宣教分类")
    @PreAuthorize("@ss.hasPermi('smartor:assort:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:add')")
    @Log(title = "宣教分类", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody HeLibraryAssort heLibraryAssort) {
@@ -87,7 +87,7 @@
    /**
     * æ–°å¢žå®£æ•™åˆ†ç±»è¯¦æƒ…æ ‘
     */
    @PreAuthorize("@ss.hasPermi('smartor:assort:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:add')")
    @Log(title = "宣教分类", businessType = BusinessType.INSERT)
    @ApiOperation("新增宣教分类详情树")
    @PostMapping("/addtree")
@@ -99,7 +99,7 @@
     * ä¿®æ”¹å®£æ•™åˆ†ç±»
     */
    @ApiOperation("修改宣教分类")
    @PreAuthorize("@ss.hasPermi('smartor:assort:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:edit')")
    @Log(title = "宣教分类", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody HeLibraryAssort heLibraryAssort) {
@@ -110,7 +110,7 @@
     * åˆ é™¤å®£æ•™åˆ†ç±»
     */
    @ApiOperation("删除宣教分类")
    @PreAuthorize("@ss.hasPermi('smartor:assort:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:remove')")
    @Log(title = "宣教分类", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryController.java
@@ -37,7 +37,7 @@
     * æŸ¥è¯¢å®£æ•™èµ„料库列表
     */
    @ApiOperation("查询宣教资料库列表")
    @PreAuthorize("@ss.hasPermi('system:library:list')")
    //@PreAuthorize("@ss.hasPermi('system:library:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody HeLibrary heLibrary) {
        startPage();
@@ -48,7 +48,7 @@
    /**
     * å¯¼å‡ºå®£æ•™èµ„料库列表
     */
    @PreAuthorize("@ss.hasPermi('system:library:export')")
    //@PreAuthorize("@ss.hasPermi('system:library:export')")
    @Log(title = "宣教资料库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, HeLibrary heLibrary) {
@@ -60,7 +60,7 @@
    /**
     * èŽ·å–å®£æ•™èµ„æ–™åº“è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:library:query')")
    //@PreAuthorize("@ss.hasPermi('system:library:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(heLibraryService.selectHeLibraryById(id));
@@ -69,7 +69,7 @@
    /**
     * æ–°å¢žå®£æ•™èµ„料库
     */
    @PreAuthorize("@ss.hasPermi('system:library:add')")
    //@PreAuthorize("@ss.hasPermi('system:library:add')")
    @Log(title = "宣教资料库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody HeLibrary heLibrary) {
@@ -79,7 +79,7 @@
    /**
     * ä¿®æ”¹å®£æ•™èµ„料库
     */
    @PreAuthorize("@ss.hasPermi('system:library:edit')")
    //@PreAuthorize("@ss.hasPermi('system:library:edit')")
    @Log(title = "宣教资料库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody HeLibrary heLibrary) {
@@ -90,7 +90,7 @@
     * åˆ é™¤å®£æ•™èµ„料库
     */
    @ApiOperation("删除宣教资料库")
    @PreAuthorize("@ss.hasPermi('system:library:remove')")
    //@PreAuthorize("@ss.hasPermi('system:library:remove')")
    @Log(title = "宣教资料库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
@@ -101,7 +101,7 @@
     * æ–°å¢žæˆ–修改宣教详情
     */
    @ApiOperation("新增或修改宣教详情")
    @PreAuthorize("@ss.hasPermi('system:script:list')")
    //@PreAuthorize("@ss.hasPermi('system:script:list')")
    @PostMapping("/saveOrUpdateHeLibrary")
    public AjaxResult saveOrUpdateHeLibrary(@RequestBody HeLibraryVO heLibraryVO) {
        if (ObjectUtils.isEmpty(heLibraryVO)) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLibraryTagController.java
@@ -39,7 +39,7 @@
    /**
     * æŸ¥è¯¢æŒ‡æ ‡æ ‡ç­¾åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:tag:list')")
    //@PreAuthorize("@ss.hasPermi('system:tag:list')")
    @GetMapping("/list")
    public TableDataInfo list(HeLibraryTag heLibraryTag) {
        startPage();
@@ -50,7 +50,7 @@
    /**
     * å¯¼å‡ºæŒ‡æ ‡æ ‡ç­¾åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:tag:export')")
    //@PreAuthorize("@ss.hasPermi('system:tag:export')")
    @Log(title = "指标标签", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, HeLibraryTag heLibraryTag) {
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–æŒ‡æ ‡æ ‡ç­¾è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:tag:query')")
    //@PreAuthorize("@ss.hasPermi('system:tag:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(heLibraryTagService.selectHeLibraryTagById(id));
@@ -71,7 +71,7 @@
    /**
     * æ–°å¢žæŒ‡æ ‡æ ‡ç­¾
     */
    @PreAuthorize("@ss.hasPermi('system:tag:add')")
    //@PreAuthorize("@ss.hasPermi('system:tag:add')")
    @Log(title = "指标标签", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody HeLibraryTag heLibraryTag) {
@@ -81,7 +81,7 @@
    /**
     * ä¿®æ”¹æŒ‡æ ‡æ ‡ç­¾
     */
    @PreAuthorize("@ss.hasPermi('system:tag:edit')")
    //@PreAuthorize("@ss.hasPermi('system:tag:edit')")
    @Log(title = "指标标签", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody HeLibraryTag heLibraryTag) {
@@ -91,7 +91,7 @@
    /**
     * åˆ é™¤æŒ‡æ ‡æ ‡ç­¾
     */
    @PreAuthorize("@ss.hasPermi('system:tag:remove')")
    //@PreAuthorize("@ss.hasPermi('system:tag:remove')")
    @Log(title = "指标标签", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/HeLocallibraryController.java
@@ -23,7 +23,7 @@
/**
 * å®£æ•™åº“Controller
 *
 *
 * @author smartor
 * @date 2023-03-04
 */
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢å®£æ•™åº“列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:helibrary:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:helibrary:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody HeLocallibrary heLocallibrary)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºå®£æ•™åº“列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:helibrary:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:helibrary:export')")
    @Log(title = "宣教库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, HeLocallibrary heLocallibrary)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–å®£æ•™åº“è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:helibrary:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:helibrary:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žå®£æ•™åº“
     */
    @PreAuthorize("@ss.hasPermi('smartor:helibrary:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:helibrary:add')")
    @Log(title = "宣教库", businessType = BusinessType.INSERT)
    @PostMapping("add")
    public AjaxResult add(@RequestBody HeLocallibrary heLocallibrary)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹å®£æ•™åº“
     */
    @PreAuthorize("@ss.hasPermi('smartor:helibrary:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:helibrary:edit')")
    @Log(title = "宣教库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody HeLocallibrary heLocallibrary)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤å®£æ•™åº“
     */
    @PreAuthorize("@ss.hasPermi('smartor:helibrary:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:helibrary:remove')")
    @Log(title = "宣教库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/Icd10AssociationController.java
@@ -35,7 +35,7 @@
     * æŸ¥è¯¢æŒ‡æ ‡ç–¾ç—…列表
     */
    @ApiOperation("查询指标疾病列表")
    @PreAuthorize("@ss.hasPermi('system:icd10:list')")
    //@PreAuthorize("@ss.hasPermi('system:icd10:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody Icd10Association icd10Association) {
        if (icd10Association.getIsPage()) {
@@ -49,7 +49,7 @@
     * å¯¼å‡ºæŒ‡æ ‡ç–¾ç—…列表
     */
    @ApiOperation("导出指标疾病列表")
    @PreAuthorize("@ss.hasPermi('system:icd10:export')")
    //@PreAuthorize("@ss.hasPermi('system:icd10:export')")
    @Log(title = "指标疾病", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, Icd10Association Icd10Association) {
@@ -62,7 +62,7 @@
     * èŽ·å–æŒ‡æ ‡ç–¾ç—…è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取指标疾病详细信息")
    @PreAuthorize("@ss.hasPermi('system:icd10:query')")
    //@PreAuthorize("@ss.hasPermi('system:icd10:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(iIcd10AssociationService.selectIcd10AssociationById(id));
@@ -72,7 +72,7 @@
     * æ–°å¢žæŒ‡æ ‡ç–¾ç—…
     */
    @ApiOperation("新增指标疾病")
    @PreAuthorize("@ss.hasPermi('system:icd10:add')")
    //@PreAuthorize("@ss.hasPermi('system:icd10:add')")
    @Log(title = "指标疾病", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody Icd10Association Icd10Association) {
@@ -83,7 +83,7 @@
     * ä¿®æ”¹æŒ‡æ ‡ç–¾ç—…
     */
    @ApiOperation("修改指标疾病")
    @PreAuthorize("@ss.hasPermi('system:icd10:edit')")
    //@PreAuthorize("@ss.hasPermi('system:icd10:edit')")
    @Log(title = "指标疾病", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody Icd10Association Icd10Association) {
@@ -94,7 +94,7 @@
     * åˆ é™¤æŒ‡æ ‡ç–¾ç—…
     */
    @ApiOperation("删除指标疾病")
    @PreAuthorize("@ss.hasPermi('system:icd10:remove')")
    //@PreAuthorize("@ss.hasPermi('system:icd10:remove')")
    @Log(title = "指标疾病", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/Icd10Controller.java
@@ -35,7 +35,7 @@
     * æŸ¥è¯¢ç–¾ç—…列表
     */
    @ApiOperation("查询疾病列表")
    @PreAuthorize("@ss.hasPermi('system:icd10:list')")
    //@PreAuthorize("@ss.hasPermi('system:icd10:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody Icd10 icd10) {
        PageUtils.startPageByPost(icd10.getPageNum(),icd10.getPageSize());
@@ -47,7 +47,7 @@
     * å¯¼å‡ºç–¾ç—…列表
     */
    @ApiOperation("导出疾病列表")
    @PreAuthorize("@ss.hasPermi('system:icd10:export')")
    //@PreAuthorize("@ss.hasPermi('system:icd10:export')")
    @Log(title = "疾病", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, Icd10 icd10) {
@@ -60,7 +60,7 @@
     * èŽ·å–ç–¾ç—…è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取疾病详细信息")
    @PreAuthorize("@ss.hasPermi('system:icd10:query')")
    //@PreAuthorize("@ss.hasPermi('system:icd10:query')")
    @GetMapping(value = "/getInfo/{icdid}")
    public AjaxResult getInfo(@PathVariable("icdid") Long icdid) {
        return success(icd10Service.selectIcd10ByIcdid(icdid));
@@ -70,7 +70,7 @@
     * æ–°å¢žç–¾ç—…
     */
    @ApiOperation("新增疾病")
    @PreAuthorize("@ss.hasPermi('system:icd10:add')")
    //@PreAuthorize("@ss.hasPermi('system:icd10:add')")
    @Log(title = "疾病", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody Icd10 icd10) {
@@ -81,7 +81,7 @@
     * ä¿®æ”¹ç–¾ç—…
     */
    @ApiOperation("修改疾病")
    @PreAuthorize("@ss.hasPermi('system:icd10:edit')")
    //@PreAuthorize("@ss.hasPermi('system:icd10:edit')")
    @Log(title = "疾病", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody Icd10 icd10) {
@@ -92,7 +92,7 @@
     * åˆ é™¤ç–¾ç—…
     */
    @ApiOperation("删除疾病")
    @PreAuthorize("@ss.hasPermi('system:icd10:remove')")
    //@PreAuthorize("@ss.hasPermi('system:icd10:remove')")
    @Log(title = "疾病", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{icdids}")
    public AjaxResult remove(@PathVariable Long[] icdids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibIntentController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI意图库列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibIntent ivrLibIntent)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI意图库列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:export')")
    @Log(title = "AI意图库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibIntent ivrLibIntent)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI意图库详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:query')")
    @GetMapping(value = "/{intentid}")
    public AjaxResult getInfo(@PathVariable("intentid") Long intentid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI意图库
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:add')")
    @Log(title = "AI意图库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibIntent ivrLibIntent)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI意图库
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:edit')")
    @Log(title = "AI意图库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibIntent ivrLibIntent)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI意图库
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibintent:remove')")
    @Log(title = "AI意图库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{intentids}")
    public AjaxResult remove(@PathVariable Long[] intentids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibIntentcategoryController.java
@@ -23,7 +23,7 @@
/**
 * AI意图库分类Controller
 *
 *
 * @author smartor
 * @date 2023-03-06
 */
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI意图库分类列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibIntentcategory ivrLibIntentcategory)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI意图库分类列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:export')")
    @Log(title = "AI意图库分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibIntentcategory ivrLibIntentcategory)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI意图库分类详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:query')")
    @GetMapping(value = "/{intertcatid}")
    public AjaxResult getInfo(@PathVariable("intertcatid") Long intertcatid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI意图库分类
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:add')")
    @Log(title = "AI意图库分类", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibIntentcategory ivrLibIntentcategory)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI意图库分类
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:edit')")
    @Log(title = "AI意图库分类", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibIntentcategory ivrLibIntentcategory)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI意图库分类
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibintentcategory:remove')")
    @Log(title = "AI意图库分类", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{intertcatids}")
    public AjaxResult remove(@PathVariable Long[] intertcatids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI话术库列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibScript ivrLibScript)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI话术库列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:export')")
    @Log(title = "AI话术库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibScript ivrLibScript)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI话术库详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:query')")
    @GetMapping(value = "/{scriptid}")
    public AjaxResult getInfo(@PathVariable("scriptid") Long scriptid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI话术库
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:add')")
    @Log(title = "AI话术库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibScript ivrLibScript)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI话术库
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:edit')")
    @Log(title = "AI话术库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibScript ivrLibScript)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI话术库
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscript:remove')")
    @Log(title = "AI话术库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{scriptids}")
    public AjaxResult remove(@PathVariable Long[] scriptids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptcategoryController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI话术库分类列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibScriptcategory ivrLibScriptcategory)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI话术库分类列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:export')")
    @Log(title = "AI话术库分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibScriptcategory ivrLibScriptcategory)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI话术库分类详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:query')")
    @GetMapping(value = "/{categoryid}")
    public AjaxResult getInfo(@PathVariable("categoryid") Long categoryid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI话术库分类
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:add')")
    @Log(title = "AI话术库分类", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibScriptcategory ivrLibScriptcategory)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI话术库分类
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:edit')")
    @Log(title = "AI话术库分类", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibScriptcategory ivrLibScriptcategory)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI话术库分类
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptcategory:remove')")
    @Log(title = "AI话术库分类", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{categoryids}")
    public AjaxResult remove(@PathVariable Long[] categoryids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibScriptmodelController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI话术模块列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibScriptmodel ivrLibScriptmodel)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI话术模块列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:export')")
    @Log(title = "AI话术模块", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibScriptmodel ivrLibScriptmodel)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI话术模块详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:query')")
    @GetMapping(value = "/{modelid}")
    public AjaxResult getInfo(@PathVariable("modelid") Long modelid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI话术模块
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:add')")
    @Log(title = "AI话术模块", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibScriptmodel ivrLibScriptmodel)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI话术模块
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:edit')")
    @Log(title = "AI话术模块", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibScriptmodel ivrLibScriptmodel)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI话术模块
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrlibscriptmodel:remove')")
    @Log(title = "AI话术模块", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{modelids}")
    public AjaxResult remove(@PathVariable Long[] modelids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaExtemplateCategoryController.java
@@ -34,7 +34,7 @@
     * æŸ¥è¯¢é€šç”¨æ¨¡æ¿åˆ†ç±»åˆ—表
     */
    @ApiOperation("查询通用模板分类列表")
    @PreAuthorize("@ss.hasPermi('smartor:category:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaExtemplateCategory ivrLibaExtemplateCategory) {
        startPage();
@@ -46,7 +46,7 @@
     * å¯¼å‡ºé€šç”¨æ¨¡æ¿åˆ†ç±»åˆ—表
     */
    @ApiOperation("导出通用模板分类列表")
    @PreAuthorize("@ss.hasPermi('smartor:category:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:export')")
    @Log(title = "通用模板分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaExtemplateCategory ivrLibaExtemplateCategory) {
@@ -59,7 +59,7 @@
     * èŽ·å–é€šç”¨æ¨¡æ¿åˆ†ç±»è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取通用模板分类详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:category:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:query')")
    @GetMapping(value = "/getInfo/{intertcatid}")
    public AjaxResult getInfo(@PathVariable("intertcatid") Long intertcatid) {
        return success(ivrLibaExtemplateCategoryService.selectIvrLibaExtemplateCategoryByIntertcatid(intertcatid));
@@ -69,7 +69,7 @@
     * æ–°å¢žé€šç”¨æ¨¡æ¿åˆ†ç±»
     */
    @ApiOperation("新增通用模板分类")
    @PreAuthorize("@ss.hasPermi('smartor:category:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:add')")
    @Log(title = "通用模板分类", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaExtemplateCategory ivrLibaExtemplateCategory) {
@@ -80,7 +80,7 @@
     * ä¿®æ”¹é€šç”¨æ¨¡æ¿åˆ†ç±»
     */
    @ApiOperation("修改通用模板分类")
    @PreAuthorize("@ss.hasPermi('smartor:category:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:edit')")
    @Log(title = "通用模板分类", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaExtemplateCategory ivrLibaExtemplateCategory) {
@@ -91,7 +91,7 @@
     * åˆ é™¤é€šç”¨æ¨¡æ¿åˆ†ç±»
     */
    @ApiOperation("删除通用模板分类")
    @PreAuthorize("@ss.hasPermi('smartor:category:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:remove')")
    @Log(title = "通用模板分类", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{intertcatids}")
    public AjaxResult remove(@PathVariable Long[] intertcatids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaExtemplateController.java
@@ -34,7 +34,7 @@
     * æŸ¥è¯¢é€šè¿‡æ¨¡æ¿åˆ—表
     */
    @ApiOperation("查询通过模板列表")
    @PreAuthorize("@ss.hasPermi('smartor:extemplate:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:extemplate:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaExtemplate ivrLibaExtemplate) {
        startPage();
@@ -46,7 +46,7 @@
     * å¯¼å‡ºé€šè¿‡æ¨¡æ¿åˆ—表
     */
    @ApiOperation("导出通过模板列表")
    @PreAuthorize("@ss.hasPermi('smartor:extemplate:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:extemplate:export')")
    @Log(title = "通过模板", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaExtemplate ivrLibaExtemplate) {
@@ -59,7 +59,7 @@
     * èŽ·å–é€šè¿‡æ¨¡æ¿è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取通过模板详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:extemplate:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:extemplate:query')")
    @GetMapping(value = "/{ID}")
    public AjaxResult getInfo(@PathVariable("ID") String ID) {
        return success(ivrLibaExtemplateService.selectIvrLibaExtemplateByID(ID));
@@ -69,7 +69,7 @@
     * æ–°å¢žé€šè¿‡æ¨¡æ¿
     */
    @ApiOperation("新增通过模板")
    @PreAuthorize("@ss.hasPermi('smartor:extemplate:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:extemplate:add')")
    @Log(title = "通过模板", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaExtemplate ivrLibaExtemplate) {
@@ -80,7 +80,7 @@
     * ä¿®æ”¹é€šè¿‡æ¨¡æ¿
     */
    @ApiOperation("修改通过模板")
    @PreAuthorize("@ss.hasPermi('smartor:extemplate:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:extemplate:edit')")
    @Log(title = "通过模板", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaExtemplate ivrLibaExtemplate) {
@@ -91,7 +91,7 @@
     * åˆ é™¤é€šè¿‡æ¨¡æ¿
     */
    @ApiOperation("删除通过模板")
    @PreAuthorize("@ss.hasPermi('smartor:extemplate:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:extemplate:remove')")
    @Log(title = "通过模板", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{IDs}")
    public AjaxResult remove(@PathVariable Long[] IDs) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaExtemplatescriptController.java
@@ -34,7 +34,7 @@
     * æŸ¥è¯¢é€šç”¨æ¨¡æ¿è¯æœ¯åˆ—表
     */
    @ApiOperation("查询通用模板话术列表")
    @PreAuthorize("@ss.hasPermi('smartor:extemplatescript:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:extemplatescript:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaExtemplatescript ivrLibaExtemplatescript) {
        startPage();
@@ -46,7 +46,7 @@
     * å¯¼å‡ºé€šç”¨æ¨¡æ¿è¯æœ¯åˆ—表
     */
    @ApiOperation("导出通用模板话术列表")
    @PreAuthorize("@ss.hasPermi('smartor:extemplatescript:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:extemplatescript:export')")
    @Log(title = "通用模板话术", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaExtemplatescript ivrLibaExtemplatescript) {
@@ -59,7 +59,7 @@
     * èŽ·å–é€šç”¨æ¨¡æ¿è¯æœ¯è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取通用模板话术详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:extemplatescript:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:extemplatescript:query')")
    @GetMapping(value = "/getInfo/{ID}")
    public AjaxResult getInfo(@PathVariable("ID") String ID) {
        return success(ivrLibaExtemplatescriptService.selectIvrLibaExtemplatescriptByID(ID));
@@ -69,7 +69,7 @@
     * æ–°å¢žé€šç”¨æ¨¡æ¿è¯æœ¯
     */
    @ApiOperation("新增通用模板话术")
    @PreAuthorize("@ss.hasPermi('smartor:extemplatescript:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:extemplatescript:add')")
    @Log(title = "通用模板话术", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaExtemplatescript ivrLibaExtemplatescript) {
@@ -80,7 +80,7 @@
     * ä¿®æ”¹é€šç”¨æ¨¡æ¿è¯æœ¯
     */
    @ApiOperation("修改通用模板话术")
    @PreAuthorize("@ss.hasPermi('smartor:extemplatescript:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:extemplatescript:edit')")
    @Log(title = "通用模板话术", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaExtemplatescript ivrLibaExtemplatescript) {
@@ -91,7 +91,7 @@
     * åˆ é™¤é€šç”¨æ¨¡æ¿è¯æœ¯
     */
    @ApiOperation("删除通用模板话术")
    @PreAuthorize("@ss.hasPermi('smartor:extemplatescript:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:extemplatescript:remove')")
    @Log(title = "通用模板话术", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{IDs}")
    public AjaxResult remove(@PathVariable Long[] IDs) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptAssortController.java
@@ -37,7 +37,7 @@
     * åˆ—表
     */
    @ApiOperation("查询问题话术分类库(树状)")
    @PreAuthorize("@ss.hasPermi('system:assort:list')")
    //@PreAuthorize("@ss.hasPermi('system:assort:list')")
    @PostMapping("/selectIvrLibaScriptAssortList")
    public TableDataInfo list(@RequestBody IvrLibaScriptAssort ivrLibaScriptAssort) {
        List<IvrLibaScriptAssortVO> list = ivrLibaScriptAssortService.selectIvrLibaScriptAssortList(ivrLibaScriptAssort);
@@ -49,7 +49,7 @@
     * åˆ—表
     */
    @ApiOperation("导出问题话术分类库")
    @PreAuthorize("@ss.hasPermi('system:assort:export')")
    //@PreAuthorize("@ss.hasPermi('system:assort:export')")
    @Log(title = "问题话术分类库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaScriptAssort ivrLibaScriptAssort) {
@@ -63,7 +63,7 @@
     * è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取问题话术分类库")
    @PreAuthorize("@ss.hasPermi('system:assort:query')")
    //@PreAuthorize("@ss.hasPermi('system:assort:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(ivrLibaScriptAssortService.selectIvrLibaScriptAssortById(id));
@@ -73,7 +73,7 @@
     * æ–°å¢žé—®é¢˜è¯æœ¯åˆ†ç±»åº“
     */
    @ApiOperation("新增问题话术分类库")
    @PreAuthorize("@ss.hasPermi('system:assort:add')")
    //@PreAuthorize("@ss.hasPermi('system:assort:add')")
    @Log(title = "问题话术分类库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaScriptAssort ivrLibaScriptAssort) {
@@ -83,7 +83,7 @@
    /**
     * æ–°å¢žé—®é¢˜è¯æœ¯åˆ†ç±»æ ‘
     */
    @PreAuthorize("@ss.hasPermi('system:assort:add')")
    //@PreAuthorize("@ss.hasPermi('system:assort:add')")
    @Log(title = "问题话术分类库", businessType = BusinessType.INSERT)
    @ApiOperation("新增问题话术分类树")
    @PostMapping("/addtree")
@@ -95,7 +95,7 @@
     * ä¿®æ”¹é—®é¢˜è¯æœ¯åˆ†ç±»åº“
     */
    @ApiOperation("修改问题话术分类库")
    @PreAuthorize("@ss.hasPermi('system:assort:edit')")
    //@PreAuthorize("@ss.hasPermi('system:assort:edit')")
    @Log(title = "问题话术分类库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaScriptAssort ivrLibaScriptAssort) {
@@ -106,7 +106,7 @@
     * åˆ é™¤é—®é¢˜è¯æœ¯åˆ†ç±»åº“
     */
    @ApiOperation("删除问题话术分类库")
    @PreAuthorize("@ss.hasPermi('system:assort:remove')")
    //@PreAuthorize("@ss.hasPermi('system:assort:remove')")
    @Log(title = "问题话术分类库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptController.java
@@ -38,7 +38,7 @@
     * æŸ¥è¯¢é—®é¢˜è¯æœ¯åº“列表
     */
    @ApiOperation("查询问题话术库列表")
    @PreAuthorize("@ss.hasPermi('system:script:list')")
    //@PreAuthorize("@ss.hasPermi('system:script:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaScript ivrLibaScript) {
        PageUtils.startPageByPost(ivrLibaScript.getPageNum(),ivrLibaScript.getPageSize());
@@ -50,7 +50,7 @@
     * å¯¼å‡ºé—®é¢˜è¯æœ¯åº“列表
     */
    @ApiOperation("导出问题话术库列表")
    @PreAuthorize("@ss.hasPermi('system:script:export')")
    //@PreAuthorize("@ss.hasPermi('system:script:export')")
    @Log(title = "问题话术库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaScript ivrLibaScript) {
@@ -63,7 +63,7 @@
     * èŽ·å–é—®é¢˜è¯æœ¯åº“è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取问题话术库详细信息")
    @PreAuthorize("@ss.hasPermi('system:script:query')")
    //@PreAuthorize("@ss.hasPermi('system:script:query')")
    @GetMapping(value = "/getInfo/{questionid}")
    public AjaxResult getInfo(@PathVariable("questionid") String questionid) {
        return success(ivrLibaScriptService.selectIvrLibaScriptByQuestionid(questionid));
@@ -73,7 +73,7 @@
     * æ–°å¢žé—®é¢˜è¯æœ¯åº“
     */
    @ApiOperation("新增问题话术库")
    @PreAuthorize("@ss.hasPermi('system:script:add')")
    //@PreAuthorize("@ss.hasPermi('system:script:add')")
    @Log(title = "问题话术库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaScript ivrLibaScript) {
@@ -84,7 +84,7 @@
     * ä¿®æ”¹é—®é¢˜è¯æœ¯åº“
     */
    @ApiOperation("修改问题话术库")
    @PreAuthorize("@ss.hasPermi('system:script:edit')")
    //@PreAuthorize("@ss.hasPermi('system:script:edit')")
    @Log(title = "问题话术库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaScript ivrLibaScript) {
@@ -95,7 +95,7 @@
     * åˆ é™¤é—®é¢˜è¯æœ¯åº“
     */
    @ApiOperation("删除问题话术库")
    @PreAuthorize("@ss.hasPermi('system:script:remove')")
    //@PreAuthorize("@ss.hasPermi('system:script:remove')")
    @Log(title = "问题话术库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{questionids}")
    public AjaxResult remove(@PathVariable String[] questionids) {
@@ -107,7 +107,7 @@
     * æŸ¥è¯¢é—®é¢˜è¯æœ¯è¯¦æƒ…根据条件
     */
    @ApiOperation("查询问题话术详情根据条件")
    @PreAuthorize("@ss.hasPermi('system:script:list')")
    //@PreAuthorize("@ss.hasPermi('system:script:list')")
    @PostMapping("/selectInfoByCondition")
    public AjaxResult selectInfoByCondition(@RequestBody IvrLibaScriptVO ivrLibaScriptVO) {
        if (ObjectUtils.isEmpty(ivrLibaScriptVO)) {
@@ -122,7 +122,7 @@
     * æ–°å¢žæˆ–修改问题详情
     */
    @ApiOperation("新增或修改问题详情")
    @PreAuthorize("@ss.hasPermi('system:script:list')")
    //@PreAuthorize("@ss.hasPermi('system:script:list')")
    @PostMapping("/saveOrUpdateScript")
    public AjaxResult saveOrUpdateScript(@RequestBody IvrLibaScriptVO ivrLibaScriptVO) {
        if (ObjectUtils.isEmpty(ivrLibaScriptVO)) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptTagController.java
@@ -30,7 +30,7 @@
    /**
     * æŸ¥è¯¢é—®é¢˜è¯æœ¯æ ‡ç­¾åº“列表
     */
    @PreAuthorize("@ss.hasPermi('system:tag:list')")
    //@PreAuthorize("@ss.hasPermi('system:tag:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaScriptTag ivrLibaScriptTag) {
        startPage();
@@ -41,7 +41,7 @@
    /**
     * å¯¼å‡ºé—®é¢˜è¯æœ¯æ ‡ç­¾åº“列表
     */
    @PreAuthorize("@ss.hasPermi('system:tag:export')")
    //@PreAuthorize("@ss.hasPermi('system:tag:export')")
    @Log(title = "问题话术标签库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaScriptTag ivrLibaScriptTag) {
@@ -53,7 +53,7 @@
    /**
     * èŽ·å–é—®é¢˜è¯æœ¯æ ‡ç­¾åº“è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:tag:query')")
    //@PreAuthorize("@ss.hasPermi('system:tag:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(ivrLibaScriptTagService.selectIvrLibaScriptTagById(id));
@@ -62,7 +62,7 @@
    /**
     * æ–°å¢žé—®é¢˜è¯æœ¯æ ‡ç­¾åº“
     */
    @PreAuthorize("@ss.hasPermi('system:tag:add')")
    //@PreAuthorize("@ss.hasPermi('system:tag:add')")
    @Log(title = "问题话术标签库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaScriptTag ivrLibaScriptTag) {
@@ -72,7 +72,7 @@
    /**
     * ä¿®æ”¹é—®é¢˜è¯æœ¯æ ‡ç­¾åº“
     */
    @PreAuthorize("@ss.hasPermi('system:tag:edit')")
    //@PreAuthorize("@ss.hasPermi('system:tag:edit')")
    @Log(title = "问题话术标签库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaScriptTag ivrLibaScriptTag) {
@@ -82,7 +82,7 @@
    /**
     * åˆ é™¤é—®é¢˜è¯æœ¯æ ‡ç­¾åº“
     */
    @PreAuthorize("@ss.hasPermi('system:tag:remove')")
    //@PreAuthorize("@ss.hasPermi('system:tag:remove')")
    @Log(title = "问题话术标签库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptTargetController.java
@@ -30,7 +30,7 @@
    /**
     * æŸ¥è¯¢é—®é¢˜è¯æœ¯æŒ‡æ ‡åº“列表
     */
    @PreAuthorize("@ss.hasPermi('system:target:list')")
    //@PreAuthorize("@ss.hasPermi('system:target:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaScriptTarget ivrLibaScriptTarget) {
        startPage();
@@ -41,7 +41,7 @@
    /**
     * å¯¼å‡ºé—®é¢˜è¯æœ¯æŒ‡æ ‡åº“列表
     */
    @PreAuthorize("@ss.hasPermi('system:target:export')")
    //@PreAuthorize("@ss.hasPermi('system:target:export')")
    @Log(title = "问题话术指标库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaScriptTarget ivrLibaScriptTarget) {
@@ -53,7 +53,7 @@
    /**
     * èŽ·å–é—®é¢˜è¯æœ¯æŒ‡æ ‡åº“è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:target:query')")
    //@PreAuthorize("@ss.hasPermi('system:target:query')")
    @GetMapping(value = "/getInfo/{questionTargetID}")
    public AjaxResult getInfo(@PathVariable("questionTargetID") String questionTargetID) {
        return success(ivrLibaScriptTargetService.selectIvrLibaScriptTargetByQuestionTargetID(questionTargetID));
@@ -62,7 +62,7 @@
    /**
     * æ–°å¢žé—®é¢˜è¯æœ¯æŒ‡æ ‡åº“
     */
    @PreAuthorize("@ss.hasPermi('system:target:add')")
    //@PreAuthorize("@ss.hasPermi('system:target:add')")
    @Log(title = "问题话术指标库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaScriptTarget ivrLibaScriptTarget) {
@@ -72,7 +72,7 @@
    /**
     * ä¿®æ”¹é—®é¢˜è¯æœ¯æŒ‡æ ‡åº“
     */
    @PreAuthorize("@ss.hasPermi('system:target:edit')")
    //@PreAuthorize("@ss.hasPermi('system:target:edit')")
    @Log(title = "问题话术指标库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaScriptTarget ivrLibaScriptTarget) {
@@ -82,7 +82,7 @@
    /**
     * åˆ é™¤é—®é¢˜è¯æœ¯æŒ‡æ ‡åº“
     */
    @PreAuthorize("@ss.hasPermi('system:target:remove')")
    //@PreAuthorize("@ss.hasPermi('system:target:remove')")
    @Log(title = "问题话术指标库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{questionTargetIDs}")
    public AjaxResult remove(@PathVariable Integer[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaScriptTargetoptionController.java
@@ -30,7 +30,7 @@
    /**
     * æŸ¥è¯¢é—®é¢˜è¯æœ¯æŒ‡æ ‡é€‰é¡¹åº“列表
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:list')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaScriptTargetoption ivrLibaScriptTargetoption) {
        startPage();
@@ -41,7 +41,7 @@
    /**
     * å¯¼å‡ºé—®é¢˜è¯æœ¯æŒ‡æ ‡é€‰é¡¹åº“列表
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:export')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:export')")
    @Log(title = "问题话术指标选项库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaScriptTargetoption ivrLibaScriptTargetoption) {
@@ -53,7 +53,7 @@
    /**
     * èŽ·å–é—®é¢˜è¯æœ¯æŒ‡æ ‡é€‰é¡¹åº“è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:query')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:query')")
    @GetMapping(value = "/getInfo/{targetoptionid}")
    public AjaxResult getInfo(@PathVariable("targetoptionid") String targetoptionid) {
        return success(ivrLibaScriptTargetoptionService.selectIvrLibaScriptTargetoptionByTargetoptionid(targetoptionid));
@@ -62,7 +62,7 @@
    /**
     * æ–°å¢žé—®é¢˜è¯æœ¯æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:add')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:add')")
    @Log(title = "问题话术指标选项库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaScriptTargetoption ivrLibaScriptTargetoption) {
@@ -72,7 +72,7 @@
    /**
     * ä¿®æ”¹é—®é¢˜è¯æœ¯æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:edit')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:edit')")
    @Log(title = "问题话术指标选项库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaScriptTargetoption ivrLibaScriptTargetoption) {
@@ -82,7 +82,7 @@
    /**
     * åˆ é™¤é—®é¢˜è¯æœ¯æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    @Log(title = "问题话术指标选项库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{targetoptionids}")
    public AjaxResult remove(@PathVariable String[] targetoptionids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetAssortController.java
@@ -37,7 +37,7 @@
     * æŸ¥è¯¢æŒ‡æ ‡åˆ†ç±»åˆ—表
     */
    @ApiOperation("查询指标分类列表")
    @PreAuthorize("@ss.hasPermi('system:assort:list')")
    //@PreAuthorize("@ss.hasPermi('system:assort:list')")
    @PostMapping("/selectIvrLibaTargetAssortList")
    public TableDataInfo list(@RequestBody IvrLibaTargetAssort ivrLibaTargetAssort) {
//        PageUtils.startPageByPost(ivrLibaTargetAssort.getPageNum(), ivrLibaTargetAssort.getPageSize());
@@ -49,7 +49,7 @@
     * å¯¼å‡ºæŒ‡æ ‡åˆ†ç±»åˆ—表
     */
    @ApiOperation("导出指标分类列表")
    @PreAuthorize("@ss.hasPermi('system:assort:export')")
    //@PreAuthorize("@ss.hasPermi('system:assort:export')")
    @Log(title = "指标分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaTargetAssort ivrLibaTargetAssort) {
@@ -62,7 +62,7 @@
     * èŽ·å–æŒ‡æ ‡åˆ†ç±»è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取指标分类详细信息")
    @PreAuthorize("@ss.hasPermi('system:assort:query')")
    //@PreAuthorize("@ss.hasPermi('system:assort:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(ivrLibaTargetAssortService.selectIvrLibaTargetAssortById(id));
@@ -72,7 +72,7 @@
     * æ–°å¢žæŒ‡æ ‡åˆ†ç±»
     */
    @ApiOperation("新增指标分类")
    @PreAuthorize("@ss.hasPermi('system:assort:add')")
    //@PreAuthorize("@ss.hasPermi('system:assort:add')")
    @Log(title = "指标分类", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaTargetAssort ivrLibaTargetAssort) {
@@ -82,7 +82,7 @@
    /**
     * æ–°å¢žæŒ‡æ ‡åˆ†ç±»æ ‘
     */
    @PreAuthorize("@ss.hasPermi('system:assort:add')")
    //@PreAuthorize("@ss.hasPermi('system:assort:add')")
    @Log(title = "指标分类", businessType = BusinessType.INSERT)
    @ApiOperation("新增指标分类树")
    @PostMapping("/addtree")
@@ -94,7 +94,7 @@
     * ä¿®æ”¹æŒ‡æ ‡åˆ†ç±»
     */
    @ApiOperation("修改指标分类")
    @PreAuthorize("@ss.hasPermi('system:assort:edit')")
    //@PreAuthorize("@ss.hasPermi('system:assort:edit')")
    @Log(title = "指标分类", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaTargetAssort ivrLibaTargetAssort) {
@@ -105,7 +105,7 @@
     * åˆ é™¤æŒ‡æ ‡åˆ†ç±»
     */
    @ApiOperation("删除指标分类")
    @PreAuthorize("@ss.hasPermi('system:assort:remove')")
    //@PreAuthorize("@ss.hasPermi('system:assort:remove')")
    @Log(title = "指标分类", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetController.java
@@ -38,7 +38,7 @@
     * æŸ¥è¯¢æŒ‡æ ‡é€‰é¡¹åº“列表
     */
    @ApiOperation("查询指标列表")
    @PreAuthorize("@ss.hasPermi('system:target:list')")
    //@PreAuthorize("@ss.hasPermi('system:target:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaTarget ivrLibaTarget) {
        PageUtils.startPageByPost(ivrLibaTarget.getPageNum(), ivrLibaTarget.getPageSize());
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºæŒ‡æ ‡åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:target:export')")
    //@PreAuthorize("@ss.hasPermi('system:target:export')")
    @Log(title = "指标库", businessType = BusinessType.EXPORT)
    @ApiOperation("导出指标列表")
    @PostMapping("/export")
@@ -63,7 +63,7 @@
     * èŽ·å–æŒ‡æ ‡ä¿¡æ¯é€šè¿‡id
     */
    @ApiOperation("获取指标信息通过id")
    @PreAuthorize("@ss.hasPermi('system:target:query')")
    //@PreAuthorize("@ss.hasPermi('system:target:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(ivrLibaTargetService.selectIvrLibaTargetByTargetID(id));
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žæŒ‡æ ‡
     */
    @PreAuthorize("@ss.hasPermi('system:target:add')")
    //@PreAuthorize("@ss.hasPermi('system:target:add')")
    @Log(title = "指标选项库", businessType = BusinessType.INSERT)
    @ApiOperation("新增指标(这个接口没啥用了,用”新增或修改指标信息“这个接口好一些)")
    @PostMapping("/add")
@@ -94,7 +94,7 @@
     * åˆ é™¤æŒ‡æ ‡
     */
    @ApiOperation("删除指标")
    @PreAuthorize("@ss.hasPermi('system:target:remove')")
    //@PreAuthorize("@ss.hasPermi('system:target:remove')")
    @Log(title = "指标选项库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
@@ -105,7 +105,7 @@
     * æŸ¥è¯¢æŒ‡æ ‡é€‰é¡¹åº“列表
     */
    @ApiOperation("查询指标和关联的指标选项")
    @PreAuthorize("@ss.hasPermi('system:target:list')")
    //@PreAuthorize("@ss.hasPermi('system:target:list')")
    @PostMapping("/targetInfo")
    public TableDataInfo targetInfo(@RequestBody IvrLibaTarget ivrLibaTarget) {
        PageUtils.startPageByPost(ivrLibaTarget.getPageNum(), ivrLibaTarget.getPageSize());
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetTagController.java
@@ -30,7 +30,7 @@
    /**
     * æŸ¥è¯¢æŒ‡æ ‡æ ‡ç­¾åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:tag:list')")
    //@PreAuthorize("@ss.hasPermi('system:tag:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaTargetTag ivrLibaTargetTag) {
        startPage();
@@ -41,7 +41,7 @@
    /**
     * å¯¼å‡ºæŒ‡æ ‡æ ‡ç­¾åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:tag:export')")
    //@PreAuthorize("@ss.hasPermi('system:tag:export')")
    @Log(title = "指标标签", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaTargetTag ivrLibaTargetTag) {
@@ -53,7 +53,7 @@
    /**
     * èŽ·å–æŒ‡æ ‡æ ‡ç­¾è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:tag:query')")
    //@PreAuthorize("@ss.hasPermi('system:tag:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(ivrLibaTargetTagService.selectIvrLibaTargetTagById(id));
@@ -62,7 +62,7 @@
    /**
     * æ–°å¢žæŒ‡æ ‡æ ‡ç­¾
     */
    @PreAuthorize("@ss.hasPermi('system:tag:add')")
    //@PreAuthorize("@ss.hasPermi('system:tag:add')")
    @Log(title = "指标标签", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaTargetTag ivrLibaTargetTag) {
@@ -72,7 +72,7 @@
    /**
     * ä¿®æ”¹æŒ‡æ ‡æ ‡ç­¾
     */
    @PreAuthorize("@ss.hasPermi('system:tag:edit')")
    //@PreAuthorize("@ss.hasPermi('system:tag:edit')")
    @Log(title = "指标标签", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaTargetTag ivrLibaTargetTag) {
@@ -82,7 +82,7 @@
    /**
     * åˆ é™¤æŒ‡æ ‡æ ‡ç­¾
     */
    @PreAuthorize("@ss.hasPermi('system:tag:remove')")
    //@PreAuthorize("@ss.hasPermi('system:tag:remove')")
    @Log(title = "指标标签", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTargetoptionController.java
@@ -36,7 +36,7 @@
     * æŸ¥è¯¢æŒ‡æ ‡é€‰é¡¹åº“列表
     */
    @ApiOperation("查询指标选项库列表")
    @PreAuthorize("@ss.hasPermi('system:targetoption:list')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody    IvrLibaTargetoption ivrLibaTargetoption)
    {
@@ -49,7 +49,7 @@
     * å¯¼å‡ºæŒ‡æ ‡é€‰é¡¹åº“列表
     */
    @ApiOperation("导出指标选项库列表")
    @PreAuthorize("@ss.hasPermi('system:targetoption:export')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:export')")
    @Log(title = "指标选项库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaTargetoption ivrLibaTargetoption)
@@ -63,7 +63,7 @@
     * èŽ·å–æŒ‡æ ‡é€‰é¡¹åº“è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取指标选项库详细信息")
    @PreAuthorize("@ss.hasPermi('system:targetoption:query')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:query')")
    @GetMapping(value = "/getInfo/{targetoptionid}")
    public AjaxResult getInfo(@PathVariable("targetoptionid") Long targetoptionid)
    {
@@ -74,7 +74,7 @@
     * æ–°å¢žæŒ‡æ ‡é€‰é¡¹åº“
     */
    @ApiOperation("新增指标选项库")
    @PreAuthorize("@ss.hasPermi('system:targetoption:add')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:add')")
    @Log(title = "指标选项库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaTargetoption ivrLibaTargetoption)
@@ -86,7 +86,7 @@
     * ä¿®æ”¹æŒ‡æ ‡é€‰é¡¹åº“
     */
    @ApiOperation("修改指标选项库")
    @PreAuthorize("@ss.hasPermi('system:targetoption:edit')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:edit')")
    @Log(title = "指标选项库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaTargetoption ivrLibaTargetoption)
@@ -98,7 +98,7 @@
     * åˆ é™¤æŒ‡æ ‡é€‰é¡¹åº“
     */
    @ApiOperation("删除指标选项库")
    @PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    @Log(title = "指标选项库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{targetoptionids}")
    public AjaxResult remove(@PathVariable Long[] targetoptionids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateAssortController.java
@@ -36,7 +36,7 @@
     * æŸ¥è¯¢æ¨¡æ¿åˆ†ç±»åˆ—表
     */
    @ApiOperation("查询模板分类列表")
    @PreAuthorize("@ss.hasPermi('smartor:assort:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:list')")
    @PostMapping("/selectIvrLibaTemplateAssortList")
    public TableDataInfo selectIvrLibaTemplateAssortList(@RequestBody IvrLibaTemplateAssort ivrLibaTemplateAssort) {
//        startPage();
@@ -48,7 +48,7 @@
     * å¯¼å‡ºæ¨¡æ¿åˆ†ç±»åˆ—表
     */
    @ApiOperation("导出模板分类列表")
    @PreAuthorize("@ss.hasPermi('smartor:assort:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:export')")
    @Log(title = "模板分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaTemplateAssort ivrLibaTemplateAssort) {
@@ -61,7 +61,7 @@
     * èŽ·å–æ¨¡æ¿åˆ†ç±»è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取模板分类详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:assort:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(ivrLibaTemplateAssortService.selectIvrLibaTemplateAssortById(id));
@@ -71,7 +71,7 @@
     * æ–°å¢žæ¨¡æ¿åˆ†ç±»
     */
    @ApiOperation("新增模板分类")
    @PreAuthorize("@ss.hasPermi('smartor:assort:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:add')")
    @Log(title = "模板分类", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaTemplateAssort ivrLibaTemplateAssort) {
@@ -81,7 +81,7 @@
    /**
     * æ–°å¢žæ¨¡æ¿åˆ†ç±»æ ‘
     */
    @PreAuthorize("@ss.hasPermi('smartor:assort:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:add')")
    @Log(title = "模板分类", businessType = BusinessType.INSERT)
    @ApiOperation("新增模板分类树")
    @PostMapping("/addtree")
@@ -93,7 +93,7 @@
     * ä¿®æ”¹æ¨¡æ¿åˆ†ç±»
     */
    @ApiOperation("修改模板分类")
    @PreAuthorize("@ss.hasPermi('smartor:assort:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:edit')")
    @Log(title = "模板分类", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaTemplateAssort ivrLibaTemplateAssort) {
@@ -104,7 +104,7 @@
     * åˆ é™¤æ¨¡æ¿åˆ†ç±»
     */
    @ApiOperation("删除模板分类")
    @PreAuthorize("@ss.hasPermi('smartor:assort:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:remove')")
    @Log(title = "模板分类", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateController.java
@@ -50,7 +50,7 @@
     * æŸ¥è¯¢æ¨¡æ¿åº“列表
     */
    @ApiOperation("查询随访模板库列表")
    @PreAuthorize("@ss.hasPermi('smartor:template:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:template:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaTemplate ivrLibaTemplate) {
        //分页
@@ -63,7 +63,7 @@
     * å¯¼å‡ºæ¨¡æ¿åº“列表
     */
    @ApiOperation("导出随访模板库列表")
    @PreAuthorize("@ss.hasPermi('smartor:template:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:template:export')")
    @Log(title = "模板库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaTemplate ivrLibaTemplate) {
@@ -76,7 +76,7 @@
     * èŽ·å–æ¨¡æ¿åº“è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取随访模板库详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:template:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:template:query')")
    @GetMapping(value = "/{ID}")
    public AjaxResult getInfo(@PathVariable("ID") Long ID) {
        return success(ivrLibaTemplateService.selectIvrLibaTemplateByID(ID));
@@ -86,7 +86,7 @@
     * æ–°å¢žæ¨¡æ¿åº“
     */
    @ApiOperation("新增随访模板库")
    @PreAuthorize("@ss.hasPermi('smartor:template:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:template:add')")
    @Log(title = "模板库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaTemplate ivrLibaTemplate) {
@@ -97,7 +97,7 @@
     * ä¿®æ”¹æ¨¡æ¿åº“
     */
    @ApiOperation("修改随访模板库")
    @PreAuthorize("@ss.hasPermi('smartor:template:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:template:edit')")
    @Log(title = "模板库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaTemplate ivrLibaTemplate) {
@@ -108,7 +108,7 @@
     * åˆ é™¤æ¨¡æ¿åº“
     */
    @ApiOperation("删除随访模板库")
    @PreAuthorize("@ss.hasPermi('smartor:template:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:template:remove')")
    @Log(title = "模板库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{IDs}")
    public AjaxResult remove(@PathVariable Long[] IDs) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateScriptController.java
@@ -35,7 +35,7 @@
     * æŸ¥è¯¢æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“列表
     */
    @ApiOperation("查询模版问题话术库列表")
    @PreAuthorize("@ss.hasPermi('smartor:script:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:script:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaTemplateScript ivrLibaTemplateScript)
    {
@@ -48,7 +48,7 @@
     * å¯¼å‡ºæ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“列表
     */
    @ApiOperation("导出模版问题话术库列表")
    @PreAuthorize("@ss.hasPermi('smartor:script:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:script:export')")
    @Log(title = "模版问题话术库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaTemplateScript ivrLibaTemplateScript)
@@ -62,7 +62,7 @@
     * èŽ·å–æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取模版问题话术库详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:script:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:script:query')")
    @GetMapping(value = "/getInfo/{ID}")
    public AjaxResult getInfo(@PathVariable("ID") Long ID)
    {
@@ -73,7 +73,7 @@
     * æ–°å¢žæ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“
     */
    @ApiOperation("新增模版问题话术库")
    @PreAuthorize("@ss.hasPermi('smartor:script:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:script:add')")
    @Log(title = "模版问题话术库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaTemplateScript ivrLibaTemplateScript)
@@ -85,7 +85,7 @@
     * ä¿®æ”¹æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“
     */
    @ApiOperation("修改模版问题话术库")
    @PreAuthorize("@ss.hasPermi('smartor:script:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:script:edit')")
    @Log(title = "模版问题话术库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaTemplateScript ivrLibaTemplateScript)
@@ -97,7 +97,7 @@
     * åˆ é™¤æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“
     */
    @ApiOperation("删除模版问题话术库")
    @PreAuthorize("@ss.hasPermi('smartor:script:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:script:remove')")
    @Log(title = "模版问题话术库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{IDs}")
    public AjaxResult remove(@PathVariable Long[] IDs)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateTagController.java
@@ -34,7 +34,7 @@
     * æŸ¥è¯¢æ¨¡æ¿æ ‡ç­¾åˆ—表
     */
//    @ApiOperation("查询模板标签列表")
    @PreAuthorize("@ss.hasPermi('smartor:tag:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:tag:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaTemplateTag ivrLibaTemplateTag) {
        startPage();
@@ -46,7 +46,7 @@
     * å¯¼å‡ºæ¨¡æ¿æ ‡ç­¾åˆ—表
     */
//    @ApiOperation("导出模板标签列表")
    @PreAuthorize("@ss.hasPermi('smartor:tag:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:tag:export')")
    @Log(title = "模板标签", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaTemplateTag ivrLibaTemplateTag) {
@@ -59,7 +59,7 @@
     * èŽ·å–æ¨¡æ¿æ ‡ç­¾è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取模板标签详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:tag:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:tag:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(ivrLibaTemplateTagService.selectIvrLibaTemplateTagById(id));
@@ -69,7 +69,7 @@
     * æ–°å¢žæ¨¡æ¿æ ‡ç­¾
     */
    @ApiOperation("新增模板标签")
    @PreAuthorize("@ss.hasPermi('smartor:tag:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:tag:add')")
    @Log(title = "模板标签", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaTemplateTag ivrLibaTemplateTag) {
@@ -80,7 +80,7 @@
     * ä¿®æ”¹æ¨¡æ¿æ ‡ç­¾
     */
    @ApiOperation("修改模板标签")
    @PreAuthorize("@ss.hasPermi('smartor:tag:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:tag:edit')")
    @Log(title = "模板标签", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaTemplateTag ivrLibaTemplateTag) {
@@ -91,7 +91,7 @@
     * åˆ é™¤æ¨¡æ¿æ ‡ç­¾
     */
    @ApiOperation("删除模板标签")
    @PreAuthorize("@ss.hasPermi('smartor:tag:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:tag:remove')")
    @Log(title = "模板标签", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrLibaTemplateTargetoptionController.java
@@ -34,7 +34,7 @@
     * æŸ¥è¯¢æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“列表
     */
    @ApiOperation("查询模板指标选项库列表")
    @PreAuthorize("@ss.hasPermi('system:targetoption:list')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption) {
        startPage();
@@ -46,7 +46,7 @@
     * å¯¼å‡ºæ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“列表
     */
    @ApiOperation("导出模板指标选项库列表")
    @PreAuthorize("@ss.hasPermi('system:targetoption:export')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:export')")
    @Log(title = "模板指标选项库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption) {
@@ -59,7 +59,7 @@
     * èŽ·å–æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取模板指标选项库详细信息")
    @PreAuthorize("@ss.hasPermi('system:targetoption:query')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(ivrLibaTemplateTargetoptionService.selectIvrLibaTemplateTargetoptionById(id));
@@ -69,7 +69,7 @@
     * æ–°å¢žæ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“
     */
    @ApiOperation("新增模板指标选项库")
    @PreAuthorize("@ss.hasPermi('system:targetoption:add')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:add')")
    @Log(title = "模板指标选项库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption) {
@@ -80,7 +80,7 @@
     * ä¿®æ”¹æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“
     */
    @ApiOperation("修改模板指标选项库")
    @PreAuthorize("@ss.hasPermi('system:targetoption:edit')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:edit')")
    @Log(title = "模板指标选项库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption) {
@@ -91,7 +91,7 @@
     * åˆ é™¤æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“
     */
    @ApiOperation("删除模板指标选项库")
    @PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    @Log(title = "模板指标选项库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI外呼场景管理列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscene:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscene:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrScene ivrScene)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI外呼场景管理列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscene:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscene:export')")
    @Log(title = "AI外呼场景管理", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrScene ivrScene)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI外呼场景管理详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscene:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscene:query')")
    @GetMapping(value = "/{sceneid}")
    public AjaxResult getInfo(@PathVariable("sceneid") Long sceneid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI外呼场景管理
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscene:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscene:add')")
    @Log(title = "AI外呼场景管理", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrScene ivrScene)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI外呼场景管理
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscene:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscene:edit')")
    @Log(title = "AI外呼场景管理", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrScene ivrScene)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI外呼场景管理
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscene:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscene:remove')")
    @Log(title = "AI外呼场景管理", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{sceneids}")
    public AjaxResult remove(@PathVariable Long[] sceneids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneExecuteconfigController.java
@@ -23,7 +23,7 @@
/**
 * AI外呼执行配置Controller
 *
 *
 * @author smartor
 * @date 2023-03-06
 */
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI外呼执行配置列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrSceneExecuteconfig ivrSceneExecuteconfig)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI外呼执行配置列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:export')")
    @Log(title = "AI外呼执行配置", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrSceneExecuteconfig ivrSceneExecuteconfig)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI外呼执行配置详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:query')")
    @GetMapping(value = "/{scenecfgid}")
    public AjaxResult getInfo(@PathVariable("scenecfgid") Long scenecfgid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI外呼执行配置
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:add')")
    @Log(title = "AI外呼执行配置", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrSceneExecuteconfig ivrSceneExecuteconfig)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI外呼执行配置
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:edit')")
    @Log(title = "AI外呼执行配置", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrSceneExecuteconfig ivrSceneExecuteconfig)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI外呼执行配置
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrexecuteconfig:remove')")
    @Log(title = "AI外呼执行配置", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{scenecfgids}")
    public AjaxResult remove(@PathVariable Long[] scenecfgids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlowController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI外呼流程列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflow:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflow:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrSceneFlow ivrSceneFlow)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI外呼流程列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflow:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflow:export')")
    @Log(title = "AI外呼流程", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrSceneFlow ivrSceneFlow)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI外呼流程详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflow:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflow:query')")
    @GetMapping(value = "/{flowid}")
    public AjaxResult getInfo(@PathVariable("flowid") Long flowid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI外呼流程
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflow:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflow:add')")
    @Log(title = "AI外呼流程", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrSceneFlow ivrSceneFlow)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI外呼流程
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflow:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflow:edit')")
    @Log(title = "AI外呼流程", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrSceneFlow ivrSceneFlow)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI外呼流程
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflow:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflow:remove')")
    @Log(title = "AI外呼流程", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{flowids}")
    public AjaxResult remove(@PathVariable Long[] flowids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlownodeController.java
@@ -23,7 +23,7 @@
/**
 * AI外呼流程节点Controller
 *
 *
 * @author smartor
 * @date 2023-03-06
 */
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI外呼流程节点列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflownode:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflownode:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrSceneFlownode ivrSceneFlownode)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI外呼流程节点列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflownode:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflownode:export')")
    @Log(title = "AI外呼流程节点", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrSceneFlownode ivrSceneFlownode)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI外呼流程节点详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflownode:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflownode:query')")
    @GetMapping(value = "/{flownodeid}")
    public AjaxResult getInfo(@PathVariable("flownodeid") Long flownodeid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI外呼流程节点
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflownode:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflownode:add')")
    @Log(title = "AI外呼流程节点", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrSceneFlownode ivrSceneFlownode)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI外呼流程节点
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflownode:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflownode:edit')")
    @Log(title = "AI外呼流程节点", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrSceneFlownode ivrSceneFlownode)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI外呼流程节点
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflownode:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflownode:remove')")
    @Log(title = "AI外呼流程节点", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{flownodeids}")
    public AjaxResult remove(@PathVariable Long[] flownodeids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneFlownodebranchController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI外呼流程节点分支列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrSceneFlownodebranch ivrSceneFlownodebranch)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI外呼流程节点分支列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:export')")
    @Log(title = "AI外呼流程节点分支", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrSceneFlownodebranch ivrSceneFlownodebranch)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI外呼流程节点分支详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:query')")
    @GetMapping(value = "/{branchid}")
    public AjaxResult getInfo(@PathVariable("branchid") Long branchid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI外呼流程节点分支
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:add')")
    @Log(title = "AI外呼流程节点分支", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrSceneFlownodebranch ivrSceneFlownodebranch)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI外呼流程节点分支
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:edit')")
    @Log(title = "AI外呼流程节点分支", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrSceneFlownodebranch ivrSceneFlownodebranch)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI外呼流程节点分支
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrflownodebranch:remove')")
    @Log(title = "AI外呼流程节点分支", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{branchids}")
    public AjaxResult remove(@PathVariable Long[] branchids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneGlobalconfigController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI外呼全局配置列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrSceneGlobalconfig ivrSceneGlobalconfig)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI外呼全局配置列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:export')")
    @Log(title = "AI外呼全局配置", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrSceneGlobalconfig ivrSceneGlobalconfig)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI外呼全局配置详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:query')")
    @GetMapping(value = "/{gblconfigid}")
    public AjaxResult getInfo(@PathVariable("gblconfigid") Long gblconfigid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI外呼全局配置
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:add')")
    @Log(title = "AI外呼全局配置", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrSceneGlobalconfig ivrSceneGlobalconfig)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI外呼全局配置
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:edit')")
    @Log(title = "AI外呼全局配置", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrSceneGlobalconfig ivrSceneGlobalconfig)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI外呼全局配置
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrglobalconfig:remove')")
    @Log(title = "AI外呼全局配置", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{gblconfigids}")
    public AjaxResult remove(@PathVariable Long[] gblconfigids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneIntentController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI外呼意图列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrintent:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrintent:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrSceneIntent ivrSceneIntent)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI外呼意图列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrintent:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrintent:export')")
    @Log(title = "AI外呼意图", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrSceneIntent ivrSceneIntent)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI外呼意图详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrintent:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrintent:query')")
    @GetMapping(value = "/{sceneintentid}")
    public AjaxResult getInfo(@PathVariable("sceneintentid") Long sceneintentid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI外呼意图
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrintent:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrintent:add')")
    @Log(title = "AI外呼意图", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrSceneIntent ivrSceneIntent)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI外呼意图
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrintent:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrintent:edit')")
    @Log(title = "AI外呼意图", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrSceneIntent ivrSceneIntent)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI外呼意图
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrintent:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrintent:remove')")
    @Log(title = "AI外呼意图", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{sceneintentids}")
    public AjaxResult remove(@PathVariable Long[] sceneintentids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneRecallController.java
@@ -23,7 +23,7 @@
/**
 * AI外呼重拨配置Controller
 *
 *
 * @author smartor
 * @date 2023-03-06
 */
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI外呼重拨配置列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrrecall:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrrecall:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrSceneRecall ivrSceneRecall)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI外呼重拨配置列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrrecall:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrrecall:export')")
    @Log(title = "AI外呼重拨配置", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrSceneRecall ivrSceneRecall)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI外呼重拨配置详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrrecall:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrrecall:query')")
    @GetMapping(value = "/{recallid}")
    public AjaxResult getInfo(@PathVariable("recallid") Long recallid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI外呼重拨配置
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrrecall:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrrecall:add')")
    @Log(title = "AI外呼重拨配置", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrSceneRecall ivrSceneRecall)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI外呼重拨配置
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrrecall:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrrecall:edit')")
    @Log(title = "AI外呼重拨配置", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrSceneRecall ivrSceneRecall)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI外呼重拨配置
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrrecall:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrrecall:remove')")
    @Log(title = "AI外呼重拨配置", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{recallids}")
    public AjaxResult remove(@PathVariable Long[] recallids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneScriptController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI外呼话术列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscript:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscript:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrSceneScript ivrSceneScript)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI外呼话术列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscript:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscript:export')")
    @Log(title = "AI外呼话术", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrSceneScript ivrSceneScript)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI外呼话术详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscript:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscript:query')")
    @GetMapping(value = "/{scenescrid}")
    public AjaxResult getInfo(@PathVariable("scenescrid") Long scenescrid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI外呼话术
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscript:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscript:add')")
    @Log(title = "AI外呼话术", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrSceneScript ivrSceneScript)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI外呼话术
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscript:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscript:edit')")
    @Log(title = "AI外呼话术", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrSceneScript ivrSceneScript)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI外呼话术
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscript:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscript:remove')")
    @Log(title = "AI外呼话术", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{scenescrids}")
    public AjaxResult remove(@PathVariable Long[] scenescrids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrSceneScriptmodelController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI外呼话术模块列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrSceneScriptmodel ivrSceneScriptmodel)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºAI外呼话术模块列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:export')")
    @Log(title = "AI外呼话术模块", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrSceneScriptmodel ivrSceneScriptmodel)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–AI外呼话术模块详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:query')")
    @GetMapping(value = "/{scenemodid}")
    public AjaxResult getInfo(@PathVariable("scenemodid") Long scenemodid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žAI外呼话术模块
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:add')")
    @Log(title = "AI外呼话术模块", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrSceneScriptmodel ivrSceneScriptmodel)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹AI外呼话术模块
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:edit')")
    @Log(title = "AI外呼话术模块", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrSceneScriptmodel ivrSceneScriptmodel)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤AI外呼话术模块
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscriptmodel:remove')")
    @Log(title = "AI外呼话术模块", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{scenemodids}")
    public AjaxResult remove(@PathVariable Long[] scenemodids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrScenecategoryController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢AI服务场景管理分类列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrScenecategory ivrScenecategory) {
        startPage();
@@ -48,7 +48,7 @@
    /**
     * å¯¼å‡ºAI服务场景管理分类列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:export')")
    @Log(title = "AI服务场景管理分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrScenecategory ivrScenecategory) {
@@ -60,7 +60,7 @@
    /**
     * èŽ·å–AI服务场景管理分类详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:query')")
    @GetMapping(value = "/{scenecatid}")
    public AjaxResult getInfo(@PathVariable("scenecatid") Long scenecatid) {
        return success(ivrScenecategoryService.selectIvrScenecategoryByScenecatid(scenecatid));
@@ -69,7 +69,7 @@
    /**
     * æ–°å¢žAI服务场景管理分类
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:add')")
    @Log(title = "AI服务场景管理分类", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrScenecategory ivrScenecategory) {
@@ -79,7 +79,7 @@
    /**
     * ä¿®æ”¹AI服务场景管理分类
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:edit')")
    @Log(title = "AI服务场景管理分类", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrScenecategory ivrScenecategory) {
@@ -89,7 +89,7 @@
    /**
     * åˆ é™¤AI服务场景管理分类
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrscenecategory:remove')")
    @Log(title = "AI服务场景管理分类", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{scenecatids}")
    public AjaxResult remove(@PathVariable Long[] scenecatids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskTemplateController.java
@@ -35,7 +35,7 @@
     * æŸ¥è¯¢éšè®¿ä»»åŠ¡éšè®¿æ¨¡æ¿åº“åˆ—è¡¨
     */
    @ApiOperation("查询随访任务随访模板库列表")
    @PreAuthorize("@ss.hasPermi('system:template:list')")
    //@PreAuthorize("@ss.hasPermi('system:template:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrTaskTemplate ivrTaskTemplate) {
        startPage();
@@ -46,7 +46,7 @@
    /**
     * å¯¼å‡ºéšè®¿ä»»åŠ¡éšè®¿æ¨¡æ¿åº“åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:template:export')")
    //@PreAuthorize("@ss.hasPermi('system:template:export')")
    @ApiOperation("导出随访任务随访模板库列表")
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrTaskTemplate ivrTaskTemplate) {
@@ -58,7 +58,7 @@
    /**
     * èŽ·å–éšè®¿ä»»åŠ¡éšè®¿æ¨¡æ¿åº“è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:template:query')")
    //@PreAuthorize("@ss.hasPermi('system:template:query')")
    @ApiOperation("获取随访任务随访模板库详细信息")
    @GetMapping(value = "/getInfo/{ID}")
    public AjaxResult getInfo(@PathVariable("ID") Long ID) {
@@ -68,7 +68,7 @@
    /**
     * æ–°å¢žéšè®¿ä»»åŠ¡éšè®¿æ¨¡æ¿åº“
     */
    @PreAuthorize("@ss.hasPermi('system:template:add')")
    //@PreAuthorize("@ss.hasPermi('system:template:add')")
    @ApiOperation("新增随访任务随访模板库")
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrTaskTemplate ivrTaskTemplate) {
@@ -78,7 +78,7 @@
    /**
     * æ–°å¢žæˆ–修改随访任务随访模板库
     */
    @PreAuthorize("@ss.hasPermi('system:template:add')")
    //@PreAuthorize("@ss.hasPermi('system:template:add')")
    @ApiOperation("新增或修改随访任务随访模板库")
    @PostMapping("/saveOrUpdateTempScript")
    public AjaxResult saveOrUpdateTempScript(@RequestBody IvrTaskTemplateVO ivrTaskTemplateVO) {
@@ -88,7 +88,7 @@
    /**
     * ä¿®æ”¹éšè®¿ä»»åŠ¡éšè®¿æ¨¡æ¿åº“
     */
    @PreAuthorize("@ss.hasPermi('system:template:edit')")
    //@PreAuthorize("@ss.hasPermi('system:template:edit')")
    @ApiOperation("修改随访任务随访模板库")
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrTaskTemplate ivrTaskTemplate) {
@@ -98,7 +98,7 @@
    /**
     * åˆ é™¤éšè®¿ä»»åŠ¡éšè®¿æ¨¡æ¿åº“
     */
    @PreAuthorize("@ss.hasPermi('system:template:remove')")
    //@PreAuthorize("@ss.hasPermi('system:template:remove')")
    @ApiOperation("删除随访任务随访模板库")
    @GetMapping("/remove/{IDs}")
    public AjaxResult remove(@PathVariable Long[] IDs) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskTemplateScriptController.java
@@ -35,7 +35,7 @@
     * æŸ¥è¯¢éšè®¿ä»»åŠ¡æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“åˆ—è¡¨
     */
    @ApiOperation("查询随访任务模版问题话术库列表")
    @PreAuthorize("@ss.hasPermi('system:script:list')")
    //@PreAuthorize("@ss.hasPermi('system:script:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrTaskTemplateScript ivrTaskTemplateScript)
    {
@@ -48,7 +48,7 @@
     * å¯¼å‡ºéšè®¿ä»»åŠ¡æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“åˆ—è¡¨
     */
    @ApiOperation("导出随访任务模版问题话术库列表")
    @PreAuthorize("@ss.hasPermi('system:script:export')")
    //@PreAuthorize("@ss.hasPermi('system:script:export')")
    @Log(title = "随访任务模版问题话术库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrTaskTemplateScript ivrTaskTemplateScript)
@@ -62,7 +62,7 @@
     * èŽ·å–éšè®¿ä»»åŠ¡æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取随访任务模版问题话术库详细信息")
    @PreAuthorize("@ss.hasPermi('system:script:query')")
    //@PreAuthorize("@ss.hasPermi('system:script:query')")
    @GetMapping(value = "/getInfo/{ID}")
    public AjaxResult getInfo(@PathVariable("ID") Long ID)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žéšè®¿ä»»åŠ¡æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“
     */
    @PreAuthorize("@ss.hasPermi('system:script:add')")
    //@PreAuthorize("@ss.hasPermi('system:script:add')")
    @ApiOperation("新增随访任务模版问题话术库")
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrTaskTemplateScript ivrTaskTemplateScript)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹éšè®¿ä»»åŠ¡æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“
     */
    @PreAuthorize("@ss.hasPermi('system:script:edit')")
    //@PreAuthorize("@ss.hasPermi('system:script:edit')")
    @ApiOperation("修改随访任务模版问题话术库")
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrTaskTemplateScript ivrTaskTemplateScript)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤éšè®¿ä»»åŠ¡æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“
     */
    @PreAuthorize("@ss.hasPermi('system:script:remove')")
    //@PreAuthorize("@ss.hasPermi('system:script:remove')")
    @ApiOperation("删除随访任务模版问题话术库")
    @GetMapping("/remove/{IDs}")
    public AjaxResult remove(@PathVariable Long[] IDs)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskTemplateTargetoptionController.java
@@ -34,7 +34,7 @@
     * æŸ¥è¯¢éšè®¿ä»»åŠ¡æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“åˆ—è¡¨
     */
    @ApiOperation("查询随访任务模板指标选项库列表")
    @PreAuthorize("@ss.hasPermi('system:targetoption:list')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption) {
        startPage();
@@ -45,7 +45,7 @@
    /**
     * å¯¼å‡ºéšè®¿ä»»åŠ¡æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:export')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:export')")
    @ApiOperation("导出随访任务模板指标选项库列表")
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption) {
@@ -58,7 +58,7 @@
     * èŽ·å–éšè®¿ä»»åŠ¡æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取随访任务模板指标选项库详细信息")
    @PreAuthorize("@ss.hasPermi('system:targetoption:query')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(ivrTaskTemplateTargetoptionService.selectIvrTaskTemplateTargetoptionById(id));
@@ -67,7 +67,7 @@
    /**
     * æ–°å¢žéšè®¿ä»»åŠ¡æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:add')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:add')")
    @ApiOperation("新增随访任务模板指标选项库")
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption) {
@@ -77,7 +77,7 @@
    /**
     * ä¿®æ”¹éšè®¿ä»»åŠ¡æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:edit')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:edit')")
    @ApiOperation("修改随访任务模板指标选项库")
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption) {
@@ -87,7 +87,7 @@
    /**
     * åˆ é™¤éšè®¿ä»»åŠ¡æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    @ApiOperation("删除随访任务模板指标选项库")
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskVisitResultController.java
@@ -36,7 +36,7 @@
     *
     */
    @ApiOperation("查询患者随访信息")
    @PreAuthorize("@ss.hasPermi('system:result:list')")
    //@PreAuthorize("@ss.hasPermi('system:result:list')")
    @PostMapping("/list")
    public TableDataInfo list(IvrTaskVisitResult ivrTaskVisitResult) {
        startPage();
@@ -48,7 +48,7 @@
     * å¯¼å‡ºä»»åŠ¡éšè®¿ç»“æžœåˆ—è¡¨
     */
    @ApiOperation("导出任务随访结果列表")
    @PreAuthorize("@ss.hasPermi('system:result:export')")
    //@PreAuthorize("@ss.hasPermi('system:result:export')")
    @Log(title = "任务随访结果", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrTaskVisitResult ivrTaskVisitResult) {
@@ -61,7 +61,7 @@
     * èŽ·å–ä»»åŠ¡éšè®¿ç»“æžœè¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取任务随访结果详细信息")
    @PreAuthorize("@ss.hasPermi('system:result:query')")
    //@PreAuthorize("@ss.hasPermi('system:result:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(ivrTaskVisitResultService.selectIvrTaskVisitResultById(id));
@@ -71,7 +71,7 @@
     * æ–°å¢žä»»åŠ¡éšè®¿ç»“æžœ
     */
    @ApiOperation("新增任务随访结果")
    @PreAuthorize("@ss.hasPermi('system:result:add')")
    //@PreAuthorize("@ss.hasPermi('system:result:add')")
    @Log(title = "任务随访结果", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrTaskVisitResult ivrTaskVisitResult) {
@@ -82,7 +82,7 @@
     * ä¿®æ”¹ä»»åŠ¡éšè®¿ç»“æžœ
     */
    @ApiOperation("修改任务随访结果")
    @PreAuthorize("@ss.hasPermi('system:result:edit')")
    //@PreAuthorize("@ss.hasPermi('system:result:edit')")
    @Log(title = "任务随访结果", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrTaskVisitResult ivrTaskVisitResult) {
@@ -93,7 +93,7 @@
     * åˆ é™¤ä»»åŠ¡éšè®¿ç»“æžœ
     */
    @ApiOperation("删除任务随访结果")
    @PreAuthorize("@ss.hasPermi('system:result:remove')")
    //@PreAuthorize("@ss.hasPermi('system:result:remove')")
    @Log(title = "任务随访结果", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTaskcallrecordController.java
@@ -23,7 +23,7 @@
/**
 * è¯­éŸ³ä»»åŠ¡å‘¼å«è®°å½•Controller
 *
 *
 * @author smartor
 * @date 2023-03-24
 */
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢è¯­éŸ³ä»»åŠ¡å‘¼å«è®°å½•åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrtaskcallrecord:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrtaskcallrecord:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrTaskcallrecord ivrTaskcallrecord)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºè¯­éŸ³ä»»åŠ¡å‘¼å«è®°å½•åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrtaskcallrecord:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrtaskcallrecord:export')")
    @Log(title = "语音任务呼叫记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrTaskcallrecord ivrTaskcallrecord)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–è¯­éŸ³ä»»åŠ¡å‘¼å«è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrtaskcallrecord:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrtaskcallrecord:query')")
    @GetMapping(value = "/{uuid}")
    public AjaxResult getInfo(@PathVariable("uuid") String uuid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žè¯­éŸ³ä»»åŠ¡å‘¼å«è®°å½•
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrtaskcallrecord:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrtaskcallrecord:add')")
    @Log(title = "语音任务呼叫记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrTaskcallrecord ivrTaskcallrecord)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹è¯­éŸ³ä»»åŠ¡å‘¼å«è®°å½•
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrtaskcallrecord:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrtaskcallrecord:edit')")
    @Log(title = "语音任务呼叫记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrTaskcallrecord ivrTaskcallrecord)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤è¯­éŸ³ä»»åŠ¡å‘¼å«è®°å½•
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrtaskcallrecord:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrtaskcallrecord:remove')")
    @Log(title = "语音任务呼叫记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{uuids}")
    public AjaxResult remove(@PathVariable String[] uuids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/IvrTasksmsController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢è¯­éŸ³ä»»åŠ¡çŸ­ä¿¡åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrtasksms:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrtasksms:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody IvrTasksms ivrTasksms)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºè¯­éŸ³ä»»åŠ¡çŸ­ä¿¡åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrtasksms:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrtasksms:export')")
    @Log(title = "语音任务短信", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, IvrTasksms ivrTasksms)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–è¯­éŸ³ä»»åŠ¡çŸ­ä¿¡è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrtasksms:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrtasksms:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žè¯­éŸ³ä»»åŠ¡çŸ­ä¿¡
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrtasksms:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrtasksms:add')")
    @Log(title = "语音任务短信", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody IvrTasksms ivrTasksms)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹è¯­éŸ³ä»»åŠ¡çŸ­ä¿¡
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrtasksms:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrtasksms:edit')")
    @Log(title = "语音任务短信", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody IvrTasksms ivrTasksms)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤è¯­éŸ³ä»»åŠ¡çŸ­ä¿¡
     */
    @PreAuthorize("@ss.hasPermi('smartor:ivrtasksms:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ivrtasksms:remove')")
    @Log(title = "语音任务短信", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/MedicalHistoryController.java
@@ -35,7 +35,7 @@
    /**
     * æŸ¥è¯¢ç—…史列表
     */
    @PreAuthorize("@ss.hasPermi('system:history:list')")
    //@PreAuthorize("@ss.hasPermi('system:history:list')")
    @PostMapping("/selectMedicalHistoryList")
    @ApiOperation("查询病史列表")
    public TableDataInfo selectMedicalHistorylist(@RequestBody  MedicalHistory medicalHistory) {
@@ -47,7 +47,7 @@
    /**
     * å¯¼å‡ºç—…史列表
     */
    @PreAuthorize("@ss.hasPermi('system:history:export')")
    //@PreAuthorize("@ss.hasPermi('system:history:export')")
    @Log(title = "病史", businessType = BusinessType.EXPORT)
    @ApiOperation("导出病史列表")
    @PostMapping("/export")
@@ -60,7 +60,7 @@
    /**
     * èŽ·å–ç—…å²è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:history:query')")
    //@PreAuthorize("@ss.hasPermi('system:history:query')")
    @ApiOperation("获取病史详细信息")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id,@PathVariable("pid") Long pid) {
@@ -70,7 +70,7 @@
    /**
     * æ–°å¢žç—…史
     */
    @PreAuthorize("@ss.hasPermi('system:history:add')")
    //@PreAuthorize("@ss.hasPermi('system:history:add')")
    @Log(title = "病史", businessType = BusinessType.INSERT)
    @ApiOperation("新增病史")
    @PostMapping("/add")
@@ -81,7 +81,7 @@
    /**
     * ä¿®æ”¹ç—…史
     */
    @PreAuthorize("@ss.hasPermi('system:history:edit')")
    //@PreAuthorize("@ss.hasPermi('system:history:edit')")
    @Log(title = "病史", businessType = BusinessType.UPDATE)
    @ApiOperation("修改病史")
    @PostMapping("/edit")
@@ -92,7 +92,7 @@
    /**
     * åˆ é™¤ç—…史
     */
    @PreAuthorize("@ss.hasPermi('system:history:remove')")
    //@PreAuthorize("@ss.hasPermi('system:history:remove')")
    @Log(title = "病史", businessType = BusinessType.DELETE)
    @ApiOperation("删除病史")
    @GetMapping("/remove/{ids}")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/MinioFileController.java
@@ -36,7 +36,7 @@
    /**
     * æŸ¥è¯¢ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:file:list')")
    //@PreAuthorize("@ss.hasPermi('system:file:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody MinioFile minioFile) {
        startPage();
@@ -47,7 +47,7 @@
    /**
     * å¯¼å‡ºã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:file:export')")
    //@PreAuthorize("@ss.hasPermi('system:file:export')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, MinioFile minioFile) {
@@ -59,7 +59,7 @@
    /**
     * èŽ·å–ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:file:query')")
    //@PreAuthorize("@ss.hasPermi('system:file:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(minioFileService.selectMinioFileById(id));
@@ -68,7 +68,7 @@
    /**
     * æ–°å¢žã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @PreAuthorize("@ss.hasPermi('system:file:add')")
    //@PreAuthorize("@ss.hasPermi('system:file:add')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody MinioFile minioFile) {
@@ -78,7 +78,7 @@
    /**
     * ä¿®æ”¹ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @PreAuthorize("@ss.hasPermi('system:file:edit')")
    //@PreAuthorize("@ss.hasPermi('system:file:edit')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody MinioFile minioFile) {
@@ -88,7 +88,7 @@
    /**
     * åˆ é™¤ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @PreAuthorize("@ss.hasPermi('system:file:remove')")
    //@PreAuthorize("@ss.hasPermi('system:file:remove')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
@@ -116,7 +116,7 @@
    /**
     * èŽ·å–ï¼ˆå®£æ•™ï¼‰å¼•ç”¨æ¨¡æ¿
     */
    @PreAuthorize("@ss.hasPermi('system:file:list')")
    //@PreAuthorize("@ss.hasPermi('system:file:list')")
    @ApiOperation(value = "获取(宣教)引用模板")
    @GetMapping("/getEduTemplage")
    public AjaxResult getEduTemplage() {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java
@@ -44,7 +44,7 @@
     * æŸ¥è¯¢æ‚£è€…档案列表
     */
    @ApiOperation("查询患者档案列表")
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:patarchive:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody PatArchive patArchive) {
        startPage();
@@ -56,7 +56,7 @@
     * å¯¼å‡ºæ‚£è€…档案列表
     */
    @ApiOperation("导出患者档案列表")
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:patarchive:export')")
    @Log(title = "患者档案" , businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatArchive patArchive) {
@@ -69,7 +69,7 @@
     * èŽ·å–æ‚£è€…æ¡£æ¡ˆè¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取患者档案详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:patarchive:query')")
    @GetMapping(value = "/getInfo/{patid}")
    @ApiImplicitParam(name = "patid" , value = "患者id")
    public AjaxResult getInfo(@PathVariable(name = "patid") Long patid) {
@@ -80,7 +80,7 @@
//     * æ–°å¢žæ‚£è€…档案
//     */
//    @ApiOperation("新增患者档案")
//    @PreAuthorize("@ss.hasPermi('smartor:patarchive:add')")
//    //@PreAuthorize("@ss.hasPermi('smartor:patarchive:add')")
//    @Log(title = "患者档案", businessType = BusinessType.INSERT)
//    @PostMapping("/add")
//    public AjaxResult add(@RequestBody PatArchive patArchive) {
@@ -91,7 +91,7 @@
     * æ–°å¢žæ‚£è€…档案
     */
    @ApiOperation("修改患者档案")
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:update')")
    //@PreAuthorize("@ss.hasPermi('smartor:patarchive:update')")
    @Log(title = "患者档案" , businessType = BusinessType.UPDATE)
    @PostMapping("/update")
    public AjaxResult update(@RequestBody PatArchive patArchive) {
@@ -102,7 +102,7 @@
     * æ–°å¢žæˆ–修改患者档信息
     */
    @ApiOperation("新增或修改患者档信息")
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:patarchive:edit')")
    @Log(title = "患者档案" , businessType = BusinessType.UPDATE)
    @PostMapping("/saveOrUpdatePatInfo")
    public AjaxResult saveOrUpdatePatInfo(@RequestBody PatArchiveVO patArchiveVO) {
@@ -113,7 +113,7 @@
     * åˆ é™¤æ‚£è€…档案
     */
    @ApiOperation("删除患者档案")
    @PreAuthorize("@ss.hasPermi('smartor:patarchive:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:patarchive:remove')")
    @Log(title = "患者档案" , businessType = BusinessType.DELETE)
    @GetMapping("/remove/{patids}")
    @ApiImplicitParam(name = "patids" , value = "患者id集合" , dataType = "long" , dataTypeClass = Long.class)
@@ -207,7 +207,7 @@
    @PostMapping("/getPatientInfo")
    public TableDataInfo getPatientInfo(@RequestBody PatArchiveReq patArchiveReq) {
        PageUtils.startPageByPost(patArchiveReq.getPageNum(), patArchiveReq.getPageSize());
        List<ServiceSubtask> patientInfo = patArchiveService.getPatientInfo(patArchiveReq);
        List<PatArchiveOthreInfo> patientInfo = patArchiveService.getPatientInfo(patArchiveReq);
        long count = PageUtils.count(new ISelect() {
            @Override
            public void doSelect() {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveImportController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,134 @@
package com.ruoyi.web.controller.smartor;
import java.util.List;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.smartor.domain.SvyLibScriptRes;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.http.MediaType;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.smartor.domain.PatArchiveImport;
import com.smartor.service.IPatArchiveImportService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
/**
 * Excel导入患者档案Controller
 *
 * @author lihu
 * @date 2024-09-05
 */
@Api("Excel导入患者档案")
@RestController
@RequestMapping("/smartor/import")
public class PatArchiveImportController extends BaseController {
    @Autowired
    private IPatArchiveImportService patArchiveImportService;
    /**
     * æŸ¥è¯¢Excel导入患者档案列表
     */
    @ApiOperation("查询Excel导入患者档案列表")
    //@PreAuthorize("@ss.hasPermi('smartor:import:list')")
    @GetMapping("/list")
    public TableDataInfo list(PatArchiveImport patArchiveImport) {
        startPage();
        List<PatArchiveImport> list = patArchiveImportService.selectPatArchiveImportList(patArchiveImport);
        return getDataTable(list);
    }
    /**
     * èŽ·å–Excel导入患者档案详细信息
     */
    @ApiOperation("获取Excel导入患者档案详细信息")
    //@PreAuthorize("@ss.hasPermi('smartor:import:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(patArchiveImportService.selectPatArchiveImportById(id));
    }
    /**
     * æ–°å¢žExcel导入患者档案
     */
    //@PreAuthorize("@ss.hasPermi('smartor:import:add')")
    @Log(title = "Excel导入患者档案", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatArchiveImport patArchiveImport) {
        return toAjax(patArchiveImportService.insertPatArchiveImport(patArchiveImport));
    }
    /**
     * ä¿®æ”¹Excel导入患者档案
     */
    @ApiOperation("修改Excel导入患者档案")
    //@PreAuthorize("@ss.hasPermi('smartor:import:edit')")
    @Log(title = "Excel导入患者档案", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatArchiveImport patArchiveImport) {
        return toAjax(patArchiveImportService.updatePatArchiveImport(patArchiveImport));
    }
    /**
     * åˆ é™¤Excel导入患者档案
     */
    @ApiOperation("删除Excel导入患者档案")
    //@PreAuthorize("@ss.hasPermi('smartor:import:remove')")
    @Log(title = "Excel导入患者档案", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(patArchiveImportService.deletePatArchiveImportByIds(ids));
    }
    /**
     * èŽ·å–å¯¼å…¥æ‚£è€…æ¨¡æ¿
     *
     * @param response
     */
    @ApiOperation("获取导入患者模板")
    @GetMapping("/getImportPatTemplate")
    public void getImportPatTemplate(HttpServletResponse response) {
        ExcelUtil<PatArchiveImport> util = new ExcelUtil<PatArchiveImport>(PatArchiveImport.class);
        util.importTemplateExcel(response, "导入患者");
    }
    @GetMapping("/download")
    public void fileDownload(HttpServletResponse response) {
        try {
            String filePath = "D:\\import\\患者信息.xlsx";
            response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
            FileUtils.setAttachmentResponseHeader(response, "患者信息.xlsx");
            FileUtils.writeBytes(filePath, response.getOutputStream());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @ApiOperation("导入Excel患者信息")
    //@PreAuthorize("@ss.hasPermi('smartor:import:list')")
    @PostMapping("/importPatInfo")
    public TableDataInfo importPatInfo(MultipartFile multipartFile) {
        return getDataTable(patArchiveImportService.importPatInfo(multipartFile));
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchivecontactController.java
@@ -35,7 +35,7 @@
     * æŸ¥è¯¢æ‚£è€…联系方式列表
     */
    @ApiOperation("查询患者联系方式列表")
    @PreAuthorize("@ss.hasPermi('system:archivecontact:list')")
    //@PreAuthorize("@ss.hasPermi('system:archivecontact:list')")
    @PostMapping("/selectPatArchivecontactList")
    public TableDataInfo selectPatArchivecontactlist(@RequestBody PatArchivecontact patArchivecontact) {
        PageUtils.startPageByPost(patArchivecontact.getPageNum(), patArchivecontact.getPageSize());
@@ -47,7 +47,7 @@
     * å¯¼å‡ºæ‚£è€…联系方式列表
     */
    @ApiOperation("导出患者联系方式列表")
    @PreAuthorize("@ss.hasPermi('system:archivecontact:export')")
    //@PreAuthorize("@ss.hasPermi('system:archivecontact:export')")
    @Log(title = "患者联系方式", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatArchivecontact patArchivecontact) {
@@ -60,7 +60,7 @@
     * èŽ·å–æ‚£è€…è”ç³»æ–¹å¼è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取患者联系方式详细信息")
    @PreAuthorize("@ss.hasPermi('system:archivecontact:query')")
    //@PreAuthorize("@ss.hasPermi('system:archivecontact:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(patArchivecontactService.selectPatArchivecontactById(id));
@@ -70,7 +70,7 @@
     * æ–°å¢žæ‚£è€…联系方式
     */
    @ApiOperation("新增患者联系方式")
    @PreAuthorize("@ss.hasPermi('system:archivecontact:add')")
    //@PreAuthorize("@ss.hasPermi('system:archivecontact:add')")
    @Log(title = "患者联系方式", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatArchivecontact patArchivecontact) {
@@ -81,7 +81,7 @@
     * ä¿®æ”¹æ‚£è€…联系方式
     */
    @ApiOperation("修改患者联系方式")
    @PreAuthorize("@ss.hasPermi('system:archivecontact:edit')")
    //@PreAuthorize("@ss.hasPermi('system:archivecontact:edit')")
    @Log(title = "患者联系方式", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatArchivecontact patArchivecontact) {
@@ -92,7 +92,7 @@
     * åˆ é™¤æ‚£è€…联系方式
     */
    @ApiOperation("删除患者联系方式")
    @PreAuthorize("@ss.hasPermi('system:archivecontact:remove')")
    //@PreAuthorize("@ss.hasPermi('system:archivecontact:remove')")
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(patArchivecontactService.deletePatArchivecontactByIds(ids));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchivetagController.java
@@ -38,7 +38,7 @@
    /**
     * æŸ¥è¯¢æ‚£è€…档案标签列表
     */
    @PreAuthorize("@ss.hasPermi('system:archivetag:list')")
    //@PreAuthorize("@ss.hasPermi('system:archivetag:list')")
   @PostMapping("/list")
    @ApiOperation("查询患者档案标签列表")
    public TableDataInfo list(@RequestBody PatArchivetag patArchivetag) {
@@ -50,7 +50,7 @@
    /**
     * å¯¼å‡ºæ‚£è€…档案标签列表
     */
    @PreAuthorize("@ss.hasPermi('system:archivetag:export')")
    //@PreAuthorize("@ss.hasPermi('system:archivetag:export')")
    @PostMapping("/export")
    @ApiOperation("导出患者档案标签列表")
    public void export(HttpServletResponse response, PatArchivetag patArchivetag) {
@@ -63,7 +63,7 @@
     * èŽ·å–æ‚£è€…æ¡£æ¡ˆæ ‡ç­¾è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取患者档案标签详细信息")
    @PreAuthorize("@ss.hasPermi('system:archivetag:query')")
    //@PreAuthorize("@ss.hasPermi('system:archivetag:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(patArchivetagService.selectPatArchivetagById(id));
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žæ‚£è€…档案标签
     */
    @PreAuthorize("@ss.hasPermi('system:archivetag:add')")
    //@PreAuthorize("@ss.hasPermi('system:archivetag:add')")
    @ApiOperation("新增患者档案标签")
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatArchivetag patArchivetag) {
@@ -82,7 +82,7 @@
    /**
     * ä¿®æ”¹æ‚£è€…档案标签
     */
    @PreAuthorize("@ss.hasPermi('system:archivetag:edit')")
    //@PreAuthorize("@ss.hasPermi('system:archivetag:edit')")
    @ApiOperation("修改患者档案标签")
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatArchivetag patArchivetag) {
@@ -92,7 +92,7 @@
    /**
     * åˆ é™¤æ‚£è€…档案标签
     */
    @PreAuthorize("@ss.hasPermi('system:archivetag:remove')")
    //@PreAuthorize("@ss.hasPermi('system:archivetag:remove')")
    @ApiOperation("删除患者档案标签")
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatFilterlistController.java
@@ -33,7 +33,7 @@
    /**
     * æŸ¥è¯¢æ‚£è€…过滤名单列表
     */
    @PreAuthorize("@ss.hasPermi('system:filterlist:list')")
    //@PreAuthorize("@ss.hasPermi('system:filterlist:list')")
    @ApiOperation("查询患者过滤名单列表")
    @GetMapping("/list")
    public TableDataInfo list(PatFilterlist patFilterlist) {
@@ -45,7 +45,7 @@
    /**
     * å¯¼å‡ºæ‚£è€…过滤名单列表
     */
    @PreAuthorize("@ss.hasPermi('system:filterlist:export')")
    //@PreAuthorize("@ss.hasPermi('system:filterlist:export')")
    @Log(title = "患者过滤名单", businessType = BusinessType.EXPORT)
    @ApiOperation("导出患者过滤名单列表")
    @PostMapping("/export")
@@ -58,7 +58,7 @@
    /**
     * èŽ·å–æ‚£è€…è¿‡æ»¤åå•è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:filterlist:query')")
    //@PreAuthorize("@ss.hasPermi('system:filterlist:query')")
    @ApiOperation("获取患者过滤名单详细信息")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
@@ -68,7 +68,7 @@
    /**
     * æ–°å¢žæ‚£è€…过滤名单
     */
    @PreAuthorize("@ss.hasPermi('system:filterlist:add')")
    //@PreAuthorize("@ss.hasPermi('system:filterlist:add')")
    @Log(title = "患者过滤名单", businessType = BusinessType.INSERT)
    @ApiOperation("新增患者过滤名单")
    @PostMapping("/add")
@@ -79,7 +79,7 @@
    /**
     * ä¿®æ”¹æ‚£è€…过滤名单
     */
    @PreAuthorize("@ss.hasPermi('system:filterlist:edit')")
    //@PreAuthorize("@ss.hasPermi('system:filterlist:edit')")
    @Log(title = "患者过滤名单", businessType = BusinessType.UPDATE)
    @ApiOperation("修改患者过滤名单")
    @PostMapping("/edit")
@@ -90,7 +90,7 @@
    /**
     * åˆ é™¤æ‚£è€…过滤名单
     */
    @PreAuthorize("@ss.hasPermi('system:filterlist:remove')")
    //@PreAuthorize("@ss.hasPermi('system:filterlist:remove')")
    @Log(title = "患者过滤名单", businessType = BusinessType.DELETE)
    @ApiOperation("删除患者过滤名单")
    @GetMapping("/remove/{ids}")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedBloodsugarController.java
@@ -35,7 +35,7 @@
    /**
     * æŸ¥è¯¢æ‚£è€…血糖记录列表
     */
    @PreAuthorize("@ss.hasPermi('system:bloodsugar:list')")
    //@PreAuthorize("@ss.hasPermi('system:bloodsugar:list')")
   @PostMapping("/list")
    @ApiOperation("查询患者血糖记录列表")
    public TableDataInfo list(@RequestBody PatMedBloodsugar patMedBloodsugar) {
@@ -48,7 +48,7 @@
     * å¯¼å‡ºæ‚£è€…血糖记录列表
     */
    @ApiOperation("导出患者血糖记录列表")
    @PreAuthorize("@ss.hasPermi('system:bloodsugar:export')")
    //@PreAuthorize("@ss.hasPermi('system:bloodsugar:export')")
    @Log(title = "导出患者血糖记录列表", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatMedBloodsugar patMedBloodsugar) {
@@ -60,7 +60,7 @@
    /**
     * èŽ·å–æ‚£è€…è¡€ç³–è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:bloodsugar:query')")
    //@PreAuthorize("@ss.hasPermi('system:bloodsugar:query')")
    @GetMapping(value = "/{bloodsugarid}")
    @ApiOperation("获取患者血糖记录详细信息")
    @ApiImplicitParam(name = "bloodsugarid", value = "主键ID", dataType = "long", dataTypeClass = Long.class)
@@ -71,7 +71,7 @@
    /**
     * æ–°å¢žæ‚£è€…血糖记录
     */
    @PreAuthorize("@ss.hasPermi('system:bloodsugar:add')")
    //@PreAuthorize("@ss.hasPermi('system:bloodsugar:add')")
    @Log(title = "新增患者血糖记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    @ApiOperation("新增患者血糖记录")
@@ -82,7 +82,7 @@
    /**
     * ä¿®æ”¹æ‚£è€…血糖记录
     */
    @PreAuthorize("@ss.hasPermi('system:bloodsugar:edit')")
    //@PreAuthorize("@ss.hasPermi('system:bloodsugar:edit')")
    @Log(title = "患者血糖记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    @ApiOperation("修改患者血糖记录")
@@ -94,7 +94,7 @@
     * åˆ é™¤æ‚£è€…血糖记录
     */
    @ApiOperation("删除患者血糖记录")
    @PreAuthorize("@ss.hasPermi('system:bloodsugar:remove')")
    //@PreAuthorize("@ss.hasPermi('system:bloodsugar:remove')")
    @Log(title = "患者血糖记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{bloodsugarids}")
    @ApiImplicitParam(name = "bloodsugarids", value = "主键ID集合", dataType = "long", dataTypeClass = Array.class)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedDrugController.java
@@ -19,7 +19,7 @@
/**
 * æ‚£è€…用药记录Controller
 *
 *
 * @author ruoyi
 * @date 2023-06-16
 */
@@ -35,7 +35,7 @@
     * æŸ¥è¯¢æ‚£è€…用药记录列表
     */
    @ApiOperation("查询患者用药记录列表")
    @PreAuthorize("@ss.hasPermi('system:drug:list')")
    //@PreAuthorize("@ss.hasPermi('system:drug:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody PatMedDrug patMedDrug)
    {
@@ -48,7 +48,7 @@
     * å¯¼å‡ºæ‚£è€…用药记录列表
     */
    @ApiOperation("导出患者用药记录列表")
    @PreAuthorize("@ss.hasPermi('system:drug:export')")
    //@PreAuthorize("@ss.hasPermi('system:drug:export')")
    @Log(title = "患者用药记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatMedDrug patMedDrug)
@@ -62,7 +62,7 @@
     * èŽ·å–æ‚£è€…ç”¨è¯è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取患者用药记录详细信息")
    @PreAuthorize("@ss.hasPermi('system:drug:query')")
    //@PreAuthorize("@ss.hasPermi('system:drug:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -73,7 +73,7 @@
     * æ–°å¢žæ‚£è€…用药记录
     */
    @ApiOperation("新增患者用药记录")
    @PreAuthorize("@ss.hasPermi('system:drug:add')")
    //@PreAuthorize("@ss.hasPermi('system:drug:add')")
    @Log(title = "患者用药记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatMedDrug patMedDrug)
@@ -85,7 +85,7 @@
     * ä¿®æ”¹æ‚£è€…用药记录
     */
    @ApiOperation("修改患者用药记录")
    @PreAuthorize("@ss.hasPermi('system:drug:edit')")
    //@PreAuthorize("@ss.hasPermi('system:drug:edit')")
    @Log(title = "患者用药记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatMedDrug patMedDrug)
@@ -97,7 +97,7 @@
     * åˆ é™¤æ‚£è€…用药记录
     */
    @ApiOperation("删除患者用药记录")
    @PreAuthorize("@ss.hasPermi('system:drug:remove')")
    //@PreAuthorize("@ss.hasPermi('system:drug:remove')")
    @Log(title = "患者用药记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedHypertensionController.java
@@ -35,7 +35,7 @@
    /**
     * æŸ¥è¯¢æ‚£è€…高血压记录列表
     */
    @PreAuthorize("@ss.hasPermi('system:hypertension:list')")
    //@PreAuthorize("@ss.hasPermi('system:hypertension:list')")
   @PostMapping("/list")
    @ApiOperation("查询患者高血压记录列表")
    public TableDataInfo list(@RequestBody PatMedHypertension patMedHypertension) {
@@ -48,7 +48,7 @@
     * å¯¼å‡ºæ‚£è€…高血压记录列表
     */
    @ApiOperation("患者高血压记录")
    @PreAuthorize("@ss.hasPermi('system:hypertension:export')")
    //@PreAuthorize("@ss.hasPermi('system:hypertension:export')")
    @Log(title = "患者高血压记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatMedHypertension patMedHypertension) {
@@ -62,7 +62,7 @@
     */
    @ApiOperation("获取患者高血压记录详细信息")
    @ApiImplicitParam(name = "getInfo", value = "主键ID", dataType = "long", dataTypeClass = Long.class)
    @PreAuthorize("@ss.hasPermi('system:hypertension:query')")
    //@PreAuthorize("@ss.hasPermi('system:hypertension:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(patMedHypertensionService.selectPatMedHypertensionById(id));
@@ -72,7 +72,7 @@
     * æ–°å¢žæ‚£è€…高血压记录
     */
    @ApiOperation("患者高血压记录")
    @PreAuthorize("@ss.hasPermi('system:hypertension:add')")
    //@PreAuthorize("@ss.hasPermi('system:hypertension:add')")
    @Log(title = "患者高血压记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatMedHypertension patMedHypertension) {
@@ -83,7 +83,7 @@
     * ä¿®æ”¹æ‚£è€…高血压记录
     */
    @ApiOperation("患者高血压记录")
    @PreAuthorize("@ss.hasPermi('system:hypertension:edit')")
    //@PreAuthorize("@ss.hasPermi('system:hypertension:edit')")
    @Log(title = "患者高血压记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatMedHypertension patMedHypertension) {
@@ -94,7 +94,7 @@
     * åˆ é™¤æ‚£è€…高血压记录
     */
    @ApiOperation("患者高血压记录")
    @PreAuthorize("@ss.hasPermi('system:hypertension:remove')")
    //@PreAuthorize("@ss.hasPermi('system:hypertension:remove')")
    @Log(title = "患者高血压记录", businessType = BusinessType.DELETE)
    @ApiImplicitParam(name = "remove", value = "主键ID", dataType = "long", dataTypeClass = Array.class)
    @GetMapping("/remove/{ids}")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java
@@ -1,22 +1,31 @@
package com.ruoyi.web.controller.smartor;
import com.github.pagehelper.ISelect;
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.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.smartor.domain.PatMedInhosp;
import com.smartor.domain.PatMedInhospVO;
import com.smartor.domain.PatMedReq;
import com.smartor.service.IPatMedInhospService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
 * æ‚£è€…住院记录Controller
@@ -35,12 +44,40 @@
     * æŸ¥è¯¢æ‚£è€…住院记录列表
     */
    @ApiOperation("查询患者住院记录列表")
    @PreAuthorize("@ss.hasPermi('smartor:patinhosp:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:list')")
    @PostMapping("/selectPatMedInhospList")
    public TableDataInfo selectPatMedInhosplist(@RequestBody PatMedInhosp patMedInhosp) {
        startPage();
        PageUtils.startPageByPost(patMedInhosp.getPageNum(), patMedInhosp.getPageSize());
        List<PatMedInhosp> list = patMedInhospService.selectPatMedInhospList(patMedInhosp);
        return getDataTable(list);
        long count = PageUtils.count(new ISelect() {
            @Override
            public void doSelect() {
                patMedInhospService.selectPatMedInhospList(patMedInhosp);
            }
        });
        return getDataTable2(count, list);
    }
    /**
     * æŸ¥è¯¢å½“前登陆人自己(病区、部门)的患者住院记录列表
     */
    @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")
@@ -59,7 +96,7 @@
     * å¯¼å‡ºæ‚£è€…住院记录列表
     */
    @ApiOperation("导出患者住院记录列表")
    @PreAuthorize("@ss.hasPermi('smartor:patinhosp:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:export')")
    @Log(title = "患者住院记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatMedInhosp patMedInhosp) {
@@ -72,7 +109,7 @@
     * èŽ·å–æ‚£è€…ä½é™¢è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取患者住院记录详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:patinhosp:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:query')")
    @GetMapping(value = "/{inhospid}")
    public AjaxResult getInfo(@PathVariable("inhospid") Long inhospid) {
        return success(patMedInhospService.selectPatMedInhospByInhospid(inhospid));
@@ -82,7 +119,7 @@
     * æ–°å¢žæ‚£è€…住院记录
     */
    @ApiOperation("新增患者住院记录")
    @PreAuthorize("@ss.hasPermi('smartor:patinhosp:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:add')")
    @Log(title = "患者住院记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatMedInhosp patMedInhosp) {
@@ -93,7 +130,7 @@
     * ä¿®æ”¹æ‚£è€…住院记录
     */
    @ApiOperation("修改患者住院记录")
    @PreAuthorize("@ss.hasPermi('smartor:patinhosp:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:edit')")
    @Log(title = "患者住院记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatMedInhosp patMedInhosp) {
@@ -104,7 +141,7 @@
     * åˆ é™¤æ‚£è€…住院记录
     */
    @ApiOperation("删除患者住院记录")
    @PreAuthorize("@ss.hasPermi('smartor:patinhosp:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:patinhosp:remove')")
    @Log(title = "患者住院记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{inhospids}")
    public AjaxResult remove(@PathVariable Long[] inhospids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInspectionController.java
@@ -34,7 +34,7 @@
     * æŸ¥è¯¢æ‚£è€…检查检验记录列表
     */
    @ApiOperation("查询患者检查检验记录列表")
    @PreAuthorize("@ss.hasPermi('system:inspection:list')")
    //@PreAuthorize("@ss.hasPermi('system:inspection:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody PatMedInspection patMedInspection) {
        startPage();
@@ -46,7 +46,7 @@
     * å¯¼å‡ºæ‚£è€…检查检验记录列表
     */
    @ApiOperation("导出患者检查检验记录列表")
    @PreAuthorize("@ss.hasPermi('system:inspection:export')")
    //@PreAuthorize("@ss.hasPermi('system:inspection:export')")
    @Log(title = "患者检查检验记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatMedInspection patMedInspection) {
@@ -59,7 +59,7 @@
     * èŽ·å–æ‚£è€…æ£€æŸ¥æ£€éªŒè®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取患者检查检验记录详细信息")
    @PreAuthorize("@ss.hasPermi('system:inspection:query')")
    //@PreAuthorize("@ss.hasPermi('system:inspection:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(patMedInspectionService.selectPatMedInspectionById(id));
@@ -68,7 +68,7 @@
    /**
     * æ–°å¢žæ‚£è€…检查检验记录
     */
    @PreAuthorize("@ss.hasPermi('system:inspection:add')")
    //@PreAuthorize("@ss.hasPermi('system:inspection:add')")
    @Log(title = "新增患者检查检验记录", businessType = BusinessType.INSERT)
    @ApiOperation("新增患者检查检验记录")
    @PostMapping("/add")
@@ -79,7 +79,7 @@
    /**
     * ä¿®æ”¹æ‚£è€…检查检验记录
     */
    @PreAuthorize("@ss.hasPermi('system:inspection:edit')")
    //@PreAuthorize("@ss.hasPermi('system:inspection:edit')")
    @Log(title = "修改患者检查检验记录", businessType = BusinessType.UPDATE)
    @ApiOperation("修改患者检查检验记录")
    @PostMapping("/edit")
@@ -90,7 +90,7 @@
    /**
     * åˆ é™¤æ‚£è€…检查检验记录
     */
    @PreAuthorize("@ss.hasPermi('system:inspection:remove')")
    //@PreAuthorize("@ss.hasPermi('system:inspection:remove')")
    @Log(title = "患者检查检验记录", businessType = BusinessType.DELETE)
    @ApiOperation("患者检查检验记录")
    @GetMapping("/remove/{ids}")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedOperationController.java
@@ -43,7 +43,7 @@
     * æŸ¥è¯¢æ‚£è€…手术记录列表
     */
    @ApiOperation("查询患者手术记录列表")
    @PreAuthorize("@ss.hasPermi('smartor:operation:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:operation:list')")
    @GetMapping("/list")
    public TableDataInfo list(PatMedOperation patMedOperation) {
        startPage();
@@ -55,7 +55,7 @@
     * å¯¼å‡ºæ‚£è€…手术记录列表
     */
    @ApiOperation("导出患者手术记录列表")
    @PreAuthorize("@ss.hasPermi('smartor:operation:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:operation:export')")
    @Log(title = "患者手术记录" , businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatMedOperation patMedOperation) {
@@ -68,7 +68,7 @@
     * èŽ·å–æ‚£è€…æ‰‹æœ¯è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取患者手术记录详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:operation:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:operation:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(patMedOperationService.selectPatMedOperationById(id));
@@ -77,7 +77,7 @@
    /**
     * æ–°å¢žæ‚£è€…手术记录
     */
    @PreAuthorize("@ss.hasPermi('smartor:operation:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:operation:add')")
    @Log(title = "患者手术记录" , businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatMedOperation patMedOperation) {
@@ -88,7 +88,7 @@
     * ä¿®æ”¹æ‚£è€…手术记录
     */
    @ApiOperation("修改患者手术记录")
    @PreAuthorize("@ss.hasPermi('smartor:operation:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:operation:edit')")
    @Log(title = "患者手术记录" , businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatMedOperation patMedOperation) {
@@ -99,7 +99,7 @@
     * åˆ é™¤æ‚£è€…手术记录
     */
    @ApiOperation("删除患者手术记录")
    @PreAuthorize("@ss.hasPermi('smartor:operation:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:operation:remove')")
    @Log(title = "患者手术记录" , businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedOuthospController.java
@@ -44,7 +44,7 @@
    /**
     * æŸ¥è¯¢æ‚£è€…门诊记录列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:patouthosp:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:patouthosp:list')")
    @PostMapping("/selectPatMedOuthospList")
    @ApiOperation("查询患者门诊记录列表")
    public TableDataInfo selectPatMedOuthosplist(@RequestBody PatMedOuthosp patMedOuthosp) {
@@ -72,7 +72,7 @@
    /**
     * å¯¼å‡ºæ‚£è€…门诊记录列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:patouthosp:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:patouthosp:export')")
    @Log(title = "患者门诊记录", businessType = BusinessType.EXPORT)
    @ApiOperation("患者门诊记录")
    @PostMapping("/export")
@@ -87,7 +87,7 @@
     */
    @ApiOperation("获取患者门诊记录详细信息")
    @ApiImplicitParam(name = "getInfo", value = "主键ID", dataType = "long", dataTypeClass = Long.class)
    @PreAuthorize("@ss.hasPermi('smartor:patouthosp:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:patouthosp:query')")
    @GetMapping(value = "getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(patMedOuthospService.selectPatMedOuthospById(id));
@@ -97,7 +97,7 @@
     * æ–°å¢žæ‚£è€…门诊记录
     */
    @ApiOperation("新增患者门诊记录")
    @PreAuthorize("@ss.hasPermi('smartor:patouthosp:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:patouthosp:add')")
    @Log(title = "患者门诊记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatMedOuthosp patMedOuthosp) {
@@ -108,7 +108,7 @@
     * ä¿®æ”¹æ‚£è€…门诊记录
     */
    @ApiOperation("修改患者门诊记录")
    @PreAuthorize("@ss.hasPermi('smartor:patouthosp:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:patouthosp:edit')")
    @Log(title = "患者门诊记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatMedOuthosp patMedOuthosp) {
@@ -119,7 +119,7 @@
     * åˆ é™¤æ‚£è€…门诊记录
     */
    @ApiOperation("删除患者门诊记录")
    @PreAuthorize("@ss.hasPermi('smartor:patouthosp:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:patouthosp:remove')")
    @ApiImplicitParam(name = "remove", value = "主键ID", dataType = "long", dataTypeClass = Array.class)
    @Log(title = "患者门诊记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedPhysicalController.java
@@ -42,7 +42,7 @@
     * æŸ¥è¯¢æ‚£è€…体检记录列表
     */
    @ApiOperation("查询患者体检记录列表")
    @PreAuthorize("@ss.hasPermi('smartor:patphysical:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:patphysical:list')")
    @PostMapping("/selectPatMedPhysicalList")
    public TableDataInfo selectPatMedPhysicallist(@RequestBody  PatMedPhysical patMedPhysical)
    {
@@ -55,7 +55,7 @@
     * å¯¼å‡ºæ‚£è€…体检记录列表
     */
    @ApiOperation("导出患者体检记录列表")
    @PreAuthorize("@ss.hasPermi('smartor:patphysical:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:patphysical:export')")
    @Log(title = "患者体检记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatMedPhysical patMedPhysical)
@@ -69,7 +69,7 @@
     * èŽ·å–æ‚£è€…ä½“æ£€è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取患者体检记录详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:patphysical:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:patphysical:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -80,7 +80,7 @@
     * æ–°å¢žæ‚£è€…体检记录
     */
    @ApiOperation("新增患者体检记录")
    @PreAuthorize("@ss.hasPermi('smartor:patphysical:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:patphysical:add')")
    @Log(title = "患者体检记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatMedPhysical patMedPhysical)
@@ -92,7 +92,7 @@
     * ä¿®æ”¹æ‚£è€…体检记录
     */
    @ApiOperation("修改患者体检记录")
    @PreAuthorize("@ss.hasPermi('smartor:patphysical:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:patphysical:edit')")
    @Log(title = "患者体检记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatMedPhysical patMedPhysical)
@@ -104,7 +104,7 @@
     * åˆ é™¤æ‚£è€…体检记录
     */
    @ApiOperation("删除患者体检记录")
    @PreAuthorize("@ss.hasPermi('smartor:patphysical:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:patphysical:remove')")
    @Log(title = "患者体检记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedRegistrationController.java
@@ -34,7 +34,7 @@
     * æŸ¥è¯¢æ‚£è€…挂号记录列表
     */
    @ApiOperation("查询患者挂号记录列表")
    @PreAuthorize("@ss.hasPermi('system:registration:list')")
    //@PreAuthorize("@ss.hasPermi('system:registration:list')")
    @GetMapping("/list")
    public TableDataInfo list(PatMedRegistration patMedRegistration) {
        startPage();
@@ -46,7 +46,7 @@
     * å¯¼å‡ºæ‚£è€…挂号记录列表
     */
    @ApiOperation("导出患者挂号记录列表")
    @PreAuthorize("@ss.hasPermi('system:registration:export')")
    //@PreAuthorize("@ss.hasPermi('system:registration:export')")
    @Log(title = "患者挂号记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatMedRegistration patMedRegistration) {
@@ -59,7 +59,7 @@
     * èŽ·å–æ‚£è€…æŒ‚å·è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取患者挂号记录详细信息")
    @PreAuthorize("@ss.hasPermi('system:registration:query')")
    //@PreAuthorize("@ss.hasPermi('system:registration:query')")
    @GetMapping(value = "/getInfo/{registid}")
    public AjaxResult getInfo(@PathVariable("registid") Long registid) {
        return success(patMedRegistrationService.selectPatMedRegistrationByRegistid(registid));
@@ -69,7 +69,7 @@
     * æ–°å¢žæ‚£è€…挂号记录
     */
    @ApiOperation("新增患者挂号记录")
    @PreAuthorize("@ss.hasPermi('system:registration:add')")
    //@PreAuthorize("@ss.hasPermi('system:registration:add')")
    @Log(title = "患者挂号记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatMedRegistration patMedRegistration) {
@@ -80,7 +80,7 @@
     * ä¿®æ”¹æ‚£è€…挂号记录
     */
    @ApiOperation("修改患者挂号记录")
    @PreAuthorize("@ss.hasPermi('system:registration:edit')")
    //@PreAuthorize("@ss.hasPermi('system:registration:edit')")
    @Log(title = "患者挂号记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatMedRegistration patMedRegistration) {
@@ -91,7 +91,7 @@
     * åˆ é™¤æ‚£è€…挂号记录
     */
    @ApiOperation("删除患者挂号记录")
    @PreAuthorize("@ss.hasPermi('system:registration:remove')")
    //@PreAuthorize("@ss.hasPermi('system:registration:remove')")
    @Log(title = "患者挂号记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{registids}")
    public AjaxResult remove(@PathVariable Long[] registids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedWeightController.java
@@ -37,7 +37,7 @@
     * æŸ¥è¯¢æ‚£è€…体重记录列表
     */
    @ApiOperation("查询患者体重记录列表")
    @PreAuthorize("@ss.hasPermi('system:weight:list')")
    //@PreAuthorize("@ss.hasPermi('system:weight:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody PatMedWeight patMedWeight)
    {
@@ -50,7 +50,7 @@
     * å¯¼å‡ºæ‚£è€…体重记录列表
     */
    @ApiOperation("导出患者体重记录列表")
    @PreAuthorize("@ss.hasPermi('system:weight:export')")
    //@PreAuthorize("@ss.hasPermi('system:weight:export')")
    @Log(title = "患者体重记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatMedWeight patMedWeight)
@@ -64,7 +64,7 @@
     * èŽ·å–æ‚£è€…ä½“é‡è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取患者体重记录详细信息")
    @PreAuthorize("@ss.hasPermi('system:weight:query')")
    //@PreAuthorize("@ss.hasPermi('system:weight:query')")
    @ApiImplicitParam(name = "getInfo", value = "主键ID", dataType = "long", dataTypeClass = Long.class)
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
@@ -76,7 +76,7 @@
     * æ–°å¢žæ‚£è€…体重记录
     */
    @ApiOperation("新增患者体重记录")
    @PreAuthorize("@ss.hasPermi('system:weight:add')")
    //@PreAuthorize("@ss.hasPermi('system:weight:add')")
    @Log(title = "患者体重记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatMedWeight patMedWeight)
@@ -88,7 +88,7 @@
     * ä¿®æ”¹æ‚£è€…体重记录
     */
    @ApiOperation("修改患者体重记录")
    @PreAuthorize("@ss.hasPermi('system:weight:edit')")
    //@PreAuthorize("@ss.hasPermi('system:weight:edit')")
    @Log(title = "修改患者体重记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatMedWeight patMedWeight)
@@ -100,7 +100,7 @@
     * åˆ é™¤æ‚£è€…体重记录
     */
    @ApiOperation("删除患者体重记录")
    @PreAuthorize("@ss.hasPermi('system:weight:remove')")
    //@PreAuthorize("@ss.hasPermi('system:weight:remove')")
    @Log(title = "删除患者体重记录", businessType = BusinessType.DELETE)
    @ApiImplicitParam(name = "remove", value = "主键ID", dataType = "long", dataTypeClass = Array.class)
    @GetMapping("/remove/{ids}")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatSpeciallistCategoryController.java
@@ -35,7 +35,7 @@
     * æŸ¥è¯¢ä¸“病患者分类列表
     */
    @ApiOperation("查询专病患者分类列表")
    @PreAuthorize("@ss.hasPermi('system:category:list')")
    //@PreAuthorize("@ss.hasPermi('system:category:list')")
    @GetMapping("/list")
    public TableDataInfo list(PatSpeciallistCategory patSpeciallistCategory)
    {
@@ -48,7 +48,7 @@
     * å¯¼å‡ºä¸“病患者分类列表
     */
    @ApiOperation("导出专病患者分类列表")
    @PreAuthorize("@ss.hasPermi('system:category:export')")
    //@PreAuthorize("@ss.hasPermi('system:category:export')")
    @Log(title = "专病患者分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatSpeciallistCategory patSpeciallistCategory)
@@ -62,7 +62,7 @@
     * èŽ·å–ä¸“ç—…æ‚£è€…åˆ†ç±»è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取专病患者分类详细信息")
    @PreAuthorize("@ss.hasPermi('system:category:query')")
    //@PreAuthorize("@ss.hasPermi('system:category:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žä¸“病患者分类
     */
    @PreAuthorize("@ss.hasPermi('system:category:add')")
    //@PreAuthorize("@ss.hasPermi('system:category:add')")
    @Log(title = "专病患者分类", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody PatSpeciallistCategory patSpeciallistCategory)
@@ -84,7 +84,7 @@
     * ä¿®æ”¹ä¸“病患者分类
     */
    @ApiOperation("修改专病患者分类")
    @PreAuthorize("@ss.hasPermi('system:category:edit')")
    //@PreAuthorize("@ss.hasPermi('system:category:edit')")
    @Log(title = "专病患者分类", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody PatSpeciallistCategory patSpeciallistCategory)
@@ -96,7 +96,7 @@
     * åˆ é™¤ä¸“病患者分类
     */
    @ApiOperation("删除专病患者分类")
    @PreAuthorize("@ss.hasPermi('system:category:remove')")
    //@PreAuthorize("@ss.hasPermi('system:category:remove')")
    @Log(title = "专病患者分类", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatSpeciallistController.java
@@ -34,7 +34,7 @@
    /**
     * æŸ¥è¯¢ä¸“病患者列表
     */
    @PreAuthorize("@ss.hasPermi('system:speciallist:list')")
    //@PreAuthorize("@ss.hasPermi('system:speciallist:list')")
    @ApiOperation("查询专病患者列表")
    @GetMapping("/list")
    public TableDataInfo list(PatSpeciallist patSpeciallist)
@@ -47,7 +47,7 @@
    /**
     * å¯¼å‡ºä¸“病患者列表
     */
    @PreAuthorize("@ss.hasPermi('system:speciallist:export')")
    //@PreAuthorize("@ss.hasPermi('system:speciallist:export')")
    @Log(title = "专病患者", businessType = BusinessType.EXPORT)
    @ApiOperation("导出专病患者列表")
    @PostMapping("/export")
@@ -61,7 +61,7 @@
    /**
     * èŽ·å–ä¸“ç—…æ‚£è€…è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:speciallist:query')")
    //@PreAuthorize("@ss.hasPermi('system:speciallist:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -71,7 +71,7 @@
    /**
     * æ–°å¢žä¸“病患者
     */
    @PreAuthorize("@ss.hasPermi('system:speciallist:add')")
    //@PreAuthorize("@ss.hasPermi('system:speciallist:add')")
    @Log(title = "专病患者", businessType = BusinessType.INSERT)
    @ApiOperation("新增专病患者")
    @PostMapping("/add")
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹ä¸“病患者
     */
    @PreAuthorize("@ss.hasPermi('system:speciallist:edit')")
    //@PreAuthorize("@ss.hasPermi('system:speciallist:edit')")
    @Log(title = "专病患者", businessType = BusinessType.UPDATE)
    @ApiOperation("修改专病患者")
    @PostMapping("/edit")
@@ -95,7 +95,7 @@
    /**
     * åˆ é™¤ä¸“病患者
     */
    @PreAuthorize("@ss.hasPermi('system:speciallist:remove')")
    //@PreAuthorize("@ss.hasPermi('system:speciallist:remove')")
    @Log(title = "专病患者", businessType = BusinessType.DELETE)
    @ApiOperation("删除专病患者")
    @GetMapping("/remove/{ids}")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatTaskRelevanceController.java
@@ -18,7 +18,7 @@
/**
 * æ‚£è€…与宣教任务关联Controller
 *
 *
 * @author ruoyi
 * @date 2024-01-07
 */
@@ -32,7 +32,7 @@
    /**
     * æŸ¥è¯¢æ‚£è€…与宣教任务关联列表
     */
    @PreAuthorize("@ss.hasPermi('system:relevance:list')")
    //@PreAuthorize("@ss.hasPermi('system:relevance:list')")
    @GetMapping("/list")
    public TableDataInfo list(PatTaskRelevance PatTaskRelevance)
    {
@@ -44,7 +44,7 @@
    /**
     * å¯¼å‡ºæ‚£è€…与宣教任务关联列表
     */
    @PreAuthorize("@ss.hasPermi('system:relevance:export')")
    //@PreAuthorize("@ss.hasPermi('system:relevance:export')")
    @Log(title = "患者与宣教任务关联", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatTaskRelevance PatTaskRelevance)
@@ -57,7 +57,7 @@
    /**
     * èŽ·å–æ‚£è€…ä¸Žå®£æ•™ä»»åŠ¡å…³è”è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:relevance:query')")
    //@PreAuthorize("@ss.hasPermi('system:relevance:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -67,7 +67,7 @@
    /**
     * æ–°å¢žæ‚£è€…与宣教任务关联
     */
    @PreAuthorize("@ss.hasPermi('system:relevance:add')")
    //@PreAuthorize("@ss.hasPermi('system:relevance:add')")
    @Log(title = "患者与宣教任务关联", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody PatTaskRelevance PatTaskRelevance)
@@ -78,7 +78,7 @@
    /**
     * ä¿®æ”¹æ‚£è€…与宣教任务关联
     */
    @PreAuthorize("@ss.hasPermi('system:relevance:edit')")
    //@PreAuthorize("@ss.hasPermi('system:relevance:edit')")
    @Log(title = "患者与宣教任务关联", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody PatTaskRelevance PatTaskRelevance)
@@ -89,7 +89,7 @@
    /**
     * åˆ é™¤æ‚£è€…与宣教任务关联
     */
    @PreAuthorize("@ss.hasPermi('system:relevance:remove')")
    //@PreAuthorize("@ss.hasPermi('system:relevance:remove')")
    @Log(title = "患者与宣教任务关联", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatWildcardController.java
@@ -31,7 +31,7 @@
    /**
     * æŸ¥è¯¢æ‚£è€…信息通配符列表
     */
    @PreAuthorize("@ss.hasPermi('system:wildcard:list')")
    //@PreAuthorize("@ss.hasPermi('system:wildcard:list')")
    @GetMapping("/list")
    public TableDataInfo list(PatWildcard patWildcard)
    {
@@ -43,7 +43,7 @@
    /**
     * å¯¼å‡ºæ‚£è€…信息通配符列表
     */
    @PreAuthorize("@ss.hasPermi('system:wildcard:export')")
    //@PreAuthorize("@ss.hasPermi('system:wildcard:export')")
    @Log(title = "患者信息通配符", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, PatWildcard patWildcard)
@@ -56,7 +56,7 @@
    /**
     * èŽ·å–æ‚£è€…ä¿¡æ¯é€šé…ç¬¦è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:wildcard:query')")
    //@PreAuthorize("@ss.hasPermi('system:wildcard:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -66,7 +66,7 @@
    /**
     * æ–°å¢žæ‚£è€…信息通配符
     */
    @PreAuthorize("@ss.hasPermi('system:wildcard:add')")
    //@PreAuthorize("@ss.hasPermi('system:wildcard:add')")
    @Log(title = "患者信息通配符", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody PatWildcard patWildcard)
@@ -77,7 +77,7 @@
    /**
     * ä¿®æ”¹æ‚£è€…信息通配符
     */
    @PreAuthorize("@ss.hasPermi('system:wildcard:edit')")
    //@PreAuthorize("@ss.hasPermi('system:wildcard:edit')")
    @Log(title = "患者信息通配符", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody PatWildcard patWildcard)
@@ -88,7 +88,7 @@
    /**
     * åˆ é™¤æ‚£è€…信息通配符
     */
    @PreAuthorize("@ss.hasPermi('system:wildcard:remove')")
    //@PreAuthorize("@ss.hasPermi('system:wildcard:remove')")
    @Log(title = "患者信息通配符", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PersonWorkbenchController.java
@@ -51,7 +51,7 @@
     * å½“前登录用户的门诊、在院、出院病人的统计情况
     */
    @ApiOperation("当前登录用户的门诊、在院、出院病人的统计情况")
    @PreAuthorize("@ss.hasPermi('system:tag:list')")
    //@PreAuthorize("@ss.hasPermi('system:tag:list')")
    @GetMapping("/getTaskInfo")
    public TableDataInfo getTaskInfo(@RequestParam("deptIds") String detpIds, @RequestParam("dcCodes") String dcCodes) {
        //获取当前登陆人
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeAutofinshruleController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢æ–¹æ¡ˆç»“案规则列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemeautofinshrule:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemeautofinshrule:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SchemeAutofinshrule schemeAutofinshrule) {
        startPage();
@@ -48,7 +48,7 @@
    /**
     * å¯¼å‡ºæ–¹æ¡ˆç»“案规则列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemeautofinshrule:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemeautofinshrule:export')")
    @Log(title = "方案结案规则", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SchemeAutofinshrule schemeAutofinshrule) {
@@ -60,7 +60,7 @@
    /**
     * èŽ·å–æ–¹æ¡ˆç»“æ¡ˆè§„åˆ™è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemeautofinshrule:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemeautofinshrule:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(schemeAutofinshruleService.selectSchemeAutofinshruleById(id));
@@ -69,7 +69,7 @@
    /**
     * æ–°å¢žæ–¹æ¡ˆç»“案规则
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemeautofinshrule:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemeautofinshrule:add')")
    @Log(title = "方案结案规则", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SchemeAutofinshrule schemeAutofinshrule) {
@@ -79,7 +79,7 @@
    /**
     * ä¿®æ”¹æ–¹æ¡ˆç»“案规则
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemeautofinshrule:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemeautofinshrule:edit')")
    @Log(title = "方案结案规则", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SchemeAutofinshrule schemeAutofinshrule) {
@@ -89,7 +89,7 @@
    /**
     * åˆ é™¤æ–¹æ¡ˆç»“案规则
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemeautofinshrule:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemeautofinshrule:remove')")
    @Log(title = "方案结案规则", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeCategoryController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢æ–¹æ¡ˆåˆ†ç±»åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemecategory:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemecategory:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SchemeCategory schemeCategory)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºæ–¹æ¡ˆåˆ†ç±»åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemecategory:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemecategory:export')")
    @Log(title = "方案分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SchemeCategory schemeCategory)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–æ–¹æ¡ˆåˆ†ç±»è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemecategory:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemecategory:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žæ–¹æ¡ˆåˆ†ç±»
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemecategory:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemecategory:add')")
    @Log(title = "方案分类", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SchemeCategory schemeCategory)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹æ–¹æ¡ˆåˆ†ç±»
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemecategory:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemecategory:edit')")
    @Log(title = "方案分类", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SchemeCategory schemeCategory)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤æ–¹æ¡ˆåˆ†ç±»
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemecategory:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemecategory:remove')")
    @Log(title = "方案分类", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeLocallibraryController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢æœåŠ¡æ–¹æ¡ˆåº“åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemelibrary:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemelibrary:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SchemeLocallibrary schemeLocallibrary)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºæœåŠ¡æ–¹æ¡ˆåº“åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemelibrary:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemelibrary:export')")
    @Log(title = "服务方案库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SchemeLocallibrary schemeLocallibrary)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–æœåŠ¡æ–¹æ¡ˆåº“è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemelibrary:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemelibrary:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žæœåŠ¡æ–¹æ¡ˆåº“
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemelibrary:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemelibrary:add')")
    @Log(title = "服务方案库", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SchemeLocallibrary schemeLocallibrary)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹æœåŠ¡æ–¹æ¡ˆåº“
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemelibrary:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemelibrary:edit')")
    @Log(title = "服务方案库", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SchemeLocallibrary schemeLocallibrary)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤æœåŠ¡æ–¹æ¡ˆåº“
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemelibrary:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemelibrary:remove')")
    @Log(title = "服务方案库", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemePlanController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢ç®¡ç†è®¡åˆ’列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemeplan:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemeplan:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SchemePlan schemePlan)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºç®¡ç†è®¡åˆ’列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemeplan:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemeplan:export')")
    @Log(title = "管理计划", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SchemePlan schemePlan)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–ç®¡ç†è®¡åˆ’è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemeplan:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemeplan:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žç®¡ç†è®¡åˆ’
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemeplan:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemeplan:add')")
    @Log(title = "管理计划", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SchemePlan schemePlan)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹ç®¡ç†è®¡åˆ’
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemeplan:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemeplan:edit')")
    @Log(title = "管理计划", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SchemePlan schemePlan)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤ç®¡ç†è®¡åˆ’
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemeplan:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemeplan:remove')")
    @Log(title = "管理计划", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTaskController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢æ–¹æ¡ˆä»»åŠ¡åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetask:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetask:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SchemeTask schemeTask)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºæ–¹æ¡ˆä»»åŠ¡åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetask:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetask:export')")
    @Log(title = "方案任务", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SchemeTask schemeTask)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–æ–¹æ¡ˆä»»åŠ¡è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetask:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetask:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žæ–¹æ¡ˆä»»åŠ¡
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetask:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetask:add')")
    @Log(title = "方案任务", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SchemeTask schemeTask)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹æ–¹æ¡ˆä»»åŠ¡
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetask:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetask:edit')")
    @Log(title = "方案任务", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SchemeTask schemeTask)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤æ–¹æ¡ˆä»»åŠ¡
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetask:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetask:remove')")
    @Log(title = "方案任务", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTaskconfigController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢æ–¹æ¡ˆä»»åŠ¡é…ç½®åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskconfig:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskconfig:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SchemeTaskconfig schemeTaskconfig)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºæ–¹æ¡ˆä»»åŠ¡é…ç½®åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskconfig:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskconfig:export')")
    @Log(title = "方案任务配置", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SchemeTaskconfig schemeTaskconfig)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–æ–¹æ¡ˆä»»åŠ¡é…ç½®è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskconfig:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskconfig:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žæ–¹æ¡ˆä»»åŠ¡é…ç½®
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskconfig:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskconfig:add')")
    @Log(title = "方案任务配置", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SchemeTaskconfig schemeTaskconfig)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹æ–¹æ¡ˆä»»åŠ¡é…ç½®
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskconfig:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskconfig:edit')")
    @Log(title = "方案任务配置", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SchemeTaskconfig schemeTaskconfig)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤æ–¹æ¡ˆä»»åŠ¡é…ç½®
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskconfig:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskconfig:remove')")
    @Log(title = "方案任务配置", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTaskrecordCalldetailController.java
@@ -23,7 +23,7 @@
/**
 * æ–¹æ¡ˆAI外呼任务详情Controller
 *
 *
 * @author smartor
 * @date 2023-03-04
 */
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢æ–¹æ¡ˆAI外呼任务详情列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemecalldetail:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemecalldetail:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SchemeTaskrecordCalldetail schemeTaskrecordCalldetail)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºæ–¹æ¡ˆAI外呼任务详情列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemecalldetail:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemecalldetail:export')")
    @Log(title = "方案AI外呼任务详情", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SchemeTaskrecordCalldetail schemeTaskrecordCalldetail)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–æ–¹æ¡ˆAI外呼任务详情详细信息
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemecalldetail:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemecalldetail:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žæ–¹æ¡ˆAI外呼任务详情
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemecalldetail:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemecalldetail:add')")
    @Log(title = "方案AI外呼任务详情", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SchemeTaskrecordCalldetail schemeTaskrecordCalldetail)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹æ–¹æ¡ˆAI外呼任务详情
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemecalldetail:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemecalldetail:edit')")
    @Log(title = "方案AI外呼任务详情", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SchemeTaskrecordCalldetail schemeTaskrecordCalldetail)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤æ–¹æ¡ˆAI外呼任务详情
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemecalldetail:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemecalldetail:remove')")
    @Log(title = "方案AI外呼任务详情", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTaskrecordController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢æ–¹æ¡ˆä»»åŠ¡å¤„ç†è®°å½•åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskrecord:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskrecord:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SchemeTaskrecord schemeTaskrecord)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºæ–¹æ¡ˆä»»åŠ¡å¤„ç†è®°å½•åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskrecord:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskrecord:export')")
    @Log(title = "方案任务处理记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SchemeTaskrecord schemeTaskrecord)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–æ–¹æ¡ˆä»»åŠ¡å¤„ç†è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskrecord:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskrecord:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žæ–¹æ¡ˆä»»åŠ¡å¤„ç†è®°å½•
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskrecord:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskrecord:add')")
    @Log(title = "方案任务处理记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SchemeTaskrecord schemeTaskrecord)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹æ–¹æ¡ˆä»»åŠ¡å¤„ç†è®°å½•
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskrecord:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskrecord:edit')")
    @Log(title = "方案任务处理记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SchemeTaskrecord schemeTaskrecord)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤æ–¹æ¡ˆä»»åŠ¡å¤„ç†è®°å½•
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskrecord:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskrecord:remove')")
    @Log(title = "方案任务处理记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTaskrepeatconfigController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢æ–¹æ¡ˆä»»åŠ¡é‡å‘é…ç½®åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskrepeatconfig:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskrepeatconfig:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody SchemeTaskrepeatconfig schemeTaskrepeatconfig) {
        startPage();
@@ -48,7 +48,7 @@
    /**
     * å¯¼å‡ºæ–¹æ¡ˆä»»åŠ¡é‡å‘é…ç½®åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskrepeatconfig:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskrepeatconfig:export')")
    @Log(title = "方案任务重发配置", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SchemeTaskrepeatconfig schemeTaskrepeatconfig) {
@@ -60,7 +60,7 @@
    /**
     * èŽ·å–æ–¹æ¡ˆä»»åŠ¡é‡å‘é…ç½®è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskrepeatconfig:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskrepeatconfig:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(schemeTaskrepeatconfigService.selectSchemeTaskrepeatconfigById(id));
@@ -69,7 +69,7 @@
    /**
     * æ–°å¢žæ–¹æ¡ˆä»»åŠ¡é‡å‘é…ç½®
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskrepeatconfig:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskrepeatconfig:add')")
    @Log(title = "方案任务重发配置", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SchemeTaskrepeatconfig schemeTaskrepeatconfig) {
@@ -79,7 +79,7 @@
    /**
     * ä¿®æ”¹æ–¹æ¡ˆä»»åŠ¡é‡å‘é…ç½®
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskrepeatconfig:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskrepeatconfig:edit')")
    @Log(title = "方案任务重发配置", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SchemeTaskrepeatconfig schemeTaskrepeatconfig) {
@@ -89,7 +89,7 @@
    /**
     * åˆ é™¤æ–¹æ¡ˆä»»åŠ¡é‡å‘é…ç½®
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetaskrepeatconfig:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetaskrepeatconfig:remove')")
    @Log(title = "方案任务重发配置", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTriggerruleController.java
@@ -23,7 +23,7 @@
/**
 * æ–¹æ¡ˆè§¦å‘条件规则Controller
 *
 *
 * @author smartor
 * @date 2023-03-04
 */
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢æ–¹æ¡ˆè§¦å‘条件规则列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetriggerrule:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetriggerrule:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SchemeTriggerrule schemeTriggerrule)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºæ–¹æ¡ˆè§¦å‘条件规则列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetriggerrule:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetriggerrule:export')")
    @Log(title = "方案触发条件规则", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SchemeTriggerrule schemeTriggerrule)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–æ–¹æ¡ˆè§¦å‘æ¡ä»¶è§„åˆ™è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetriggerrule:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetriggerrule:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žæ–¹æ¡ˆè§¦å‘条件规则
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetriggerrule:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetriggerrule:add')")
    @Log(title = "方案触发条件规则", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SchemeTriggerrule schemeTriggerrule)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹æ–¹æ¡ˆè§¦å‘条件规则
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetriggerrule:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetriggerrule:edit')")
    @Log(title = "方案触发条件规则", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SchemeTriggerrule schemeTriggerrule)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤æ–¹æ¡ˆè§¦å‘条件规则
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetriggerrule:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetriggerrule:remove')")
    @Log(title = "方案触发条件规则", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SchemeTriggersceneController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢æ–¹æ¡ˆè§¦å‘场景列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetriggerscene:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetriggerscene:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SchemeTriggerscene schemeTriggerscene)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºæ–¹æ¡ˆè§¦å‘场景列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetriggerscene:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetriggerscene:export')")
    @Log(title = "方案触发场景", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SchemeTriggerscene schemeTriggerscene)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–æ–¹æ¡ˆè§¦å‘åœºæ™¯è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetriggerscene:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetriggerscene:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žæ–¹æ¡ˆè§¦å‘场景
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetriggerscene:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetriggerscene:add')")
    @Log(title = "方案触发场景", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SchemeTriggerscene schemeTriggerscene)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹æ–¹æ¡ˆè§¦å‘场景
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetriggerscene:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetriggerscene:edit')")
    @Log(title = "方案触发场景", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SchemeTriggerscene schemeTriggerscene)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤æ–¹æ¡ˆè§¦å‘场景
     */
    @PreAuthorize("@ss.hasPermi('smartor:schemetriggerscene:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:schemetriggerscene:remove')")
    @Log(title = "方案触发场景", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java
@@ -35,7 +35,7 @@
    /**
     * æŸ¥è¯¢ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:answer:list')")
    //@PreAuthorize("@ss.hasPermi('system:answer:list')")
    @ApiOperation("查询任务问卷问题选项列表")
    @GetMapping("/list")
    public TableDataInfo list(ServiceSubtaskAnswer serviceSubtaskAnswer) {
@@ -47,7 +47,7 @@
    /**
     * å¯¼å‡ºä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:answer:export')")
    //@PreAuthorize("@ss.hasPermi('system:answer:export')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.EXPORT)
    @ApiOperation("任务问卷问题选项")
    @PostMapping("/export")
@@ -60,7 +60,7 @@
    /**
     * èŽ·å–ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:answer:query')")
    //@PreAuthorize("@ss.hasPermi('system:answer:query')")
    @GetMapping(value = "/getInfo/{id}")
    @ApiOperation("获取任务问卷问题选项详细信息")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
@@ -70,7 +70,7 @@
    /**
     * æ–°å¢žä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹
     */
    @PreAuthorize("@ss.hasPermi('system:answer:add')")
    //@PreAuthorize("@ss.hasPermi('system:answer:add')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.INSERT)
    @ApiOperation("新增任务问卷问题选项")
    @PostMapping("/add")
@@ -81,7 +81,7 @@
    /**
     * ä¿®æ”¹ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹
     */
    @PreAuthorize("@ss.hasPermi('system:answer:edit')")
    //@PreAuthorize("@ss.hasPermi('system:answer:edit')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.UPDATE)
    @ApiOperation("修改任务问卷问题选项")
    @PostMapping("/edit")
@@ -92,7 +92,7 @@
    /**
     * åˆ é™¤ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹
     */
    @PreAuthorize("@ss.hasPermi('system:answer:remove')")
    //@PreAuthorize("@ss.hasPermi('system:answer:remove')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.DELETE)
    @ApiOperation("删除任务问卷问题选项")
    @DeleteMapping("/remove/{ids}")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -43,7 +43,7 @@
     * æŸ¥è¯¢æ‚£è€…随访信息
     */
    @ApiOperation("查询患者随访信息")
    @PreAuthorize("@ss.hasPermi('system:taskcall:list')")
    //@PreAuthorize("@ss.hasPermi('system:taskcall:list')")
    @PostMapping("/patItem")
    public TableDataInfo patItem(@RequestBody ServiceSubtask ivrTaskcall) {
        PageUtils.startPageByPost(ivrTaskcall.getPageNum(), ivrTaskcall.getPageSize());
@@ -53,7 +53,7 @@
    /**
     * å¯¼å‡ºå•一任务(随访宣教)列表
     */
    @PreAuthorize("@ss.hasPermi('system:taskcall:export')")
    //@PreAuthorize("@ss.hasPermi('system:taskcall:export')")
    @Log(title = "单一任务(随访宣教)", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ServiceSubtask serviceSubtask) {
@@ -66,7 +66,7 @@
    /**
     * èŽ·å–å•ä¸€ä»»åŠ¡ï¼ˆéšè®¿ï¼‰è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:taskcall:query')")
    //@PreAuthorize("@ss.hasPermi('system:taskcall:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(serviceSubtaskService.selectServiceSubtaskById(id));
@@ -76,7 +76,7 @@
     * æ–°å¢žæˆ–修改删除单一任务
     */
    @ApiOperation("新增或修改删除单一任务")
    @PreAuthorize("@ss.hasPermi('system:task:add')")
    //@PreAuthorize("@ss.hasPermi('system:task:add')")
    @Log(title = "单一任务(随访)", businessType = BusinessType.INSERT)
    @PostMapping("/insertOrUpdateTask")
    public AjaxResult insertOrUpdateHeTask(@RequestBody ServiceTaskVO ivrTaskVO) {
@@ -87,6 +87,12 @@
        return toAjax(serviceSubtaskService.insertOrUpdateTask(ivrTaskVO));
    }
    @ApiOperation("修改子任务")
    @PostMapping("/update")
    public AjaxResult update(@RequestBody ServiceSubtask serviceSubtask) {
        return toAjax(serviceSubtaskService.updateServiceSubtask(serviceSubtask));
    }
    /**
     * æ ¹æ®æ¡ä»¶æŸ¥è¯¢ä»»åŠ¡ä¿¡æ¯
     */
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskDetailController.java
@@ -30,7 +30,7 @@
    /**
     * æŸ¥è¯¢è¯­éŸ³ä»»åŠ¡å‘¼å«æ˜Žç»†åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody ServiceSubtaskDetail serviceSubtaskDetail) {
        startPage();
@@ -41,7 +41,7 @@
    /**
     * å¯¼å‡ºè¯­éŸ³ä»»åŠ¡å‘¼å«æ˜Žç»†åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:export')")
    @Log(title = "语音任务呼叫明细", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ServiceSubtaskDetail serviceSubtaskDetail) {
@@ -53,7 +53,7 @@
    /**
     * èŽ·å–è¯­éŸ³ä»»åŠ¡å‘¼å«æ˜Žç»†è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:query')")
    @GetMapping(value = "/{calldetailid}")
    public AjaxResult getInfo(@PathVariable("calldetailid") String calldetailid) {
        return success(ServiceSubtaskDetailService.selectServiceSubtaskDetailByCalldetailid(calldetailid));
@@ -62,7 +62,7 @@
    /**
     * æ–°å¢žè¯­éŸ³ä»»åŠ¡å‘¼å«æ˜Žç»†
     */
    @PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:add')")
    @Log(title = "语音任务呼叫明细", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody ServiceSubtaskDetail serviceSubtaskDetail) {
@@ -72,7 +72,7 @@
    /**
     * ä¿®æ”¹è¯­éŸ³ä»»åŠ¡å‘¼å«æ˜Žç»†
     */
    @PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:edit')")
    @Log(title = "语音任务呼叫明细", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody ServiceSubtaskDetail serviceSubtaskDetail) {
@@ -82,7 +82,7 @@
    /**
     * åˆ é™¤è¯­éŸ³ä»»åŠ¡å‘¼å«æ˜Žç»†
     */
    @PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceSubtaskDetail:remove')")
    @Log(title = "语音任务呼叫明细", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{calldetailids}")
    public AjaxResult remove(@PathVariable String[] calldetailids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskRecordController.java
@@ -30,7 +30,7 @@
    /**
     * æŸ¥è¯¢ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:record:list')")
    //@PreAuthorize("@ss.hasPermi('system:record:list')")
    @GetMapping("/list")
    public TableDataInfo list(ServiceSubtaskRecord serviceSubtaskRecord) {
        startPage();
@@ -41,7 +41,7 @@
    /**
     * å¯¼å‡ºã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:record:export')")
    //@PreAuthorize("@ss.hasPermi('system:record:export')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ServiceSubtaskRecord serviceSubtaskRecord) {
@@ -53,7 +53,7 @@
    /**
     * èŽ·å–ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:record:query')")
    //@PreAuthorize("@ss.hasPermi('system:record:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(serviceSubtaskRecordService.selectServiceSubtaskRecordById(id));
@@ -62,7 +62,7 @@
    /**
     * æ–°å¢žã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @PreAuthorize("@ss.hasPermi('system:record:add')")
    //@PreAuthorize("@ss.hasPermi('system:record:add')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody ServiceSubtaskRecord serviceSubtaskRecord) {
@@ -72,7 +72,7 @@
    /**
     * ä¿®æ”¹ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @PreAuthorize("@ss.hasPermi('system:record:edit')")
    //@PreAuthorize("@ss.hasPermi('system:record:edit')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ServiceSubtaskRecord serviceSubtaskRecord) {
@@ -82,7 +82,7 @@
    /**
     * åˆ é™¤ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @PreAuthorize("@ss.hasPermi('system:record:remove')")
    //@PreAuthorize("@ss.hasPermi('system:record:remove')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
@@ -58,7 +58,7 @@
     * æŸ¥è¯¢è¯­éŸ³ä»»åŠ¡åˆ—è¡¨
     */
    @ApiOperation("查询任务列表")
    @PreAuthorize("@ss.hasPermi('smartor:ServiceTask:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody ServiceTask serviceTask) {
        PageUtils.startPageByPost(serviceTask.getPageNum(), serviceTask.getPageSize());
@@ -99,7 +99,7 @@
     * å¯¼å‡ºä»»åŠ¡åˆ—è¡¨
     */
    @ApiOperation("导出任务列表")
    @PreAuthorize("@ss.hasPermi('smartor:ServiceTask:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:export')")
    @Log(title = "语音任务", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ServiceTask ServiceTask) {
@@ -112,7 +112,7 @@
     * èŽ·å–ä»»åŠ¡è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取任务详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:ServiceTask:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:query')")
    @GetMapping(value = "/{taskid}")
    public AjaxResult getInfo(@PathVariable("taskid") Long taskid) {
        return success(serviceTaskService.selectServiceTaskByTaskid(taskid));
@@ -122,7 +122,7 @@
     * æ–°å¢žä»»åŠ¡
     */
    @ApiOperation("新增任务")
    @PreAuthorize("@ss.hasPermi('smartor:ServiceTask:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:add')")
    @Log(title = "语音任务", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody ServiceTask ServiceTask) {
@@ -133,7 +133,7 @@
     * ä¿®æ”¹è¯­éŸ³ä»»åŠ¡
     */
    @ApiOperation("修改任务")
    @PreAuthorize("@ss.hasPermi('smartor:ServiceTask:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:edit')")
    @Log(title = "任务", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody ServiceTask ServiceTask) {
@@ -144,7 +144,7 @@
//     * åˆ é™¤è¯­éŸ³ä»»åŠ¡
//     */
//    @ApiOperation("删除任务")
//    @PreAuthorize("@ss.hasPermi('smartor:ServiceTask:remove')")
//    //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:remove')")
//    @Log(title = "语音任务", businessType = BusinessType.DELETE)
//    @GetMapping("/remove/{taskids}")
//    public AjaxResult remove(@PathVariable Long[] taskids) {
@@ -156,7 +156,7 @@
     * åˆ é™¤ä»»åŠ¡(包括它对应的患者信息)
     */
    @ApiOperation("删除任务(包括它对应的患者信息)")
    @PreAuthorize("@ss.hasPermi('smartor:ServiceTask:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:remove')")
    @Log(title = "语音任务", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{taskId}")
    public AjaxResult removeTask(@PathVariable("taskId") String taskId) {
@@ -179,8 +179,6 @@
        Long pid = null;
        log.info("getScriptInfoByCondition入参为:{}", serviceTaskScriptQues);
        try {
//            tid = Long.valueOf(rsaPublicKeyExample.decryptedData(URLDecoder.decode(serviceTaskScriptQues.getParam1(), "UTF-8"), pri_key));
//            pid = Long.valueOf(rsaPublicKeyExample.decryptedData(URLDecoder.decode(serviceTaskScriptQues.getParam2(), "UTF-8"), pri_key));
            tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam1(), pri_key));
            pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam2(), pri_key));
        } catch (Exception e) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsParamController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢çŸ­ä¿¡å‚数列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsparam:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsparam:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody SmsParam smsParam) {
        startPage();
@@ -48,7 +48,7 @@
    /**
     * å¯¼å‡ºçŸ­ä¿¡å‚数列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsparam:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsparam:export')")
    @Log(title = "短信参数", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SmsParam smsParam) {
@@ -60,7 +60,7 @@
    /**
     * èŽ·å–çŸ­ä¿¡å‚æ•°è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsparam:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsparam:query')")
    @GetMapping(value = "/{paramid}")
    public AjaxResult getInfo(@PathVariable("paramid") Long paramid) {
        return success(smsParamService.selectSmsParamByParamid(paramid));
@@ -69,7 +69,7 @@
    /**
     * æ–°å¢žçŸ­ä¿¡å‚æ•°
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsparam:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsparam:add')")
    @Log(title = "短信参数", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SmsParam smsParam) {
@@ -79,7 +79,7 @@
    /**
     * ä¿®æ”¹çŸ­ä¿¡å‚æ•°
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsparam:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsparam:edit')")
    @Log(title = "短信参数", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SmsParam smsParam) {
@@ -89,7 +89,7 @@
    /**
     * åˆ é™¤çŸ­ä¿¡å‚æ•°
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsparam:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsparam:remove')")
    @Log(title = "短信参数", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{paramids}")
    public AjaxResult remove(@PathVariable Long[] paramids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsRecordsController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢çŸ­ä¿¡è®°å½•列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsrecords:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsrecords:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody SmsRecords smsRecords) {
        startPage();
@@ -48,7 +48,7 @@
    /**
     * å¯¼å‡ºçŸ­ä¿¡è®°å½•列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsrecords:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsrecords:export')")
    @Log(title = "短信记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SmsRecords smsRecords) {
@@ -60,7 +60,7 @@
    /**
     * èŽ·å–çŸ­ä¿¡è®°å½•è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsrecords:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsrecords:query')")
    @GetMapping(value = "/{recordid}")
    public AjaxResult getInfo(@PathVariable("recordid") Long recordid) {
        return success(smsRecordsService.selectSmsRecordsByRecordid(recordid));
@@ -69,7 +69,7 @@
    /**
     * æ–°å¢žçŸ­ä¿¡è®°å½•
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsrecords:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsrecords:add')")
    @Log(title = "短信记录", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SmsRecords smsRecords) {
@@ -79,7 +79,7 @@
    /**
     * ä¿®æ”¹çŸ­ä¿¡è®°å½•
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsrecords:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsrecords:edit')")
    @Log(title = "短信记录", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SmsRecords smsRecords) {
@@ -89,7 +89,7 @@
    /**
     * åˆ é™¤çŸ­ä¿¡è®°å½•
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsrecords:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsrecords:remove')")
    @Log(title = "短信记录", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{recordids}")
    public AjaxResult remove(@PathVariable Long[] recordids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SmsTempletController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢çŸ­ä¿¡æ¨¡æ¿åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:smstemplet:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:smstemplet:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SmsTemplet smsTemplet)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºçŸ­ä¿¡æ¨¡æ¿åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:smstemplet:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:smstemplet:export')")
    @Log(title = "短信模板", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SmsTemplet smsTemplet)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–çŸ­ä¿¡æ¨¡æ¿è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:smstemplet:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:smstemplet:query')")
    @GetMapping(value = "/{templetid}")
    public AjaxResult getInfo(@PathVariable("templetid") Long templetid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žçŸ­ä¿¡æ¨¡æ¿
     */
    @PreAuthorize("@ss.hasPermi('smartor:smstemplet:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:smstemplet:add')")
    @Log(title = "短信模板", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SmsTemplet smsTemplet)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹çŸ­ä¿¡æ¨¡æ¿
     */
    @PreAuthorize("@ss.hasPermi('smartor:smstemplet:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:smstemplet:edit')")
    @Log(title = "短信模板", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SmsTemplet smsTemplet)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤çŸ­ä¿¡æ¨¡æ¿
     */
    @PreAuthorize("@ss.hasPermi('smartor:smstemplet:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:smstemplet:remove')")
    @Log(title = "短信模板", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{templetids}")
    public AjaxResult remove(@PathVariable Long[] templetids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyCategoryController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢é—®å·åˆ†ç±»åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svycategory:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:svycategory:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyCategory svyCategory) {
//        startPage();
@@ -48,7 +48,7 @@
    /**
     * å¯¼å‡ºé—®å·åˆ†ç±»åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svycategory:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:svycategory:export')")
    @Log(title = "问卷分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyCategory svyCategory) {
@@ -60,7 +60,7 @@
    /**
     * èŽ·å–é—®å·åˆ†ç±»ä¿¡æ¯é€šè¿‡åˆ†ç±»åç§°
     */
    // @PreAuthorize("@ss.hasPermi('smartor:svycategory:query')")
    // //@PreAuthorize("@ss.hasPermi('smartor:svycategory:query')")
    @ApiOperation("获取问卷分类详细信息(问卷类别)")
    @PostMapping(value = "/getInfo")
    public TableDataInfo getInfo(@RequestParam(required = false) String categoryname) {
@@ -70,7 +70,7 @@
    /**
     * æ–°å¢žé—®å·åˆ†ç±»
     */
    @PreAuthorize("@ss.hasPermi('smartor:svycategory:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:svycategory:add')")
    @Log(title = "问卷分类", businessType = BusinessType.INSERT)
    @ApiOperation("新增问卷分类")
    @PostMapping("/add")
@@ -81,7 +81,7 @@
    /**
     * æ–°å¢žé—®å·åˆ†ç±»æ ‘
     */
    @PreAuthorize("@ss.hasPermi('system:assort:add')")
    //@PreAuthorize("@ss.hasPermi('system:assort:add')")
    @Log(title = "问题话术分类库", businessType = BusinessType.INSERT)
    @ApiOperation("新增问卷分类树")
    @PostMapping("/addtree")
@@ -92,7 +92,7 @@
    /**
     * ä¿®æ”¹é—®å·åˆ†ç±»
     */
    @PreAuthorize("@ss.hasPermi('smartor:svycategory:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:svycategory:edit')")
    @Log(title = "问卷分类", businessType = BusinessType.UPDATE)
    @ApiOperation("修改问卷分类")
    @PostMapping("/edit")
@@ -103,7 +103,7 @@
    /**
     * åˆ é™¤é—®å·åˆ†ç±»
     */
    @PreAuthorize("@ss.hasPermi('smartor:svycategory:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:svycategory:remove')")
    @Log(title = "问卷分类", businessType = BusinessType.DELETE)
    @ApiOperation("删除问卷分类")
    @GetMapping("/remove/{ids}")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyFinishController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢é—®å·æœ€ç»ˆç»“果列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinish:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinish:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyFinish svyFinish)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºé—®å·æœ€ç»ˆç»“果列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinish:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinish:export')")
    @Log(title = "问卷最终结果", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyFinish svyFinish)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–é—®å·æœ€ç»ˆç»“æžœè¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinish:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinish:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žé—®å·æœ€ç»ˆç»“æžœ
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinish:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinish:add')")
    @Log(title = "问卷最终结果", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SvyFinish svyFinish)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹é—®å·æœ€ç»ˆç»“æžœ
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinish:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinish:edit')")
    @Log(title = "问卷最终结果", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyFinish svyFinish)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤é—®å·æœ€ç»ˆç»“æžœ
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinish:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinish:remove')")
    @Log(title = "问卷最终结果", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyFinishoptionController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢é—®å·æœ€ç»ˆç»“果选项详情列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinishoption:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinishoption:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyFinishoption svyFinishoption)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºé—®å·æœ€ç»ˆç»“果选项详情列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinishoption:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinishoption:export')")
    @Log(title = "问卷最终结果选项详情", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyFinishoption svyFinishoption)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–é—®å·æœ€ç»ˆç»“æžœé€‰é¡¹è¯¦æƒ…è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinishoption:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinishoption:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žé—®å·æœ€ç»ˆç»“果选项详情
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinishoption:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinishoption:add')")
    @Log(title = "问卷最终结果选项详情", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SvyFinishoption svyFinishoption)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹é—®å·æœ€ç»ˆç»“果选项详情
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinishoption:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinishoption:edit')")
    @Log(title = "问卷最终结果选项详情", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyFinishoption svyFinishoption)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤é—®å·æœ€ç»ˆç»“果选项详情
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinishoption:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinishoption:remove')")
    @Log(title = "问卷最终结果选项详情", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyFinishtopicController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢é—®å·è°ƒæŸ¥ç»“果详情列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinishtopic:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinishtopic:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyFinishtopic svyFinishtopic)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºé—®å·è°ƒæŸ¥ç»“果详情列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinishtopic:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinishtopic:export')")
    @Log(title = "问卷调查结果详情", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyFinishtopic svyFinishtopic)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–é—®å·è°ƒæŸ¥ç»“æžœè¯¦æƒ…è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinishtopic:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinishtopic:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žé—®å·è°ƒæŸ¥ç»“果详情
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinishtopic:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinishtopic:add')")
    @Log(title = "问卷调查结果详情", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SvyFinishtopic svyFinishtopic)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹é—®å·è°ƒæŸ¥ç»“果详情
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinishtopic:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinishtopic:edit')")
    @Log(title = "问卷调查结果详情", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyFinishtopic svyFinishtopic)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤é—®å·è°ƒæŸ¥ç»“果详情
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyfinishtopic:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyfinishtopic:remove')")
    @Log(title = "问卷调查结果详情", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibExceptionController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢é—®å·å¼‚常列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyexception:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyexception:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyLibException svyLibException)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºé—®å·å¼‚常列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyexception:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyexception:export')")
    @Log(title = "问卷异常", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyLibException svyLibException)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–é—®å·å¼‚å¸¸è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyexception:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyexception:query')")
    @GetMapping(value = "/{ecid}")
    public AjaxResult getInfo(@PathVariable("ecid") Long ecid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žé—®å·å¼‚常
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyexception:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyexception:add')")
    @Log(title = "问卷异常", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SvyLibException svyLibException)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹é—®å·å¼‚常
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyexception:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyexception:edit')")
    @Log(title = "问卷异常", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyLibException svyLibException)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤é—®å·å¼‚常
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyexception:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyexception:remove')")
    @Log(title = "问卷异常", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ecids}")
    public AjaxResult remove(@PathVariable Long[] ecids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibResultController.java
@@ -37,7 +37,7 @@
    /**
     * æŸ¥è¯¢é—®å·ç»“果列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyresult:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyresult:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyLibResult svyLibResult)
    {
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºé—®å·ç»“果列表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyresult:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyresult:export')")
    @Log(title = "问卷结果", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyLibResult svyLibResult)
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–é—®å·ç»“æžœè¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyresult:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyresult:query')")
    @GetMapping(value = "/{resultid}")
    public AjaxResult getInfo(@PathVariable("resultid") Long resultid)
    {
@@ -72,7 +72,7 @@
    /**
     * æ–°å¢žé—®å·ç»“æžœ
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyresult:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyresult:add')")
    @Log(title = "问卷结果", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SvyLibResult svyLibResult)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹é—®å·ç»“æžœ
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyresult:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyresult:edit')")
    @Log(title = "问卷结果", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyLibResult svyLibResult)
@@ -94,7 +94,7 @@
    /**
     * åˆ é™¤é—®å·ç»“æžœ
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyresult:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyresult:remove')")
    @Log(title = "问卷结果", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{resultids}")
    public AjaxResult remove(@PathVariable Long[] resultids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptCategoryController.java
@@ -37,7 +37,7 @@
     * æŸ¥è¯¢é—®å·é¢˜ç›®åˆ†ç±»åˆ—表
     */
    @ApiOperation("查询问卷题目分类列表")
    @PreAuthorize("@ss.hasPermi('smartor:category:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyLibScriptCategory svyLibScriptCategory) {
//        startPage();
@@ -48,7 +48,7 @@
    /**
     * å¯¼å‡ºé—®å·é¢˜ç›®åˆ†ç±»åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:category:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:export')")
    @Log(title = "问卷题目分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyLibScriptCategory svyLibScriptCategory) {
@@ -61,7 +61,7 @@
     * èŽ·å–é—®å·é¢˜ç›®åˆ†ç±»è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取问卷题目分类详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:category:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(svyLibScriptCategoryService.selectSvyLibScriptCategoryById(id));
@@ -70,7 +70,7 @@
//    /**
//     * æ–°å¢žé—®å·é¢˜ç›®åˆ†ç±»
//     */
//    @PreAuthorize("@ss.hasPermi('smartor:category:add')")
//    //@PreAuthorize("@ss.hasPermi('smartor:category:add')")
//    @Log(title = "问卷题目分类", businessType = BusinessType.INSERT)
//    @PostMapping("/add")
//    public AjaxResult add(@RequestBody SvyLibScriptCategory svyLibScriptCategory) {
@@ -80,7 +80,7 @@
    /**
     * ä¿®æ”¹é—®å·é¢˜ç›®åˆ†ç±»
     */
    @PreAuthorize("@ss.hasPermi('smartor:category:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:edit')")
    @Log(title = "问卷题目分类", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyLibScriptCategory svyLibScriptCategory) {
@@ -91,7 +91,7 @@
     * åˆ é™¤é—®å·é¢˜ç›®åˆ†ç±»
     */
    @ApiOperation("删除问卷题目分类")
    @PreAuthorize("@ss.hasPermi('smartor:category:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:remove')")
    @Log(title = "问卷题目分类", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable String ids) {
@@ -102,7 +102,7 @@
    /**
     * é—®å·é¢˜ç›®åˆ†ç±»æ ‘
     */
    @PreAuthorize("@ss.hasPermi('smartor:assort:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:add')")
    @Log(title = "问卷题目分类树", businessType = BusinessType.INSERT)
    @ApiOperation("问卷题目分类树")
    @PostMapping("/addtree")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptController.java
@@ -42,7 +42,7 @@
     * æŸ¥è¯¢é—®å·é¢˜ç›®åˆ—表
     */
    @ApiOperation("查询问卷题目列表")
    @PreAuthorize("@ss.hasPermi('smartor:svyScript:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyScript:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyLibScript svyLibScript) {
        PageUtils.startPageByPost(svyLibScript.getPageNum(), svyLibScript.getPageSize());
@@ -53,7 +53,7 @@
    /**
     * å¯¼å‡ºé—®å·é¢˜ç›®åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svyScript:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyScript:export')")
    @Log(title = "问卷题目", businessType = BusinessType.EXPORT)
    @ApiOperation("导出问卷题目列表")
    @PostMapping("/export")
@@ -67,7 +67,7 @@
//     * èŽ·å–é—®å·é¢˜ç›®è¯¦ç»†ä¿¡æ¯
//     */
//    @ApiOperation("获取问卷题目详细信息")
//    @PreAuthorize("@ss.hasPermi('smartor:svyScript:query')")
//    //@PreAuthorize("@ss.hasPermi('smartor:svyScript:query')")
//    @GetMapping(value = "/getInfo/{Scriptid}")
//    public AjaxResult getInfo(@PathVariable("Scriptid") Long Scriptid) {
//        return success(svyLibScriptService.selectSvyLibScriptByScriptid(Scriptid));
@@ -77,7 +77,7 @@
     * æ–°å¢žé—®å·é¢˜ç›®
     */
    @ApiOperation("新增问卷题目")
    @PreAuthorize("@ss.hasPermi('smartor:svyScript:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyScript:add')")
    @Log(title = "问卷题目", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SvyLibScript svyLibScript) {
@@ -88,7 +88,7 @@
     * æ–°å¢žæˆ–修改问卷详情信息
     */
    @ApiOperation("新增或修改问卷详情信息")
    @PreAuthorize("@ss.hasPermi('system:script:list')")
    //@PreAuthorize("@ss.hasPermi('system:script:list')")
    @PostMapping("/saveOrUpdateScript")
    public AjaxResult saveOrUpdateScript(@RequestBody SvyLibScript svyLibScript) {
        if (ObjectUtils.isEmpty(svyLibScript)) {
@@ -101,7 +101,7 @@
     * ä¿®æ”¹é—®å·é¢˜ç›®
     */
    @ApiOperation("修改问卷题目")
    @PreAuthorize("@ss.hasPermi('smartor:svyScript:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyScript:edit')")
    @Log(title = "问卷题目", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyLibScript svyLibScript) {
@@ -112,7 +112,7 @@
     * åˆ é™¤é—®å·é¢˜ç›®
     */
    @ApiOperation("删除问卷题目")
    @PreAuthorize("@ss.hasPermi('smartor:svyScript:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyScript:remove')")
    @Log(title = "问卷题目", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{scriptids}")
    public AjaxResult remove(@PathVariable Long[] scriptids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptOptionController.java
@@ -35,7 +35,7 @@
    /**
     * æŸ¥è¯¢é—®å·é—®é¢˜é€‰é¡¹åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svytopicoption:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:svytopicoption:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyLibScriptOption svyLibTopicoption)
    {
@@ -47,7 +47,7 @@
    /**
     * å¯¼å‡ºé—®å·é—®é¢˜é€‰é¡¹åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:svytopicoption:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:svytopicoption:export')")
    @Log(title = "问卷问题选项", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyLibScriptOption svyLibTopicoption)
@@ -60,7 +60,7 @@
    /**
     * èŽ·å–é—®å·é—®é¢˜é€‰é¡¹è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:svytopicoption:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:svytopicoption:query')")
    @GetMapping(value = "/{optionid}")
    public AjaxResult getInfo(@PathVariable("optionid") Long optionid)
    {
@@ -70,7 +70,7 @@
    /**
     * æ–°å¢žé—®å·é—®é¢˜é€‰é¡¹
     */
    @PreAuthorize("@ss.hasPermi('smartor:svytopicoption:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:svytopicoption:add')")
    @Log(title = "问卷问题选项", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SvyLibScriptOption svyLibTopicoption)
@@ -81,7 +81,7 @@
    /**
     * ä¿®æ”¹é—®å·é—®é¢˜é€‰é¡¹
     */
    @PreAuthorize("@ss.hasPermi('smartor:svytopicoption:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:svytopicoption:edit')")
    @Log(title = "问卷问题选项", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyLibScriptOption svyLibTopicoption)
@@ -92,7 +92,7 @@
    /**
     * åˆ é™¤é—®å·é—®é¢˜é€‰é¡¹
     */
    @PreAuthorize("@ss.hasPermi('smartor:svytopicoption:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:svytopicoption:remove')")
    @Log(title = "问卷问题选项", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{optionids}")
    public AjaxResult remove(@PathVariable Long[] optionids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibScriptTagController.java
@@ -31,7 +31,7 @@
    /**
     * æŸ¥è¯¢é—®é¢˜è¯æœ¯æ ‡ç­¾åº“列表
     */
    @PreAuthorize("@ss.hasPermi('system:tag:list')")
    //@PreAuthorize("@ss.hasPermi('system:tag:list')")
    @GetMapping("/list")
    public TableDataInfo list(SvyLibScriptTag svyLibScriptTag)
    {
@@ -43,7 +43,7 @@
    /**
     * å¯¼å‡ºé—®é¢˜è¯æœ¯æ ‡ç­¾åº“列表
     */
    @PreAuthorize("@ss.hasPermi('system:tag:export')")
    //@PreAuthorize("@ss.hasPermi('system:tag:export')")
    @Log(title = "问题话术标签库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyLibScriptTag svyLibScriptTag)
@@ -56,7 +56,7 @@
    /**
     * èŽ·å–é—®é¢˜è¯æœ¯æ ‡ç­¾åº“è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:tag:query')")
    //@PreAuthorize("@ss.hasPermi('system:tag:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -66,7 +66,7 @@
    /**
     * æ–°å¢žé—®é¢˜è¯æœ¯æ ‡ç­¾åº“
     */
    @PreAuthorize("@ss.hasPermi('system:tag:add')")
    //@PreAuthorize("@ss.hasPermi('system:tag:add')")
    @Log(title = "问题话术标签库", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SvyLibScriptTag svyLibScriptTag)
@@ -77,7 +77,7 @@
    /**
     * ä¿®æ”¹é—®é¢˜è¯æœ¯æ ‡ç­¾åº“
     */
    @PreAuthorize("@ss.hasPermi('system:tag:edit')")
    //@PreAuthorize("@ss.hasPermi('system:tag:edit')")
    @Log(title = "问题话术标签库", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SvyLibScriptTag svyLibScriptTag)
@@ -88,7 +88,7 @@
    /**
     * åˆ é™¤é—®é¢˜è¯æœ¯æ ‡ç­¾åº“
     */
    @PreAuthorize("@ss.hasPermi('system:tag:remove')")
    //@PreAuthorize("@ss.hasPermi('system:tag:remove')")
    @Log(title = "问题话术标签库", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateCategoryController.java
@@ -35,7 +35,7 @@
     * æŸ¥è¯¢é—®å·æ¨¡æ¿åˆ†ç±»åˆ—表
     */
    @ApiOperation("查询问卷模板分类列表")
    @PreAuthorize("@ss.hasPermi('smartor:category:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyLibTemplateCategory svyLibTemplateCategory) {
        List<SvyLibTemplateCategoryVO> list = svyLibTemplateCategoryService.selectSvyLibTemplateCategoryList(svyLibTemplateCategory);
@@ -45,7 +45,7 @@
    /**
     * å¯¼å‡ºé—®å·æ¨¡æ¿åˆ†ç±»åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:category:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:export')")
    @Log(title = "问卷模板分类", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyLibTemplateCategory svyLibTemplateCategory) {
@@ -58,7 +58,7 @@
     * èŽ·å–é—®å·æ¨¡æ¿åˆ†ç±»è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取问卷模板分类详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:category:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(svyLibTemplateCategoryService.selectSvyLibTemplateCategoryById(id));
@@ -68,7 +68,7 @@
//     * æ–°å¢žé—®å·æ¨¡æ¿åˆ†ç±»
//     */
//    @ApiOperation("新增问卷模板分类")
//    @PreAuthorize("@ss.hasPermi('smartor:category:add')")
//    //@PreAuthorize("@ss.hasPermi('smartor:category:add')")
//    @Log(Template = "问卷模板分类", businessType = BusinessType.INSERT)
//    @PostMapping("/add")
//    public AjaxResult add(@RequestBody SvyLibTemplateCategory svyLibTemplateCategory) {
@@ -79,7 +79,7 @@
     * ä¿®æ”¹é—®å·æ¨¡æ¿åˆ†ç±»
     */
    @ApiOperation("修改问卷模板分类")
    @PreAuthorize("@ss.hasPermi('smartor:category:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:edit')")
    @Log(title = "问卷模板分类", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyLibTemplateCategory svyLibTemplateCategory) {
@@ -90,7 +90,7 @@
     * åˆ é™¤é—®å·æ¨¡æ¿åˆ†ç±»
     */
    @ApiOperation("删除问卷模板分类")
    @PreAuthorize("@ss.hasPermi('smartor:category:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:category:remove')")
    @Log(title = "问卷模板分类", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
@@ -101,7 +101,7 @@
    /**
     * é—®å·æ¨¡æ¿åˆ†ç±»æ ‘
     */
    @PreAuthorize("@ss.hasPermi('smartor:assort:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:assort:add')")
    @Log(title = "问卷模板分类树", businessType = BusinessType.INSERT)
    @ApiOperation("问卷模板分类树")
    @PostMapping("/addtree")
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateController.java
@@ -77,7 +77,7 @@
//     * èŽ·å–é—®å·è¯¦ç»†ä¿¡æ¯(单表)
//     */
//    @ApiOperation("获取问卷详细信息")
//    @PreAuthorize("@ss.hasPermi('smartor:svyTemplate:query')")
//    //@PreAuthorize("@ss.hasPermi('smartor:svyTemplate:query')")
//    @GetMapping(value = "/{svyid}")
//    public AjaxResult getInfo(@PathVariable("svyid") Long svyid) {
//        return success(svyLibTemplateService.selectSvyLibTemplateBySvyid(svyid));
@@ -96,7 +96,7 @@
     * æ–°å¢žæˆ–修改问卷模板信息
     */
    @ApiOperation("新增或修改问卷模板信息")
    @PreAuthorize("@ss.hasPermi('system:script:list')")
    //@PreAuthorize("@ss.hasPermi('system:script:list')")
    @PostMapping("/saveOrUpdateTemplate")
    public AjaxResult saveOrUpdateTemplate(@RequestBody SvyLibTemplateVO svyLibTemplateVO) {
        if (ObjectUtils.isEmpty(svyLibTemplateVO)) {
@@ -109,7 +109,7 @@
     * ä¿®æ”¹é—®å·
     */
    @ApiOperation("修改问卷")
    @PreAuthorize("@ss.hasPermi('smartor:svyTemplate:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyTemplate:edit')")
    @Log(title = "问卷", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyLibTemplate svyLibTemplate) {
@@ -120,7 +120,7 @@
     * åˆ é™¤é—®å·
     */
    @ApiOperation("删除问卷")
    @PreAuthorize("@ss.hasPermi('smartor:svyTemplate:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyTemplate:remove')")
    @Log(title = "问卷", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{svyids}")
    public AjaxResult remove(@PathVariable Long[] svyids) {
@@ -131,7 +131,7 @@
     * å‘送短信
     */
    @ApiOperation("发送短信")
    @PreAuthorize("@ss.hasPermi('smartor:svyTemplate:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:svyTemplate:remove')")
    @Log(title = "问卷", businessType = BusinessType.DELETE)
    @PostMapping("/sendMessage")
    public AjaxResult sendMessage(@PathVariable Long[] svyids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateScriptController.java
@@ -31,7 +31,7 @@
    /**
     * æŸ¥è¯¢æ¨¡æ¿é—®å·é¢˜ç›®åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:script:list')")
    //@PreAuthorize("@ss.hasPermi('system:script:list')")
    @GetMapping("/list")
    public TableDataInfo list(SvyLibTemplateScript svyLibTemplateScript)
    {
@@ -43,7 +43,7 @@
    /**
     * å¯¼å‡ºæ¨¡æ¿é—®å·é¢˜ç›®åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:script:export')")
    //@PreAuthorize("@ss.hasPermi('system:script:export')")
    @Log(title = "模板问卷题目", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyLibTemplateScript svyLibTemplateScript)
@@ -56,7 +56,7 @@
    /**
     * èŽ·å–æ¨¡æ¿é—®å·é¢˜ç›®è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:script:query')")
    //@PreAuthorize("@ss.hasPermi('system:script:query')")
    @GetMapping(value = "/{topicid}")
    public AjaxResult getInfo(@PathVariable("topicid") Long topicid)
    {
@@ -66,7 +66,7 @@
    /**
     * æ–°å¢žæ¨¡æ¿é—®å·é¢˜ç›®
     */
    @PreAuthorize("@ss.hasPermi('system:script:add')")
    //@PreAuthorize("@ss.hasPermi('system:script:add')")
    @Log(title = "模板问卷题目", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SvyLibTemplateScript svyLibTemplateScript)
@@ -77,7 +77,7 @@
    /**
     * ä¿®æ”¹æ¨¡æ¿é—®å·é¢˜ç›®
     */
    @PreAuthorize("@ss.hasPermi('system:script:edit')")
    //@PreAuthorize("@ss.hasPermi('system:script:edit')")
    @Log(title = "模板问卷题目", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SvyLibTemplateScript svyLibTemplateScript)
@@ -88,7 +88,7 @@
    /**
     * åˆ é™¤æ¨¡æ¿é—®å·é¢˜ç›®
     */
    @PreAuthorize("@ss.hasPermi('system:script:remove')")
    //@PreAuthorize("@ss.hasPermi('system:script:remove')")
    @Log(title = "模板问卷题目", businessType = BusinessType.DELETE)
    @DeleteMapping("/{topicids}")
    public AjaxResult remove(@PathVariable Long[] topicids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateScriptWjxController.java
@@ -31,7 +31,7 @@
    /**
     * æŸ¥è¯¢æ¨¡æ¿é—®å·é¢˜ç›®åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:list')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:list')")
    @GetMapping("/list")
    public TableDataInfo list(SvyLibTemplateScriptWjx svyLibTemplateScriptWjx)
    {
@@ -43,7 +43,7 @@
    /**
     * å¯¼å‡ºæ¨¡æ¿é—®å·é¢˜ç›®åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:export')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:export')")
    @Log(title = "模板问卷题目", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyLibTemplateScriptWjx svyLibTemplateScriptWjx)
@@ -56,7 +56,7 @@
    /**
     * èŽ·å–æ¨¡æ¿é—®å·é¢˜ç›®è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:query')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -66,7 +66,7 @@
    /**
     * æ–°å¢žæ¨¡æ¿é—®å·é¢˜ç›®
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:add')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:add')")
    @Log(title = "模板问卷题目", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SvyLibTemplateScriptWjx svyLibTemplateScriptWjx)
@@ -77,7 +77,7 @@
    /**
     * ä¿®æ”¹æ¨¡æ¿é—®å·é¢˜ç›®
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:edit')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:edit')")
    @Log(title = "模板问卷题目", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SvyLibTemplateScriptWjx svyLibTemplateScriptWjx)
@@ -88,7 +88,7 @@
    /**
     * åˆ é™¤æ¨¡æ¿é—®å·é¢˜ç›®
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:remove')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:remove')")
    @Log(title = "模板问卷题目", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTagController.java
@@ -31,7 +31,7 @@
    /**
     * æŸ¥è¯¢æ¨¡æ¿æ ‡ç­¾åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:tag:list')")
    //@PreAuthorize("@ss.hasPermi('system:tag:list')")
    @GetMapping("/list")
    public TableDataInfo list(SvyLibTemplateTag svyLibTemplateTag)
    {
@@ -43,7 +43,7 @@
    /**
     * å¯¼å‡ºæ¨¡æ¿æ ‡ç­¾åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:tag:export')")
    //@PreAuthorize("@ss.hasPermi('system:tag:export')")
    @Log(title = "模板标签", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyLibTemplateTag svyLibTemplateTag)
@@ -56,7 +56,7 @@
    /**
     * èŽ·å–æ¨¡æ¿æ ‡ç­¾è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:tag:query')")
    //@PreAuthorize("@ss.hasPermi('system:tag:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -66,7 +66,7 @@
    /**
     * æ–°å¢žæ¨¡æ¿æ ‡ç­¾
     */
    @PreAuthorize("@ss.hasPermi('system:tag:add')")
    //@PreAuthorize("@ss.hasPermi('system:tag:add')")
    @Log(title = "模板标签", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SvyLibTemplateTag svyLibTemplateTag)
@@ -77,7 +77,7 @@
    /**
     * ä¿®æ”¹æ¨¡æ¿æ ‡ç­¾
     */
    @PreAuthorize("@ss.hasPermi('system:tag:edit')")
    //@PreAuthorize("@ss.hasPermi('system:tag:edit')")
    @Log(title = "模板标签", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SvyLibTemplateTag svyLibTemplateTag)
@@ -88,7 +88,7 @@
    /**
     * åˆ é™¤æ¨¡æ¿æ ‡ç­¾
     */
    @PreAuthorize("@ss.hasPermi('system:tag:remove')")
    //@PreAuthorize("@ss.hasPermi('system:tag:remove')")
    @Log(title = "模板标签", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTargetoptionController.java
@@ -31,7 +31,7 @@
    /**
     * æŸ¥è¯¢é—®å·é—®é¢˜æŒ‡æ ‡é€‰é¡¹åº“列表
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:list')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:list')")
    @GetMapping("/list")
    public TableDataInfo list(SvyLibTemplateTargetoption svyLibTemplateTargetoption)
    {
@@ -43,7 +43,7 @@
    /**
     * å¯¼å‡ºé—®å·é—®é¢˜æŒ‡æ ‡é€‰é¡¹åº“列表
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:export')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:export')")
    @Log(title = "问卷问题指标选项库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyLibTemplateTargetoption svyLibTemplateTargetoption)
@@ -56,7 +56,7 @@
    /**
     * èŽ·å–é—®å·é—®é¢˜æŒ‡æ ‡é€‰é¡¹åº“è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:query')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -66,7 +66,7 @@
    /**
     * æ–°å¢žé—®å·é—®é¢˜æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:add')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:add')")
    @Log(title = "问卷问题指标选项库", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SvyLibTemplateTargetoption svyLibTemplateTargetoption)
@@ -77,7 +77,7 @@
    /**
     * ä¿®æ”¹é—®å·é—®é¢˜æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:edit')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:edit')")
    @Log(title = "问卷问题指标选项库", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SvyLibTemplateTargetoption svyLibTemplateTargetoption)
@@ -88,7 +88,7 @@
    /**
     * åˆ é™¤é—®å·é—®é¢˜æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    @Log(title = "问卷问题指标选项库", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateTargetoptionWjxController.java
@@ -31,7 +31,7 @@
    /**
     * æŸ¥è¯¢é—®å·é—®é¢˜æŒ‡æ ‡é€‰é¡¹åº“列表
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:list')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:list')")
    @GetMapping("/list")
    public TableDataInfo list(SvyLibTemplateTargetoptionWjx svyLibTemplateTargetoptionWjx)
    {
@@ -43,7 +43,7 @@
    /**
     * å¯¼å‡ºé—®å·é—®é¢˜æŒ‡æ ‡é€‰é¡¹åº“列表
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:export')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:export')")
    @Log(title = "问卷问题指标选项库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyLibTemplateTargetoptionWjx svyLibTemplateTargetoptionWjx)
@@ -56,7 +56,7 @@
    /**
     * èŽ·å–é—®å·é—®é¢˜æŒ‡æ ‡é€‰é¡¹åº“è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:query')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -66,7 +66,7 @@
    /**
     * æ–°å¢žé—®å·é—®é¢˜æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:add')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:add')")
    @Log(title = "问卷问题指标选项库", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SvyLibTemplateTargetoptionWjx svyLibTemplateTargetoptionWjx)
@@ -77,7 +77,7 @@
    /**
     * ä¿®æ”¹é—®å·é—®é¢˜æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:edit')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:edit')")
    @Log(title = "问卷问题指标选项库", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SvyLibTemplateTargetoptionWjx svyLibTemplateTargetoptionWjx)
@@ -88,7 +88,7 @@
    /**
     * åˆ é™¤é—®å·é—®é¢˜æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:remove')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:remove')")
    @Log(title = "问卷问题指标选项库", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyLibTemplateWjxController.java
@@ -31,7 +31,7 @@
    /**
     * æŸ¥è¯¢æ¨¡æ¿é—®å·åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:list')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:list')")
    @GetMapping("/list")
    public TableDataInfo list(SvyLibTemplateWjx svyLibTemplateWjx)
    {
@@ -43,7 +43,7 @@
    /**
     * å¯¼å‡ºæ¨¡æ¿é—®å·åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:export')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:export')")
    @Log(title = "模板问卷", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyLibTemplateWjx svyLibTemplateWjx)
@@ -56,7 +56,7 @@
    /**
     * èŽ·å–æ¨¡æ¿é—®å·è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:query')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:query')")
    @GetMapping(value = "/{svyid}")
    public AjaxResult getInfo(@PathVariable("svyid") Long svyid)
    {
@@ -66,7 +66,7 @@
    /**
     * æ–°å¢žæ¨¡æ¿é—®å·
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:add')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:add')")
    @Log(title = "模板问卷", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SvyLibTemplateWjx svyLibTemplateWjx)
@@ -77,7 +77,7 @@
    /**
     * ä¿®æ”¹æ¨¡æ¿é—®å·
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:edit')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:edit')")
    @Log(title = "模板问卷", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SvyLibTemplateWjx svyLibTemplateWjx)
@@ -88,7 +88,7 @@
    /**
     * åˆ é™¤æ¨¡æ¿é—®å·
     */
    @PreAuthorize("@ss.hasPermi('system:wjx:remove')")
    //@PreAuthorize("@ss.hasPermi('system:wjx:remove')")
    @Log(title = "模板问卷", businessType = BusinessType.DELETE)
    @DeleteMapping("/{svyids}")
    public AjaxResult remove(@PathVariable Long[] svyids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskAnswerController.java
@@ -30,7 +30,7 @@
    /**
     * æŸ¥è¯¢ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:answer:list')")
    //@PreAuthorize("@ss.hasPermi('system:answer:list')")
    @GetMapping("/list")
    public TableDataInfo list(SvyTaskAnswer svyTaskAnswer) {
        startPage();
@@ -41,7 +41,7 @@
    /**
     * å¯¼å‡ºä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:answer:export')")
    //@PreAuthorize("@ss.hasPermi('system:answer:export')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyTaskAnswer svyTaskAnswer) {
@@ -53,7 +53,7 @@
    /**
     * èŽ·å–ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:answer:query')")
    //@PreAuthorize("@ss.hasPermi('system:answer:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(svyTaskAnswerService.selectSvyTaskAnswerById(id));
@@ -62,7 +62,7 @@
    /**
     * æ–°å¢žä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹
     */
    @PreAuthorize("@ss.hasPermi('system:answer:add')")
    //@PreAuthorize("@ss.hasPermi('system:answer:add')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SvyTaskAnswer svyTaskAnswer) {
@@ -72,7 +72,7 @@
    /**
     * ä¿®æ”¹ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹
     */
    @PreAuthorize("@ss.hasPermi('system:answer:edit')")
    //@PreAuthorize("@ss.hasPermi('system:answer:edit')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SvyTaskAnswer svyTaskAnswer) {
@@ -82,7 +82,7 @@
    /**
     * åˆ é™¤ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹
     */
    @PreAuthorize("@ss.hasPermi('system:answer:remove')")
    //@PreAuthorize("@ss.hasPermi('system:answer:remove')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskController.java
@@ -59,7 +59,7 @@
     * æŸ¥è¯¢é—®å·ä»»åŠ¡ï¼ˆä»»åŠ¡ï¼‰åˆ—è¡¨
     */
    @ApiOperation("查询问卷任务(任务)列表")
    @PreAuthorize("@ss.hasPermi('system:task:list')")
    //@PreAuthorize("@ss.hasPermi('system:task:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyTask svyTask) {
        PageUtils.startPageByPost(svyTask.getPageNum(), svyTask.getPageSize());
@@ -101,7 +101,7 @@
     * å¯¼å‡ºé—®å·ä»»åŠ¡ï¼ˆä»»åŠ¡ï¼‰åˆ—è¡¨
     */
    @ApiOperation("导出问卷任务(任务)列表")
    @PreAuthorize("@ss.hasPermi('system:task:export')")
    //@PreAuthorize("@ss.hasPermi('system:task:export')")
    @Log(title = "综合问卷任务(任务)", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyTask svyTask) {
@@ -114,7 +114,7 @@
     * èŽ·å–é—®å·ä»»åŠ¡ï¼ˆä»»åŠ¡ï¼‰è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取问卷任务(任务)详细信息")
    @PreAuthorize("@ss.hasPermi('system:task:query')")
    //@PreAuthorize("@ss.hasPermi('system:task:query')")
    @GetMapping(value = "/{taskid}")
    public AjaxResult getInfo(@PathVariable("taskid") Long taskid) {
        return success(svyTaskService.selectSvyTaskByTaskid(taskid));
@@ -124,7 +124,7 @@
     * æ–°å¢žé—®å·ä»»åŠ¡ï¼ˆä»»åŠ¡ï¼‰
     */
    @ApiOperation("新增问卷任务(任务)")
    @PreAuthorize("@ss.hasPermi('system:task:add')")
    //@PreAuthorize("@ss.hasPermi('system:task:add')")
    @Log(title = "综合问卷任务(任务)", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SvyTask svyTask) {
@@ -135,7 +135,7 @@
     * ä¿®æ”¹é—®å·ä»»åŠ¡ï¼ˆä»»åŠ¡ï¼‰
     */
    @ApiOperation("修改问卷任务(任务)")
    @PreAuthorize("@ss.hasPermi('system:task:edit')")
    //@PreAuthorize("@ss.hasPermi('system:task:edit')")
    @Log(title = "综合问卷任务(任务)", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyTask svyTask) {
@@ -146,7 +146,7 @@
     * åˆ é™¤é—®å·ä»»åŠ¡ï¼ˆä»»åŠ¡ï¼‰
     */
    @ApiOperation("删除问卷任务(任务)")
    @PreAuthorize("@ss.hasPermi('system:task:remove')")
    //@PreAuthorize("@ss.hasPermi('system:task:remove')")
    @Log(title = "问卷任务(任务)", businessType = BusinessType.DELETE)
    @GetMapping("/{taskids}")
    public AjaxResult remove(@PathVariable Long[] taskids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptController.java
@@ -34,7 +34,7 @@
     * æŸ¥è¯¢ä»»åŠ¡é—®å·é¢˜ç›®åˆ—è¡¨
     */
    @ApiOperation("查询任务问卷题目列表")
    @PreAuthorize("@ss.hasPermi('system:script:list')")
    //@PreAuthorize("@ss.hasPermi('system:script:list')")
    @GetMapping("/list")
    public TableDataInfo list(SvyTaskScript svyTaskScript) {
        startPage();
@@ -46,7 +46,7 @@
     * å¯¼å‡ºä»»åŠ¡é—®å·é¢˜ç›®åˆ—è¡¨
     */
    @ApiOperation("导出任务问卷题目列表")
    @PreAuthorize("@ss.hasPermi('system:script:export')")
    //@PreAuthorize("@ss.hasPermi('system:script:export')")
    @Log(title = "任务问卷题目", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyTaskScript svyTaskScript) {
@@ -59,7 +59,7 @@
     * èŽ·å–ä»»åŠ¡é—®å·é¢˜ç›®è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取任务问卷题目详细信息")
    @PreAuthorize("@ss.hasPermi('system:script:query')")
    //@PreAuthorize("@ss.hasPermi('system:script:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(svyTaskScriptService.selectSvyTaskScriptById(id));
@@ -69,7 +69,7 @@
     * æ–°å¢žä»»åŠ¡é—®å·é¢˜ç›®
     */
    @ApiOperation("新增任务问卷题目")
    @PreAuthorize("@ss.hasPermi('system:script:add')")
    //@PreAuthorize("@ss.hasPermi('system:script:add')")
    @Log(title = "任务问卷题目", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SvyTaskScript svyTaskScript) {
@@ -80,7 +80,7 @@
     * ä¿®æ”¹ä»»åŠ¡é—®å·é¢˜ç›®
     */
    @ApiOperation("修改任务问卷题目")
    @PreAuthorize("@ss.hasPermi('system:script:edit')")
    //@PreAuthorize("@ss.hasPermi('system:script:edit')")
    @Log(title = "任务问卷题目", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyTaskScript svyTaskScript) {
@@ -91,7 +91,7 @@
     * åˆ é™¤ä»»åŠ¡é—®å·é¢˜ç›®
     */
    @ApiOperation("导出综合问卷任务(任务)列表")
    @PreAuthorize("@ss.hasPermi('system:script:remove')")
    //@PreAuthorize("@ss.hasPermi('system:script:remove')")
    @Log(title = "任务问卷题目", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskScriptoptionController.java
@@ -31,7 +31,7 @@
    /**
     * æŸ¥è¯¢ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:scriptoption:list')")
    //@PreAuthorize("@ss.hasPermi('system:scriptoption:list')")
    @GetMapping("/list")
    public TableDataInfo list(SvyTaskScriptoption svyTaskScriptoption)
    {
@@ -43,7 +43,7 @@
    /**
     * å¯¼å‡ºä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:scriptoption:export')")
    //@PreAuthorize("@ss.hasPermi('system:scriptoption:export')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyTaskScriptoption svyTaskScriptoption)
@@ -56,7 +56,7 @@
    /**
     * èŽ·å–ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:scriptoption:query')")
    //@PreAuthorize("@ss.hasPermi('system:scriptoption:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -66,7 +66,7 @@
    /**
     * æ–°å¢žä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹
     */
    @PreAuthorize("@ss.hasPermi('system:scriptoption:add')")
    //@PreAuthorize("@ss.hasPermi('system:scriptoption:add')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SvyTaskScriptoption svyTaskScriptoption)
@@ -77,7 +77,7 @@
    /**
     * ä¿®æ”¹ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹
     */
    @PreAuthorize("@ss.hasPermi('system:scriptoption:edit')")
    //@PreAuthorize("@ss.hasPermi('system:scriptoption:edit')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SvyTaskScriptoption svyTaskScriptoption)
@@ -88,7 +88,7 @@
    /**
     * åˆ é™¤ä»»åŠ¡é—®å·é—®é¢˜é€‰é¡¹
     */
    @PreAuthorize("@ss.hasPermi('system:scriptoption:remove')")
    //@PreAuthorize("@ss.hasPermi('system:scriptoption:remove')")
    @Log(title = "任务问卷问题选项", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskSingleController.java
@@ -37,7 +37,7 @@
     * æ–°å¢žæˆ–修改删除问卷任务
     */
    @ApiOperation("新增或修改删除问卷任务")
    @PreAuthorize("@ss.hasPermi('system:task:add')")
    //@PreAuthorize("@ss.hasPermi('system:task:add')")
    @PostMapping("/insertOrUpdateSvyTask")
    public AjaxResult insertOrUpdateSvyTask(@RequestBody SvyTaskVO svyTaskVO) {
        LoginUser loginUser = getLoginUser();
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateController.java
@@ -35,7 +35,7 @@
    /**
     * æŸ¥è¯¢ä»»åŠ¡é—®å·æ¨¡æ¿åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:template:list')")
    //@PreAuthorize("@ss.hasPermi('system:template:list')")
    @ApiOperation("查询任务问卷模板列表")
    @GetMapping("/list")
    public TableDataInfo list(SvyTaskTemplate svyTaskTemplate) {
@@ -48,7 +48,7 @@
     * å¯¼å‡ºä»»åŠ¡é—®å·æ¨¡æ¿åˆ—è¡¨
     */
    @ApiOperation("导出任务问卷模板列表")
    @PreAuthorize("@ss.hasPermi('system:template:export')")
    //@PreAuthorize("@ss.hasPermi('system:template:export')")
    @Log(title = "任务问卷模板", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyTaskTemplate svyTaskTemplate) {
@@ -61,7 +61,7 @@
     * èŽ·å–ä»»åŠ¡é—®å·æ¨¡æ¿è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取任务问卷模板详细信息")
    @PreAuthorize("@ss.hasPermi('system:template:query')")
    //@PreAuthorize("@ss.hasPermi('system:template:query')")
    @GetMapping(value = "/{svyid}")
    public AjaxResult getInfo(@PathVariable("svyid") Long svyid) {
        return success(svyTaskTemplateService.selectSvyTaskTemplateBySvyid(svyid));
@@ -71,7 +71,7 @@
     * æ–°å¢žä»»åŠ¡é—®å·æ¨¡æ¿
     */
    @ApiOperation("新增任务问卷模板")
    @PreAuthorize("@ss.hasPermi('system:template:add')")
    //@PreAuthorize("@ss.hasPermi('system:template:add')")
    @Log(title = "任务问卷模板", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SvyTaskTemplate svyTaskTemplate) {
@@ -82,7 +82,7 @@
     * ä¿®æ”¹ä»»åŠ¡é—®å·æ¨¡æ¿
     */
    @ApiOperation("修改任务问卷模板")
    @PreAuthorize("@ss.hasPermi('system:template:edit')")
    //@PreAuthorize("@ss.hasPermi('system:template:edit')")
    @Log(title = "任务问卷模板", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyTaskTemplate svyTaskTemplate) {
@@ -93,7 +93,7 @@
     * åˆ é™¤ä»»åŠ¡é—®å·æ¨¡æ¿
     */
    @ApiOperation("删除任务问卷模板")
    @PreAuthorize("@ss.hasPermi('system:template:remove')")
    //@PreAuthorize("@ss.hasPermi('system:template:remove')")
    @Log(title = "任务问卷模板", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{svyids}")
    public AjaxResult remove(@PathVariable Long[] svyids) {
@@ -103,7 +103,7 @@
    /**
     * æ–°å¢žæˆ–修改随访任务问卷模板库
     */
    @PreAuthorize("@ss.hasPermi('system:template:add')")
    //@PreAuthorize("@ss.hasPermi('system:template:add')")
    @ApiOperation("新增或修改随访任务问卷模板库")
    @PostMapping("/saveOrUpdateTaskTemp")
    public AjaxResult saveOrUpdateTaskTemp(@RequestBody SvyTaskTemplateVO svyTaskTemplateVO) {
@@ -116,7 +116,7 @@
     * @param svyTaskTemplateVO
     * @return
     */
    @PreAuthorize("@ss.hasPermi('system:template:add')")
    //@PreAuthorize("@ss.hasPermi('system:template:add')")
    @ApiOperation("查询模板详情根据条件")
    @PostMapping("/selectInfoByCondition")
    public AjaxResult selectInfoByCondition(@RequestBody SvyTaskTemplateVO svyTaskTemplateVO) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateScriptController.java
@@ -31,7 +31,7 @@
    /**
     * æŸ¥è¯¢é—®å·ä»»åŠ¡æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:script:list')")
    //@PreAuthorize("@ss.hasPermi('system:script:list')")
    @GetMapping("/list")
    public TableDataInfo list(SvyTaskTemplateScript svyTaskTemplateScript)
    {
@@ -43,7 +43,7 @@
    /**
     * å¯¼å‡ºé—®å·ä»»åŠ¡æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:script:export')")
    //@PreAuthorize("@ss.hasPermi('system:script:export')")
    @Log(title = "问卷任务模版问题话术库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyTaskTemplateScript svyTaskTemplateScript)
@@ -56,7 +56,7 @@
    /**
     * èŽ·å–é—®å·ä»»åŠ¡æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:script:query')")
    //@PreAuthorize("@ss.hasPermi('system:script:query')")
    @GetMapping(value = "/{ID}")
    public AjaxResult getInfo(@PathVariable("ID") Long ID)
    {
@@ -66,7 +66,7 @@
    /**
     * æ–°å¢žé—®å·ä»»åŠ¡æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“
     */
    @PreAuthorize("@ss.hasPermi('system:script:add')")
    //@PreAuthorize("@ss.hasPermi('system:script:add')")
    @Log(title = "问卷任务模版问题话术库", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SvyTaskTemplateScript svyTaskTemplateScript)
@@ -77,7 +77,7 @@
    /**
     * ä¿®æ”¹é—®å·ä»»åŠ¡æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“
     */
    @PreAuthorize("@ss.hasPermi('system:script:edit')")
    //@PreAuthorize("@ss.hasPermi('system:script:edit')")
    @Log(title = "问卷任务模版问题话术库", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SvyTaskTemplateScript svyTaskTemplateScript)
@@ -88,7 +88,7 @@
    /**
     * åˆ é™¤é—®å·ä»»åŠ¡æ¨¡ç‰ˆé—®é¢˜è¯æœ¯åº“
     */
    @PreAuthorize("@ss.hasPermi('system:script:remove')")
    //@PreAuthorize("@ss.hasPermi('system:script:remove')")
    @Log(title = "问卷任务模版问题话术库", businessType = BusinessType.DELETE)
    @DeleteMapping("/{IDs}")
    public AjaxResult remove(@PathVariable Long[] IDs)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTaskTemplateTargetoptionController.java
@@ -30,7 +30,7 @@
    /**
     * æŸ¥è¯¢é—®å·ä»»åŠ¡æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:list')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:list')")
    @GetMapping("/list")
    public TableDataInfo list(SvyTaskTemplateTargetoption svyTaskTemplateTargetoption) {
        startPage();
@@ -41,7 +41,7 @@
    /**
     * å¯¼å‡ºé—®å·ä»»åŠ¡æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:export')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:export')")
    @Log(title = "问卷任务模板指标选项库", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyTaskTemplateTargetoption svyTaskTemplateTargetoption) {
@@ -53,7 +53,7 @@
    /**
     * èŽ·å–é—®å·ä»»åŠ¡æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:query')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(svyTaskTemplateTargetoptionService.selectSvyTaskTemplateTargetoptionById(id));
@@ -62,7 +62,7 @@
    /**
     * æ–°å¢žé—®å·ä»»åŠ¡æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:add')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:add')")
    @Log(title = "问卷任务模板指标选项库", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SvyTaskTemplateTargetoption svyTaskTemplateTargetoption) {
@@ -72,7 +72,7 @@
    /**
     * ä¿®æ”¹é—®å·ä»»åŠ¡æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:edit')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:edit')")
    @Log(title = "问卷任务模板指标选项库", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody SvyTaskTemplateTargetoption svyTaskTemplateTargetoption) {
@@ -82,7 +82,7 @@
    /**
     * åˆ é™¤é—®å·ä»»åŠ¡æ¨¡æ¿æŒ‡æ ‡é€‰é¡¹åº“
     */
    @PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    //@PreAuthorize("@ss.hasPermi('system:targetoption:remove')")
    @Log(title = "问卷任务模板指标选项库", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/SvyTopicController.java
@@ -39,7 +39,7 @@
    /**
     * æŸ¥è¯¢é¢˜ç›®åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:topic:list')")
    //@PreAuthorize("@ss.hasPermi('system:topic:list')")
    @PostMapping("/list")
    public TableDataInfo list(@RequestBody SvyTopic svyTopic) {
        startPage();
@@ -50,7 +50,7 @@
    /**
     * å¯¼å‡ºé¢˜ç›®åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('system:topic:export')")
    //@PreAuthorize("@ss.hasPermi('system:topic:export')")
    @Log(title = "题目", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SvyTopic svyTopic) {
@@ -62,7 +62,7 @@
    /**
     * èŽ·å–é¢˜ç›®è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:topic:query')")
    //@PreAuthorize("@ss.hasPermi('system:topic:query')")
    @GetMapping(value = "/{topicid}")
    public AjaxResult getInfo(@PathVariable("topicid") Long topicid) {
        return success(svyTopicService.selectSvyTopicByTopicid(topicid));
@@ -71,7 +71,7 @@
    /**
     * æ–°å¢žé¢˜ç›®
     */
    @PreAuthorize("@ss.hasPermi('system:topic:add')")
    //@PreAuthorize("@ss.hasPermi('system:topic:add')")
    @Log(title = "题目", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SvyTopic svyTopic) {
@@ -81,7 +81,7 @@
    /**
     * ä¿®æ”¹é¢˜ç›®
     */
    @PreAuthorize("@ss.hasPermi('system:topic:edit')")
    //@PreAuthorize("@ss.hasPermi('system:topic:edit')")
    @Log(title = "题目", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SvyTopic svyTopic) {
@@ -91,7 +91,7 @@
    /**
     * åˆ é™¤é¢˜ç›®
     */
    @PreAuthorize("@ss.hasPermi('system:topic:remove')")
    //@PreAuthorize("@ss.hasPermi('system:topic:remove')")
    @Log(title = "题目", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{topicids}")
    public AjaxResult remove(@PathVariable Long[] topicids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/TempDetpRelevanceController.java
@@ -31,7 +31,7 @@
    /**
     * æŸ¥è¯¢æ¨¡æ¿ç§‘室关联列表
     */
    @PreAuthorize("@ss.hasPermi('system:relevance:list')")
    //@PreAuthorize("@ss.hasPermi('system:relevance:list')")
    @GetMapping("/list")
    public TableDataInfo list(TempDetpRelevance tempDetpRelevance)
    {
@@ -43,7 +43,7 @@
    /**
     * å¯¼å‡ºæ¨¡æ¿ç§‘室关联列表
     */
    @PreAuthorize("@ss.hasPermi('system:relevance:export')")
    //@PreAuthorize("@ss.hasPermi('system:relevance:export')")
    @Log(title = "模板科室关联", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, TempDetpRelevance tempDetpRelevance)
@@ -56,7 +56,7 @@
    /**
     * èŽ·å–æ¨¡æ¿ç§‘å®¤å…³è”è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('system:relevance:query')")
    //@PreAuthorize("@ss.hasPermi('system:relevance:query')")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -66,7 +66,7 @@
    /**
     * æ–°å¢žæ¨¡æ¿ç§‘室关联
     */
    @PreAuthorize("@ss.hasPermi('system:relevance:add')")
    //@PreAuthorize("@ss.hasPermi('system:relevance:add')")
    @Log(title = "模板科室关联", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody TempDetpRelevance tempDetpRelevance)
@@ -77,7 +77,7 @@
    /**
     * ä¿®æ”¹æ¨¡æ¿ç§‘室关联
     */
    @PreAuthorize("@ss.hasPermi('system:relevance:edit')")
    //@PreAuthorize("@ss.hasPermi('system:relevance:edit')")
    @Log(title = "模板科室关联", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody TempDetpRelevance tempDetpRelevance)
@@ -88,7 +88,7 @@
    /**
     * åˆ é™¤æ¨¡æ¿ç§‘室关联
     */
    @PreAuthorize("@ss.hasPermi('system:relevance:remove')")
    //@PreAuthorize("@ss.hasPermi('system:relevance:remove')")
    @Log(title = "模板科室关联", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/tools/BaseSmsaccountController.java
@@ -38,7 +38,7 @@
    /**
     * æŸ¥è¯¢çŸ­ä¿¡è´¦å·åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsaccount:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsaccount:list')")
   @PostMapping("/list")
    public TableDataInfo list(@RequestBody BaseSmsaccount baseSmsaccount) {
        startPage();
@@ -49,7 +49,7 @@
    /**
     * å¯¼å‡ºçŸ­ä¿¡è´¦å·åˆ—表
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsaccount:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsaccount:export')")
    @Log(title = "短信账号", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, BaseSmsaccount baseSmsaccount) {
@@ -61,7 +61,7 @@
    /**
     * èŽ·å–çŸ­ä¿¡è´¦å·è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsaccount:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsaccount:query')")
    @GetMapping(value = "/{smsacountid}")
    public AjaxResult getInfo(@PathVariable("smsacountid") Long smsacountid) {
        return success(baseSmsaccountService.selectBaseSmsaccountBySmsacountid(smsacountid));
@@ -70,7 +70,7 @@
    /**
     * æ–°å¢žçŸ­ä¿¡è´¦å·
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsaccount:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsaccount:add')")
    @Log(title = "短信账号", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody BaseSmsaccount baseSmsaccount) {
@@ -80,7 +80,7 @@
    /**
     * ä¿®æ”¹çŸ­ä¿¡è´¦å·
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsaccount:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsaccount:edit')")
    @Log(title = "短信账号", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody BaseSmsaccount baseSmsaccount) {
@@ -90,7 +90,7 @@
    /**
     * åˆ é™¤çŸ­ä¿¡è´¦å·
     */
    @PreAuthorize("@ss.hasPermi('smartor:smsaccount:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:smsaccount:remove')")
    @Log(title = "短信账号", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{smsacountids}")
    public AjaxResult remove(@PathVariable Long[] smsacountids) {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
@@ -38,7 +38,7 @@
    /**
     * èŽ·å–å‚æ•°é…ç½®åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:config:list')")
    //@PreAuthorize("@ss.hasPermi('system:config:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysConfig config)
    {
@@ -48,7 +48,7 @@
    }
    @Log(title = "参数管理", businessType = BusinessType.EXPORT)
    @PreAuthorize("@ss.hasPermi('system:config:export')")
    //@PreAuthorize("@ss.hasPermi('system:config:export')")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysConfig config)
    {
@@ -60,7 +60,7 @@
    /**
     * æ ¹æ®å‚数编号获取详细信息
     */
    @PreAuthorize("@ss.hasPermi('system:config:query')")
    //@PreAuthorize("@ss.hasPermi('system:config:query')")
    @GetMapping(value = "/{configId}")
    public AjaxResult getInfo(@PathVariable Long configId)
    {
@@ -79,7 +79,7 @@
    /**
     * æ–°å¢žå‚数配置
     */
    @PreAuthorize("@ss.hasPermi('system:config:add')")
    //@PreAuthorize("@ss.hasPermi('system:config:add')")
    @Log(title = "参数管理", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@Validated @RequestBody SysConfig config)
@@ -95,7 +95,7 @@
    /**
     * ä¿®æ”¹å‚数配置
     */
    @PreAuthorize("@ss.hasPermi('system:config:edit')")
    //@PreAuthorize("@ss.hasPermi('system:config:edit')")
    @Log(title = "参数管理", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@Validated @RequestBody SysConfig config)
@@ -111,7 +111,7 @@
    /**
     * åˆ é™¤å‚数配置
     */
    @PreAuthorize("@ss.hasPermi('system:config:remove')")
    //@PreAuthorize("@ss.hasPermi('system:config:remove')")
    @Log(title = "参数管理", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{configIds}")
    public AjaxResult remove(@PathVariable Long[] configIds)
@@ -123,7 +123,7 @@
    /**
     * åˆ·æ–°å‚数缓存
     */
    @PreAuthorize("@ss.hasPermi('system:config:remove')")
    //@PreAuthorize("@ss.hasPermi('system:config:remove')")
    @Log(title = "参数管理", businessType = BusinessType.CLEAN)
    @GetMapping("/refreshCache")
    public AjaxResult refreshCache()
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
@@ -42,7 +42,7 @@
     * èŽ·å–éƒ¨é—¨åˆ—è¡¨
     */
    @ApiOperation("获取部门列表")
    @PreAuthorize("@ss.hasPermi('system:dept:list')")
    //@PreAuthorize("@ss.hasPermi('system:dept:list')")
    @GetMapping("/list")
    public AjaxResult list(SysDept dept)
    {
@@ -54,7 +54,7 @@
     * æŸ¥è¯¢éƒ¨é—¨åˆ—表(排除节点)
     */
    @ApiOperation("查询部门列表(排除节点)")
    @PreAuthorize("@ss.hasPermi('system:dept:list')")
    //@PreAuthorize("@ss.hasPermi('system:dept:list')")
    @GetMapping("/list/exclude/{deptId}")
    public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId)
    {
@@ -67,7 +67,7 @@
     * æ ¹æ®éƒ¨é—¨ç¼–号获取详细信息
     */
    @ApiOperation("根据部门编号获取详细信息")
    @PreAuthorize("@ss.hasPermi('system:dept:query')")
    //@PreAuthorize("@ss.hasPermi('system:dept:query')")
    @GetMapping("/getInfo/{deptId}")
    public AjaxResult getInfo(@PathVariable Long deptId)
    {
@@ -79,7 +79,7 @@
     * æ–°å¢žéƒ¨é—¨
     */
    @ApiOperation("新增部门")
    @PreAuthorize("@ss.hasPermi('system:dept:add')")
    //@PreAuthorize("@ss.hasPermi('system:dept:add')")
    @Log(title = "部门管理", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@Validated @RequestBody SysDept dept)
@@ -96,7 +96,7 @@
     * ä¿®æ”¹éƒ¨é—¨
     */
    @ApiOperation("修改部门")
    @PreAuthorize("@ss.hasPermi('system:dept:edit')")
    //@PreAuthorize("@ss.hasPermi('system:dept:edit')")
    @Log(title = "部门管理", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@Validated @RequestBody SysDept dept)
@@ -123,7 +123,7 @@
     * åˆ é™¤éƒ¨é—¨
     */
    @ApiOperation("删除部门")
    @PreAuthorize("@ss.hasPermi('system:dept:remove')")
    //@PreAuthorize("@ss.hasPermi('system:dept:remove')")
    @Log(title = "部门管理", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{deptId}")
    public AjaxResult remove(@PathVariable Long deptId)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
@@ -40,7 +40,7 @@
    @Autowired
    private ISysDictTypeService dictTypeService;
    @PreAuthorize("@ss.hasPermi('system:dict:list')")
    //@PreAuthorize("@ss.hasPermi('system:dict:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysDictData dictData)
    {
@@ -50,7 +50,7 @@
    }
    @Log(title = "字典数据", businessType = BusinessType.EXPORT)
    @PreAuthorize("@ss.hasPermi('system:dict:export')")
    //@PreAuthorize("@ss.hasPermi('system:dict:export')")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysDictData dictData)
    {
@@ -62,7 +62,7 @@
    /**
     * æŸ¥è¯¢å­—典数据详细
     */
    @PreAuthorize("@ss.hasPermi('system:dict:query')")
    //@PreAuthorize("@ss.hasPermi('system:dict:query')")
    @GetMapping(value = "/{dictCode}")
    public AjaxResult getInfo(@PathVariable Long dictCode)
    {
@@ -86,7 +86,7 @@
    /**
     * æ–°å¢žå­—典类型
     */
    @PreAuthorize("@ss.hasPermi('system:dict:add')")
    //@PreAuthorize("@ss.hasPermi('system:dict:add')")
    @Log(title = "字典数据", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@Validated @RequestBody SysDictData dict)
@@ -98,7 +98,7 @@
    /**
     * ä¿®æ”¹ä¿å­˜å­—典类型
     */
    @PreAuthorize("@ss.hasPermi('system:dict:edit')")
    //@PreAuthorize("@ss.hasPermi('system:dict:edit')")
    @Log(title = "字典数据", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@Validated @RequestBody SysDictData dict)
@@ -110,7 +110,7 @@
    /**
     * åˆ é™¤å­—典类型
     */
    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
    //@PreAuthorize("@ss.hasPermi('system:dict:remove')")
    @Log(title = "字典类型", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{dictCodes}")
    public AjaxResult remove(@PathVariable Long[] dictCodes)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
@@ -35,7 +35,7 @@
    @Autowired
    private ISysDictTypeService dictTypeService;
    @PreAuthorize("@ss.hasPermi('system:dict:list')")
    //@PreAuthorize("@ss.hasPermi('system:dict:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysDictType dictType)
    {
@@ -45,7 +45,7 @@
    }
    @Log(title = "字典类型", businessType = BusinessType.EXPORT)
    @PreAuthorize("@ss.hasPermi('system:dict:export')")
    //@PreAuthorize("@ss.hasPermi('system:dict:export')")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysDictType dictType)
    {
@@ -57,7 +57,7 @@
    /**
     * æŸ¥è¯¢å­—典类型详细
     */
    @PreAuthorize("@ss.hasPermi('system:dict:query')")
    //@PreAuthorize("@ss.hasPermi('system:dict:query')")
    @GetMapping(value = "/{dictId}")
    public AjaxResult getInfo(@PathVariable Long dictId)
    {
@@ -67,7 +67,7 @@
    /**
     * æ–°å¢žå­—典类型
     */
    @PreAuthorize("@ss.hasPermi('system:dict:add')")
    //@PreAuthorize("@ss.hasPermi('system:dict:add')")
    @Log(title = "字典类型", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@Validated @RequestBody SysDictType dict)
@@ -83,7 +83,7 @@
    /**
     * ä¿®æ”¹å­—典类型
     */
    @PreAuthorize("@ss.hasPermi('system:dict:edit')")
    //@PreAuthorize("@ss.hasPermi('system:dict:edit')")
    @Log(title = "字典类型", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@Validated @RequestBody SysDictType dict)
@@ -99,7 +99,7 @@
    /**
     * åˆ é™¤å­—典类型
     */
    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
    //@PreAuthorize("@ss.hasPermi('system:dict:remove')")
    @Log(title = "字典类型", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{dictIds}")
    public AjaxResult remove(@PathVariable Long[] dictIds)
@@ -111,7 +111,7 @@
    /**
     * åˆ·æ–°å­—典缓存
     */
    @PreAuthorize("@ss.hasPermi('system:dict:remove')")
    //@PreAuthorize("@ss.hasPermi('system:dict:remove')")
    @Log(title = "字典类型", businessType = BusinessType.CLEAN)
    @GetMapping("/refreshCache")
    public AjaxResult refreshCache()
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
@@ -36,7 +36,7 @@
    /**
     * èŽ·å–èœå•åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:menu:list')")
    //@PreAuthorize("@ss.hasPermi('system:menu:list')")
    @GetMapping("/list")
    public AjaxResult list(SysMenu menu)
    {
@@ -47,7 +47,7 @@
    /**
     * æ ¹æ®èœå•编号获取详细信息
     */
    @PreAuthorize("@ss.hasPermi('system:menu:query')")
    //@PreAuthorize("@ss.hasPermi('system:menu:query')")
    @GetMapping(value = "/{menuId}")
    public AjaxResult getInfo(@PathVariable Long menuId)
    {
@@ -80,7 +80,7 @@
    /**
     * æ–°å¢žèœå•
     */
    @PreAuthorize("@ss.hasPermi('system:menu:add')")
    //@PreAuthorize("@ss.hasPermi('system:menu:add')")
    @Log(title = "菜单管理", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@Validated @RequestBody SysMenu menu)
@@ -100,7 +100,7 @@
    /**
     * ä¿®æ”¹èœå•
     */
    @PreAuthorize("@ss.hasPermi('system:menu:edit')")
    //@PreAuthorize("@ss.hasPermi('system:menu:edit')")
    @Log(title = "菜单管理", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@Validated @RequestBody SysMenu menu)
@@ -124,7 +124,7 @@
    /**
     * åˆ é™¤èœå•
     */
    @PreAuthorize("@ss.hasPermi('system:menu:remove')")
    //@PreAuthorize("@ss.hasPermi('system:menu:remove')")
    @Log(title = "菜单管理", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{menuId}")
    public AjaxResult remove(@PathVariable("menuId") Long menuId)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
@@ -35,7 +35,7 @@
    /**
     * èŽ·å–é€šçŸ¥å…¬å‘Šåˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:notice:list')")
    //@PreAuthorize("@ss.hasPermi('system:notice:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysNotice notice)
    {
@@ -47,7 +47,7 @@
    /**
     * æ ¹æ®é€šçŸ¥å…¬å‘Šç¼–号获取详细信息
     */
    @PreAuthorize("@ss.hasPermi('system:notice:query')")
    //@PreAuthorize("@ss.hasPermi('system:notice:query')")
    @GetMapping(value = "/{noticeId}")
    public AjaxResult getInfo(@PathVariable Long noticeId)
    {
@@ -57,7 +57,7 @@
    /**
     * æ–°å¢žé€šçŸ¥å…¬å‘Š
     */
    @PreAuthorize("@ss.hasPermi('system:notice:add')")
    //@PreAuthorize("@ss.hasPermi('system:notice:add')")
    @Log(title = "通知公告", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@Validated @RequestBody SysNotice notice)
@@ -69,7 +69,7 @@
    /**
     * ä¿®æ”¹é€šçŸ¥å…¬å‘Š
     */
    @PreAuthorize("@ss.hasPermi('system:notice:edit')")
    //@PreAuthorize("@ss.hasPermi('system:notice:edit')")
    @Log(title = "通知公告", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@Validated @RequestBody SysNotice notice)
@@ -81,7 +81,7 @@
    /**
     * åˆ é™¤é€šçŸ¥å…¬å‘Š
     */
    @PreAuthorize("@ss.hasPermi('system:notice:remove')")
    //@PreAuthorize("@ss.hasPermi('system:notice:remove')")
    @Log(title = "通知公告", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{noticeIds}")
    public AjaxResult remove(@PathVariable Long[] noticeIds)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
@@ -38,7 +38,7 @@
    /**
     * èŽ·å–å²—ä½åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:post:list')")
    //@PreAuthorize("@ss.hasPermi('system:post:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysPost post)
    {
@@ -48,7 +48,7 @@
    }
    @Log(title = "岗位管理", businessType = BusinessType.EXPORT)
    @PreAuthorize("@ss.hasPermi('system:post:export')")
    //@PreAuthorize("@ss.hasPermi('system:post:export')")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysPost post)
    {
@@ -60,7 +60,7 @@
    /**
     * æ ¹æ®å²—位编号获取详细信息
     */
    @PreAuthorize("@ss.hasPermi('system:post:query')")
    //@PreAuthorize("@ss.hasPermi('system:post:query')")
    @GetMapping(value = "/{postId}")
    public AjaxResult getInfo(@PathVariable Long postId)
    {
@@ -70,7 +70,7 @@
    /**
     * æ–°å¢žå²—位
     */
    @PreAuthorize("@ss.hasPermi('system:post:add')")
    //@PreAuthorize("@ss.hasPermi('system:post:add')")
    @Log(title = "岗位管理", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@Validated @RequestBody SysPost post)
@@ -90,7 +90,7 @@
    /**
     * ä¿®æ”¹å²—位
     */
    @PreAuthorize("@ss.hasPermi('system:post:edit')")
    //@PreAuthorize("@ss.hasPermi('system:post:edit')")
    @Log(title = "岗位管理", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@Validated @RequestBody SysPost post)
@@ -110,7 +110,7 @@
    /**
     * åˆ é™¤å²—位
     */
    @PreAuthorize("@ss.hasPermi('system:post:remove')")
    //@PreAuthorize("@ss.hasPermi('system:post:remove')")
    @Log(title = "岗位管理", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{postIds}")
    public AjaxResult remove(@PathVariable Long[] postIds)
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
@@ -56,7 +56,7 @@
    @Autowired
    private ISysDeptService deptService;
    @PreAuthorize("@ss.hasPermi('system:role:list')")
    //@PreAuthorize("@ss.hasPermi('system:role:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysRole role)
    {
@@ -66,7 +66,7 @@
    }
    @Log(title = "角色管理", businessType = BusinessType.EXPORT)
    @PreAuthorize("@ss.hasPermi('system:role:export')")
    //@PreAuthorize("@ss.hasPermi('system:role:export')")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysRole role)
    {
@@ -78,7 +78,7 @@
    /**
     * æ ¹æ®è§’色编号获取详细信息
     */
    @PreAuthorize("@ss.hasPermi('system:role:query')")
    //@PreAuthorize("@ss.hasPermi('system:role:query')")
    @GetMapping(value = "/{roleId}")
    public AjaxResult getInfo(@PathVariable Long roleId)
    {
@@ -89,7 +89,7 @@
    /**
     * æ–°å¢žè§’色
     */
    @PreAuthorize("@ss.hasPermi('system:role:add')")
    //@PreAuthorize("@ss.hasPermi('system:role:add')")
    @Log(title = "角色管理", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@Validated @RequestBody SysRole role)
@@ -110,7 +110,7 @@
    /**
     * ä¿®æ”¹ä¿å­˜è§’色
     */
    @PreAuthorize("@ss.hasPermi('system:role:edit')")
    //@PreAuthorize("@ss.hasPermi('system:role:edit')")
    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@Validated @RequestBody SysRole role)
@@ -145,7 +145,7 @@
    /**
     * ä¿®æ”¹ä¿å­˜æ•°æ®æƒé™
     */
    @PreAuthorize("@ss.hasPermi('system:role:edit')")
    //@PreAuthorize("@ss.hasPermi('system:role:edit')")
    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
    @PostMapping("/dataScope")
    public AjaxResult dataScope(@RequestBody SysRole role)
@@ -158,7 +158,7 @@
    /**
     * çŠ¶æ€ä¿®æ”¹
     */
    @PreAuthorize("@ss.hasPermi('system:role:edit')")
    //@PreAuthorize("@ss.hasPermi('system:role:edit')")
    @Log(title = "角色管理", businessType = BusinessType.UPDATE)
    @PostMapping("/changeStatus")
    public AjaxResult changeStatus(@RequestBody SysRole role)
@@ -172,7 +172,7 @@
    /**
     * åˆ é™¤è§’色
     */
    @PreAuthorize("@ss.hasPermi('system:role:remove')")
    //@PreAuthorize("@ss.hasPermi('system:role:remove')")
    @Log(title = "角色管理", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{roleIds}")
    public AjaxResult remove(@PathVariable Long[] roleIds)
@@ -183,7 +183,7 @@
    /**
     * èŽ·å–è§’è‰²é€‰æ‹©æ¡†åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:role:query')")
    //@PreAuthorize("@ss.hasPermi('system:role:query')")
    @GetMapping("/optionselect")
    public AjaxResult optionselect()
    {
@@ -193,7 +193,7 @@
    /**
     * æŸ¥è¯¢å·²åˆ†é…ç”¨æˆ·è§’色列表
     */
    @PreAuthorize("@ss.hasPermi('system:role:list')")
    //@PreAuthorize("@ss.hasPermi('system:role:list')")
    @GetMapping("/authUser/allocatedList")
    public TableDataInfo allocatedList(SysUser user)
    {
@@ -205,7 +205,7 @@
    /**
     * æŸ¥è¯¢æœªåˆ†é…ç”¨æˆ·è§’色列表
     */
    @PreAuthorize("@ss.hasPermi('system:role:list')")
    //@PreAuthorize("@ss.hasPermi('system:role:list')")
    @GetMapping("/authUser/unallocatedList")
    public TableDataInfo unallocatedList(SysUser user)
    {
@@ -217,7 +217,7 @@
    /**
     * å–消授权用户
     */
    @PreAuthorize("@ss.hasPermi('system:role:edit')")
    //@PreAuthorize("@ss.hasPermi('system:role:edit')")
    @Log(title = "角色管理", businessType = BusinessType.GRANT)
    @PostMapping("/authUser/cancel")
    public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole)
@@ -228,7 +228,7 @@
    /**
     * æ‰¹é‡å–消授权用户
     */
    @PreAuthorize("@ss.hasPermi('system:role:edit')")
    //@PreAuthorize("@ss.hasPermi('system:role:edit')")
    @Log(title = "角色管理", businessType = BusinessType.GRANT)
    @PostMapping("/authUser/cancelAll")
    public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds)
@@ -239,7 +239,7 @@
    /**
     * æ‰¹é‡é€‰æ‹©ç”¨æˆ·æŽˆæƒ
     */
    @PreAuthorize("@ss.hasPermi('system:role:edit')")
    //@PreAuthorize("@ss.hasPermi('system:role:edit')")
    @Log(title = "角色管理", businessType = BusinessType.GRANT)
    @PostMapping("/authUser/selectAll")
    public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds)
@@ -251,7 +251,7 @@
    /**
     * èŽ·å–å¯¹åº”è§’è‰²éƒ¨é—¨æ ‘åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:role:query')")
    //@PreAuthorize("@ss.hasPermi('system:role:query')")
    @GetMapping(value = "/deptTree/{roleId}")
    public AjaxResult deptTree(@PathVariable("roleId") Long roleId)
    {
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
@@ -50,7 +50,7 @@
    /**
     * èŽ·å–ç”¨æˆ·åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:user:list')")
    //@PreAuthorize("@ss.hasPermi('system:user:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysUser user) {
        startPage();
@@ -59,7 +59,7 @@
    }
    @Log(title = "用户管理", businessType = BusinessType.EXPORT)
    @PreAuthorize("@ss.hasPermi('system:user:export')")
    //@PreAuthorize("@ss.hasPermi('system:user:export')")
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysUser user) {
        List<SysUser> list = userService.selectUserList(user);
@@ -68,7 +68,7 @@
    }
    @Log(title = "用户管理", businessType = BusinessType.IMPORT)
    @PreAuthorize("@ss.hasPermi('system:user:import')")
    //@PreAuthorize("@ss.hasPermi('system:user:import')")
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
@@ -87,7 +87,7 @@
    /**
     * æ ¹æ®ç”¨æˆ·ç¼–号获取详细信息
     */
    @PreAuthorize("@ss.hasPermi('system:user:query')")
    //@PreAuthorize("@ss.hasPermi('system:user:query')")
    @GetMapping("/getInfo/{userId}")
    public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) {
        userService.checkUserDataScope(userId);
@@ -107,7 +107,7 @@
    /**
     * æ–°å¢žç”¨æˆ·
     */
    @PreAuthorize("@ss.hasPermi('system:user:add')")
    //@PreAuthorize("@ss.hasPermi('system:user:add')")
    @Log(title = "用户管理", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@Validated @RequestBody SysUser user) {
@@ -126,7 +126,7 @@
    /**
     * ä¿®æ”¹ç”¨æˆ·
     */
    @PreAuthorize("@ss.hasPermi('system:user:edit')")
    //@PreAuthorize("@ss.hasPermi('system:user:edit')")
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@Validated @RequestBody SysUser user) {
@@ -146,7 +146,7 @@
    /**
     * åˆ é™¤ç”¨æˆ·
     */
    @PreAuthorize("@ss.hasPermi('system:user:remove')")
    //@PreAuthorize("@ss.hasPermi('system:user:remove')")
    @Log(title = "用户管理", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{userIds}")
    public AjaxResult remove(@PathVariable Long[] userIds) {
@@ -159,7 +159,7 @@
    /**
     * é‡ç½®å¯†ç 
     */
    @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
    //@PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
    @PostMapping("/resetPwd")
    public AjaxResult resetPwd(@RequestBody SysUser user) {
@@ -173,7 +173,7 @@
    /**
     * çŠ¶æ€ä¿®æ”¹
     */
    @PreAuthorize("@ss.hasPermi('system:user:edit')")
    //@PreAuthorize("@ss.hasPermi('system:user:edit')")
    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
    @PostMapping("/changeStatus")
    public AjaxResult changeStatus(@RequestBody SysUser user) {
@@ -186,7 +186,7 @@
    /**
     * æ ¹æ®ç”¨æˆ·ç¼–号获取授权角色
     */
    @PreAuthorize("@ss.hasPermi('system:user:query')")
    //@PreAuthorize("@ss.hasPermi('system:user:query')")
    @GetMapping("/authRole/{userId}")
    public AjaxResult authRole(@PathVariable("userId") Long userId) {
        AjaxResult ajax = AjaxResult.success();
@@ -200,7 +200,7 @@
    /**
     * ç”¨æˆ·æŽˆæƒè§’色
     */
    @PreAuthorize("@ss.hasPermi('system:user:edit')")
    //@PreAuthorize("@ss.hasPermi('system:user:edit')")
    @Log(title = "用户管理", businessType = BusinessType.GRANT)
    @PostMapping("/authRole")
    public AjaxResult insertAuthRole(Long userId, Long[] roleIds) {
@@ -212,7 +212,7 @@
    /**
     * èŽ·å–éƒ¨é—¨æ ‘åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('system:user:list')")
    //@PreAuthorize("@ss.hasPermi('system:user:list')")
    @GetMapping("/deptTree")
    public AjaxResult deptTree(SysDept dept) {
        return success(deptService.selectDeptTreeList(dept));
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserDeptController.java
@@ -35,7 +35,7 @@
     * æŸ¥è¯¢ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘åˆ—è¡¨
     */
    @ApiOperation("查询【请填写功能名称】列表")
    @PreAuthorize("@ss.hasPermi('smartor:dept:list')")
    //@PreAuthorize("@ss.hasPermi('smartor:dept:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysUserDept sysUserDept)
    {
@@ -48,7 +48,7 @@
     * å¯¼å‡ºã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘åˆ—è¡¨
     */
    @ApiOperation("导出【请填写功能名称】列表")
    @PreAuthorize("@ss.hasPermi('smartor:dept:export')")
    //@PreAuthorize("@ss.hasPermi('smartor:dept:export')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysUserDept sysUserDept)
@@ -62,7 +62,7 @@
     * èŽ·å–ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘è¯¦ç»†ä¿¡æ¯
     */
    @ApiOperation("获取【请填写功能名称】详细信息")
    @PreAuthorize("@ss.hasPermi('smartor:dept:query')")
    //@PreAuthorize("@ss.hasPermi('smartor:dept:query')")
    @GetMapping(value = "/getInfo/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
@@ -72,7 +72,8 @@
    /**
     * æ–°å¢žã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @PreAuthorize("@ss.hasPermi('smartor:dept:add')")
    //@PreAuthorize("@ss.hasPermi('smartor:dept:add')")
    @ApiOperation("导出【请填写功能名称】列表")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody SysUserDept sysUserDept)
@@ -84,7 +85,7 @@
     * ä¿®æ”¹ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @ApiOperation("修改【请填写功能名称】")
    @PreAuthorize("@ss.hasPermi('smartor:dept:edit')")
    //@PreAuthorize("@ss.hasPermi('smartor:dept:edit')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SysUserDept sysUserDept)
@@ -96,7 +97,7 @@
     * åˆ é™¤ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @ApiOperation("删除【请填写功能名称】")
    @PreAuthorize("@ss.hasPermi('smartor:dept:remove')")
    //@PreAuthorize("@ss.hasPermi('smartor:dept:remove')")
    @Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java
@@ -1,173 +1,55 @@
package com.ruoyi.web.test;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.smartor.domain.ThiedInhospInfo;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.FileUtils;
import io.swagger.models.auth.In;
import org.junit.Test;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import java.lang.reflect.Type;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.io.*;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import static org.eclipse.jetty.http.HttpGenerator.CHUNK_SIZE;
//@SpringBootTest
//@RunWith(SpringRunner.class)
public class MQTest {
    String result="{\n" +
            "    \"code\": \"0\",\n" +
            "    \"message\": \"success\",\n" +
            "    \"data\": {\n" +
            "        \"result\": ["+
            " {\n" +
            "                \"admissDeptName\": \"测试科室\",\n" +
            "                \"patiTypeId\": \"22\",\n" +
            "                \"companyTelNum\": \"\",\n" +
            "                \"currDeptCode\": \"1024\",\n" +
            "                \"currWardCode\": \"1331\",\n" +
            "                \"patiIdCardNo\": \"\",\n" +
            "                \"PatiHomeAddr\": \"浙江省杭州市拱墅区\",\n" +
            "                \"patiMediaId\": \"69674\",\n" +
            "                \"admissBedNo\": \"\",\n" +
            "                \"patiBirthday\": \"2009-03-03 00:00:00\",\n" +
            "                \"Education\": null,\n" +
            "                \"nationalityAddr\": \"\",\n" +
            "                \"admissWardCode\": \"1331\",\n" +
            "                \"doctId\": \"6af3708533e645edb10a655cabead79f\",\n" +
            "                \"inpatientId\": \"2403000055\",\n" +
            "                \"ProfessionId\": \"\",\n" +
            "                \"admissWardId\": \"7f95c670151746bca580c866ae56cfeb\",\n" +
            "                \"doctName\": \"测试医生\",\n" +
            "                \"currBedId\": \"7aeeb24077b1434d8f2b6ccb204f9159\",\n" +
            "                \"diagName\": \"僵\",\n" +
            "                \"currWardName\": \"测试病区\",\n" +
            "                \"totalAmount\": 0.00,\n" +
            "                \"admissWardName\": \"测试病区\",\n" +
            "                \"contactPersonName\": null,\n" +
            "                \"patiMediaNo\": \"024000070\",\n" +
            "                \"patiIndex\": \"024000070\",\n" +
            "                \"diagIcd10\": \"M20.200\",\n" +
            "                \"admissDeptCode\": \"1024\",\n" +
            "                \"patiRecordGender\": \"女\",\n" +
            "                \"patiNatureId\": \"22\",\n" +
            "                \"treateAge\": 15,\n" +
            "                \"suggestAmount\": \"\",\n" +
            "                \"contactPersonAddr\": null,\n" +
            "                \"contactPersonPhone\": null,\n" +
            "                \"admissBedId\": \"\",\n" +
            "                \"treatAgeunit\": \"岁\",\n" +
            "                \"currBedNo\": \"T-003\",\n" +
            "                \"PatiNation\": \"汉族\",\n" +
            "                \"patiRecordName\": \"既往3-5\",\n" +
            "                \"currDeptId\": \"416a047536b411e7bff40242ac103005\",\n" +
            "                \"outWayName\": null,\n" +
            "                \"RelationShip\": \"\",\n" +
            "                \"admitFormId\": null,\n" +
            "                \"patiNatureName\": \"非记账医保\",\n" +
            "                \"PatiNationality\": \"中国\",\n" +
            "                \"outDate\": null,\n" +
            "                \"admissDeptId\": \"416a047536b411e7bff40242ac103005\",\n" +
            "                \"admissDate\": \"2024-03-05 14:33:00\",\n" +
            "                \"currStatus\": 2,\n" +
            "                \"DocName\": \"\",\n" +
            "                \"patiTypeName\": \"非记账医保\",\n" +
            "                \"currDeptName\": \"测试科室\",\n" +
            "                \"currWardId\": \"7f95c670151746bca580c866ae56cfeb\",\n" +
            "                \"areaId\": \"\",\n" +
            "                \"PatiMaritalStatus\": null,\n" +
            "                \"PatiHomePhone\": \"\",\n" +
            "                \"preoutDate\": null,\n" +
            "                \"outWayId\": null,\n" +
            "                \"inhospitalTimes\": 3,\n" +
            "                \"patiRecordId\": \"69409\",\n" +
            "                \"age\": \"15岁\",\n" +
            "                \"diagId\": \"314216\"\n" +
            "            },\n" +
            "            {\n" +
            "                \"admissDeptName\": \"测试科室\",\n" +
            "                \"patiTypeId\": \"22\",\n" +
            "                \"companyTelNum\": \"\",\n" +
            "                \"currDeptCode\": \"1024\",\n" +
            "                \"currWardCode\": \"1331\",\n" +
            "                \"patiIdCardNo\": \"330106198001030057\",\n" +
            "                \"PatiHomeAddr\": \"浙江省杭州市西湖区\",\n" +
            "                \"patiMediaId\": \"69675\",\n" +
            "                \"admissBedNo\": \"\",\n" +
            "                \"patiBirthday\": \"1980-01-03 00:00:00\",\n" +
            "                \"Education\": null,\n" +
            "                \"nationalityAddr\": \"\",\n" +
            "                \"admissWardCode\": \"1331\",\n" +
            "                \"doctId\": \"7d3f0eaaec304bbfad8a8471998e38e4\",\n" +
            "                \"inpatientId\": \"2403000056\",\n" +
            "                \"ProfessionId\": \"\",\n" +
            "                \"admissWardId\": \"7f95c670151746bca580c866ae56cfeb\",\n" +
            "                \"doctName\": \"住院病历\",\n" +
            "                \"currBedId\": \"377f94ca047e4786aef56a1ac22678b7\",\n" +
            "                \"diagName\": \"瘟病\",\n" +
            "                \"currWardName\": \"测试病区\",\n" +
            "                \"totalAmount\": 0.00,\n" +
            "                \"admissWardName\": \"测试病区\",\n" +
            "                \"contactPersonName\": \"\",\n" +
            "                \"patiMediaNo\": \"024000071\",\n" +
            "                \"patiIndex\": \"024000071\",\n" +
            "                \"diagIcd10\": \"A01.03.01.\",\n" +
            "                \"admissDeptCode\": \"1024\",\n" +
            "                \"patiRecordGender\": \"男\",\n" +
            "                \"patiNatureId\": \"22\",\n" +
            "                \"treateAge\": 44,\n" +
            "                \"suggestAmount\": \"\",\n" +
            "                \"contactPersonAddr\": \"\",\n" +
            "                \"contactPersonPhone\": \"\",\n" +
            "                \"admissBedId\": \"\",\n" +
            "                \"treatAgeunit\": \"岁\",\n" +
            "                \"currBedNo\": \"T-006\",\n" +
            "                \"PatiNation\": \"汉族\",\n" +
            "                \"patiRecordName\": \"担保金额01\",\n" +
            "                \"currDeptId\": \"416a047536b411e7bff40242ac103005\",\n" +
            "                \"outWayName\": null,\n" +
            "                \"RelationShip\": \"\",\n" +
            "                \"admitFormId\": null,\n" +
            "                \"patiNatureName\": \"非记账医保\",\n" +
            "                \"PatiNationality\": \"中国\",\n" +
            "                \"outDate\": null,\n" +
            "                \"admissDeptId\": \"416a047536b411e7bff40242ac103005\",\n" +
            "                \"admissDate\": \"2024-03-07 14:04:00\",\n" +
            "                \"currStatus\": 2,\n" +
            "                \"DocName\": \"\",\n" +
            "                \"patiTypeName\": \"非记账医保\",\n" +
            "                \"currDeptName\": \"测试科室\",\n" +
            "                \"currWardId\": \"7f95c670151746bca580c866ae56cfeb\",\n" +
            "                \"areaId\": \"\",\n" +
            "                \"PatiMaritalStatus\": null,\n" +
            "                \"PatiHomePhone\": \"\",\n" +
            "                \"preoutDate\": null,\n" +
            "                \"outWayId\": null,\n" +
            "                \"inhospitalTimes\": 1,\n" +
            "                \"patiRecordId\": \"69410\",\n" +
            "                \"age\": \"44岁\",\n" +
            "                \"diagId\": \"1000040\"\n" +
            "            }\n" +
            "        ],\n" +
            "        \"hasNext\": false\n" +
            "    }\n" +
            "}";
    @Test
    public void testSend22() {
        Gson gson = new Gson();
        JsonObject jsonObject = gson.fromJson(result, JsonObject.class);
        JsonArray resultArray = jsonObject.getAsJsonObject("data").getAsJsonArray("result");
//        uploadFileInChunks(new File("C:\\Users\\86176\\Desktop\\19-图解es内部基于_version乐观锁控制.mp4"));
        File file = new File("C:\\Users\\86176\\Desktop\\19-图解es内部基于_version乐观锁控制.mp4");
        // å®šä¹‰ ResultItem çš„类型
        Type resultType = new TypeToken<List<ThiedInhospInfo>>() {}.getType();
        List<ThiedInhospInfo> resultList = gson.fromJson(resultArray, resultType);
        System.out.println(resultList);
        FileInputStream input = null;
        try {
            input = new FileInputStream(new File("C:\\Users\\86176\\Desktop\\19-图解es内部基于_version乐观锁控制.mp4"));
            MultipartFile multipartFile = new MockMultipartFile(file.getName(), file.getName(), "application/octet-stream", input);
            aa(multipartFile);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public void aa(MultipartFile file) throws IOException {
        System.out.println("开始Aa:" + System.currentTimeMillis());
        String filePath = "D:\\test\\Ab";
        // ä¸Šä¼ å¹¶è¿”回新文件名称
        String fileName = FileUploadUtils.upload(filePath, file);
        System.out.println("结束Aa:" + System.currentTimeMillis());
    }
}
ruoyi-admin/src/main/resources/application-druid.yml
@@ -10,11 +10,10 @@
        #        url: jdbc:mysql://127.0.0.1:3306/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        #        username: root
        #        password: 123456
        #192.168.1.16:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        #        å…¬å¸
#        url: jdbc:mysql://450scrp46939.vicp.fun:59876/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
#        url: jdbc:mysql://192.168.1.16:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        url: jdbc:mysql://127.0.0.1:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        url: jdbc:mysql://192.168.191.181:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: smartor
        password: Smartor.2023
        driverClassName: com.mysql.cj.jdbc.Driver
@@ -26,6 +25,7 @@
        username: sa
        password: Hxerp2000
        driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
        # ä»Žæ•°æ®æºå¼€å…³/默认关闭(义乌二院)
      #        enabled: true
@@ -138,9 +138,16 @@
#二维码路径
qrpath: D:\qrcode
#外链请求IP和端口号
req_path: 8096
localIP: 192.168.1.10
##公司内外链请求IP和端口号
#req_path: 8096
#localIP: 192.168.1.10
#新华医院外链请求IP和端口号
req_path: 8093
localIP: 218.108.11.22
#获取患者信息URL(华卓提供)
hosp_info_url: http://esb-core-rest.wowjoy.cn/esb/exchange
# 0代表走默认的上传    1 ä»£ç èµ°æ–°åŽåŒ»é™¢çš„上传
uploadSwitch: 1
ruoyi-common/pom.xml
@@ -197,7 +197,11 @@
            <version>1.2.41</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>
    </dependencies>
</project>
</project>
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
@@ -9,7 +9,7 @@
/**
 * Treeselect树结构实体类
 *
 *
 * @author ruoyi
 */
public class TreeSelect implements Serializable
@@ -21,6 +21,9 @@
    /** èŠ‚ç‚¹åç§° */
    private String label;
    /** èŠ‚ç‚¹åç§° */
    private String deptCode;
    /** å­èŠ‚ç‚¹ */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
@@ -35,6 +38,7 @@
    {
        this.id = dept.getDeptId();
        this.label = dept.getDeptName();
        this.deptCode = dept.getDeptCode();
        this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
    }
@@ -45,6 +49,14 @@
        this.children = menu.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
    }
    public String getDeptCode() {
        return deptCode;
    }
    public void setDeptCode(String deptCode) {
        this.deptCode = deptCode;
    }
    public Long getId()
    {
        return id;
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
@@ -16,206 +16,204 @@
/**
 * éƒ¨é—¨è¡¨ sys_dept
 *
 *
 * @author ruoyi
 */
@Data
@ApiModel(value = "SysDept", description = "部门表")
public class SysDept extends BaseEntity
{
public class SysDept extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /** éƒ¨é—¨ID */
    /**
     * éƒ¨é—¨ID
     */
    @ApiModelProperty("部门ID")
    private Long deptId;
    /** çˆ¶éƒ¨é—¨ID */
    /**
     * çˆ¶éƒ¨é—¨ID
     */
    @ApiModelProperty("父部门ID")
    private Long parentId;
    /** ç¥–级列表 */
    /**
     * ç¥–级列表
     */
    @ApiModelProperty("祖级列表")
    private String ancestors;
    /** éƒ¨é—¨åç§° */
    /**
     * éƒ¨é—¨åç§°
     */
    @ApiModelProperty("部门名称")
    private String deptName;
    /** æ˜¾ç¤ºé¡ºåº */
    /**
     * æ˜¾ç¤ºé¡ºåº
     */
    @ApiModelProperty("显示顺序")
    private Integer orderNum;
    /** è´Ÿè´£äºº */
    /**
     * è´Ÿè´£äºº
     */
    @ApiModelProperty("负责人")
    private String leader;
    /** è”系电话 */
    /**
     * è”系电话
     */
    @ApiModelProperty("联系电话")
    private String phone;
    /** é‚®ç®± */
    /**
     * é‚®ç®±
     */
    @ApiModelProperty("邮箱")
    private String email;
    /** éƒ¨é—¨çŠ¶æ€:0正常,1停用 */
    /**
     * éƒ¨é—¨çŠ¶æ€:0正常,1停用
     */
    @ApiModelProperty("部门状态:0正常,1停用")
    private String status;
    /** åˆ é™¤æ ‡å¿—(0代表存在 2代表删除) */
    /**
     * åˆ é™¤æ ‡å¿—(0代表存在 2代表删除)
     */
    @ApiModelProperty("删除标志(0代表存在 2代表删除)")
    private String delFlag;
    /** çˆ¶éƒ¨é—¨åç§° */
    /**
     * çˆ¶éƒ¨é—¨åç§°
     */
    @ApiModelProperty("父部门名称")
    private String parentName;
    /** å­éƒ¨é—¨ */
    /**
     * å­éƒ¨é—¨
     */
    @ApiModelProperty("子部门")
    private List<SysDept> children = new ArrayList<SysDept>();
    public Long getDeptId()
    {
    /**
     * éƒ¨é—¨ç¼–码
     */
    @ApiModelProperty("部门编码")
    private String deptCode;
    public String getDeptCode() {
        return deptCode;
    }
    public void setDeptCode(String deptCode) {
        this.deptCode = deptCode;
    }
    public Long getDeptId() {
        return deptId;
    }
    public void setDeptId(Long deptId)
    {
    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }
    public Long getParentId()
    {
    public Long getParentId() {
        return parentId;
    }
    public void setParentId(Long parentId)
    {
    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }
    public String getAncestors()
    {
    public String getAncestors() {
        return ancestors;
    }
    public void setAncestors(String ancestors)
    {
    public void setAncestors(String ancestors) {
        this.ancestors = ancestors;
    }
    @NotBlank(message = "部门名称不能为空")
    @Size(min = 0, max = 30, message = "部门名称长度不能超过30个字符")
    public String getDeptName()
    {
    public String getDeptName() {
        return deptName;
    }
    public void setDeptName(String deptName)
    {
    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }
    @NotNull(message = "显示顺序不能为空")
    public Integer getOrderNum()
    {
    public Integer getOrderNum() {
        return orderNum;
    }
    public void setOrderNum(Integer orderNum)
    {
    public void setOrderNum(Integer orderNum) {
        this.orderNum = orderNum;
    }
    public String getLeader()
    {
    public String getLeader() {
        return leader;
    }
    public void setLeader(String leader)
    {
    public void setLeader(String leader) {
        this.leader = leader;
    }
    @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
    public String getPhone()
    {
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone)
    {
    public void setPhone(String phone) {
        this.phone = phone;
    }
    @Email(message = "邮箱格式不正确")
    @Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
    public String getEmail()
    {
    public String getEmail() {
        return email;
    }
    public void setEmail(String email)
    {
    public void setEmail(String email) {
        this.email = email;
    }
    public String getStatus()
    {
    public String getStatus() {
        return status;
    }
    public void setStatus(String status)
    {
    public void setStatus(String status) {
        this.status = status;
    }
    public String getDelFlag()
    {
    public String getDelFlag() {
        return delFlag;
    }
    public void setDelFlag(String delFlag)
    {
    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }
    public String getParentName()
    {
    public String getParentName() {
        return parentName;
    }
    public void setParentName(String parentName)
    {
    public void setParentName(String parentName) {
        this.parentName = parentName;
    }
    public List<SysDept> getChildren()
    {
    public List<SysDept> getChildren() {
        return children;
    }
    public void setChildren(List<SysDept> children)
    {
    public void setChildren(List<SysDept> children) {
        this.children = children;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("deptId", getDeptId())
            .append("parentId", getParentId())
            .append("ancestors", getAncestors())
            .append("deptName", getDeptName())
            .append("orderNum", getOrderNum())
            .append("leader", getLeader())
            .append("phone", getPhone())
            .append("email", getEmail())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("deptId", getDeptId()).append("parentId", getParentId()).append("ancestors", getAncestors()).append("deptName", getDeptName()).append("orderNum", getOrderNum()).append("leader", getLeader()).append("phone", getPhone()).append("email", getEmail()).append("status", getStatus()).append("delFlag", getDelFlag()).append("createBy", getCreateBy()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).toString();
    }
}
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
@@ -1,5 +1,6 @@
package com.ruoyi.common.core.domain.entity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.*;
@@ -47,6 +48,13 @@
    private String userName;
    /**
     * æ‚£è€…范围:0:全部;1:科室2:病区;
     */
    @ApiModelProperty(value = "患者范围:0:全部;1:科室2:病区;")
    @Excel(name = "患者范围:0:全部;1:科室2:病区;")
    private String searchscope;
    /**
     * ç”¨æˆ·æ˜µç§°
     */
    @ApiModelProperty(value = "用户昵称")
@@ -59,6 +67,13 @@
    @ApiModelProperty(value = "用户邮箱")
    @Excel(name = "用户邮箱")
    private String email;
    /**
     * ç”¨æˆ·ç±»åž‹ï¼ˆ00系统用户)
     */
    @ApiModelProperty(value = "用户类型(00系统用户)")
    @Excel(name = "用户类型(00系统用户)")
    private String userType;
    /**
     * æ‰‹æœºå·ç 
@@ -114,6 +129,17 @@
    private Date loginDate;
    /**
     * é™¢åŒºä¿¡æ¯
     */
    @ApiModelProperty(value = "院区信息")
    private String hospInfo;
    /**
     * ç§‘室信息
     */
    @ApiModelProperty(value = "科室信息")
    private String deptInfo;
    /**
     * éƒ¨é—¨å¯¹è±¡
     */
    @ApiModelProperty(value = "部门对象")
@@ -147,8 +173,62 @@
    @ApiModelProperty(value = "角色ID")
    private Long roleId;
    /**
     * ç—…区编码
     */
    @ApiModelProperty("病区编码")
    private List<String> leavehospitaldistrictcodes = new ArrayList<String>();
    /**
     * ç§‘室编码
     */
    @ApiModelProperty("科室编码")
    private List<String> leaveldeptcodes = new ArrayList<String>();
    public SysUser() {
    }
    public List<String> getLeavehospitaldistrictcodes() {
        return leavehospitaldistrictcodes;
    }
    public void setLeavehospitaldistrictcodes(List<String> leavehospitaldistrictcodes) {
        this.leavehospitaldistrictcodes = leavehospitaldistrictcodes;
    }
    public List<String> getLeaveldeptcodes() {
        return leaveldeptcodes;
    }
    public void setLeaveldeptcodes(List<String> leaveldeptcodes) {
        this.leaveldeptcodes = leaveldeptcodes;
    }
    public String getSearchscope() {
        return searchscope;
    }
    public void setSearchscope(String searchscope) {
        this.searchscope = searchscope;
    }
    public String getHospInfo() {
        return hospInfo;
    }
    public void setHospInfo(String hospInfo) {
        this.hospInfo = hospInfo;
    }
    public String getDeptInfo() {
        return deptInfo;
    }
    public void setDeptInfo(String deptInfo) {
        this.deptInfo = deptInfo;
    }
    public SysUser(Long userId) {
@@ -206,6 +286,14 @@
        return email;
    }
    public void setUserType(String userType) {
        this.userType = userType;
    }
    public String getUserType() {
        return userType;
    }
    public void setEmail(String email) {
        this.email = email;
    }
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUserDept.java
@@ -32,13 +32,29 @@
    private Long userId;
    /**
     * éƒ¨é—¨ç±»åž‹
     */
    @ApiModelProperty("部门类型")
    @Excel(name = "部门类型")
    private String deptType;
    /**
     * éƒ¨é—¨ç¼–码
     */
    @ApiModelProperty("部门编码")
    @Excel(name = "部门编码")
    private String deptCode;
    /**
     * éƒ¨é—¨ID
     */
    @ApiModelProperty("部门ID")
    @Excel(name = "部门ID")
    private Long deptId;
    /** åˆ é™¤æ ‡å¿—(0代表存在 2代表删除) */
    /**
     * åˆ é™¤æ ‡å¿—(0代表存在 2代表删除)
     */
    @ApiModelProperty("删除标志(0代表存在 1代表删除)")
    private Long delFlag;
ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java
@@ -25,7 +25,7 @@
    /**
     * é»˜è®¤å¤§å° 50M
     */
    public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024;
    public static final long DEFAULT_MAX_SIZE = 200 * 1024 * 1024;
    /**
     * é»˜è®¤çš„æ–‡ä»¶åæœ€å¤§é•¿åº¦ 100
@@ -108,7 +108,6 @@
     *
     * @param baseDir          ç›¸å¯¹åº”用的基目录
     * @param file             ä¸Šä¼ çš„æ–‡ä»¶
     * @param allowedExtension ä¸Šä¼ æ–‡ä»¶ç±»åž‹
     * @return è¿”回上传成功的文件名
     * @throws FileSizeLimitExceededException       å¦‚果超出最大大小
     * @throws FileNameLengthLimitExceededException æ–‡ä»¶åå¤ªé•¿
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
@@ -1,10 +1,6 @@
package com.ruoyi.common.utils.http;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.*;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
import java.net.URL;
@@ -119,10 +115,10 @@
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            conn.setRequestProperty("Accept-Charset", "utf-8");
            conn.setRequestProperty("contentType", "utf-8");
            conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
            conn.setDoOutput(true);
            conn.setDoInput(true);
            out = new PrintWriter(conn.getOutputStream());
            out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8));
            out.print(param);
            out.flush();
            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
@@ -174,7 +170,7 @@
                    conn.setRequestProperty(entry.getKey(), entry.getValue());
                }
            }
            out = new PrintWriter(conn.getOutputStream());
            out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), StandardCharsets.UTF_8));
            out.print(param);
            out.flush();
            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
@@ -24,6 +24,7 @@
import java.util.UUID;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.RegExUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
@@ -34,27 +35,7 @@
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ooxml.POIXMLDocumentPart;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.DataValidation;
import org.apache.poi.ss.usermodel.DataValidationConstraint;
import org.apache.poi.ss.usermodel.DataValidationHelper;
import org.apache.poi.ss.usermodel.DateUtil;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Name;
import org.apache.poi.ss.usermodel.PictureData;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.CellRangeAddressList;
import org.apache.poi.util.IOUtils;
@@ -87,16 +68,15 @@
/**
 * Excel相关处理
 *
 *
 * @author ruoyi
 */
public class ExcelUtil<T>
{
public class ExcelUtil<T> {
    private static final Logger log = LoggerFactory.getLogger(ExcelUtil.class);
    public static final String FORMULA_REGEX_STR = "=|-|\\+|@";
    public static final String[] FORMULA_STR = { "=", "-", "+", "@" };
    public static final String[] FORMULA_STR = {"=", "-", "+", "@"};
    /**
     * Excel sheet最大行数,默认65536
@@ -193,8 +173,7 @@
     */
    public String[] excludeFields;
    public ExcelUtil(Class<T> clazz)
    {
    public ExcelUtil(Class<T> clazz) {
        this.clazz = clazz;
    }
@@ -204,15 +183,12 @@
     * @param fields åˆ—属性名 ç¤ºä¾‹[单个"name"/多个"id","name"]
     * @throws Exception
     */
    public void hideColumn(String... fields)
    {
    public void hideColumn(String... fields) {
        this.excludeFields = fields;
    }
    public void init(List<T> list, String sheetName, String title, Type type)
    {
        if (list == null)
        {
    public void init(List<T> list, String sheetName, String title, Type type) {
        if (list == null) {
            list = new ArrayList<T>();
        }
        this.list = list;
@@ -228,15 +204,12 @@
    /**
     * åˆ›å»ºexcel第一行标题
     */
    public void createTitle()
    {
        if (StringUtils.isNotEmpty(title))
        {
    public void createTitle() {
        if (StringUtils.isNotEmpty(title)) {
            subMergedFirstRowNum++;
            subMergedLastRowNum++;
            int titleLastCol = this.fields.size() - 1;
            if (isSubList())
            {
            if (isSubList()) {
                titleLastCol = titleLastCol + subFields.size() - 1;
            }
            Row titleRow = sheet.createRow(rownum == 0 ? rownum++ : 0);
@@ -251,16 +224,13 @@
    /**
     * åˆ›å»ºå¯¹è±¡çš„子列表名称
     */
    public void createSubHead()
    {
        if (isSubList())
        {
    public void createSubHead() {
        if (isSubList()) {
            subMergedFirstRowNum++;
            subMergedLastRowNum++;
            Row subRow = sheet.createRow(rownum);
            int excelNum = 0;
            for (Object[] objects : fields)
            {
            for (Object[] objects : fields) {
                Excel attr = (Excel) objects[1];
                Cell headCell1 = subRow.createCell(excelNum);
                headCell1.setCellValue(attr.name());
@@ -269,8 +239,7 @@
            }
            int headFirstRow = excelNum - 1;
            int headLastRow = headFirstRow + subFields.size() - 1;
            if (headLastRow > headFirstRow)
            {
            if (headLastRow > headFirstRow) {
                sheet.addMergedRegion(new CellRangeAddress(rownum, rownum, headFirstRow, headLastRow));
            }
            rownum++;
@@ -279,102 +248,85 @@
    /**
     * å¯¹excel表单默认第一个索引名转换成list
     *
     *
     * @param is è¾“入流
     * @return è½¬æ¢åŽé›†åˆ
     */
    public List<T> importExcel(InputStream is) throws Exception
    {
    public List<T> importExcel(InputStream is) throws Exception {
        return importExcel(is, 0);
    }
    /**
     * å¯¹excel表单默认第一个索引名转换成list
     *
     * @param is è¾“入流
     *
     * @param is       è¾“入流
     * @param titleNum æ ‡é¢˜å ç”¨è¡Œæ•°
     * @return è½¬æ¢åŽé›†åˆ
     */
    public List<T> importExcel(InputStream is, int titleNum) throws Exception
    {
    public List<T> importExcel(InputStream is, int titleNum) throws Exception {
        return importExcel(StringUtils.EMPTY, is, titleNum);
    }
    /**
     * å¯¹excel表单指定表格索引名转换成list
     *
     *
     * @param sheetName è¡¨æ ¼ç´¢å¼•名
     * @param titleNum æ ‡é¢˜å ç”¨è¡Œæ•°
     * @param is è¾“入流
     * @param titleNum  æ ‡é¢˜å ç”¨è¡Œæ•°
     * @param is        è¾“入流
     * @return è½¬æ¢åŽé›†åˆ
     */
    public List<T> importExcel(String sheetName, InputStream is, int titleNum) throws Exception
    {
    public List<T> importExcel(String sheetName, InputStream is, int titleNum) throws Exception {
        this.type = Type.IMPORT;
        this.wb = WorkbookFactory.create(is);
        List<T> list = new ArrayList<T>();
        // å¦‚果指定sheet名,则取指定sheet中的内容 å¦åˆ™é»˜è®¤æŒ‡å‘第1个sheet
        Sheet sheet = StringUtils.isNotEmpty(sheetName) ? wb.getSheet(sheetName) : wb.getSheetAt(0);
        if (sheet == null)
        {
        if (sheet == null) {
            throw new IOException("文件sheet不存在");
        }
        boolean isXSSFWorkbook = !(wb instanceof HSSFWorkbook);
        Map<String, PictureData> pictures;
        if (isXSSFWorkbook)
        {
        if (isXSSFWorkbook) {
            pictures = getSheetPictures07((XSSFSheet) sheet, (XSSFWorkbook) wb);
        }
        else
        {
        } else {
            pictures = getSheetPictures03((HSSFSheet) sheet, (HSSFWorkbook) wb);
        }
        // èŽ·å–æœ€åŽä¸€ä¸ªéžç©ºè¡Œçš„è¡Œä¸‹æ ‡ï¼Œæ¯”å¦‚æ€»è¡Œæ•°ä¸ºn,则返回的为n-1
        int rows = sheet.getLastRowNum();
        if (rows > 0)
        {
        if (rows > 0) {
            // å®šä¹‰ä¸€ä¸ªmap用于存放excel列的序号和field.
            Map<String, Integer> cellMap = new HashMap<String, Integer>();
            // èŽ·å–è¡¨å¤´
            Row heard = sheet.getRow(titleNum);
            for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++)
            {
            for (int i = 0; i < heard.getPhysicalNumberOfCells(); i++) {
                Cell cell = heard.getCell(i);
                if (StringUtils.isNotNull(cell))
                {
                if (StringUtils.isNotNull(cell)) {
                    String value = this.getCellValue(heard, i).toString();
                    cellMap.put(value, i);
                }
                else
                {
                } else {
                    cellMap.put(null, i);
                }
            }
            // æœ‰æ•°æ®æ—¶æ‰å¤„理 å¾—到类的所有field.
            List<Object[]> fields = this.getFields();
            Map<Integer, Object[]> fieldsMap = new HashMap<Integer, Object[]>();
            for (Object[] objects : fields)
            {
            for (Object[] objects : fields) {
                Excel attr = (Excel) objects[1];
                Integer column = cellMap.get(attr.name());
                if (column != null)
                {
                if (column != null) {
                    fieldsMap.put(column, objects);
                }
            }
            for (int i = titleNum + 1; i <= rows; i++)
            {
            for (int i = titleNum + 1; i <= rows; i++) {
                // ä»Žç¬¬2行开始取数据,默认第一行是表头.
                Row row = sheet.getRow(i);
                // åˆ¤æ–­å½“前行是否是空行
                if (isRowEmpty(row))
                {
                if (isRowEmpty(row)) {
                    continue;
                }
                T entity = null;
                for (Map.Entry<Integer, Object[]> entry : fieldsMap.entrySet())
                {
                for (Map.Entry<Integer, Object[]> entry : fieldsMap.entrySet()) {
                    Object val = this.getCellValue(row, entry.getKey());
                    // å¦‚果不存在实例则新建.
@@ -384,89 +336,52 @@
                    Excel attr = (Excel) entry.getValue()[1];
                    // å–得类型,并根据对象类型设置值.
                    Class<?> fieldType = field.getType();
                    if (String.class == fieldType)
                    {
                    if (String.class == fieldType) {
                        String s = Convert.toStr(val);
                        if (StringUtils.endsWith(s, ".0"))
                        {
                        if (StringUtils.endsWith(s, ".0")) {
                            val = StringUtils.substringBefore(s, ".0");
                        }
                        else
                        {
                        } else {
                            String dateFormat = field.getAnnotation(Excel.class).dateFormat();
                            if (StringUtils.isNotEmpty(dateFormat))
                            {
                            if (StringUtils.isNotEmpty(dateFormat)) {
                                val = parseDateToStr(dateFormat, val);
                            }
                            else
                            {
                            } else {
                                val = Convert.toStr(val);
                            }
                        }
                    }
                    else if ((Integer.TYPE == fieldType || Integer.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val)))
                    {
                    } else if ((Integer.TYPE == fieldType || Integer.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val))) {
                        val = Convert.toInt(val);
                    }
                    else if ((Long.TYPE == fieldType || Long.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val)))
                    {
                    } else if ((Long.TYPE == fieldType || Long.class == fieldType) && StringUtils.isNumeric(Convert.toStr(val))) {
                        val = Convert.toLong(val);
                    }
                    else if (Double.TYPE == fieldType || Double.class == fieldType)
                    {
                    } else if (Double.TYPE == fieldType || Double.class == fieldType) {
                        val = Convert.toDouble(val);
                    }
                    else if (Float.TYPE == fieldType || Float.class == fieldType)
                    {
                    } else if (Float.TYPE == fieldType || Float.class == fieldType) {
                        val = Convert.toFloat(val);
                    }
                    else if (BigDecimal.class == fieldType)
                    {
                    } else if (BigDecimal.class == fieldType) {
                        val = Convert.toBigDecimal(val);
                    }
                    else if (Date.class == fieldType)
                    {
                        if (val instanceof String)
                        {
                    } else if (Date.class == fieldType) {
                        if (val instanceof String) {
                            val = DateUtils.parseDate(val);
                        }
                        else if (val instanceof Double)
                        {
                        } else if (val instanceof Double) {
                            val = DateUtil.getJavaDate((Double) val);
                        }
                    }
                    else if (Boolean.TYPE == fieldType || Boolean.class == fieldType)
                    {
                    } else if (Boolean.TYPE == fieldType || Boolean.class == fieldType) {
                        val = Convert.toBool(val, false);
                    }
                    if (StringUtils.isNotNull(fieldType))
                    {
                    if (StringUtils.isNotNull(fieldType)) {
                        String propertyName = field.getName();
                        if (StringUtils.isNotEmpty(attr.targetAttr()))
                        {
                        if (StringUtils.isNotEmpty(attr.targetAttr())) {
                            propertyName = field.getName() + "." + attr.targetAttr();
                        }
                        else if (StringUtils.isNotEmpty(attr.readConverterExp()))
                        {
                        } else if (StringUtils.isNotEmpty(attr.readConverterExp())) {
                            val = reverseByExp(Convert.toStr(val), attr.readConverterExp(), attr.separator());
                        }
                        else if (StringUtils.isNotEmpty(attr.dictType()))
                        {
                        } else if (StringUtils.isNotEmpty(attr.dictType())) {
                            val = reverseDictByExp(Convert.toStr(val), attr.dictType(), attr.separator());
                        }
                        else if (!attr.handler().equals(ExcelHandlerAdapter.class))
                        {
                        } else if (!attr.handler().equals(ExcelHandlerAdapter.class)) {
                            val = dataFormatHandlerAdapter(val, attr);
                        }
                        else if (ColumnType.IMAGE == attr.cellType() && StringUtils.isNotEmpty(pictures))
                        {
                        } else if (ColumnType.IMAGE == attr.cellType() && StringUtils.isNotEmpty(pictures)) {
                            PictureData image = pictures.get(row.getRowNum() + "_" + entry.getKey());
                            if (image == null)
                            {
                            if (image == null) {
                                val = "";
                            }
                            else
                            {
                            } else {
                                byte[] data = image.getData();
                                val = FileUtils.writeImportBytes(data);
                            }
@@ -482,54 +397,50 @@
    /**
     * å¯¹list数据源将其里面的数据导入到excel表单
     *
     * @param list å¯¼å‡ºæ•°æ®é›†åˆ
     *
     * @param list      å¯¼å‡ºæ•°æ®é›†åˆ
     * @param sheetName å·¥ä½œè¡¨çš„名称
     * @return ç»“æžœ
     */
    public AjaxResult exportExcel(List<T> list, String sheetName)
    {
    public AjaxResult exportExcel(List<T> list, String sheetName) {
        return exportExcel(list, sheetName, StringUtils.EMPTY);
    }
    /**
     * å¯¹list数据源将其里面的数据导入到excel表单
     *
     * @param list å¯¼å‡ºæ•°æ®é›†åˆ
     *
     * @param list      å¯¼å‡ºæ•°æ®é›†åˆ
     * @param sheetName å·¥ä½œè¡¨çš„名称
     * @param title æ ‡é¢˜
     * @param title     æ ‡é¢˜
     * @return ç»“æžœ
     */
    public AjaxResult exportExcel(List<T> list, String sheetName, String title)
    {
    public AjaxResult exportExcel(List<T> list, String sheetName, String title) {
        this.init(list, sheetName, title, Type.EXPORT);
        return exportExcel();
    }
    /**
     * å¯¹list数据源将其里面的数据导入到excel表单
     *
     * @param response è¿”回数据
     * @param list å¯¼å‡ºæ•°æ®é›†åˆ
     *
     * @param response  è¿”回数据
     * @param list      å¯¼å‡ºæ•°æ®é›†åˆ
     * @param sheetName å·¥ä½œè¡¨çš„名称
     * @return ç»“æžœ
     */
    public void exportExcel(HttpServletResponse response, List<T> list, String sheetName)
    {
    public void exportExcel(HttpServletResponse response, List<T> list, String sheetName) {
        exportExcel(response, list, sheetName, StringUtils.EMPTY);
    }
    /**
     * å¯¹list数据源将其里面的数据导入到excel表单
     *
     * @param response è¿”回数据
     * @param list å¯¼å‡ºæ•°æ®é›†åˆ
     *
     * @param response  è¿”回数据
     * @param list      å¯¼å‡ºæ•°æ®é›†åˆ
     * @param sheetName å·¥ä½œè¡¨çš„名称
     * @param title æ ‡é¢˜
     * @param title     æ ‡é¢˜
     * @return ç»“æžœ
     */
    public void exportExcel(HttpServletResponse response, List<T> list, String sheetName, String title)
    {
    public void exportExcel(HttpServletResponse response, List<T> list, String sheetName, String title) {
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        this.init(list, sheetName, title, Type.EXPORT);
@@ -538,48 +449,44 @@
    /**
     * å¯¹list数据源将其里面的数据导入到excel表单
     *
     *
     * @param sheetName å·¥ä½œè¡¨çš„名称
     * @return ç»“æžœ
     */
    public AjaxResult importTemplateExcel(String sheetName)
    {
    public AjaxResult importTemplateExcel(String sheetName) {
        return importTemplateExcel(sheetName, StringUtils.EMPTY);
    }
    /**
     * å¯¹list数据源将其里面的数据导入到excel表单
     *
     *
     * @param sheetName å·¥ä½œè¡¨çš„名称
     * @param title æ ‡é¢˜
     * @param title     æ ‡é¢˜
     * @return ç»“æžœ
     */
    public AjaxResult importTemplateExcel(String sheetName, String title)
    {
    public AjaxResult importTemplateExcel(String sheetName, String title) {
        this.init(null, sheetName, title, Type.IMPORT);
        return exportExcel();
    }
    /**
     * å¯¹list数据源将其里面的数据导入到excel表单
     *
     *
     * @param sheetName å·¥ä½œè¡¨çš„名称
     * @return ç»“æžœ
     */
    public void importTemplateExcel(HttpServletResponse response, String sheetName)
    {
    public void importTemplateExcel(HttpServletResponse response, String sheetName) {
        importTemplateExcel(response, sheetName, StringUtils.EMPTY);
    }
    /**
     * å¯¹list数据源将其里面的数据导入到excel表单
     *
     *
     * @param sheetName å·¥ä½œè¡¨çš„名称
     * @param title æ ‡é¢˜
     * @param title     æ ‡é¢˜
     * @return ç»“æžœ
     */
    public void importTemplateExcel(HttpServletResponse response, String sheetName, String title)
    {
    public void importTemplateExcel(HttpServletResponse response, String sheetName, String title) {
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        this.init(null, sheetName, title, Type.IMPORT);
@@ -588,49 +495,37 @@
    /**
     * å¯¹list数据源将其里面的数据导入到excel表单
     *
     *
     * @return ç»“æžœ
     */
    public void exportExcel(HttpServletResponse response)
    {
        try
        {
    public void exportExcel(HttpServletResponse response) {
        try {
            writeSheet();
            wb.write(response.getOutputStream());
        }
        catch (Exception e)
        {
        } catch (Exception e) {
            log.error("导出Excel异常{}", e.getMessage());
        }
        finally
        {
        } finally {
            IOUtils.closeQuietly(wb);
        }
    }
    /**
     * å¯¹list数据源将其里面的数据导入到excel表单
     *
     *
     * @return ç»“æžœ
     */
    public AjaxResult exportExcel()
    {
    public AjaxResult exportExcel() {
        OutputStream out = null;
        try
        {
        try {
            writeSheet();
            String filename = encodingFilename(sheetName);
            out = new FileOutputStream(getAbsoluteFile(filename));
            wb.write(out);
            return AjaxResult.success(filename);
        }
        catch (Exception e)
        {
        } catch (Exception e) {
            log.error("导出Excel异常{}", e.getMessage());
            throw new UtilException("导出Excel失败,请联系网站管理员!");
        }
        finally
        {
        } finally {
            IOUtils.closeQuietly(wb);
            IOUtils.closeQuietly(out);
        }
@@ -639,37 +534,29 @@
    /**
     * åˆ›å»ºå†™å…¥æ•°æ®åˆ°Sheet
     */
    public void writeSheet()
    {
    public void writeSheet() {
        // å–出一共有多少个sheet.
        int sheetNo = Math.max(1, (int) Math.ceil(list.size() * 1.0 / sheetSize));
        for (int index = 0; index < sheetNo; index++)
        {
        for (int index = 0; index < sheetNo; index++) {
            createSheet(sheetNo, index);
            // äº§ç”Ÿä¸€è¡Œ
            Row row = sheet.createRow(rownum);
            int column = 0;
            // å†™å…¥å„个字段的列头名称
            for (Object[] os : fields)
            {
            for (Object[] os : fields) {
                Field field = (Field) os[0];
                Excel excel = (Excel) os[1];
                if (Collection.class.isAssignableFrom(field.getType()))
                {
                    for (Field subField : subFields)
                    {
                if (Collection.class.isAssignableFrom(field.getType())) {
                    for (Field subField : subFields) {
                        Excel subExcel = subField.getAnnotation(Excel.class);
                        this.createHeadCell(subExcel, row, column++);
                    }
                }
                else
                {
                } else {
                    this.createHeadCell(excel, row, column++);
                }
            }
            if (Type.EXPORT.equals(type))
            {
            if (Type.EXPORT.equals(type)) {
                fillExcelData(index, row);
                addStatisticsRow();
            }
@@ -678,57 +565,45 @@
    /**
     * å¡«å……excel数据
     *
     *
     * @param index åºå·
     * @param row å•元格行
     * @param row   å•元格行
     */
    @SuppressWarnings("unchecked")
    public void fillExcelData(int index, Row row)
    {
    public void fillExcelData(int index, Row row) {
        int startNo = index * sheetSize;
        int endNo = Math.min(startNo + sheetSize, list.size());
        int rowNo = (1 + rownum) - startNo;
        for (int i = startNo; i < endNo; i++)
        {
        for (int i = startNo; i < endNo; i++) {
            rowNo = isSubList() ? (i > 1 ? rowNo + 1 : rowNo + i) : i + 1 + rownum - startNo;
            row = sheet.createRow(rowNo);
            // å¾—到导出对象.
            T vo = (T) list.get(i);
            Collection<?> subList = null;
            if (isSubList())
            {
                if (isSubListValue(vo))
                {
            if (isSubList()) {
                if (isSubListValue(vo)) {
                    subList = getListCellValue(vo);
                    subMergedLastRowNum = subMergedLastRowNum + subList.size();
                }
                else
                {
                } else {
                    subMergedFirstRowNum++;
                    subMergedLastRowNum++;
                }
            }
            int column = 0;
            for (Object[] os : fields)
            {
            for (Object[] os : fields) {
                Field field = (Field) os[0];
                Excel excel = (Excel) os[1];
                if (Collection.class.isAssignableFrom(field.getType()) && StringUtils.isNotNull(subList))
                {
                if (Collection.class.isAssignableFrom(field.getType()) && StringUtils.isNotNull(subList)) {
                    boolean subFirst = false;
                    for (Object obj : subList)
                    {
                        if (subFirst)
                        {
                    for (Object obj : subList) {
                        if (subFirst) {
                            rowNo++;
                            row = sheet.createRow(rowNo);
                        }
                        List<Field> subFields = FieldUtils.getFieldsListWithAnnotation(obj.getClass(), Excel.class);
                        int subIndex = 0;
                        for (Field subField : subFields)
                        {
                            if (subField.isAnnotationPresent(Excel.class))
                            {
                        for (Field subField : subFields) {
                            if (subField.isAnnotationPresent(Excel.class)) {
                                subField.setAccessible(true);
                                Excel attr = subField.getAnnotation(Excel.class);
                                this.addCell(attr, row, (T) obj, subField, column + subIndex);
@@ -738,9 +613,7 @@
                        subFirst = true;
                    }
                    this.subMergedFirstRowNum = this.subMergedFirstRowNum + subList.size();
                }
                else
                {
                } else {
                    this.addCell(excel, row, vo, field, column++);
                }
            }
@@ -749,12 +622,11 @@
    /**
     * åˆ›å»ºè¡¨æ ¼æ ·å¼
     *
     *
     * @param wb å·¥ä½œè–„对象
     * @return æ ·å¼åˆ—表
     */
    private Map<String, CellStyle> createStyles(Workbook wb)
    {
    private Map<String, CellStyle> createStyles(Workbook wb) {
        // å†™å…¥å„条记录,每条记录对应excel表中的一行
        Map<String, CellStyle> styles = new HashMap<String, CellStyle>();
        CellStyle style = wb.createCellStyle();
@@ -782,6 +654,8 @@
        dataFont.setFontName("Arial");
        dataFont.setFontHeightInPoints((short) 10);
        style.setFont(dataFont);
        DataFormat format = wb.createDataFormat();
        style.setDataFormat(format.getFormat("@"));//设置文本格式
        styles.put("data", style);
        style = wb.createCellStyle();
@@ -802,19 +676,16 @@
    /**
     * æ ¹æ®Excel注解创建表格头样式
     *
     *
     * @param wb å·¥ä½œè–„对象
     * @return è‡ªå®šä¹‰æ ·å¼åˆ—表
     */
    private Map<String, CellStyle> annotationHeaderStyles(Workbook wb, Map<String, CellStyle> styles)
    {
    private Map<String, CellStyle> annotationHeaderStyles(Workbook wb, Map<String, CellStyle> styles) {
        Map<String, CellStyle> headerStyles = new HashMap<String, CellStyle>();
        for (Object[] os : fields)
        {
        for (Object[] os : fields) {
            Excel excel = (Excel) os[1];
            String key = StringUtils.format("header_{}_{}", excel.headerColor(), excel.headerBackgroundColor());
            if (!headerStyles.containsKey(key))
            {
            if (!headerStyles.containsKey(key)) {
                CellStyle style = wb.createCellStyle();
                style.cloneStyleFrom(styles.get("data"));
                style.setAlignment(HorizontalAlignment.CENTER);
@@ -835,19 +706,16 @@
    /**
     * æ ¹æ®Excel注解创建表格列样式
     *
     *
     * @param wb å·¥ä½œè–„对象
     * @return è‡ªå®šä¹‰æ ·å¼åˆ—表
     */
    private Map<String, CellStyle> annotationDataStyles(Workbook wb)
    {
    private Map<String, CellStyle> annotationDataStyles(Workbook wb) {
        Map<String, CellStyle> styles = new HashMap<String, CellStyle>();
        for (Object[] os : fields)
        {
        for (Object[] os : fields) {
            Excel excel = (Excel) os[1];
            String key = StringUtils.format("data_{}_{}_{}", excel.align(), excel.color(), excel.backgroundColor());
            if (!styles.containsKey(key))
            {
            if (!styles.containsKey(key)) {
                CellStyle style = wb.createCellStyle();
                style.setAlignment(excel.align());
                style.setVerticalAlignment(VerticalAlignment.CENTER);
@@ -875,20 +743,17 @@
    /**
     * åˆ›å»ºå•元格
     */
    public Cell createHeadCell(Excel attr, Row row, int column)
    {
    public Cell createHeadCell(Excel attr, Row row, int column) {
        // åˆ›å»ºåˆ—
        Cell cell = row.createCell(column);
        // å†™å…¥åˆ—信息
        cell.setCellValue(attr.name());
        setDataValidation(attr, row, column);
        cell.setCellStyle(styles.get(StringUtils.format("header_{}_{}", attr.headerColor(), attr.headerBackgroundColor())));
        if (isSubList())
        {
        if (isSubList()) {
            // å¡«å……默认样式,防止合并单元格样式失效
            sheet.setDefaultColumnStyle(column, styles.get(StringUtils.format("data_{}_{}_{}", attr.align(), attr.color(), attr.backgroundColor())));
            if (attr.needMerge())
            {
            if (attr.needMerge()) {
                sheet.addMergedRegion(new CellRangeAddress(rownum - 1, rownum, column, column));
            }
        }
@@ -897,43 +762,32 @@
    /**
     * è®¾ç½®å•元格信息
     *
     *
     * @param value å•元格值
     * @param attr æ³¨è§£ç›¸å…³
     * @param cell å•元格信息
     * @param attr  æ³¨è§£ç›¸å…³
     * @param cell  å•元格信息
     */
    public void setCellVo(Object value, Excel attr, Cell cell)
    {
        if (ColumnType.STRING == attr.cellType())
        {
    public void setCellVo(Object value, Excel attr, Cell cell) {
        if (ColumnType.STRING == attr.cellType()) {
            String cellValue = Convert.toStr(value);
            // å¯¹äºŽä»»ä½•以表达式触发字符 =-+@开头的单元格,直接使用tab字符作为前缀,防止CSV注入。
            if (StringUtils.startsWithAny(cellValue, FORMULA_STR))
            {
            if (StringUtils.startsWithAny(cellValue, FORMULA_STR)) {
                cellValue = RegExUtils.replaceFirst(cellValue, FORMULA_REGEX_STR, "\t$0");
            }
            if (value instanceof Collection && StringUtils.equals("[]", cellValue))
            {
            if (value instanceof Collection && StringUtils.equals("[]", cellValue)) {
                cellValue = StringUtils.EMPTY;
            }
            cell.setCellValue(StringUtils.isNull(cellValue) ? attr.defaultValue() : cellValue + attr.suffix());
        }
        else if (ColumnType.NUMERIC == attr.cellType())
        {
            if (StringUtils.isNotNull(value))
            {
        } else if (ColumnType.NUMERIC == attr.cellType()) {
            if (StringUtils.isNotNull(value)) {
                cell.setCellValue(StringUtils.contains(Convert.toStr(value), ".") ? Convert.toDouble(value) : Convert.toInt(value));
            }
        }
        else if (ColumnType.IMAGE == attr.cellType())
        {
        } else if (ColumnType.IMAGE == attr.cellType()) {
            ClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, (short) cell.getColumnIndex(), cell.getRow().getRowNum(), (short) (cell.getColumnIndex() + 1), cell.getRow().getRowNum() + 1);
            String imagePath = Convert.toStr(value);
            if (StringUtils.isNotEmpty(imagePath))
            {
            if (StringUtils.isNotEmpty(imagePath)) {
                byte[] data = ImageUtils.getImage(imagePath);
                getDrawingPatriarch(cell.getSheet()).createPicture(anchor,
                        cell.getSheet().getWorkbook().addPicture(data, getImageType(data)));
                getDrawingPatriarch(cell.getSheet()).createPicture(anchor, cell.getSheet().getWorkbook().addPicture(data, getImageType(data)));
            }
        }
    }
@@ -941,10 +795,8 @@
    /**
     * èŽ·å–ç”»å¸ƒ
     */
    public static Drawing<?> getDrawingPatriarch(Sheet sheet)
    {
        if (sheet.getDrawingPatriarch() == null)
        {
    public static Drawing<?> getDrawingPatriarch(Sheet sheet) {
        if (sheet.getDrawingPatriarch() == null) {
            sheet.createDrawingPatriarch();
        }
        return sheet.getDrawingPatriarch();
@@ -953,15 +805,11 @@
    /**
     * èŽ·å–å›¾ç‰‡ç±»åž‹,设置图片插入类型
     */
    public int getImageType(byte[] value)
    {
    public int getImageType(byte[] value) {
        String type = FileTypeUtils.getFileExtendName(value);
        if ("JPG".equalsIgnoreCase(type))
        {
        if ("JPG".equalsIgnoreCase(type)) {
            return Workbook.PICTURE_TYPE_JPEG;
        }
        else if ("PNG".equalsIgnoreCase(type))
        {
        } else if ("PNG".equalsIgnoreCase(type)) {
            return Workbook.PICTURE_TYPE_PNG;
        }
        return Workbook.PICTURE_TYPE_JPEG;
@@ -970,26 +818,18 @@
    /**
     * åˆ›å»ºè¡¨æ ¼æ ·å¼
     */
    public void setDataValidation(Excel attr, Row row, int column)
    {
        if (attr.name().indexOf("注:") >= 0)
        {
    public void setDataValidation(Excel attr, Row row, int column) {
        if (attr.name().indexOf("注:") >= 0) {
            sheet.setColumnWidth(column, 6000);
        }
        else
        {
        } else {
            // è®¾ç½®åˆ—宽
            sheet.setColumnWidth(column, (int) ((attr.width() + 0.72) * 256));
        }
        if (StringUtils.isNotEmpty(attr.prompt()) || attr.combo().length > 0)
        {
            if (attr.combo().length > 15 || StringUtils.join(attr.combo()).length() > 255)
            {
        if (StringUtils.isNotEmpty(attr.prompt()) || attr.combo().length > 0) {
            if (attr.combo().length > 15 || StringUtils.join(attr.combo()).length() > 255) {
                // å¦‚果下拉数大于15或字符串长度大于255,则使用一个新sheet存储,避免生成的模板下拉值获取不到
                setXSSFValidationWithHidden(sheet, attr.combo(), attr.prompt(), 1, 100, column, column);
            }
            else
            {
            } else {
                // æç¤ºä¿¡æ¯æˆ–只能选择不能输入的列内容.
                setPromptOrValidation(sheet, attr.combo(), attr.prompt(), 1, 100, column, column);
            }
@@ -999,20 +839,16 @@
    /**
     * æ·»åŠ å•å…ƒæ ¼
     */
    public Cell addCell(Excel attr, Row row, T vo, Field field, int column)
    {
    public Cell addCell(Excel attr, Row row, T vo, Field field, int column) {
        Cell cell = null;
        try
        {
        try {
            // è®¾ç½®è¡Œé«˜
            row.setHeight(maxHeight);
            // æ ¹æ®Excel中设置情况决定是否导出,有些情况需要保持为空,希望用户填写这一列.
            if (attr.isExport())
            {
            if (attr.isExport()) {
                // åˆ›å»ºcell
                cell = row.createCell(column);
                if (isSubListValue(vo) && getListCellValue(vo).size() > 1 && attr.needMerge())
                {
                if (isSubListValue(vo) && getListCellValue(vo).size() > 1 && attr.needMerge()) {
                    CellRangeAddress cellAddress = new CellRangeAddress(subMergedFirstRowNum, subMergedLastRowNum, column, column);
                    sheet.addMergedRegion(cellAddress);
                }
@@ -1024,36 +860,23 @@
                String readConverterExp = attr.readConverterExp();
                String separator = attr.separator();
                String dictType = attr.dictType();
                if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value))
                {
                if (StringUtils.isNotEmpty(dateFormat) && StringUtils.isNotNull(value)) {
                    cell.setCellValue(parseDateToStr(dateFormat, value));
                }
                else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value))
                {
                } else if (StringUtils.isNotEmpty(readConverterExp) && StringUtils.isNotNull(value)) {
                    cell.setCellValue(convertByExp(Convert.toStr(value), readConverterExp, separator));
                }
                else if (StringUtils.isNotEmpty(dictType) && StringUtils.isNotNull(value))
                {
                } else if (StringUtils.isNotEmpty(dictType) && StringUtils.isNotNull(value)) {
                    cell.setCellValue(convertDictByExp(Convert.toStr(value), dictType, separator));
                }
                else if (value instanceof BigDecimal && -1 != attr.scale())
                {
                } else if (value instanceof BigDecimal && -1 != attr.scale()) {
                    cell.setCellValue((((BigDecimal) value).setScale(attr.scale(), attr.roundingMode())).doubleValue());
                }
                else if (!attr.handler().equals(ExcelHandlerAdapter.class))
                {
                } else if (!attr.handler().equals(ExcelHandlerAdapter.class)) {
                    cell.setCellValue(dataFormatHandlerAdapter(value, attr));
                }
                else
                {
                } else {
                    // è®¾ç½®åˆ—类型
                    setCellVo(value, attr, cell);
                }
                addStatisticsData(column, Convert.toStr(value), attr);
            }
        }
        catch (Exception e)
        {
        } catch (Exception e) {
            log.error("导出Excel失败{}", e);
        }
        return cell;
@@ -1061,36 +884,30 @@
    /**
     * è®¾ç½® POI XSSFSheet å•元格提示或选择框
     *
     * @param sheet è¡¨å•
     * @param textlist ä¸‹æ‹‰æ¡†æ˜¾ç¤ºçš„内容
     *
     * @param sheet         è¡¨å•
     * @param textlist      ä¸‹æ‹‰æ¡†æ˜¾ç¤ºçš„内容
     * @param promptContent æç¤ºå†…容
     * @param firstRow å¼€å§‹è¡Œ
     * @param endRow ç»“束行
     * @param firstCol å¼€å§‹åˆ—
     * @param endCol ç»“束列
     * @param firstRow      å¼€å§‹è¡Œ
     * @param endRow        ç»“束行
     * @param firstCol      å¼€å§‹åˆ—
     * @param endCol        ç»“束列
     */
    public void setPromptOrValidation(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow,
            int firstCol, int endCol)
    {
    public void setPromptOrValidation(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow, int firstCol, int endCol) {
        DataValidationHelper helper = sheet.getDataValidationHelper();
        DataValidationConstraint constraint = textlist.length > 0 ? helper.createExplicitListConstraint(textlist) : helper.createCustomConstraint("DD1");
        CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol);
        DataValidation dataValidation = helper.createValidation(constraint, regions);
        if (StringUtils.isNotEmpty(promptContent))
        {
        if (StringUtils.isNotEmpty(promptContent)) {
            // å¦‚果设置了提示信息则鼠标放上去提示
            dataValidation.createPromptBox("", promptContent);
            dataValidation.setShowPromptBox(true);
        }
        // å¤„理Excel兼容性问题
        if (dataValidation instanceof XSSFDataValidation)
        {
        if (dataValidation instanceof XSSFDataValidation) {
            dataValidation.setSuppressDropDownArrow(true);
            dataValidation.setShowErrorBox(true);
        }
        else
        {
        } else {
            dataValidation.setSuppressDropDownArrow(false);
        }
        sheet.addValidationData(dataValidation);
@@ -1098,21 +915,19 @@
    /**
     * è®¾ç½®æŸäº›åˆ—的值只能输入预制的数据,显示下拉框(兼容超出一定数量的下拉框).
     *
     * @param sheet è¦è®¾ç½®çš„sheet.
     * @param textlist ä¸‹æ‹‰æ¡†æ˜¾ç¤ºçš„内容
     *
     * @param sheet         è¦è®¾ç½®çš„sheet.
     * @param textlist      ä¸‹æ‹‰æ¡†æ˜¾ç¤ºçš„内容
     * @param promptContent æç¤ºå†…容
     * @param firstRow å¼€å§‹è¡Œ
     * @param endRow ç»“束行
     * @param firstCol å¼€å§‹åˆ—
     * @param endCol ç»“束列
     * @param firstRow      å¼€å§‹è¡Œ
     * @param endRow        ç»“束行
     * @param firstCol      å¼€å§‹åˆ—
     * @param endCol        ç»“束列
     */
    public void setXSSFValidationWithHidden(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow, int firstCol, int endCol)
    {
    public void setXSSFValidationWithHidden(Sheet sheet, String[] textlist, String promptContent, int firstRow, int endRow, int firstCol, int endCol) {
        String hideSheetName = "combo_" + firstCol + "_" + endCol;
        Sheet hideSheet = wb.createSheet(hideSheetName); // ç”¨äºŽå­˜å‚¨ ä¸‹æ‹‰èœå•数据
        for (int i = 0; i < textlist.length; i++)
        {
        for (int i = 0; i < textlist.length; i++) {
            hideSheet.createRow(i).createCell(0).setCellValue(textlist[i]);
        }
        // åˆ›å»ºåç§°ï¼Œå¯è¢«å…¶ä»–单元格引用
@@ -1126,20 +941,16 @@
        CellRangeAddressList regions = new CellRangeAddressList(firstRow, endRow, firstCol, endCol);
        // æ•°æ®æœ‰æ•ˆæ€§å¯¹è±¡
        DataValidation dataValidation = helper.createValidation(constraint, regions);
        if (StringUtils.isNotEmpty(promptContent))
        {
        if (StringUtils.isNotEmpty(promptContent)) {
            // å¦‚果设置了提示信息则鼠标放上去提示
            dataValidation.createPromptBox("", promptContent);
            dataValidation.setShowPromptBox(true);
        }
        // å¤„理Excel兼容性问题
        if (dataValidation instanceof XSSFDataValidation)
        {
        if (dataValidation instanceof XSSFDataValidation) {
            dataValidation.setSuppressDropDownArrow(true);
            dataValidation.setShowErrorBox(true);
        }
        else
        {
        } else {
            dataValidation.setSuppressDropDownArrow(false);
        }
@@ -1150,34 +961,26 @@
    /**
     * è§£æžå¯¼å‡ºå€¼ 0=男,1=女,2=未知
     *
     *
     * @param propertyValue å‚数值
     * @param converterExp ç¿»è¯‘注解
     * @param separator åˆ†éš”符
     * @param converterExp  ç¿»è¯‘注解
     * @param separator     åˆ†éš”符
     * @return è§£æžåŽå€¼
     */
    public static String convertByExp(String propertyValue, String converterExp, String separator)
    {
    public static String convertByExp(String propertyValue, String converterExp, String separator) {
        StringBuilder propertyString = new StringBuilder();
        String[] convertSource = converterExp.split(",");
        for (String item : convertSource)
        {
        for (String item : convertSource) {
            String[] itemArray = item.split("=");
            if (StringUtils.containsAny(propertyValue, separator))
            {
                for (String value : propertyValue.split(separator))
                {
                    if (itemArray[0].equals(value))
                    {
            if (StringUtils.containsAny(propertyValue, separator)) {
                for (String value : propertyValue.split(separator)) {
                    if (itemArray[0].equals(value)) {
                        propertyString.append(itemArray[1] + separator);
                        break;
                    }
                }
            }
            else
            {
                if (itemArray[0].equals(propertyValue))
                {
            } else {
                if (itemArray[0].equals(propertyValue)) {
                    return itemArray[1];
                }
            }
@@ -1187,34 +990,26 @@
    /**
     * åå‘解析值 ç”·=0,女=1,未知=2
     *
     *
     * @param propertyValue å‚数值
     * @param converterExp ç¿»è¯‘注解
     * @param separator åˆ†éš”符
     * @param converterExp  ç¿»è¯‘注解
     * @param separator     åˆ†éš”符
     * @return è§£æžåŽå€¼
     */
    public static String reverseByExp(String propertyValue, String converterExp, String separator)
    {
    public static String reverseByExp(String propertyValue, String converterExp, String separator) {
        StringBuilder propertyString = new StringBuilder();
        String[] convertSource = converterExp.split(",");
        for (String item : convertSource)
        {
        for (String item : convertSource) {
            String[] itemArray = item.split("=");
            if (StringUtils.containsAny(propertyValue, separator))
            {
                for (String value : propertyValue.split(separator))
                {
                    if (itemArray[1].equals(value))
                    {
            if (StringUtils.containsAny(propertyValue, separator)) {
                for (String value : propertyValue.split(separator)) {
                    if (itemArray[1].equals(value)) {
                        propertyString.append(itemArray[0] + separator);
                        break;
                    }
                }
            }
            else
            {
                if (itemArray[1].equals(propertyValue))
                {
            } else {
                if (itemArray[1].equals(propertyValue)) {
                    return itemArray[0];
                }
            }
@@ -1224,47 +1019,41 @@
    /**
     * è§£æžå­—典值
     *
     *
     * @param dictValue å­—典值
     * @param dictType å­—典类型
     * @param dictType  å­—典类型
     * @param separator åˆ†éš”符
     * @return å­—典标签
     */
    public static String convertDictByExp(String dictValue, String dictType, String separator)
    {
    public static String convertDictByExp(String dictValue, String dictType, String separator) {
        return DictUtils.getDictLabel(dictType, dictValue, separator);
    }
    /**
     * åå‘解析值字典值
     *
     *
     * @param dictLabel å­—典标签
     * @param dictType å­—典类型
     * @param dictType  å­—典类型
     * @param separator åˆ†éš”符
     * @return å­—典值
     */
    public static String reverseDictByExp(String dictLabel, String dictType, String separator)
    {
    public static String reverseDictByExp(String dictLabel, String dictType, String separator) {
        return DictUtils.getDictValue(dictType, dictLabel, separator);
    }
    /**
     * æ•°æ®å¤„理器
     *
     *
     * @param value æ•°æ®å€¼
     * @param excel æ•°æ®æ³¨è§£
     * @return
     */
    public String dataFormatHandlerAdapter(Object value, Excel excel)
    {
        try
        {
    public String dataFormatHandlerAdapter(Object value, Excel excel) {
        try {
            Object instance = excel.handler().newInstance();
            Method formatMethod = excel.handler().getMethod("format", new Class[] { Object.class, String[].class });
            Method formatMethod = excel.handler().getMethod("format", new Class[]{Object.class, String[].class});
            value = formatMethod.invoke(instance, value, excel.args());
        }
        catch (Exception e)
        {
        } catch (Exception e) {
            log.error("不能格式化数据 " + excel.handler(), e.getMessage());
        }
        return Convert.toStr(value);
@@ -1273,21 +1062,15 @@
    /**
     * åˆè®¡ç»Ÿè®¡ä¿¡æ¯
     */
    private void addStatisticsData(Integer index, String text, Excel entity)
    {
        if (entity != null && entity.isStatistics())
        {
    private void addStatisticsData(Integer index, String text, Excel entity) {
        if (entity != null && entity.isStatistics()) {
            Double temp = 0D;
            if (!statistics.containsKey(index))
            {
            if (!statistics.containsKey(index)) {
                statistics.put(index, temp);
            }
            try
            {
            try {
                temp = Double.valueOf(text);
            }
            catch (NumberFormatException e)
            {
            } catch (NumberFormatException e) {
            }
            statistics.put(index, statistics.get(index) + temp);
        }
@@ -1296,18 +1079,15 @@
    /**
     * åˆ›å»ºç»Ÿè®¡è¡Œ
     */
    public void addStatisticsRow()
    {
        if (statistics.size() > 0)
        {
    public void addStatisticsRow() {
        if (statistics.size() > 0) {
            Row row = sheet.createRow(sheet.getLastRowNum() + 1);
            Set<Integer> keys = statistics.keySet();
            Cell cell = row.createCell(0);
            cell.setCellStyle(styles.get("total"));
            cell.setCellValue("合计");
            for (Integer key : keys)
            {
            for (Integer key : keys) {
                cell = row.createCell(key);
                cell.setCellStyle(styles.get("total"));
                cell.setCellValue(DOUBLE_FORMAT.format(statistics.get(key)));
@@ -1319,23 +1099,20 @@
    /**
     * ç¼–码文件名
     */
    public String encodingFilename(String filename)
    {
    public String encodingFilename(String filename) {
        filename = UUID.randomUUID().toString() + "_" + filename + ".xlsx";
        return filename;
    }
    /**
     * èŽ·å–ä¸‹è½½è·¯å¾„
     *
     *
     * @param filename æ–‡ä»¶åç§°
     */
    public String getAbsoluteFile(String filename)
    {
    public String getAbsoluteFile(String filename) {
        String downloadPath = RuoYiConfig.getDownloadPath() + filename;
        File desc = new File(downloadPath);
        if (!desc.getParentFile().exists())
        {
        if (!desc.getParentFile().exists()) {
            desc.getParentFile().mkdirs();
        }
        return downloadPath;
@@ -1343,29 +1120,23 @@
    /**
     * èŽ·å–bean中的属性值
     *
     * @param vo å®žä½“对象
     *
     * @param vo    å®žä½“对象
     * @param field å­—段
     * @param excel æ³¨è§£
     * @return æœ€ç»ˆçš„属性值
     * @throws Exception
     */
    private Object getTargetValue(T vo, Field field, Excel excel) throws Exception
    {
    private Object getTargetValue(T vo, Field field, Excel excel) throws Exception {
        Object o = field.get(vo);
        if (StringUtils.isNotEmpty(excel.targetAttr()))
        {
        if (StringUtils.isNotEmpty(excel.targetAttr())) {
            String target = excel.targetAttr();
            if (target.contains("."))
            {
            if (target.contains(".")) {
                String[] targets = target.split("[.]");
                for (String name : targets)
                {
                for (String name : targets) {
                    o = getValue(o, name);
                }
            }
            else
            {
            } else {
                o = getValue(o, target);
            }
        }
@@ -1374,16 +1145,14 @@
    /**
     * ä»¥ç±»çš„属性的get方法方法形式获取值
     *
     *
     * @param o
     * @param name
     * @return value
     * @throws Exception
     */
    private Object getValue(Object o, String name) throws Exception
    {
        if (StringUtils.isNotNull(o) && StringUtils.isNotEmpty(name))
        {
    private Object getValue(Object o, String name) throws Exception {
        if (StringUtils.isNotNull(o) && StringUtils.isNotEmpty(name)) {
            Class<?> clazz = o.getClass();
            Field field = clazz.getDeclaredField(name);
            field.setAccessible(true);
@@ -1395,8 +1164,7 @@
    /**
     * å¾—到所有定义字段
     */
    private void createExcelField()
    {
    private void createExcelField() {
        this.fields = getFields();
        this.fields = this.fields.stream().sorted(Comparator.comparing(objects -> ((Excel) objects[1]).sort())).collect(Collectors.toList());
        this.maxHeight = getRowHeight();
@@ -1405,27 +1173,21 @@
    /**
     * èŽ·å–å­—æ®µæ³¨è§£ä¿¡æ¯
     */
    public List<Object[]> getFields()
    {
    public List<Object[]> getFields() {
        List<Object[]> fields = new ArrayList<Object[]>();
        List<Field> tempFields = new ArrayList<>();
        tempFields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields()));
        tempFields.addAll(Arrays.asList(clazz.getDeclaredFields()));
        for (Field field : tempFields)
        {
            if (!ArrayUtils.contains(this.excludeFields, field.getName()))
            {
        for (Field field : tempFields) {
            if (!ArrayUtils.contains(this.excludeFields, field.getName())) {
                // å•注解
                if (field.isAnnotationPresent(Excel.class))
                {
                if (field.isAnnotationPresent(Excel.class)) {
                    Excel attr = field.getAnnotation(Excel.class);
                    if (attr != null && (attr.type() == Type.ALL || attr.type() == type))
                    {
                    if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) {
                        field.setAccessible(true);
                        fields.add(new Object[] { field, attr });
                        fields.add(new Object[]{field, attr});
                    }
                    if (Collection.class.isAssignableFrom(field.getType()))
                    {
                    if (Collection.class.isAssignableFrom(field.getType())) {
                        subMethod = getSubMethod(field.getName(), clazz);
                        ParameterizedType pt = (ParameterizedType) field.getGenericType();
                        Class<?> subClass = (Class<?>) pt.getActualTypeArguments()[0];
@@ -1434,16 +1196,13 @@
                }
                // å¤šæ³¨è§£
                if (field.isAnnotationPresent(Excels.class))
                {
                if (field.isAnnotationPresent(Excels.class)) {
                    Excels attrs = field.getAnnotation(Excels.class);
                    Excel[] excels = attrs.value();
                    for (Excel attr : excels)
                    {
                        if (attr != null && (attr.type() == Type.ALL || attr.type() == type))
                        {
                    for (Excel attr : excels) {
                        if (attr != null && (attr.type() == Type.ALL || attr.type() == type)) {
                            field.setAccessible(true);
                            fields.add(new Object[] { field, attr });
                            fields.add(new Object[]{field, attr});
                        }
                    }
                }
@@ -1455,11 +1214,9 @@
    /**
     * æ ¹æ®æ³¨è§£èŽ·å–æœ€å¤§è¡Œé«˜
     */
    public short getRowHeight()
    {
    public short getRowHeight() {
        double maxHeight = 0;
        for (Object[] os : this.fields)
        {
        for (Object[] os : this.fields) {
            Excel excel = (Excel) os[1];
            maxHeight = Math.max(maxHeight, excel.height());
        }
@@ -1469,8 +1226,7 @@
    /**
     * åˆ›å»ºä¸€ä¸ªå·¥ä½œç°¿
     */
    public void createWorkbook()
    {
    public void createWorkbook() {
        this.wb = new SXSSFWorkbook(500);
        this.sheet = wb.createSheet();
        wb.setSheetName(0, sheetName);
@@ -1479,15 +1235,13 @@
    /**
     * åˆ›å»ºå·¥ä½œè¡¨
     *
     *
     * @param sheetNo sheet数量
     * @param index åºå·
     * @param index   åºå·
     */
    public void createSheet(int sheetNo, int index)
    {
    public void createSheet(int sheetNo, int index) {
        // è®¾ç½®å·¥ä½œè¡¨çš„名称.
        if (sheetNo > 1 && index > 0)
        {
        if (sheetNo > 1 && index > 0) {
            this.sheet = wb.createSheet();
            this.createTitle();
            wb.setSheetName(index, sheetName + index);
@@ -1496,59 +1250,40 @@
    /**
     * èŽ·å–å•å…ƒæ ¼å€¼
     *
     * @param row èŽ·å–çš„è¡Œ
     *
     * @param row    èŽ·å–çš„è¡Œ
     * @param column èŽ·å–å•å…ƒæ ¼åˆ—å·
     * @return å•元格值
     */
    public Object getCellValue(Row row, int column)
    {
        if (row == null)
        {
    public Object getCellValue(Row row, int column) {
        if (row == null) {
            return row;
        }
        Object val = "";
        try
        {
        try {
            Cell cell = row.getCell(column);
            if (StringUtils.isNotNull(cell))
            {
                if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA)
                {
            if (StringUtils.isNotNull(cell)) {
                if (cell.getCellType() == CellType.NUMERIC || cell.getCellType() == CellType.FORMULA) {
                    val = cell.getNumericCellValue();
                    if (DateUtil.isCellDateFormatted(cell))
                    {
                    if (DateUtil.isCellDateFormatted(cell)) {
                        val = DateUtil.getJavaDate((Double) val); // POI Excel æ—¥æœŸæ ¼å¼è½¬æ¢
                    }
                    else
                    {
                        if ((Double) val % 1 != 0)
                        {
                    } else {
                        if ((Double) val % 1 != 0) {
                            val = new BigDecimal(val.toString());
                        }
                        else
                        {
                        } else {
                            val = new DecimalFormat("0").format(val);
                        }
                    }
                }
                else if (cell.getCellType() == CellType.STRING)
                {
                } else if (cell.getCellType() == CellType.STRING) {
                    val = cell.getStringCellValue();
                }
                else if (cell.getCellType() == CellType.BOOLEAN)
                {
                } else if (cell.getCellType() == CellType.BOOLEAN) {
                    val = cell.getBooleanCellValue();
                }
                else if (cell.getCellType() == CellType.ERROR)
                {
                } else if (cell.getCellType() == CellType.ERROR) {
                    val = cell.getErrorCellValue();
                }
            }
        }
        catch (Exception e)
        {
        } catch (Exception e) {
            return val;
        }
        return val;
@@ -1556,21 +1291,17 @@
    /**
     * åˆ¤æ–­æ˜¯å¦æ˜¯ç©ºè¡Œ
     *
     *
     * @param row åˆ¤æ–­çš„行
     * @return
     */
    private boolean isRowEmpty(Row row)
    {
        if (row == null)
        {
    private boolean isRowEmpty(Row row) {
        if (row == null) {
            return true;
        }
        for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++)
        {
        for (int i = row.getFirstCellNum(); i < row.getLastCellNum(); i++) {
            Cell cell = row.getCell(i);
            if (cell != null && cell.getCellType() != CellType.BLANK)
            {
            if (cell != null && cell.getCellType() != CellType.BLANK) {
                return false;
            }
        }
@@ -1580,21 +1311,17 @@
    /**
     * èŽ·å–Excel2003图片
     *
     * @param sheet å½“前sheet对象
     * @param sheet    å½“前sheet对象
     * @param workbook å·¥ä½œç°¿å¯¹è±¡
     * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
     */
    public static Map<String, PictureData> getSheetPictures03(HSSFSheet sheet, HSSFWorkbook workbook)
    {
    public static Map<String, PictureData> getSheetPictures03(HSSFSheet sheet, HSSFWorkbook workbook) {
        Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
        List<HSSFPictureData> pictures = workbook.getAllPictures();
        if (!pictures.isEmpty())
        {
            for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren())
            {
        if (!pictures.isEmpty()) {
            for (HSSFShape shape : sheet.getDrawingPatriarch().getChildren()) {
                HSSFClientAnchor anchor = (HSSFClientAnchor) shape.getAnchor();
                if (shape instanceof HSSFPicture)
                {
                if (shape instanceof HSSFPicture) {
                    HSSFPicture pic = (HSSFPicture) shape;
                    int pictureIndex = pic.getPictureIndex() - 1;
                    HSSFPictureData picData = pictures.get(pictureIndex);
@@ -1603,9 +1330,7 @@
                }
            }
            return sheetIndexPicMap;
        }
        else
        {
        } else {
            return sheetIndexPicMap;
        }
    }
@@ -1613,23 +1338,18 @@
    /**
     * èŽ·å–Excel2007图片
     *
     * @param sheet å½“前sheet对象
     * @param sheet    å½“前sheet对象
     * @param workbook å·¥ä½œç°¿å¯¹è±¡
     * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData
     */
    public static Map<String, PictureData> getSheetPictures07(XSSFSheet sheet, XSSFWorkbook workbook)
    {
    public static Map<String, PictureData> getSheetPictures07(XSSFSheet sheet, XSSFWorkbook workbook) {
        Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>();
        for (POIXMLDocumentPart dr : sheet.getRelations())
        {
            if (dr instanceof XSSFDrawing)
            {
        for (POIXMLDocumentPart dr : sheet.getRelations()) {
            if (dr instanceof XSSFDrawing) {
                XSSFDrawing drawing = (XSSFDrawing) dr;
                List<XSSFShape> shapes = drawing.getShapes();
                for (XSSFShape shape : shapes)
                {
                    if (shape instanceof XSSFPicture)
                    {
                for (XSSFShape shape : shapes) {
                    if (shape instanceof XSSFPicture) {
                        XSSFPicture pic = (XSSFPicture) shape;
                        XSSFClientAnchor anchor = pic.getPreferredSize();
                        CTMarker ctMarker = anchor.getFrom();
@@ -1644,32 +1364,23 @@
    /**
     * æ ¼å¼åŒ–不同类型的日期对象
     *
     *
     * @param dateFormat æ—¥æœŸæ ¼å¼
     * @param val è¢«æ ¼å¼åŒ–的日期对象
     * @param val        è¢«æ ¼å¼åŒ–的日期对象
     * @return æ ¼å¼åŒ–后的日期字符
     */
    public String parseDateToStr(String dateFormat, Object val)
    {
        if (val == null)
        {
    public String parseDateToStr(String dateFormat, Object val) {
        if (val == null) {
            return "";
        }
        String str;
        if (val instanceof Date)
        {
        if (val instanceof Date) {
            str = DateUtils.parseDateToStr(dateFormat, (Date) val);
        }
        else if (val instanceof LocalDateTime)
        {
        } else if (val instanceof LocalDateTime) {
            str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDateTime) val));
        }
        else if (val instanceof LocalDate)
        {
        } else if (val instanceof LocalDate) {
            str = DateUtils.parseDateToStr(dateFormat, DateUtils.toDate((LocalDate) val));
        }
        else
        {
        } else {
            str = val.toString();
        }
        return str;
@@ -1678,31 +1389,25 @@
    /**
     * æ˜¯å¦æœ‰å¯¹è±¡çš„子列表
     */
    public boolean isSubList()
    {
    public boolean isSubList() {
        return StringUtils.isNotNull(subFields) && subFields.size() > 0;
    }
    /**
     * æ˜¯å¦æœ‰å¯¹è±¡çš„子列表,集合不为空
     */
    public boolean isSubListValue(T vo)
    {
    public boolean isSubListValue(T vo) {
        return StringUtils.isNotNull(subFields) && subFields.size() > 0 && StringUtils.isNotNull(getListCellValue(vo)) && getListCellValue(vo).size() > 0;
    }
    /**
     * èŽ·å–é›†åˆçš„å€¼
     */
    public Collection<?> getListCellValue(Object obj)
    {
    public Collection<?> getListCellValue(Object obj) {
        Object value;
        try
        {
            value = subMethod.invoke(obj, new Object[] {});
        }
        catch (Exception e)
        {
        try {
            value = subMethod.invoke(obj, new Object[]{});
        } catch (Exception e) {
            return new ArrayList<Object>();
        }
        return (Collection<?>) value;
@@ -1710,23 +1415,19 @@
    /**
     * èŽ·å–å¯¹è±¡çš„å­åˆ—è¡¨æ–¹æ³•
     *
     * @param name åç§°
     *
     * @param name      åç§°
     * @param pojoClass ç±»å¯¹è±¡
     * @return å­åˆ—表方法
     */
    public Method getSubMethod(String name, Class<?> pojoClass)
    {
    public Method getSubMethod(String name, Class<?> pojoClass) {
        StringBuffer getMethodName = new StringBuffer("get");
        getMethodName.append(name.substring(0, 1).toUpperCase());
        getMethodName.append(name.substring(1));
        Method method = null;
        try
        {
            method = pojoClass.getMethod(getMethodName.toString(), new Class[] {});
        }
        catch (Exception e)
        {
        try {
            method = pojoClass.getMethod(getMethodName.toString(), new Class[]{});
        } catch (Exception e) {
            log.error("获取对象异常{}", e.getMessage());
        }
        return method;
ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -108,7 +108,7 @@
                // è¿‡æ»¤è¯·æ±‚
                .authorizeRequests()
                // å¯¹äºŽç™»å½•login æ³¨å†Œregister éªŒè¯ç captchaImage å…è®¸åŒ¿åè®¿é—®
                .antMatchers("/login", "/register", "/captchaImage", "/qrcode/generateStaticHtml", "/qrcode/getQRcode", "/qrcode/getFormDate", "/chat", "/system/file/admin/uploadFile", "/smartor/dingtalk/sendNotification", "/patient/read/patientInfo", "/socket", "/API_ESB_Service", "/API_ESB_Service/Run", "/magic/web/**", "/smartor/serviceSubtask/phoneCallBack", "/smartor/serviceSubtask/taskPull", "/smartor/serviceSubtask//phoneCallBackYQ", "/smartor/robot/callstatus", "/smartor/robot/aidialog", "/smartor/robot/cdrinfo", "/getToken", "/smartor/subtaskAnswer/getQuestionCache", "/smartor/subtaskAnswer/saveQuestionCache", "/smartor/servicetask/getScriptInfoByCondition", "/smartor/serviceSubtask/saveQuestionAnswer").permitAll()
                .antMatchers("/login", "/register", "/captchaImage", "/qrcode/generateStaticHtml", "/qrcode/getQRcode", "/qrcode/getFormDate", "/chat", "/system/file/admin/uploadFile", "/smartor/dingtalk/sendNotification", "/patient/read/patientInfo", "/socket", "/API_ESB_Service", "/API_ESB_Service/Run", "/magic/web/**", "/smartor/serviceSubtask/phoneCallBack", "/smartor/serviceSubtask/taskPull", "/smartor/serviceSubtask/phoneCallBackYQ", "/smartor/robot/callstatus", "/smartor/robot/aidialog", "/smartor/robot/cdrinfo", "/getToken", "/smartor/subtaskAnswer/getQuestionCache", "/smartor/subtaskAnswer/saveQuestionCache", "/smartor/servicetask/getScriptInfoByCondition", "/smartor/subtaskAnswer/saveQuestionAnswer","/smartor/import/download").permitAll()
                // é™æ€èµ„源,可匿名访问
                .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll().antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
                // é™¤ä¸Šé¢å¤–的所有请求全部需要鉴权认证
ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java
@@ -30,7 +30,7 @@
/**
 * ä»£ç ç”Ÿæˆ æ“ä½œå¤„理
 *
 *
 * @author ruoyi
 */
@RestController
@@ -46,7 +46,7 @@
    /**
     * æŸ¥è¯¢ä»£ç ç”Ÿæˆåˆ—表
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:list')")
    //@PreAuthorize("@ss.hasPermi('tool:gen:list')")
    @GetMapping("/list")
    public TableDataInfo genList(GenTable genTable)
    {
@@ -58,7 +58,7 @@
    /**
     * ä¿®æ”¹ä»£ç ç”Ÿæˆä¸šåŠ¡
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:query')")
    //@PreAuthorize("@ss.hasPermi('tool:gen:query')")
    @GetMapping(value = "/{tableId}")
    public AjaxResult getInfo(@PathVariable Long tableId)
    {
@@ -75,7 +75,7 @@
    /**
     * æŸ¥è¯¢æ•°æ®åº“列表
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:list')")
    //@PreAuthorize("@ss.hasPermi('tool:gen:list')")
    @GetMapping("/db/list")
    public TableDataInfo dataList(GenTable genTable)
    {
@@ -87,7 +87,7 @@
    /**
     * æŸ¥è¯¢æ•°æ®è¡¨å­—段列表
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:list')")
    //@PreAuthorize("@ss.hasPermi('tool:gen:list')")
    @GetMapping(value = "/column/{tableId}")
    public TableDataInfo columnList(Long tableId)
    {
@@ -101,7 +101,7 @@
    /**
     * å¯¼å…¥è¡¨ç»“构(保存)
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:import')")
    //@PreAuthorize("@ss.hasPermi('tool:gen:import')")
    @Log(title = "代码生成", businessType = BusinessType.IMPORT)
    @PostMapping("/importTable")
    public AjaxResult importTableSave(String tables)
@@ -116,7 +116,7 @@
    /**
     * ä¿®æ”¹ä¿å­˜ä»£ç ç”Ÿæˆä¸šåŠ¡
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:edit')")
    //@PreAuthorize("@ss.hasPermi('tool:gen:edit')")
    @Log(title = "代码生成", businessType = BusinessType.UPDATE)
    @PostMapping
    public AjaxResult editSave(@Validated @RequestBody GenTable genTable)
@@ -129,7 +129,7 @@
    /**
     * åˆ é™¤ä»£ç ç”Ÿæˆ
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:remove')")
    //@PreAuthorize("@ss.hasPermi('tool:gen:remove')")
    @Log(title = "代码生成", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{tableIds}")
    public AjaxResult remove(@PathVariable Long[] tableIds)
@@ -141,7 +141,7 @@
    /**
     * é¢„览代码
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:preview')")
    //@PreAuthorize("@ss.hasPermi('tool:gen:preview')")
    @GetMapping("/preview/{tableId}")
    public AjaxResult preview(@PathVariable("tableId") Long tableId) throws IOException
    {
@@ -152,7 +152,7 @@
    /**
     * ç”Ÿæˆä»£ç ï¼ˆä¸‹è½½æ–¹å¼ï¼‰
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:code')")
    //@PreAuthorize("@ss.hasPermi('tool:gen:code')")
    @Log(title = "代码生成", businessType = BusinessType.GENCODE)
    @GetMapping("/download/{tableName}")
    public void download(HttpServletResponse response, @PathVariable("tableName") String tableName) throws IOException
@@ -164,7 +164,7 @@
    /**
     * ç”Ÿæˆä»£ç ï¼ˆè‡ªå®šä¹‰è·¯å¾„)
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:code')")
    //@PreAuthorize("@ss.hasPermi('tool:gen:code')")
    @Log(title = "代码生成", businessType = BusinessType.GENCODE)
    @GetMapping("/genCode/{tableName}")
    public AjaxResult genCode(@PathVariable("tableName") String tableName)
@@ -176,7 +176,7 @@
    /**
     * åŒæ­¥æ•°æ®åº“
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:edit')")
    //@PreAuthorize("@ss.hasPermi('tool:gen:edit')")
    @Log(title = "代码生成", businessType = BusinessType.UPDATE)
    @GetMapping("/synchDb/{tableName}")
    public AjaxResult synchDb(@PathVariable("tableName") String tableName)
@@ -188,7 +188,7 @@
    /**
     * æ‰¹é‡ç”Ÿæˆä»£ç 
     */
    @PreAuthorize("@ss.hasPermi('tool:gen:code')")
    //@PreAuthorize("@ss.hasPermi('tool:gen:code')")
    @Log(title = "代码生成", businessType = BusinessType.GENCODE)
    @GetMapping("/batchGenCode")
    public void batchGenCode(HttpServletResponse response, String tables) throws IOException
@@ -211,4 +211,4 @@
        response.setContentType("application/octet-stream; charset=UTF-8");
        IOUtils.write(data, response.getOutputStream());
    }
}
}
ruoyi-generator/src/main/resources/vm/java/controller.java.vm
@@ -44,7 +44,7 @@
     * æŸ¥è¯¢${functionName}列表
     */
    @ApiOperation("查询${functionName}列表")
    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:list')")
    //@PreAuthorize("@ss.hasPermi('${permissionPrefix}:list')")
    @GetMapping("/list")
#if($table.crud || $table.sub)
    public TableDataInfo list(${ClassName} ${className})
@@ -65,7 +65,7 @@
     * å¯¼å‡º${functionName}列表
     */
    @ApiOperation("导出${functionName}列表")
    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:export')")
    //@PreAuthorize("@ss.hasPermi('${permissionPrefix}:export')")
    @Log(title = "${functionName}", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ${ClassName} ${className})
@@ -79,7 +79,7 @@
     * èŽ·å–${functionName}详细信息
     */
    @ApiOperation("获取${functionName}详细信息")
    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:query')")
    //@PreAuthorize("@ss.hasPermi('${permissionPrefix}:query')")
    @GetMapping(value = "/getInfo/{${pkColumn.javaField}}")
    public AjaxResult getInfo(@PathVariable("${pkColumn.javaField}") ${pkColumn.javaType} ${pkColumn.javaField})
    {
@@ -89,7 +89,7 @@
    /**
     * æ–°å¢ž${functionName}
     */
    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:add')")
    //@PreAuthorize("@ss.hasPermi('${permissionPrefix}:add')")
    @Log(title = "${functionName}", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody ${ClassName} ${className})
@@ -101,7 +101,7 @@
     * ä¿®æ”¹${functionName}
     */
    @ApiOperation("修改${functionName}")
    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:edit')")
    //@PreAuthorize("@ss.hasPermi('${permissionPrefix}:edit')")
    @Log(title = "${functionName}", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody ${ClassName} ${className})
@@ -113,7 +113,7 @@
     * åˆ é™¤${functionName}
     */
    @ApiOperation("删除${functionName}")
    @PreAuthorize("@ss.hasPermi('${permissionPrefix}:remove')")
    //@PreAuthorize("@ss.hasPermi('${permissionPrefix}:remove')")
    @Log(title = "${functionName}", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{${pkColumn.javaField}s}")
    public AjaxResult remove(@PathVariable ${pkColumn.javaType}[] ${pkColumn.javaField}s)
ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java
@@ -42,7 +42,7 @@
    /**
     * æŸ¥è¯¢å®šæ—¶ä»»åŠ¡åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysJob sysJob) {
        startPage();
@@ -53,7 +53,7 @@
    /**
     * å¯¼å‡ºå®šæ—¶ä»»åŠ¡åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:export')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:export')")
    @Log(title = "定时任务", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysJob sysJob) {
@@ -65,7 +65,7 @@
    /**
     * èŽ·å–å®šæ—¶ä»»åŠ¡è¯¦ç»†ä¿¡æ¯
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:query')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:query')")
    @GetMapping(value = "/{jobId}")
    public AjaxResult getInfo(@PathVariable("jobId") Long jobId) {
        return success(jobService.selectJobById(jobId));
@@ -74,7 +74,7 @@
    /**
     * æ–°å¢žå®šæ—¶ä»»åŠ¡
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:add')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:add')")
    @Log(title = "定时任务", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody SysJob job) throws SchedulerException, TaskException {
@@ -98,7 +98,7 @@
    /**
     * ä¿®æ”¹å®šæ—¶ä»»åŠ¡
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:edit')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:edit')")
    @Log(title = "定时任务", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody SysJob job) throws SchedulerException, TaskException {
@@ -122,7 +122,7 @@
    /**
     * å®šæ—¶ä»»åŠ¡çŠ¶æ€ä¿®æ”¹
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:changeStatus')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:changeStatus')")
    @Log(title = "定时任务", businessType = BusinessType.UPDATE)
    @PostMapping("/changeStatus")
    public AjaxResult changeStatus(@RequestBody SysJob job) throws SchedulerException {
@@ -134,7 +134,7 @@
    /**
     * å®šæ—¶ä»»åŠ¡ç«‹å³æ‰§è¡Œä¸€æ¬¡
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:changeStatus')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:changeStatus')")
    @Log(title = "定时任务", businessType = BusinessType.UPDATE)
    @PostMapping("/run")
    public AjaxResult run(@RequestBody SysJob job) throws SchedulerException {
@@ -145,7 +145,7 @@
    /**
     * åˆ é™¤å®šæ—¶ä»»åŠ¡
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:remove')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:remove')")
    @Log(title = "定时任务", businessType = BusinessType.DELETE)
    @GetMapping("/remove/{jobIds}")
    public AjaxResult remove(@PathVariable Long[] jobIds) throws SchedulerException, TaskException {
ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java
@@ -34,7 +34,7 @@
    /**
     * æŸ¥è¯¢å®šæ—¶ä»»åŠ¡è°ƒåº¦æ—¥å¿—åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:list')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:list')")
    @GetMapping("/list")
    public TableDataInfo list(SysJobLog sysJobLog)
    {
@@ -46,7 +46,7 @@
    /**
     * å¯¼å‡ºå®šæ—¶ä»»åŠ¡è°ƒåº¦æ—¥å¿—åˆ—è¡¨
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:export')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:export')")
    @Log(title = "任务调度日志", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, SysJobLog sysJobLog)
@@ -59,7 +59,7 @@
    /**
     * æ ¹æ®è°ƒåº¦ç¼–号获取详细信息
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:query')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:query')")
    @GetMapping(value = "/{jobLogId}")
    public AjaxResult getInfo(@PathVariable Long jobLogId)
    {
@@ -70,7 +70,7 @@
    /**
     * åˆ é™¤å®šæ—¶ä»»åŠ¡è°ƒåº¦æ—¥å¿—
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:remove')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:remove')")
    @Log(title = "定时任务调度日志", businessType = BusinessType.DELETE)
    @DeleteMapping("/{jobLogIds}")
    public AjaxResult remove(@PathVariable Long[] jobLogIds)
@@ -81,7 +81,7 @@
    /**
     * æ¸…空定时任务调度日志
     */
    @PreAuthorize("@ss.hasPermi('monitor:job:remove')")
    //@PreAuthorize("@ss.hasPermi('monitor:job:remove')")
    @Log(title = "调度日志", businessType = BusinessType.CLEAN)
    @DeleteMapping("/clean")
    public AjaxResult clean()
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -1,15 +1,14 @@
package com.ruoyi.quartz.task;
import com.alibaba.fastjson2.JSON;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.alibaba.fastjson2.JSONObject;
import com.google.common.reflect.TypeToken;
import com.google.gson.JsonObject;
import com.google.gson.JsonArray;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.enums.ServiceFromEnum;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.RSAPublicKeyExample;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.http.HttpUtils;
@@ -19,14 +18,19 @@
import com.smartor.service.*;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.Transactional;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Type;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
@@ -51,6 +55,8 @@
    @Autowired
    private IServiceSubtaskService iServiceSubtaskService;
    @Autowired
    private PlatformTransactionManager transactionManager;
    @Value("${localIP}")
    private String localIP;
@@ -58,6 +64,8 @@
    @Value("${pub_key}")
    private String pub_key;
    @Value("${thirdWXUrl}")
    private String thirdWXUrl;
    @Value("${req_path}")
    private String req_path;
@@ -85,6 +93,9 @@
    @Autowired
    IPatMedOuthospService patMedOuthospService;
    @Autowired
    ISvyTaskTemplateService svyTaskTemplateService;
    @Value("${hosp_info_url}")
    private String hospInfoUrl;
@@ -125,15 +136,43 @@
     */
    public void dealHisData() {
        //将患者信息、出院、门诊数据全部采集
        getInHospInfo("0");
        getInHospInfo("1");
        // èŽ·å–å½“å‰æ—¥æœŸå’Œæ—¶é—´
        LocalDateTime endTime = LocalDateTime.now();
        // èŽ·å–å‰ä¸€å¤©çš„æ—¥æœŸå’Œæ—¶é—´
        LocalDateTime startTime = endTime.minusDays(1);
        getInHospInfo("0", startTime, endTime);
        getInHospInfo("1", startTime, endTime);
        //调用dealOupHospInfo数据处理方法,处理完后,将“出院表的check_flag=1”
        //获取当前日期 ï¼ˆç²¾ç¡®åˆ°å¤©ï¼‰å¾€å‰æŽ¨ç›¸åº”天数(在指定的基础模板中找对应的天数),
        //循环患者信息,根据患者"出院诊断ICD值”获取到相当的模板(获取取相应的天数);
        //根据查询出来的模板,去固定任务(固定任务,已经将模板也固定了)去匹配模板
        //根据匹配出来的模板和任务与患者信息,将数据插入到子任务表中
        iPatMedInhospService.dealOupHospInfo();
    }
    public void dealHisData2() {
        //将患者信息、出院、门诊数据全部采集
        // æŒ‡å®šçš„开始日期
        LocalDate endDate = LocalDate.of(2024, 9, 1);
        // å½“前日期
        LocalDate currentDate = LocalDate.now();
        // å®šä¹‰æ—¥æœŸæ ¼å¼
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd ");
        // ä»Žå¼€å§‹æ—¥æœŸåˆ°å½“前日期逐天打印
        for (LocalDate date = endDate; !date.isAfter(currentDate); date = date.plusDays(1)) {
            System.out.println(date.format(formatter));
            getInHospInfo("0", date.minusDays(1).atStartOfDay(), date.atStartOfDay());
            getInHospInfo("1", date.minusDays(1).atStartOfDay(), date.atStartOfDay());
        }
    }
    /**
     * å¤„理患者信息,进入子任务表
     */
    public void dealOutHospInfo() {
        iPatMedInhospService.dealOutHospInfo();
    }
    /**
@@ -145,24 +184,58 @@
        st.setDelFlag("0");
        st.setLongTask(1);
        List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(st);
        log.error("serviceTasks进来了吗?{}", serviceTasks);
        for (ServiceTask serviceTask : serviceTasks) {
            //通过taskId,获取未执行的子任务信息
            ServiceSubtaskVO serviceSubtask = new ServiceSubtaskVO();
            serviceSubtask.setTaskid(serviceTask.getTaskid());
            serviceSubtask.setSendstate(2L);
            List<ServiceSubtask> selectServiceSubtaskList = iServiceSubtaskService.selectServiceSubtaskList(serviceSubtask);
            log.error("selectServiceSubtaskList进来了吗?{}", selectServiceSubtaskList);
            if (CollectionUtils.isNotEmpty(selectServiceSubtaskList)) {
                for (ServiceSubtask serviceSubtask1 : selectServiceSubtaskList) {
                    //如果患者的发送日期是今天,则进行发送
                    boolean dateToday = isDateToday(serviceSubtask1.getLongSendTime());
                    if (dateToday) {
                        CommonTaskcallMQ commonTaskcallMQ = new CommonTaskcallMQ();
                        commonTaskcallMQ.setTaskid(serviceTask.getTaskid());
                        commonTaskcallMQ.setPreachform(serviceSubtask1.getServiceform());
                        sfHandle(commonTaskcallMQ, localIP);
                        //发送完成后,修改状态
                        serviceSubtask1.setSendstate(3L);
                        iServiceSubtaskService.updateServiceSubtask(serviceSubtask1);
                    try {
                        boolean dateToday = isDateToday(serviceSubtask1.getLongSendTime());
                        if (dateToday) {
                            //先判断患者是不是还要发送
                            PatArchive patArchive = patArchiveService.selectPatArchiveByPatid(serviceSubtask1.getPatid());
                            if (!Objects.isNull(patArchive) && patArchive.getNotrequiredFlag() == "1") {
                                //不需要发送
                                serviceSubtask1.setResult("error");
                                serviceSubtask1.setRemark(patArchive.getNotrequiredreason());
                                serviceSubtask1.setSendstate(4L);
                                serviceSubtask1.setFinishtime(new Date());
                                iServiceSubtaskService.insertServiceSubtask(serviceSubtask1);
                                continue;
                            }
                            log.error("dateToday进来了吗?{}", dateToday);
                            CommonTaskcallMQ commonTaskcallMQ = new CommonTaskcallMQ();
                            commonTaskcallMQ.setTaskid(serviceTask.getTaskid());
                            commonTaskcallMQ.setPreachform(serviceSubtask1.getServiceform());
                            commonTaskcallMQ.setSendType("2");
                            Map<String, Object> map = sfHandlle(commonTaskcallMQ, localIP);
                            //发送完成后,修改状态
                            serviceSubtask1.setSendstate(3L);
                            if ((Boolean) map.get("succ") == false) {
                                serviceSubtask1.setResult("success");
                            } else {
                                serviceSubtask1.setResult("error");
                                serviceSubtask1.setRemark(map.get("msg").toString());
                            }
                            iServiceSubtaskService.updateServiceSubtask(serviceSubtask1);
                        }
                    } catch (Exception e) {
                        String guid = UUID.randomUUID().toString();
                        log.error("长期任务,发送失败原因:{},{}", e.getMessage(), guid);
                        serviceSubtask1.setResult("error");
                        serviceSubtask1.setRemark("系统错误");
                        serviceSubtask1.setSendstate(5L);
                        serviceSubtask1.setFinishtime(new Date());
                        serviceSubtask1.setGuid(guid);
                        iServiceSubtaskService.insertServiceSubtask(serviceSubtask1);
                    }
                }
            }
@@ -191,14 +264,15 @@
        return (calendarToCheck.get(Calendar.YEAR) == todayYear && calendarToCheck.get(Calendar.MONTH) == todayMonth && calendarToCheck.get(Calendar.DAY_OF_MONTH) == todayDay);
    }
    public void sfHandle(CommonTaskcallMQ commonTaskcallMQ, String ip) {
    public Map<String, Object> sfHandlle(CommonTaskcallMQ commonTaskcallMQ, String ip) {
        log.error("sfHandlle进来了吗?{}", commonTaskcallMQ);
        //判断一下commonTaskcallMQ中的stopstate是否与ivr_task中的一致,不一致,则说明是暂停了
        ServiceTask ivrTask1 = serviceTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid());
        if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) {
            //如何任务发送方式不为空
            String[] split = commonTaskcallMQ.getPreachform().split(",");
            System.out.println("split的值为:" + split);
            log.error("split进来了吗?{}", split);
            for (String serviceFrom : split) {
                String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom));
                //这里可以考虑用策略模式优化一下,不然太难看了
@@ -259,10 +333,10 @@
                    }
                } else if (descByCode.equals("多媒体")) {
                    //多媒体
                    return;
                    return null;
                } else if (descByCode.equals("纸质")) {
                    //纸质
                    return;
                    return null;
                } else if (descByCode.equals("短信")) {
                    //短信
//                        http://localhost:8099/followvisit/particty?param1=3&param2=348
@@ -278,7 +352,6 @@
                        sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "&param2=" + patid + "&param5=false");
                        Boolean aBoolean = sendService.sendMsg(sendMagParam);
                        //任务发送记录
                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
                        serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString());
@@ -288,24 +361,24 @@
                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                        serviceSubtaskRecord.setResult(aBoolean == true ? "成功" : "失败");
                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                        return null;
                    }
                } else if (descByCode.equals("公众号")) {
                    log.error("公众号进来了吗?{}", descByCode);
                    //公众号
                    RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
                    String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key);
                    for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
                        log.error("serviceSubtask---------进来了吗?{}", serviceSubtask);
                        String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
                        SendMagParam sendMagParam = new SendMagParam();
                        sendMagParam.setType("5");
                        sendMagParam.setUrl(ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
                        log.info("链接完整路径:{}", ip + ":" + req_path + "/outsideChain?param1=" + taskId + "&param2=" + patid + "&param3=" + ivrTask1.getTaskName() + "&param5=false");
                        //这个模板ID先写死,后面做成可选
                        sendMagParam.setTmpCode("oG3pJHPVWpE81DmZsua_2tKwgJ97r0qz37z56ns7NB4");
                        Map map = new HashMap();
                        map.put("first", ivrTask1.getTaskName());
                        sendMagParam.setContent(JSON.toJSONString(map));
                        sendMagParam.setOpenid(serviceSubtask.getOpenid());
                        Boolean aBoolean = sendService.sendMsg(sendMagParam);
                        String url = null;
                        try {
                            url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
                        } catch (UnsupportedEncodingException e) {
                            e.printStackTrace();
                        }
                        String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), "无");
                        Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class);
                        //任务发送记录
                        ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord();
@@ -314,20 +387,26 @@
                        serviceSubtaskRecord.setTasktype(serviceSubtask.getType());
                        serviceSubtaskRecord.setPreachform("4");
                        serviceSubtaskRecord.setStartTime(System.currentTimeMillis());
                        serviceSubtaskRecord.setResult(aBoolean == true ? "成功" : "失败");
                        serviceSubtaskRecord.setResult("success");
                        if (!map.isEmpty() && (Boolean) map.get("succ") == false)
                            serviceSubtaskRecord.setResult("error");
                        serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord);
                        return map;
                    }
                }
                //通知 MQ æ¶ˆæ¯å·²è¢«æŽ¥æ”¶,可以ACK(从队列中删除)了   ï¼ˆè¿™ä¸ªéœ€è¦æ ¹æ®ä¸šåŠ¡å†åŽ»å¤„ç†ACK)
            }
        }
        return null;
    }
    /**
     * èŽ·å‡ºé™¢æ‚£è€…ä¿¡æ¯
     * cry    å‡ºå…¥é™¢ï¼š 0 å…¥é™¢   1 å‡ºé™¢
     */
    private void getInHospInfo(String cry) {
    @Transactional
    public void getInHospInfo(String cry, LocalDateTime startTime, LocalDateTime endTime) {
        // èŽ·å–å½“å‰æ—¥æœŸå’Œæ—¶é—´
        LocalDateTime currentDateTime = LocalDateTime.now();
        // èŽ·å–å‰ä¸€å¤©çš„æ—¥æœŸå’Œæ—¶é—´
@@ -336,12 +415,12 @@
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.S");
        Map<String, String> req = new HashMap<>();
        if (cry.equals("1")) {
            req.put("startTime", previousDateTime.format(formatter));
            req.put("endTime", currentDateTime.format(formatter));
            req.put("startTime", startTime.format(formatter));
            req.put("endTime", endTime.format(formatter));
            req.put("currStatus", "4");
        } else if (cry.equals("0")) {
            req.put("admissStartDate", previousDateTime.format(formatter));
            req.put("admissEndDate", currentDateTime.format(formatter));
            req.put("admissStartDate", startTime.format(formatter));
            req.put("admissEndDate", endTime.format(formatter));
            req.put("currStatus", "2");
        }
        Map<String, String> header = new HashMap<>();
@@ -362,12 +441,23 @@
            for (ThiedInhospInfo thiedInhospInfo : thiedInhospInfoList) {
                //通过身份证号查询该患者在患者表是否存在
                PatArchive patArchive = new PatArchive();
                patArchive.setIdcardno(thiedInhospInfo.getPatiIdCardNo());
                List<PatArchive> patArchives = patArchiveService.selectPatArchiveList(patArchive);
                if (CollectionUtils.isEmpty(patArchives)) {
                List<PatArchive> patArchives = null;
                patArchive.setIdcardno(thiedInhospInfo.getPatiIdCardNo().trim());
                if (StringUtils.isNotEmpty(thiedInhospInfo.getPatiIdCardNo().trim())) {
                    patArchives = patArchiveService.selectPatArchiveList(patArchive);
                } else {
                    //患者信息为空,直接 ä¸‹ä¸€ä¸ª
                    continue;
                }
                if (CollectionUtils.isEmpty(patArchives) || patArchives.size() == 0) {
                    patArchive.setPatientno(thiedInhospInfo.getPatiMediaNo());
                    patArchive.setSourcefrom(2);
                    patArchive.setPattype("2");
                    if (thiedInhospInfo.getOutWayId().equals("4")) {
                        //如果为4就是死亡
                        patArchive.setNotrequiredFlag("1");
                        patArchive.setNotrequiredreason(thiedInhospInfo.getOutWayName());
                    }
                    patArchive.setSex(thiedInhospInfo.getPatiRecordGender().equals("男") ? 1L : 2L);
                    patArchive.setNation(thiedInhospInfo.getPatiNation());
                    patArchive.setNativePlace(thiedInhospInfo.getPatiNationality());
@@ -378,9 +468,8 @@
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }
                    String age = thiedInhospInfo.getAge().replaceAll("岁", "");
                    boolean creatable = NumberUtils.isCreatable(age);
                    if (creatable) patArchive.setAge(StringUtils.isNotEmpty(age) ? Long.valueOf(age) : null);
                    patArchive.setAge(Long.valueOf(thiedInhospInfo.getTreateAge()));
                    patArchive.setAgeUnit(thiedInhospInfo.getTreatAgeunit());
                    patArchive.setTelcode(thiedInhospInfo.getCompanyTelNum());
                    patArchive.setRelativetelcode(thiedInhospInfo.getContactPersonPhone());
                    patArchive.setDelFlag("0");
@@ -388,11 +477,16 @@
                    patArchive.setUpdateTime(new Date());
                    patArchive.setName(thiedInhospInfo.getPatiRecordName());
                    patArchiveService.insertPatArchive(patArchive);
                } else {
                    patArchive = patArchives.get(0);
                }
                log.error("入参的patArchive:{}", patArchive);
                PatMedInhosp patMedInhosp = new PatMedInhosp();
                patMedInhosp.setPatid(patArchive.getId());
                patMedInhosp.setPatno(patArchive.getPatientno());
                patMedInhosp.setPatname(patArchive.getName());
                patMedInhosp.setNurseId(thiedInhospInfo.getNurseId());
                patMedInhosp.setNurseName(thiedInhospInfo.getNurseName());
                patMedInhosp.setSerialnum(thiedInhospInfo.getInpatientId());
                if (cry.equals("0")) {
                    patMedInhosp.setInhospstate("0");
@@ -419,20 +513,24 @@
                patMedInhosp.setDeptname(thiedInhospInfo.getAdmissDeptName());
                patMedInhosp.setBedNo(thiedInhospInfo.getAdmissBedNo());
                patMedInhosp.setDelFlag("0");
                patMedInhosp.setLeaveldeptcode(thiedInhospInfo.getCurrWardId());
                patMedInhosp.setLeaveldeptname(thiedInhospInfo.getCurrWardName());
//                patMedInhosp.setLeaveldeptcode(thiedInhospInfo.getCurrDeptCode());
                patMedInhosp.setLeaveldeptcode(thiedInhospInfo.getCurrDeptId());
                patMedInhosp.setLeaveldeptname(thiedInhospInfo.getCurrDeptName());
                patMedInhosp.setLeavediagname(thiedInhospInfo.getDiagName());
                patMedInhosp.setLeaveicd10code(thiedInhospInfo.getDiagIcd10());
                patMedInhosp.setDrname(thiedInhospInfo.getDoctName());
                patMedInhosp.setDrcode(thiedInhospInfo.getDoctId());
                patMedInhosp.setOutWayId(thiedInhospInfo.getOutWayId());
                patMedInhosp.setOutWayName(thiedInhospInfo.getOutWayName());
                if (cry.equals("0")) {
                    patMedInhosp.setSchemestatus(1L);
                } else if (cry.equals("1")) {
                    patMedInhosp.setSchemestatus(2L);
                }
                patMedInhosp.setLeavehospitaldistrictid(thiedInhospInfo.getCurrWardCode());
                patMedInhosp.setLeavehospitaldistrictcode(thiedInhospInfo.getCurrWardId());
                patMedInhosp.setLeavehospitaldistrictid(thiedInhospInfo.getCurrWardId());
                patMedInhosp.setLeavehospitaldistrictname(thiedInhospInfo.getCurrWardName());
                patMedInhosp.setLeaveldeptid(thiedInhospInfo.getCurrDeptId());
                patMedInhosp.setLeaveldeptid(thiedInhospInfo.getCurrDeptCode());
                patMedInhospService.insertPatMedInhosp(patMedInhosp);
            }
@@ -467,4 +565,19 @@
        }
        return key;
    }
    private String getWXCode(String idcard, String url, String taskName, String taskDesc, String submitprompt) {
        XinHuaWXReq xinHuaWXReq = new XinHuaWXReq();
        xinHuaWXReq.setIdcard(idcard);
        xinHuaWXReq.setUrl(url);
        xinHuaWXReq.setKeyword1("浙中医大二院出院随访");
        xinHuaWXReq.setKeyword2(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
        xinHuaWXReq.setKeyword3(taskName);
        xinHuaWXReq.setKeyword4("疾病康复注意事项");
        String result = HttpUtils.sendPost(thirdWXUrl, new Gson().toJson(xinHuaWXReq));
        JSONObject jsonObject = JSONObject.parseObject(result);
        String code = (String) jsonObject.get("code");
        return code;
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserDeptServiceImpl.java
@@ -6,6 +6,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
@@ -15,8 +16,7 @@
 * @date 2024-08-29
 */
@Service
public class SysUserDeptServiceImpl implements ISysUserDeptService
{
public class SysUserDeptServiceImpl implements ISysUserDeptService {
    @Autowired
    private SysUserDeptMapper sysUserDeptMapper;
@@ -27,8 +27,7 @@
     * @return ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @Override
    public SysUserDept selectSysUserDeptById(Long id)
    {
    public SysUserDept selectSysUserDeptById(Long id) {
        return sysUserDeptMapper.selectSysUserDeptById(id);
    }
@@ -39,8 +38,7 @@
     * @return ã€è¯·å¡«å†™åŠŸèƒ½åç§°ã€‘
     */
    @Override
    public List<SysUserDept> selectSysUserDeptList(SysUserDept sysUserDept)
    {
    public List<SysUserDept> selectSysUserDeptList(SysUserDept sysUserDept) {
        return sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
    }
@@ -51,8 +49,9 @@
     * @return ç»“æžœ
     */
    @Override
    public int insertSysUserDept(SysUserDept sysUserDept)
    {
    public int insertSysUserDept(SysUserDept sysUserDept) {
        sysUserDept.setCreateTime(new Date());
        sysUserDept.setUpdateTime(new Date());
        return sysUserDeptMapper.insertSysUserDept(sysUserDept);
    }
@@ -63,8 +62,8 @@
     * @return ç»“æžœ
     */
    @Override
    public int updateSysUserDept(SysUserDept sysUserDept)
    {
    public int updateSysUserDept(SysUserDept sysUserDept) {
        sysUserDept.setUpdateTime(new Date());
        return sysUserDeptMapper.updateSysUserDept(sysUserDept);
    }
@@ -75,8 +74,7 @@
     * @return ç»“æžœ
     */
    @Override
    public int deleteSysUserDeptByIds(Long[] ids)
    {
    public int deleteSysUserDeptByIds(Long[] ids) {
        return sysUserDeptMapper.deleteSysUserDeptByIds(ids);
    }
@@ -87,8 +85,7 @@
     * @return ç»“æžœ
     */
    @Override
    public int deleteSysUserDeptById(Long id)
    {
    public int deleteSysUserDeptById(Long id) {
        return sysUserDeptMapper.deleteSysUserDeptById(id);
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -113,8 +113,31 @@
        for (SysDept sysDept : sysDepts) {
            deptIds.add(sysDept.getDeptId());
        }
        SysUserDept sysUserDept = new SysUserDept();
        sysUserDept.setUserId(sysUser.getUserId());
        sysUserDept.setDeptType(sysUser.getSearchscope());
        List<SysUserDept> sysUserDeptKSs = null;
        List<SysUserDept> sysUserDeptBQs = null;
        if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("0")) {
            sysUserDept.setDeptType("1");
            sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
            sysUserDept.setDeptType("2");
            sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
        } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("1")) {
            sysUserDept.setDeptType("1");
            sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
        } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("2")) {
            sysUserDept.setDeptType("2");
            sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
        }
        sysUser.setDepts(deptIds);
        return userMapper.selectUserByUserName(userName);
        if (!CollectionUtils.isEmpty(sysUserDeptBQs))
            sysUser.setLeavehospitaldistrictcodes(sysUserDeptBQs.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList()));
        if (!CollectionUtils.isEmpty(sysUserDeptKSs))
            sysUser.setLeaveldeptcodes(sysUserDeptKSs.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList()));
        return sysUser;
    }
    /**
@@ -305,7 +328,7 @@
        //新增用户与部门关联
        sysUserDeptMapper.deleteSysUserDeptByIds(ids);
        if (!CollectionUtils.isEmpty(user.getDepts())) {
            for ( Long deptId: user.getDepts()) {
            for (Long deptId : user.getDepts()) {
                SysUserDept sysUserDep = new SysUserDept();
                sysUserDep.setUserId(user.getUserId());
                sysUserDep.setDeptId(deptId);
@@ -321,7 +344,7 @@
                sysUserDep.setUpdateTime(new Date());
                sysUserDeptMapper.insertSysUserDept(sysUserDep);
            }
        }else {
        } else {
        }
        return userMapper.updateUser(user);
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -1,159 +1,201 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.SysDeptMapper">
    <resultMap type="com.ruoyi.common.core.domain.entity.SysDept" id="SysDeptResult">
        <id     property="deptId"     column="dept_id"     />
        <result property="parentId"   column="parent_id"   />
        <result property="ancestors"  column="ancestors"   />
        <result property="deptName"   column="dept_name"   />
        <result property="orderNum"   column="order_num"   />
        <result property="leader"     column="leader"      />
        <result property="phone"      column="phone"       />
        <result property="email"      column="email"       />
        <result property="status"     column="status"      />
        <result property="delFlag"    column="del_flag"    />
        <result property="parentName" column="parent_name" />
        <result property="createBy"   column="create_by"   />
        <result property="createTime" column="create_time" />
        <result property="updateBy"   column="update_by"   />
        <result property="updateTime" column="update_time" />
    </resultMap>
    <sql id="selectDeptVo">
        select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
    <resultMap type="com.ruoyi.common.core.domain.entity.SysDept" id="SysDeptResult">
        <id property="deptId" column="dept_id"/>
        <result property="parentId" column="parent_id"/>
        <result property="ancestors" column="ancestors"/>
        <result property="deptName" column="dept_name"/>
        <result property="orderNum" column="order_num"/>
        <result property="leader" column="leader"/>
        <result property="phone" column="phone"/>
        <result property="email" column="email"/>
        <result property="status" column="status"/>
        <result property="delFlag" column="del_flag"/>
        <result property="parentName" column="parent_name"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="deptCode" column="dept_code"/>
    </resultMap>
    <sql id="selectDeptVo">
        select d.dept_id,
               d.dept_code,
               d.parent_id,
               d.ancestors,
               d.dept_name,
               d.order_num,
               d.leader,
               d.phone,
               d.email,
               d.status,
               d.del_flag,
               d.create_by,
               d.create_time
        from sys_dept d
    </sql>
    <select id="selectDeptList" parameterType="com.ruoyi.common.core.domain.entity.SysDept" resultMap="SysDeptResult">
    <select id="selectDeptList" parameterType="com.ruoyi.common.core.domain.entity.SysDept" resultMap="SysDeptResult">
        <include refid="selectDeptVo"/>
        where d.del_flag = '0'
        <if test="deptId != null and deptId != 0">
            AND dept_id = #{deptId}
        </if>
        <if test="deptId != null and deptId != 0">
            AND dept_id = #{deptId}
        </if>
        <if test="parentId != null and parentId != 0">
            AND parent_id = #{parentId}
        </if>
        <if test="deptName != null and deptName != ''">
            AND dept_name like concat('%', #{deptName}, '%')
        </if>
        <if test="status != null and status != ''">
            AND status = #{status}
        </if>
        <!-- æ•°æ®èŒƒå›´è¿‡æ»¤ -->
        ${params.dataScope}
        order by d.parent_id, d.order_num
            AND parent_id = #{parentId}
        </if>
        <if test="deptName != null and deptName != ''">
            AND dept_name like concat('%', #{deptName}, '%')
        </if>
        <if test="status != null and status != ''">
            AND status = #{status}
        </if>
        <if test="deptCode != null and deptCode != ''">
            AND dept_code = #{deptCode}
        </if>
        <!-- æ•°æ®èŒƒå›´è¿‡æ»¤ -->
        ${params.dataScope}
        order by d.parent_id, d.order_num
    </select>
    <select id="selectDeptListByRoleId" resultType="Long">
        select d.dept_id
        from sys_dept d
            left join sys_role_dept rd on d.dept_id = rd.dept_id
        where rd.role_id = #{roleId}
            <if test="deptCheckStrictly">
              and d.dept_id not in (select d.parent_id from sys_dept d inner join sys_role_dept rd on d.dept_id = rd.dept_id and rd.role_id = #{roleId})
            </if>
        order by d.parent_id, d.order_num
    </select>
    <select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
        select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status,
            (select dept_name from sys_dept where dept_id = d.parent_id) parent_name
        from sys_dept d
        where d.dept_id = #{deptId}
    </select>
    <select id="checkDeptExistUser" parameterType="Long" resultType="int">
        select count(1) from sys_user where dept_id = #{deptId} and del_flag = '0'
    </select>
    <select id="hasChildByDeptId" parameterType="Long" resultType="int">
        select count(1) from sys_dept
        where del_flag = '0' and parent_id = #{deptId} limit 1
    </select>
    <select id="selectChildrenDeptById" parameterType="Long" resultMap="SysDeptResult">
        select * from sys_dept where find_in_set(#{deptId}, ancestors)
    </select>
    <select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int">
        select count(*) from sys_dept where status = 0 and del_flag = '0' and find_in_set(#{deptId}, ancestors)
    </select>
    <select id="checkDeptNameUnique" resultMap="SysDeptResult">
        <include refid="selectDeptVo"/>
        where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
    </select>
    <insert id="insertDept" parameterType="com.ruoyi.common.core.domain.entity.SysDept">
         insert into sys_dept(
             <if test="deptId != null and deptId != 0">dept_id,</if>
             <if test="parentId != null and parentId != 0">parent_id,</if>
             <if test="deptName != null and deptName != ''">dept_name,</if>
             <if test="ancestors != null and ancestors != ''">ancestors,</if>
             <if test="orderNum != null">order_num,</if>
             <if test="leader != null and leader != ''">leader,</if>
             <if test="phone != null and phone != ''">phone,</if>
             <if test="email != null and email != ''">email,</if>
             <if test="status != null">status,</if>
             <if test="createBy != null and createBy != ''">create_by,</if>
             create_time
         )values(
             <if test="deptId != null and deptId != 0">#{deptId},</if>
             <if test="parentId != null and parentId != 0">#{parentId},</if>
             <if test="deptName != null and deptName != ''">#{deptName},</if>
             <if test="ancestors != null and ancestors != ''">#{ancestors},</if>
             <if test="orderNum != null">#{orderNum},</if>
             <if test="leader != null and leader != ''">#{leader},</if>
             <if test="phone != null and phone != ''">#{phone},</if>
             <if test="email != null and email != ''">#{email},</if>
             <if test="status != null">#{status},</if>
             <if test="createBy != null and createBy != ''">#{createBy},</if>
             sysdate()
         )
    </insert>
    <update id="updateDept" parameterType="com.ruoyi.common.core.domain.entity.SysDept">
         update sys_dept
         <set>
             <if test="parentId != null and parentId != 0">parent_id = #{parentId},</if>
             <if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
             <if test="ancestors != null and ancestors != ''">ancestors = #{ancestors},</if>
             <if test="orderNum != null">order_num = #{orderNum},</if>
             <if test="leader != null">leader = #{leader},</if>
             <if test="phone != null">phone = #{phone},</if>
             <if test="email != null">email = #{email},</if>
             <if test="status != null and status != ''">status = #{status},</if>
             <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
             update_time = sysdate()
         </set>
         where dept_id = #{deptId}
    </update>
    <update id="updateDeptChildren" parameterType="java.util.List">
        update sys_dept set ancestors =
        <foreach collection="depts" item="item" index="index"
            separator=" " open="case dept_id" close="end">
            when #{item.deptId} then #{item.ancestors}
        </foreach>
        where dept_id in
        <foreach collection="depts" item="item" index="index"
            separator="," open="(" close=")">
            #{item.deptId}
        </foreach>
    </update>
    <update id="updateDeptStatusNormal" parameterType="Long">
         update sys_dept set status = '0' where dept_id in
         <foreach collection="array" item="deptId" open="(" separator="," close=")">
            #{deptId}
        </foreach>
    </update>
    <delete id="deleteDeptById" parameterType="Long">
        update sys_dept set del_flag = '2' where dept_id = #{deptId}
    </delete>
</mapper>
    <select id="selectDeptListByRoleId" resultType="Long">
        select d.dept_id
        from sys_dept d
        left join sys_role_dept rd on d.dept_id = rd.dept_id
        where rd.role_id = #{roleId}
        <if test="deptCheckStrictly">
            and d.dept_id not in (select d.parent_id from sys_dept d inner join sys_role_dept rd on d.dept_id =
            rd.dept_id and rd.role_id = #{roleId})
        </if>
        order by d.parent_id, d.order_num
    </select>
    <select id="selectDeptById" parameterType="Long" resultMap="SysDeptResult">
        select d.dept_id,
               d.parent_id,
               d.dept_code,
               d.ancestors,
               d.dept_name,
               d.order_num,
               d.leader,
               d.phone,
               d.email,
               d.status,
               (select dept_name from sys_dept where dept_id = d.parent_id) parent_name
        from sys_dept d
        where d.dept_id = #{deptId}
    </select>
    <select id="checkDeptExistUser" parameterType="Long" resultType="int">
        select count(1)
        from sys_user
        where dept_id = #{deptId}
          and del_flag = '0'
    </select>
    <select id="hasChildByDeptId" parameterType="Long" resultType="int">
        select count(1)
        from sys_dept
        where del_flag = '0'
          and parent_id = #{deptId} limit 1
    </select>
    <select id="selectChildrenDeptById" parameterType="Long" resultMap="SysDeptResult">
        select *
        from sys_dept
        where find_in_set(#{deptId}, ancestors)
    </select>
    <select id="selectNormalChildrenDeptById" parameterType="Long" resultType="int">
        select count(*)
        from sys_dept
        where status = 0
          and del_flag = '0'
          and find_in_set(#{deptId}, ancestors)
    </select>
    <select id="checkDeptNameUnique" resultMap="SysDeptResult">
        <include refid="selectDeptVo"/>
        where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
    </select>
    <insert id="insertDept" parameterType="com.ruoyi.common.core.domain.entity.SysDept">
        insert into sys_dept(
        <if test="deptId != null and deptId != 0">dept_id,</if>
        <if test="parentId != null and parentId != 0">parent_id,</if>
        <if test="deptName != null and deptName != ''">dept_name,</if>
        <if test="ancestors != null and ancestors != ''">ancestors,</if>
        <if test="orderNum != null">order_num,</if>
        <if test="leader != null and leader != ''">leader,</if>
        <if test="phone != null and phone != ''">phone,</if>
        <if test="email != null and email != ''">email,</if>
        <if test="status != null">status,</if>
        <if test="deptCode != null">dept_code,</if>
        <if test="createBy != null and createBy != ''">create_by,</if>
        create_time
        )values(
        <if test="deptId != null and deptId != 0">#{deptId},</if>
        <if test="parentId != null and parentId != 0">#{parentId},</if>
        <if test="deptName != null and deptName != ''">#{deptName},</if>
        <if test="ancestors != null and ancestors != ''">#{ancestors},</if>
        <if test="orderNum != null">#{orderNum},</if>
        <if test="leader != null and leader != ''">#{leader},</if>
        <if test="phone != null and phone != ''">#{phone},</if>
        <if test="email != null and email != ''">#{email},</if>
        <if test="status != null">#{status},</if>
        <if test="deptCode != null">#{deptCode},</if>
        <if test="createBy != null and createBy != ''">#{createBy},</if>
        sysdate()
        )
    </insert>
    <update id="updateDept" parameterType="com.ruoyi.common.core.domain.entity.SysDept">
        update sys_dept
        <set>
            <if test="parentId != null and parentId != 0">parent_id = #{parentId},</if>
            <if test="deptName != null and deptName != ''">dept_name = #{deptName},</if>
            <if test="ancestors != null and ancestors != ''">ancestors = #{ancestors},</if>
            <if test="orderNum != null">order_num = #{orderNum},</if>
            <if test="leader != null">leader = #{leader},</if>
            <if test="phone != null">phone = #{phone},</if>
            <if test="email != null">email = #{email},</if>
            <if test="status != null and status != ''">status = #{status},</if>
            <if test="deptCode != null">dept_code=#{deptCode},</if>
            <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
            update_time = sysdate()
        </set>
        where dept_id = #{deptId}
    </update>
    <update id="updateDeptChildren" parameterType="java.util.List">
        update sys_dept set ancestors =
        <foreach collection="depts" item="item" index="index"
                 separator=" " open="case dept_id" close="end">
            when #{item.deptId} then #{item.ancestors}
        </foreach>
        where dept_id in
        <foreach collection="depts" item="item" index="index"
                 separator="," open="(" close=")">
            #{item.deptId}
        </foreach>
    </update>
    <update id="updateDeptStatusNormal" parameterType="Long">
        update sys_dept set status = '0' where dept_id in
        <foreach collection="array" item="deptId" open="(" separator="," close=")">
            #{deptId}
        </foreach>
    </update>
    <delete id="deleteDeptById" parameterType="Long">
        update sys_dept
        set del_flag = '2'
        where dept_id = #{deptId}
    </delete>
</mapper>
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -1,221 +1,303 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.SysUserMapper">
    <resultMap type="com.ruoyi.common.core.domain.entity.SysUser" id="SysUserResult">
        <id     property="userId"       column="user_id"      />
        <result property="deptId"       column="dept_id"      />
        <result property="userName"     column="user_name"    />
        <result property="nickName"     column="nick_name"    />
        <result property="email"        column="email"        />
        <result property="phonenumber"  column="phonenumber"  />
        <result property="sex"          column="sex"          />
        <result property="avatar"       column="avatar"       />
        <result property="password"     column="password"     />
        <result property="status"       column="status"       />
        <result property="delFlag"      column="del_flag"     />
        <result property="loginIp"      column="login_ip"     />
        <result property="loginDate"    column="login_date"   />
        <result property="createBy"     column="create_by"    />
        <result property="createTime"   column="create_time"  />
        <result property="updateBy"     column="update_by"    />
        <result property="updateTime"   column="update_time"  />
        <result property="remark"       column="remark"       />
        <association property="dept"    column="dept_id" javaType="SysDept" resultMap="deptResult" />
        <collection  property="roles"   javaType="java.util.List"           resultMap="RoleResult" />
        <id property="userId" column="user_id"/>
        <result property="deptId" column="dept_id"/>
        <result property="hospInfo" column="hosp_info"/>
        <result property="deptInfo" column="dept_info"/>
        <result property="userName" column="user_name"/>
        <result property="nickName" column="nick_name"/>
        <result property="email" column="email"/>
        <result property="phonenumber" column="phonenumber"/>
        <result property="sex" column="sex"/>
        <result property="avatar" column="avatar"/>
        <result property="password" column="password"/>
        <result property="status" column="status"/>
        <result property="delFlag" column="del_flag"/>
        <result property="loginIp" column="login_ip"/>
        <result property="loginDate" column="login_date"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="remark" column="remark"/>
        <result property="userType" column="user_type"/>
        <result property="searchscope" column="searchscope"/>
        <association property="dept" column="dept_id" javaType="com.ruoyi.common.core.domain.entity.SysDept"
                     resultMap="deptResult"/>
        <collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
    </resultMap>
    <resultMap id="deptResult" type="com.ruoyi.common.core.domain.entity.SysDept">
        <id     property="deptId"    column="dept_id"     />
        <result property="parentId"  column="parent_id"   />
        <result property="deptName"  column="dept_name"   />
        <result property="ancestors" column="ancestors"   />
        <result property="orderNum"  column="order_num"   />
        <result property="leader"    column="leader"      />
        <result property="status"    column="dept_status" />
        <id property="deptId" column="dept_id"/>
        <result property="parentId" column="parent_id"/>
        <result property="deptName" column="dept_name"/>
        <result property="ancestors" column="ancestors"/>
        <result property="orderNum" column="order_num"/>
        <result property="leader" column="leader"/>
        <result property="status" column="dept_status"/>
    </resultMap>
    <resultMap id="RoleResult" type="com.ruoyi.common.core.domain.entity.SysRole">
        <id     property="roleId"       column="role_id"        />
        <result property="roleName"     column="role_name"      />
        <result property="roleKey"      column="role_key"       />
        <result property="roleSort"     column="role_sort"      />
        <result property="dataScope"     column="data_scope"    />
        <result property="status"       column="role_status"    />
        <id property="roleId" column="role_id"/>
        <result property="roleName" column="role_name"/>
        <result property="roleKey" column="role_key"/>
        <result property="roleSort" column="role_sort"/>
        <result property="dataScope" column="data_scope"/>
        <result property="status" column="role_status"/>
    </resultMap>
    <sql id="selectUserVo">
        select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
        d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
    <sql id="selectUserVo">
        select u.user_id,
               u.dept_id,
               u.hosp_info,
               u.dept_info,
               u.searchscope,
               u.user_name,
               u.user_type,
               u.nick_name,
               u.email,
               u.avatar,
               u.phonenumber,
               u.password,
               u.sex,
               u.status,
               u.del_flag,
               u.login_ip,
               u.login_date,
               u.create_by,
               u.create_time,
               u.remark,
               d.dept_id,
               d.parent_id,
               d.ancestors,
               d.dept_name,
               d.order_num,
               d.leader,
               d.status as dept_status,
               r.role_id,
               r.role_name,
               r.role_key,
               r.role_sort,
               r.data_scope,
               r.status as role_status
        from sys_user u
            left join sys_dept d on u.dept_id = d.dept_id
            left join sys_user_role ur on u.user_id = ur.user_id
            left join sys_role r on r.role_id = ur.role_id
                 left join sys_dept d on u.dept_id = d.dept_id
                 left join sys_user_role ur on u.user_id = ur.user_id
                 left join sys_role r on r.role_id = ur.role_id
    </sql>
    <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
        select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
        left join sys_dept d on u.dept_id = d.dept_id
        where u.del_flag = '0'
        <if test="userId != null and userId != 0">
            AND u.user_id = #{userId}
        </if>
        <if test="userName != null and userName != ''">
            AND u.user_name like concat('%', #{userName}, '%')
        </if>
        <if test="status != null and status != ''">
            AND u.status = #{status}
        </if>
        <if test="phonenumber != null and phonenumber != ''">
            AND u.phonenumber like concat('%', #{phonenumber}, '%')
        </if>
        <if test="params.beginTime != null and params.beginTime != ''"><!-- å¼€å§‹æ—¶é—´æ£€ç´¢ -->
            AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
        </if>
        <if test="params.endTime != null and params.endTime != ''"><!-- ç»“束时间检索 -->
            AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
        </if>
        <if test="deptId != null and deptId != 0">
            AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId}, ancestors) ))
        </if>
        <!-- æ•°æ®èŒƒå›´è¿‡æ»¤ -->
        ${params.dataScope}
    </select>
    <select id="selectUserList" parameterType="com.ruoyi.common.core.domain.entity.SysUser" resultMap="SysUserResult">
        select u.user_id,u.hosp_info,u.dept_info, u.searchscope, u.dept_id, u.user_type, u.nick_name, u.user_name, u.email,
        u.avatar,
        u.phonenumber, u.sex, u.status,
        u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user
        u
        left join sys_dept d on u.dept_id = d.dept_id
        where u.del_flag = '0'
        <if test="userId != null and userId != 0">
            AND u.user_id = #{userId}
        </if>
        <if test="userName != null and userName != ''">
            AND u.user_name like concat('%', #{userName}, '%')
        </if>
        <if test="nickName != null and nickName != ''">
            AND u.nick_name like concat('%', #{nickName}, '%')
        </if>
        <if test="status != null and status != ''">
            AND u.status = #{status}
        </if>
        <if test="phonenumber != null and phonenumber != ''">
            AND u.phonenumber like concat('%', #{phonenumber}, '%')
        </if>
        <if test="params.beginTime != null and params.beginTime != ''"><!-- å¼€å§‹æ—¶é—´æ£€ç´¢ -->
            AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
        </if>
        <if test="params.endTime != null and params.endTime != ''"><!-- ç»“束时间检索 -->
            AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
        </if>
        <if test="deptId != null and deptId != 0">
            AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId},
            ancestors) ))
        </if>
        <!-- æ•°æ®èŒƒå›´è¿‡æ»¤ -->
        ${params.dataScope}
    </select>
    <select id="selectAllocatedList" parameterType="com.ruoyi.common.core.domain.entity.SysUser" resultMap="SysUserResult">
        select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
        from sys_user u
             left join sys_dept d on u.dept_id = d.dept_id
             left join sys_user_role ur on u.user_id = ur.user_id
             left join sys_role r on r.role_id = ur.role_id
        where u.del_flag = '0' and r.role_id = #{roleId}
        <if test="userName != null and userName != ''">
            AND u.user_name like concat('%', #{userName}, '%')
        </if>
        <if test="phonenumber != null and phonenumber != ''">
            AND u.phonenumber like concat('%', #{phonenumber}, '%')
        </if>
        <!-- æ•°æ®èŒƒå›´è¿‡æ»¤ -->
        ${params.dataScope}
    </select>
    <select id="selectAllocatedList" parameterType="com.ruoyi.common.core.domain.entity.SysUser"
            resultMap="SysUserResult">
        select distinct u.user_id,u.hosp_info,u.dept_info, u.searchscope, u.dept_id, u.user_name, u.user_type, u.nick_name,
        u.email,
        u.phonenumber, u.status,
        u.create_time
        from sys_user u
        left join sys_dept d on u.dept_id = d.dept_id
        left join sys_user_role ur on u.user_id = ur.user_id
        left join sys_role r on r.role_id = ur.role_id
        where u.del_flag = '0' and r.role_id = #{roleId}
        <if test="userName != null and userName != ''">
            AND u.user_name like concat('%', #{userName}, '%')
        </if>
        <if test="phonenumber != null and phonenumber != ''">
            AND u.phonenumber like concat('%', #{phonenumber}, '%')
        </if>
        <!-- æ•°æ®èŒƒå›´è¿‡æ»¤ -->
        ${params.dataScope}
    </select>
    <select id="selectUnallocatedList" parameterType="com.ruoyi.common.core.domain.entity.SysUser" resultMap="SysUserResult">
        select distinct u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
        from sys_user u
             left join sys_dept d on u.dept_id = d.dept_id
             left join sys_user_role ur on u.user_id = ur.user_id
             left join sys_role r on r.role_id = ur.role_id
        where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL)
        and u.user_id not in (select u.user_id from sys_user u inner join sys_user_role ur on u.user_id = ur.user_id and ur.role_id = #{roleId})
        <if test="userName != null and userName != ''">
            AND u.user_name like concat('%', #{userName}, '%')
        </if>
        <if test="phonenumber != null and phonenumber != ''">
            AND u.phonenumber like concat('%', #{phonenumber}, '%')
        </if>
        <!-- æ•°æ®èŒƒå›´è¿‡æ»¤ -->
        ${params.dataScope}
    </select>
    <select id="selectUnallocatedList" parameterType="com.ruoyi.common.core.domain.entity.SysUser"
            resultMap="SysUserResult">
        select distinct u.user_id, u.dept_id, u.hosp_info, u.dept_info,u.searchscope, u.user_name, u.user_type, u.nick_name,
        u.email,
        u.phonenumber, u.status,
        u.create_time
        from sys_user u
        left join sys_dept d on u.dept_id = d.dept_id
        left join sys_user_role ur on u.user_id = ur.user_id
        left join sys_role r on r.role_id = ur.role_id
        where u.del_flag = '0' and (r.role_id != #{roleId} or r.role_id IS NULL)
        and u.user_id not in (select u.user_id from sys_user u inner join sys_user_role ur on u.user_id = ur.user_id and
        ur.role_id = #{roleId})
        <if test="userName != null and userName != ''">
            AND u.user_name like concat('%', #{userName}, '%')
        </if>
        <if test="phonenumber != null and phonenumber != ''">
            AND u.phonenumber like concat('%', #{phonenumber}, '%')
        </if>
        <!-- æ•°æ®èŒƒå›´è¿‡æ»¤ -->
        ${params.dataScope}
    </select>
    <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
        <include refid="selectUserVo"/>
        where u.user_name = #{userName} and u.del_flag = '0'
    </select>
    <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
        <include refid="selectUserVo"/>
        where u.user_name = #{userName} and u.del_flag = '0'
    </select>
    <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
        <include refid="selectUserVo"/>
        where u.user_id = #{userId}
    </select>
    <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
        <include refid="selectUserVo"/>
        where u.user_id = #{userId}
    </select>
    <select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult">
        select user_id, user_name from sys_user where user_name = #{userName} and del_flag = '0' limit 1
    </select>
    <select id="checkUserNameUnique" parameterType="String" resultMap="SysUserResult">
        select user_id, user_name
        from sys_user
        where user_name = #{userName}
          and del_flag = '0' limit 1
    </select>
    <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
        select user_id, phonenumber from sys_user where phonenumber = #{phonenumber} and del_flag = '0' limit 1
    </select>
    <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
        select user_id, phonenumber
        from sys_user
        where phonenumber = #{phonenumber}
          and del_flag = '0' limit 1
    </select>
    <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
        select user_id, email from sys_user where email = #{email} and del_flag = '0' limit 1
    </select>
    <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
        select user_id, email
        from sys_user
        where email = #{email}
          and del_flag = '0' limit 1
    </select>
    <insert id="insertUser" parameterType="com.ruoyi.common.core.domain.entity.SysUser" useGeneratedKeys="true" keyProperty="userId">
         insert into sys_user(
             <if test="userId != null and userId != 0">user_id,</if>
             <if test="deptId != null and deptId != 0">dept_id,</if>
             <if test="userName != null and userName != ''">user_name,</if>
             <if test="nickName != null and nickName != ''">nick_name,</if>
             <if test="email != null and email != ''">email,</if>
             <if test="avatar != null and avatar != ''">avatar,</if>
             <if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
             <if test="sex != null and sex != ''">sex,</if>
             <if test="password != null and password != ''">password,</if>
             <if test="status != null and status != ''">status,</if>
             <if test="createBy != null and createBy != ''">create_by,</if>
             <if test="remark != null and remark != ''">remark,</if>
             create_time
         )values(
             <if test="userId != null and userId != ''">#{userId},</if>
             <if test="deptId != null and deptId != ''">#{deptId},</if>
             <if test="userName != null and userName != ''">#{userName},</if>
             <if test="nickName != null and nickName != ''">#{nickName},</if>
             <if test="email != null and email != ''">#{email},</if>
             <if test="avatar != null and avatar != ''">#{avatar},</if>
             <if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
             <if test="sex != null and sex != ''">#{sex},</if>
             <if test="password != null and password != ''">#{password},</if>
             <if test="status != null and status != ''">#{status},</if>
             <if test="createBy != null and createBy != ''">#{createBy},</if>
             <if test="remark != null and remark != ''">#{remark},</if>
             sysdate()
         )
    </insert>
    <insert id="insertUser" parameterType="com.ruoyi.common.core.domain.entity.SysUser" useGeneratedKeys="true"
            keyProperty="userId">
        insert into sys_user(
        <if test="userId != null and userId != 0">user_id,</if>
        <if test="deptId != null and deptId != 0">dept_id,</if>
        <if test="userName != null and userName != ''">user_name,</if>
        <if test="nickName != null and nickName != ''">nick_name,</if>
        <if test="email != null and email != ''">email,</if>
        <if test="avatar != null and avatar != ''">avatar,</if>
        <if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
        <if test="sex != null and sex != ''">sex,</if>
        <if test="password != null and password != ''">password,</if>
        <if test="status != null and status != ''">status,</if>
        <if test="createBy != null and createBy != ''">create_by,</if>
        <if test="remark != null and remark != ''">remark,</if>
        <if test="userType != null and userType != ''">user_type,</if>
        <if test="deptInfo != null and deptInfo != ''">dept_info,</if>
        <if test="hospInfo != null and hospInfo != ''">hosp_info,</if>
        <if test="searchscope != null and searchscope != ''">searchscope,</if>
        create_time
        )values(
        <if test="userId != null and userId != ''">#{userId},</if>
        <if test="deptId != null and deptId != ''">#{deptId},</if>
        <if test="userName != null and userName != ''">#{userName},</if>
        <if test="nickName != null and nickName != ''">#{nickName},</if>
        <if test="email != null and email != ''">#{email},</if>
        <if test="avatar != null and avatar != ''">#{avatar},</if>
        <if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
        <if test="sex != null and sex != ''">#{sex},</if>
        <if test="password != null and password != ''">#{password},</if>
        <if test="status != null and status != ''">#{status},</if>
        <if test="createBy != null and createBy != ''">#{createBy},</if>
        <if test="remark != null and remark != ''">#{remark},</if>
        <if test="userType != null and userType != ''">#{userType},</if>
        <if test="deptInfo != null and deptInfo != ''">#{deptInfo},</if>
        <if test="hospInfo != null and hospInfo != ''">#{hospInfo},</if>
        <if test="searchscope != null and searchscope != ''">#{searchscope},</if>
        sysdate()
        )
    </insert>
    <update id="updateUser" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
         update sys_user
         <set>
             <if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
             <if test="userName != null and userName != ''">user_name = #{userName},</if>
             <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
             <if test="email != null ">email = #{email},</if>
             <if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
             <if test="sex != null and sex != ''">sex = #{sex},</if>
             <if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
             <if test="password != null and password != ''">password = #{password},</if>
             <if test="status != null and status != ''">status = #{status},</if>
             <if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
             <if test="loginDate != null">login_date = #{loginDate},</if>
             <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
             <if test="remark != null">remark = #{remark},</if>
             update_time = sysdate()
         </set>
         where user_id = #{userId}
    </update>
    <update id="updateUser" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
        update sys_user
        <set>
            <if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
            <if test="userName != null and userName != ''">user_name = #{userName},</if>
            <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
            <if test="email != null ">email = #{email},</if>
            <if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
            <if test="sex != null and sex != ''">sex = #{sex},</if>
            <if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
            <if test="password != null and password != ''">password = #{password},</if>
            <if test="status != null and status != ''">status = #{status},</if>
            <if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
            <if test="loginDate != null">login_date = #{loginDate},</if>
            <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
            <if test="remark != null">remark = #{remark},</if>
            <if test="userType != null">user_type = #{userType},</if>
            <if test="searchscope != null">searchscope = #{searchscope},</if>
            <if test="deptInfo != null and deptInfo != ''">dept_info=#{deptInfo},</if>
            <if test="hospInfo != null and hospInfo != ''">hosp_info=#{hospInfo},</if>
            update_time = sysdate()
        </set>
        where user_id = #{userId}
    </update>
    <update id="updateUserStatus" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
         update sys_user set status = #{status} where user_id = #{userId}
    </update>
    <update id="updateUserStatus" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
        update sys_user
        set status = #{status}
        where user_id = #{userId}
    </update>
    <update id="updateUserAvatar" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
         update sys_user set avatar = #{avatar} where user_name = #{userName}
    </update>
    <update id="updateUserAvatar" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
        update sys_user
        set avatar = #{avatar}
        where user_name = #{userName}
    </update>
    <update id="resetUserPwd" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
         update sys_user set password = #{password} where user_name = #{userName}
    </update>
    <update id="resetUserPwd" parameterType="com.ruoyi.common.core.domain.entity.SysUser">
        update sys_user
        set password = #{password}
        where user_name = #{userName}
    </update>
    <delete id="deleteUserById" parameterType="Long">
         update sys_user set del_flag = '2' where user_id = #{userId}
     </delete>
    <delete id="deleteUserById" parameterType="Long">
        update sys_user
        set del_flag = '2'
        where user_id = #{userId}
    </delete>
     <delete id="deleteUserByIds" parameterType="Long">
         update sys_user set del_flag = '2' where user_id in
         <foreach collection="array" item="userId" open="(" separator="," close=")">
             #{userId}
    <delete id="deleteUserByIds" parameterType="Long">
        update sys_user set del_flag = '2' where user_id in
        <foreach collection="array" item="userId" open="(" separator="," close=")">
            #{userId}
        </foreach>
     </delete>
    </delete>
</mapper>
ruoyi-ui/src/views/system/menu/index.vue
@@ -77,7 +77,7 @@
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
@@ -198,7 +198,7 @@
            <el-form-item prop="perms">
              <el-input v-model="form.perms" placeholder="请输入权限标识" maxlength="100" />
              <span slot="label">
                <el-tooltip content="控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasPermi('system:user:list')`)" placement="top">
                <el-tooltip content="控制器中定义的权限字符,如://@PreAuthorize(`@ss.hasPermi('system:user:list')`)" placement="top">
                <i class="el-icon-question"></i>
                </el-tooltip>
                æƒé™å­—符
ruoyi-ui/src/views/system/role/index.vue
@@ -163,7 +163,7 @@
        </el-form-item>
        <el-form-item prop="roleKey">
          <span slot="label">
            <el-tooltip content="控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasRole('admin')`)" placement="top">
            <el-tooltip content="控制器中定义的权限字符,如://@PreAuthorize(`@ss.hasRole('admin')`)" placement="top">
              <i class="el-icon-question"></i>
            </el-tooltip>
            æƒé™å­—符
@@ -602,4 +602,4 @@
    }
  }
};
</script>
</script>
smartor/src/main/java/com/smartor/domain/HeLibrary.java
@@ -229,4 +229,9 @@
    @ApiModelProperty("富文本")
    private String richText = "";
    /**
     * html富文本
     */
    @ApiModelProperty("html富文本")
    private String htmlRichText;
}
smartor/src/main/java/com/smartor/domain/HeLibraryVO.java
@@ -242,4 +242,10 @@
     */
    @ApiModelProperty("类型:1宣教  2通知")
    private String hetype;
    /**
     * html富文本
     */
    @ApiModelProperty("html富文本")
    private String htmlRichText;
}
smartor/src/main/java/com/smartor/domain/IvrLibaTemplate.java
@@ -354,6 +354,12 @@
    private Integer longTemp;
    /**
     * éƒ¨é—¨ç¼–码
     */
    @ApiModelProperty(value = "部门编码")
    private String deptCode;
    /**
     * pageNum
     */
    @ApiModelProperty(value = "pageNum")
smartor/src/main/java/com/smartor/domain/IvrTaskTemplate.java
@@ -377,6 +377,13 @@
    @ApiModelProperty(value = "指导语")
    private String instruction;
    /**
     * éƒ¨é—¨ç¼–码
     */
    @ApiModelProperty(value = "部门编码")
    private String deptCode;
    /**
     * å‡ºé™¢å¤©æ•°ï¼ˆé•¿æœŸä»»åŠ¡ï¼Œå‡ºå®‰é™¢åŽï¼Œç¬¬å‡ å¤©å‘é€ä¿¡æ¯ï¼‰
smartor/src/main/java/com/smartor/domain/IvrTaskTemplateVO.java
@@ -386,6 +386,19 @@
    private String instruction;
    /**
     * å‡ºé™¢å¤©æ•°ï¼ˆé•¿æœŸä»»åŠ¡ï¼Œå‡ºå®‰é™¢åŽï¼Œç¬¬å‡ å¤©å‘é€ä¿¡æ¯ï¼‰
     */
    @ApiModelProperty(value = "出院天数(长期任务,出安院后,第几天发送信息)")
    private Integer sendDay;
    /**
     * éƒ¨é—¨ç¼–码
     */
    @ApiModelProperty(value = "部门编码")
    private String deptCode;
    /**
     * å…è®¸é‡æ‹¨æ¬¡æ•°
     */
    @Excel(name = "允许重拨次数")
smartor/src/main/java/com/smartor/domain/PatArchive.java
@@ -40,7 +40,7 @@
     * GUID
     */
    @ApiModelProperty("GUID")
    private Long guid;
    private String guid;
    /**
     * å§“名
@@ -50,18 +50,32 @@
    private String patientno;
    /**
     * æœåŠ¡æ ‡è¯†ï¼š0,需要,1,不需要
     */
    @ApiModelProperty("服务标识:0,需要,1,不需要")
    @Excel(name = " æœåŠ¡æ ‡è¯†ï¼š0,需要,1,不需要 ")
    private String notrequiredFlag;
    /**
     * ä¸è¦æœåŠ¡çš„åŽŸå› 
     */
    @ApiModelProperty("不要服务的原因")
    @Excel(name = " ä¸è¦æœåŠ¡çš„åŽŸå›  ")
    private String notrequiredreason;
    /**
     * æ¥æº(1:HIS;2:数据平台;3:文件导入)
     */
    @ApiModelProperty("来源(1:HIS;2:数据平台;3:文件导入)")
    @Excel(name = " æ¥æº(1:HIS;2:数据平台;3:文件导入) ")
    private int sourcefrom;
    private Integer sourcefrom;
    /**
     * his系统的患者id
     */
    @ApiModelProperty("his系统的患者id")
    @Excel(name = "his系统的患者id")
    private int patidHis;
    private Integer patidHis;
    /**
     * his系统的患者id
@@ -98,6 +112,12 @@
    @ApiModelProperty("籍贯")
    @Excel(name = " ç±è´¯ ")
    private String nativePlace;
    /**
     * ä½é™¢å·
     */
    @ApiModelProperty(value = "住院号")
    private String inhospno;
    /**
     * è¯ä»¶å·ç 
@@ -142,6 +162,12 @@
    @ApiModelProperty("年龄")
    @Excel(name = " å¹´é¾„ ")
    private Long age;
    /**
     * å¹´é¾„
     */
    @ApiModelProperty("年龄单位")
    @Excel(name = " å¹´é¾„单位 ")
    private String ageUnit;
    /**
     * å»ºæ¡£æ—¶é—´
@@ -250,6 +276,25 @@
    @Excel(name = " ç§‘室 ")
    private String dept;
    /**
     * é’‰é’‰å·
     */
    @ApiModelProperty("科室")
    @Excel(name = " ç§‘室 ")
    private String deptcode;
    /**
     * åŒ»ç”Ÿå§“名
     */
    @ApiModelProperty("医生姓名")
    @Excel(name = " åŒ»ç”Ÿå§“名 ")
    private String drname;
    /**
     * åŒ»ç”Ÿç¼–码
     */
    @ApiModelProperty("医生编码")
    @Excel(name = " åŒ»ç”Ÿç¼–码 ")
    private String drcode;
    /**
     * é’‰é’‰å·
@@ -265,4 +310,10 @@
    @Excel(name = " ä¼šå‘˜å±žæ€§:0非会员,1一般会员、2重要会员 ")
    private String viptype;
    @ApiModelProperty("出院病区名称")
    private String leavehospitaldistrictname;
    @ApiModelProperty("出院病区编号")
    private String leavehospitaldistrictcode;
}
smartor/src/main/java/com/smartor/domain/PatArchiveImport.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,107 @@
package com.smartor.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Excel导入患者档案对象 pat_archive_import
 *
 * @author lihu
 * @date 2024-09-05
 */
@Data
@ApiModel("Excel导入患者档案")
public class PatArchiveImport extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * è‡ªå¢žID
     */
    @ApiModelProperty("自增ID")
    //数据库自增改成@TableId(type = IdType.AUTO)
    private Long id;
    /**
     * å§“名
     */
    @ApiModelProperty("姓名")
    @Excel(name = "姓名(必填)")
    private String name;
    /**
     * è¯ä»¶å·ç 
     */
    @ApiModelProperty("证件号码")
    @Excel(name = "证件号码(必填)",cellType = Excel.ColumnType.NUMERIC)
    private String idcardno;
    /**
     * æ‰‹æœºå·ç 
     */
    @ApiModelProperty("手机号码")
    @Excel(name = "手机号码(必填)",cellType = Excel.ColumnType.STRING)
    private String telcode;
    /**
     * æ‰¹æ¬¡åç§°
     */
    @ApiModelProperty("批次名称")
    @Excel(name = "批次名称(必填)",cellType = Excel.ColumnType.STRING)
    private String batchName;
    /**
     * æ‚£è€…编号
     */
    @ApiModelProperty("患者编号")
    @Excel(name = "患者编号",cellType = Excel.ColumnType.STRING)
    private String patientno;
    /**
     * æ‚£è€…类型:1、门诊、2、住院、3、体检
     */
    @ApiModelProperty("患者类型:1、门诊、2、住院、3、体检")
    @Excel(name = "患者类型:1、门诊、2、住院、3、体检", width = 25.00)
    private String pattype;
    /**
     * æ€§åˆ«   1:男  2:女
     */
    @ApiModelProperty("性别 1:男  2:女")
    @Excel(name = "性别   1:男  2:女")
    private Long sex;
    /**
     * å¹´é¾„
     */
    @ApiModelProperty("年龄")
    @Excel(name = "年龄")
    private Long age;
    /**
     * å¾®ä¿¡openid
     */
    @ApiModelProperty("微信openid ")
    private String openid;
    /**
     * åˆ é™¤æ ‡å¿—(0:未删除 1:已删除)
     */
    @ApiModelProperty("删除标志(0:未删除 1:已删除)")
    private String delFlag;
    /**
     * æ‰¹æ¬¡å·
     */
    @ApiModelProperty("批次号")
    private String batchNo;
}
smartor/src/main/java/com/smartor/domain/PatArchiveOthreInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,351 @@
package com.smartor.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * æ‚£è€…出入院、门诊信息 PatArchiveOthreInfo
 *
 * @author smartor
 * @date 2023-03-04
 */
@ApiModel(value = "PatArchiveOthreInfo", description = "患者出入院、门诊信息")
@Data
public class PatArchiveOthreInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * è‡ªå¢žID
     */
    @ApiModelProperty("自增ID")
    private Long id;
    /**
     * æœåŠ¡æ ‡è¯†ï¼š1,需要,0,不需要
     */
    @ApiModelProperty("服务标识:1,需要,0,不需要")
    @Excel(name = " æœåŠ¡æ ‡è¯†ï¼š1,需要,0,不需要 ")
    private String notrequiredFlag;
    /**
     * ä¸è¦æœåŠ¡çš„åŽŸå› 
     */
    @ApiModelProperty("不要服务的原因")
    @Excel(name = " ä¸è¦æœåŠ¡çš„åŽŸå›  ")
    private String notrequiredreason;
    /**
     * ä½é™¢å·
     */
    @ApiModelProperty(value = "住院号")
    private String inhospno;
    /**
     * å‡ºé™¢æ—¶é—´
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "出院时间")
    private Date endtime;
    /**
     * è´£ä»»æŠ¤å£«ç¼–码
     */
    @ApiModelProperty(value = "责任护士编码")
    private String nurseId;
    /**
     * è´£ä»»æŠ¤å£«
     */
    @ApiModelProperty(value = "责任护士")
    private String nurseName;
    /**
     * çˆ¶ID
     */
    @ApiModelProperty("父ID")
    private Long pid;
    /**
     * GUID
     */
    @ApiModelProperty("GUID")
    private Long guid;
    /**
     * å§“名
     */
    @ApiModelProperty("患者编号")
    @Excel(name = " æ‚£è€…编号 ")
    private String patientno;
    /**
     * æ¥æº(1:HIS;2:数据平台;3:文件导入)
     */
    @ApiModelProperty("来源(1:HIS;2:数据平台;3:文件导入)")
    @Excel(name = " æ¥æº(1:HIS;2:数据平台;3:文件导入) ")
    private Integer sourcefrom;
    /**
     * his系统的患者id
     */
    @ApiModelProperty("his系统的患者id")
    @Excel(name = "his系统的患者id")
    private Integer patidHis;
    /**
     * his系统的患者id
     */
    @ApiModelProperty("his系统的患者id")
    @Excel(name = "his系统的患者id")
    private String sdFlag;
    /**
     * å§“名
     */
    @ApiModelProperty("姓名")
    @Excel(name = " å§“名 ")
    private String name;
    /**
     * æ€§åˆ«  1:男 2:女
     */
    @ApiModelProperty("性别")
    @Excel(name = " æ€§åˆ« ")
    private Long sex;
    /**
     * è¯ä»¶ç±»åž‹
     */
    @ApiModelProperty("证件类型")
    @Excel(name = " è¯ä»¶ç±»åž‹ ")
    private String idcardtype;
    /**
     * è¯ä»¶å·ç 
     */
    @ApiModelProperty("籍贯")
    @Excel(name = " ç±è´¯ ")
    private String nativePlace;
    /**
     * è¯ä»¶å·ç 
     */
    @ApiModelProperty("居住地")
    @Excel(name = " å±…住地 ")
    private String placeOfResidence;
    /**
     * è¯ä»¶å·ç 
     */
    @ApiModelProperty("出生地")
    @Excel(name = " å‡ºç”Ÿåœ° ")
    private String birthplace;
    /**
     * è¯ä»¶å·ç 
     */
    @ApiModelProperty("证件号码")
    @Excel(name = " è¯ä»¶å·ç  ")
    private String idcardno;
    /**
     * ç”Ÿæ—¥
     */
    @ApiModelProperty("生日")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = " ç”Ÿæ—¥ ", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthdate;
    /**
     * å…¥é™¢æ—¶é—´
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("入院时间")
    private Date starttime;
    /**
     * å¹´é¾„
     */
    @ApiModelProperty("年龄")
    @Excel(name = " å¹´é¾„ ")
    private Long age;
    /**
     * å¹´é¾„
     */
    @ApiModelProperty("年龄单位")
    @Excel(name = " å¹´é¾„单位 ")
    private String ageUnit;
    /**
     * å»ºæ¡£æ—¶é—´
     */
    @ApiModelProperty("建档时间")
    @Excel(name = " å»ºæ¡£æ—¶é—´ ")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date archivetime;
    /**
     * å»ºæ¡£äºº
     */
    @ApiModelProperty("建档人")
    @Excel(name = " å»ºæ¡£äºº ")
    private String archiveby;
    /**
     * æ‰‹æœºå·ç 
     */
    @ApiModelProperty("手机号码")
    @Excel(name = " æ‰‹æœºå·ç  ")
    private String telcode;
    /**
     * äº²å±žå·ç 
     */
    @ApiModelProperty("亲属号码")
    @Excel(name = " äº²å±žå·ç  ")
    private String relativetelcode;
    /**
     * æ°‘族
     */
    @ApiModelProperty("民族")
    @Excel(name = " æ°‘族 ")
    private String nation;
    /**
     * æœºæž„ID
     */
    @ApiModelProperty("机构ID")
    @Excel(name = " æœºæž„ID ")
    private String orgid;
    /**
     * å¾®ä¿¡openid
     */
    @ApiModelProperty("微信openid")
    @Excel(name = " å¾®ä¿¡openid ")
    private String openid;
    /**
     * åˆ é™¤æ ‡è®°
     */
    @ApiModelProperty("删除标记")
    private String delFlag;
    /**
     * ä¸Šä¼ æ ‡è®°
     */
    @ApiModelProperty("上传标记")
    private Long isupload;
    /**
     * ä¸Šä¼ æ—¶é—´
     */
    @ApiModelProperty("上传时间")
    private Date uploadTime;
    /**
     * æ ‡ç­¾
     */
    @ApiModelProperty("标签")
    @Excel(name = " æ ‡ç­¾ ", cellType = Excel.ColumnType.STRING)
    private String tag;
    /**
     * æ ‡ç­¾
     */
    @ApiModelProperty("标签id")
    @Excel(name = " æ ‡ç­¾id ", cellType = Excel.ColumnType.STRING)
    private Long tagid;
    @ApiModelProperty("标签集合")
    private List<PatArchivetag> tagList;
    /**
     * æ ‡ç­¾
     */
    @ApiModelProperty("患者类型")
    @Excel(name = " æ‚£è€…类型 ", cellType = Excel.ColumnType.STRING)
    private String pattype;
    /**
     * é’‰é’‰å·
     */
    @ApiModelProperty("钉钉号")
    @Excel(name = " é’‰é’‰å· ")
    private String dduserid;
    /**
     * é’‰é’‰å·
     */
    @ApiModelProperty("科室")
    @Excel(name = " ç§‘室 ")
    private String dept;
    /**
     * é’‰é’‰å·
     */
    @ApiModelProperty("科室")
    @Excel(name = " ç§‘室 ")
    private String deptcode;
    /**
     * ç§‘室名称
     */
    @ApiModelProperty("科室名称")
    @Excel(name = " ç§‘室名称 ")
    private String deptname;
    /**
     * æ‰‹æœºå·
     */
    @ApiModelProperty("手机号")
    @Excel(name = " æ‰‹æœºå· ")
    private String phone;
    /**
     * åŒ»ç”Ÿå§“名
     */
    @ApiModelProperty("医生姓名")
    @Excel(name = " åŒ»ç”Ÿå§“名 ")
    private String drname;
    /**
     * åŒ»ç”Ÿç¼–码
     */
    @ApiModelProperty("医生编码")
    @Excel(name = " åŒ»ç”Ÿç¼–码 ")
    private String drcode;
    /**
     * é’‰é’‰å·
     */
    @ApiModelProperty("科室")
    @Excel(name = " ç§‘室 ")
    private String bedNo;
    /**
     * ä¼šå‘˜å±žæ€§:0非会员,1一般会员、2重要会员
     */
    @ApiModelProperty("会员属性:0非会员,1一般会员、2重要会员")
    @Excel(name = " ä¼šå‘˜å±žæ€§:0非会员,1一般会员、2重要会员 ")
    private String viptype;
    @ApiModelProperty("出院病区名称")
    private String leavehospitaldistrictname;
    @ApiModelProperty("出院病区编号")
    private String leavehospitaldistrictcode;
}
smartor/src/main/java/com/smartor/domain/PatArchiveReq.java
@@ -144,4 +144,29 @@
    private boolean isFilter = false;
    /**
     * å‡ºé™¢ç—…区编号
     */
    @ApiModelProperty(value = "出院病区编号")
    private String leavehospitaldistrictcode;
    /**
     * å‡ºé™¢ç—…区名称
     */
    @ApiModelProperty(value = "出院病区名称")
    @Excel(name = " å‡ºé™¢ç—…区名称 ")
    private String leavehospitaldistrictname;
    /**
     * ç—…区编号
     */
    @ApiModelProperty(value = "病区编号")
    private List<String> leavehospitaldistrictcodes;
    /**
     * ç§‘室编码
     */
    @ApiModelProperty(value = "科室编码")
    @Excel(name = " ç§‘室编码 ")
    private List<String> leaveldeptcodes;
}
smartor/src/main/java/com/smartor/domain/PatMedInhosp.java
@@ -29,9 +29,9 @@
    private Long inhospid;
    /**
     * è‡ªå¢žID
     * ä½é™¢å·
     */
    @ApiModelProperty(value = "自增ID")
    @ApiModelProperty(value = "住院号")
    private String inhospno;
    /**
@@ -39,6 +39,18 @@
     */
    @ApiModelProperty(value = "流水号")
    private String serialnum;
    /**
     * æŠ¤å£«ID
     */
    @ApiModelProperty(value = "护士ID")
    private String nurseId;
    /**
     * æŠ¤å£«å§“名
     */
    @ApiModelProperty(value = "护士姓名")
    private String nurseName;
    /**
     * åŒ»é™¢åç§°
@@ -265,7 +277,49 @@
    /**
     * é•¿æœŸä»»åŠ¡ï¼Œæ˜¯å¦å¤„ç†ï¼š0未处理   1处理
     */
    @ApiModelProperty(value = "长期任务,是否处理:0未处理   1处理")
    @ApiModelProperty(value = "长期任务,是否处理:0未处理   1处理成功    2处理失败")
    private String checkFlag;
    /**
     * å¹´é¾„
     */
    @ApiModelProperty(value = "年龄")
    private String age;
    /**
     * æ‰‹æœºå·
     */
    @ApiModelProperty(value = "手机号")
    private String telcode;
    /**
     * æ‰‹æœºå·
     */
    @ApiModelProperty(value = "手机号")
    private String longTaskReason;
    /**
     * pageNum
     */
    @ApiModelProperty("pageNum")
    private Integer pageNum;
    /**
     * pageSize
     */
    @ApiModelProperty("pageSize")
    private Integer pageSize;
    /**
     * å‡ºé™¢æ–¹å¼åºå·
     */
    @ApiModelProperty("出院方式序号")
    @Excel(name = "出院方式序号")
    private String outWayId;
    /**
     * å‡ºé™¢æ–¹å¼åç§°
     */
    @ApiModelProperty("出院方式名称")
    @Excel(name = "出院方式名称")
    private String outWayName;
}
smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,308 @@
package com.smartor.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * æ‚£è€…住院记录对象 pat_med_inhosp
 *
 * @author smartor
 * @date 2023-03-04
 */
@ApiModel(value = "PatMedInhosp", description = "患者住院记录对象")
@Data
public class PatMedInhospVO extends BaseEntity {
    private static final long serialVersionUID = 1L;
    /**
     * è‡ªå¢žID
     */
    @ApiModelProperty(value = "自增ID")
    private Long inhospid;
    /**
     * è‡ªå¢žID
     */
    @ApiModelProperty(value = "自增ID")
    private String inhospno;
    /**
     * æŠ¤å£«ID
     */
    @ApiModelProperty(value = "护士ID")
    private String nurseId;
    /**
     * æŠ¤å£«å§“名
     */
    @ApiModelProperty(value = "护士姓名")
    private String nurseName;
    /**
     * æµæ°´å·
     */
    @ApiModelProperty(value = "流水号")
    private String serialnum;
    /**
     * åŒ»é™¢åç§°
     */
    @ApiModelProperty(value = "医院名称")
    @Excel(name = " åŒ»é™¢åç§° ")
    private String hospitalname;
    /**
     * åŒ»é™¢ç¼–号
     */
    @ApiModelProperty(value = "医院编号")
    private String hospitalcode;
    /**
     * é™¢åŒºç¼–号
     */
    @ApiModelProperty(value = "院区编号")
    private String hospitaldistrictcode;
    /**
     * é™¢åŒºåç§°
     */
    @ApiModelProperty(value = "院区名称")
    @Excel(name = " é™¢åŒºåç§° ")
    private String hospitaldistrictname;
    /**
     * å…¥é™¢è¯Šæ–­ICD值
     */
    @ApiModelProperty(value = "入院诊断ICD值")
    private String icd10code;
    /**
     * å…¥é™¢è¯Šæ–­åç§°
     */
    @ApiModelProperty(value = "入院诊断名称")
    private String diagname;
    /**
     * å…¥é™¢æ—¶é—´
     */
    @ApiModelProperty(value = "入院时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = " å…¥é™¢æ—¶é—´ ", width = 30, dateFormat = "yyyy-MM-dd")
    private Date starttime;
    /**
     * å‡ºé™¢æ—¶é—´
     */
    @ApiModelProperty(value = "出院时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = " å‡ºé™¢æ—¶é—´ ", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endtime;
    /**
     * å…¥é™¢ç§‘室代码
     */
    @ApiModelProperty(value = "入院科室代码")
    private String deptcode;
    /**
     * å…¥é™¢ç§‘室名称
     */
    @ApiModelProperty(value = "入院科室名称")
    private String deptname;
    /**
     * æˆ¿é—´å·
     */
    @ApiModelProperty(value = "房间号")
    private String roomno;
    /**
     * åºŠä½å·
     */
    @ApiModelProperty(value = "床位号")
    @Excel(name = " åºŠä½å· ")
    private String bedNo;
    /**
     * æœºæž„ID
     */
    @ApiModelProperty(value = "机构ID")
    @Excel(name = " æœºæž„ID ")
    private String orgid;
    /**
     * åˆ é™¤æ ‡è®°
     */
    @ApiModelProperty(value = "删除标记")
    private String delFlag;
    /**
     * ä¸Šä¼ æ ‡è®°
     */
    @ApiModelProperty(value = "上传标记")
    private Long isupload;
    /**
     * ä¸Šä¼ æ—¶é—´
     */
    @ApiModelProperty(value = "上传时间")
    private Date uploadTime;
    /**
     * æ¡£æ¡ˆID
     */
    @ApiModelProperty(value = "档案ID")
    private Long patid;
    /**
     * å‡ºé™¢è¯Šæ–­
     */
    @ApiModelProperty(value = "出院诊断")
    @Excel(name = " å‡ºé™¢è¯Šæ–­ ")
    private String leavediagname;
    /**
     * å‡ºé™¢è¯Šæ–­ICD值
     */
    @ApiModelProperty(value = "出院诊断ICD值")
    private String leaveicd10code;
    /**
     * åŒ»ç”Ÿå·¥å·
     */
    @ApiModelProperty(value = "医生工号")
    private String drcode;
    /**
     * åŒ»ç”Ÿåç§°
     */
    @ApiModelProperty(value = "医生名称")
    @Excel(name = " åŒ»ç”Ÿåç§° ")
    private String drname;
    /**
     * æ˜¯å¦ç”Ÿæˆæ–¹æ¡ˆçŠ¶æ€;0未生成 1生成入院 2生成出院 9无匹配方案
     */
    @ApiModelProperty(value = "是否生成方案状态;0未生成 1生成入院 2生成出院 9无匹配方案")
    private Long schemestatus;
    /**
     * æ˜¯å¦ç”Ÿæˆé€šç”¨æ–¹æ¡ˆçŠ¶æ€;0未生成 1生成 9无匹配方案
     */
    @ApiModelProperty(value = "是否生成通用方案状态;0未生成 1生成 9无匹配方案")
    private Long generalschemestatus;
    /**
     * å‡ºé™¢ç§‘室代码集合
     */
    @ApiModelProperty(value = "出院科室代码集合")
    private List<String> leaveldeptcodes;
    /**
     * å‡ºé™¢ç§‘室名称
     */
    @ApiModelProperty(value = "出院科室名称")
    @Excel(name = " å‡ºé™¢ç§‘室名称 ")
    private String leaveldeptname;
    /**
     * ç—…区ID
     */
    @ApiModelProperty(value = "病区ID")
    private String hospitaldistrictid;
    /**
     * å‡ºé™¢ç—…区编号
     */
    @ApiModelProperty(value = "出院病区编号集合")
    private List<String> leavehospitaldistrictcodes;
    /**
     * å‡ºé™¢ç—…区名称
     */
    @ApiModelProperty(value = "出院病区名称")
    @Excel(name = " å‡ºé™¢ç—…区名称 ")
    private String leavehospitaldistrictname;
    /**
     * å‡ºé™¢ç—…区ID
     */
    @ApiModelProperty(value = "出院病区ID")
    private String leavehospitaldistrictid;
    /**
     * å…¥é™¢ç§‘室ID
     */
    @ApiModelProperty(value = "入院科室ID")
    private String deptid;
    /**
     * å‡ºé™¢ç§‘室ID
     */
    @ApiModelProperty(value = "出院科室ID")
    private String leaveldeptid;
    /**
     * æ–¹æ¡ˆçŠ¶æ€æ“ä½œæ—¶é—´
     */
    @ApiModelProperty(value = "方案状态操作时间")
    private Date schemetime;
    /**
     * æ‚£è€…姓名
     */
    @ApiModelProperty(value = "患者姓名")
    private String patname;
    /**
     * æ‚£è€…编号
     */
    @ApiModelProperty(value = "患者编号")
    private String patno;
    /**
     * ä½é™¢æ ‡è¯†ï¼š 0:在院  1:出院    2:转科
     */
    @ApiModelProperty(value = "住院标识: 0:在院  1:出院    2:转科")
    private String inhospstate;
    /**
     * é•¿æœŸä»»åŠ¡ï¼Œæ˜¯å¦å¤„ç†ï¼š0未处理   1处理
     */
    @ApiModelProperty(value = "长期任务,是否处理:0未处理   1处理")
    private String checkFlag;
    /**
     * å¹´é¾„
     */
    @ApiModelProperty(value = "年龄")
    private String age;
    /**
     * æ‰‹æœºå·
     */
    @ApiModelProperty(value = "手机号")
    private String telcode;
    /**
     * pageNum
     */
    @ApiModelProperty("pageNum")
    private Integer pageNum;
    /**
     * pageSize
     */
    @ApiModelProperty("pageSize")
    private Integer pageSize;
}
smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java
@@ -1,5 +1,6 @@
package com.smartor.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
@@ -61,11 +62,53 @@
    private String name;
    /**
     * å§“名
     */
    @Excel(name = "医生编码")
    @ApiModelProperty("医生编码")
    private String drcode;
    /**
     * å§“名
     */
    @Excel(name = "医生姓名")
    @ApiModelProperty("医生姓名")
    private String drname;
    /**
     * è´£ä»»æŠ¤å£«ç¼–码
     */
    @Excel(name = "责任护士编码")
    @ApiModelProperty("责任护士编码")
    private String nurseId;
    /**
     * è´£ä»»æŠ¤å£«å§“名
     */
    @Excel(name = "责任护士姓名")
    @ApiModelProperty("责任护士姓名")
    private String nurseName;
    /**
     * èº«ä»½è¯å·
     */
    @Excel(name = "身份证号")
    @ApiModelProperty("身份证号")
    private String sfzh;
    /**
     * èº«ä»½è¯å·
     */
    @Excel(name = "身份证号")
    @ApiModelProperty("身份证号")
    private String idcardno;
    /**
     * èº«ä»½è¯å·
     */
    @Excel(name = "身份证号")
    @ApiModelProperty("身份证号")
    private String idcardtype;
    /**
     * å¹´é¾„
@@ -142,6 +185,7 @@
     * å‘送时间
     */
    @Excel(name = "发送时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("发送时间")
    private Date sendTime;
@@ -149,6 +193,7 @@
     * å…¥é™¢æ—¶é—´
     */
    @Excel(name = "入院时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("入院时间")
    private Date inhosptime;
@@ -156,6 +201,7 @@
     * å‘送时间
     */
    @Excel(name = "就诊时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("就诊时间")
    private Date visitTime;
@@ -209,4 +255,41 @@
    @ApiModelProperty(value = "文本变量参数")
    private String textParam;
    /**
     * å‡ºé™¢ç—…区编号
     */
    @ApiModelProperty(value = "出院病区编号")
    private String leavehospitaldistrictcode;
    /**
     * å‡ºé™¢ç—…区名称
     */
    @ApiModelProperty(value = "出院病区名称")
    @Excel(name = " å‡ºé™¢ç—…区名称 ")
    private String leavehospitaldistrictname;
    /**
     * å‡ºé™¢æ—¶é—´
     */
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "出院时间")
    private Date endtime;
    /**
     * å…¥é™¢æ—¶é—´
     */
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "入院时间")
    private Date starttime;
    /**
     * å®Œæˆæ—¶é—´
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "完成时间")
    private Date finishtime;
}
smartor/src/main/java/com/smartor/domain/SendTaskVO.java
@@ -24,7 +24,7 @@
     */
    @Excel(name = " å‘送状态: 1创建   2执行中   3 æš‚停   4终止  5完成 ")
    @ApiModelProperty(value = "发送状态: 1创建   2执行中   3 æš‚停   4终止  5完成 ")
    private Integer sendState;
    private Long sendState;
    /**
     * ä»»åŠ¡ç±»åž‹ï¼š  1  éšè®¿   2 é—®å·    3 å®£æ•™
smartor/src/main/java/com/smartor/domain/ServiceSubTaskAnswerReq.java
@@ -22,6 +22,9 @@
    @ApiModelProperty(value = "患者ID")
    private String param2;
    @ApiModelProperty(value = "异常标识")
    private String excep;
//    @ApiModelProperty(value = "试卷类型:1 éšè®¿   2 é—®å·")
//    private Integer type;
smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
@@ -22,16 +22,53 @@
    private static final long serialVersionUID = 1L;
    /**
     *
     * ä¸»é”®
     */
    @ApiModelProperty(value = "主键")
    private Long id;
    /**
     *
     * ä»»åŠ¡ID
     */
    @ApiModelProperty(value = "任务ID")
    private Long taskid;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value = "备注")
    private String guid;
    /**
     * å¼‚常标识
     */
    @ApiModelProperty(value = "异常标识")
    @Excel(name = " å¼‚常标识 ")
    private String excep;
    /**
     * å‡ºé™¢æ—¶é—´
     */
    @ApiModelProperty(value = "出院时间")
    private Date endtime;
    /**
     * å…¥é™¢æ—¶é—´
     */
    @ApiModelProperty(value = "入院时间")
    private Date starttime;
    /**
     * æ˜¯å¦æäº¤
     */
    @ApiModelProperty(value = "是否提交:0未提交   1已提交")
    private Long submit;
    /**
     * å‘送人
@@ -118,6 +155,13 @@
    private String templatename;
    /**
     * å‘处理意见:1暂不处理、2通知就诊、3病情稳定、4人工随访、5失访送UUID
     */
    @Excel(name = " å¤„理意见:1暂不处理、2通知就诊、3病情稳定、4人工随访、5失访 ")
    @ApiModelProperty(value = "处理意见:1暂不处理、2通知就诊、3病情稳定、4人工随访、5失访")
    private String suggest;
    /**
     * å‘送日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
@@ -171,8 +215,15 @@
     * å‘送状态
     */
    @Excel(name = " å‘送状态 ")
    @ApiModelProperty(value = "发送状态 1 è¢«é¢†å–  2 å¾…发送  3 å·²å‘送")
    @ApiModelProperty(value = "发送状态 1 è¢«é¢†å–  2 å¾…发送  3 å·²å‘送  4 ä¸æ‰§è¡Œ  5 å‘送失败")
    private Long sendstate;
    /**
     * æš‚停状 ï¼š çŠ¶æ€å¦‚æžœå‘ç”Ÿä¿®æ”¹ï¼Œå€¼å°±åŠ 1
     */
    @Excel(name = " æš‚停状 ï¼š çŠ¶æ€å¦‚æžœå‘ç”Ÿä¿®æ”¹ï¼Œå€¼å°±åŠ 1 ")
    @ApiModelProperty(value = "暂停状 ï¼š çŠ¶æ€å¦‚æžœå‘ç”Ÿä¿®æ”¹ï¼Œå€¼å°±åŠ 1")
    private Long stopState;
    /**
     * å‘送UUID
@@ -191,8 +242,7 @@
    /**
     * å®Œæˆæ—¶é—´
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = " å®Œæˆæ—¶é—´ ", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "完成时间")
    private Date finishtime;
@@ -224,6 +274,20 @@
    @Excel(name = "  éƒ¨é—¨code")
    @ApiModelProperty(value = "部门code")
    private String deptcode;
    /**
     * åŒ»ç”Ÿç¼–码
     */
    @Excel(name = "  åŒ»ç”Ÿç¼–码")
    @ApiModelProperty(value = "医生编码")
    private String drcode;
    /**
     * åŒ»ç”Ÿå§“名
     */
    @Excel(name = "  åŒ»ç”Ÿå§“名")
    @ApiModelProperty(value = "医生姓名")
    private String drname;
    /**
     * æ ‡ç­¾çŠ¶æ€
@@ -417,4 +481,31 @@
    @ApiModelProperty(value = "长期任务,给患者发送的时间")
    private Date longSendTime;
    /**
     * è´£ä»»æŠ¤å£«ç¼–码
     */
    @Excel(name = "责任护士编码")
    @ApiModelProperty("责任护士编码")
    private String nurseId;
    /**
     * è´£ä»»æŠ¤å£«å§“名
     */
    @Excel(name = "责任护士姓名")
    @ApiModelProperty("责任护士姓名")
    private String nurseName;
    /**
     * å‡ºé™¢ç—…区编号
     */
    @ApiModelProperty(value = "出院病区编号")
    private String leavehospitaldistrictcode;
    /**
     * å‡ºé™¢ç—…区名称
     */
    @ApiModelProperty(value = "出院病区名称")
    @Excel(name = " å‡ºé™¢ç—…区名称 ")
    private String leavehospitaldistrictname;
}
smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java
@@ -43,6 +43,13 @@
    private String senduuid;
    /**
     * å‘处理意见:1暂不处理、2通知就诊、3病情稳定、4人工随访、5失访送UUID
     */
    @Excel(name = " å¤„理意见:1暂不处理、2通知就诊、3病情稳定、4人工随访、5失访 ")
    @ApiModelProperty(value = "处理意见:1暂不处理、2通知就诊、3病情稳定、4人工随访、5失访")
    private String suggest;
    /**
     * æ‰‹æœºå·
     */
    @Excel(name = " æ‰‹æœºå· ")
@@ -138,6 +145,27 @@
     */
    @ApiModelProperty(value = "发送类型: 1 æ—¶é—´æ®µ   2 å³åˆ»å‘送")
    private String sendType;
    /**
     * å‡ºé™¢æ—¶é—´
     */
    @ApiModelProperty(value = "出院时间")
    private Date inhosptime;
    /**
     * åŒ»ç”Ÿç¼–码
     */
    @Excel(name = "  åŒ»ç”Ÿç¼–码")
    @ApiModelProperty(value = "医生编码")
    private String drcode;
    /**
     * åŒ»ç”Ÿå§“名
     */
    @Excel(name = "  åŒ»ç”Ÿå§“名")
    @ApiModelProperty(value = "医生姓名")
    private String drname;
    /**
     * å‘送日期
@@ -434,13 +462,13 @@
    @Excel(name = "  è¯Šæ–­åç§°")
    @ApiModelProperty(value = "诊断名称")
    private String diagname;
//
//    /**
//     * ç§‘室名称
//     */
//    @Excel(name = "科室名称")
//    @ApiModelProperty(value = "科室名称")
//    private String deptname;
    /**
     * ç§‘室名称
     */
    @Excel(name = "科室名称")
    @ApiModelProperty(value = "科室名称")
    private String deptname;
//
//    /**
//     * å°±è¯Šæ—¥æœŸ
@@ -463,4 +491,67 @@
    @ApiModelProperty(value = "总分")
    private Long score;
    /**
     * æ˜¯å¦æäº¤
     */
    @ApiModelProperty(value = "是否提交:0未提交   1已提交")
    private Long submit;
    /**
     * å‡ºé™¢ç—…区编号
     */
    @ApiModelProperty(value = "出院病区编号")
    private String leavehospitaldistrictcode;
    /**
     * å‡ºé™¢ç—…区名称
     */
    @ApiModelProperty(value = "出院病区名称")
    @Excel(name = " å‡ºé™¢ç—…区名称 ")
    private String leavehospitaldistrictname;
    /**
     * è´£ä»»æŠ¤å£«ç¼–码
     */
    @Excel(name = "责任护士编码")
    @ApiModelProperty("责任护士编码")
    private String nurseId;
    /**
     * è´£ä»»æŠ¤å£«å§“名
     */
    @Excel(name = "责任护士姓名")
    @ApiModelProperty("责任护士姓名")
    private String nurseName;
    /**
     * å¼‚常标识
     */
    @ApiModelProperty(value = "异常标识")
    @Excel(name = " å¼‚常标识 ")
    private String excep;
    /**
     * å¤‡æ³¨
     */
    @ApiModelProperty(value = "备注")
    private String remark;
    /**
     * å‡ºé™¢æ—¶é—´
     */
    @ApiModelProperty(value = "出院时间")
    private Date endtime;
    /**
     * å…¥é™¢æ—¶é—´
     */
    @ApiModelProperty(value = "入院时间")
    private Date starttime;
}
smartor/src/main/java/com/smartor/domain/ServiceTask.java
@@ -8,6 +8,7 @@
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
 * è¯­éŸ³ä»»åŠ¡å¯¹è±¡ ivr_task
@@ -15,7 +16,7 @@
 * @author smartor
 * @date 2023-03-24
 */
@ApiModel(value = "ServiceTask" , description = "任务对象")
@ApiModel(value = "ServiceTask", description = "任务对象")
@Data
public class ServiceTask extends BaseEntity {
    private static final long serialVersionUID = 1L;
@@ -119,18 +120,18 @@
     *
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "  " , width = 30, dateFormat = "yyyy-MM-dd")
    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "添加时间")
    private Date addtime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "  " , width = 30, dateFormat = "yyyy-MM-dd")
    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "开始时间")
    private Date beginTime;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "  " , width = 30, dateFormat = "yyyy-MM-dd")
    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "结束时间")
    private Date endTime;
@@ -152,7 +153,7 @@
     * å®¡æ ¸äººæ—¶é—´
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "  " , width = 30, dateFormat = "yyyy-MM-dd")
    @Excel(name = "  ", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "审核人时间")
    private Date checktime;
@@ -213,6 +214,13 @@
    private String deptcode;
    /**
     * éƒ¨é—¨åç§°
     */
    @Excel(name = "部门名称")
    @ApiModelProperty(value = "部门名称")
    private String deptname;
    /**
     * åˆ é™¤
     */
    @ApiModelProperty(value = "删除")
@@ -229,7 +237,7 @@
     * ä¸Šä¼ æ—¶é—´
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = " ä¸Šä¼ æ—¶é—´ " , width = 30, dateFormat = "yyyy-MM-dd")
    @Excel(name = " ä¸Šä¼ æ—¶é—´ ", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "上传时间")
    private Date uploadTime;
@@ -273,7 +281,7 @@
     */
    @Excel(name = " å‘送状态: 1创建   2执行中   3 æš‚停   4终止  5完成 ")
    @ApiModelProperty(value = "发送状态: 1创建   2执行中   3 æš‚停   4终止  5完成 ")
    private Integer sendState;
    private Long sendState;
//    /**
//     * æ–‡æœ¬å˜é‡å‚æ•°
@@ -339,4 +347,23 @@
    @ApiModelProperty(value = "展示日期")
    private String showDate;
    @ApiModelProperty(value = "开场白")
    private String kcb;
    @ApiModelProperty(value = "结束语")
    private String jsy;
    /**
     * å‡ºé™¢ç—…区编号
     */
    @ApiModelProperty(value = "出院病区编号集合")
    private String leavehospitaldistrictcode;
    /**
     * å‡ºé™¢ç—…区名称
     */
    @ApiModelProperty(value = "出院病区名称")
    @Excel(name = " å‡ºé™¢ç—…区名称 ")
    private String leavehospitaldistrictname;
}
smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
@@ -48,7 +48,7 @@
     *
     */
    @Excel(name = "  ")
    private Long libtemplateid;
    private String libtemplateid;
    /**
     *
     */
@@ -176,8 +176,14 @@
    /**
     *
     */
    @Excel(name = "  ")
    @Excel(name = "科室编码")
    private String deptcode;
    /**
     *
     */
    @Excel(name = "科室名")
    private String deptname;
    /**
     * åˆ é™¤æ ‡è®°
@@ -240,7 +246,7 @@
     */
    @Excel(name = " å‘送状态: 1创建   2执行中   3 æš‚停   4终止  5完成 ")
    @ApiModelProperty(value = "发送状态: 1创建   2执行中   3 æš‚停   4终止  5完成 ")
    private Integer sendState;
    private Long sendState;
    /**
@@ -289,5 +295,23 @@
    @ApiModelProperty(value = "服务类型(1、监测评估;2、出院随访;3、门诊随访;4、宣教关怀;5、复诊通知;6、满意度调查;7、患者报告; 8、其他通知)")
    private String serviceType;
    @ApiModelProperty(value = "开场白")
    private String kcb;
    @ApiModelProperty(value = "结束语")
    private String jsy;
    /**
     * å‡ºé™¢ç—…区编号
     */
    @ApiModelProperty(value = "出院病区编号集合")
    private String leavehospitaldistrictcode;
    /**
     * å‡ºé™¢ç—…区名称
     */
    @ApiModelProperty(value = "出院病区名称")
    @Excel(name = " å‡ºé™¢ç—…区名称 ")
    private String leavehospitaldistrictname;
}
smartor/src/main/java/com/smartor/domain/SvyLibTemplate.java
@@ -43,10 +43,10 @@
    private String svycode;
    /**
     * é—®å·åç§°
     * é—®å·æ¨¡æ¿åç§°
     */
    @ApiModelProperty(value = "问卷名称", required = true)
    @Excel(name = " é—®å·åç§° ")
    @ApiModelProperty(value = "问卷模板名称", required = true)
    @Excel(name = " é—®å·æ¨¡æ¿åç§° ")
    private String svyname;
    /**
smartor/src/main/java/com/smartor/domain/SvyLibTemplateVO.java
@@ -42,10 +42,10 @@
    private String svycode;
    /**
     * é—®å·åç§°
     * é—®å·æ¨¡æ¿åç§°
     */
    @ApiModelProperty(value = "问卷名称", required = true)
    @Excel(name = " é—®å·åç§° ")
    @ApiModelProperty(value = "问卷模板名称", required = true)
    @Excel(name = " é—®å·æ¨¡æ¿åç§° ")
    private String svyname;
    /**
@@ -241,6 +241,15 @@
    @ApiModelProperty(value = "结束语")
    private String conclusion;
    @ApiModelProperty(value = "是否是长期模板:  0:不是    1:是")
    private Integer longTemp;
    @ApiModelProperty(value = "出院天数(长期任务,出安院后,第几天发送信息)")
    private Integer  sendDay;
    @ApiModelProperty(value = "部门编码")
    private String deptCode;
    public SvyLibTemplateVO() {
smartor/src/main/java/com/smartor/domain/SvyTaskTemplate.java
@@ -51,8 +51,8 @@
    /**
     * é—®å·åç§°
     */
    @Excel(name = " é—®å·åç§° ")
    @ApiModelProperty(value = "问卷名称")
    @Excel(name = " é—®å·æ¨¡æ¿åç§° ")
    @ApiModelProperty(value = "问卷模板名称")
    private String svyname;
    /**
@@ -232,5 +232,12 @@
    @ApiModelProperty(value = "结束语")
    private String conclusion;
    @ApiModelProperty(value = "是否是长期模板:  0:不是    1:是")
    private Integer longTemp;
    @ApiModelProperty(value = "出院天数(长期任务,出安院后,第几天发送信息)")
    private Integer sendDay;
    @ApiModelProperty(value = "部门编码")
    private String deptCode;
}
smartor/src/main/java/com/smartor/domain/ThiedInhospInfo.java
@@ -40,6 +40,19 @@
    private List Education;
    /**
     * æŠ¤å£«ID
     */
    @ApiModelProperty(value = "护士ID")
    private String nurseId;
    /**
     * æŠ¤å£«å§“名
     */
    @ApiModelProperty(value = "护士姓名")
    private String nurseName;
    /**
     * æ‚£è€…姓名
     */
@@ -341,7 +354,9 @@
    private String patiNatureId;
    //年龄
    private String treateAge;
    //年龄单位
    private String treatAgeunit;
    private String patiNatureName;
@@ -409,7 +424,7 @@
     * å‡ºé™¢æ–¹å¼åºå·
     */
    @ApiModelProperty("出院方式序号")
    @Excel(name = "出院方式序号")
    @Excel(name = "出院方式序号   1.治愈  2.好转   3.未愈   4.死亡   5.其它")
    private String outWayId;
    /**
smartor/src/main/java/com/smartor/domain/XinHuaWXReq.java
@@ -22,6 +22,8 @@
    @ApiModelProperty(value = "接口服务名,固定值")
    private String service = "smarthos.yygh.ApiService.push";
    private String spid = "1001";
    /**
     * è¯ä»¶å·
     */
smartor/src/main/java/com/smartor/mapper/PatArchiveImportMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.smartor.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import com.smartor.domain.PatArchiveImport;
/**
 * Excel导入患者档案Mapper接口
 *
 * @author lihu
 * @date 2024-09-05
 */
@Mapper
public interface PatArchiveImportMapper
{
    /**
     * æŸ¥è¯¢Excel导入患者档案
     *
     * @param id Excel导入患者档案主键
     * @return Excel导入患者档案
     */
    public PatArchiveImport selectPatArchiveImportById(Long id);
    /**
     * æŸ¥è¯¢Excel导入患者档案列表
     *
     * @param patArchiveImport Excel导入患者档案
     * @return Excel导入患者档案集合
     */
    public List<PatArchiveImport> selectPatArchiveImportList(PatArchiveImport patArchiveImport);
    /**
     * æ–°å¢žExcel导入患者档案
     *
     * @param patArchiveImport Excel导入患者档案
     * @return ç»“æžœ
     */
    public int insertPatArchiveImport(PatArchiveImport patArchiveImport);
    /**
     * ä¿®æ”¹Excel导入患者档案
     *
     * @param patArchiveImport Excel导入患者档案
     * @return ç»“æžœ
     */
    public int updatePatArchiveImport(PatArchiveImport patArchiveImport);
    /**
     * åˆ é™¤Excel导入患者档案
     *
     * @param id Excel导入患者档案主键
     * @return ç»“æžœ
     */
    public int deletePatArchiveImportById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤Excel导入患者档案
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deletePatArchiveImportByIds(Long[] ids);
}
smartor/src/main/java/com/smartor/mapper/PatArchiveMapper.java
@@ -1,6 +1,7 @@
package com.smartor.mapper;
import com.smartor.domain.PatArchive;
import com.smartor.domain.PatArchiveOthreInfo;
import com.smartor.domain.PatArchiveReq;
import org.apache.ibatis.annotations.Mapper;
@@ -68,13 +69,13 @@
    public int deletePatArchiveByPatids(Long[] patids);
    public List<PatArchive> selectPatArchiveInfoByAllhosp(PatArchiveReq patArchive);
    public List<PatArchiveOthreInfo> selectPatArchiveInfoByAllhosp(PatArchiveReq patArchive);
    public List<PatArchive> selectPatArchiveInfoByInhosp(PatArchiveReq patArchive);
    public List<PatArchiveOthreInfo> selectPatArchiveInfoByInhosp(PatArchiveReq patArchive);
    public List<PatArchive> selectPatArchiveInfoByOuthosp(PatArchiveReq patArchive);
    public List<PatArchiveOthreInfo> selectPatArchiveInfoByOuthosp(PatArchiveReq patArchive);
    public List<PatArchive> selectPatArchiveInfoByPhysical(PatArchiveReq patArchive);
    public List<PatArchiveOthreInfo> selectPatArchiveInfoByPhysical(PatArchiveReq patArchive);
}
smartor/src/main/java/com/smartor/mapper/PatMedInhospMapper.java
@@ -3,6 +3,7 @@
import java.util.List;
import com.smartor.domain.PatMedInhosp;
import com.smartor.domain.PatMedInhospVO;
import com.smartor.domain.PatMedReq;
import com.smartor.domain.PatMedRes;
import org.apache.ibatis.annotations.Mapper;
@@ -31,6 +32,8 @@
     */
    public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp);
    public List<PatMedInhosp> selectPatMedInhospListByCondition(PatMedInhospVO patMedInhospVO);
    /**
     * æ–°å¢žæ‚£è€…住院记录
     *
smartor/src/main/java/com/smartor/service/IPatArchiveImportService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package com.smartor.service;
import java.util.List;
import com.smartor.domain.PatArchiveImport;
import org.springframework.web.multipart.MultipartFile;
/**
 * Excel导入患者档案Service接口
 *
 * @author lihu
 * @date 2024-09-05
 */
public interface IPatArchiveImportService {
    /**
     * æŸ¥è¯¢Excel导入患者档案
     *
     * @param id Excel导入患者档案主键
     * @return Excel导入患者档案
     */
    public PatArchiveImport selectPatArchiveImportById(Long id);
    /**
     * æŸ¥è¯¢Excel导入患者档案列表
     *
     * @param patArchiveImport Excel导入患者档案
     * @return Excel导入患者档案集合
     */
    public List<PatArchiveImport> selectPatArchiveImportList(PatArchiveImport patArchiveImport);
    /**
     * æ–°å¢žExcel导入患者档案
     *
     * @param patArchiveImport Excel导入患者档案
     * @return ç»“æžœ
     */
    public int insertPatArchiveImport(PatArchiveImport patArchiveImport);
    /**
     * ä¿®æ”¹Excel导入患者档案
     *
     * @param patArchiveImport Excel导入患者档案
     * @return ç»“æžœ
     */
    public int updatePatArchiveImport(PatArchiveImport patArchiveImport);
    /**
     * æ‰¹é‡åˆ é™¤Excel导入患者档案
     *
     * @param ids éœ€è¦åˆ é™¤çš„Excel导入患者档案主键集合
     * @return ç»“æžœ
     */
    public int deletePatArchiveImportByIds(Long[] ids);
    /**
     * åˆ é™¤Excel导入患者档案信息
     *
     * @param id Excel导入患者档案主键
     * @return ç»“æžœ
     */
    public int deletePatArchiveImportById(Long id);
    public List<PatArchiveImport> importPatInfo(MultipartFile multipartFile);
}
smartor/src/main/java/com/smartor/service/IPatArchiveService.java
@@ -93,5 +93,5 @@
    public List<Object> getUserTreatmentInfo(String pid, String type);
    public List<ServiceSubtask> getPatientInfo(PatArchiveReq patArchiveReq);
    public List<PatArchiveOthreInfo> getPatientInfo(PatArchiveReq patArchiveReq);
}
smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
@@ -2,6 +2,7 @@
import com.ruoyi.common.core.domain.AjaxResult;
import com.smartor.domain.PatMedInhosp;
import com.smartor.domain.PatMedInhospVO;
import com.smartor.domain.PatMedReq;
import com.smartor.domain.PatMedRes;
@@ -30,6 +31,13 @@
     * @return æ‚£è€…住院记录集合
     */
    public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp);
    /**
     * æŸ¥è¯¢å½“前登陆人自己(病区、部门)的患者住院记录列表
     * @param patMedInhospVO
     * @return
     */
    public List<PatMedInhosp> selectPatMedInhospListByCondition(PatMedInhospVO patMedInhospVO);
    public PatMedInhosp getDeptCodeByPatId(PatMedInhosp patMedInhosp);
@@ -73,7 +81,7 @@
     * @param
     * @return ç»“æžœ
     */
    public int dealOupHospInfo();
    public int dealOutHospInfo();
    /**
     * èŽ·å–å‡ºé™¢ï¼Œä½é™¢ï¼Œé—¨è¯ŠæœåŠ¡äººæ¬¡
smartor/src/main/java/com/smartor/service/IServiceSubtaskAnswerService.java
@@ -78,7 +78,7 @@
     */
    public Integer saveQuestionCache(ServiceSubTaskCacheReq serviceSubTaskCacheReq);
    public List<SvyLibTemplateScriptVO> getQuestionCache(ServiceSubTaskCacheReq serviceSubTaskCacheReq);
    public Map<String,Object> getQuestionCache(ServiceSubTaskCacheReq serviceSubTaskCacheReq);
    public Map<String, Object> selectPatQuestionResult(ServiceSubTaskQueryReq serviceSubTaskQueryReq);
smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java
@@ -44,20 +44,20 @@
    @Override
    public Integer taskSend(SendTaskVO sendTaskVO) {
        synchronized (CommonTaskServiceImpl.class) {
            if (sendTaskVO.getTaskId() == null || sendTaskVO.getTaskType() == null)
                throw new BaseException("任务ID或者任务类型不能为空,请检查后,再进行执行");
            if (sendTaskVO.getTaskType() == 1) {
                //随访
                return sfSend(sendTaskVO);
            } else if (sendTaskVO.getTaskType() == 2) {
                //问卷
                return wjSend(sendTaskVO);
            } else if (sendTaskVO.getTaskType() == 3) {
                //宣教
                return xjSend(sendTaskVO);
            }
        if (sendTaskVO.getTaskId() == null || sendTaskVO.getTaskType() == null)
            throw new BaseException("任务ID或者任务类型不能为空,请检查后,再进行执行");
        if (sendTaskVO.getTaskType() == 1) {
            //随访
            return sfSend(sendTaskVO);
        } else if (sendTaskVO.getTaskType() == 2) {
            //问卷
            return wjSend(sendTaskVO);
        } else if (sendTaskVO.getTaskType() == 3) {
            //宣教
            return xjSend(sendTaskVO);
        }
        log.error("走到这里了嘛");
        return null;
    }
@@ -85,8 +85,10 @@
            //将任务状态修改成执行中
            ServiceTask serviceTask = new ServiceTask();
            serviceTask.setTaskid(ivrTask.getTaskid());
            serviceTask.setSendState(2);
            serviceTask.setStopState(ivrTask.getStopState());
            serviceTask.setSendState(2L);
            //不知为啥这样写,先将stopstate置为null
//            serviceTask.setStopState(ivrTask.getStopState());
            serviceTask.setStopState(null);
            ivrTaskService.updateServiceTask(serviceTask);
            log.error("消息发送成功");
        } else if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("1") || StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("3")) {
@@ -126,7 +128,8 @@
                //将任务状态修改成执行中
                ServiceTask serviceTask = new ServiceTask();
                serviceTask.setTaskid(ivrTask.getTaskid());
                serviceTask.setSendState(2);
                serviceTask.setSendState(2L);
                serviceTask.setStopState(null);
                ivrTaskService.updateServiceTask(serviceTask);
            }
        }
@@ -141,8 +144,8 @@
            serviceTask.setTaskid(sendTaskVO.getTaskId());
            serviceTask.setStopState(serviceTask1.getStopState() + 1);
            serviceTask.setSendState(sendTaskVO.getSendState());
            iServiceTaskService.updateServiceTask(serviceTask);
            return 0;
            int i = iServiceTaskService.updateServiceTask(serviceTask);
            return i;
        }
        //判断发送状态是否为空
@@ -159,7 +162,8 @@
            //将任务状态修改成执行中
            ServiceTask serviceTask = new ServiceTask();
            serviceTask.setTaskid(serviceTask1.getTaskid());
            serviceTask.setSendState(2);
            serviceTask.setSendState(2L);
            serviceTask.setStopState(null);
            iServiceTaskService.updateServiceTask(serviceTask);
        } else if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("1") || StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("3")) {
            //时间段发送
@@ -201,7 +205,8 @@
                //将任务状态修改成执行中
                ServiceTask serviceTask = new ServiceTask();
                serviceTask.setTaskid(serviceTask1.getTaskid());
                serviceTask.setSendState(2);
                serviceTask.setSendState(2L);
                serviceTask.setStopState(null);
                iServiceTaskService.updateServiceTask(serviceTask);
            }
        }
@@ -234,7 +239,9 @@
            //将任务状态修改成执行中
            ServiceTask serviceTask = new ServiceTask();
            serviceTask.setTaskid(serviceTask1.getTaskid());
            serviceTask.setSendState(2);
            serviceTask.setSendState(2L);
            serviceTask.setSendType(1L);
            serviceTask.setStopState(null);
            iServiceTaskService.updateServiceTask(serviceTask);
        } else if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("1") || StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("3")) {
            //时间段发送
@@ -273,7 +280,8 @@
                //将任务状态修改成执行中
                ServiceTask serviceTask = new ServiceTask();
                serviceTask.setTaskid(serviceTask1.getTaskid());
                serviceTask.setSendState(2);
                serviceTask.setSendState(2L);
                serviceTask.setStopState(null);
                iServiceTaskService.updateServiceTask(serviceTask);
            }
        }
smartor/src/main/java/com/smartor/service/impl/PatArchiveImportServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,163 @@
package com.smartor.service.impl;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.smartor.domain.PatArchiveImport;
import com.smartor.mapper.PatArchiveImportMapper;
import com.smartor.service.IPatArchiveImportService;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
 * Excel导入患者档案Service业务层处理
 *
 * @author lihu
 * @date 2024-09-05
 */
@Service
public class PatArchiveImportServiceImpl implements IPatArchiveImportService {
    @Autowired
    private PatArchiveImportMapper patArchiveImportMapper;
    /**
     * æŸ¥è¯¢Excel导入患者档案
     *
     * @param id Excel导入患者档案主键
     * @return Excel导入患者档案
     */
    @Override
    public PatArchiveImport selectPatArchiveImportById(Long id) {
        return patArchiveImportMapper.selectPatArchiveImportById(id);
    }
    /**
     * æŸ¥è¯¢Excel导入患者档案列表
     *
     * @param patArchiveImport Excel导入患者档案
     * @return Excel导入患者档案
     */
    @Override
    public List<PatArchiveImport> selectPatArchiveImportList(PatArchiveImport patArchiveImport) {
        return patArchiveImportMapper.selectPatArchiveImportList(patArchiveImport);
    }
    /**
     * æ–°å¢žExcel导入患者档案
     *
     * @param patArchiveImport Excel导入患者档案
     * @return ç»“æžœ
     */
    @Override
    public int insertPatArchiveImport(PatArchiveImport patArchiveImport) {
        patArchiveImport.setCreateTime(DateUtils.getNowDate());
        return patArchiveImportMapper.insertPatArchiveImport(patArchiveImport);
    }
    /**
     * ä¿®æ”¹Excel导入患者档案
     *
     * @param patArchiveImport Excel导入患者档案
     * @return ç»“æžœ
     */
    @Override
    public int updatePatArchiveImport(PatArchiveImport patArchiveImport) {
        patArchiveImport.setUpdateTime(DateUtils.getNowDate());
        return patArchiveImportMapper.updatePatArchiveImport(patArchiveImport);
    }
    /**
     * æ‰¹é‡åˆ é™¤Excel导入患者档案
     *
     * @param ids éœ€è¦åˆ é™¤çš„Excel导入患者档案主键
     * @return ç»“æžœ
     */
    @Override
    public int deletePatArchiveImportByIds(Long[] ids) {
        return patArchiveImportMapper.deletePatArchiveImportByIds(ids);
    }
    /**
     * åˆ é™¤Excel导入患者档案信息
     *
     * @param id Excel导入患者档案主键
     * @return ç»“æžœ
     */
    @Override
    public int deletePatArchiveImportById(Long id) {
        return patArchiveImportMapper.deletePatArchiveImportById(id);
    }
    @Override
    public List<PatArchiveImport> importPatInfo(MultipartFile multipartFile) {
        //用于返回
        List<PatArchiveImport> patArchiveImports = new ArrayList<>();
        try {
            Workbook workbook = new XSSFWorkbook(multipartFile.getInputStream());
            Sheet sheet = workbook.getSheetAt(0);
            for (int i = sheet.getFirstRowNum() + 1; i < sheet.getLastRowNum(); i++) {
                //导入患者对象
                PatArchiveImport patArchiveImport = new PatArchiveImport();
                Row row = sheet.getRow(i);
                //如果行为空,进行下一次循环
                if (ObjectUtils.isEmpty(row.getCell(0)) && ObjectUtils.isEmpty(row.getCell(1)) && ObjectUtils.isEmpty(row.getCell(2))) {
                    continue;
                }
                //判断数据是否有问题
                if (ObjectUtils.isNotEmpty(row.getCell(0).toString())) {
                    patArchiveImport.setName(row.getCell(0).toString());
                }
                if (ObjectUtils.isNotEmpty(row.getCell(1))) {
                    patArchiveImport.setIdcardno(row.getCell(1).toString());
                }
                if (ObjectUtils.isNotEmpty(row.getCell(2))) {
                    patArchiveImport.setTelcode(row.getCell(2).toString());
                }
                if (ObjectUtils.isNotEmpty(row.getCell(3))) {
                    patArchiveImport.setBatchName(row.getCell(3).toString());
                }
                if (ObjectUtils.isNotEmpty(row.getCell(4))) {
                    patArchiveImport.setPatientno(row.getCell(4).toString());
                }
                if (ObjectUtils.isNotEmpty(row.getCell(5))) {
                    patArchiveImport.setPattype(row.getCell(5).toString());
                }
                if (ObjectUtils.isNotEmpty(row.getCell(6))) {
                    patArchiveImport.setSex(Long.valueOf(row.getCell(6).toString()));
                }
                if (ObjectUtils.isNotEmpty(row.getCell(7))) {
                    patArchiveImport.setAge(Long.valueOf(row.getCell(7).toString()));
                }
                patArchiveImports.add(patArchiveImport);
                patArchiveImport.setCreateTime(new Date());
                patArchiveImport.setUpdateTime(new Date());
                //批量号(当前时间)
                patArchiveImport.setBatchNo(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()));
                insertPatArchiveImport(patArchiveImport);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return patArchiveImports;
    }
}
smartor/src/main/java/com/smartor/service/impl/PatArchiveServiceImpl.java
@@ -185,39 +185,36 @@
     * @return
     */
    @Override
    public List<ServiceSubtask> getPatientInfo(PatArchiveReq patArchiveReq) {
        List<ServiceSubtask> serviceSubtaskList = new ArrayList<>();
    public List<PatArchiveOthreInfo> getPatientInfo(PatArchiveReq patArchiveReq) {
        if (CollectionUtils.isEmpty(patArchiveReq.getLeavehospitaldistrictcodes()) || patArchiveReq.getLeavehospitaldistrictcodes().size() == 0) {
            patArchiveReq.setLeavehospitaldistrictcodes(null);
        }
        if (CollectionUtils.isEmpty(patArchiveReq.getLeaveldeptcodes()) || patArchiveReq.getLeaveldeptcodes().size() == 0) {
            patArchiveReq.setLeaveldeptcodes(null);
        }
        List<PatArchive> patArchiveList = new ArrayList<>();
        List<PatArchiveOthreInfo> patArchiveList = new ArrayList<>();
        if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 1) {
            //  æŸ¥çœ‹ä½é™¢  1  æŸ¥çœ‹é—¨è¯Š  2   æŸ¥çœ‹ä½“检  3
            List<PatArchive> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhosp(patArchiveReq);
            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhosp(patArchiveReq);
            if (CollectionUtils.isNotEmpty(patArchives1)) {
                patArchiveList.addAll(patArchives1);
            }
        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 2) {
            // æŸ¥çœ‹ä½é™¢  1  æŸ¥çœ‹é—¨è¯Š  2   æŸ¥çœ‹ä½“检  3
            List<PatArchive> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthosp(patArchiveReq);
            List<PatArchiveOthreInfo> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthosp(patArchiveReq);
            if (CollectionUtils.isNotEmpty(patArchives2)) {
                patArchiveList.addAll(patArchives2);
            }
        } else if (patArchiveReq.getAllhosp() != null && patArchiveReq.getAllhosp() == 3) {
            //  æŸ¥çœ‹ä½é™¢  1  æŸ¥çœ‹é—¨è¯Š  2   æŸ¥çœ‹ä½“检  3
            List<PatArchive> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchiveReq);
            List<PatArchiveOthreInfo> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchiveReq);
            if (CollectionUtils.isNotEmpty(patArchives3)) {
                patArchiveList.addAll(patArchives3);
            }
        }
        for (PatArchive patArchive : patArchiveList) {
            ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(patArchive, ServiceSubtask.class);
            serviceSubtask.setCreateTime(patArchive.getCreateTime());
            serviceSubtask.setCreateBy(patArchive.getCreateBy());
            serviceSubtask.setDeptname(patArchive.getDept());
            serviceSubtask.setPhone(patArchive.getTelcode());
            serviceSubtaskList.add(serviceSubtask);
        }
        return serviceSubtaskList;
        return patArchiveList;
    }
@@ -495,7 +492,7 @@
        //根据条件获取患者信息
//        List<PatArchive> patArchiveList = patArchiveMapper.patInfoByContion(patArchive);
        List<PatArchive> patArchiveList = new ArrayList<>();
        List<PatArchiveOthreInfo> patArchiveList = new ArrayList<>();
        if (patArchive.getEndtime() != null) {
            //出院时间只有住院才有
@@ -503,32 +500,32 @@
        }
        if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 0) {
            List<PatArchive> patArchives0 = patArchiveMapper.selectPatArchiveInfoByAllhosp(patArchive);
            List<PatArchiveOthreInfo> patArchives0 = patArchiveMapper.selectPatArchiveInfoByAllhosp(patArchive);
            if (CollectionUtils.isNotEmpty(patArchives0)) {
                patArchiveList.addAll(patArchives0);
            }
        } else if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 1) {
            List<PatArchive> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhosp(patArchive);
            List<PatArchiveOthreInfo> patArchives1 = patArchiveMapper.selectPatArchiveInfoByInhosp(patArchive);
            if (CollectionUtils.isNotEmpty(patArchives1)) {
                patArchiveList.addAll(patArchives1);
            }
        } else if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 2) {
            List<PatArchive> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthosp(patArchive);
            List<PatArchiveOthreInfo> patArchives2 = patArchiveMapper.selectPatArchiveInfoByOuthosp(patArchive);
            if (CollectionUtils.isNotEmpty(patArchives2)) {
                patArchiveList.addAll(patArchives2);
            }
        } else if (patArchive.getAllhosp() != null && patArchive.getAllhosp() == 3) {
            List<PatArchive> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchive);
            List<PatArchiveOthreInfo> patArchives3 = patArchiveMapper.selectPatArchiveInfoByPhysical(patArchive);
            if (CollectionUtils.isNotEmpty(patArchives3)) {
                patArchiveList.addAll(patArchives3);
            }
        }
        //根据患者ID进行分组
        Map<Long, List<PatArchive>> listMap = patArchiveList.stream().collect(Collectors.groupingBy(PatArchive::getId));
        Map<Long, List<PatArchiveOthreInfo>> listMap = patArchiveList.stream().collect(Collectors.groupingBy(PatArchiveOthreInfo::getId));
        //对数据进行封装
        for (List<PatArchive> list : listMap.values()) {
        for (List<PatArchiveOthreInfo> list : listMap.values()) {
            PatArchive patArchive1 = new PatArchive();
            Set<PatArchivetag> stringList = new HashSet<>();
            for (int i = 0; i < list.size(); i++) {
smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -5,6 +5,8 @@
import java.util.*;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.DtoConversionUtils;
import com.ruoyi.common.utils.SecurityUtils;
@@ -41,6 +43,12 @@
    private IvrTaskTemplateMapper ivrTaskTemplateMapper;
    @Autowired
    private Icd10AssociationMapper icd10AssociationMapper;
    @Autowired
    private SvyTaskTemplateMapper svyTaskTemplateMapper;
    @Autowired
    private ServiceTaskMapper serviceTaskMapper;
    @Autowired
@@ -73,6 +81,16 @@
    @Override
    public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp) {
        return patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
    }
    /**
     * æŸ¥è¯¢å½“前登陆人自己(病区、部门)的患者住院记录列表
     *
     * @param patMedInhospVO
     * @return
     */
    public List<PatMedInhosp> selectPatMedInhospListByCondition(PatMedInhospVO patMedInhospVO) {
        return patMedInhospMapper.selectPatMedInhospListByCondition(patMedInhospVO);
    }
@@ -165,85 +183,143 @@
        return patMedInhospMapper.deletePatMedInhospByInhospid(inhospid);
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public int dealOupHospInfo() {
        //获取长期模板
        IvrLibaTemplate ivrTemp = new IvrLibaTemplate();
        ivrTemp.setDelFlag("0");
        ivrTemp.setLongTemp(1);
        List<IvrLibaTemplate> ivrLibaTemplates = ivrLibaTemplateMapper.selectIvrLibaTemplateList(ivrTemp);
        if (CollectionUtils.isNotEmpty(ivrLibaTemplates)) {
            for (IvrLibaTemplate ivrLibaTemplate : ivrLibaTemplates) {
                //获取到任务模板信息
                IvrTaskTemplate ivrTaskTemplate = new IvrTaskTemplate();
                ivrTaskTemplate.setLibtemplateid(ivrLibaTemplate.getId().toString());
                List<IvrTaskTemplate> ivrTaskTemplates = ivrTaskTemplateMapper.selectIvrTaskTemplateList(ivrTaskTemplate);
                if (CollectionUtils.isNotEmpty(ivrTaskTemplates)) {
                    IvrTaskTemplate ivrTaskTemplate1 = ivrTaskTemplates.get(0);
                    //通过任务模板ID获取任务
                    ServiceTask ServiceTask = new ServiceTask();
                    ServiceTask.setTemplateid(ivrTaskTemplate1.getId());
                    List<ServiceTask> serviceTasks = serviceTaskMapper.selectServiceTaskList(ServiceTask);
                    if (CollectionUtils.isNotEmpty(serviceTasks)) {
                        serviceTaskList.add(serviceTasks.get(0));
                    }
                    ivrTaskTemplates.add(ivrTaskTemplate1);
                }
                libaTemplates.add(ivrLibaTemplate);
            }
        }
    public int dealOutHospInfo() {
        PatMedInhosp patMedInhosp = new PatMedInhosp();
        //获取未处理的数据
        patMedInhosp.setCheckFlag("0");
        patMedInhosp.setInhospstate("1");
        List<PatMedInhosp> patMedInhosps = patMedInhospMapper.selectPatMedInhospList(patMedInhosp);
        for (PatMedInhosp patMedInhosp1 : patMedInhosps) {
            //根据患者所在科室,获取该科室的长期任务模板
            Long taskid = null;
            SvyTaskTemplate svyTaskTemplate = new SvyTaskTemplate();
            svyTaskTemplate.setDeptCode(patMedInhosp1.getLeaveldeptcode());
            svyTaskTemplate.setLongTemp(1);
            List<SvyTaskTemplate> svyTaskTemplates = svyTaskTemplateMapper.selectSvyTaskTemplateList(svyTaskTemplate);
            //如果部门模板为空(暂定,将出入院表的check_flag设置为2  ï¼Œlong_task_reason è®°å½•原因)
            if (CollectionUtils.isEmpty(svyTaskTemplates) || svyTaskTemplates.size() == 0) {
                patMedInhosp1.setCheckFlag("2");
                patMedInhosp1.setLongTaskReason("该患者所在科室,未配置任务模板");
                patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                continue;
            }
            //获取患者信息
            PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid());
            //通过icd10code去获取相应的ivr_liba_template_id
            if (StringUtils.isNotEmpty(patMedInhosp1.getIcd10code())) {
                for (IvrLibaTemplate ivrLibaTemplate : libaTemplates) {
                    String icdCode = patMedInhosp1.getIcd10code().split(",")[0];
                    if (ivrLibaTemplate.getIcd10code().equals(icdCode)) {
                        //通过模板ID获取任务模板
                        for (IvrTaskTemplate ivrTaskTemplate : ivrTaskTemplates) {
                            if (ivrTaskTemplate.getLibtemplateid().equals(ivrLibaTemplate.getId().toString())) {
                                for (ServiceTask serviceTask : serviceTaskList) {
                                    if (serviceTask.getTemplateid() == ivrTaskTemplate.getId()) {
                                        //将该患者,插入到子任务表中
                                        ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
                                        serviceSubtask.setId(null);
                                        serviceSubtask.setTaskid(serviceTask.getTaskid());
                                        serviceSubtask.setLibtemplateid(ivrLibaTemplate.getId());
                                        serviceSubtask.setTemplateid(ivrTaskTemplate.getId());
                                        serviceSubtask.setTemplatename(ivrLibaTemplate.getTemplateName());
                                        serviceSubtask.setPatid(patMedInhosp1.getPatid());
                                        serviceSubtask.setSendname(patMedInhosp1.getPatname());
                                        serviceSubtask.setPhone(patArchive.getTelcode());
                                        serviceSubtask.setSex(patArchive.getSex());
                                        serviceSubtask.setAge(patArchive.getAge());
                                        serviceSubtask.setSendstate(2L);
                                        serviceSubtask.setServiceform(serviceTask.getPreachform());
                                        serviceSubtask.setHospType("2");
                                        //患者发送时间
                                        LocalDate currentDate = LocalDate.now();
                                        LocalDate newDate = currentDate.plusDays(ivrTaskTemplate.getSendDay());
                                        serviceSubtask.setLongSendTime(Date.from(newDate.atStartOfDay(ZoneOffset.ofHours(8)).toInstant()));
                                        serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                                        //将check_flag改成1(已处理)
                                        PatMedInhosp patMedInhosp2 = new PatMedInhosp();
                                        patMedInhosp2.setInhospid(patMedInhosp1.getInhospid());
                                        patMedInhosp2.setCheckFlag("1");
                                        patMedInhospMapper.updatePatMedInhosp(patMedInhosp2);
                                    }
            //给个remark(用来做是否要给发送时间标识)
            String remark = null;
            //定义一个模板变量,用与临时保存一下找出来的模板
            SvyTaskTemplate stt = null;
            if (CollectionUtils.isNotEmpty(svyTaskTemplates) && svyTaskTemplates.size() == 1) {
                stt = svyTaskTemplates.get(0);
                taskid = svyTaskTemplates.get(0).getTaskid();
            } else if (CollectionUtils.isNotEmpty(svyTaskTemplates) && svyTaskTemplates.size() > 1) {
                //通过患者的疾病去找模板
                if (StringUtils.isNotEmpty(patMedInhosp1.getIcd10code())) {
                    aa:
                    for (SvyTaskTemplate svyTaskTemplate1 : svyTaskTemplates) {
                        //通过基础模板ID获取关联的疾病code
                        Icd10Association icd10Association = new Icd10Association();
                        icd10Association.setType(5L);
                        icd10Association.setOutid(svyTaskTemplate1.getTemplateid());
                        List<Icd10Association> icd10Associations = icd10AssociationMapper.selectIcd10AssociationList(icd10Association);
                        if (CollectionUtils.isEmpty(icd10Associations)) {
                            //如能模板的疾病为空,则是本科室的通用默认模板
                            stt = svyTaskTemplate1;
                            taskid = stt.getTaskid();
                            continue;
                        } else {
                            //如能模板的疾病不为空,则是用匹配到疾病的模板(如果匹配出来多个模板,只用第一个)
                            for (Icd10Association icd10Association1 : icd10Associations) {
                                if (patMedInhosp1.getIcd10code().equals(icd10Association1.getIcd10code())) {
                                    stt = svyTaskTemplate1;
                                    taskid = stt.getTaskid();
                                    break aa;
                                }
                            }
                        }
                    }
                    //如果循环完,stt还是为空,则该科室没有默认模板
                    if (Objects.isNull(stt)) {
                        //在出入院表记录一下该患者状态(该科室没有模板,所以无法在子任务里生成任务,所以任务是失败是的,chect_flag=2)
                        patMedInhosp1.setCheckFlag("2");
                        patMedInhosp1.setLongTaskReason("无法匹配到该科室模板,该科室也无默认模板");
                        patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                        continue;
                    }
                } else {
                    //为空的话,直接用科室的通用模板的任务ID,该患者直接往子任务表里插入,但不要执行,需要人工干(将不能执行的原因备注好)
                    for (SvyTaskTemplate svyTaskTemplate1 : svyTaskTemplates) {
                        //通过基础模板ID获取关联的疾病code
                        Icd10Association icd10Association = new Icd10Association();
                        icd10Association.setType(5L);
                        icd10Association.setOutid(svyTaskTemplate1.getTemplateid());
                        //找出该科室的通用模板
                        List<Icd10Association> icd10Associations = icd10AssociationMapper.selectIcd10AssociationList(icd10Association);
                        if (CollectionUtils.isEmpty(icd10Associations)) {
                            stt = svyTaskTemplate1;
                            //不配置发送时间
                            remark = "患者入院疾病为空";
                            //在出入院表记录一下该患者状态(该科室是有疾病为空的模板,所以可以在子任务里生成任务,所以任务是成功的,chect_flag=1)
                            patMedInhosp1.setCheckFlag("1");
                            patMedInhosp1.setLongTaskReason("患者入院疾病为空,已找到科室模板");
                            patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                            continue;
                        }
                    }
                    if (Objects.isNull(stt)) {
                        //在出入院表记录一下该患者状态(该科室没有模板,所以无法在子任务里生成任务,所以任务是失败是的,chect_flag=2)
                        patMedInhosp1.setCheckFlag("2");
                        patMedInhosp1.setLongTaskReason("患者入院疾病为空,未找到科室模板");
                        patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
                        continue;
                    }
                }
            }
            ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(taskid);
            ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class);
            serviceSubtask.setTaskid(serviceTask.getTaskid());
            serviceSubtask.setLibtemplateid(stt.getTemplateid());
            serviceSubtask.setTemplateid(stt.getId());
            serviceSubtask.setTemplatename(stt.getSvyname());
            serviceSubtask.setPatid(patArchive.getId());
            serviceSubtask.setSendname(patArchive.getName());
            serviceSubtask.setPhone(patArchive.getTelcode());
            serviceSubtask.setSex(patArchive.getSex());
            serviceSubtask.setAge(patArchive.getAge());
            serviceSubtask.setSendstate(2L);
            serviceSubtask.setServiceType("2");
            serviceSubtask.setServiceform(serviceTask.getPreachform());
            serviceSubtask.setHospType("2");
            //设置发送时间
            Date newDate = addDays(patMedInhosp1.getEndtime(), stt.getSendDay());
            serviceSubtask.setLongSendTime(newDate);
            //患者发送时间
            if (StringUtils.isNotEmpty(remark)) {
                serviceSubtask.setSendstate(4L);
                serviceSubtask.setRemark(remark);
                serviceSubtask.setResult("error");
                serviceSubtask.setFinishtime(new Date());
                //不执行
                serviceSubtask.setSendstate(4L);
            } else if (patArchive.getNotrequiredFlag().equals("4")) {
                //人不在了,或者其它原因,也不能随访
                serviceSubtask.setSendstate(4L);
                serviceSubtask.setRemark(patArchive.getNotrequiredreason());
                serviceSubtask.setResult("error");
                serviceSubtask.setFinishtime(new Date());
            }
            serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
            //将check_flag改成1(已处理)
            PatMedInhosp patMedInhosp2 = new PatMedInhosp();
            patMedInhosp2.setInhospid(patMedInhosp1.getInhospid());
            patMedInhosp2.setCheckFlag("1");
            patMedInhospMapper.updatePatMedInhosp(patMedInhosp2);
        }
        return 1;
    }
@@ -260,5 +336,14 @@
        return patMedInhospMapper.getDeptRanking(patMedReq);
    }
    private Date addDays(Date date, Integer days) {
        if (days == null) {
            days = 1;
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        calendar.add(Calendar.DAY_OF_MONTH, days);
        return calendar.getTime();
    }
}
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -1,5 +1,6 @@
package com.smartor.service.impl;
import afu.org.checkerframework.checker.oigj.qual.O;
import com.alibaba.fastjson2.JSON;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.DateUtils;
@@ -142,12 +143,13 @@
            String[] split = key.split("-");
            if (key.contains("-WJscriptCache")) {
                List<SvyLibTemplateScriptVO> cacheList = redisCache.getCacheList(key);
                cacheList.sort(Comparator.comparingLong(SvyLibTemplateScriptVO::getSort));
                log.error("问卷回答结果:{}", cacheList);
                for (int i = 0; i < cacheList.size(); i++) {
                    if (i == 0) {
                        //这个时间要找到第一题
                        for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : cacheList) {
                            if (svyLibTemplateScriptVO.getSort() == 1) {
                            if (svyLibTemplateScriptVO.getSort() == 1L) {
                                //说明是第一题
                                SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(cacheList.get(0), SvyTaskTemplateScriptVO.class);
                                List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = cacheList.get(0).getSvyLibTemplateTargetoptions();
@@ -170,6 +172,7 @@
                        if (svyTaskTemplateScriptVO.getSort() == nextScriptno) {
                            Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0]));
                            log.error("map的信息为:{}", map);
                            nextScriptno = Long.valueOf(map.get("nextScriptNo"));
                            if (score == null) {
                                score = Double.valueOf(map.get("score"));
@@ -185,6 +188,8 @@
            ServiceSubtask serviceSubtask = new ServiceSubtask();
            serviceSubtask.setTaskid(tid);
            serviceSubtask.setPatid(pid);
            serviceSubtask.setSubmit(1L);
            serviceSubtask.setExcep(serviceSubTaskAnswerReq.getExcep());
            serviceSubtask.setFinishtime(new Date());
            if (score != null) serviceSubtask.setScore(BigDecimal.valueOf(score));
            serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
@@ -213,13 +218,27 @@
    }
    @Override
    public List<SvyLibTemplateScriptVO> getQuestionCache(ServiceSubTaskCacheReq serviceSubTaskCacheReq) {
    public Map<String, Object> getQuestionCache(ServiceSubTaskCacheReq serviceSubTaskCacheReq) {
        Map<String, Object> map = new HashMap<>();
        RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
        Long tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key));
        Long pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key));
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        serviceSubtaskVO.setTaskid(tid);
        serviceSubtaskVO.setPatid(pid);
        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
        if (CollectionUtils.isEmpty(selectServiceSubtaskList) || selectServiceSubtaskList.size() == 0) {
            map.put("submit", 0);
        } else {
            map.put("submit", selectServiceSubtaskList.get(0).getSubmit());
            if (selectServiceSubtaskList.get(0).getSubmit() == 1) {
                return map;
            }
        }
        //问卷
        List<SvyLibTemplateScriptVO> svyTaskTemplateScriptVOList = redisCache.getCacheList(pid + "-" + tid + "-WJscriptCache");
        return svyTaskTemplateScriptVOList;
        map.put("result", svyTaskTemplateScriptVOList);
        return map;
    }
    @Override
smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java
@@ -34,19 +34,22 @@
    private ServiceSubtaskMapper serviceSubtaskMapper;
    @Autowired
    private IvrTaskTemplateMapper ivrTaskTemplateMapper;
    @Autowired
    private SvyTaskTemplateMapper svyTaskTemplateMapper;
    @Autowired
    private HeLibraryMapper heLibraryMapper;
    @Autowired
    private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper;
    @Autowired
    private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper;
    @Autowired
    private SvyTaskTemplateMapper svyTaskTemplateMapper;
    @Autowired
    private PatArchiveMapper patArchiveMapper;
    @Autowired
    private HeLibraryMapper heLibraryMapper;
    @Autowired
@@ -140,6 +143,19 @@
    @Override
    public Map<String, Object> getScriptInfoByCondition(Long taskid, Long patid) {
        Map<String, Object> map = new HashMap<>();
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        serviceSubtaskVO.setPatid(patid);
        serviceSubtaskVO.setTaskid(taskid);
        List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
        //查询患者是否重覆做题
        if (CollectionUtils.isEmpty(selectServiceSubtaskList)) {
            Long submit = selectServiceSubtaskList.get(0).getSubmit();
            if (submit == 1L) {
                map.put("submit", "1");
                return map;
            }
        }
        //通过任务ID获取模板ID
        ServiceTask serviceTask = selectServiceTaskByTaskid(taskid);
        List info = new ArrayList();
@@ -151,7 +167,7 @@
            info = wjInfo(serviceTask, patid);
        } else {
            //宣教
            info = xjInfo(Long.valueOf(serviceTask.getLibtemplateid()));
            info = xjInfo(Long.valueOf(serviceTask.getLibtemplateid()), taskid, patid);
        }
        //只要打开了页面,就算成功
@@ -162,11 +178,12 @@
        ServiceTaskSingle.setFinishtime(new Date());
        serviceSubtaskMapper.updateServiceSubtaskByCondition(ServiceTaskSingle);
        SvyTaskTemplate svyTaskTemplate = svyTaskTemplateMapper.selectSvyTaskTemplateBySvyid(serviceTask.getTemplateid());
        Map<String, Object> map = new HashMap<>();
        if (StringUtils.isNotEmpty(serviceTask.getKcb())) map.put("kcb", serviceTask.getKcb());
        map.put("script", info);
        map.put("revisitAfter", svyTaskTemplate.getConclusion());
        if (StringUtils.isNotEmpty(serviceTask.getJsy())) map.put("jsy", serviceTask.getJsy());
        map.put("type", serviceTask.getType());
        map.put("taskName",serviceTask.getTaskName());
        map.put("taskName", serviceTask.getTaskName());
        map.put("submit", "0");
        return map;
    }
@@ -228,6 +245,8 @@
                ivrLibaTemplateScriptVO.setIvrLibaScriptTargetoptionList(ivrLibaTemplateTargetoptions);
            }
        }
        Collections.sort(ivrLibaTemplateScriptVOS, Comparator.comparingInt(IvrLibaTemplateScriptVO::getSort));
        return ivrLibaTemplateScriptVOS;
    }
@@ -277,10 +296,12 @@
                    }
                }
                //替换患者个人信息数据
                svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
                svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : ""));
                log.error("问题id:{},   é—®é¢˜å†…容:{}", svyLibTemplateScriptVO.getId(), svyLibTemplateScriptVO.getScriptContent());
                if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) {
                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : ""));
                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : ""));
                    svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : ""));
                }
                //获取问题选项
                SvyLibTemplateTargetoption svyLibTemplateTargetoption = new SvyLibTemplateTargetoption();
                svyLibTemplateTargetoption.setScriptid(svyLibTemplateScriptVO.getId());
@@ -288,10 +309,17 @@
                svyLibTemplateScriptVO.setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions);
            }
        }
        Collections.sort(svyLibTemplateScriptVOS, Comparator.comparingLong(SvyLibTemplateScriptVO::getSort));
        return svyLibTemplateScriptVOS;
    }
    private List xjInfo(Long templateId) {
    private List xjInfo(Long templateId, Long taskid, Long patid) {
        ServiceSubtask serviceSubtask = new ServiceSubtask();
        serviceSubtask.setTaskid(taskid);
        serviceSubtask.setPatid(patid);
        serviceSubtask.setResult("完成");
        serviceSubtask.setFinishtime(new Date());
        serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask);
        HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(Long.valueOf(templateId));
        List list = new ArrayList();
        list.add(heLibrary);
smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java
@@ -55,8 +55,8 @@
            //往任务表中,新增任务
            if (ObjectUtils.isNotEmpty(serviceTaskVO.getSendTimeslot()))
                serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot()));
            if (serviceTask.getSendState() == null) serviceTask.setSendState(1);
            serviceTask.setTemplateid(serviceTaskVO.getLibtemplateid());
            if (serviceTask.getSendState() == null) serviceTask.setSendState(1L);
            serviceTask.setTemplateid(Long.valueOf(serviceTaskVO.getLibtemplateid()));
            iServiceTaskService.insertServiceTask(serviceTask);
            //将任务信息放到服务表中
@@ -87,7 +87,7 @@
            //修改操作,需要将stopState状态+1
            ServiceTask serviceTask2 = iServiceTaskService.selectServiceTaskByTaskid(serviceTaskVO.getTaskid());
            serviceTask2.setStopState(serviceTask.getStopState() + 1);
            serviceTask2.setTemplateid(serviceTaskVO.getLibtemplateid());
            serviceTask2.setTemplateid(Long.valueOf(serviceTaskVO.getLibtemplateid()));
            iServiceTaskService.updateServiceTask(serviceTask2);
            if (CollectionUtils.isNotEmpty(serviceTaskVO.getPatTaskRelevances())) {
smartor/src/main/resources/mapper/smartor/HeLibraryMapper.xml
@@ -39,12 +39,14 @@
        <result property="otherdata" column="otherdata"/>
        <result property="richText" column="rich_text"/>
        <result property="hetype" column="hetype"/>
        <result property="htmlRichText" column="html_rich_text"/>
    </resultMap>
    <sql id="selectHeLibraryVo">
        select id,
               classification,
               hetype,
               html_rich_text,
               assortid,
               preachname,
               version,
@@ -115,6 +117,7 @@
            <if test="campus != null  and campus != ''">and campus = #{campus}</if>
            <if test="richText != null  and richText != ''">and rich_text = #{richText}</if>
            <if test="hetype != null  and hetype != ''">and hetype = #{hetype}</if>
            <if test="htmlRichText != null  and htmlRichText != ''">and html_rich_text = #{htmlRichText}</if>
        </where>
    </select>
@@ -159,6 +162,7 @@
            <if test="otherdata != null">otherdata,</if>
            <if test="richText != null  and richText != ''">rich_text,</if>
            <if test="hetype != null  and hetype != ''">hetype,</if>
            <if test="htmlRichText != null  and htmlRichText != ''">html_rich_text,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="classification != null">#{classification},</if>
@@ -194,6 +198,7 @@
            <if test="otherdata != null">#{otherdata},</if>
            <if test="richText != null  and richText != ''">#{richText},</if>
            <if test="hetype != null  and hetype != ''">#{hetype},</if>
            <if test="htmlRichText != null  and htmlRichText != ''">#{htmlRichText},</if>
        </trim>
    </insert>
@@ -233,6 +238,7 @@
            <if test="otherdata != null">otherdata = #{otherdata},</if>
            <if test="richText != null  and richText != ''">rich_text = #{richText},</if>
            <if test="hetype != null  and hetype != ''">hetype = #{hetype},</if>
            <if test="htmlRichText != null  and htmlRichText != ''">html_rich_text = #{htmlRichText},</if>
        </trim>
        where id = #{id}
    </update>
smartor/src/main/resources/mapper/smartor/IvrLibaTemplateMapper.xml
@@ -43,6 +43,7 @@
        <result property="silencetime" column="silencetime"/>
        <result property="sendDay" column="send_day"/>
        <result property="longTemp" column="long_temp"/>
        <result property="deptCode" column="dept_code"/>
    </resultMap>
    <sql id="selectIvrLibaTemplateVo">
@@ -50,6 +51,7 @@
               revisit_before,
               revisit_after,
               send_day,
               dept_code,
               long_temp,
               templateName,
               firstQuestionNum,
@@ -109,6 +111,7 @@
            <if test="tag != null  and tag != ''">and tag = #{tag}</if>
            <if test="noVoiceNum != null and noVoiceNum > 0">and no_voice_num = #{noVoiceNum}</if>
            <if test="silencetime != null">and silencetime = #{silencetime}</if>
            <if test="deptCode != null">and dept_code = #{deptCode}</if>
        </where>
    </select>
@@ -158,6 +161,7 @@
            <if test="silencetime != null  ">silencetime,</if>
            <if test="sendDay != null ">send_day,</if>
            <if test="longTemp != null ">long_temp,</if>
            <if test="deptCode != null">dept_code,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="templateName != null and templateName != ''">#{templateName},</if>
@@ -197,6 +201,7 @@
            <if test="silencetime != null ">#{silencetime},</if>
            <if test="sendDay != null ">#{sendDay},</if>
            <if test="longTemp != null ">#{longTemp},</if>
            <if test="deptCode != null">#{deptCode},</if>
        </trim>
    </insert>
@@ -241,6 +246,7 @@
            <if test="silencetime != null">silencetime = #{silencetime},</if>
            <if test="sendDay != null ">send_day = #{sendDay},</if>
            <if test="longTemp != null ">long_temp = #{longTemp},</if>
            <if test="deptCode != null">dept_code = #{deptCode},</if>
        </trim>
        where id = #{id}
    </update>
smartor/src/main/resources/mapper/smartor/IvrTaskTemplateMapper.xml
@@ -61,6 +61,7 @@
        <result property="recallcount" column="recallcount"/>
        <result property="instruction" column="instruction"/>
        <result property="sendDay" column="send_day"/>
        <result property="deptCode" column="dept_code"/>
    </resultMap>
@@ -73,6 +74,7 @@
               libtemplateid,
               libtemplatename,
               taskname,
               dept_code,
               targetid,
               targetname,
               templateName,
@@ -143,6 +145,7 @@
            <if test="revisitAfter != null  and revisitAfter != ''">and revisit_after = #{revisitAfter}</if>
            <if test="noVoiceNum != null ">and no_voice_num = #{noVoiceNum}</if>
            <if test="recallcount != null">and recallcount = #{prologrecallcountue}</if>
            <if test="deptCode != null">and dept_code = #{deptCode}</if>
        </where>
    </select>
@@ -210,6 +213,7 @@
            <if test="libtemplatename != null ">libtemplatename,</if>
            <if test="instruction != null ">instruction,</if>
            <if test="sendDay != null ">send_day,</if>
            <if test="deptCode != null">dept_code,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="taskid != null">#{taskid},</if>
@@ -267,6 +271,7 @@
            <if test="libtemplatename != null ">#{libtemplatename},</if>
            <if test="instruction != null ">#{instruction},</if>
            <if test="sendDay != null ">#{sendDay},</if>
            <if test="deptCode != null">#{deptCode},</if>
        </trim>
    </insert>
@@ -328,6 +333,7 @@
            <if test="libtemplatename != null ">libtemplatename = #{libtemplatename},</if>
            <if test="instruction != null ">instruction = #{instruction},</if>
            <if test="sendDay != null ">send_day = #{sendDay},</if>
            <if test="deptCode != null">dept_code = #{deptCode},</if>
        </trim>
        where id = #{id}
    </update>
smartor/src/main/resources/mapper/smartor/PatArchiveImportMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,216 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.smartor.mapper.PatArchiveImportMapper">
    <resultMap type="com.smartor.domain.PatArchiveImport" id="PatArchiveImportResult">
            <result property="id" column="id"/>
            <result property="patientno" column="patientno"/>
            <result property="pattype" column="pattype"/>
            <result property="name" column="name"/>
            <result property="sex" column="sex"/>
            <result property="idcardno" column="idcardno"/>
            <result property="age" column="age"/>
            <result property="telcode" column="telcode"/>
            <result property="openid" column="openid"/>
            <result property="delFlag" column="del_flag"/>
            <result property="updateBy" column="update_by"/>
            <result property="updateTime" column="update_time"/>
            <result property="createBy" column="create_by"/>
            <result property="createTime" column="create_time"/>
            <result property="batchName" column="batch_name"/>
            <result property="batchNo" column="batch_no"/>
    </resultMap>
    <sql id="selectPatArchiveImportVo">
        select id, patientno, pattype, name, sex, idcardno, age, telcode, openid, del_flag, update_by, update_time, create_by, create_time, batch_name, batch_no
        from pat_archive_import
    </sql>
    <select id="selectPatArchiveImportList" parameterType="com.smartor.domain.PatArchiveImport"
            resultMap="PatArchiveImportResult">
        <include refid="selectPatArchiveImportVo"/>
        <where>
                        <if test="patientno != null  and patientno != ''">
                            and patientno = #{patientno}
                        </if>
                        <if test="pattype != null  and pattype != ''">
                            and pattype = #{pattype}
                        </if>
                        <if test="name != null  and name != ''">
                            and name like concat('%', #{name}, '%')
                        </if>
                        <if test="sex != null ">
                            and sex = #{sex}
                        </if>
                        <if test="idcardno != null  and idcardno != ''">
                            and idcardno = #{idcardno}
                        </if>
                        <if test="age != null ">
                            and age = #{age}
                        </if>
                        <if test="telcode != null  and telcode != ''">
                            and telcode = #{telcode}
                        </if>
                        <if test="openid != null  and openid != ''">
                            and openid = #{openid}
                        </if>
                        <if test="batchName != null  and batchName != ''">
                            and batch_name like concat('%', #{batchName}, '%')
                        </if>
                        <if test="batchNo != null  and batchNo != ''">
                            and batch_no = #{batchNo}
                        </if>
        </where>
    </select>
    <select id="selectPatArchiveImportById" parameterType="Long"
            resultMap="PatArchiveImportResult">
            <include refid="selectPatArchiveImportVo"/>
            where id = #{id}
    </select>
    <insert id="insertPatArchiveImport" parameterType="com.smartor.domain.PatArchiveImport"            useGeneratedKeys="true" keyProperty="id">
        insert into pat_archive_import
        <trim prefix="(" suffix=")" suffixOverrides=",">
                    <if test="patientno != null">patientno,
                    </if>
                    <if test="pattype != null">pattype,
                    </if>
                    <if test="name != null">name,
                    </if>
                    <if test="sex != null">sex,
                    </if>
                    <if test="idcardno != null">idcardno,
                    </if>
                    <if test="age != null">age,
                    </if>
                    <if test="telcode != null">telcode,
                    </if>
                    <if test="openid != null">openid,
                    </if>
                    <if test="delFlag != null">del_flag,
                    </if>
                    <if test="updateBy != null">update_by,
                    </if>
                    <if test="updateTime != null">update_time,
                    </if>
                    <if test="createBy != null">create_by,
                    </if>
                    <if test="createTime != null">create_time,
                    </if>
                    <if test="batchName != null">batch_name,
                    </if>
                    <if test="batchNo != null">batch_no,
                    </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
                    <if test="patientno != null">#{patientno},
                    </if>
                    <if test="pattype != null">#{pattype},
                    </if>
                    <if test="name != null">#{name},
                    </if>
                    <if test="sex != null">#{sex},
                    </if>
                    <if test="idcardno != null">#{idcardno},
                    </if>
                    <if test="age != null">#{age},
                    </if>
                    <if test="telcode != null">#{telcode},
                    </if>
                    <if test="openid != null">#{openid},
                    </if>
                    <if test="delFlag != null">#{delFlag},
                    </if>
                    <if test="updateBy != null">#{updateBy},
                    </if>
                    <if test="updateTime != null">#{updateTime},
                    </if>
                    <if test="createBy != null">#{createBy},
                    </if>
                    <if test="createTime != null">#{createTime},
                    </if>
                    <if test="batchName != null">#{batchName},
                    </if>
                    <if test="batchNo != null">#{batchNo},
                    </if>
        </trim>
    </insert>
    <update id="updatePatArchiveImport" parameterType="com.smartor.domain.PatArchiveImport">
        update pat_archive_import
        <trim prefix="SET" suffixOverrides=",">
                    <if test="patientno != null">patientno =
                        #{patientno},
                    </if>
                    <if test="pattype != null">pattype =
                        #{pattype},
                    </if>
                    <if test="name != null">name =
                        #{name},
                    </if>
                    <if test="sex != null">sex =
                        #{sex},
                    </if>
                    <if test="idcardno != null">idcardno =
                        #{idcardno},
                    </if>
                    <if test="age != null">age =
                        #{age},
                    </if>
                    <if test="telcode != null">telcode =
                        #{telcode},
                    </if>
                    <if test="openid != null">openid =
                        #{openid},
                    </if>
                    <if test="delFlag != null">del_flag =
                        #{delFlag},
                    </if>
                    <if test="updateBy != null">update_by =
                        #{updateBy},
                    </if>
                    <if test="updateTime != null">update_time =
                        #{updateTime},
                    </if>
                    <if test="createBy != null">create_by =
                        #{createBy},
                    </if>
                    <if test="createTime != null">create_time =
                        #{createTime},
                    </if>
                    <if test="batchName != null">batch_name =
                        #{batchName},
                    </if>
                    <if test="batchNo != null">batch_no =
                        #{batchNo},
                    </if>
        </trim>
        where id = #{id}
    </update>
                <update id="deletePatArchiveImportById" parameterType="Long">
        update pat_archive_import
        <trim prefix="SET" suffixOverrides=",">
            del_flag =1
        </trim>
        where  id = #{id}
    </update>
                            <update id="deletePatArchiveImportByIds" parameterType="String">
        update  pat_archive_import
        <trim prefix="SET" suffixOverrides=",">
            del_flag =1
        </trim>
        where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </update>
</mapper>
smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml
@@ -8,6 +8,8 @@
        <result property="id" column="id"/>
        <result property="patientno" column="patientno"/>
        <result property="sourcefrom" column="sourcefrom"/>
        <result property="notrequiredFlag" column="notrequired_flag"/>
        <result property="notrequiredreason" column="notrequiredreason"/>
        <result property="patidHis" column="patid_his"/>
        <result property="sdFlag" column="sd_flag"/>
        <result property="pattype" column="pattype"/>
@@ -31,6 +33,9 @@
        <result property="openid" column="openid"/>
        <result property="delFlag" column="del_flag"/>
        <result property="dept" column="deptname"/>
        <result property="deptcode" column="deptcode"/>
        <result property="drcode" column="drcode"/>
        <result property="drname" column="drname"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="createBy" column="create_by"/>
@@ -41,12 +46,70 @@
        <result property="pattype" column="pattype"/>
        <result property="bedNo" column="bedno"/>
        <result property="inhosptime" column="inhosptime"/>
        <result property="ageUnit" column="age_unit"/>
        <result property="leavehospitaldistrictname" column="leavehospitaldistrictname"/>
        <result property="leavehospitaldistrictcode" column="leavehospitaldistrictcode"/>
    </resultMap>
    <resultMap type="com.smartor.domain.PatArchiveOthreInfo" id="PatArchiveOthreInfoResult">
        <result property="id" column="id"/>
        <result property="notrequiredFlag" column="notrequired_flag"/>
        <result property="notrequiredreason" column="notrequiredreason"/>
        <result property="patientno" column="patientno"/>
        <result property="sourcefrom" column="sourcefrom"/>
        <result property="patidHis" column="patid_his"/>
        <result property="sdFlag" column="sd_flag"/>
        <result property="pattype" column="pattype"/>
        <result property="viptype" column="viptype"/>
        <result property="name" column="name"/>
        <result property="sex" column="sex"/>
        <result property="nation" column="nation"/>
        <result property="nativePlace" column="native_place"/>
        <result property="placeOfResidence" column="place_of_residence"/>
        <result property="birthplace" column="birthplace"/>
        <result property="idcardno" column="idcardno"/>
        <result property="birthdate" column="birthdate"/>
        <result property="age" column="age"/>
        <result property="sourcefrom" column="sourcefrom"/>
        <result property="archivetime" column="archivetime"/>
        <result property="archiveby" column="archiveby"/>
        <result property="telcode" column="telcode"/>
        <result property="relativetelcode" column="relativetelcode"/>
        <result property="idcardtype" column="idcardtype"/>
        <result property="orgid" column="orgid"/>
        <result property="openid" column="openid"/>
        <result property="delFlag" column="del_flag"/>
        <result property="dept" column="deptname"/>
        <result property="deptcode" column="deptcode"/>
        <result property="drcode" column="drcode"/>
        <result property="drname" column="drname"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="isupload" column="isupload"/>
        <result property="uploadTime" column="upload_time"/>
        <result property="tag" column="tag"/>
        <result property="pattype" column="pattype"/>
        <result property="bedNo" column="bedno"/>
        <result property="starttime" column="starttime"/>
        <result property="endtime" column="endtime"/>
        <result property="ageUnit" column="age_unit"/>
        <result property="inhospno" column="inhospno"/>
        <result property="nurseId" column="nurse_id"/>
        <result property="nurseName" column="nurse_name"/>
        <result property="leavehospitaldistrictname" column="leavehospitaldistrictname"/>
        <result property="leavehospitaldistrictcode" column="leavehospitaldistrictcode"/>
    </resultMap>
    <sql id="selectPatArchiveVo">
        select id,
               notrequired_flag,
               notrequiredreason,
               patientno,
               patid_his,
               age_unit,
               sd_flag,
               name,
               sex,
@@ -80,6 +143,7 @@
    <select id="selectPatArchiveList" parameterType="com.smartor.domain.PatArchive" resultMap="PatArchiveResult">
        <include refid="selectPatArchiveVo"/>
        <where>
            del_flag=0
            <if test="name != null  and name != ''">and name like concat('%', #{name}, '%')</if>
            <if test="idcardno != null  and idcardno != ''">and idcardno = #{idcardno}</if>
            <if test="sourcefrom != null ">and sourcefrom = #{sourcefrom}</if>
@@ -93,6 +157,9 @@
            <if test="patientno != null ">and patientno = #{patientno}</if>
            <if test="patidHis != null ">and patid_his = #{patidHis}</if>
            <if test="sdFlag != null ">and sd_flag = #{sdFlag}</if>
            <if test="ageUnit != null ">and age_unit = #{ageUnit}</if>
            <if test="notrequiredFlag != null ">and notrequired_flag = #{notrequiredFlag}</if>
            <if test="notrequiredreason != null ">and notrequiredreason = #{notrequiredreason}</if>
        </where>
    </select>
@@ -100,6 +167,9 @@
    <select id="patInfoByContion" parameterType="com.smartor.domain.PatArchiveReq" resultMap="PatArchiveResult">
        select
        a.id,
        a.age_unit,
        a.notrequired_flag,
        a.notrequiredreason,
        a.patientno,
        a.patid_his,
        a.sd_flag,
@@ -170,6 +240,9 @@
            <if test="createTime != null">create_time,</if>
            <if test="isupload != null">isupload,</if>
            <if test="uploadTime != null">upload_time,</if>
            <if test="ageUnit != null">age_unit,</if>
            <if test="notrequiredFlag != null ">notrequired_flag,</if>
            <if test="notrequiredreason != null ">notrequiredreason,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="patientno != null">#{patientno},</if>
@@ -204,18 +277,21 @@
            <if test="createTime != null">#{createTime},</if>
            <if test="isupload != null">#{isupload},</if>
            <if test="uploadTime != null">#{uploadTime},</if>
            <if test="ageUnit != null">#{ageUnit},</if>
            <if test="notrequiredFlag != null ">#{notrequiredFlag},</if>
            <if test="notrequiredreason != null ">#{notrequiredreason},</if>
        </trim>
    </insert>
    <insert id="insertPatArchive">
        insert into
        pat_archive(name,viptype,sex,idcardno,birthdate,place_of_residence,age,sourcefrom,archivetime,archiveby,telcode,relativetelcode,idcardtype,orgid,openid,dduserid,update_by,update_time
        ,create_by,create_time,isupload,upload_time,pattype,nation,birthplace,native_place,patientno,patid_his,sd_flag)
        ,create_by,create_time,isupload,upload_time,pattype,nation,birthplace,native_place,patientno,patid_his,sd_flag,age_unit,notrequired_flag,notrequiredreason)
        values
        <foreach item="item" index="index" collection="list" separator=",">
            (#{item.name},#{item.viptype},#{item.sex},#{item.idcardno},#{item.birthdate},#{item.placeOfResidence},#{item.age},#{item.sourcefrom},#{item.archivetime},#{item.archiveby}
            ,#{item.telcode},#{item.archiveby},#{item.idcardtype},#{item.orgid},#{item.openid},#{item.dduserid},#{item.updateBy},
            #{item.updateTime},#{item.createBy},#{item.createTime},#{item.isupload},#{item.uploadTime},#{item.pattype},#{item.nation},#{item.birthplace},#{item.nativePlace},#{item.patientno},#{item.patidHis},#{item.sdFlag}
            #{item.updateTime},#{item.createBy},#{item.createTime},#{item.isupload},#{item.uploadTime},#{item.pattype},#{item.nation},#{item.birthplace},#{item.nativePlace},#{item.patientno},#{item.patidHis},#{item.sdFlag},#{item.ageUnit},#{item.notrequiredFlag},#{item.notrequiredreason}
            )
        </foreach>
    </insert>
@@ -249,6 +325,9 @@
            <if test="viptype != null">patientno = #{patientno},</if>
            <if test="viptype != null">patid_his = #{patidHis},</if>
            <if test="viptype != null">sd_flag = #{sdFlag},</if>
            <if test="ageUnit != null">age_unit = #{ageUnit},</if>
            <if test="notrequiredFlag != null ">notrequired_flag = #{notrequiredFlag},</if>
            <if test="notrequiredreason != null ">notrequiredreason = #{notrequiredreason},</if>
        </trim>
        where id = #{id}
    </update>
@@ -267,11 +346,14 @@
    </delete>
    <select id="selectPatArchiveInfoByAllhosp" parameterType="com.smartor.domain.PatArchiveReq"
            resultMap="PatArchiveResult">
            resultMap="PatArchiveOthreInfoResult">
        SELECT
        a.id,
        a.age_unit,
        a.patid_his,
        a.notrequired_flag,
        a.notrequiredreason,
        a.sd_flag,
        a.patientno,
        a.NAME,
@@ -323,15 +405,22 @@
    <select id="selectPatArchiveInfoByInhosp" parameterType="com.smartor.domain.PatArchiveReq"
            resultMap="PatArchiveResult">
            resultMap="PatArchiveOthreInfoResult">
        select
        a.id,
        a.age_unit,
        a.inhospno,
        a.notrequired_flag,
        a.notrequiredreason,
        a.patid_his,
        a.sd_flag,
        a.patientno,
        a.NAME,
        d.deptname,
        d.deptcode,
        d.drcode,
        d.drname,
        a.sex,
        a.nation,
        a.native_place,
@@ -358,7 +447,13 @@
        a.upload_time,
        a.pattype,
        d.bed_no,
        d.starttime AS inhosptime,
        d.starttime,
        d.endtime,
        d.nurse_name,
        d.nurse_id,
        d.endtime,
        d.leavehospitaldistrictname AS leavehospitaldistrictname,
        d.leavehospitaldistrictcode AS leavehospitaldistrictcode,
        t.tagname
        FROM
        pat_med_inhosp d
@@ -400,6 +495,20 @@
            <if test="deptname != null and deptname != ''">
                AND d.deptname LIKE concat('%',#{deptname}, '%')
            </if>
            <if test="leavehospitaldistrictcodes != null">
                AND d.leavehospitaldistrictcode IN
                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
                         close=")">
                    #{leavehospitaldistrictcode}
                </foreach>
            </if>
            <if test="leaveldeptcodes != null">
                AND d.leaveldeptcode IN
                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
                         close=")">
                    #{leaveldeptcode}
                </foreach>
            </if>
            <if test="pids != null">
                AND a.id NOT IN
                <foreach collection="pids" item="pid" open="(" separator="," close=")">
@@ -414,14 +523,20 @@
    </select>
    <select id="selectPatArchiveInfoByOuthosp" parameterType="com.smartor.domain.PatArchiveReq"
            resultMap="PatArchiveResult">
            resultMap="PatArchiveOthreInfoResult">
        select
        a.id,
        a.age_unit,
        a.patid_his,
        a.sd_flag,
        a.patientno,
        a.notrequired_flag,
        a.notrequiredreason,
        d.deptname,
        d.deptcode,
        d.drcode,
        d.drname,
        a.name,
        a.sex,
        a.nation,
@@ -447,6 +562,8 @@
        a.create_time,
        a.isupload,
        a.upload_time,
        d.leavehospitaldistrictcode AS leavehospitaldistrictcode,
        d.leavehospitaldistrictname AS leavehospitaldistrictname,
        a.pattype
        from pat_med_outhosp d JOIN pat_archive a ON a.id = d.patid
        LEFT JOIN ( SELECT patid, GROUP_CONCAT( tagname ) AS tagname FROM pat_archivetag GROUP BY patid ) t ON t.patid =
@@ -473,6 +590,9 @@
            <if test="deptname != null and deptname != ''">
                and d.deptname LIKE concat('%', #{deptname}, '%')
            </if>
            <if test="leavehospitaldistrictname != null and leavehospitaldistrictname != ''">
                and d.leavehospitaldistrictname LIKE concat('%', #{leavehospitaldistrictname}, '%')
            </if>
            <if test="drname != null and drname != ''">
                AND d.drname LIKE concat('%',#{drname}, '%')
            </if>
@@ -490,16 +610,22 @@
    </select>
    <select id="selectPatArchiveInfoByPhysical" parameterType="com.smartor.domain.PatArchiveReq"
            resultMap="PatArchiveResult">
            resultMap="PatArchiveOthreInfoResult">
        select
        a.id,
        a.age_unit,
        a.name,
        a.notrequired_flag,
        a.notrequiredreason,
        a.patid_his,
        a.sd_flag,
        a.patientno,
        a.sex,
        d.deptname,
        d.deptcode,
        d.drcode,
        d.drname,
        a.nation,
        a.native_place,
        a.place_of_residence,
smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml
@@ -48,14 +48,26 @@
        <result property="patno" column="patno"/>
        <result property="inhospstate" column="inhospstate"/>
        <result property="checkFlag" column="check_flag"/>
        <result property="age" column="age"/>
        <result property="telcode" column="telcode"/>
        <result property="longTaskReason" column="long_task_reason"/>
        <result property="nurseId" column="nurse_id"/>
        <result property="nurseName" column="nurse_name"/>
        <result property="outWayId" column="out_way_id"/>
        <result property="outWayName" column="out_way_name"/>
    </resultMap>
    <sql id="selectPatMedInhospVo">
        select inhospid,
               patname,
               out_way_id,
               out_way_name,
               nurse_id,
               nurse_name,
               check_flag,
               inhospstate,
               patno,
               long_task_reason,
               inhospno,
               serialnum,
               hospitalname,
@@ -98,8 +110,64 @@
    </sql>
    <select id="selectPatMedInhospList" parameterType="com.smartor.domain.PatMedInhosp" resultMap="PatMedInhospResult">
        <include refid="selectPatMedInhospVo"/>
        select CONCAT( a.age, a.age_unit ) AS age,
        a.telcode as telcode,
        b.inhospid,
        b.nurse_id,
        b.nurse_name,
        b.patname,
        b.out_way_id,
        b.out_way_name,
        b.check_flag,
        b.inhospstate,
        b.patno,
        b.inhospno,
        b.serialnum,
        b.hospitalname,
        b.hospitalcode,
        b.hospitaldistrictcode,
        b.hospitaldistrictname,
        b.icd10code,
        b.diagname,
        b.starttime,
        b.endtime,
        b.deptcode,
        b.deptname,
        b.roomno,
        b.bed_no,
        b.orgid,
        b.del_flag,
        b.update_by,
        b.update_time,
        b.create_by,
        b.create_time,
        b.isupload,
        b.upload_time,
        b.patid,
        b.leavediagname,
        b.leaveicd10code,
        b.drcode,
        b.drname,
        b.schemestatus,
        b.generalschemestatus,
        b.leaveldeptcode,
        b.leaveldeptname,
        b.hospitaldistrictid,
        b.leavehospitaldistrictcode,
        b.leavehospitaldistrictname,
        b.leavehospitaldistrictid,
        b.deptid,
        b.leaveldeptid,
        b.long_task_reason,
        b.schemetime
        FROM
        pat_med_inhosp b,
        pat_archive a
        <where>
            a.del_flag=0
            and b.del_flag=0
            and a.id = b.patid
            AND a.idcardno != ''
            <if test="hospitalname != null  and hospitalname != ''">and hospitalname like concat('%', #{hospitalname},
                '%')
            </if>
@@ -107,24 +175,125 @@
            <if test="hospitaldistrictname != null  and hospitaldistrictname != ''">and hospitaldistrictname like
                concat('%', #{hospitaldistrictname}, '%')
            </if>
            <if test="endtime != null ">and endtime = #{endtime}</if>
            <if test="patno != null ">and patno = #{patno}</if>
            <if test="checkFlag != null ">and check_flag = #{checkFlag}</if>
            <if test="inhospstate != null ">and inhospstate = #{inhospstate}</if>
            <if test="schemestatus != null ">and schemestatus = #{schemestatus}</if>
            <if test="leavediagname != null  and leavediagname != ''">and leavediagname like concat('%',
            <if test="endtime != null ">and b.endtime = #{endtime}</if>
            <if test="patno != null ">and b.patno = #{patno}</if>
            <if test="nurseId != null ">and b.nurse_id = #{nurseId}</if>
            <if test="nurseName != null ">and b.nurse_name = #{nurseName}</if>
            <if test="checkFlag != null ">and b.check_flag = #{checkFlag}</if>
            <if test="inhospstate != null ">and b.inhospstate = #{inhospstate}</if>
            <if test="schemestatus != null ">and b.schemestatus = #{schemestatus}</if>
            <if test="outWayId != null ">and b.out_way_id = #{outWayId}</if>
            <if test="outWayName != null ">and b.out_way_name = #{outWayName}</if>
            <if test="leavediagname != null  and leavediagname != ''">and b.leavediagname like concat('%',
                #{leavediagname}, '%')
            </if>
            <if test="drname != null  and drname != ''">and drname like concat('%', #{drname}, '%')</if>
            <if test="leaveldeptname != null  and leaveldeptname != ''">and leaveldeptname like concat('%',
            <if test="drname != null  and drname != ''">and b.drname like concat('%', #{drname}, '%')</if>
            <if test="leaveldeptname != null  and leaveldeptname != ''">and b.leaveldeptname like concat('%',
                #{leaveldeptname}, '%')
            </if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and
                leavehospitaldistrictname like concat('%', #{leavehospitaldistrictname}, '%')
                b.leavehospitaldistrictname like concat('%', #{leavehospitaldistrictname}, '%')
            </if>
        </where>
        order by update_time desc
        order by b.inhospid desc
    </select>
    <select id="selectPatMedInhospListByCondition" parameterType="com.smartor.domain.PatMedInhospVO"
            resultMap="PatMedInhospResult">
        select CONCAT( a.age, a.age_unit ) AS age,
        a.telcode as telcode,
        b.inhospid,
        b.patname,
        b.out_way_id,
        b.out_way_name,
        b.nurse_id,
        b.nurse_name,
        b.check_flag,
        b.inhospstate,
        b.patno,
        b.inhospno,
        b.serialnum,
        b.hospitalname,
        b.hospitalcode,
        b.hospitaldistrictcode,
        b.hospitaldistrictname,
        b.icd10code,
        b.diagname,
        b.starttime,
        b.endtime,
        b.deptcode,
        b.deptname,
        b.roomno,
        b.bed_no,
        b.orgid,
        b.del_flag,
        b.update_by,
        b.update_time,
        b.create_by,
        b.create_time,
        b.isupload,
        b.upload_time,
        b.patid,
        b.leavediagname,
        b.leaveicd10code,
        b.drcode,
        b.drname,
        b.schemestatus,
        b.generalschemestatus,
        b.leaveldeptcode,
        b.leaveldeptname,
        b.hospitaldistrictid,
        b.leavehospitaldistrictcode,
        b.leavehospitaldistrictname,
        b.leavehospitaldistrictid,
        b.deptid,
        b.leaveldeptid,
        b.long_task_reason,
        b.schemetime
        FROM
        pat_med_inhosp b,
        pat_archive a
        <where>
            a.del_flag=0
            and b.del_flag=0
            and a.id = b.patid
            AND a.idcardno != ''
            <if test="hospitalname != null  and hospitalname != ''">and hospitalname like concat('%', #{hospitalname},
                '%')
            </if>
            <if test="patname != null  and patname != ''">and patname like concat('%', #{patname}, '%')</if>
            <if test="hospitaldistrictname != null  and hospitaldistrictname != ''">and hospitaldistrictname like
                concat('%', #{hospitaldistrictname}, '%')
            </if>
            <if test="endtime != null ">and b.endtime = #{endtime}</if>
            <if test="nurseId != null ">and b.nurse_id = #{nurseId}</if>
            <if test="nurseName != null ">and b.nurse_name = #{nurseName}</if>
            <if test="patno != null ">and b.patno = #{patno}</if>
            <if test="checkFlag != null ">and b.check_flag = #{checkFlag}</if>
            <if test="inhospstate != null ">and b.inhospstate = #{inhospstate}</if>
            <if test="schemestatus != null ">and b.schemestatus = #{schemestatus}</if>
            <if test="leavediagname != null  and leavediagname != ''">and b.leavediagname like concat('%',
                #{leavediagname}, '%')
            </if>
            <if test="drname != null  and drname != ''">and b.drname like concat('%', #{drname}, '%')</if>
            <if test="leavehospitaldistrictcodes != null">
                AND b.leavehospitaldistrictcode IN
                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
                         close=")">
                    #{leavehospitaldistrictcode}
                </foreach>
            </if>
            <if test="leaveldeptcodes != null">
                AND b.leaveldeptcode IN
                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
                         close=")">
                    #{leaveldeptcode}
                </foreach>
            </if>
        </where>
        order by b.inhospid desc
    </select>
    <select id="selectPatMedInhospByInhospid" parameterType="Long" resultMap="PatMedInhospResult">
        <include refid="selectPatMedInhospVo"/>
@@ -176,6 +345,11 @@
            <if test="patno != null">patno,</if>
            <if test="inhospstate != null">inhospstate,</if>
            <if test="checkFlag != null">check_flag,</if>
            <if test="longTaskReason != null">long_task_reason,</if>
            <if test="nurseId != null ">nurse_id,</if>
            <if test="nurseName != null ">nurse_name,</if>
            <if test="outWayId != null ">out_way_id,</if>
            <if test="outWayName != null ">out_way_name,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="serialnum != null">#{serialnum},</if>
@@ -219,6 +393,11 @@
            <if test="patno != null">#{patno},</if>
            <if test="inhospstate != null">#{inhospstate},</if>
            <if test="checkFlag != null">#{checkFlag},</if>
            <if test="longTaskReason != null">#{longTaskReason},</if>
            <if test="nurseId != null ">#{nurseId},</if>
            <if test="nurseName != null ">#{nurseName},</if>
            <if test="outWayId != null ">#{outWayId},</if>
            <if test="outWayName != null ">#{outWayName},</if>
        </trim>
    </insert>
@@ -266,6 +445,11 @@
            <if test="patno != null">patno = #{patno},</if>
            <if test="inhospstate != null">inhospstate = #{inhospstate},</if>
            <if test="checkFlag != null">check_flag = #{checkFlag},</if>
            <if test="longTaskReason != null">long_task_reason = #{longTaskReason},</if>
            <if test="nurseId != null ">nurse_id = #{nurseId},</if>
            <if test="nurseName != null ">nurse_name = #{nurseName},</if>
            <if test="outWayId != null ">out_way_id = #{outWayId},</if>
            <if test="outWayName != null ">out_way_name = #{outWayName},</if>
        </trim>
        where inhospid = #{inhospid}
    </update>
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -9,6 +9,8 @@
        <result property="sendname" column="sendname"/>
        <result property="phone" column="phone"/>
        <result property="sex" column="sex"/>
        <result property="nurseName" column="nurse_name"/>
        <result property="nurseId" column="nurse_id"/>
        <result property="age" column="age"/>
        <result property="sfzh" column="sfzh"/>
        <result property="addr" column="addr"/>
@@ -58,6 +60,17 @@
        <result property="longSendTime" column="long_send_time"/>
        <result property="serviceType" column="service_type"/>
        <result property="score" column="score"/>
        <result property="submit" column="submit"/>
        <result property="drname" column="drname"/>
        <result property="drcode" column="drcode"/>
        <result property="starttime" column="starttime"/>
        <result property="endtime" column="endtime"/>
        <result property="leavehospitaldistrictcode" column="leavehospitaldistrictcode"/>
        <result property="leavehospitaldistrictname" column="leavehospitaldistrictname"/>
        <result property="excep" column="excep"/>
        <result property="remark" column="remark"/>
        <result property="suggest" column="suggest"/>
        <result property="sendstate" column="sendstate"/>
    </resultMap>
    <resultMap type="com.smartor.domain.ServiceSubtaskCount" id="ServiceSubtaskResult2">
@@ -70,8 +83,19 @@
    <sql id="selectServiceSubtaskVo">
        select id,
               hosp_type,
               suggest,
               sendstate,
               endtime,
               nurse_id,
               nurse_name,
               starttime,
               submit,
               drname,
               excep,
               drcode,
               long_send_time,
               openid,
               remark,
               service_type,
               libtemplateid,
               libtemplatename,
@@ -121,6 +145,8 @@
               admindate,
               deptname,
               stop_state,
               leavehospitaldistrictcode,
               leavehospitaldistrictname,
               diagname
        from service_subtask
    </sql>
@@ -132,8 +158,15 @@
            del_flag=0
            <if test="sendname != null  and sendname != ''">and sendname like concat('%', #{sendname}, '%')</if>
            <if test="phone != null  and phone != ''">and phone = #{phone}</if>
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">and
                leavehospitaldistrictcode = #{leavehospitaldistrictcode}
            </if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and
                leavehospitaldistrictname = #{leavehospitaldistrictname}
            </if>
            <if test="sex != null  and sex != ''">and sex = #{sex}</if>
            <if test="age != null ">and age = #{age}</if>
            <if test="submit != null ">and submit = #{submit}</if>
            <if test="serviceType != null ">and service_type = #{serviceType}</if>
            <if test="patid != null ">and patid = #{patid}</if>
            <if test="sfzh != null  and sfzh != ''">and sfzh = #{sfzh}</if>
@@ -153,6 +186,7 @@
            <if test="exrecallcount != null ">and exrecallcount = #{exrecallcount}</if>
            <if test="pulltime != null ">and pulltime = #{pulltime}</if>
            <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if>
            <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if>
            <if test="labelstatus != null ">and labelstatus = #{labelstatus}</if>
            <if test="isupload != null ">and isupload = #{isupload}</if>
            <if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
@@ -172,9 +206,20 @@
            <if test="openid != null ">and openid = #{openid}</if>
            <if test="longSendTime != null ">and long_send_time = #{longSendTime}</if>
            <if test="sendstate != null ">and sendstate = #{sendstate}</if>
            <if test="score != null">
                and score = #{score}
            <if test="drname != null ">and drname = #{drname}</if>
            <if test="drcode != null ">and drcode = #{drcode}</if>
            <if test="starttime != null ">and starttime = #{starttime}</if>
            <if test="endtime != null ">and endtime = #{endtime}</if>
            <if test="excep != null ">and excep = #{excep}</if>
            <if test="nurseId != null ">and nurse_id = #{nurseId}</if>
            <if test="nurseName != null ">and nurse_name = #{nurseName}</if>
            <if test="leavehospitaldistrictcode != null ">and leavehospitaldistrictcode = #{leavehospitaldistrictcode}
            </if>
            <if test="leavehospitaldistrictname != null ">and leavehospitaldistrictname = #{leavehospitaldistrictname}
            </if>
            <if test="score != null">and score = #{score}</if>
            <if test="remark != null">and remark = #{remark}</if>
            <if test="suggest != null">and suggest = #{suggest}</if>
        </where>
        order by update_time desc,id desc
    </select>
@@ -208,7 +253,6 @@
            <if test="pulltime != null">pulltime,</if>
            <if test="deptcode != null">deptcode,</if>
            <if test="labelstatus != null">labelstatus,</if>
            <if test="delFlag != null and delFlag != ''">del_flag,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
            <if test="createBy != null">create_by,</if>
@@ -240,6 +284,23 @@
            <if test="longSendTime != null ">long_send_time,</if>
            <if test="serviceType != null ">service_type,</if>
            <if test="score != null ">score,</if>
            <if test="submit != null ">submit,</if>
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">
                leavehospitaldistrictcode,
            </if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">
                leavehospitaldistrictname,
            </if>
            <if test="drname != null ">drname,</if>
            <if test="drcode != null ">drcode,</if>
            <if test="endtime != null ">endtime,</if>
            <if test="starttime != null ">starttime,</if>
            <if test="excep != null ">excep,</if>
            <if test="nurseName != null ">nurse_name,</if>
            <if test="nurseId != null ">nurse_id,</if>
            <if test="remark != null ">remark,</if>
            <if test="suggest != null ">suggest,</if>
            <if test="sendstate != null ">sendstate,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="sendname != null">#{sendname},</if>
@@ -262,7 +323,6 @@
            <if test="pulltime != null">#{pulltime},</if>
            <if test="deptcode != null">#{deptcode},</if>
            <if test="labelstatus != null">#{labelstatus},</if>
            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
            <if test="createBy != null">#{createBy},</if>
@@ -294,6 +354,23 @@
            <if test="longSendTime != null ">#{longSendTime},</if>
            <if test="serviceType != null ">#{serviceType},</if>
            <if test="score != null ">#{score},</if>
            <if test="submit != null ">#{submit},</if>
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">
                #{leavehospitaldistrictcode},
            </if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">
                #{leavehospitaldistrictname},
            </if>
            <if test="drname != null ">#{drname},</if>
            <if test="drcode != null ">#{drcode},</if>
            <if test="endtime != null ">#{endtime},</if>
            <if test="starttime != null ">#{starttime},</if>
            <if test="excep != null ">#{excep},</if>
            <if test="nurseName != null ">#{nurseName},</if>
            <if test="nurseId != null ">#{nurseId},</if>
            <if test="remark != null ">#{remark},</if>
            <if test="suggest != null ">#{suggest},</if>
            <if test="sendstate != null ">#{sendstate},</if>
        </trim>
    </insert>
@@ -320,7 +397,6 @@
            <if test="pulltime != null">pulltime = #{pulltime},</if>
            <if test="deptcode != null">deptcode = #{deptcode},</if>
            <if test="labelstatus != null">labelstatus = #{labelstatus},</if>
            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
@@ -353,6 +429,22 @@
            <if test="sendstate != null ">sendstate = #{sendstate},</if>
            <if test="serviceType != null ">service_type = #{serviceType},</if>
            <if test="score != null ">score = #{score},</if>
            <if test="submit != null ">submit = #{submit},</if>
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">leavehospitaldistrictcode
                = #{leavehospitaldistrictcode},
            </if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">leavehospitaldistrictname
                = #{leavehospitaldistrictname},
            </if>
            <if test="drname != null ">drname = #{drname},</if>
            <if test="drcode != null ">drcode = #{drcode},</if>
            <if test="starttime != null ">starttime = #{starttime},</if>
            <if test="endtime != null ">endtime = #{endtime},</if>
            <if test="excep != null ">excep = #{excep},</if>
            <if test="nurseName != null ">nurse_name=#{nurseName},</if>
            <if test="nurseId != null ">nurse_id=#{nurseId},</if>
            <if test="remark != null ">remark=#{remark},</if>
            <if test="suggest != null ">suggest=#{suggest},</if>
        </trim>
        where id = #{id}
    </update>
@@ -380,7 +472,6 @@
            <if test="pulltime != null">pulltime = #{pulltime},</if>
            <if test="deptcode != null">deptcode = #{deptcode},</if>
            <if test="labelstatus != null">labelstatus = #{labelstatus},</if>
            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
@@ -412,7 +503,22 @@
            <if test="longSendTime != null ">long_send_time = #{longSendTime},</if>
            <if test="serviceType != null ">service_type = #{serviceType},</if>
            <if test="score != null ">score = #{score},</if>
            <if test="submit != null ">submit = #{submit},</if>
            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">leavehospitaldistrictcode
                = #{leavehospitaldistrictcode},
            </if>
            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">leavehospitaldistrictname
                = #{leavehospitaldistrictname},
            </if>
            <if test="drname != null ">drname = #{drname},</if>
            <if test="drcode != null ">drcode = #{drcode},</if>
            <if test="endtime != null ">endtime = #{endtime},</if>
            <if test="starttime != null ">starttime = #{starttime},</if>
            <if test="excep != null ">excep = #{excep},</if>
            <if test="nurseName != null ">nurse_name=#{nurseName},</if>
            <if test="nurseId != null ">nurse_id=#{nurseId},</if>
            <if test="remark != null ">remark=#{remark},</if>
            <if test="suggest != null ">suggest=#{suggest},</if>
        </trim>
        where patid = #{patid} and taskid = #{taskid}
    </update>
@@ -439,6 +545,7 @@
               sendname,
               long_send_time,
               phone,
               suggest,
               sex,
               age,
               openid,
@@ -485,6 +592,16 @@
               service_type,
               deptname,
               score,
               drname,
               drcode,
               starttime,
               endtime,
               leavehospitaldistrictcode,
               leavehospitaldistrictname,
               excep,
               nurse_id,
               nurse_name,
               remark,
               diagname
        FROM service_subtask,
             JSON_TABLE(send_time_slot, '$[*]' COLUMNS (
smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml
@@ -20,6 +20,7 @@
        <result property="type" column="type"/>
        <result property="typename" column="typename"/>
        <result property="deptcode" column="deptcode"/>
        <result property="deptname" column="deptname"/>
        <result property="delFlag" column="del_flag"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
@@ -46,6 +47,10 @@
        <result property="textParam" column="text_param"/>
        <result property="serviceType" column="service_type"/>
        <result property="longTask" column="long_task"/>
        <result property="kcb" column="kcb"/>
        <result property="jsy" column="jsy"/>
        <result property="leavehospitaldistrictcode" column="leavehospitaldistrictcode"/>
        <result property="leavehospitaldistrictname" column="leavehospitaldistrictname"/>
    </resultMap>
    <sql id="selectServiceTaskVo">
@@ -75,6 +80,7 @@
               hosp_type,
               typename,
               deptcode,
               deptname,
               del_flag,
               update_by,
               update_time,
@@ -89,6 +95,10 @@
               send_state,
               send_time_slot,
               service_type,
               kcb,
               jsy,
               leavehospitaldistrictcode,
               leavehospitaldistrictname,
               orgid
        from service_task
    </sql>
@@ -125,6 +135,7 @@
            </if>
            <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if>
            <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if>
            <if test="isupload != null ">and isupload = #{isupload}</if>
            <if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
            <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
@@ -133,6 +144,8 @@
            <if test="libtemplatename != null  and libtemplatename != ''">and libtemplatename = #{libtemplatename}</if>
            <if test="createBy != null  and createBy != ''">and create_by = #{createBy}</if>
            <if test="sendState != null  ">and send_state = #{sendState}</if>
            <if test="leavehospitaldistrictname != null  ">and leavehospitaldistrictname = #{leavehospitaldistrictname}</if>
            <if test="leavehospitaldistrictcode != null  ">and leavehospitaldistrictcode = #{leavehospitaldistrictcode}</if>
        </where>
        order by update_time desc,taskid desc
    </select>
@@ -160,6 +173,7 @@
            <if test="type != null">type,</if>
            <if test="typename != null">typename,</if>
            <if test="deptcode != null">deptcode,</if>
            <if test="deptname != null">deptname,</if>
            <if test="delFlag != null and delFlag != ''">del_flag,</if>
            <if test="updateBy != null">update_by,</if>
            <if test="updateTime != null">update_time,</if>
@@ -174,7 +188,6 @@
            <if test="sendType != null">send_type,</if>
            <if test="sendState != null">send_state,</if>
            <if test="hospType != null  and hospType != ''">hosp_type,</if>
            <if test="taskDesc != null  and taskDesc != ''">task_desc,</if>
            <if test="libtemplateid != null ">libtemplateid,</if>
            <if test="libtemplatename != null  and libtemplatename != ''">libtemplatename,</if>
@@ -187,6 +200,10 @@
            <if test="textParam != null and textParam != ''">text_param,</if>
            <if test="serviceType != null  and serviceType != ''">service_type,</if>
            <if test="longTask != null  and longTask != ''">long_task,</if>
            <if test="kcb != null  and kcb != ''">kcb,</if>
            <if test="jsy != null  and jsy != ''">jsy,</if>
            <if test="leavehospitaldistrictname != null  ">leavehospitaldistrictname,</if>
            <if test="leavehospitaldistrictcode != null  ">leavehospitaldistrictcode,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="taskName != null">#{taskName},</if>
@@ -203,6 +220,7 @@
            <if test="type != null">#{type},</if>
            <if test="typename != null">#{typename},</if>
            <if test="deptcode != null">#{deptcode},</if>
            <if test="deptname != null">#{deptname},</if>
            <if test="delFlag != null and delFlag != ''">#{delFlag},</if>
            <if test="updateBy != null">#{updateBy},</if>
            <if test="updateTime != null">#{updateTime},</if>
@@ -229,6 +247,10 @@
            <if test="textParam != null and textParam != ''">#{textParam},</if>
            <if test="serviceType != null  and serviceType != ''">#{serviceType},</if>
            <if test="longTask != null  and longTask != ''">#{longTask},</if>
            <if test="kcb != null  and kcb != ''">#{kcb},</if>
            <if test="jsy != null  and jsy != ''">#{jsy},</if>
            <if test="leavehospitaldistrictname != null  ">#{leavehospitaldistrictname},</if>
            <if test="leavehospitaldistrictcode != null  ">#{leavehospitaldistrictcode},</if>
        </trim>
    </insert>
@@ -249,6 +271,7 @@
            <if test="type != null">type = #{type},</if>
            <if test="typename != null">typename = #{typename},</if>
            <if test="deptcode != null">deptcode = #{deptcode},</if>
            <if test="deptname != null">deptname = #{deptname},</if>
            <if test="delFlag != null and delFlag != ''">del_flag = #{delFlag},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
@@ -275,6 +298,10 @@
            <if test="textParam != null and textParam != ''">text_param=#{textParam},</if>
            <if test="serviceType != null  and serviceType != ''">service_type = #{serviceType},</if>
            <if test="longTask != null  and longTask != ''">long_task = #{longTask},</if>
            <if test="kcb != null  and kcb != ''">kcb = #{kcb},</if>
            <if test="jsy != null  and jsy != ''">kcb = #{jsy},</if>
            <if test="leavehospitaldistrictname != null  ">leavehospitaldistrictname = #{leavehospitaldistrictname},</if>
            <if test="leavehospitaldistrictcode != null  ">leavehospitaldistrictcode = #{leavehospitaldistrictcode},</if>
        </trim>
        where taskid = #{taskid}
    </update>
smartor/src/main/resources/mapper/smartor/SvyTaskTemplateMapper.xml
@@ -41,12 +41,18 @@
        <result property="prologue" column="prologue"/>
        <result property="instruction" column="instruction"/>
        <result property="conclusion" column="conclusion"/>
        <result property="deptCode" column="dept_code"/>
        <result property="longTemp" column="long_temp"/>
        <result property="sendDay" column="send_day"/>
    </resultMap>
    <sql id="selectSvyTaskTemplateVo">
        select id,
               templateid,
               prologue,
               dept_code,
               long_temp,
               send_day,
               instruction,
               conclusion,
               categoryid,
@@ -87,6 +93,7 @@
            resultMap="SvyTaskTemplateResult">
        <include refid="selectSvyTaskTemplateVo"/>
        <where>
            del_flag=0
            <if test="templateid != null ">and templateid = #{templateid}</if>
            <if test="categoryid != null ">and categoryid = #{categoryid}</if>
            <if test="svycode != null  and svycode != ''">and svycode = #{svycode}</if>
@@ -116,6 +123,9 @@
            <if test="valueType != null  and valueType != ''">and value_type = #{valueType}</if>
            <if test="reply != null  and reply != ''">and reply = #{reply}</if>
            <if test="taskid != null ">and taskid = #{taskid}</if>
            <if test="deptCode != null ">and dept_code = #{deptCode}</if>
            <if test="longTemp != null ">and long_temp = #{longTemp}</if>
            <if test="sendDay != null ">and send_day = #{sendDay}</if>
        </where>
    </select>
@@ -163,6 +173,9 @@
            <if test="prologue != null">prologue,</if>
            <if test="instruction != null">instruction,</if>
            <if test="conclusion != null">conclusion,</if>
            <if test="deptCode != null ">dept_code,</if>
            <if test="longTemp != null ">long_temp,</if>
            <if test="sendDay != null ">send_day,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="templateid != null">#{templateid},</if>
@@ -200,6 +213,9 @@
            <if test="prologue != null">#{prologue},</if>
            <if test="instruction != null">#{instruction},</if>
            <if test="conclusion != null">#{conclusion},</if>
            <if test="deptCode != null ">#{deptCode},</if>
            <if test="longTemp != null ">#{longTemp},</if>
            <if test="sendDay != null ">#{sendDay},</if>
        </trim>
    </insert>
@@ -241,6 +257,9 @@
            <if test="prologue != null">prologue = #{prologue},</if>
            <if test="instruction != null">instruction = #{instruction},</if>
            <if test="conclusion != null">conclusion = #{conclusion},</if>
            <if test="deptCode != null ">dept_code = #{deptCode},</if>
            <if test="longTemp != null ">long_temp = #{longTemp},</if>
            <if test="sendDay != null ">send_day = #{sendDay},</if>
        </trim>
        where id = #{id}
    </update>
smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml
@@ -9,6 +9,8 @@
        <result property="userId" column="user_id"/>
        <result property="deptId" column="dept_id"/>
        <result property="delFlag" column="del_flag"/>
        <result property="deptCode" column="dept_code"/>
        <result property="deptType" column="dept_type"/>
        <result property="createTime" column="create_time"/>
        <result property="updateTime" column="update_time"/>
    </resultMap>
@@ -24,7 +26,14 @@
    </resultMap>
    <sql id="selectSysUserDeptVo">
        select id, user_id, dept_id, del_flag, create_time, update_time
        select id,
               user_id,
               dept_id,
               del_flag,
               create_time,
               update_time,
               dept_code,
               dept_type
        from sys_user_dept
    </sql>
@@ -73,6 +82,12 @@
            <if test="updateTime != null ">
                update_time,
            </if>
            <if test="deptType != null ">
                dept_type,
            </if>
            <if test="deptCode != null ">
                dept_code,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="userId != null">#{userId},
@@ -87,6 +102,12 @@
            </if>
            <if test="updateTime != null ">
                #{updateTime},
            </if>
            <if test="deptType != null ">
                #{deptType},
            </if>
            <if test="deptCode != null ">
                #{deptCode},
            </if>
        </trim>
    </insert>
@@ -109,6 +130,12 @@
            <if test="updateTime != null ">
                update_time = #{updateTime},
            </if>
            <if test="deptType != null ">
                dept_type = #{deptType},
            </if>
            <if test="deptCode != null ">
                dept_code = #{deptCode},
            </if>
        </trim>
        where id = #{id}
    </update>