From 55f5271f893a25a7be671b24938e49976936a67b Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期一, 29 九月 2025 18:30:00 +0800 Subject: [PATCH] 新增Orgid --- smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java | 319 +++ ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java | 96 smartor/src/main/java/com/smartor/domain/SvyTaskAnswer.java | 6 .idea/encodings.xml | 30 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java | 31 smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java | 19 ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java | 13 ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java | 14 smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml | 9 ruoyi-quartz/pom.xml | 8 smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospReqVO.java | 2 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java | 70 smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java | 158 + smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml | 4 ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml | 288 +- smartor/src/main/java/com/smartor/service/IServiceSubtaskAnswerService.java | 2 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java | 254 ++ ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java | 51 smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java | 73 smartor/src/main/resources/mapper/smartor/SysDeptMapper.xml | 37 .idea/jarRepositories.xml | 6 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsRecordsServiceImpl.java | 1 smartor/src/main/java/com/smartor/domain/ServiceSubtaskPreachform.java | 89 + smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml | 9 smartor/src/main/java/com/smartor/common/LSHospTokenUtil.java | 15 smartor/src/main/java/com/smartor/domain/ServiceTaskScriptQues.java | 23 ruoyi-admin/src/main/resources/application.yml | 6 smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java | 6 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java | 20 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseDictOperationController.java | 5 smartor/src/main/java/com/smartor/domain/PatMedOuthosp.java | 9 smartor/src/main/java/com/smartor/mapper/SysDept2Mapper.java | 2 smartor/src/main/java/com/smartor/domain/ServiceTask.java | 8 smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml | 28 smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java | 3 ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java | 1004 ++++++----- smartor/src/main/java/com/smartor/domain/ServiceSubTaskMYDAnswerReq.java | 30 ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java | 2 ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java | 3 ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml | 3 smartor/src/main/java/com/smartor/domain/PatArchiveReq.java | 2 smartor/src/main/java/com/smartor/domain/ServiceSubtask.java | 15 smartor/src/main/resources/mapper/smartor/HNGatherPatArchiveMapper.xml | 2 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 8 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java | 35 ruoyi-admin/src/main/resources/application-sltd.yml | 5 smartor/src/main/java/com/smartor/service/impl/ServiceTelInfoServiceImpl.java | 2 smartor/src/main/java/com/smartor/service/IHNGatherPatArchiveService.java | 2 smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java | 4 ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java | 28 ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml | 2 smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java | 55 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java | 1 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java | 546 ++--- ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceExternalController.java | 7 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java | 28 smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java | 4 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java | 3 smartor/src/main/java/com/smartor/service/impl/HNGatherPatArchiveServiceImpl.java | 8 ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java | 44 smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java | 2 smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java | 11 ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java | 10 smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java | 7 smartor/src/main/java/com/smartor/service/IServiceSLTDHealthcareRecordService.java | 19 ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml | 2 ruoyi-admin/pom.xml | 5 smartor/src/main/java/com/smartor/domain/ServiceSLTDDeptReqVO.java | 48 ruoyi-common/src/main/java/com/ruoyi/common/enums/ServiceFromEnum.java | 2 smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 175 + /dev/null | 57 smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java | 23 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java | 862 +++++---- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 73 smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java | 2 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java | 5 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java | 5 smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml | 2 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSLTDHealthcareRecordController.java | 21 ruoyi-admin/src/main/resources/application-druid.yml | 42 ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java | 10 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java | 25 smartor/src/main/java/com/smartor/service/IServiceTaskService.java | 2 smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java | 40 84 files changed, 3,157 insertions(+), 1,850 deletions(-) diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 19277dd..9166430 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -2,8 +2,30 @@ <project version="4"> <component name="Encoding"> <file url="file://$PROJECT_DIR$/ruoyi-admin/src/main/java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskPreachformController.java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/ruoyi-admin/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/Hello.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/HelloResponse.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/I5GReply.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/I5GReplyResponse.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/I5GReport.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/I5GReportResponse.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/I5GSearchNumber.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/I5GSearchNumberResponse.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/I5GSend.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/I5GSendResponse.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/SMSGetNumberResponse.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/SMSGetTemplateList.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/SMSGetUserList.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/SMSGetUserListResponse.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/SMSSaveContent.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/SMSSaveContentResponse.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/SMSVerify.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/SMSVerifyPrivate.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/SMSVerifyPrivateResponse.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/SMSVerifyResponse.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/java/com/ruoyi/common/dx/SmsServiceSoap.java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/ruoyi-common/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/ruoyi-framework/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/ruoyi-framework/src/main/resources" charset="UTF-8" /> @@ -14,8 +36,14 @@ <file url="file://$PROJECT_DIR$/ruoyi-system/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/ruoyi-system/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/smartor/src/main/java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/smartor/src/main/java/com/smartor/domain/ServiceSubtaskPreachform.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/smartor/src/main/java/com/smartor/service/IServiceSubtaskPreachformService.java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskPreachformServiceImpl.java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/smartor/src/main/resources" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/smartor/src/main/resources/mapper/smartor/ServiceSubtaskPreachformMapper.xml" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" /> + <file url="PROJECT" charset="GBK" /> </component> -</project> \ No newline at end of file +</project> diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml index 24d19a8..07de0f8 100644 --- a/.idea/jarRepositories.xml +++ b/.idea/jarRepositories.xml @@ -49,12 +49,12 @@ <remote-repository> <option name="id" value="central" /> <option name="name" value="central" /> - <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" /> + <option name="url" value="http://repo2.maven.org/maven2/" /> </remote-repository> <remote-repository> <option name="id" value="central" /> <option name="name" value="central" /> - <option name="url" value="http://repo2.maven.org/maven2/" /> + <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" /> </remote-repository> <remote-repository> <option name="id" value="jcenter" /> @@ -97,4 +97,4 @@ <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" /> </remote-repository> </component> -</project> \ No newline at end of file +</project> diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 8f2bf2c..0e049db 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -166,6 +166,11 @@ <version>5.1.0</version> </dependency> <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-compress</artifactId> + <version>1.21</version> + </dependency> + <dependency> <groupId>cn.easyproject</groupId> <artifactId>orai18n</artifactId> <version>12.1.0.2.0</version> diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java index f8cc3c4..8ed8bdb 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java @@ -5,6 +5,7 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.dx.MessageSend; import com.ruoyi.common.enums.MsgLSEnum; import com.ruoyi.common.enums.ServiceFromEnum; import com.ruoyi.common.enums.WxGZHEnum; @@ -17,10 +18,7 @@ import com.ruoyi.system.service.ISysConfigService; import com.smartor.common.LSHospTokenUtil; import com.smartor.domain.*; -import com.smartor.mapper.HeLibraryMapper; -import com.smartor.mapper.PatArchiveMapper; -import com.smartor.mapper.ServiceSubtaskMapper; -import com.smartor.mapper.ServiceTaskMapper; +import com.smartor.mapper.*; import com.smartor.service.IBaseSmsaccountService; import com.smartor.service.IServiceOutPathService; import com.smartor.service.IServiceSubtaskRecordService; @@ -36,6 +34,8 @@ import java.io.IOException; import java.security.MessageDigest; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -65,6 +65,7 @@ @Autowired private ServiceSubtaskMapper ivrTaskcallMapper; + @Autowired private HeLibraryMapper heLibraryMapper; @@ -84,13 +85,13 @@ private ServiceSubtaskMapper serviceSubtaskMapper; @Autowired + private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper; + + @Autowired private IServiceSubtaskRecordService serviceSubtaskRecordService; @Autowired IBaseSmsaccountService baseSmsaccountService; - - @Autowired - private ISysConfigService configService; @Value("${xhsmsPath}") private String xhsmsPath; @@ -100,6 +101,9 @@ @Value("${server.port}") private String port; + + @Autowired + private ISysConfigService configService; // 鍒涘缓鍥哄畾澶у皬鐨勭嚎绋嬫睜 private static final ExecutorService executorService = Executors.newFixedThreadPool(10); @@ -166,536 +170,572 @@ //鍒ゆ柇涓�涓媍ommonTaskcallMQ涓殑stopstate鏄惁涓巌vr_task涓殑涓�鑷达紝涓嶄竴鑷达紝鍒欒鏄庢槸鏆傚仠浜� ServiceTask ivrTask1 = ivrTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid()); -// if (ivrTask1.getStopState() != commonTaskcallMQ.getStopState()) { -// //灏嗘秷鎭粠闃熷垪涓墧闄� -// return; -// } + //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭� + ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); + serviceSubtaskVO.setTaskid(commonTaskcallMQ.getTaskid()); + serviceSubtaskVO.setSendstate(2L); + List<ServiceSubtask> selectServiceSubtaskList = ivrTaskcallMapper.selectServiceSubtaskList(serviceSubtaskVO); - if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) { - //濡備綍浠诲姟鍙戦�佹柟寮忎笉涓虹┖ - String[] split = commonTaskcallMQ.getPreachform().split(","); - log.info("split鐨勫�间负锛歿}", split); + for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { + //鍏堝垽鏂偅鑰呮槸涓嶆槸杩樿鍙戦�� + PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(serviceSubtask.getPatid()); + if (!Objects.isNull(patArchive) && patArchive.getNotrequiredFlag() == "1") { + //涓嶉渶瑕佸彂閫� + serviceSubtask.setResult("鎮h�呬笉闇�瑕侀殢璁�"); + serviceSubtask.setRemark(patArchive.getNotrequiredreason()); + serviceSubtask.setSendstate(4L); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + setFailPreachForm(serviceSubtask, "-1", "涓嶉渶瑕佹墽琛�", "6"); + continue; + } - //瀹氫箟涓�涓泦鍚堬紝鐢ㄤ笌瀛樻病鏈夋墽琛岀殑瀛愪换鍔D - List<Long> subIds = new ArrayList<>(); - //涓存椂瀛樻病鏈夋墽琛岀殑瀛愪换鍔D - List<Long> lssubIds = new ArrayList<>(); - //鏄惁灏嗗叏閮ㄦ偅鑰呰�呭彂閫佸畬 - Boolean isSend = false; + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + //鑾峰彇鍙戦�佹柟寮� + String sendPreachform = getSendPreachform(serviceSubtaskPreachform, serviceSubtask); + if (sendPreachform.equals("-1") || serviceSubtask.getSendstate() == 6 || serviceSubtask.getSendstate() == 5 || serviceSubtask.getSendstate() == 4) { + //璇存槑宸茬粡鍏ㄩ儴閬嶅巻瀹屼簡锛屽綋鍓嶇殑鎵ц鏂瑰紡搴忓彿鏄渶鍚庝竴涓簡 鎴栬�� 璇ユ偅鑰呭凡缁忛殢璁跨粨鏉燂紙鎴愬姛鎴栧け璐ヤ簡鎴栦笉鎵ц锛� + continue; + } - aa: - for (String serviceFrom : split) { - String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom)); - if (isSend == true) { - break aa; - } + String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(sendPreachform)); + if (descByCode.equals("鐢佃瘽")) { + try { + ServiceTask ivrTask = ivrTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); + if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) { + //濡備綍浠诲姟琚�滄殏鍋溾�濇垨鈥滅粓姝⑩�� + break; + } + if (org.apache.commons.lang3.StringUtils.isEmpty(serviceSubtask.getPhone())) { + serviceSubtask.setCurrentPreachform(sendPreachform); + serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime(), serviceSubtask.getCurrentPreachform())); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + setFailPreachForm(serviceSubtask, sendPreachform, "鎵嬫満鍙蜂负绌�", "4"); + continue; + } - //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭� - ServiceSubtaskVO ivrTaskcall = new ServiceSubtaskVO(); - ivrTaskcall.setTaskid(commonTaskcallMQ.getTaskid()); - ivrTaskcall.setSendstate(1L); - List<ServiceSubtask> selectServiceSubtaskList = ivrTaskcallMapper.selectServiceSubtaskList(ivrTaskcall); - if (CollectionUtils.isEmpty(selectServiceSubtaskList)) { + //鑾峰彇鍒皏alue鍊兼渶灏戠殑key + String key = getKey(); + if (commonTaskcallMQ.getSendType().equals("2")) { + //璇存槑鏄珛鍗冲彂閫� + List<String> list = new ArrayList<>(); + list.add(serviceSubtask.getId().toString()); + log.info("缂撳瓨涓璫ache-0鐨勫�间负锛歿}", list); + redisCache.setCacheListLeftAndDistinct("cache-0", list); + } else { + //闈炵珛鍗冲彂閫� + List<String> list = new ArrayList<>(); + list.add(serviceSubtask.getId().toString()); + redisCache.setCacheListLeftAndDistinct(key, list); + } + } catch (Exception exception) { + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); + serviceSubtaskRecord.setPreachform("3"); + serviceSubtaskRecord.setResult("fail"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佸け璐�"); + log.error("闃熷垪浠诲姟鐢佃瘽鍙戦�佸け璐ワ細{}", exception.getMessage()); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + //灏嗙數璇濈姸鎬佽缃负澶辫触 + setFailPreachForm(serviceSubtask, sendPreachform, "闃熷垪浠诲姟鐢佃瘽鍙戦�佸け璐�", "5"); + continue; } - if (descByCode.equals("鐢佃瘽")) { - for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { - //鍏堝垽鏂竴涓嬶紝subIds鏄惁涓虹┖锛屽鏋滀笉涓虹┖锛屽彧鎵цsubIds閲岀殑鎮h�� - if (CollectionUtils.isNotEmpty(subIds)) { - boolean contains = subIds.contains(serviceSubtask.getId()); - //濡傛灉contains涓嶄负true,璇存槑褰撳墠鐨勬偅鑰呭凡缁忓彂閫佹垚鍔燂紝鐩存帴寰幆涓嬩竴涓汉灏辫 - if (!contains) continue; + //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓� + setFailPreachForm(serviceSubtask, sendPreachform, "闃熷垪浠诲姟鐢佃瘽鍙戦�佹垚鍔�", "2"); + + //浠诲姟鍙戦�佽褰� + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); + serviceSubtaskRecord.setPreachform("3"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佹垚鍔�"); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + + } else if (descByCode.equals("鐭俊")) { + //鐭俊 + //瀵箄rl涓袱涓弬鏁板姞瀵� + RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); + String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); + + if (org.apache.commons.lang3.StringUtils.isEmpty(serviceSubtask.getPhone())) { + setFailPreachForm(serviceSubtask, sendPreachform, "鎵嬫満鍙蜂负绌�", "4"); + continue; + } + + try { + String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); + String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key); + SendMagParam sendMagParam = new SendMagParam(); + sendMagParam.setType("4"); + if (type == 1) { + //闅忚 + ServiceOutPath serviceOutPath = new ServiceOutPath(); + serviceOutPath.setParam1(taskId); + serviceOutPath.setParam2(patid); + serviceOutPath.setParam6(subId); + serviceOutPath.setCreateTime(new Date()); + iServiceOutPathService.insertServiceOutPath(serviceOutPath); +// sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "¶m2=" + patid + "¶m5=false"); + //杞垚16杩涘埗 + String format = String.format("%03X", serviceOutPath.getId()); + serviceOutPath.setRadix(format); + serviceOutPath.setUpdateTime(new Date()); + iServiceOutPathService.updateServiceOutPath(serviceOutPath); + sendMagParam.setPhone(serviceSubtask.getPhone()); + sendMagParam.setUrl(ip + ":" + req_path + "/sf?p=" + format); + if (visitHosp == 2) { + sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); + } else if (visitHosp == 1) { + sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌闅忚璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�"); } - try { - ServiceTask ivrTask = ivrTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); - if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) { - //濡備綍浠诲姟琚�滄殏鍋溾�濇垨鈥滅粓姝⑩�� - break; - } - //鑾峰彇鍒皏alue鍊兼渶灏戠殑key - String key = getKey(); - if (commonTaskcallMQ.getSendType().equals("2")) { - //璇存槑鏄珛鍗冲彂閫� - ServiceSubtaskVO serviceSubtask1 = new ServiceSubtaskVO(); - serviceSubtask1.setTaskid(commonTaskcallMQ.getTaskid()); - log.info("缂撳瓨涓璼erviceSubtask1鐨勫�间负锛歿}", serviceSubtask1); - List<String> list = new ArrayList<>(); - List<ServiceSubtask> selectServiceSubtaskList1 = ivrTaskcallMapper.selectServiceSubtaskList(serviceSubtask1); - for (ServiceSubtask serviceSubtask2 : selectServiceSubtaskList1) { - list.add(serviceSubtask2.getId().toString()); - } - log.info("缂撳瓨涓璫ache-0鐨勫�间负锛歿}", list); -// redisCache.setCacheListLeft("cache-0", list); - redisCache.setCacheListLeftAndDistinct("cache-0", list); - } else { - //闈炵珛鍗冲彂閫� - ServiceSubtaskVO serviceSubtask1 = new ServiceSubtaskVO(); - serviceSubtask1.setTaskid(commonTaskcallMQ.getTaskid()); - List<ServiceSubtask> selectServiceSubtaskList1 = ivrTaskcallMapper.selectServiceSubtaskList(serviceSubtask1); - List<String> list = new ArrayList<>(); - for (ServiceSubtask serviceSubtask2 : selectServiceSubtaskList1) { - list.add(serviceSubtask2.getId().toString()); - } -// redisCache.setCacheListLeft(key, list); - redisCache.setCacheListLeftAndDistinct(key, list); - } - } catch (Exception exception) { - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); - serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); - serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); - serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); - serviceSubtaskRecord.setPreachform("3"); - serviceSubtaskRecord.setResult("fail"); - serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecord.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佸け璐�"); - log.error("闃熷垪浠诲姟鐢佃瘽鍙戦�佸け璐ワ細{}", exception.getMessage()); - lssubIds.add(serviceSubtask.getId()); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + } else if (type == 2) { + //闂埜锛堥棶棰橈級 + ServiceOutPath serviceOutPath = new ServiceOutPath(); + serviceOutPath.setParam1(taskId); + serviceOutPath.setParam2(patid); + serviceOutPath.setParam6(subId); +// serviceOutPath.setParam3(URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString())); + serviceOutPath.setParam3(ivrTask1.getTaskName()); + serviceOutPath.setCreateTime(new Date()); + iServiceOutPathService.insertServiceOutPath(serviceOutPath); + String format = String.format("%03X", serviceOutPath.getId()); + serviceOutPath.setRadix(format); + serviceOutPath.setUpdateTime(new Date()); + iServiceOutPathService.updateServiceOutPath(serviceOutPath); +// sendMagParam.setUrl(ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"); + sendMagParam.setPhone(serviceSubtask.getPhone()); + sendMagParam.setUrl(ip + ":" + req_path + "/wt?p=" + format); + //濡傛灉type鏄闊抽殢璁跨殑璇濓紙璇存槑琛ュ伩鍙戦�佹柟寮忎腑鏈夌數璇濋殢璁跨殑鏂瑰紡锛岃繖閲岀殑澶栭摼灏卞湴鍧�鍙兘鐢�/sf锛� + if (serviceSubtask.getType().equals("1")) + sendMagParam.setUrl(ip + ":" + req_path + "/sf?p=" + format); + if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { + sendMagParam.setContent("銆愭櫙瀹佺暡鏃忚嚜娌诲幙浜烘皯鍖婚櫌銆戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); + } else if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { + sendMagParam.setContent("銆愪附姘翠腑鍖婚櫌銆戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); + } else sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�"); + } else if (type == 3) { + //瀹f暀 + ServiceOutPath serviceOutPath = new ServiceOutPath(); + serviceOutPath.setParam1(taskId); + serviceOutPath.setParam2(patid); + serviceOutPath.setParam6(subId); + serviceOutPath.setParam3(ivrTask1.getTaskName()); + serviceOutPath.setCreateTime(new Date()); + iServiceOutPathService.insertServiceOutPath(serviceOutPath); + String format = String.format("%03X", serviceOutPath.getId()); + serviceOutPath.setRadix(format); + serviceOutPath.setUpdateTime(new Date()); + iServiceOutPathService.updateServiceOutPath(serviceOutPath); + //闇�瑕侀�氳繃妯℃澘ID鍘诲垽鏂鍙戠殑鍐呭鏄鏁欒繕鏄�氱煡 + HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid()); + if (heLibrary.getHetype().equals("1")) { + sendMagParam.setPhone(serviceSubtask.getPhone()); + sendMagParam.setUrl(ip + ":" + req_path + "/xj?p=" + format); + if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { + sendMagParam.setContent("銆愭櫙瀹佺暡鏃忚嚜娌诲幙浜烘皯鍖婚櫌銆戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); + } else if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { + sendMagParam.setContent("銆愪附姘翠腑鍖婚櫌銆戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); + } else + sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); + } else { + //閫氱煡 + sendMagParam.setPhone(serviceSubtask.getPhone()); + sendMagParam.setContent(heLibrary.getPreachcontent()); + } + } + + //鐭俊杩橀渶瑕佹ā鏉� + String s = null; + if (visitHosp == 1) { + //鏂板崕鐨勭煭淇″彂閫佹柟寮� + Map<String, String> req = new HashMap<>(); + req.put("phone", sendMagParam.getPhone()); + req.put("content", sendMagParam.getContent()); + s = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req)); + } else if (visitHosp == 2) { + String url = configService.selectConfigByKey("token.360", serviceSubtask.getOrgid()); + //涓芥按鐨勭煭淇″彂閫佹柟寮� + Map<String, String> map = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid()); + String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid(), url); + log.info("-----------token鐨勫�间负锛歿}", token); + if (ObjectUtils.isNotEmpty(map) && StringUtils.isEmpty(map.get("address"))) { + serviceSubtask.setCurrentPreachform(sendPreachform); + serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime(), serviceSubtask.getCurrentPreachform())); + setFailPreachForm(serviceSubtask, descByCode, "鐭俊鍙戦�佸け璐�,璇ユ満鏋勬病鏈夐厤缃煭淇″湴鍧�", "5"); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); continue; } + log.info("---------mq涓芥按鐭俊鍙戦�佸叆鍙俛ddress锛歿}, sendMagParam:{}, orgid:{}-------", map.get("address"), sendMagParam, serviceSubtask.getOrgid()); + String dxCode = getDXCode(map.get("address"), sendMagParam.getPhone(), sendMagParam.getContent(), map.get("sendPersonId"), map.get("sendPersonName"), MsgLSEnum.getHeaderByCode(serviceSubtask.getOrgid()), token); + log.info("---------涓芥按鐭俊鍙戦�佺粨鏋滐細{}-------", dxCode); + ObjectMapper objectMapper = new ObjectMapper(); + Map<String, Object> textParam = objectMapper.readValue(dxCode, Map.class); + String code = textParam.get("Code").toString(); + if (code.equals("0")) { + s = "true"; + } else { + setFailPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�", "5"); + throw new BaseException("鐭俊鍙戦�佸け璐�"); + } + } else if (visitHosp == 3) { + //鐪佺珛鍚屽痉鐨勭煭淇″彂閫佹柟寮� + JSONObject data = MessageSend.sendMsg(sendMagParam.getContent(), "2", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); + String code = data.get("code").toString(); + if (StringUtils.isNotEmpty(code) && code.equals("00000")) { + s = "true"; + } else { + setFailPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�", "5"); + throw new BaseException("鐭俊鍙戦�佸け璐�"); + } + } + if (s.equals("true")) { //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓� - String uuid = UUID.randomUUID().toString(); - serviceSubtask.setResult("success"); - serviceSubtask.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佹垚鍔�"); - serviceSubtask.setGuid(uuid); - serviceSubtask.setSendstate(3L); - serviceSubtask.setFinishtime(new Date()); - serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); - + setFailPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佹垚鍔�", "2"); //浠诲姟鍙戦�佽褰� ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); - serviceSubtaskRecord.setUuid(uuid); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); - serviceSubtaskRecord.setPreachform("3"); + serviceSubtaskRecord.setPreachform("5"); serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecord.setRemark("闃熷垪浠诲姟鐢佃瘽鍙戦�佹垚鍔�"); + serviceSubtaskRecord.setResult("success"); + serviceSubtaskRecord.setRemark("鐭俊鍙戦�佹垚鍔�"); serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + log.error("serviceSubtaskRecord淇濆瓨鎴愬姛浜嗗悧锛燂細{}", serviceSubtaskRecord); + } else { + //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓� + setFailPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�", "5"); } - if (CollectionUtils.isEmpty(lssubIds)) { - //濡傛灉鈥滀复鏃跺瓙浠诲姟鈥濅负绌猴紝璇存槑鍏ㄥ彂閫佸畬浜� - isSend = true; - } - //灏嗗瓙浠诲姟ID娓呯┖锛屽皢鈥滀复鏃跺瓙浠诲姟鈥濇暟鎹� 鏀惧埌 鈥滃瓙浠诲姟鈥� 涓� - subIds.clear(); - subIds.addAll(lssubIds); - lssubIds.clear(); - } else if (descByCode.equals("澶氬獟浣�")) { - //澶氬獟浣� + } catch (Exception e) { + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); + serviceSubtaskRecord.setPreachform("4"); + serviceSubtaskRecord.setResult("fail"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setRemark("鐭俊鍙戦�佸け璐�"); + log.error("鐭俊鍙戦�佸け璐ワ細{}", e.getMessage()); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + setFailPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�", "5"); continue; - } else if (descByCode.equals("绾歌川")) { - //绾歌川 - continue; - } else if (descByCode.equals("鐭俊")) { - //鐭俊 - //瀵箄rl涓袱涓弬鏁板姞瀵� - RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); - String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); + } - for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { - //鍏堝垽鏂竴涓嬶紝subIds鏄惁涓虹┖锛屽鏋滀笉涓虹┖锛屽彧鎵цsubIds閲岀殑鎮h�� - if (CollectionUtils.isNotEmpty(subIds)) { - boolean contains = subIds.contains(serviceSubtask.getId()); - //濡傛灉contains涓嶄负true,璇存槑褰撳墠鐨勬偅鑰呭凡缁忓彂閫佹垚鍔燂紝鐩存帴寰幆涓嬩竴涓汉灏辫 - if (!contains) continue; - } + } else if (descByCode.equals("鍏紬鍙�")) { + //鍏紬鍙� + RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); + String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); + String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); - try { - String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); - String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key); - SendMagParam sendMagParam = new SendMagParam(); - sendMagParam.setType("4"); - if (type == 1) { - //闅忚 - ServiceOutPath serviceOutPath = new ServiceOutPath(); - serviceOutPath.setParam1(taskId); - serviceOutPath.setParam2(patid); - serviceOutPath.setParam6(subId); - serviceOutPath.setCreateTime(new Date()); - iServiceOutPathService.insertServiceOutPath(serviceOutPath); -// sendMagParam.setUrl(ip + ":" + req_path + "/followvisit/particty?param1=" + taskId + "¶m2=" + patid + "¶m5=false"); - //杞垚16杩涘埗 - String format = String.format("%03X", serviceOutPath.getId()); - serviceOutPath.setRadix(format); - serviceOutPath.setUpdateTime(new Date()); - iServiceOutPathService.updateServiceOutPath(serviceOutPath); - sendMagParam.setPhone(serviceSubtask.getPhone()); - sendMagParam.setUrl(ip + ":" + req_path + "/sf?p=" + format); - if (visitHosp == 2) { - sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); - } else if (visitHosp == 1) { - sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌闅忚璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�"); - } - - } else if (type == 2) { - //闂埜锛堥棶棰橈級 - ServiceOutPath serviceOutPath = new ServiceOutPath(); - serviceOutPath.setParam1(taskId); - serviceOutPath.setParam2(patid); - serviceOutPath.setParam6(subId); -// serviceOutPath.setParam3(URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString())); - serviceOutPath.setParam3(ivrTask1.getTaskName()); - serviceOutPath.setCreateTime(new Date()); - iServiceOutPathService.insertServiceOutPath(serviceOutPath); - String format = String.format("%03X", serviceOutPath.getId()); - serviceOutPath.setRadix(format); - serviceOutPath.setUpdateTime(new Date()); - iServiceOutPathService.updateServiceOutPath(serviceOutPath); -// sendMagParam.setUrl(ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"); - sendMagParam.setPhone(serviceSubtask.getPhone()); - sendMagParam.setUrl(ip + ":" + req_path + "/wt?p=" + format); - if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { - sendMagParam.setContent("銆愭櫙瀹佺暡鏃忚嚜娌诲幙浜烘皯鍖婚櫌銆戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); - } else if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { - sendMagParam.setContent("銆愪附姘翠腑鍖婚櫌銆戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); - } else - sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�"); - } else if (type == 3) { - //瀹f暀 - ServiceOutPath serviceOutPath = new ServiceOutPath(); - serviceOutPath.setParam1(taskId); - serviceOutPath.setParam2(patid); - serviceOutPath.setParam6(subId); - serviceOutPath.setParam3(ivrTask1.getTaskName()); - serviceOutPath.setCreateTime(new Date()); - iServiceOutPathService.insertServiceOutPath(serviceOutPath); - String format = String.format("%03X", serviceOutPath.getId()); - serviceOutPath.setRadix(format); - serviceOutPath.setUpdateTime(new Date()); - iServiceOutPathService.updateServiceOutPath(serviceOutPath); - //闇�瑕侀�氳繃妯℃澘ID鍘诲垽鏂鍙戠殑鍐呭鏄鏁欒繕鏄�氱煡 - HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid()); - if (heLibrary.getHetype().equals("1")) { - sendMagParam.setPhone(serviceSubtask.getPhone()); - sendMagParam.setUrl(ip + ":" + req_path + "/xj?p=" + format); - if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { - sendMagParam.setContent("銆愭櫙瀹佺暡鏃忚嚜娌诲幙浜烘皯鍖婚櫌銆戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); - } else if (serviceSubtask.getOrgid().equals("47255004333112711A1001")) { - sendMagParam.setContent("銆愪附姘翠腑鍖婚櫌銆戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); - } else - sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌瀹f暀璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "鏌ョ湅銆傛劅璋㈡偍閰嶅悎锛�"); - } else { - //閫氱煡 - sendMagParam.setPhone(serviceSubtask.getPhone()); - sendMagParam.setContent(heLibrary.getPreachcontent()); - } - } - //鐭俊杩橀渶瑕佹ā鏉� - String s = null; - if (visitHosp == 1) { - //鏂板崕鐨勭煭淇″彂閫佹柟寮� - Map<String, String> req = new HashMap<>(); - req.put("phone", sendMagParam.getPhone()); - req.put("content", sendMagParam.getContent()); - s = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req)); - } else if (visitHosp == 2) { - String url = configService.selectConfigByKey("token.360",serviceSubtask.getOrgid()); - //涓芥按鐨勭煭淇″彂閫佹柟寮� - Map<String, String> map = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid()); - String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid(),url); - log.info("-----------token鐨勫�间负锛歿}", token); - if (ObjectUtils.isNotEmpty(map) && StringUtils.isEmpty(map.get("address"))) { - ServiceSubtask ss = new ServiceSubtask(); - ss.setResult("error"); - ss.setRemark("鐭俊鍙戦�佸け璐�,璇ユ満鏋勬病鏈夐厤缃煭淇″湴鍧�"); - ss.setSendstate(5L); - ss.setId(serviceSubtask.getId()); -// ss.setFinishtime(new Date()); - serviceSubtaskMapper.updateServiceSubtask(ss); - continue; - } - log.info("---------mq涓芥按鐭俊鍙戦�佸叆鍙俛ddress锛歿}, sendMagParam:{}, orgid:{}-------", map.get("address"), sendMagParam, serviceSubtask.getOrgid()); - String dxCode = getDXCode(map.get("address"), sendMagParam.getPhone(), sendMagParam.getContent(), map.get("sendPersonId"), map.get("sendPersonName"), MsgLSEnum.getHeaderByCode(serviceSubtask.getOrgid()), token); - log.info("---------涓芥按鐭俊鍙戦�佺粨鏋滐細{}-------", dxCode); - ObjectMapper objectMapper = new ObjectMapper(); - Map<String, Object> textParam = objectMapper.readValue(dxCode, Map.class); - String code = textParam.get("Code").toString(); - if (code.equals("0")) { - s = "true"; - } else { - throw new BaseException(null); - } - } - if (s.equals("true")) { - //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓� - String uuid = UUID.randomUUID().toString(); - serviceSubtask.setResult("success"); - serviceSubtask.setRemark("鐭俊鍙戦�佹垚鍔�"); - serviceSubtask.setGuid(uuid); - serviceSubtask.setSendstate(3L); - serviceSubtask.setFinishtime(new Date()); - serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); - - //浠诲姟鍙戦�佽褰� - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); - serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); - serviceSubtaskRecord.setUuid(uuid); - serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); - serviceSubtaskRecord.setPreachform("5"); - serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecord.setResult("success"); - serviceSubtaskRecord.setRemark("鐭俊鍙戦�佹垚鍔�"); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); - log.error("serviceSubtaskRecord淇濆瓨鎴愬姛浜嗗悧锛燂細{}", serviceSubtaskRecord); - } - } catch (Exception e) { - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); - serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); - serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); - serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); - serviceSubtaskRecord.setPreachform("4"); - serviceSubtaskRecord.setResult("fail"); - serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecord.setRemark("鐭俊鍙戦�佸け璐�"); - log.error("鐭俊鍙戦�佸け璐ワ細{}", e.getMessage()); - lssubIds.add(serviceSubtask.getId()); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); - continue; - } - - + try { + SendMagParam sendMagParam = new SendMagParam(); + sendMagParam.setType("5"); + String url = null; + Boolean aBoolean = false; + if (type == 1) { + //闅忚 + ServiceOutPath serviceOutPath = new ServiceOutPath(); + serviceOutPath.setParam1(taskId); + serviceOutPath.setParam2(patid); + serviceOutPath.setCreateTime(new Date()); + iServiceOutPathService.insertServiceOutPath(serviceOutPath); + String format = String.format("%03X", serviceOutPath.getId()); + serviceOutPath.setRadix(format); + serviceOutPath.setUpdateTime(new Date()); + iServiceOutPathService.updateServiceOutPath(serviceOutPath); + url = ip + ":" + req_path + "/sf?p=" + format; + } else if (type == 2) { + //闂埜 + ServiceOutPath serviceOutPath = new ServiceOutPath(); + serviceOutPath.setParam1(taskId); + serviceOutPath.setParam2(patid); + serviceOutPath.setParam3(ivrTask1.getTaskName()); + serviceOutPath.setCreateTime(new Date()); + iServiceOutPathService.insertServiceOutPath(serviceOutPath); + String format = String.format("%03X", serviceOutPath.getId()); + serviceOutPath.setRadix(format); + serviceOutPath.setUpdateTime(new Date()); + iServiceOutPathService.updateServiceOutPath(serviceOutPath); + url = ip + ":" + req_path + "/wt?p=" + format; + //濡傛灉type鏄闊抽殢璁跨殑璇濓紙璇存槑琛ュ伩鍙戦�佹柟寮忎腑鏈夌數璇濋殢璁跨殑鏂瑰紡锛岃繖閲岀殑澶栭摼灏卞湴鍧�鍙兘鐢�/sf锛� + if (serviceSubtask.getType().equals("1")) + sendMagParam.setUrl(ip + ":" + req_path + "/sf?p=" + format); + } else if (type == 3) { + //瀹f暀 + ServiceOutPath serviceOutPath = new ServiceOutPath(); + serviceOutPath.setParam1(taskId); + serviceOutPath.setParam2(patid); + serviceOutPath.setParam3(ivrTask1.getTaskName()); + serviceOutPath.setCreateTime(new Date()); + iServiceOutPathService.insertServiceOutPath(serviceOutPath); + String format = String.format("%03X", serviceOutPath.getId()); + serviceOutPath.setRadix(format); + serviceOutPath.setUpdateTime(new Date()); + iServiceOutPathService.updateServiceOutPath(serviceOutPath); + url = ip + ":" + req_path + "/xj?p=" + format; } - if (CollectionUtils.isEmpty(lssubIds)) { - //濡傛灉鈥滀复鏃跺瓙浠诲姟鈥濅负绌猴紝璇存槑鍏ㄥ彂閫佸畬浜� - isSend = true; + if (StringUtils.isEmpty(patArchive.getPatidHis())) { + serviceSubtask.setCurrentPreachform(sendPreachform); + serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime(), serviceSubtask.getCurrentPreachform())); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + //澶辫触璁板綍 + setFailPreachForm(serviceSubtask, sendPreachform, "鍏紬鍙峰彂閫佸け璐�,his绯荤粺鐨勬偅鑰卛d涓虹┖", "5"); + continue; } - //灏嗗瓙浠诲姟ID娓呯┖锛屽皢鈥滀复鏃跺瓙浠诲姟鈥濇暟鎹� 鏀惧埌 鈥滃瓙浠诲姟鈥� 涓� - subIds.clear(); - subIds.addAll(lssubIds); - lssubIds.clear(); - } else if (descByCode.equals("鍏紬鍙�")) { - //鍏紬鍙� - RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); - String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); - for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { - String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); - try { - SendMagParam sendMagParam = new SendMagParam(); - sendMagParam.setType("5"); - String url = null; - Boolean aBoolean = false; - if (type == 1) { - //闅忚 - ServiceOutPath serviceOutPath = new ServiceOutPath(); - serviceOutPath.setParam1(taskId); - serviceOutPath.setParam2(patid); - serviceOutPath.setCreateTime(new Date()); - iServiceOutPathService.insertServiceOutPath(serviceOutPath); - String format = String.format("%03X", serviceOutPath.getId()); - serviceOutPath.setRadix(format); - serviceOutPath.setUpdateTime(new Date()); - iServiceOutPathService.updateServiceOutPath(serviceOutPath); - url = ip + ":" + req_path + "/sf?p=" + format; - } else if (type == 2) { - //闂埜 - ServiceOutPath serviceOutPath = new ServiceOutPath(); - serviceOutPath.setParam1(taskId); - serviceOutPath.setParam2(patid); -// serviceOutPath.setParam3(URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString())); - serviceOutPath.setParam3(ivrTask1.getTaskName()); - serviceOutPath.setCreateTime(new Date()); - iServiceOutPathService.insertServiceOutPath(serviceOutPath); - String format = String.format("%03X", serviceOutPath.getId()); - serviceOutPath.setRadix(format); - serviceOutPath.setUpdateTime(new Date()); - iServiceOutPathService.updateServiceOutPath(serviceOutPath); - url = ip + ":" + req_path + "/wt?p=" + format; - } else if (type == 3) { - //瀹f暀 - ServiceOutPath serviceOutPath = new ServiceOutPath(); - serviceOutPath.setParam1(taskId); - serviceOutPath.setParam2(patid); - serviceOutPath.setParam3(ivrTask1.getTaskName()); - serviceOutPath.setCreateTime(new Date()); - iServiceOutPathService.insertServiceOutPath(serviceOutPath); - String format = String.format("%03X", serviceOutPath.getId()); - serviceOutPath.setRadix(format); - serviceOutPath.setUpdateTime(new Date()); - iServiceOutPathService.updateServiceOutPath(serviceOutPath); - url = ip + ":" + req_path + "/xj?p=" + format; - } - PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(serviceSubtask.getPatid()); - if (StringUtils.isEmpty(patArchive.getPatidHis())) { - ServiceSubtask ss = new ServiceSubtask(); - ss.setResult("error"); - ss.setRemark("鍏紬鍙峰彂閫佸け璐�,his绯荤粺鐨勬偅鑰卛d涓虹┖"); - ss.setSendstate(5L); - ss.setId(serviceSubtask.getId()); -// ss.setFinishtime(new Date()); - serviceSubtaskMapper.updateServiceSubtask(ss); - continue; - } - //鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D - log.error("鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D锛歿}", patArchive.getOrgid()); - List<String> wxqqxx = WxGZHEnum.getDescByCode(patArchive.getOrgid()); - if (CollectionUtils.isEmpty(wxqqxx) || wxqqxx.size() < 4) { - ServiceSubtask ss = new ServiceSubtask(); - ss.setResult("error"); - ss.setRemark("璇ユ満鏋勭殑鍏紬鍙烽厤缃俊鎭笉鍏紝鏃犳硶閫氳繃鍏紬鍙峰彂閫�"); - ss.setSendstate(5L); - ss.setId(serviceSubtask.getId()); -// ss.setFinishtime(new Date()); - serviceSubtaskMapper.updateServiceSubtask(ss); - continue; - } + //鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D + log.error("鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D锛歿}", patArchive.getOrgid()); + List<String> wxqqxx = WxGZHEnum.getDescByCode(patArchive.getOrgid()); + if (CollectionUtils.isEmpty(wxqqxx) || wxqqxx.size() < 4) { + serviceSubtask.setCurrentPreachform(sendPreachform); + serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime(), serviceSubtask.getCurrentPreachform())); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + + //澶辫触璁板綍 + setFailPreachForm(serviceSubtask, sendPreachform, "璇ユ満鏋勭殑鍏紬鍙烽厤缃俊鎭笉鍏紝鏃犳硶閫氳繃鍏紬鍙峰彂閫�", "5"); + continue; + } - String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskName(), patArchive.getTelcode(), patArchive.getName(), patArchive.getPatidHis(), wxqqxx); - log.error("wxCode鐨勫�间负:{}", wxCode); - Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class); - log.error("map鐨勫�间负:{}", map); - if (!map.isEmpty()) { - serviceSubtask.setResult("success"); - serviceSubtask.setSendstate(3L); - log.error("aBoolean鐨勫�间负:{}", aBoolean); - if (map.get("succ").toString().equals("true")) { - aBoolean = true; - } - if (aBoolean == false) { - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); - serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); - serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); - serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); - serviceSubtaskRecord.setPreachform("5"); - serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecord.setRemark(ObjectUtils.isNotEmpty(map.get("msg")) ? map.get("msg").toString() : null); - lssubIds.add(serviceSubtask.getId()); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); - continue; - } - } - } catch (Exception e) { + String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskName(), patArchive.getTelcode(), patArchive.getName(), patArchive.getPatidHis(), wxqqxx); + log.error("wxCode鐨勫�间负:{}", wxCode); + Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class); + log.error("map鐨勫�间负:{}", map); + if (!map.isEmpty()) { + serviceSubtask.setResult("success"); + serviceSubtask.setSendstate(3L); + log.error("aBoolean鐨勫�间负:{}", aBoolean); + if (map.get("succ").toString().equals("true")) { + aBoolean = true; + } + if (aBoolean == false) { ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); serviceSubtaskRecord.setPreachform("5"); - serviceSubtaskRecord.setResult("fail"); serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecord.setRemark("鍏紬鍙峰彂閫佸け璐�"); - log.error("鍏紬鍙峰彂閫佸け璐ワ細{}", e.getMessage()); - lssubIds.add(serviceSubtask.getId()); + serviceSubtaskRecord.setRemark(ObjectUtils.isNotEmpty(map.get("msg")) ? map.get("msg").toString() : null); serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓� + setFailPreachForm(serviceSubtask, sendPreachform, "鍏紬鍙峰彂閫佸け璐�", "5"); continue; } - //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓� - String uuid = UUID.randomUUID().toString(); - serviceSubtask.setResult("success"); - serviceSubtask.setRemark("鍏紬鍙峰彂閫佹垚鍔�"); - serviceSubtask.setGuid(uuid); - serviceSubtask.setSendstate(3L); - serviceSubtask.setFinishtime(new Date()); - serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); - - //浠诲姟鍙戦�佽褰� - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); - serviceSubtaskRecord.setUuid(uuid); - serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); - serviceSubtaskRecord.setPreachform("5"); - serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecord.setResult("success"); - serviceSubtaskRecord.setRemark("鍏紬鍙峰彂閫佹垚鍔�"); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); } - if (CollectionUtils.isEmpty(lssubIds)) { - //濡傛灉鈥滀复鏃跺瓙浠诲姟鈥濅负绌猴紝璇存槑鍏ㄥ彂閫佸畬浜� - isSend = true; - } - //灏嗗瓙浠诲姟ID娓呯┖锛屽皢鈥滀复鏃跺瓙浠诲姟鈥濇暟鎹� 鏀惧埌 鈥滃瓙浠诲姟鈥� 涓� - subIds.clear(); - subIds.addAll(lssubIds); - lssubIds.clear(); + } catch (Exception e) { + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); + serviceSubtaskRecord.setPreachform("5"); + serviceSubtaskRecord.setResult("fail"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setRemark("鍏紬鍙峰彂閫佸け璐�"); + log.error("鍏紬鍙峰彂閫佸け璐ワ細{}", e.getMessage()); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + //澶辫触璁板綍 + setFailPreachForm(serviceSubtask, sendPreachform, "鍏紬鍙峰彂閫佸け璐�", "5"); + continue; } - //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜� 锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛� + //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓� + setFailPreachForm(serviceSubtask, sendPreachform, "鍏紬鍙峰彂閫佹垚鍔�", "2"); + //浠诲姟鍙戦�佽褰� + 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"); + serviceSubtaskRecord.setRemark("鍏紬鍙峰彂閫佹垚鍔�"); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + + } else if (descByCode.equals("浜哄伐")) { + setFailPreachForm(serviceSubtask, sendPreachform, "浜哄伐寰呮墽琛�", "2"); } - if (CollectionUtils.isNotEmpty(subIds)) { - //濡傛灉鍏ㄩ儴鐨勫彂閫佹柟寮忛兘鍙戝畬浜嗭紝杩樻湁鏄湭鍙戦�佺殑,闇�瑕佸幓subTask琛ㄤ腑锛岃褰曚竴涓嬶紝鍙戦�佸け璐� - for (Long id : subIds) { - ServiceSubtask serviceSubtask = new ServiceSubtask(); - serviceSubtask.setResult("error"); - serviceSubtask.setRemark("鍙戦�佸け璐�"); + } + + } + + private Date getNextVisitTime(Long subid, Long taskid, Date visitTime, String currentPreachform) { + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setSubid(subid); + serviceSubtaskPreachform.setTaskid(taskid); + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + + if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { + Optional<String> ct = serviceSubtaskPreachforms.stream().filter(item -> currentPreachform.equals(item.getPreachform())).map(ServiceSubtaskPreachform::getCompensateTime).findFirst(); + String compensateTime = "0"; + if (ct.isPresent()) compensateTime = ct.get(); + int hoursToAdd = Integer.valueOf(compensateTime) * 24; + Calendar calendar = Calendar.getInstance(); + calendar.setTime(visitTime); + calendar.add(Calendar.HOUR_OF_DAY, hoursToAdd); + Date newDate = calendar.getTime(); + return newDate; + } + return visitTime; + } + + private String getSendPreachform(ServiceSubtaskPreachform serviceSubtaskPreachform, ServiceSubtask serviceSubtask) { + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + + // 鎯呭喌1锛歝urrentPreachform涓虹┖锛屽彇sort涓�1鐨刾reachform + if (StringUtils.isEmpty(serviceSubtask.getCurrentPreachform())) { + return serviceSubtaskPreachforms.stream().filter(item -> item.getSort() == 1L).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse(null); + } + + // 鎯呭喌2锛歝urrentPreachform涓嶄负绌猴紝鎵句笅涓�涓猻ort + Optional<Long> currentSort = serviceSubtaskPreachforms.stream().filter(item -> serviceSubtask.getCurrentPreachform().equals(item.getPreachform())).map(ServiceSubtaskPreachform::getSort).findFirst(); + + if (currentSort.isPresent()) { + // 妫�鏌ユ槸鍚︽墍鏈塻endstate涓嶇瓑浜�9 + boolean allSendStateNot1AndNot9 = serviceSubtaskPreachforms.stream().allMatch(item -> !item.getSendstate().equals("9")); + + // 褰搒ort绛変簬鍒楄〃size鏃讹紝骞朵笖鎵�鏈塻endstate閮戒笉绛変簬9锛屽垯杩斿洖-1 + if (currentSort.get().equals((long) serviceSubtaskPreachforms.size())) { + if (allSendStateNot1AndNot9) { + //璇存槑鍏ㄥ彂閫佸け璐ヤ簡 serviceSubtask.setSendstate(5L); - serviceSubtask.setId(id); -// serviceSubtask.setFinishtime(new Date()); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); } + return "-1"; } + + // 褰搒ort绛変簬鍒楄〃size鏃讹紝涓嬩竴涓猻ort涓�-1 + Long nextSort = currentSort.get() + 1; + + // 鎵惧埌涓嬩竴涓猻ort瀵瑰簲鐨刾reachform + return serviceSubtaskPreachforms.stream().filter(item -> nextSort.equals(item.getSort())).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse(null); } + return null; } - // /** -// * 鏈哄櫒浜虹涓�鍙ヨ瘽璇煶 -// * concurrency = "50" 骞跺彂鏁颁负50 -// */ -// @RabbitListener(queues = "ob_queue", concurrency = "50") -// public void obVisit(String content, Message message, Channel channel) throws IOException { -// try { -// IvrTaskcallPhoneMQ commonTaskcallMQ = null; -// ObjectMapper mapper = new ObjectMapper(); -// commonTaskcallMQ = mapper.readValue(content, IvrTaskcallPhoneMQ.class); -// //鍒ゆ柇鎮h�呮槸鍚﹀凡缁忔帴鐢佃瘽 -// String str = redisCache.getCacheObject(commonTaskcallMQ.getUuid() + "state_id"); -// System.out.println("-----------------" + str); -// if (StringUtils.isNotEmpty(str) && str.equals("0")) { -// //鎮h�呭凡缁忔帴鍚簡鐢佃瘽 -// new PhoneUtils().ttsPlayback(commonTaskcallMQ.getScript(), commonTaskcallMQ.getUuid()); -// } else if (StringUtils.isNotEmpty(str) && str.equals("-10")) { -// //杩欎釜璇存槑,宸茬粡鎵撲簡鎸囧畾閬嶆暟杩樻槸娌℃湁浜烘帴锛屽彲浠ュ皢娑堟伅浠庨槦鍒椾腑绉婚櫎浜� -// channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); -// return; -// } else { -// //杩涜闃熷垪灏鹃儴锛岃繘琛屼笅涓�娆℃牎楠� -//// channel.basicRecover(false); -// channel.basicReject(message.getMessageProperties().getDeliveryTag(), true); -// System.out.println("++++++++++++++++++++++" + str); -// return; -// } -// //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜� 锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛� -// channel.basicAck(message.getMessageProperties().getDeliveryTag(), false); -// } catch (Exception e) { -// log.error("============娑堣垂澶辫触,灏濊瘯娑堟伅琛ュ彂鍐嶆娑堣垂!=============="); -// log.error(e.getMessage()); -// channel.basicReject(message.getMessageProperties().getDeliveryTag(), true); -// } -// } - private String getKey() { - Map<String, String> map = new HashMap<>(); - for (int i = 0; i < 6; i++) { - Boolean aBoolean = redisCache.hasKey("cache-" + i); - if (!aBoolean) { - redisCache.setCacheObject("cache-" + i, ""); - map.put("cache-" + i, ""); - } else { - map.put("cache-" + i, redisCache.getCacheObject("cache-" + i)); - } + + /** + * @param serviceSubtask + * @param preachform + * @param remark + * @param failSendstate + * @return + */ + public Boolean setFailPreachForm(ServiceSubtask serviceSubtask, String preachform, String remark, String failSendstate) { + if (preachform.equals("-1")) { + //璇存槑閮戒笉闇�瑕佹墽琛屼簡 + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid()); + serviceSubtaskPreachform.setSendstate(failSendstate); + serviceSubtaskPreachformMapper.updateSSPByCondition(serviceSubtaskPreachform); + return true; } - String key = null; - String value = ""; - for (Map.Entry<String, String> entry : map.entrySet()) { - if (StringUtils.isEmpty(value)) { - value = entry.getValue(); - key = entry.getKey(); - } else { - if (entry.getValue().split(",").length < value.split(",").length) { - value = entry.getValue(); - key = entry.getKey(); + //灏嗙姸鎬佽缃负澶辫触 + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid()); + //鑾峰彇璇ユ偅鑰呯殑鍙戦�佹柟寮忔�绘暟 + List<ServiceSubtaskPreachform> spSize = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + + serviceSubtaskPreachform.setPreachform(preachform); + //1:鏈彂閫佺姸鎬� + serviceSubtaskPreachform.setSendstate("1"); + //鐢佃瘽鐨勬湭鍙戦�佺姸鎬侊紝闇�瑕佹煡2锛屽洜涓猴紝鏁版嵁鍙兘鍗″湪闃熷垪閲屼簡 + if (preachform.equals("3")) serviceSubtaskPreachform.setSendstate("2"); + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { + ServiceSubtaskPreachform serviceSubtaskPreachform1 = serviceSubtaskPreachforms.get(0); + serviceSubtaskPreachform1.setSendstate(failSendstate); + serviceSubtaskPreachform1.setRemark(remark); + serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform1); + //濡傛灉褰撳墠鐨刾reachform宸茬粡鏄渶鍚庝竴涓簡,骞朵笖鏈杩樻槸鍙戦�佸け璐ワ紝閭g洿鎺ュ皢serviceSubtask鐨剆endstate鐘舵�佹敼鎴�5灏辫浜�(鍏ㄥけ璐ヤ簡) + if (serviceSubtaskPreachform1.getSort() == spSize.size()) { + if (serviceSubtaskPreachform1.getSort() == spSize.size()) { + if (failSendstate.equals("4") || failSendstate.equals("5")) { + serviceSubtask.setCurrentPreachform(preachform); + serviceSubtask.setSendstate(5L); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + return true; + } } } + } else { + log.error("銆怣Q涓鎮h�呮病鏈夋煡璇㈠埌灞炰簬浠栫殑鍙戦�佹柟寮忥紝subid锛歿},prechform:{},orgid:{}銆�", serviceSubtask.getId(), preachform, serviceSubtask.getOrgid()); + return false; } - return key; + + serviceSubtask.setCurrentPreachform(preachform); + serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime(), serviceSubtask.getCurrentPreachform())); + serviceSubtask.setSendstate(3L); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + return true; } + private String getKey() { + String targetKey = null; + long minSize = Long.MAX_VALUE; + + for (int i = 1; i < 6; i++) { + String key = "cache-" + i; + + // 鑾峰彇 list 鐨勯暱搴︼紙鍗� value 鐨勫厓绱犱釜鏁帮級 + Long size = redisCache.getListSize(key); + if (size == null) { + size = 0L; // 濡傛灉 key 涓嶅瓨鍦紝璁や负鏄� 0 + } + + // 鍙栨渶灏忓�� + if (size < minSize) { + minSize = size; + targetKey = key; + } + } + return targetKey; + } + +// private String getKey() { +// Map<String, List> map = new HashMap<>(); +// for (int i = 0; i < 6; i++) { +// Boolean aBoolean = redisCache.hasKey("cache-" + i); +// if (!aBoolean) { +// redisCache.setCacheList("cache-" + i, new ArrayList<String>()); +// map.put("cache-" + i, new ArrayList<String>()); +// } else { +// map.put("cache-" + i, redisCache.getCacheObject("cache-" + i)); +// } +// } +// +// String key = null; +// List<String> value = new ArrayList<String>(); +// for (Map.Entry<String, List> entry : map.entrySet()) { +// if (CollectionUtils.isEmpty(value)) { +// value = entry.getValue(); +// key = entry.getKey(); +// } else { +// value = entry.getValue(); +// key = entry.getKey(); +// } +// } +// return key; +// } + private String getWXCode(String idcard, String url, String taskName, String taskDesc, String phone, String patientname, String setPatientid, List<String> wxqqxx) { XinHuaWXReq xinHuaWXReq = new XinHuaWXReq(); xinHuaWXReq.setIdcard(idcard); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java index 7d34762..bc0e282 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java @@ -10,6 +10,8 @@ import com.ruoyi.common.utils.file.FileUploadUtils; import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.framework.config.ServerConfig; +import com.ruoyi.system.domain.SysConfig; +import com.ruoyi.system.mapper.SysConfigMapper; import com.smartor.domain.HtmlContentVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -53,6 +55,9 @@ @Autowired private ServerConfig serverConfig; + + @Autowired + private SysConfigMapper sysConfigMapper; private static final String FILE_DELIMETER = ","; @@ -143,7 +148,10 @@ convertDocToHtml(filePath + "\\" + file.getOriginalFilename(), filePath + "\\" + file.getOriginalFilename().split("\\.", 2)[0] + ".html"); String url = null; - String xhPath = "http://218.108.11.22:8093/profile-api"; + SysConfig config = new SysConfig(); + config.setConfigKey("sys.qdip"); + SysConfig sysConfig = sysConfigMapper.selectConfig(config); + String xhPath = sysConfig.getConfigValue() + "/profile-api"; if (uploadSwitch == 1) { String fn = fileName.replaceAll("\\.[^.]*$", ".html").replaceAll("/profile", ""); url = xhPath + fn; @@ -263,8 +271,7 @@ // 灏嗘枃浠朵繚瀛樺埌鎸囧畾鐩綍 File outputFile = new File(RuoYiConfig.getUploadPath() + "/show/" + fileName.split("\\.", 2)[0] + "/" + fileName); try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile), "UTF-8"))) { - if (StringUtils.isNotEmpty(htmlContentVO.getContent())) - writer.write(htmlContentVO.getContent()); + if (StringUtils.isNotEmpty(htmlContentVO.getContent())) writer.write(htmlContentVO.getContent()); } catch (IOException e) { e.printStackTrace(); } @@ -315,4 +322,26 @@ } + /** + * 鑾峰彇鏂囦欢鎵╁睍鍚� + */ + private static String getFileExtension(String fileName) { + int lastDotIndex = fileName.lastIndexOf('.'); + if (lastDotIndex > 0) { + return fileName.substring(lastDotIndex); + } + return ""; + } + + /** + * 妫�鏌ユ枃浠舵槸鍚︿负鏀寔鐨刉ord鏍煎紡 + */ + public static boolean isSupportedWordFormat(String filePath) { + if (filePath == null) return false; + String fileName = filePath.toLowerCase(); + return fileName.endsWith(".doc") || fileName.endsWith(".docx"); + } } + + + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java index 57f6730..8c3a964 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java @@ -9,7 +9,9 @@ import com.ruoyi.framework.config.ServerConfig; import com.smartor.domain.HtmlContentVO; import com.smartor.domain.ServiceOutPath; +import com.smartor.domain.ServiceTask; import com.smartor.domain.smsVO; +import com.smartor.mapper.ServiceTaskMapper; import com.smartor.service.IServiceOutPathService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -50,6 +52,9 @@ @Autowired private IServiceOutPathService iServiceOutPathService; + @Autowired + private ServiceTaskMapper serviceTaskMapper; + /** * @param @@ -58,9 +63,10 @@ @ApiOperation("鐭俊鍙戦��") @PostMapping("/send") public AjaxResult send(@RequestBody smsVO vo) { - String sendMsg=smsUtils.sendSms(xhsmsPath,xhsmsAccount,xhsmsPwd,vo.getPhone(),vo.getContent()); + String sendMsg = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, vo.getPhone(), vo.getContent()); return AjaxResult.success(sendMsg); } + /** * @param * @return @@ -83,13 +89,19 @@ serviceOutPath.setRadix(format); serviceOutPath.setUpdateTime(new Date()); iServiceOutPathService.updateServiceOutPath(serviceOutPath); - String url=ip + ":" + req_path + "/wt?p=" + format; + String url = ip + ":" + req_path + "/wt?p=" + format; + ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(Long.valueOf(taskId)); + //濡傛灉type鏄闊抽殢璁跨殑璇濓紙璇存槑琛ュ伩鍙戦�佹柟寮忎腑鏈夌數璇濋殢璁跨殑鏂瑰紡锛岃繖閲岀殑澶栭摼灏卞湴鍧�鍙兘鐢�/sf锛� + if (serviceTask.getType().equals("1")) { + url = ip + ":" + req_path + "/sf?p=" + format; + } + //String url = = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(vo.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"; - String content="鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + url + "濉啓銆傛劅璋㈡偍閰嶅悎锛�"; + String content = "鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + url + "濉啓銆傛劅璋㈡偍閰嶅悎锛�"; - String sendMsg=smsUtils.sendSms(xhsmsPath,xhsmsAccount,xhsmsPwd,vo.getPhone(),content); + String sendMsg = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, vo.getPhone(), content); return AjaxResult.success(sendMsg); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseDictOperationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseDictOperationController.java index 070221f..0d93202 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseDictOperationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/BaseDictOperationController.java @@ -2,6 +2,8 @@ import java.util.List; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.model.LoginUser; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -47,6 +49,9 @@ @PostMapping("/list") public TableDataInfo list(@RequestBody BaseDictOperation baseDictOperation) { startPage(); + LoginUser loginUser = getLoginUser(); + SysUser user = loginUser.getUser(); + baseDictOperation.setOrgid(user.getOrgid()); List<BaseDictOperation> list = baseDictOperationService.selectBaseDictOperationList(baseDictOperation); return getDataTable(list); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java index 0400c33..83c71e8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatArchiveController.java @@ -25,6 +25,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; import java.util.concurrent.Executor; import java.util.concurrent.Executors; @@ -249,8 +250,9 @@ */ @ApiOperation("鑾峰彇鎮h�呬俊鎭�") @PostMapping("/getPatientInfoQC") - public TableDataInfo getPatientInfoQC(@RequestBody PatArchiveReq patArchiveReq) { - PageUtils.startPageByPost(patArchiveReq.getPageNum(), patArchiveReq.getPageSize()); + public Map<String, Object> getPatientInfoQC(@RequestBody PatArchiveReq patArchiveReq) { + patArchiveReq.setPageNum(PageUtils.getOffset(patArchiveReq.getPageNum(), patArchiveReq.getPageSize())); + LoginUser loginUser = getLoginUser(); SysUser user = loginUser.getUser(); patArchiveReq.setOrgid(user.getOrgid()); @@ -261,13 +263,18 @@ patArchiveReq.setLeaveldeptcodes(null); } List<PatArchiveOthreInfo> patientInfo = patArchiveService.getPatientInfoQC(patArchiveReq); - long count = PageUtils.count(new ISelect() { - @Override - public void doSelect() { - patArchiveService.getPatientInfoQC(patArchiveReq); - } - }); - return getDataTable2(count, patientInfo); + + patArchiveReq.setPageSize(null); + patArchiveReq.setPageNum(null); + List<PatArchiveOthreInfo> patientInfoQC = patArchiveService.getPatientInfoQC(patArchiveReq); + +// long count = PageUtils.count(new ISelect() { +// @Override +// public void doSelect() { +// patArchiveService.getPatientInfoQC(patArchiveReq); +// } +// }); + return getDataTable3(patientInfoQC.size(), patientInfo); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceExternalController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceExternalController.java index 37f88e7..e60751b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceExternalController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceExternalController.java @@ -5,7 +5,6 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DtoConversionUtils; -import com.ruoyi.system.service.ISysConfigService; import com.smartor.domain.*; import com.smartor.service.IServiceExternalService; import com.smartor.service.IServiceSubtaskDetailService; @@ -38,8 +37,6 @@ private IServiceExternalService serviceExternalService; @Autowired private ISvyTaskSingleService svyTaskSingleService; - @Autowired - private ISysConfigService configService; /** * 閫氱敤鎺ュ彛 @@ -86,10 +83,6 @@ log.info("------serviceQueryInfo鐨勫叆鍙備负锛歿}", serviceQueryInfo); Map map = null; try { - String url = configService.selectConfigByKey("token.360",serviceQueryInfo.getXiaoXiTou().getFaSongJGID()); - serviceQueryInfo.setUrl(url); - String url360 = configService.selectConfigByKey("url.360",serviceQueryInfo.getXiaoXiTou().getFaSongJGID()); - serviceQueryInfo.setUrl360(url360); map = svyTaskSingleService.query360PatInfo(serviceQueryInfo); } catch (Exception e) { e.printStackTrace(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSLTDHealthcareRecordController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSLTDHealthcareRecordController.java index 0c7d3f1..1e24d92 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSLTDHealthcareRecordController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSLTDHealthcareRecordController.java @@ -2,6 +2,7 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; +import com.smartor.domain.ServiceSLTDDeptReqVO; import com.smartor.domain.ServiceSLTDInhospReqVO; import com.smartor.domain.ServiceSLTDInhospResDTO; import com.smartor.service.IServiceSLTDHealthcareRecordService; @@ -70,4 +71,24 @@ return AjaxResult.error("鏌ヨ鍋ュ悍璁板綍澶辫触锛�" + e.getMessage()); } } + + /** + * 閲囬泦绉戝鐥呭尯淇℃伅 + */ + @ApiOperation("閲囬泦绉戝鐥呭尯淇℃伅") + @PostMapping("/queryDeptWardAreaInfoList") + public AjaxResult queryDeptWardAreaInfoList(@RequestBody ServiceSLTDDeptReqVO reqVO) { + try { + log.info("銆恞ueryHealthcareRecordList銆戞帴鏀跺埌鏌ヨ璇锋眰锛屽弬鏁帮細{}", reqVO); + + Boolean b = serviceSLTDHealthcareRecordService.queryDeptWardAreaInfoList(reqVO); + + log.info("銆恞ueryHospUserInfoList銆戞煡璇㈡垚鍔燂紝鏄惁鎴愬姛锛歿}", b); + return AjaxResult.success(b); + + } catch (Exception e) { + log.error("銆恞ueryHospUserInfoList銆戞煡璇㈠紓甯革紝璇锋眰鍙傛暟锛歿}", reqVO, e); + return AjaxResult.error("鏌ヨ鍋ュ悍璁板綍澶辫触锛�" + e.getMessage()); + } + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java index f88bb2a..fb65162 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskAnswerController.java @@ -6,6 +6,7 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.RSAPublicKeyExample; import com.ruoyi.common.utils.poi.ExcelUtil; import com.smartor.domain.*; import com.smartor.service.IServiceSubtaskAnswerService; @@ -14,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -33,6 +35,10 @@ public class ServiceSubtaskAnswerController extends BaseController { @Autowired private IServiceSubtaskAnswerService serviceSubtaskAnswerService; + + + @Value("${pri_key}") + private String pri_key; /** * 鏌ヨ浠诲姟闂嵎闂閫夐」鍒楄〃 @@ -90,6 +96,7 @@ @ApiOperation("淇敼浠诲姟闂嵎闂閫夐」") @PostMapping("/edit") public AjaxResult edit(@RequestBody ServiceSubtaskAnswer serviceSubtaskAnswer) { + log.info("銆恠aveQuestionCache-----edit銆戠殑鍏ュ弬涓猴細{}", serviceSubtaskAnswer); return toAjax(serviceSubtaskAnswerService.updateServiceSubtaskAnswer(serviceSubtaskAnswer)); } @@ -101,13 +108,14 @@ @ApiOperation("鍒犻櫎浠诲姟闂嵎闂閫夐」") @DeleteMapping("/remove/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { + log.info("銆恠aveQuestionCache-----remove銆戠殑鍏ュ弬涓猴細{}", ids); return toAjax(serviceSubtaskAnswerService.deleteServiceSubtaskAnswerByIds(ids)); } @ApiOperation("鎮h�呴棶棰樼粨鏋滆褰�(澶栭摼)") @PostMapping("/saveQuestionAnswer") public AjaxResult saveQuestionAnswer(@RequestBody ServiceSubTaskAnswerReq serviceSubTaskAnswerReq) { - log.info("-----saveQuestionAnswer鏂规硶鐨勫叆鍙備负锛歿}", serviceSubTaskAnswerReq); + log.info("銆恠aveQuestionCache-----saveQuestionAnswer銆戠殑鍏ュ弬涓猴細{}", serviceSubTaskAnswerReq); return toAjax(serviceSubtaskAnswerService.saveQuestionAnswer(serviceSubTaskAnswerReq, 0L)); } @@ -115,6 +123,7 @@ @ApiOperation("鎮h�呴棶棰樼粨鏋滆褰曠紦瀛�(灏忕▼搴忓閾�)") @PostMapping("/saveQuestionCacheXCH") public AjaxResult saveQuestionCacheXCH(@RequestBody ServiceSubTaskCacheReq serviceSubTaskCacheReq) { + log.info("銆恠aveQuestionCache-----saveQuestionCacheXCH銆戠殑鍏ュ弬涓猴細{}", serviceSubTaskCacheReq); return toAjax(serviceSubtaskAnswerService.saveQuestionCache(serviceSubTaskCacheReq, 1L)); } @@ -122,26 +131,28 @@ @ApiOperation("鎮h�呴棶棰樼粨鏋滆褰�(灏忕▼鍏呭閾�)") @PostMapping("/saveQuestionAnswerXCH") public AjaxResult saveQuestionAnswerXCH(@RequestBody ServiceSubTaskAnswerReq serviceSubTaskAnswerReq) { - log.info("-------saveQuestionAnswerXCH鐨勫叆鍙傜殑鍊间负锛歿}", serviceSubTaskAnswerReq); + log.info("銆恠aveQuestionCache-----saveQuestionAnswerXCH銆戠殑鍏ュ弬涓猴細{}", serviceSubTaskAnswerReq); return toAjax(serviceSubtaskAnswerService.saveQuestionAnswer(serviceSubTaskAnswerReq, 1L)); } @ApiOperation("鑾峰彇鎮h�呴棶棰樼粨鏋滆褰曠紦瀛�(灏忕▼搴忓閾�)") @PostMapping("/getQuestionCacheXCH") public AjaxResult getQuestionCacheXCH(@RequestBody ServiceSubTaskCacheReq serviceSubTaskCacheReq) { + log.info("銆恠aveQuestionCache-----getQuestionCacheXCH銆戠殑鍏ュ弬涓猴細{}", serviceSubTaskCacheReq); return AjaxResult.success(serviceSubtaskAnswerService.getQuestionCache(serviceSubTaskCacheReq, 1L)); } @ApiOperation("鎮h�呴棶棰樼粨鏋滆褰曠紦瀛�(澶栭摼)") @PostMapping("/saveQuestionCache") public AjaxResult saveQuestionCache(@RequestBody ServiceSubTaskCacheReq serviceSubTaskCacheReq) { - log.info("serviceSubTaskCacheReq鐨勫叆鍙備负锛歿}", serviceSubTaskCacheReq); + log.info("銆恠aveQuestionCache-----saveQuestionCache銆戠殑鍏ュ弬涓猴細{}", serviceSubTaskCacheReq); return toAjax(serviceSubtaskAnswerService.saveQuestionCache(serviceSubTaskCacheReq, 0L)); } @ApiOperation("鑾峰彇鎮h�呴棶棰樼粨鏋滆褰曠紦瀛�(澶栭摼)") @PostMapping("/getQuestionCache") public AjaxResult getQuestionCache(@RequestBody ServiceSubTaskCacheReq serviceSubTaskCacheReq) { + log.info("銆恠aveQuestionCache-----getQuestionCache銆戠殑鍏ュ弬涓猴細{}", serviceSubTaskCacheReq); return AjaxResult.success(serviceSubtaskAnswerService.getQuestionCache(serviceSubTaskCacheReq, 0L)); } @@ -149,7 +160,21 @@ @ApiOperation("鍖荤敓鏌ヨ鎮h�呴棶棰樼粨鏋�(澶栭摼)") @PostMapping("/selectPatQuestionResult") public AjaxResult selectPatQuestionResult(@RequestBody ServiceSubTaskQueryReq serviceSubTaskQueryReq) { + log.info("銆恠aveQuestionCache-----selectPatQuestionResult銆戠殑鍏ュ弬涓猴細{}", serviceSubTaskQueryReq); return AjaxResult.success(serviceSubtaskAnswerService.selectPatQuestionResult(serviceSubTaskQueryReq)); } + + @ApiOperation("鎮h�呮弧鎰忓害缁撴灉璁板綍(澶栭摼)") + @PostMapping("/saveMYDQuestionAnswer") + public AjaxResult saveMYDQuestionAnswer(@RequestBody ServiceSubTaskMYDAnswerReq serviceSubTaskAnswerReq) { + log.info("銆恠aveQuestionCache-----saveMYDQuestionAnswer銆戠殑鍏ュ弬涓猴細{}", serviceSubTaskAnswerReq); + RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); + String taskId = rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getTaskId(), pri_key); + String serialnum = rsaPublicKeyExample.decryptedData(serviceSubTaskAnswerReq.getSerialnum(), pri_key); + serviceSubTaskAnswerReq.setTaskId(taskId); + serviceSubTaskAnswerReq.setSerialnum(serialnum); + return toAjax(serviceSubtaskAnswerService.saveMYDQuestionAnswer(serviceSubTaskAnswerReq)); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java index 751dd01..f3ebbfe 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java @@ -85,7 +85,6 @@ } }); return getDataTable2(total, list); -// return getDataTable(serviceSubtaskService.patItem(ivrTaskcall)); } @@ -111,8 +110,6 @@ } } - - ExcelUtil<ServiceSubtaskExprot> util = new ExcelUtil<ServiceSubtaskExprot>(ServiceSubtaskExprot.class); util.exportExcel(response, serviceSubtaskExprots, "鎮h�呴殢璁夸俊鎭〃鍗�"); } @@ -265,8 +262,6 @@ @PostMapping("/phoneCallBackYQ") public PhoneCallBackYQVO phoneCallBackYQ(@RequestBody PhoneCallReqYQVO phoneCallReqYQVO) { log.info("鐢佃瘽ASR閫氳瘽鍥炶皟(闆ㄧ划) 锛焮}", phoneCallReqYQVO); -// SysUser user = getLoginUser().getUser(); -// phoneCallReqYQVO.setOrgid(user.getOrgid()); PhoneCallBackYQVO phoneCallBackYQVO = serviceSubtaskService.phoneCallBackYQ(phoneCallReqYQVO); return phoneCallBackYQVO; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java index 36c5479..7f2c848 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java @@ -25,6 +25,7 @@ import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -232,4 +233,31 @@ return success(serviceTaskService.getScriptInfoByCondition(tid, pid, true, serviceTaskScriptQues.getPatfrom())); } + + /** + * 閫氳繃浠诲姟ID鍜屾偅鑰匢D鑾峰彇鍗曚釜浜虹殑棰樼洰淇℃伅 + * + * @return + */ + @ApiOperation("閫氳繃浠诲姟ID鍜岃瘖鐤楄褰曞彿鑾峰彇鍗曚釜浜虹殑棰樼洰淇℃伅") + @PostMapping("/getScriptByCondition") + public AjaxResult getScriptByCondition(@RequestBody ServiceTaskScriptQues serviceTaskScriptQues) { + RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); + Long taskId = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam1(), pri_key)); + String zyserialnum = null; + String mzserialnum = null; + String tsserialnum = null; + if (StringUtils.isNotEmpty(serviceTaskScriptQues.getParam2())) + zyserialnum = rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam2(), pri_key); + if (StringUtils.isNotEmpty(serviceTaskScriptQues.getParam3())) + mzserialnum = rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam3(), pri_key); + if (StringUtils.isNotEmpty(serviceTaskScriptQues.getParam4())) + tsserialnum = rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam4(), pri_key); + Map<String, Object> scriptByCondition = serviceTaskService.getScriptByCondition(taskId, zyserialnum, mzserialnum, tsserialnum); + scriptByCondition.put("zy", serviceTaskScriptQues.getParam2()); + scriptByCondition.put("mz", serviceTaskScriptQues.getParam3()); + scriptByCondition.put("tid", serviceTaskScriptQues.getParam1()); + return success(scriptByCondition); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index 75fd88e..4aebae5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -1,13 +1,11 @@ package com.ruoyi.web.controller.system; -import com.ruoyi.common.annotation.IpWhitelist; import com.ruoyi.common.constant.Constants; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysMenu; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUserDept; import com.ruoyi.common.core.domain.model.LoginBody; -import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.RSAPublicKeyExample; import com.ruoyi.common.utils.SecurityUtils; @@ -18,6 +16,7 @@ import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.ISysMenuService; import com.smartor.mapper.SysUserDeptMapper; +import com.smartor.service.impl.ServiceSLTDHealthcareRecordServiceImpl; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -27,7 +26,9 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -60,6 +61,14 @@ @Value("${isEncryp}") private Integer isEncryp; + + @Value("${sltd_pub_path}") + private String sltdPubPath; + + + @Value("${spring.profiles.active}") + private String active; + @Autowired private SysUserDeptMapper sysUserDeptMapper; @@ -81,31 +90,64 @@ /** * 鍗曠偣鐧诲綍鏂规硶(闇�瑕侀厤缃甀P鐧藉悕鍗�) * 闇�瑕佸湪sys_config琛ㄧ殑sys.ip.whitelis涓紝鍔犲叆IP鎵嶈兘璁块棶璇ユ柟娉� + * <p> + * 鍙傛暟鍚屾椂涓虹┖锛屼笉缁欐煡璇㈡暟鎹� + * <p> + * 銆愬叆鍙傝鍒欍�� + * 濡傛灉userName涓嶄负绌猴紝閭rgid涔熶笉鑳戒负绌� + * 濡傛灉涓婇潰涓や釜涓虹┖锛岄偅token涓嶈兘涓虹┖ * * @return 缁撴灉 */ - @IpWhitelist +// @IpWhitelist @GetMapping("/SSOLogin") - public RedirectView SSOLogin(@RequestParam String userName, @RequestParam String orgid, @RequestParam(required = false) String deptId) { + public RedirectView SSOLogin(@RequestParam(required = false) String userName, @RequestParam(required = false) String orgid, @RequestParam(required = false) String deptId, @RequestParam(required = false) String token) { + if (StringUtils.isEmpty(userName) && StringUtils.isEmpty(token)) { + throw new BaseException("鍙傛暟涓嶈兘涓虹┖"); + } + log.info("--------杩涙柟娉曚簡鍚�?{}", token); + // 閲嶅畾鍚戝湴鍧�瀵硅薄(閲嶅畾鍚戝湴鍧� RedirectView redirectView = new RedirectView(); +// if (active.equals("sltd")) { +// Map<String, String> headers = buildRequestHeaders(); +// Map<String, String> requestParams = new HashMap<>(); +// requestParams.put("token", token); +// String reqData = HttpUtil.postFormRequest(sltdPubPath + "/checkSsoTokenId", requestParams, headers, null); +// log.info("銆�-----杩斿洖鐨勭粨鏋滀负銆戯細{}", reqData); +// if (StringUtils.isEmpty(reqData)) { +// throw new BaseException("token楠岃瘉澶辫触"); +// } +// +// Map<String, Object> map = JSONObject.parseObject(reqData, Map.class); +// if (ObjectUtils.isEmpty(map) || (Integer) map.get("code") != 200) { +// throw new BaseException("token楠岃瘉澶辫触"); +// } +// +// Map<String, Object> data = (Map<String, Object>) map.get("data"); +// //鍛樺伐缂栫爜 +// userName = (String) data.get("accountNo"); +// } + log.info("銆�-----------userName鐨勫�间负锛歿}銆�", userName); // 鐢熸垚浠ょ墝 if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(orgid)) { throw new BaseException("鐢ㄦ埛鍚嶆垨缁勭粐鏈烘瀯鎴栭儴闂ㄤ笉鑳戒负绌�"); } - if (isEncryp == 1) { + if (isEncryp != null && isEncryp == 1) { RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); userName = rsaPublicKeyExample.decryptedData(userName, pri_key); } - String token = loginService.loginByUserName(userName + "&" + orgid + "&" + deptId); - if (StringUtils.isEmpty(token)) { + + String token2 = loginService.loginByUserName(userName + "&" + orgid + "&" + deptId); + if (StringUtils.isEmpty(token2)) { throw new BaseException("鐧婚檰澶辫触"); } + String path = sysConfigService.selectConfigByKey("sys.qddz"); - if(StringUtils.isEmpty(path)){ + if (StringUtils.isEmpty(path)) { throw new BaseException("璇烽厤缃墠绔湴鍧�"); } - log.info("鍗曠偣鐧婚檰閲嶅畾鍚戝湴鍧�涓猴細{}",path + "/loginSSO?token=" + token + "&orgid=" + orgid + "&orgname=''" + "&ZuHuID=''&deptCode=''"); - redirectView.setUrl(path + "/loginSSO?token=" + token + "&orgid=" + orgid + "&orgname=null" + "&ZuHuID=null&deptCode=null"); + log.info("鍗曠偣鐧婚檰閲嶅畾鍚戝湴鍧�涓猴細{}", path + "/loginSSO?token=" + token2 + "&orgid=" + orgid + "&orgname=''" + "&ZuHuID=''&deptCode=''"); + redirectView.setUrl(path + "/loginSSO?token=" + token2 + "&orgid=" + orgid + "&orgname=null" + "&ZuHuID=null&deptCode=null"); redirectView.setStatusCode(HttpStatus.MOVED_PERMANENTLY); return redirectView; } @@ -171,4 +213,12 @@ public AjaxResult getDept(@PathVariable String orgid) { return AjaxResult.success(sysDeptService.selectDept(orgid)); } + + + private Map<String, String> buildRequestHeaders() { + Map<String, String> headers = new HashMap<>(); +// headers.put("Content-Type", "application/json"); + headers.put("app-key", ServiceSLTDHealthcareRecordServiceImpl.APP_KEY); + return headers; + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java index c5070cb..a27d38d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java @@ -4,6 +4,7 @@ import javax.servlet.http.HttpServletResponse; import com.ruoyi.common.core.domain.entity.SysUserRole; +import com.ruoyi.common.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.validation.annotation.Validated; @@ -53,7 +54,7 @@ @Autowired private ISysDeptService deptService; - + @Value("${isAdmin}") private List<Long> isAdmin; @@ -61,6 +62,8 @@ @GetMapping("/list") public TableDataInfo list(SysRole role) { startPage(); + SysUser user = SecurityUtils.getLoginUser().getUser(); + role.setOrgid(user.getOrgid()); List<SysRole> list = roleService.selectRoleList(role); return getDataTable(list); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 351c976..9979825 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -65,6 +65,9 @@ @GetMapping("/list") public TableDataInfo list(SysUser user) { startPage(); + LoginUser loginUser = getLoginUser(); + String orgid = loginUser.getUser().getOrgid(); + user.setOrgid(orgid); List<SysUser> list = userService.selectUserList(user); return getDataTable(list); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java b/ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java index a523a63..4330ec2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/test/MQTest.java @@ -65,7 +65,7 @@ @Test public void cc() { RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); - String s = rsaPublicKeyExample.encryptedData("1012320966", "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALQzqW1EIXBKGMu+2oEYSB5gM7Ox/ihyYTeeoE0yPX1qtt4++5yNOeTBVd6EEM4iKzVEzWj6REIWVwaSNPn/SvUCAwEAAQ=="); + String s = rsaPublicKeyExample.encryptedData("20250815001094", "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALQzqW1EIXBKGMu+2oEYSB5gM7Ox/ihyYTeeoE0yPX1qtt4++5yNOeTBVd6EEM4iKzVEzWj6REIWVwaSNPn/SvUCAwEAAQ=="); System.out.println("鍔犲瘑缁撴灉涓猴細" + s); String s1 = rsaPublicKeyExample.decryptedData(s, "MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAtDOpbUQhcEoYy77agRhIHmAzs7H+KHJhN56gTTI9fWq23j77nI055MFV3oQQziIrNUTNaPpEQhZXBpI0+f9K9QIDAQABAkB3n0fcWfrcoMN/FU3VnrnZOEF6CzFNxkgU9P8y36QECWKZ9JhYQkNpKrMC9oXlN3VSaRigV7B+L/I/a0Rs1W+tAiEA4jx7xcXJ4y4BNwAmVHt6NNiEkzIwWnwC/0qsEu8NsOsCIQDL6MMn1D2uznC6OuOWpxDCkBh1JL1NzZTZeH2G+hj7nwIgKGAC9tjFnvWm4dn0/T7MIIJDpsFeP8fCAS2iZ/6hwuECIAS/eLvWr1EAsZNEh8QcQ8GkBU3E+ztyjAK8UX/xFt/VAiBf79/1tDErX4/DChecM8w3c3DhbBcjuE3fHZn7p6/UKg=="); System.out.println("瑙e瘑缁撴灉涓猴細"+s1); diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index d149156..b31ef4f 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -29,15 +29,19 @@ # driverClassName: com.mysql.cj.jdbc.Driver # 鍏徃浜� -# url: jdbc:mysql://116.62.18.175:6002/smartor_xinhua?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 -# username: hxsoft -# password: Hxerp2000 -# driverClassName: com.mysql.cj.jdbc.Driver + # url: jdbc:mysql://116.62.18.175:6002/smartor_lishui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + # username: hxsoft + # password: Smartor.2023 + # driverClassName: com.mysql.cj.jdbc.Driver # 鍏徃鏈湴 url: jdbc:mysql://haiershi.a1.luyouxia.net:23844/smartor_lishui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: smartor password: Smartor.2023 driverClassName: com.mysql.cj.jdbc.Driver + # url: jdbc:mysql://127.0.0.1:2881/smartor-lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + # username: root@sys + # password: + # driverClassName: com.mysql.cj.jdbc.Driver # # 楂樻柉鏁版嵁搴撻厤缃� # url: jdbc:postgresql://127.0.0.1:5432/smartorlishui @@ -58,11 +62,11 @@ # password: Smartor.2023 # driverClassName: com.mysql.cj.jdbc.Driver # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴(鍏徃) -# enabled: true -# url: jdbc:sqlserver://116.62.18.175:6001;DatabaseName=iv-ywey;encrypt=false;SelectMethod=cursor -# username: sa -# password: Hxerp2000 -# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver + # enabled: true + # url: jdbc:sqlserver://116.62.18.175:6001;DatabaseName=iv-ywey;encrypt=false;SelectMethod=cursor + # username: sa + # password: Hxerp2000 + # driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver # 浠庢暟鎹簮寮�鍏�/榛樿鍏抽棴(涔変箤浜岄櫌) # enabled: true @@ -113,7 +117,7 @@ multi-statement-allow: true # redis 閰嶇疆 redis: - host: 192.168.100.10 + host: 127.0.0.1 port: 6020 database: 0 password: Smartor @@ -140,6 +144,7 @@ sql-column-case: camel show-sql: true #閰嶇疆鎵撳嵃SQL page-config: + enabled: false #绂佺敤鍒嗛〉 size: size page: page default-page: 1 @@ -202,9 +207,9 @@ #鏂板崕鍖婚櫌澶栭摼璇锋眰IP鍜岀鍙e彿 req_path: 8093 -#localIP: https://wx.lihusmart.com +localIP: https://wx.lihusmart.com #涓芥按澶栭摼璇锋眰IP鍜岀鍙e彿 -localIP: http://221.12.19.26 +#localIP: http://221.12.19.26 #鑾峰彇鎮h�呬俊鎭疷RL(鍗庡崜鎻愪緵) hosp_info_url: http://esb-core-rest.wowjoy.cn/esb/exchange @@ -213,9 +218,9 @@ uploadSwitch: 0 # 鎸囧畾asr鍥炶皟鐨剈rl璺緞(鏈湴) -ASRCallBackPath: http://192.168.100.10:8095/smartor/serviceSubtask/phoneCallBackYQ +ASRCallBackPath: http://192.168.100.127:8095/smartor/serviceSubtask/phoneCallBackYQ #鎸傛柇IP(鏈湴) -hangup: http://192.168.100.6:8089/hangup +hangup: http://192.168.100.33:5060/hangup #fs鎵�浣跨敤鐨勯樋閲岀殑app_key(鏈湴) app_key_yq: ZurNHpaQLq6P55YS @@ -267,6 +272,11 @@ isAdmin: 1,2,3,4,5,6,7,8,9,10,11,12,13 #闅忚鍖婚櫌锛�1鏂板崕 2涓芥按 -visitHosp: 2 +visitHosp: 1 -isEncryp: \ No newline at end of file +isEncryp: + +dealDeptCode: + +# 鍓嶇ip +qdip: 192.168.100.132 diff --git a/ruoyi-admin/src/main/resources/application-sltd.yml b/ruoyi-admin/src/main/resources/application-sltd.yml index b35c05f..d852979 100644 --- a/ruoyi-admin/src/main/resources/application-sltd.yml +++ b/ruoyi-admin/src/main/resources/application-sltd.yml @@ -231,8 +231,8 @@ #admin绠$悊鍛榰serId isAdmin: 1,2,3,4,5,6,7,8,9,10,11,12,13 -#闅忚鍖婚櫌锛�1鏂板崕 2涓芥按 3鐪佺珛鍚屽痉 -visitHosp: 3 +#闅忚鍖婚櫌锛�1鏂板崕 2涓芥按 3甯備竴 4鐪佺珛鍚屽痉 +visitHosp: 4 #鐢ㄦ埛榛樿瀵嗙爜 userPwd: sltd@0230 @@ -244,3 +244,4 @@ #鏄惁鍔犲瘑 0涓嶅姞 1鍔犲瘑 isEncryp: 0 + diff --git a/ruoyi-admin/src/main/resources/application.yml b/ruoyi-admin/src/main/resources/application.yml index 24f1d1f..7c0275b 100644 --- a/ruoyi-admin/src/main/resources/application.yml +++ b/ruoyi-admin/src/main/resources/application.yml @@ -74,7 +74,7 @@ # 鍥介檯鍖栬祫婧愭枃浠惰矾寰� basename: i18n/messages profiles: - active: hzszlyy + active: druid # 鏂囦欢涓婁紶 servlet: multipart: @@ -137,6 +137,10 @@ redirect_uri: "http://172.20.111.142:8096/login" state: "smartor" # 浣犱滑绯荤粺鏍囪瘑 scope: "openid%20roles%20profile" + #鍗曠偣鐧婚檰鐧藉悕鍗旾P閰嶇疆 + whitelist: + ips: + # 闃叉XSS鏀诲嚮 xss: diff --git a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml index 65f42ed..62daf6f 100644 --- a/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml +++ b/ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml @@ -12,7 +12,7 @@ <!-- 閰嶇疆榛樿鐨勬墽琛屽櫒.SIMPLE灏辨槸鏅�氭墽琛屽櫒;REUSE鎵ц鍣ㄤ細閲嶇敤棰勫鐞嗚鍙�(prepared statements);BATCH鎵ц鍣ㄥ皢閲嶇敤璇彞骞舵墽琛屾壒閲忔洿鏂� --> <setting name="defaultExecutorType" value="SIMPLE"/> <!-- 鎸囧畾 MyBatis 鎵�鐢ㄦ棩蹇楃殑鍏蜂綋瀹炵幇 --> -<!-- <setting name="logImpl" value="STDOUT_LOGGING"/>--> + <setting name="logImpl" value="STDOUT_LOGGING"/> <!-- 浣跨敤椹煎嘲鍛藉悕娉曡浆鎹㈠瓧娈� --> <!-- <setting name="mapUnderscoreToCamelCase" value="true"/> --> </settings> diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java index 25bdd98..9a82487 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java @@ -3,6 +3,8 @@ import java.beans.PropertyEditorSupport; import java.util.Date; import java.util.List; +import java.util.Map; +import java.util.TreeMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -94,6 +96,14 @@ rspData.setTotal(total); return rspData; } + protected Map<String,Object> getDataTable3(long total, List<?> list) { + Map<String,Object> rspData = new TreeMap<>(); + rspData.put("code",HttpStatus.SUCCESS); + rspData.put("msg","鏌ヨ鎴愬姛"); + rspData.put("rows",list); + rspData.put("total",total); + return rspData; + } /** * 杩斿洖鎴愬姛 diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java index 8955e98..79785fd 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java @@ -30,6 +30,10 @@ redisTemplate.opsForValue().set(key, value); } + public <T> void setCacheList(final String key, final List<T> values) { + redisTemplate.opsForList().rightPushAll(key, values); + } + /** * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛� * @@ -299,4 +303,13 @@ public Collection<String> keys(final String pattern) { return redisTemplate.keys(pattern); } + + /** + * 鑾峰彇褰撳墠key鍊肩殑鏁伴噺 + * @param key + * @return + */ + public Long getListSize(String key) { + return redisTemplate.opsForList().size(key); + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/ServiceFromEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/ServiceFromEnum.java index dd8af6b..9a00ac6 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/ServiceFromEnum.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/enums/ServiceFromEnum.java @@ -4,7 +4,7 @@ * 鍙戦�佺被鍨嬫灇涓� */ public enum ServiceFromEnum { - DMT(1, "澶氬獟浣�"), + RG(1, "浜哄伐"), ZZ(2, "绾歌川"), DH(3, "鐢佃瘽"), DX(4, "鐭俊"), diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/enums/VisitSendStateEnum.java b/ruoyi-common/src/main/java/com/ruoyi/common/enums/VisitSendStateEnum.java deleted file mode 100644 index 881efa2..0000000 --- a/ruoyi-common/src/main/java/com/ruoyi/common/enums/VisitSendStateEnum.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.ruoyi.common.enums; - -/** - * 闅忚鑳藉惁鍙戦�侀暱鏈熶换鍔℃灇涓� - */ -public enum VisitSendStateEnum { - zyy("47231022633110211A2101", "涓芥按涓尰闄�", true), - jn("47255004333112711A1001", "鏅畞", false); - - - private String code; - private String desc; - //闅忚鏍囧織 - private Boolean visitFlag; - - VisitSendStateEnum(String code, String desc, Boolean visitFlag) { - this.code = code; - this.desc = desc; - this.visitFlag = visitFlag; - } - - public static Boolean getDescByCode(String code) { - VisitSendStateEnum[] organEnums = values(); - for (int i = 0; i < organEnums.length; i++) { - VisitSendStateEnum organEnum = organEnums[i]; - if (organEnum.getCode().equals(code)) { - return organEnum.getVisitFlag(); - } - } - return null; - } - - - public Boolean getVisitFlag() { - return visitFlag; - } - - public void setVisitFlag(Boolean visitFlag) { - this.visitFlag = visitFlag; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - public String getDesc() { - return desc; - } - - public void setDesc(String desc) { - this.desc = desc; - } -} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java index f0713bc..859672d 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java @@ -106,11 +106,23 @@ httpMethod.setRequestEntity(entity); int resultCode = httpClient.executeMethod(httpMethod); + // 鑾峰彇鍝嶅簲澶寸殑瀛楃缂栫爜 + String contentType = httpMethod.getResponseHeader("Content-Type") == null ? + null : httpMethod.getResponseHeader("Content-Type").getValue(); + String charset = "UTF-8"; // 榛樿浣跨敤UTF-8 + + if (contentType != null && contentType.contains("charset=")) { + String[] parts = contentType.split("charset="); + if (parts.length > 1) { + charset = parts[1].split(";")[0].trim(); + } + } + InputStream inputStream = httpMethod.getResponseBodyAsStream(); if (inputStream == null) { throw new HttpRequestException(RESPONSE_NULL_ERROR_CODE, "鍝嶅簲涓簄ull"); } - BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); + BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,charset)); StringBuffer stringBuffer = new StringBuffer(); String str = ""; while ((str = reader.readLine()) != null) { diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java index 2cec013..0140c8e 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PageUtils.java @@ -38,4 +38,14 @@ public static void clearPage() { PageHelper.clearPage(); } + + /** + * 璁$畻鍋忕Щ閲� + */ + public static Integer getOffset(Integer pageNum, Integer pageSize) { + if (pageNum == null) pageNum = 1; + if (pageSize == null) pageSize = 10; + return (pageNum - 1) * pageSize; + + } } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index ea1a17b..51eafa9 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -109,9 +109,8 @@ .authorizeRequests() // 瀵逛簬鐧诲綍login 娉ㄥ唽register 楠岃瘉鐮乧aptchaImage 鍏佽鍖垮悕璁块棶 .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", "/smartor/serviceSubtask/recordAccept", "/smartor/outPath/getInfoByParam", "/smartor/serviceExternal/addDeptInfo", "/smartor/serviceExternal/**", "/sso/**","/smartor/sltdHealthcareRecord/**","/smartor/servicetask/getScriptByCondition","/smartor/subtaskAnswer/saveMYDQuestionAnswer").permitAll() - .antMatchers(HttpMethod.GET, "/SSOLogin/**").permitAll() // 闈欐�佽祫婧愶紝鍙尶鍚嶈闂� - .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**","/getDept/*").permitAll().antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() + .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**","/getDept/*","/SSOLogin/**").permitAll().antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() .antMatchers("/smartor/organization/list").permitAll() // 闄や笂闈㈠鐨勬墍鏈夎姹傚叏閮ㄩ渶瑕侀壌鏉冭璇� .anyRequest().authenticated().and().headers().frameOptions().disable(); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java index 2bf520f..b5107b1 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java @@ -12,8 +12,6 @@ import org.springframework.stereotype.Component; import java.sql.Connection; -import java.util.ArrayList; -import java.util.List; import java.util.Properties; import static com.ruoyi.common.utils.SecurityUtils.getLoginUser; @@ -44,13 +42,6 @@ // 鑾峰彇鍘熷 SQL String originalSql = (String) metaObject.getValue("delegate.boundSql.sql"); - //娌冲崡鐨勭壒娈婅姹傦紝涓嶈orgid - if (active.equals("hn")) { - String s = removeOrgIdCondition(originalSql); - // 灏嗕慨鏀瑰悗鐨� SQL 鍐欏洖 - metaObject.setValue("delegate.boundSql.sql", s); - return invocation.proceed(); - } // 鑾峰彇褰撳墠 orgid String orgid = null; @@ -62,7 +53,7 @@ } catch (Exception e) { // e.printStackTrace(); } - if (StringUtils.isEmpty(orgid)) { + if (StringUtils.isEmpty(orgid) || active.equals("hn")) { return invocation.proceed(); } @@ -76,39 +67,6 @@ return invocation.proceed(); } - private String removeOrgIdCondition(String sql) { - // 杞崲涓哄皬鍐欎究浜庡尮閰嶏紝浣嗕繚鐣欏師濮嬪ぇ灏忓啓 - String lowerSql = sql.toLowerCase(); - - // 鏌ユ壘 WHERE 瀛愬彞鐨勪綅缃� - int whereIndex = lowerSql.indexOf("where"); - if (whereIndex == -1) { - return sql; // 娌℃湁 WHERE 瀛愬彞 - } - - // 鎻愬彇 WHERE 涔嬪悗鐨勯儴鍒� - String whereClause = sql.substring(whereIndex + 5); - String beforeWhere = sql.substring(0, whereIndex); - - // 浣跨敤姝e垯琛ㄨ揪寮忓垎鍓叉潯浠� - String[] conditions = whereClause.split("(?i)\\s+(AND|OR)\\s+"); - - // 杩囨护鎺夊寘鍚� orgid 鐨勬潯浠� - List<String> filteredConditions = new ArrayList<>(); - for (String condition : conditions) { - if (!containsOrgId(condition)) { - filteredConditions.add(condition.trim()); - } - } - - // 閲嶆柊鏋勫缓 SQL - if (filteredConditions.isEmpty()) { - return beforeWhere.trim(); - } else { - String newWhereClause = String.join(" AND ", filteredConditions); - return beforeWhere + "WHERE " + newWhereClause; - } - } private boolean containsOrgId(String condition) { // 妫�鏌ユ潯浠舵槸鍚﹀寘鍚� orgid锛堣�冭檻鍒悕锛� diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 8cf951a..22ffcfc 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -96,6 +96,7 @@ public String loginByUserName(String userName) { SysUser sysUser = userService.selectUserByUserNameAndDeptId(userName); + log.info("---------sysUser鐨勫�间负:{}", sysUser); if (ObjectUtils.isNotEmpty(sysUser)) { // 鏋勫缓鐧诲綍鐢ㄦ埛瀵硅薄 LoginUser loginUser = new LoginUser(); diff --git a/ruoyi-quartz/pom.xml b/ruoyi-quartz/pom.xml index 5fe52fd..76091b2 100644 --- a/ruoyi-quartz/pom.xml +++ b/ruoyi-quartz/pom.xml @@ -36,14 +36,14 @@ </dependency> <dependency> <groupId>com.ruoyi</groupId> - <artifactId>smartor</artifactId> - <version>3.8.5</version> + <artifactId>ruoyi-system</artifactId> </dependency> <dependency> <groupId>com.ruoyi</groupId> - <artifactId>ruoyi-system</artifactId> + <artifactId>smartor</artifactId> + <version>3.8.5</version> </dependency> </dependencies> -</project> \ No newline at end of file +</project> diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java index 7612fae..0ef55b5 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/CollectHISServiceImpl.java @@ -85,6 +85,7 @@ /** * 鍚屾浠诲姟 + * * @param * @return */ @@ -104,15 +105,15 @@ //鍚屾浣忛櫌鐥呬汉淇℃伅 List<Map<String, Object>> syncTemp = syncList.stream().filter(row -> row.get("syncName").equals("pat_med_inhosp")).collect(Collectors.toList()); if (syncTemp.size() > 0) { - count+=syncMedInhosp(syncTemp.get(0).get("startTime") + "", endTime); - utilsMapper.updateSql("update sys_sync_time set startTime='"+endTime+"' where syncName='pat_med_inhosp' "); + count += syncMedInhosp(syncTemp.get(0).get("startTime") + "", endTime); + utilsMapper.updateSql("update sys_sync_time set startTime='" + endTime + "' where syncName='pat_med_inhosp' "); } //鍚屾闂ㄨ瘖淇℃伅 syncTemp = syncList.stream().filter(row -> row.get("syncName").equals("pat_med_outhosp")).collect(Collectors.toList()); if (syncTemp.size() > 0) { - count+=syncOuthosp(syncTemp.get(0).get("startTime") + "", endTime); - utilsMapper.updateSql("update sys_sync_time set startTime='"+endTime+"' where syncName='pat_med_outhosp' "); + count += syncOuthosp(syncTemp.get(0).get("startTime") + "", endTime); + utilsMapper.updateSql("update sys_sync_time set startTime='" + endTime + "' where syncName='pat_med_outhosp' "); } @@ -124,10 +125,11 @@ /** * 鍚屾鎮h�呭熀鏈俊鎭� + * * @param * @return */ - private Integer syncArchive(String startTime,String endTime) { + private Integer syncArchive(String startTime, String endTime) { Integer count = 0; PatArchive pa = new PatArchive(); pa.setLastStartTime(startTime); @@ -148,8 +150,8 @@ count += patArchiveMapper.insertPatArchiveSingle(pm); } - }catch (Exception ex){ - log.info("鍙悓鎮h�呭熀鏈俊鎭�:"+ex.getMessage()); + } catch (Exception ex) { + log.info("鍙悓鎮h�呭熀鏈俊鎭�:" + ex.getMessage()); } } @@ -158,10 +160,11 @@ /** * 鍚屾鍑哄叆闄俊鎭� + * * @param * @return */ - private Integer syncMedInhosp(String startTime,String endTime) { + private Integer syncMedInhosp(String startTime, String endTime) { Integer count = 0; PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setLastStartTime(startTime); @@ -169,11 +172,11 @@ List<PatMedInhosp> patMedInhospList = chMapper.selectPatMedInhospList(patMedInhosp); log.info("鍙悓姝ュ嚭鍏ラ櫌鏁伴噺" + patMedInhospList.size()); for (PatMedInhosp pm : patMedInhospList) { - List<PatArchive> patArchives1=new ArrayList<>(); + List<PatArchive> patArchives1 = new ArrayList<>(); try { //鎮h�呭熀鏈俊鎭� - if(ObjectUtils.isNotEmpty(pm.getPatno())) { + if (ObjectUtils.isNotEmpty(pm.getPatno())) { PatArchive patArchive = new PatArchive(); patArchive.setPatientno(pm.getPatno()); patArchive.setPageSize(5); @@ -193,12 +196,12 @@ } } } - }catch (Exception ex) { + } catch (Exception ex) { log.info("鍚屾偅鑰呭熀鏈俊鎭�:" + ex.getMessage()); } try { - if(patArchives1.size()>0) { + if (patArchives1.size() > 0) { pm.setPatid(patArchives1.get(0).getId()); } //鍚屾鍑哄叆闄� @@ -222,10 +225,11 @@ /** * 鍚屾闂ㄨ瘖淇℃伅 + * * @param * @return */ - private Integer syncOuthosp(String startTime,String endTime) { + private Integer syncOuthosp(String startTime, String endTime) { Integer count = 0; PatMedOuthosp patMedOuthosp = new PatMedOuthosp(); patMedOuthosp.setLastStartTime(startTime); @@ -252,7 +256,7 @@ } } - }catch (Exception ex) { + } catch (Exception ex) { log.info("鍚屾偅鑰呭熀鏈俊鎭�:" + ex.getMessage()); } @@ -278,7 +282,7 @@ @Override public Integer selectPatMedInhospList(PatMedInhosp patMedInhosp) { List<PatMedInhosp> patMedInhospList = chMapper.selectPatMedInhospList(patMedInhosp); - log.info("鍙悓姝ョ梾浜烘暟閲�"+patMedInhospList.size()); + log.info("鍙悓姝ョ梾浜烘暟閲�" + patMedInhospList.size()); for (PatMedInhosp pm : patMedInhospList) { PatArchive patArchive = new PatArchive(); patArchive.setPatientno(pm.getPatno()); @@ -323,10 +327,8 @@ @Override public Boolean hnDataGather(HnDataGatherVO hnDataGatherVO) { - if(ObjectUtils.isEmpty(hnDataGatherVO.getStartTime()) ) - hnDataGatherVO.setStartTime(new Date()); - if(ObjectUtils.isEmpty(hnDataGatherVO.getEndTime()) ) - hnDataGatherVO.setEndTime(new Date()); + if (ObjectUtils.isEmpty(hnDataGatherVO.getStartTime())) hnDataGatherVO.setStartTime(new Date()); + if (ObjectUtils.isEmpty(hnDataGatherVO.getEndTime())) hnDataGatherVO.setEndTime(new Date()); LocalDate startDate = hnDataGatherVO.getStartTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); LocalDate endDate = hnDataGatherVO.getEndTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); @@ -415,10 +417,10 @@ @Override public Integer selectUserList(SysUser sysUser) { List<SysUser> sysUserList = chMapper.selectUserList(sysUser); - SysUser suerTemp=new SysUser(); + SysUser suerTemp = new SysUser(); List<SysUserDept> sysUserDeptAll = chMapper.yhyksxx(suerTemp); log.info("sysUserList鐨勯噰闆嗗埌鐨勬暟閲忎负锛歿}", sysUserList.size()); - int i =0;// sysUser2Mapper.batchUser(sysUserList); + int i = 0;// sysUser2Mapper.batchUser(sysUserList); for (SysUser sysUser1 : sysUserList) { // log.info("sysUser1鐨処D涓猴細{}", sysUser1.getUserId()); // log.info("sysUser1鐨凥ISUSERID涓猴細{}", sysUser1.getHisUserId()); @@ -438,16 +440,11 @@ //鏂板鐢ㄦ埛涓庨儴闂� //List<SysUserDept> sysUserDept = chMapper.yhyksxx(sysUser1); - List<SysUserDept> sysUserDept = sysUserDeptAll.stream() - .filter((SysUserDept b) -> b.getUserCode().equals(sysUser1.getHisUserId())) - .collect(Collectors.toList()); + List<SysUserDept> sysUserDept = sysUserDeptAll.stream().filter((SysUserDept b) -> b.getUserCode().equals(sysUser1.getHisUserId())).collect(Collectors.toList()); for (SysUserDept sud : sysUserDept) { if (usersTemp.size() > 0) { sud.setUserId(usersTemp.get(0).getUserId()); - SysDept sysDeptTemp = sysDept2Mapper.selectDeptByCode(sud.getDeptCode()); - if (sysDeptTemp != null) - sud.setDeptId(sysDeptTemp.getDeptId()); sysUserDeptMapper.insertSysUserDept(sud); } } @@ -458,20 +455,49 @@ @Override public Integer selectDeptList(SysDept dept) { - int count=0; + int count = 0; List<SysDept> sysDepts = chMapper.selectDeptList(dept); log.info("selectDeptList鐨勯噰闆嗗埌鐨勬暟閲忎负锛歿}", sysDepts.size()); - // count = sysDept2Mapper.batchDept(sysDepts); - for(SysDept row : sysDepts){ - SysDept sysDeptTemp= sysDept2Mapper.selectDeptByCode(row.getDeptCode()); - if(sysDeptTemp!=null&&sysDeptTemp.getDeptName()!=null){ + // count = sysDept2Mapper.batchDept(sysDepts); + for (SysDept row : sysDepts) { + SysDept sysDeptTemp = sysDept2Mapper.selectDeptByCode(row.getDeptCode(), null); + if (sysDeptTemp != null && sysDeptTemp.getDeptName() != null) { row.setDeptId(sysDeptTemp.getDeptId()); - count+=sysDept2Mapper.updateDept(row); - }else{ - count+=sysDept2Mapper.insertDept(row); + count += sysDept2Mapper.updateDept(row); + } else { + count += sysDept2Mapper.insertDept(row); } } return count; } + + /** + * 妫�鏌ュ苟鎵ц鍒嗚〃鐨勬牳蹇冩柟娉� + * + * @param tableName 瑕佹鏌ョ殑琛ㄥ悕 + */ + private synchronized void checkAndShard(String tableName) { + long currentCount = shardingMapper.getTableCount(tableName); + + if (currentCount >= SHARDING_THRESHOLD) { + log.warn("琛� '{}' 宸茶揪鍒板垎琛ㄩ槇鍊� {}锛屽噯澶囨墽琛屽垎琛ㄦ搷浣�...", tableName, SHARDING_THRESHOLD); + + String newTableName = tableName + "_" + java.time.LocalDate.now().format(java.time.format.DateTimeFormatter.ofPattern("yyyy_MM")); + Long maxId = shardingMapper.getMaxId(tableName); + if (maxId == null) maxId = 0L; + + shardingMapper.renameTable(tableName, newTableName); + log.info("宸插皢琛� '{}' 閲嶅懡鍚嶄负 '{}'", tableName, newTableName); + + shardingMapper.createLikeTable(tableName, newTableName); + log.info("宸插垱寤烘柊琛� '{}'", tableName); + + shardingMapper.setAutoIncrement(tableName, maxId + 1); + log.info("宸茶缃柊琛� '{}' 鐨勮嚜澧濱D璧峰鍊间负 {}", tableName, maxId + 1); + + log.info("琛� '{}' 鐨勫垎琛ㄦ搷浣滃畬鎴愶紒", tableName); + } + } + } diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java index 5fd05cb..297225c 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java @@ -5,9 +5,9 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.dx.MessageSend; import com.ruoyi.common.enums.MsgLSEnum; import com.ruoyi.common.enums.ServiceFromEnum; -import com.ruoyi.common.enums.VisitSendStateEnum; import com.ruoyi.common.enums.WxGZHEnum; import com.ruoyi.common.utils.HttpUtil; import com.ruoyi.common.utils.OkHttpExample; @@ -19,10 +19,7 @@ import com.ruoyi.system.service.ISysConfigService; import com.smartor.common.LSHospTokenUtil; import com.smartor.domain.*; -import com.smartor.mapper.HeLibraryMapper; -import com.smartor.mapper.ServiceSubtaskMapper; -import com.smartor.mapper.ServiceTaskMapper; -import com.smartor.mapper.SysUserImportMapper; +import com.smartor.mapper.*; import com.smartor.service.*; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; @@ -83,6 +80,9 @@ private IHNGatherPatArchiveService ihnGatherPatArchiveService; @Autowired + private IServiceSLTDHealthcareRecordService serviceSLTDHealthcareRecordService; + + @Autowired private SysUserImportMapper sysUserImportMapper; @Autowired @@ -93,7 +93,6 @@ @Autowired private ISysConfigService configService; - @Value("${localIP}") private String localIP; @@ -146,6 +145,9 @@ @Autowired IXHGatherPatArchiveService ixhGatherPatArchiveService; + + @Autowired + ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper; @Autowired ICollectHISService icollectHis; @@ -251,10 +253,59 @@ // 娌冲崡鏁版嵁閲囬泦 HnDataGatherVO hnDataGatherVO = new HnDataGatherVO(); log.info("銆恉ealHisData銆戞渤鍗楀紑濮嬮噰闆嗘暟鎹�"); + Date startTime = Date.from(yesterdayZero.atZone(ZoneId.systemDefault()).toInstant()); + Date endTime = Date.from(todayZero.atZone(ZoneId.systemDefault()).toInstant()); + + hnDataGatherVO.setStartTime(startTime); + hnDataGatherVO.setEndTime(endTime); ihnGatherPatArchiveService.hnDataGather(hnDataGatherVO); log.info("銆恉ealHisData銆戞渤鍗楃粨鏉熼噰闆嗘暟鎹�"); } catch (Exception e) { log.error("銆恉ealHisData銆戞渤鍗楁暟鎹噰闆嗗紓甯�", e); + } + } else if (active.trim().equals("sltd")) { + try { + // 鐪佺珛鍚屽痉鏁版嵁閲囬泦 + log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濆紑濮嬮噰闆嗘暟鎹�"); + String yesterday = LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); + ServiceSLTDInhospReqVO serviceSLTDInhospReqVO = new ServiceSLTDInhospReqVO(); + serviceSLTDInhospReqVO.setOrgId("20001001"); + serviceSLTDInhospReqVO.setCampusId(30001002L); + serviceSLTDInhospReqVO.setStartHeadTime(yesterday); + serviceSLTDInhospReqVO.setStartTailTime(yesterday); + List<String> list = new ArrayList<>(); + list.add("FH0108.02"); + serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list); + serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); + log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃叆闄⑩�濈祼鏉熼噰闆嗘暟鎹�"); + + log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滈棬鎬ヨ瘖鈥濆紑濮嬮噰闆嗘暟鎹�"); + serviceSLTDInhospReqVO.setStartHeadTime(null); + serviceSLTDInhospReqVO.setStartTailTime(null); + serviceSLTDInhospReqVO.setEncounterTimeStart(yesterday); + serviceSLTDInhospReqVO.setEncounterTimeEnd(yesterday); + List<String> list1 = new ArrayList<>(); + list1.add("FH0108.01"); + list1.add("FH0108.03"); + serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list1); + serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); + log.info("銆恉ealHisData銆戞渤鍗楃粨鈥滈棬鎬ヨ瘖鈥濇潫閲囬泦鏁版嵁"); + + log.info("銆恉ealHisData銆戠渷绔嬪悓寰封�滃嚭闄⑩�濆紑濮嬮噰闆嗘暟鎹�"); + serviceSLTDInhospReqVO.setStartHeadTime(null); + serviceSLTDInhospReqVO.setStartTailTime(null); + serviceSLTDInhospReqVO.setEncounterTimeStart(null); + serviceSLTDInhospReqVO.setEncounterTimeEnd(null); + serviceSLTDInhospReqVO.setPreOutHospitalHeadDate(yesterday); + serviceSLTDInhospReqVO.setPreOutHospitalTailDate(yesterday); + List<String> list2 = new ArrayList<>(); + list2.add("FH0108.02"); + serviceSLTDInhospReqVO.setHealthcareRecordTypeList(list2); + serviceSLTDHealthcareRecordService.queryHealthcareRecordList(serviceSLTDInhospReqVO); + log.info("銆恉ealHisData銆戞渤鍗楃粨鈥滃嚭闄⑩�濇潫閲囬泦鏁版嵁"); + + } catch (Exception e) { + log.error("銆恉ealHisData銆戠渷绔嬪悓寰锋暟鎹噰闆嗗紓甯�", e); } } } @@ -330,9 +381,69 @@ commonTaskcallMQ.setTaskid(serviceTask.getTaskid()); commonTaskcallMQ.setPreachform(serviceTask.getPreachform()); commonTaskcallMQ.setSendType("2"); - sfHandlle(commonTaskcallMQ, localIP); + + //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭�,骞朵笖闅忚鏃堕棿寰楁槸浠婂ぉ涔嬪墠鐨� + ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); + serviceSubtaskVO.setTaskid(commonTaskcallMQ.getTaskid()); + serviceSubtaskVO.setSendstate(2L); + serviceSubtaskVO.setVisitTime(new Date()); + List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.queryServiceSubtaskList(serviceSubtaskVO); + for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { + sfHandlle(serviceSubtask); + } + } } + + /** + * 澶勭悊琛ュ伩浠诲姟 + */ + public void compensateTask() { + //鑾峰彇鍒皊endstate=3 骞朵笖 visit_time涓轰粖澶╃殑subtask + ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); + serviceSubtaskVO.setSendstate(3L); + serviceSubtaskVO.setVisitTime(new Date()); + List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + for (ServiceSubtask serviceSubtask : serviceSubtaskList) { + //鏍规嵁褰撳墠鐨勬墽琛屾柟寮忥紝鑾峰彇涓嬩竴绉嶆墽琛屾柟寮� + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid()); + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + //鑾峰彇褰撳墠鎵ц鏂瑰紡鐨勫簭鍙� + Optional<Long> currentSort = serviceSubtaskPreachforms.stream().filter(item -> serviceSubtask.getCurrentPreachform().equals(item.getPreachform())).map(ServiceSubtaskPreachform::getSort).findFirst(); + Optional<Long> id = serviceSubtaskPreachforms.stream().filter(item -> serviceSubtask.getCurrentPreachform().equals(item.getPreachform())).map(ServiceSubtaskPreachform::getId).findFirst(); + if (currentSort.isPresent()) { + //1鍏堟鏌ヤ竴涓嬶紝鏄笉鏄湁鎵ц鐘舵�佹槸瀹屾垚鐨勶紙鎬曚箣鍓嶅凡缁忔湁瀹岀殑浜嗭紝娌℃湁灏唖ervuce_subtask鐨勭姸鎬佹敼鎴愬姛锛岃繖閲屽啀妫�鏌ヤ竴涓嬶級 + boolean finishState = serviceSubtaskPreachforms.stream().allMatch(item -> item.getSendstate().equals("9")); + if (finishState) { + serviceSubtask.setSendstate(6L); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + continue; + } + + //2鍒ゆ柇涓�涓嬶紝褰撳墠鐨剆ort鏄笉鏄瓑浜庨渶瑕佹墽琛岀殑鎬讳釜鏁帮紝濡傛灉绛変簬鐨勮瘽锛岃鏄庢槸鏈�鍚庝竴涓紝鐩存帴灏唖ervuce_subtask鐨勭姸鎬佹敼鎴�5锛屾墽琛屽け璐ュ氨琛屼簡 + Long cs = currentSort.get(); + if (cs.equals(serviceSubtaskPreachforms.size())) { + serviceSubtask.setSendstate(5L); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + //淇敼鍙戦�佹柟寮忕殑鐘舵�佷负澶辫触 + serviceSubtaskPreachform.setSendstate("5"); + serviceSubtaskPreachform.setId(id.get()); + serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform); + continue; + } + + //3.涓嶆槸鏈�鍚庝竴涓紝鑾峰彇鍒颁笅涓�涓墽琛屾柟寮�(鍥犱负閮芥槸鍦ㄤ粖澶╂墽琛岋紝閭e氨鐩存帴鍙戝嚭鍘诲氨瀹屼簡) + sfHandlle(serviceSubtask); + + } + + } + + } + /** * 鍒ゆ柇鏃ユ湡鏄惁鏄粖澶� @@ -352,374 +463,334 @@ return !localDate.isAfter(today); } - public void sfHandlle(CommonTaskcallMQ commonTaskcallMQ, String ip) { - log.info("銆恠fHandlle銆戝紑濮嬪鐞嗕换鍔★紝浠诲姟ID锛歿}", commonTaskcallMQ.getTaskid()); - //鍒ゆ柇涓�涓媍ommonTaskcallMQ涓殑stopstate鏄惁涓巌vr_task涓殑涓�鑷达紝涓嶄竴鑷达紝鍒欒鏄庢槸鏆傚仠浜� - ServiceTask ivrTask1 = serviceTaskMapper.selectServiceTaskByTaskid(commonTaskcallMQ.getTaskid()); - - if (StringUtils.isNotEmpty(commonTaskcallMQ.getPreachform())) { - //濡備綍浠诲姟鍙戦�佹柟寮忎笉涓虹┖ - String[] split = commonTaskcallMQ.getPreachform().split(","); - log.info("銆恠fHandlle銆戜换鍔″彂閫佹柟寮忥細{}", Arrays.toString(split)); - for (String serviceFrom : split) { - String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(serviceFrom)); - //閫氳繃浠诲姟ID鎷垮埌鎮h�呬俊鎭� - ServiceSubtaskVO ivrTaskcall = new ServiceSubtaskVO(); - ivrTaskcall.setTaskid(commonTaskcallMQ.getTaskid()); - ivrTaskcall.setSendstate(2L); - List<ServiceSubtask> subtaskList = iServiceSubtaskService.selectServiceSubtaskList(ivrTaskcall); - //涓芥按鏈夌殑鍖婚櫌杩樻病娉曞仛闀挎湡浠诲姟闅忚 - List<ServiceSubtask> subtaskList2 = new ArrayList<>(); - if (visitHosp == 2) { - try { - for (ServiceSubtask serviceSubtask : subtaskList) { - Boolean b = VisitSendStateEnum.getDescByCode(serviceSubtask.getOrgid()); - - if (b) subtaskList2.add(serviceSubtask); - } - } catch (Exception e) { - log.error("-------闀挎湡浠诲姟寮傚父涓猴細", e); - continue; - } -// for (ServiceSubtask serviceSubtask : subtaskList) { -// Boolean b = VisitSendStateEnum.getDescByCode(serviceSubtask.getOrgid()); -// -// if (b) subtaskList2.add(serviceSubtask); -// } - subtaskList = subtaskList2; - } - - // 鎸夌収 endtime 绂诲綋鍓嶆椂闂存渶杩戠殑鎺掑簭 - List<ServiceSubtask> selectServiceSubtaskList = subtaskList.stream().sorted(Comparator.comparing(subtask -> Math.abs(subtask.getEndtime().getTime() - new Date().getTime()))).collect(Collectors.toList()); - - if (descByCode.equals("鐢佃瘽")) { - String value = ""; - List<String> list = new ArrayList<>(); - for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { - ServiceTask ivrTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); - if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) { - //濡備綍浠诲姟琚�"鏆傚仠"鎴�"缁堟" - break; - } - if (org.apache.commons.lang3.StringUtils.isEmpty(serviceSubtask.getPhone())) { - serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�"); - serviceSubtask.setSendstate(4L); - serviceSubtask.setResult("error"); -// serviceSubtask.setFinishtime(new Date()); - serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); - continue; - } - boolean dateToday = isDateToday(serviceSubtask.getLongSendTime()); - //璇存槑鏄珛鍗冲彂閫�(鍏堟妸娑堟伅鏀惧埌cache-0涓紝 displayNo涓嶇煡閬撴�庝箞閰嶇疆) - if (dateToday) { - list.add(serviceSubtask.getId().toString()); - //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓� - String uuid = UUID.randomUUID().toString(); - serviceSubtask.setResult("success"); - serviceSubtask.setRemark("闀挎湡浠诲姟锛岀數璇濊繘鍏ラ槦鍒楁垚鍔�"); - serviceSubtask.setGuid(uuid); - serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); - - //浠诲姟鍙戦�佽褰� - ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); - serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); - serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); - serviceSubtaskRecord.setUuid(uuid); - serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); - serviceSubtaskRecord.setPreachform("3"); - serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); - serviceSubtaskRecord.setRemark("闀挎湡浠诲姟锛岀數璇濊繘鍏ラ槦鍒楁垚鍔�"); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); - - } - } - //灏嗚鎵ц鐨勬斁鍒扮紦瀛樹腑 - if (list.size() > 0) { -// redisCache.setCacheListLeft("cache-0", list); - redisCache.setCacheListLeftAndDistinct("cache-0", list); - log.info("銆恠fHandlle銆戠數璇濅换鍔″凡鍔犲叆闃熷垪锛屾暟閲忥細{}", list.size()); - } - } else if (descByCode.equals("澶氬獟浣�")) { - //澶氬獟浣� - } else if (descByCode.equals("绾歌川")) { - //绾歌川 - } else if (descByCode.equals("寰俊灏忕▼搴�")) { - //寰俊灏忕▼搴� - log.info("銆恠fHandlle銆戝鐞嗗井淇″皬绋嬪簭浠诲姟锛屼换鍔′俊鎭細{}", ivrTask1); - if (ObjectUtils.isNotEmpty(ivrTask1) && ivrTask1.getPatCycle() == 1) { - //璇存槑璇ヤ换鍔$殑鎮h�呮槸寰幆鎵ц鐨� - ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); - serviceSubtaskVO.setTaskid(ivrTask1.getTaskid()); - List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); - //杩欓噷闇�瑕佹牴鎹韩浠借瘉鍘婚噸 - List<ServiceSubtask> serviceSubtaskListFilter = new ArrayList<>(); - aa: - for (ServiceSubtask serviceSubtask : serviceSubtaskList) { - for (ServiceSubtask ss : serviceSubtaskListFilter) { - if (ss.getSfzh().equals(serviceSubtask.getSfzh())) { - continue aa; - } - } - serviceSubtaskListFilter.add(serviceSubtask); - } - for (ServiceSubtask serviceSubtask : serviceSubtaskListFilter) { - //灏嗗瓙浠诲姟ID鍒犻櫎 銆乻endstate鏀规垚3 - serviceSubtask.setSendstate(3L); - serviceSubtask.setId(null); - serviceSubtask.setFinishtime(null); - serviceSubtask.setCreateTime(new Date()); - serviceSubtask.setUpdateTime(new Date()); - //澶勭悊閲嶅鏂板闂锛屽厛鏌ヤ竴涓嬩粖澶╂槸涓嶆槸鏈夋柊澧炶繃锛屾柊澧炶繃灏变笉鏂板浜� - ServiceSubtaskVO ssvo = new ServiceSubtaskVO(); - LocalDate today = LocalDate.now(); - LocalTime startOfDay = LocalTime.of(0, 0, 0); - LocalTime endOfDay = LocalTime.of(23, 59, 59); - Date startOfDayDate = Date.from(today.atTime(startOfDay).atZone(ZoneId.systemDefault()).toInstant()); - Date endOfDayDate = Date.from(today.atTime(endOfDay).atZone(ZoneId.systemDefault()).toInstant()); - ssvo.setCreateStartTime(startOfDayDate); - ssvo.setCreateEndTime(endOfDayDate); - ssvo.setCreateBy(serviceSubtask.getCreateBy()); - ssvo.setSendname(serviceSubtask.getSendname()); - ssvo.setSfzh(serviceSubtask.getSfzh()); - List<ServiceSubtask> serviceSubtaskListByCreateTime = serviceSubtaskMapper.selectServiceSubtaskListByCreateTime(ssvo); - if (CollectionUtils.isEmpty(serviceSubtaskListByCreateTime)) - serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); - } - } - } else if (descByCode.equals("鐭俊")) { - RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); - String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); - for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { - log.info("銆恠fHandlle銆戝鐞嗙煭淇¢暱鏈熶换鍔★紝鎮h�匢D锛歿}", serviceSubtask.getPatid()); - boolean dateToday = isDateToday(serviceSubtask.getLongSendTime()); - if (dateToday) { - try { - //鍏堝垽鏂偅鑰呮槸涓嶆槸杩樿鍙戦�� - PatArchive patArchive = patArchiveService.selectPatArchiveByPatid(serviceSubtask.getPatid()); - if (!Objects.isNull(patArchive) && patArchive.getNotrequiredFlag() == "1") { - //涓嶉渶瑕佸彂閫� - serviceSubtask.setResult("error"); - serviceSubtask.setRemark(patArchive.getNotrequiredreason()); - serviceSubtask.setSendstate(4L); - iServiceSubtaskService.insertServiceSubtask(serviceSubtask); - continue; - } - String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); - String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key); - SendMagParam sendMagParam = new SendMagParam(); - sendMagParam.setType("4"); - ServiceOutPath serviceOutPath = new ServiceOutPath(); - serviceOutPath.setParam1(taskId); - serviceOutPath.setParam2(patid); - serviceOutPath.setParam3(ivrTask1.getTaskName()); - serviceOutPath.setParam6(subId); - serviceOutPath.setCreateTime(new Date()); - iServiceOutPathService.insertServiceOutPath(serviceOutPath); - String format = String.format("%03X", serviceOutPath.getId()); - serviceOutPath.setRadix(format); - serviceOutPath.setUpdateTime(new Date()); - iServiceOutPathService.updateServiceOutPath(serviceOutPath); - //鍏堝垽鏂竴涓嬪彂鐨勬槸涓嶆槸瀹f暀 - if (!"3".equals(serviceSubtask.getType())) { - sendMagParam.setPhone(serviceSubtask.getPhone()); - sendMagParam.setUrl(ip + ":" + req_path + "/wt?p=" + format); - sendMagParam.setContent("銆愭柊鍗庡尰闄€�戞偍濂斤紝閭�璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�"); - } else { - HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid()); - if ("2".equals(heLibrary.getHetype())) { - sendMagParam.setPhone(serviceSubtask.getPhone()); - sendMagParam.setContent(heLibrary.getPreachcontent()); - } - } - String isSuccess = null; - if (visitHosp == 1) { - Map<String, String> req = new HashMap<>(); - req.put("phone", sendMagParam.getPhone()); - req.put("content", sendMagParam.getContent()); - isSuccess = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req)); - } else if (visitHosp == 2) { - String url = configService.selectConfigByKey("token.360",serviceSubtask.getOrgid()); - //涓芥按鐨勭煭淇″彂閫佹柟寮� - Map<String, String> map = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid()); - String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid(),url); - if (ObjectUtils.isNotEmpty(map) && StringUtils.isEmpty(map.get("address"))) { - ServiceSubtask ss = new ServiceSubtask(); - ss.setResult("error"); - ss.setRemark("鐭俊鍙戦�佸け璐�,璇ユ満鏋勬病鏈夐厤缃煭淇″湴鍧�"); - ss.setSendstate(5L); - ss.setId(serviceSubtask.getId()); -// ss.setFinishtime(new Date()); - serviceSubtaskMapper.updateServiceSubtask(ss); - continue; - } - log.info("銆恠fHandlle銆戜附姘寸煭淇″彂閫侊紝鍦板潃锛歿}锛屽弬鏁帮細{}锛屾満鏋処D锛歿}", map.get("address"), sendMagParam, serviceSubtask.getOrgid()); - String dxCode = getDXCode(map.get("address"), sendMagParam.getPhone(), sendMagParam.getContent(), map.get("sendPersonId"), map.get("sendPersonName"), MsgLSEnum.getHeaderByCode(serviceSubtask.getOrgid()), token); - log.info("銆恠fHandlle銆戜附姘寸煭淇″彂閫佺粨鏋滐細{}", dxCode); - ObjectMapper objectMapper = new ObjectMapper(); - Map<String, Object> textParam = objectMapper.readValue(dxCode, Map.class); - String code = textParam.get("Code").toString(); - if (code.equals("0")) { - isSuccess = "true"; - } - }else if (visitHosp == 3) {//甯備竴鍖婚櫌 - String content=sendMagParam.getContent().replace("銆愭柊鍗庡尰闄€��",""); - smsUtils.sendSms(xhsmsPath,xhsmsAccount,xhsmsPwd,sendMagParam.getPhone(),content); - } - //浠诲姟鍙戦�佽褰� - 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("success"); - if (StringUtils.isNotEmpty(isSuccess) && !isSuccess.equals("true")) - serviceSubtaskRecord.setResult("error"); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); - - //鍙戦�佸畬鎴愬悗锛屼慨鏀圭姸鎬� - serviceSubtask.setSendstate(3L); - if (StringUtils.isNotEmpty(isSuccess) && !isSuccess.equals("true")) { - serviceSubtask.setResult("success"); - serviceSubtask.setRemark("鐭俊鍙戦�佹垚鍔�"); - } else { - serviceSubtask.setResult("error"); - serviceSubtask.setSendstate(5L); - serviceSubtask.setRemark("鐭俊鍙戦�佸け璐�"); - } - iServiceSubtaskService.updateServiceSubtask(serviceSubtask); - } catch (Exception e) { - String guid = UUID.randomUUID().toString(); - log.error("銆恠fHandlle銆戦暱鏈熶换鍔$煭淇″彂閫佸け璐ワ紝鍘熷洜锛歿}锛孏UID锛歿}", e.getMessage(), guid); - serviceSubtask.setResult("error"); - serviceSubtask.setRemark("绯荤粺閿欒"); - serviceSubtask.setSendstate(5L); - serviceSubtask.setGuid(guid); - iServiceSubtaskService.updateServiceSubtask(serviceSubtask); - } - } - } - } else if (descByCode.equals("鍏紬鍙�")) { - log.info("銆恠fHandlle銆戝鐞嗗叕浼楀彿浠诲姟锛屼换鍔′俊鎭細{}", ivrTask1); - //鍏紬鍙� - RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); - String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); - for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) { - boolean dateToday = isDateToday(serviceSubtask.getLongSendTime()); - if (dateToday) { - try { - //鍏堝垽鏂偅鑰呮槸涓嶆槸杩樿鍙戦�� - PatArchive patArchive = patArchiveService.selectPatArchiveByPatid(serviceSubtask.getPatid()); - if (!Objects.isNull(patArchive) && patArchive.getNotrequiredFlag() == "1") { - //涓嶉渶瑕佸彂閫� - serviceSubtask.setResult("error"); - serviceSubtask.setRemark(patArchive.getNotrequiredreason()); - serviceSubtask.setSendstate(4L); - iServiceSubtaskService.insertServiceSubtask(serviceSubtask); - continue; - } - String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); - String url = null; - url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"; - - //鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D - List<String> wxqqxx = WxGZHEnum.getDescByCode(patArchive.getOrgid()); - if (CollectionUtils.isEmpty(wxqqxx) || wxqqxx.size() < 4) { - ServiceSubtask ss = new ServiceSubtask(); - ss.setResult("error"); - ss.setRemark("璇ユ満鏋勭殑鍏紬鍙烽厤缃俊鎭笉鍏紝鏃犳硶閫氳繃鍏紬鍙峰彂閫�"); - ss.setSendstate(5L); - ss.setId(serviceSubtask.getId()); - serviceSubtaskMapper.updateServiceSubtask(ss); - continue; - } - - if (StringUtils.isEmpty(patArchive.getPatidHis())) { - ServiceSubtask ss = new ServiceSubtask(); - ss.setResult("error"); - ss.setRemark("鍏紬鍙峰彂閫佸け璐�,his绯荤粺鐨勬偅鑰卛d涓虹┖"); - ss.setSendstate(5L); - ss.setId(serviceSubtask.getId()); - serviceSubtaskMapper.updateServiceSubtask(ss); - continue; - } - String wxCode = ""; - if (visitHosp == 3) {//甯備竴鍖婚櫌 - String urlTemp="http://192.200.54.14:5003/sfjk/SendMessage?sfzh="+serviceSubtask.getSfzh() - +"&title=鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑诲~鍐欍��&content=鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑诲~鍐欍��&phone="+patArchive.getTelcode() - +"&url="+url+"&key=ff76f8904f5f32b5ee1739e8ea46e60g"; - HttpUtils.sendGet(urlTemp); - }else{ - wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), serviceSubtask.getSendname(), patArchive.getPatidHis(), wxqqxx); - } - Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class); - //浠诲姟鍙戦�佽褰� - 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("success"); - if (!map.isEmpty() && (Boolean) map.get("succ") == false) - serviceSubtaskRecord.setResult("error"); - serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); - - //鍙戦�佸畬鎴愬悗锛屼慨鏀圭姸鎬� - serviceSubtask.setSendstate(3L); - if ((Boolean) map.get("succ") == true) { - serviceSubtask.setResult("success"); - } else { - log.error("銆恠fHandlle銆戝叕浼楀彿鍙戦�佸け璐ワ紝鎮h�呬俊鎭細{}锛岄敊璇俊鎭細{}", serviceSubtask, map.get("msg")); - serviceSubtask.setResult("error"); - serviceSubtask.setSendstate(5L); - serviceSubtask.setRemark(map.get("msg").toString()); - } - iServiceSubtaskService.updateServiceSubtask(serviceSubtask); - } catch (Exception e) { - String guid = UUID.randomUUID().toString(); - log.error("銆恠fHandlle銆戦暱鏈熶换鍔″叕浼楀彿鍙戦�佸け璐ワ紝鍘熷洜锛歿}锛孏UID锛歿}", e.getMessage(), guid); - serviceSubtask.setResult("error"); - serviceSubtask.setRemark("绯荤粺閿欒"); - serviceSubtask.setSendstate(5L); - serviceSubtask.setGuid(guid); - iServiceSubtaskService.updateServiceSubtask(serviceSubtask); - } - } - } - } - //閫氱煡 MQ 娑堟伅宸茶鎺ユ敹,鍙互ACK(浠庨槦鍒椾腑鍒犻櫎)浜� 锛堣繖涓渶瑕佹牴鎹笟鍔″啀鍘诲鐞咥CK锛� - } + public void sfHandlle(ServiceSubtask serviceSubtask) { + //杩欓噷闇�瑕佹牴鎹韩浠借瘉鍘婚噸(缁欏井淇″皬绋嬪簭鐨勫浐瀹氫换鍔$敤鐨�) + List<ServiceSubtask> serviceSubtaskListFilter = new ArrayList<>(); + ServiceTask ivrTask1 = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + //鑾峰彇鍙戦�佹柟寮� + String sendPreachform = getSendPreachform(serviceSubtaskPreachform, serviceSubtask); + if (sendPreachform.equals("-1") || serviceSubtask.getSendstate() == 6 || serviceSubtask.getSendstate() == 5 || serviceSubtask.getSendstate() == 4) { + //璇存槑宸茬粡鍏ㄩ儴閬嶅巻瀹屼簡锛屽綋鍓嶇殑鎵ц鏂瑰紡搴忓彿鏄渶鍚庝竴涓簡 鎴栬�� 璇ユ偅鑰呭凡缁忛殢璁跨粨鏉燂紙鎴愬姛鎴栧け璐ヤ簡鎴栦笉鎵ц锛� + return; } + //鍏堝垽鏂偅鑰呮槸涓嶆槸杩樿鍙戦�� + PatArchive patArchive = patArchiveService.selectPatArchiveByPatid(serviceSubtask.getPatid()); + if (!Objects.isNull(patArchive) && patArchive.getNotrequiredFlag() == "1") { + //涓嶉渶瑕佸彂閫� + serviceSubtask.setResult("鎮h�呬笉闇�瑕侀殢璁�"); + serviceSubtask.setRemark(patArchive.getNotrequiredreason()); + serviceSubtask.setSendstate(4L); + iServiceSubtaskService.insertServiceSubtask(serviceSubtask); + setSuccessPreachForm(serviceSubtask, "-1", "涓嶉渶瑕佹墽琛�", "6"); + return; + } + + String descByCode = ServiceFromEnum.getDescByCode(Integer.valueOf(sendPreachform)); + if (descByCode.equals("鐢佃瘽")) { + List<String> list = new ArrayList<>(); + ServiceTask ivrTask = serviceTaskMapper.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); + if (ivrTask.getSendState() != null && ivrTask.getSendState() == 3 || ivrTask.getSendState() != null && ivrTask.getSendState() == 4) { + //濡備綍浠诲姟琚�"鏆傚仠"鎴�"缁堟" + return; + } + + if (org.apache.commons.lang3.StringUtils.isEmpty(serviceSubtask.getPhone())) { + setSuccessPreachForm(serviceSubtask, sendPreachform, "鎵嬫満鍙蜂负绌�", "4"); + return; + } + boolean dateToday = isDateToday(serviceSubtask.getVisitTime()); + //璇存槑鏄珛鍗冲彂閫�(鍏堟妸娑堟伅鏀惧埌cache-0涓紝 displayNo涓嶇煡閬撴�庝箞閰嶇疆) + if (dateToday) { + list.add(serviceSubtask.getId().toString()); + //鍦ㄥ瓙浠诲姟琛ㄩ噷璁板綍涓�涓� + setSuccessPreachForm(serviceSubtask, sendPreachform, "闀挎湡浠诲姟锛岀數璇濊繘鍏ラ槦鍒楁垚鍔�", "2"); + //浠诲姟鍙戦�佽褰� + ServiceSubtaskRecord serviceSubtaskRecord = new ServiceSubtaskRecord(); + serviceSubtaskRecord.setTaskid(serviceSubtask.getTaskid().toString()); + serviceSubtaskRecord.setSubtaskId(serviceSubtask.getId()); + serviceSubtaskRecord.setUuid(UUID.randomUUID().toString()); + serviceSubtaskRecord.setTasktype(serviceSubtask.getType()); + serviceSubtaskRecord.setPreachform("3"); + serviceSubtaskRecord.setStartTime(System.currentTimeMillis()); + serviceSubtaskRecord.setRemark("闀挎湡浠诲姟锛岀數璇濊繘鍏ラ槦鍒楁垚鍔�"); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + } + //灏嗚鎵ц鐨勬斁鍒扮紦瀛樹腑 + if (list.size() > 0) { + redisCache.setCacheListLeftAndDistinct("cache-0", list); + log.info("銆恠fHandlle銆戠數璇濅换鍔″凡鍔犲叆闃熷垪锛屾暟閲忥細{}", list.size()); + } + } else if (descByCode.equals("寰俊灏忕▼搴�")) { + //寰俊灏忕▼搴� + if (ObjectUtils.isNotEmpty(ivrTask1) && ivrTask1.getPatCycle() == 1) { + //璇存槑璇ヤ换鍔$殑鎮h�呮槸寰幆鎵ц鐨� + //鍒ゆ柇鎮h�呰繃婊ら泦鍚堜腑锛屾槸鍚﹀瓨鍦ㄥ綋鍓嶆墽琛屾偅鑰呯殑韬唤璇� + boolean continutFlag = false; + for (ServiceSubtask ss : serviceSubtaskListFilter) { + if (ss.getSfzh().equals(serviceSubtask.getSfzh())) { + continutFlag = true; + } + } + //濡傛灉瀛樺湪褰撳墠鎵ц鎮h�呯殑韬唤璇侊紝鍒欎笉鎵ц璇ユ偅鑰呬簡 + if (continutFlag) { + return; + } + + //灏嗗瓙浠诲姟ID鍒犻櫎 銆乻endstate鏀规垚3锛堝惊鐜换鍔″氨鏄繖鏍凤級 + serviceSubtask.setSendstate(3L); + serviceSubtask.setId(null); + serviceSubtask.setFinishtime(null); + serviceSubtask.setCreateTime(new Date()); + serviceSubtask.setUpdateTime(new Date()); + serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); + + //灏嗗綋鍓嶈鎵ц鐨勬偅鑰呮斁鍒拌繃婊ゆ偅鑰呴泦鍚堜腑 + serviceSubtaskListFilter.add(serviceSubtask); + } + } else if (descByCode.equals("鐭俊")) { + RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); + String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); + log.info("銆恠fHandlle銆戝鐞嗙煭淇¢暱鏈熶换鍔★紝鎮h�匢D锛歿}", serviceSubtask.getPatid()); + boolean dateToday = isDateToday(serviceSubtask.getVisitTime()); + if (dateToday) { + try { + String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); + String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key); + SendMagParam sendMagParam = new SendMagParam(); + sendMagParam.setType("4"); + ServiceOutPath serviceOutPath = new ServiceOutPath(); + serviceOutPath.setParam1(taskId); + serviceOutPath.setParam2(patid); + serviceOutPath.setParam3(ivrTask1.getTaskName()); + serviceOutPath.setParam6(subId); + serviceOutPath.setCreateTime(new Date()); + iServiceOutPathService.insertServiceOutPath(serviceOutPath); + String format = String.format("%03X", serviceOutPath.getId()); + serviceOutPath.setRadix(format); + serviceOutPath.setUpdateTime(new Date()); + iServiceOutPathService.updateServiceOutPath(serviceOutPath); + //鍏堝垽鏂竴涓嬪彂鐨勬槸涓嶆槸瀹f暀 + if (!"3".equals(serviceSubtask.getType())) { + sendMagParam.setPhone(serviceSubtask.getPhone()); + sendMagParam.setUrl(localIP + ":" + req_path + "/wt?p=" + format); + //濡傛灉type鏄闊抽殢璁跨殑璇濓紙璇存槑琛ュ伩鍙戦�佹柟寮忎腑鏈夌數璇濋殢璁跨殑鏂瑰紡锛岃繖閲岀殑澶栭摼灏卞湴鍧�鍙兘鐢�/sf锛� + if (serviceSubtask.getType().equals("1")) + sendMagParam.setUrl(localIP + ":" + req_path + "/sf?p=" + format); + sendMagParam.setContent("鎮ㄥソ锛岄個璇锋偍濉啓鍑洪櫌璋冩煡琛紝璇风偣鍑�" + sendMagParam.getUrl() + "濉啓銆傛劅璋㈡偍閰嶅悎锛�"); + } else { + HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid()); + if ("2".equals(heLibrary.getHetype())) { + sendMagParam.setPhone(serviceSubtask.getPhone()); + sendMagParam.setContent(heLibrary.getPreachcontent()); + } + } + String isSuccess = null; + if (visitHosp == 1) { + Map<String, String> req = new HashMap<>(); + req.put("phone", sendMagParam.getPhone()); + req.put("content", sendMagParam.getContent()); + isSuccess = HttpUtil.postJsonRequest(xhsmsPath, new Gson().toJson(req)); + } else if (visitHosp == 2) { + String url = configService.selectConfigByKey("token.360", serviceSubtask.getOrgid()); + //涓芥按鐨勭煭淇″彂閫佹柟寮� + Map<String, String> map = MsgLSEnum.getAddressByCode(serviceSubtask.getOrgid()); + String token = LSHospTokenUtil.getToken(serviceSubtask.getOrgid(), url); + if (ObjectUtils.isNotEmpty(map) && StringUtils.isEmpty(map.get("address"))) { + setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�,璇ユ満鏋勬病鏈夐厤缃煭淇″湴鍧�", "5"); + return; + } + log.info("銆恠fHandlle銆戜附姘寸煭淇″彂閫侊紝鍦板潃锛歿}锛屽弬鏁帮細{}锛屾満鏋処D锛歿}", map.get("address"), sendMagParam, serviceSubtask.getOrgid()); + String dxCode = getDXCode(map.get("address"), sendMagParam.getPhone(), sendMagParam.getContent(), map.get("sendPersonId"), map.get("sendPersonName"), MsgLSEnum.getHeaderByCode(serviceSubtask.getOrgid()), token); + log.info("銆恠fHandlle銆戜附姘寸煭淇″彂閫佺粨鏋滐細{}", dxCode); + ObjectMapper objectMapper = new ObjectMapper(); + Map<String, Object> textParam = objectMapper.readValue(dxCode, Map.class); + String code = textParam.get("Code").toString(); + if (code.equals("0")) { + isSuccess = "true"; + } + } else if (visitHosp == 4) { + //鐪佺珛鍚屽痉鐨勭煭淇″彂閫佹柟寮� + JSONObject data = MessageSend.sendMsg(sendMagParam.getContent(), "2", sendMagParam.getPhone(), LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))); + String code = data.get("code").toString(); + if (StringUtils.isNotEmpty(code) && code.equals("00000")) { + isSuccess = "true"; + } + } else if (visitHosp == 3) {//甯備竴鍖婚櫌 + String content = sendMagParam.getContent().replace("銆愭柊鍗庡尰闄€��", ""); + String result = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, sendMagParam.getPhone(), content); + //杩欓噷闇�瑕佹牴鎹畆esult杩斿洖鐨勫�煎幓鍒ゆ柇锛屾槸鍚︽垚鍔燂紝鐒跺悗灏嗗�艰祴鍊肩粰isSuccess + + + } + //浠诲姟鍙戦�佽褰� + 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("success"); + if (StringUtils.isNotEmpty(isSuccess) && !isSuccess.equals("true")) + serviceSubtaskRecord.setResult("error"); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + + //鍙戦�佸畬鎴愬悗锛屼慨鏀圭姸鎬� + serviceSubtask.setSendstate(3L); + if (StringUtils.isNotEmpty(isSuccess) && isSuccess.equals("true")) { + serviceSubtask.setResult("success"); + serviceSubtask.setRemark("鐭俊鍙戦�佹垚鍔�"); + setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佹垚鍔�", "2"); + } else { + serviceSubtask.setResult("error"); + serviceSubtask.setRemark("鐭俊鍙戦�佸け璐�"); + setSuccessPreachForm(serviceSubtask, sendPreachform, "鐭俊鍙戦�佸け璐�", "5"); + } + } catch (Exception e) { + String guid = UUID.randomUUID().toString(); + log.error("銆恠fHandlle銆戦暱鏈熶换鍔$煭淇″彂閫佸け璐ワ紝鍘熷洜锛歿}锛孏UID锛歿}", e.getMessage(), guid); + setSuccessPreachForm(serviceSubtask, sendPreachform, "闀挎湡浠诲姟鐭俊鍙戦�佸け璐�:绯荤粺閿欒", "5"); + } + } + + } else if (descByCode.equals("鍏紬鍙�")) { + log.info("銆恠fHandlle銆戝鐞嗗叕浼楀彿浠诲姟锛屼换鍔′俊鎭細{}", ivrTask1); + //鍏紬鍙� + RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); + String taskId = rsaPublicKeyExample.encryptedData(ivrTask1.getTaskid().toString(), pub_key); + boolean dateToday = isDateToday(serviceSubtask.getVisitTime()); + if (dateToday) { + try { + String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key); + String url = null; + url = localIP + ":" + req_path + "/outsideChainwt?param1=" + taskId + "¶m2=" + patid + "¶m3=" + URLEncoder.encode(ivrTask1.getTaskName(), StandardCharsets.UTF_8.toString()) + "¶m5=false"; + + //鑾峰彇寰俊鍏紬鍙疯姹備俊鎭牴鎹満鏋処D + List<String> wxqqxx = WxGZHEnum.getDescByCode(patArchive.getOrgid()); + if (CollectionUtils.isEmpty(wxqqxx) || wxqqxx.size() < 4) { + setSuccessPreachForm(serviceSubtask, sendPreachform, "銆愬叕浼楀彿銆戣鏈烘瀯鐨勫叕浼楀彿閰嶇疆淇℃伅涓嶅叏锛屾棤娉曢�氳繃鍏紬鍙峰彂閫�", "4"); + return; + } + + if (StringUtils.isEmpty(patArchive.getPatidHis())) { + setSuccessPreachForm(serviceSubtask, sendPreachform, "銆愬叕浼楀彿銆戝叕浼楀彿鍙戦�佸け璐�,his绯荤粺鐨勬偅鑰卛d涓虹┖", "5"); + return; + } + String wxCode = getWXCode(serviceSubtask.getSfzh(), url, serviceSubtask.getTaskName(), serviceSubtask.getTaskDesc(), patArchive.getTelcode(), serviceSubtask.getSendname(), patArchive.getPatidHis(), wxqqxx); + + Map<String, Object> map = JSONObject.parseObject(wxCode, Map.class); + //浠诲姟鍙戦�佽褰� + 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("success"); + if (!map.isEmpty() && (Boolean) map.get("succ") == false) serviceSubtaskRecord.setResult("error"); + serviceSubtaskRecordService.insertServiceSubtaskRecord(serviceSubtaskRecord); + + //鍙戦�佸畬鎴愬悗锛屼慨鏀圭姸鎬� + serviceSubtask.setSendstate(3L); + if ((Boolean) map.get("succ") == true) { + serviceSubtask.setResult("success"); + setSuccessPreachForm(serviceSubtask, sendPreachform, "銆愬叕浼楀彿銆戝叕浼楀彿鍙戦�佹垚鍔�", "2"); + } else { + log.error("銆恠fHandlle銆戝叕浼楀彿鍙戦�佸け璐ワ紝鎮h�呬俊鎭細{}锛岄敊璇俊鎭細{}", serviceSubtask, map.get("msg")); + setSuccessPreachForm(serviceSubtask, sendPreachform, "銆愬叕浼楀彿銆戝叕浼楀彿鍙戦�佸け璐�", "5"); + } + } catch (Exception e) { + String guid = UUID.randomUUID().toString(); + log.error("銆恠fHandlle銆戦暱鏈熶换鍔″叕浼楀彿鍙戦�佸け璐ワ紝鍘熷洜锛歿}锛孏UID锛歿}", e.getMessage(), guid); + setSuccessPreachForm(serviceSubtask, sendPreachform, "銆愬叕浼楀彿銆戦暱鏈熶换鍔″叕浼楀彿鍙戦�佸け璐ワ紝鍘熷洜锛�" + e.getMessage(), "5"); + } + } + } else if (descByCode.equals("浜哄伐")) { + setSuccessPreachForm(serviceSubtask, sendPreachform, "浜哄伐寰呮墽琛�", "2"); + } + } - private String getKey() { - Map<String, String> map = new HashMap<>(); - for (int i = 0; i < 6; i++) { - Boolean aBoolean = redisCache.hasKey("cache-" + i); - if (!aBoolean) { - redisCache.setCacheObject("cache-" + i, ""); - map.put("cache-" + i, ""); - } else { - map.put("cache-" + i, redisCache.getCacheObject("cache-" + i)); - } + + private Date getNextVisitTime(Long subid, Long taskid, Date visitTime) { + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setSubid(subid); + serviceSubtaskPreachform.setTaskid(taskid); + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { + String compensateTime = serviceSubtaskPreachforms.get(0).getCompensateTime(); + int hoursToAdd = Integer.valueOf(compensateTime) * 24; + Calendar calendar = Calendar.getInstance(); + calendar.setTime(visitTime); + calendar.add(Calendar.HOUR_OF_DAY, hoursToAdd); + Date newDate = calendar.getTime(); + return newDate; + } + return visitTime; + } + + private String getSendPreachform(ServiceSubtaskPreachform serviceSubtaskPreachform, ServiceSubtask serviceSubtask) { + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + + // 鎯呭喌1锛歝urrentPreachform涓虹┖锛屽彇sort涓�1鐨刾reachform + if (StringUtils.isEmpty(serviceSubtask.getCurrentPreachform())) { + return serviceSubtaskPreachforms.stream().filter(item -> item.getSort() == 1L).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse(null); } - String key = null; - String value = ""; - for (Map.Entry<String, String> entry : map.entrySet()) { - if (StringUtils.isEmpty(value)) { - value = entry.getValue(); - key = entry.getKey(); - } else { - if (entry.getValue().split(",").length < value.split(",").length) { - value = entry.getValue(); - key = entry.getKey(); - } + // 鎯呭喌2锛歝urrentPreachform涓嶄负绌猴紝鎵句笅涓�涓猻ort + Optional<Long> currentSort = serviceSubtaskPreachforms.stream().filter(item -> serviceSubtask.getCurrentPreachform().equals(item.getPreachform())).map(ServiceSubtaskPreachform::getSort).findFirst(); + + if (currentSort.isPresent()) { + // 妫�鏌ユ槸鍚︽墍鏈塻endstate涓嶇瓑浜�9 + boolean allSendStateNot1AndNot9 = serviceSubtaskPreachforms.stream().allMatch(item -> !item.getSendstate().equals("9")); + if (!allSendStateNot1AndNot9) { + //璇存槑锛屽湪鏌愮鏂瑰紡鍙戦�佸け璐ュ悗锛屽張鎴愬姛浜嗭紙渚嬪鐭俊鎴栧叕浼楀彿锛屽湪瑙勫畾鏃堕棿澶栨偅鑰呭仛瀹屼簡锛岃繖涓椂鍊欙紝鐘舵�佹敼鎴愪簡9锛� + serviceSubtask.setSendstate(6L); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + return "-1"; } + + // 褰搒ort绛変簬鍒楄〃size鏃讹紝骞朵笖鎵�鏈塻endstate閮戒笉绛変簬9锛屽垯杩斿洖-1 + if (currentSort.get().equals((long) serviceSubtaskPreachforms.size())) { + if (allSendStateNot1AndNot9) { + //璇存槑鍏ㄥ彂閫佸け璐ヤ簡 + serviceSubtask.setSendstate(5L); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + //淇敼鍙戦�佺姸鎬� + setFail(serviceSubtaskPreachforms, serviceSubtask); + } + return "-1"; + } + + // 褰搒ort绛変簬鍒楄〃size鏃讹紝涓嬩竴涓猻ort涓�-1 + Long nextSort = currentSort.get() + 1; + + //濡傛灉褰撳墠鐨勫彂閫佹柟寮忎笉涓虹┖锛屽苟涓斿紑濮嬪噯澶囪鐢ㄤ笅涓�绉嶆柟寮忓彂閫佷簡锛岄偅褰撳墠鐨勮偗瀹氭病鏈夊彂閫佹垚鍔燂紝闇�瑕佽缃け璐� + // (杩欓噷涓昏鏄紝浜哄伐濡傛灉娌℃湁闅忚锛岀劧鍚庡埌鍏紬鍙风殑鏃跺�欙紝灏变笉浼氬啀鍘荤浜哄伐鏄惁鎴愬姛锛屼汉宸ョ殑鐘舵�佷細涓�鐩村崱鍦�2鐨勭姸鎬佷笂) + if (StringUtils.isNotEmpty(serviceSubtask.getCurrentPreachform())) { + setFail(serviceSubtaskPreachforms, serviceSubtask); + } + + // 鎵惧埌涓嬩竴涓猻ort瀵瑰簲鐨刾reachform + return serviceSubtaskPreachforms.stream().filter(item -> nextSort.equals(item.getSort())).map(ServiceSubtaskPreachform::getPreachform).findFirst().orElse("-1"); } - return key; + + return null; } + + private Integer setFail(List<ServiceSubtaskPreachform> serviceSubtaskPreachforms, ServiceSubtask serviceSubtask) { + Optional<Long> id = serviceSubtaskPreachforms.stream().filter(item -> serviceSubtask.getCurrentPreachform().equals(item.getPreachform())).map(ServiceSubtaskPreachform::getId).findFirst(); + if (id.isPresent()) { + ServiceSubtaskPreachform subtaskPreachform = new ServiceSubtaskPreachform(); + subtaskPreachform.setSendstate("5"); + subtaskPreachform.setId(id.get()); + return serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(subtaskPreachform); + } + return 0; + } + private String getDXCode(String address, String ShouJiHM, String FaSongNR, String FaSongRID, String FaSongRXM, Map<String, Object> headerMap, String token) { Map<String, Object> map = new LinkedHashMap<>(); @@ -800,4 +871,61 @@ log.error("銆恉ealHisData銆慔IS鏁版嵁閲囬泦寮傚父", e); } } + + public Boolean setSuccessPreachForm(ServiceSubtask serviceSubtask, String preachform, String remark, String failSendstate) { + if (preachform.equals("-1")) { + //璇存槑閮戒笉闇�瑕佹墽琛屼簡 + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid()); + serviceSubtaskPreachform.setSendstate(failSendstate); + serviceSubtaskPreachformMapper.updateSSPByCondition(serviceSubtaskPreachform); + return true; + } + + + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid()); + List<ServiceSubtaskPreachform> sspCount = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + + serviceSubtaskPreachform.setPreachform(preachform); + //1:鏈彂閫佺姸鎬� + serviceSubtaskPreachform.setSendstate("1"); + //鐢佃瘽鐨勬湭鍙戦�佺姸鎬侊紝闇�瑕佹煡2锛屽洜涓猴紝鏁版嵁鍙兘鍗″湪闃熷垪閲屼簡; 锛堟病杩涢槦鍒楋紝鐢佃瘽鐘舵�佽繕鏄�1锛� + if (preachform.equals("3") && StringUtils.isNotEmpty(failSendstate) && Long.valueOf(failSendstate) > 2) + serviceSubtaskPreachform.setSendstate("2"); + //浜哄伐鐨勬湭鍙戦�佺姸鎬侊紝闇�瑕佹煡2 + if (preachform.equals("1") && StringUtils.isNotEmpty(failSendstate) && Long.valueOf(failSendstate) > 2) + serviceSubtaskPreachform.setSendstate("2"); + + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { + ServiceSubtaskPreachform serviceSubtaskPreachform1 = serviceSubtaskPreachforms.get(0); + serviceSubtaskPreachform1.setSendstate(failSendstate); + serviceSubtaskPreachform1.setRemark(remark); + serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform1); + + //濡傛灉褰撳墠鐨刾reachform宸茬粡鏄渶鍚庝竴涓簡锛岄偅鐩存帴灏唖erviceSubtask鐨剆endstate鐘舵�佹敼鎴�5灏辫浜�(鍏ㄥけ璐ヤ簡) + if (serviceSubtaskPreachform1.getSort() == sspCount.size()) { + if (failSendstate.equals("4") || failSendstate.equals("5")) { + serviceSubtask.setCurrentPreachform(preachform); + serviceSubtask.setSendstate(5L); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + return true; + } + } + } else { + log.error("銆愬畾鏃朵换鍔′腑璇ユ偅鑰呮病鏈夋煡璇㈠埌灞炰簬浠栫殑鍙戦�佹柟寮忥紝subid锛歿},prechform:{},orgid:{}銆�", serviceSubtask.getId(), preachform, serviceSubtask.getOrgid()); + return false; + } + //灏嗕笅涓�娆$殑闅忚鏃堕棿涓庡綋鍓嶆墽琛屾柟寮忚褰曚竴涓� + serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime())); + serviceSubtask.setCurrentPreachform(preachform); + serviceSubtask.setSendstate(3L); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + return true; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java index 0468434..96c1d92 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysConfigService.java @@ -5,14 +5,14 @@ /** * 鍙傛暟閰嶇疆 鏈嶅姟灞� - * + * * @author ruoyi */ public interface ISysConfigService { /** * 鏌ヨ鍙傛暟閰嶇疆淇℃伅 - * + * * @param configId 鍙傛暟閰嶇疆ID * @return 鍙傛暟閰嶇疆淇℃伅 */ @@ -20,30 +20,24 @@ /** * 鏍规嵁閿悕鏌ヨ鍙傛暟閰嶇疆淇℃伅 - * + * * @param configKey 鍙傛暟閿悕 * @return 鍙傛暟閿�� */ public String selectConfigByKey(String configKey); /** - * 鏍规嵁閿悕鏌ヨ鍙傛暟閰嶇疆淇℃伅 - * - * @param configKey 鍙傛暟閿悕 - * @return 鍙傛暟閿�� - */ - public String selectConfigByKey(String configKey,String orgid); - - /** * 鑾峰彇楠岃瘉鐮佸紑鍏� - * + * * @return true寮�鍚紝false鍏抽棴 */ public boolean selectCaptchaEnabled(); + public String selectConfigByKey(String configKey,String orgid); + /** * 鏌ヨ鍙傛暟閰嶇疆鍒楄〃 - * + * * @param config 鍙傛暟閰嶇疆淇℃伅 * @return 鍙傛暟閰嶇疆闆嗗悎 */ @@ -51,7 +45,7 @@ /** * 鏂板鍙傛暟閰嶇疆 - * + * * @param config 鍙傛暟閰嶇疆淇℃伅 * @return 缁撴灉 */ @@ -59,7 +53,7 @@ /** * 淇敼鍙傛暟閰嶇疆 - * + * * @param config 鍙傛暟閰嶇疆淇℃伅 * @return 缁撴灉 */ @@ -67,7 +61,7 @@ /** * 鎵归噺鍒犻櫎鍙傛暟淇℃伅 - * + * * @param configIds 闇�瑕佸垹闄ょ殑鍙傛暟ID */ public void deleteConfigByIds(Long[] configIds); @@ -89,7 +83,7 @@ /** * 鏍¢獙鍙傛暟閿悕鏄惁鍞竴 - * + * * @param config 鍙傛暟淇℃伅 * @return 缁撴灉 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsRecordsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsRecordsServiceImpl.java index b95d21a..bb0db11 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsRecordsServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SmsRecordsServiceImpl.java @@ -48,7 +48,6 @@ @Autowired private ISysConfigService configService; - /** * 鏌ヨ鐭俊璁板綍 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java index f03e493..a429707 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysConfigServiceImpl.java @@ -19,7 +19,7 @@ /** * 鍙傛暟閰嶇疆 鏈嶅姟灞傚疄鐜� - * + * * @author ruoyi */ @Service @@ -42,7 +42,7 @@ /** * 鏌ヨ鍙傛暟閰嶇疆淇℃伅 - * + * * @param configId 鍙傛暟閰嶇疆ID * @return 鍙傛暟閰嶇疆淇℃伅 */ @@ -57,7 +57,7 @@ /** * 鏍规嵁閿悕鏌ヨ鍙傛暟閰嶇疆淇℃伅 - * + * * @param configKey 鍙傛暟key * @return 鍙傛暟閿�� */ @@ -81,6 +81,22 @@ } /** + * 鑾峰彇楠岃瘉鐮佸紑鍏� + * + * @return true寮�鍚紝false鍏抽棴 + */ + @Override + public boolean selectCaptchaEnabled() + { + String captchaEnabled = selectConfigByKey("sys.account.captchaEnabled"); + if (StringUtils.isEmpty(captchaEnabled)) + { + return true; + } + return Convert.toBool(captchaEnabled); + } + + /** * 鏍规嵁閿悕鏌ヨ鍙傛暟閰嶇疆淇℃伅 * * @param configKey 鍙傛暟key @@ -100,26 +116,9 @@ } return StringUtils.EMPTY; } - - /** - * 鑾峰彇楠岃瘉鐮佸紑鍏� - * - * @return true寮�鍚紝false鍏抽棴 - */ - @Override - public boolean selectCaptchaEnabled() - { - String captchaEnabled = selectConfigByKey("sys.account.captchaEnabled"); - if (StringUtils.isEmpty(captchaEnabled)) - { - return true; - } - return Convert.toBool(captchaEnabled); - } - /** * 鏌ヨ鍙傛暟閰嶇疆鍒楄〃 - * + * * @param config 鍙傛暟閰嶇疆淇℃伅 * @return 鍙傛暟閰嶇疆闆嗗悎 */ @@ -131,7 +130,7 @@ /** * 鏂板鍙傛暟閰嶇疆 - * + * * @param config 鍙傛暟閰嶇疆淇℃伅 * @return 缁撴灉 */ @@ -148,7 +147,7 @@ /** * 淇敼鍙傛暟閰嶇疆 - * + * * @param config 鍙傛暟閰嶇疆淇℃伅 * @return 缁撴灉 */ @@ -171,7 +170,7 @@ /** * 鎵归噺鍒犻櫎鍙傛暟淇℃伅 - * + * * @param configIds 闇�瑕佸垹闄ょ殑鍙傛暟ID */ @Override @@ -224,7 +223,7 @@ /** * 鏍¢獙鍙傛暟閿悕鏄惁鍞竴 - * + * * @param config 鍙傛暟閰嶇疆淇℃伅 * @return 缁撴灉 */ @@ -242,7 +241,7 @@ /** * 璁剧疆cache key - * + * * @param configKey 鍙傛暟閿� * @return 缂撳瓨閿甼ey */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 323dd8c..ca34c52 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -272,7 +272,11 @@ @Override public SysUser selectUserByUserNameAndDeptId(String userName) { String[] split = userName.split("&"); + if (split[2].contains("null")) { + split[2] = null; + } SysUser sysUser = userMapper.selectUserByUserNameByCondition(split[0], split[1], split[2]); + log.info("selectUserByUserNameAndDeptId鐨剆ysUser鐨勫�间负锛歿}", sysUser); if (Objects.isNull(sysUser)) return sysUser; List<SysDept> sysDepts = null; if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) { @@ -512,15 +516,66 @@ // 鏂板鐢ㄦ埛淇℃伅 int rows = userMapper.insertUser(user); //鏂板鐢ㄦ埛涓庨儴闂ㄥ叧鑱� - if (!CollectionUtils.isEmpty(user.getDepts())) { - for (Long deptId : user.getDepts()) { - SysUserDept sysUserDep = new SysUserDept(); - sysUserDep.setUserId(user.getUserId()); - sysUserDep.setDeptId(deptId); - sysUserDep.setCreateTime(new Date()); - sysUserDep.setUpdateTime(new Date()); - sysUserDep.setOrgid(user.getOrgid()); - sysUserDeptMapper.insertSysUserDept(sysUserDep); +// if (!CollectionUtils.isEmpty(user.getDepts())) { +// for (Long deptId : user.getDepts()) { +// SysUserDept sysUserDep = new SysUserDept(); +// sysUserDep.setUserId(user.getUserId()); +// sysUserDep.setDeptId(deptId); +// sysUserDep.setCreateTime(new Date()); +// sysUserDep.setUpdateTime(new Date()); +// sysUserDep.setOrgid(user.getOrgid()); +// sysUserDeptMapper.insertSysUserDept(sysUserDep); +// } +// } + if (!CollectionUtils.isEmpty(user.getDeptCodes())) { + for (String deptCode : user.getDeptCodes()) { + SysDept sysDept = sysDeptMapper.selectDeptByCode(deptCode); + if (ObjectUtils.isEmpty(sysDept)) { + continue; + } + + SysUserDept sysUserDept = new SysUserDept(); + sysUserDept.setUserId(user.getUserId()); + sysUserDept.setOrgid(user.getOrgid()); + sysUserDept.setDeptCode(deptCode); + sysUserDept.setDeptId(sysDept.getDeptId()); + List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); + sysUserDept.setDelFlag(0L); + sysUserDept.setDeptType("1"); + sysUserDept.setDeptName(sysDept.getDeptName()); + sysUserDept.setUpdateTime(new Date()); + if (!CollectionUtils.isEmpty(sysUserDepts)) { + sysUserDept.setId(sysUserDepts.get(0).getId()); + sysUserDeptMapper.updateSysUserDept(sysUserDept); + continue; + } + sysUserDept.setCreateTime(new Date()); + sysUserDeptMapper.insertSysUserDept(sysUserDept); + } + } + if (!CollectionUtils.isEmpty(user.getWardCodes())) { + for (String wardCode : user.getWardCodes()) { + SysDept sysDept = sysDeptMapper.selectDeptByCode(wardCode); + if (ObjectUtils.isEmpty(sysDept)) { + continue; + } + SysUserDept sysUserDept = new SysUserDept(); + sysUserDept.setUserId(user.getUserId()); + sysUserDept.setDeptCode(wardCode); + sysUserDept.setDeptId(sysDept.getDeptId()); + sysUserDept.setOrgid(user.getOrgid()); + List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sysUserDept); + sysUserDept.setDelFlag(0L); + sysUserDept.setDeptType("2"); + sysUserDept.setOrgid(user.getOrgid()); + sysUserDept.setDeptName(sysDept.getDeptName()); + sysUserDept.setUpdateTime(new Date()); + if (!CollectionUtils.isEmpty(sysUserDepts)) { + sysUserDeptMapper.updateSysUserDept(sysUserDept); + continue; + } + sysUserDept.setCreateTime(new Date()); + sysUserDeptMapper.insertSysUserDept(sysUserDept); } } // 鏂板鐢ㄦ埛宀椾綅鍏宠仈 diff --git a/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml index 78f092b..0c5b29a 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysConfigMapper.xml @@ -43,9 +43,6 @@ <if test="configKey !=null and configKey != ''"> and config_key = #{configKey} </if> - <if test="orgid !=null and orgid != ''"> - and orgid = #{orgid} - </if> </where> </sql> diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index f975fe8..3b91c20 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -250,7 +250,7 @@ <delete id="deleteDeptById" parameterType="Long"> update sys_dept - set del_flag = '2' + set del_flag = '1' where dept_id = #{deptId} </delete> diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml index 664ae65..288be10 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -1,160 +1,176 @@ <?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.SysRoleMapper"> - <resultMap type="SysRole" id="SysRoleResult"> - <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="menuCheckStrictly" column="menu_check_strictly" /> - <result property="deptCheckStrictly" column="dept_check_strictly" /> - <result property="status" column="status" /> - <result property="delFlag" column="del_flag" /> - <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="guid" column="guid" /> - <result property="orgid" column="orgid" /> - </resultMap> + <resultMap type="SysRole" id="SysRoleResult"> + <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="menuCheckStrictly" column="menu_check_strictly"/> + <result property="deptCheckStrictly" column="dept_check_strictly"/> + <result property="status" column="status"/> + <result property="delFlag" column="del_flag"/> + <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="guid" column="guid"/> + <result property="orgid" column="orgid"/> + </resultMap> - <sql id="selectRoleVo"> - select distinct r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.menu_check_strictly, r.dept_check_strictly, - r.status, r.del_flag, r.create_time, r.remark , r.guid, r.orgid + <sql id="selectRoleVo"> + select distinct r.role_id, + r.role_name, + r.role_key, + r.role_sort, + r.data_scope, + r.menu_check_strictly, + r.dept_check_strictly, + r.status, + r.del_flag, + r.create_time, + r.remark, + r.guid, + r.orgid from sys_role r - left join sys_user_role ur on ur.role_id = r.role_id - left join sys_user u on u.user_id = ur.user_id - left join sys_dept d on u.dept_id = d.dept_id + left join sys_user_role ur on ur.role_id = r.role_id + left join sys_user u on u.user_id = ur.user_id + left join sys_dept d on u.dept_id = d.dept_id </sql> <select id="selectRoleList" parameterType="SysRole" resultMap="SysRoleResult"> - <include refid="selectRoleVo"/> - where r.del_flag = '0' - <if test="roleId != null and roleId != 0"> - AND r.role_id = #{roleId} - </if> - <if test="roleName != null and roleName != ''"> - AND r.role_name like concat('%', #{roleName}, '%') - </if> - <if test="status != null and status != ''"> - AND r.status = #{status} - </if> - <if test="roleKey != null and roleKey != ''"> - AND r.role_key like concat('%', #{roleKey}, '%') - </if> - <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� --> - and date_format(r.create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') - </if> - <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� --> - and date_format(r.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') - </if> - <!-- 鏁版嵁鑼冨洿杩囨护 --> - ${params.dataScope} - order by r.role_sort - </select> + <include refid="selectRoleVo"/> + where r.del_flag = '0' + <if test="roleId != null and roleId != 0"> + AND r.role_id = #{roleId} + </if> + <if test="roleName != null and roleName != ''"> + AND r.role_name like concat('%', #{roleName}, '%') + </if> + <if test="status != null and status != ''"> + AND r.status = #{status} + </if> + <if test="orgid != null and orgid != ''"> + AND r.orgid = #{orgid} + </if> + <if test="roleKey != null and roleKey != ''"> + AND r.role_key like concat('%', #{roleKey}, '%') + </if> + <if test="params.beginTime != null and params.beginTime != ''"><!-- 寮�濮嬫椂闂存绱� --> + and date_format(r.create_time,'%y%m%d') >= date_format(#{params.beginTime},'%y%m%d') + </if> + <if test="params.endTime != null and params.endTime != ''"><!-- 缁撴潫鏃堕棿妫�绱� --> + and date_format(r.create_time,'%y%m%d') <= date_format(#{params.endTime},'%y%m%d') + </if> + <!-- 鏁版嵁鑼冨洿杩囨护 --> + ${params.dataScope} + order by r.role_sort + </select> - <select id="selectRolePermissionByUserId" parameterType="Long" resultMap="SysRoleResult"> - <include refid="selectRoleVo"/> - WHERE r.del_flag = '0' and ur.user_id = #{userId} - </select> + <select id="selectRolePermissionByUserId" parameterType="Long" resultMap="SysRoleResult"> + <include refid="selectRoleVo"/> + WHERE r.del_flag = '0' and ur.user_id = #{userId} + </select> - <select id="selectRoleAll" resultMap="SysRoleResult"> - <include refid="selectRoleVo"/> - </select> + <select id="selectRoleAll" resultMap="SysRoleResult"> + <include refid="selectRoleVo"/> + </select> - <select id="selectRoleListByUserId" parameterType="Long" resultType="Long"> - select r.role_id + <select id="selectRoleListByUserId" parameterType="Long" resultType="Long"> + select r.role_id from sys_role r - left join sys_user_role ur on ur.role_id = r.role_id - left join sys_user u on u.user_id = ur.user_id - where u.user_id = #{userId} - </select> + left join sys_user_role ur on ur.role_id = r.role_id + left join sys_user u on u.user_id = ur.user_id + where u.user_id = #{userId} + </select> - <select id="selectRoleById" parameterType="Long" resultMap="SysRoleResult"> - <include refid="selectRoleVo"/> - where r.role_id = #{roleId} - </select> + <select id="selectRoleById" parameterType="Long" resultMap="SysRoleResult"> + <include refid="selectRoleVo"/> + where r.role_id = #{roleId} + </select> - <select id="selectRolesByUserName" parameterType="String" resultMap="SysRoleResult"> - <include refid="selectRoleVo"/> - WHERE r.del_flag = '0' and u.user_name = #{userName} - </select> + <select id="selectRolesByUserName" parameterType="String" resultMap="SysRoleResult"> + <include refid="selectRoleVo"/> + WHERE r.del_flag = '0' and u.user_name = #{userName} + </select> - <select id="checkRoleNameUnique" parameterType="String" resultMap="SysRoleResult"> - <include refid="selectRoleVo"/> - where r.role_name=#{roleName} and r.del_flag = '0' limit 1 - </select> + <select id="checkRoleNameUnique" parameterType="String" resultMap="SysRoleResult"> + <include refid="selectRoleVo"/> + where r.role_name=#{roleName} and r.del_flag = '0' limit 1 + </select> - <select id="checkRoleKeyUnique" parameterType="String" resultMap="SysRoleResult"> - <include refid="selectRoleVo"/> - where r.role_key=#{roleKey} and r.del_flag = '0' limit 1 - </select> + <select id="checkRoleKeyUnique" parameterType="String" resultMap="SysRoleResult"> + <include refid="selectRoleVo"/> + where r.role_key=#{roleKey} and r.del_flag = '0' limit 1 + </select> - <insert id="insertRole" parameterType="SysRole" useGeneratedKeys="true" keyProperty="roleId"> - insert into sys_role( - <if test="roleId != null and roleId != 0">role_id,</if> - <if test="roleName != null and roleName != ''">role_name,</if> - <if test="roleKey != null and roleKey != ''">role_key,</if> - <if test="roleSort != null">role_sort,</if> - <if test="dataScope != null and dataScope != ''">data_scope,</if> - <if test="menuCheckStrictly != null">menu_check_strictly,</if> - <if test="deptCheckStrictly != null">dept_check_strictly,</if> - <if test="status != null and status != ''">status,</if> - <if test="remark != null and remark != ''">remark,</if> - <if test="createBy != null and createBy != ''">create_by,</if> - <if test="guid != null and guid != ''">guid,</if> - <if test="orgid != null and orgid != ''">orgid,</if> - create_time - )values( - <if test="roleId != null and roleId != 0">#{roleId},</if> - <if test="roleName != null and roleName != ''">#{roleName},</if> - <if test="roleKey != null and roleKey != ''">#{roleKey},</if> - <if test="roleSort != null">#{roleSort},</if> - <if test="dataScope != null and dataScope != ''">#{dataScope},</if> - <if test="menuCheckStrictly != null">#{menuCheckStrictly},</if> - <if test="deptCheckStrictly != null">#{deptCheckStrictly},</if> - <if test="status != null and status != ''">#{status},</if> - <if test="remark != null and remark != ''">#{remark},</if> - <if test="createBy != null and createBy != ''">#{createBy},</if> - <if test="guid != null and guid != ''">#{guid},</if> - <if test="orgid != null and orgid != ''">#{orgid},</if> - sysdate() - ) - </insert> + <insert id="insertRole" parameterType="SysRole" useGeneratedKeys="true" keyProperty="roleId"> + insert into sys_role( + <if test="roleId != null and roleId != 0">role_id,</if> + <if test="roleName != null and roleName != ''">role_name,</if> + <if test="roleKey != null and roleKey != ''">role_key,</if> + <if test="roleSort != null">role_sort,</if> + <if test="dataScope != null and dataScope != ''">data_scope,</if> + <if test="menuCheckStrictly != null">menu_check_strictly,</if> + <if test="deptCheckStrictly != null">dept_check_strictly,</if> + <if test="status != null and status != ''">status,</if> + <if test="remark != null and remark != ''">remark,</if> + <if test="createBy != null and createBy != ''">create_by,</if> + <if test="guid != null and guid != ''">guid,</if> + <if test="orgid != null and orgid != ''">orgid,</if> + create_time + )values( + <if test="roleId != null and roleId != 0">#{roleId},</if> + <if test="roleName != null and roleName != ''">#{roleName},</if> + <if test="roleKey != null and roleKey != ''">#{roleKey},</if> + <if test="roleSort != null">#{roleSort},</if> + <if test="dataScope != null and dataScope != ''">#{dataScope},</if> + <if test="menuCheckStrictly != null">#{menuCheckStrictly},</if> + <if test="deptCheckStrictly != null">#{deptCheckStrictly},</if> + <if test="status != null and status != ''">#{status},</if> + <if test="remark != null and remark != ''">#{remark},</if> + <if test="createBy != null and createBy != ''">#{createBy},</if> + <if test="guid != null and guid != ''">#{guid},</if> + <if test="orgid != null and orgid != ''">#{orgid},</if> + sysdate() + ) + </insert> - <update id="updateRole" parameterType="SysRole"> - update sys_role - <set> - <if test="roleName != null and roleName != ''">role_name = #{roleName},</if> - <if test="roleKey != null and roleKey != ''">role_key = #{roleKey},</if> - <if test="roleSort != null">role_sort = #{roleSort},</if> - <if test="dataScope != null and dataScope != ''">data_scope = #{dataScope},</if> - <if test="menuCheckStrictly != null">menu_check_strictly = #{menuCheckStrictly},</if> - <if test="deptCheckStrictly != null">dept_check_strictly = #{deptCheckStrictly},</if> - <if test="status != null and status != ''">status = #{status},</if> - <if test="remark != null">remark = #{remark},</if> - <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> - <if test="guid != null and guid != ''">guid = #{guid},</if> - <if test="orgid != null and orgid != ''">orgid = #{orgid},</if> - update_time = sysdate() - </set> - where role_id = #{roleId} - </update> + <update id="updateRole" parameterType="SysRole"> + update sys_role + <set> + <if test="roleName != null and roleName != ''">role_name = #{roleName},</if> + <if test="roleKey != null and roleKey != ''">role_key = #{roleKey},</if> + <if test="roleSort != null">role_sort = #{roleSort},</if> + <if test="dataScope != null and dataScope != ''">data_scope = #{dataScope},</if> + <if test="menuCheckStrictly != null">menu_check_strictly = #{menuCheckStrictly},</if> + <if test="deptCheckStrictly != null">dept_check_strictly = #{deptCheckStrictly},</if> + <if test="status != null and status != ''">status = #{status},</if> + <if test="remark != null">remark = #{remark},</if> + <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> + <if test="guid != null and guid != ''">guid = #{guid},</if> + <if test="orgid != null and orgid != ''">orgid = #{orgid},</if> + update_time = sysdate() + </set> + where role_id = #{roleId} + </update> - <delete id="deleteRoleById" parameterType="Long"> - update sys_role set del_flag = '2' where role_id = #{roleId} - </delete> + <delete id="deleteRoleById" parameterType="Long"> + update sys_role + set del_flag = '1' + where role_id = #{roleId} + </delete> - <delete id="deleteRoleByIds" parameterType="Long"> - update sys_role set del_flag = '2' where role_id in - <foreach collection="array" item="roleId" open="(" separator="," close=")"> - #{roleId} + <delete id="deleteRoleByIds" parameterType="Long"> + update sys_role set del_flag = '1' where role_id in + <foreach collection="array" item="roleId" open="(" separator="," close=")"> + #{roleId} </foreach> - </delete> + </delete> </mapper> diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index d975b62..5be683e 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -119,9 +119,9 @@ u.birthday, u.job_phone, 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.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name from sys_user u - left join sys_dept d on u.dept_id = d.dept_id + left join sys_user_dept d on u.user_id = d.user_id where u.del_flag = '0' <if test="userId != null"> AND u.user_id = #{userId} @@ -401,12 +401,12 @@ <delete id="deleteUserById" parameterType="Long"> update sys_user - set del_flag = '2' + set del_flag = '1' where user_id = #{userId} </delete> <delete id="deleteUserByIds" parameterType="Long"> - update sys_user set del_flag = '2' where user_id in + update sys_user set del_flag = '1' where user_id in <foreach collection="array" item="userId" open="(" separator="," close=")"> #{userId} </foreach> diff --git a/smartor/src/main/java/com/smartor/common/LSHospTokenUtil.java b/smartor/src/main/java/com/smartor/common/LSHospTokenUtil.java index dd164bc..b916078 100644 --- a/smartor/src/main/java/com/smartor/common/LSHospTokenUtil.java +++ b/smartor/src/main/java/com/smartor/common/LSHospTokenUtil.java @@ -7,17 +7,18 @@ @Slf4j public class LSHospTokenUtil { - public static String getToken(String orgid,String url) { + public static String getToken(String orgid,String url) { String token = null; LyraTokenUtil lyraTokenUtil = null; - if (orgid.equals("47255004333112711A1001")) { //鏅畞 + if(ObjectUtils.isNotEmpty(url)){ + lyraTokenUtil = LyraTokenUtil.createLyraTokenUtil(url, "zjhes.suifangxt", "OIjdJvx2ALjFVGZoCZO4I8O"); + log.info("token.360璋冪敤缁撴灉"+url+";鏈烘瀯浠g爜锛�"+orgid+""); + }else { + if (orgid.equals("47255004333112711A1001")) //鏅畞 lyraTokenUtil = LyraTokenUtil.createLyraTokenUtil("https://9.0.124.104:13021/mediinfo-lyra-authserver/connect/token", "zjhes.suifangxt", "OIjdJvx2ALjFVGZoCZO4I8O"); - }else if (orgid.equals("47231022633110211A2101")) { //涓尰闄� + if (orgid.equals("47231022633110211A2101")) //涓尰闄� lyraTokenUtil = LyraTokenUtil.createLyraTokenUtil("https://9.0.124.104:13011/mediinfo-lyra-authserver/connect/token", "zjhes.suifangxt", "OIjdJvx2ALjFVGZoCZO4I8O"); - }else if(ObjectUtils.isNotEmpty(url)) { - lyraTokenUtil = LyraTokenUtil.createLyraTokenUtil(url, "zjhes.suifangxt", "OIjdJvx2ALjFVGZoCZO4I8O"); - log.info("token.360璋冪敤缁撴灉" + url + ";鏈烘瀯浠g爜锛�" + orgid + ""); - } + } try { token = lyraTokenUtil.getToken(); } catch (IOException e) { diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java b/smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java index 7144702..e923ff8 100644 --- a/smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java +++ b/smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java @@ -90,8 +90,8 @@ /** * 鏄惁寮傚父鏍囪瘑 */ - @Excel(name = "鏄惁寮傚父鏍囪瘑") - @ApiModelProperty(value = "鏄惁寮傚父鏍囪瘑") + @Excel(name = "鏄惁寮傚父鏍囪瘑 0缁胯壊锛�1绾㈣壊锛�2榛勮壊锛�") + @ApiModelProperty(value = "鏄惁寮傚父鏍囪瘑 0缁胯壊锛�1绾㈣壊锛�2榛勮壊锛�") private Long isabnormal; /** diff --git a/smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java b/smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java index 26cda95..3f81852 100644 --- a/smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java +++ b/smartor/src/main/java/com/smartor/domain/IvrTaskTemplateScriptVO.java @@ -320,6 +320,12 @@ private Integer sort; /** + * 寮傚父棰勮锛�0缁胯壊锛�1绾㈣壊锛�2榛勮壊 + */ + @ApiModelProperty(value = "寮傚父棰勮锛�0缁胯壊锛�1绾㈣壊锛�2榛勮壊") + private Long isabnormal; + + /** * 璇濇湳閫夐」 */ @ApiModelProperty(value = "璇濇湳閫夐」") diff --git a/smartor/src/main/java/com/smartor/domain/PatArchiveReq.java b/smartor/src/main/java/com/smartor/domain/PatArchiveReq.java index b9eed5b..d4cd505 100644 --- a/smartor/src/main/java/com/smartor/domain/PatArchiveReq.java +++ b/smartor/src/main/java/com/smartor/domain/PatArchiveReq.java @@ -112,7 +112,7 @@ /** - * 鏌ョ湅鍏ㄩ儴 0 鏌ョ湅浣忛櫌 1 鏌ョ湅闂ㄨ瘖 2 鏌ョ湅浣撴 3 鏌ョ湅鍑洪櫌 4 + * 鏌ョ湅鍏ㄩ儴 0 鏌ョ湅鍑洪櫌 1 鏌ョ湅闂ㄨ瘖 2 鏌ョ湅浣撴 3 鏌ョ湅鍦ㄩ櫌 4 */ @ApiModelProperty(value = " 鏌ョ湅浣忛櫌 1 鏌ョ湅闂ㄨ瘖 2 鏌ョ湅浣撴 3 鏌ョ湅鍑洪櫌 4") private Long allhosp; diff --git a/smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java b/smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java index c29bf85..8d37b1a 100644 --- a/smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java +++ b/smartor/src/main/java/com/smartor/domain/PatMedInhospVO.java @@ -34,6 +34,29 @@ private String inhospno; /** + * 闅忚鏍囪瘑锛�0涓嶉渶瑕侊紝1闇�瑕� + */ + @ApiModelProperty(value = "闅忚鏍囪瘑锛�0涓嶉渶瑕侊紝1闇�瑕�") + private String fuflag; + /** + * 鐤剧梾澶勭悊锛�0鏈鐞� 1澶勭悊鎴愬姛 2澶勭悊澶辫触 + */ + @ApiModelProperty(value = "鐤剧梾澶勭悊锛�0鏈鐞� 1澶勭悊鎴愬姛 2澶勭悊澶辫触") + private String diagcheckFlag; + + /** + *鐥呭尯澶勭悊锛�0鏈鐞� 1澶勭悊鎴愬姛 2澶勭悊澶辫触 + */ + @ApiModelProperty(value = "鐥呭尯澶勭悊锛�0鏈鐞� 1澶勭悊鎴愬姛 2澶勭悊澶辫触") + private String wardcheckFlag; + + /** + * 閮ㄩ棬澶勭悊锛�0鏈鐞� 1澶勭悊鎴愬姛 2澶勭悊澶辫触 + */ + @ApiModelProperty(value = "閮ㄩ棬澶勭悊锛�0鏈鐞� 1澶勭悊鎴愬姛 2澶勭悊澶辫触") + private String deptcheckFlag; + + /** * 鎶ゅ+ID */ @ApiModelProperty(value = "鎶ゅ+ID") diff --git a/smartor/src/main/java/com/smartor/domain/PatMedOuthosp.java b/smartor/src/main/java/com/smartor/domain/PatMedOuthosp.java index 0ed79a0..9aa0cc8 100644 --- a/smartor/src/main/java/com/smartor/domain/PatMedOuthosp.java +++ b/smartor/src/main/java/com/smartor/domain/PatMedOuthosp.java @@ -8,6 +8,7 @@ import lombok.Data; import java.util.Date; +import java.util.List; /** * 鎮h�呴棬璇婅褰曞璞� pat_med_outhosp @@ -82,6 +83,12 @@ */ @ApiModelProperty(value = "绉戝浠g爜") private String deptcode; + + /** + * 绉戝浠g爜 + */ + @ApiModelProperty(value = "绉戝浠g爜闆嗗悎") + private List<String> deptcodes; /** * 绉戝鍚嶇О @@ -161,7 +168,7 @@ private String hpi; /** - 鎮h�呮。妗堢紪鍙� 鐜扮梾鍙� + * 鎮h�呮。妗堢紪鍙� 鐜扮梾鍙� */ @ApiModelProperty(value = "鎮h�呮。妗堢紪鍙�") private String patno; diff --git a/smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java b/smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java index 4683837..b8251cf 100644 --- a/smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java +++ b/smartor/src/main/java/com/smartor/domain/PatTaskRelevance.java @@ -217,7 +217,7 @@ @Excel(name = "鍙戦�佹椂闂�") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("鍙戦�佹椂闂�") - private Date visitTime; + private Date visittime; /** diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSLTDDeptReqVO.java b/smartor/src/main/java/com/smartor/domain/ServiceSLTDDeptReqVO.java new file mode 100644 index 0000000..adcadef --- /dev/null +++ b/smartor/src/main/java/com/smartor/domain/ServiceSLTDDeptReqVO.java @@ -0,0 +1,48 @@ +package com.smartor.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel(value = "ServiceSLTDCommonReqVO", description = "鐪佺珛鍚屽痉鍑虹瀹ょ梾鍖鸿姹備俊鎭�") +@Data +public class ServiceSLTDDeptReqVO { + @ApiModelProperty(value = "鏈烘瀯ID 鏈烘瀯鍞竴缂栧彿") + private String orgId; + + @ApiModelProperty(value = "闄㈠尯ID") + private List<Long> campusIds; + + @ApiModelProperty(value = "鏈烘瀯瀛︾锛屽瓧鍏竎ode") + private String orgSubjectCode; + + + @ApiModelProperty(value = "鍥介檯瀛︾锛屽瓧鍏竎ode ") + private String subjectCode; + + @ApiModelProperty(value = "绉戝鍚嶇О妯$硦鍖归厤") + private Long searchText; + + @ApiModelProperty(value = "閮ㄩ棬缁村害: 201-浜轰簨 202-涓氬姟 涓嶄紶-鍏ㄩ儴") + private Long deptDimensions; + + + @ApiModelProperty(value = "鏈嶅姟鑼冨洿 锛� 鎬ヨ瘖-emergency 鍖绘妧-medicalTechnology 闂ㄨ瘖-outpatient 浣忛櫌-hospitalization 浣撴-physicalExamination" + + "鎵嬫湳-operation 鑽埧-drugRoom 鑽簱-drugWarehouse 鏉愭枡搴�-materialWarehouse 鎶㈡晳-rescue 鐣欒-observation 闈欓厤-venousConfig") + private List<String> serviceScopes; + + + @ApiModelProperty(value = "鏄惁鏄梾鍖�: 0-涓嶆槸 1-鏄�") + private Integer inpatientArea; + + @ApiModelProperty(value = "鍋滅敤鐘舵�� : 1-鏈仠鐢� 0-鍋滅敤 涓嶄紶-鍏ㄩ儴") + private Integer status; + + + @ApiModelProperty(value = "閮ㄩ棬绫诲瀷锛� FH0132.01-鍖荤枟 FH0132.02-鏁欏 FH0132.03-绉戠爺 FH0132.04-琛屾斂 FH0132.05-鍚庡嫟 FH0132.06-鍏朵粬") + private String deptType; + + +} diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospReqVO.java b/smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospReqVO.java index b786b49..5257de7 100644 --- a/smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospReqVO.java +++ b/smartor/src/main/java/com/smartor/domain/ServiceSLTDInhospReqVO.java @@ -13,7 +13,7 @@ private String orgId; @ApiModelProperty(value = "闄㈠尯ID") - private Long campusIds; + private Long campusId; @ApiModelProperty(value = "鎮h�呭鍚� 蹇呭~涓�涓�") private String patientName; diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubTaskMYDAnswerReq.java b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskMYDAnswerReq.java new file mode 100644 index 0000000..b3bcba7 --- /dev/null +++ b/smartor/src/main/java/com/smartor/domain/ServiceSubTaskMYDAnswerReq.java @@ -0,0 +1,30 @@ +package com.smartor.domain; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 鐢佃瘽闂鍥炵瓟鏄庣粏 + * + * @author ls + * @date 2023-06-05 + */ +@ApiModel(value = "ServiceSubTaskAnswerReq", description = "闂鍥炵瓟鏄庣粏") +@Data +public class ServiceSubTaskMYDAnswerReq { + + @ApiModelProperty(value = "闂嵎缁撴灉") + private List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS; + + @ApiModelProperty(value = "娴佹按鍙�") + private String serialnum; + + @ApiModelProperty(value = "浠诲姟ID") + private String taskId; + + @ApiModelProperty(value = "浣忛櫌 1 闂ㄨ瘖2 鎶曡瘔3") + private String mzzy; +} diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java index 69c18ee..e0ac5c6 100644 --- a/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java +++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtask.java @@ -68,8 +68,8 @@ /** * 寮傚父鏍囪瘑 */ - @ApiModelProperty(value = "寮傚父鏍囪瘑") - @Excel(name = " 寮傚父鏍囪瘑 ") + @ApiModelProperty(value = "寮傚父鏍囪瘑锛�0缁胯壊锛�1绾㈣壊锛�2榛勮壊") + @Excel(name = " 寮傚父鏍囪瘑:0缁胯壊锛�1绾㈣壊锛�2榛勮壊 ") private String excep; /** @@ -158,8 +158,8 @@ /** * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚 11锛屽奖鍍忎笓绉戦殢璁� 12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚) */ - @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚 11锛屽奖鍍忎笓绉戦殢璁� 12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚)") - @ApiModelProperty(value = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚 11锛屽奖鍍忎笓绉戦殢璁� 12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚") + @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚 11锛屽奖鍍忎笓绉戦殢璁� 12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚 14銆侀棬璇婃弧鎰忓害璋冩煡 15鎶曡瘔寤鸿 16璇鹃闅忚") + @ApiModelProperty(value = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚 11锛屽奖鍍忎笓绉戦殢璁� 12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚 14銆侀棬璇婃弧鎰忓害璋冩煡 15鎶曡瘔寤鸿 16璇鹃闅忚") private String serviceType; /** @@ -361,6 +361,13 @@ private String preachform; /** + * 褰撳墠鍙戦�佹柟寮� + */ + @Excel(name = " 褰撳墠鍙戦�佹柟寮�") + @ApiModelProperty("褰撳墠鍙戦�佹柟寮�") + private String currentPreachform; + + /** * 搴婂彿 */ @Excel(name = "搴婂彿") diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java index 1c4ceb8..eb084f8 100644 --- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java +++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskDetail.java @@ -23,7 +23,7 @@ private static final long serialVersionUID = 1L; @ApiModelProperty(value = "涓婚敭") - private String id; + private Long id; @ApiModelProperty(value = "瀛愪换鍔D") private Long subId; diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskPreachform.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskPreachform.java new file mode 100644 index 0000000..e4fbae5 --- /dev/null +++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskPreachform.java @@ -0,0 +1,89 @@ +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; + +/** + * 銆愯濉啓鍔熻兘鍚嶇О銆戝璞� service_subtask_preachform + * + * @author lihu + * @date 2025-09-15 + */ +@Data +@ApiModel("銆愯濉啓鍔熻兘鍚嶇О銆�") +public class ServiceSubtaskPreachform extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * $column.columnComment + */ + @ApiModelProperty("$column.columnComment") + //鏁版嵁搴撹嚜澧炴敼鎴怈TableId(type = IdType.AUTO) + private Long id; + + /** + * 浠诲姟ID + */ + @ApiModelProperty("浠诲姟ID") + @Excel(name = "浠诲姟ID") + private Long subid; + + /** + * 鏈嶅姟ID + */ + @ApiModelProperty("鏈嶅姟ID") + @Excel(name = "鏈嶅姟ID") + private Long taskid; + + /** + * 鍙戦�佹柟寮�(1,浜哄伐 2,绾歌川 3,鐢佃瘽 4,鐭俊 5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹濆皬绋嬪簭 8.鏅鸿兘鏈哄櫒浜� 9.閽夐拤) + */ + @ApiModelProperty("鍙戦�佹柟寮�") + @Excel(name = "鍙戦�佹柟寮�") + private String preachform; + + /** + * 鐭俊鐘舵�侊細1鏈彂閫� 2宸插彂閫� 3宸查鍙� 4鍙风爜閿欒(鏃犳剰涔夛紝涓轰簡鍜屽叾瀹冮厤骞�) 5鍙戦�佸け璐� 6涓嶆墽琛� 9瀹屾垚 + * <p> + * 寰俊鐘舵�侊細1鏈彂閫� 2宸插彂閫� 3宸查鍙� 4寰俊鍙烽敊璇�(鏃犳剰涔夛紝涓轰簡鍜屽叾瀹冮厤骞�) 5鍙戦�佸け璐� 6涓嶆墽琛� 9瀹屾垚 + * <p> + * 鏅鸿兘璇煶鐘舵�侊細1鏈墽琛� 2宸插彂閫� 3鎷掓帴鎷掕 4鍙风爜閿欒 5鎵ц澶辫触 6涓嶆墽琛� 9瀹屾垚 + * <p> + * 浜哄伐闅忚鐘舵�侊細1鏈墽琛� 2寰呬汉宸ョ‘璁� 3鎷掓帴鎷掕 4鍙风爜閿欒 5鎵ц澶辫触 6涓嶆墽琛� 9瀹屾垚 + * <p> + * 闈㈣鐘舵�侊細1鏈墽琛� 9瀹屾垚 + */ + @ApiModelProperty("鍙戦�佺姸鎬�") + private String sendstate; + + /** + * 鏈烘瀯缂栫爜 + */ + @ApiModelProperty("鏈烘瀯缂栫爜") + @Excel(name = "鏈烘瀯缂栫爜") + private String orgid; + + /** + * 鍒犻櫎鐘舵�� + */ + @ApiModelProperty("鍒犻櫎鐘舵��") + private String delFlag; + + /** + * 椤哄簭 + */ + @ApiModelProperty("椤哄簭") + @Excel(name = "椤哄簭") + private Long sort; + + /** + * 琛ュ伩鏃堕棿锛堝崟浣嶅ぉ锛� + */ + @ApiModelProperty("琛ュ伩鏃堕棿锛堝崟浣嶅ぉ锛�") + @Excel(name = "琛ュ伩鏃堕棿锛堝崟浣嶅ぉ锛�") + private String compensateTime; +} + diff --git a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java index 7a5806f..3b15a25 100644 --- a/smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java +++ b/smartor/src/main/java/com/smartor/domain/ServiceSubtaskVO.java @@ -260,14 +260,14 @@ * 鍙戦�佺姸鎬� */ @Excel(name = " 鍙戦�佺姸鎬� ") - @ApiModelProperty(value = "鍙戦�佺姸鎬� : 1鏂板缓 2鎵ц涓� 3鏆傚仠 4缁堟 5瀹屾垚") + @ApiModelProperty(value = "鍙戦�佺姸鎬� 1 琚鍙�(鍦ㄤ换鍔′腑鏄柊寤猴紝鍦ㄦ湇鍔′腑鏄棰嗗彇) 2 寰呭彂閫� 3 宸插彂閫� 4 涓嶆墽琛� 5 鍙戦�佸け璐� 6 宸插畬鎴�") private Long sendstate; /** * 鍙戦�佺姸鎬� */ @Excel(name = " 鍙戦�佺姸鎬侀泦鍚� ") - @ApiModelProperty(value = "鍙戦�佺姸鎬� : 1鏂板缓 2鎵ц涓� 3鏆傚仠 4缁堟 5瀹屾垚") + @ApiModelProperty(value = "鍙戦�佺姸鎬� 1 琚鍙�(鍦ㄤ换鍔′腑鏄柊寤猴紝鍦ㄦ湇鍔′腑鏄棰嗗彇) 2 寰呭彂閫� 3 宸插彂閫� 4 涓嶆墽琛� 5 鍙戦�佸け璐� 6 宸插畬鎴�") private List<Long> sendstates; @@ -435,6 +435,13 @@ @ApiModelProperty(value = "瀹f暀褰㈠紡 : 1,鏂囨湰銆�2,鍥剧墖銆�3,璇煶銆�4,瑙嗛銆�5,娣峰悎") private String preachform; + /** + * 褰撳墠鍙戦�佹柟寮� + */ + @Excel(name = " 褰撳墠鍙戦�佹柟寮�") + @ApiModelProperty(value = "褰撳墠鍙戦�佹柟寮�") + private String currentPreachform; + /** * 搴婂彿 diff --git a/smartor/src/main/java/com/smartor/domain/ServiceTask.java b/smartor/src/main/java/com/smartor/domain/ServiceTask.java index cadd372..ee96b03 100644 --- a/smartor/src/main/java/com/smartor/domain/ServiceTask.java +++ b/smartor/src/main/java/com/smartor/domain/ServiceTask.java @@ -172,10 +172,10 @@ private String type; /** - * 鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡) + * "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚 11锛屽奖鍍忎笓绉戦殢璁� 12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚 14銆侀棬璇婃弧鎰忓害璋冩煡 15鎶曡瘔寤鸿" */ - @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婇�氱煡锛�6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡)") - @ApiModelProperty(value = "鏈嶅姟绫诲瀷 : 1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佹弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚 11锛屽奖鍍忎笓绉戦殢璁� 12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶梾闅忚") + @Excel(name = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚 11锛屽奖鍍忎笓绉戦殢璁� 12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚 14銆侀棬璇婃弧鎰忓害璋冩煡 15鎶曡瘔寤鸿 16璇鹃闅忚") + @ApiModelProperty(value = "鏈嶅姟绫诲瀷(1銆佺洃娴嬭瘎浼帮紱2銆佸嚭闄㈤殢璁匡紱3銆侀棬璇婇殢璁匡紱4銆佸鏁欏叧鎬�锛�5銆佸璇婄鐞嗭紱6銆佷綇闄㈡弧鎰忓害璋冩煡锛�7銆佹偅鑰呮姤鍛婏紱 8銆佸叾浠栭�氱煡 9浣撴闅忚 10.鍖绘妧闅忚 11锛屽奖鍍忎笓绉戦殢璁� 12銆佸績鐢典笓绉戦殢璁匡紝 13涓撶闅忚 14銆侀棬璇婃弧鎰忓害璋冩煡 15鎶曡瘔寤鸿 16璇鹃闅忚") private String serviceType; /** @@ -312,7 +312,7 @@ /** * pageSize */ - @ApiModelProperty("鏄惁鏄暱鏈熶换鍔� 0锛氫笉鏄� 1锛氭槸") + @ApiModelProperty("鏄惁鏄暱鏈熶换鍔� 0锛氫复鏃朵换鍔� 1锛氶暱鏈熶换鍔� 2鍥哄畾浠诲姟 3寰幆浠诲姟") private Integer longTask; /** diff --git a/smartor/src/main/java/com/smartor/domain/ServiceTaskScriptQues.java b/smartor/src/main/java/com/smartor/domain/ServiceTaskScriptQues.java index bc949ff..92c5897 100644 --- a/smartor/src/main/java/com/smartor/domain/ServiceTaskScriptQues.java +++ b/smartor/src/main/java/com/smartor/domain/ServiceTaskScriptQues.java @@ -22,13 +22,30 @@ private String param1; /** - * patid + * patid 鎴� 娴佹按鍙� + * 璇婄枟璁板綍鍙� */ - @Excel(name = "patid ") - @ApiModelProperty(value = "patid") + @Excel(name = "patid 鎴� 浣忛櫌娴佹按鍙� ") + @ApiModelProperty(value = "patid 鎴� 浣忛櫌娴佹按鍙�") private String param2; /** + * patid 鎴� 娴佹按鍙� + * 璇婄枟璁板綍鍙� + */ + @Excel(name = "闂ㄨ瘖娴佹按鍙� ") + @ApiModelProperty(value = "闂ㄨ瘖娴佹按鍙�") + private String param3; + + /** + * 鎶曡瘔鎮h�呯紪鍙� + * 鎶曡瘔鎮h�呯紪鍙� + */ + @Excel(name = "鎶曡瘔鎮h�呯紪鍙� patientId ") + @ApiModelProperty(value = "鎶曡瘔鎮h�呯紪鍙� patientId") + private String param4; + + /** * patfrom */ @Excel(name = "patfrom ") diff --git a/smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java b/smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java index 0e7ee2d..37f3e82 100644 --- a/smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java +++ b/smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java @@ -121,14 +121,27 @@ */ @Excel(name = " ") private Long fail; - /** * 浠诲姟褰㈠紡 1,澶氬獟浣� 2,绾歌川 3,鐢佃瘽 4,鐭俊 5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹� 8.鏅鸿兘灏忕▼搴� 9.閽夐拤 */ - @Excel(name = " 浠诲姟褰㈠紡 1,澶氬獟浣� 2,绾歌川 3,鐢佃瘽 4,鐭俊 5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹� 8.鏅鸿兘灏忕▼搴� 9.閽夐拤 ") - @ApiModelProperty(value = " 浠诲姟褰㈠紡 1,澶氬獟浣� 2,绾歌川 3,鐢佃瘽 4,鐭俊 5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹� 8.鏅鸿兘灏忕▼搴� 9.閽夐拤 ") + @Excel(name = " 浠诲姟褰㈠紡 1,浜哄伐 2,绾歌川 3,鐢佃瘽 4,鐭俊 5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹� 8.鏅鸿兘灏忕▼搴� 9.閽夐拤 ") + @ApiModelProperty(value = " 浠诲姟褰㈠紡 1,浜哄伐 2,绾歌川 3,鐢佃瘽 4,鐭俊 5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹� 8.鏅鸿兘灏忕▼搴� 9.閽夐拤 ") private String preachform; + /** + * 浠诲姟褰㈠紡 1,澶氬獟浣� 2,绾歌川 3,鐢佃瘽 4,鐭俊 5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹� 8.鏅鸿兘灏忕▼搴� 9.閽夐拤 + * [ + * { + * "sort": 1, //搴忓彿 + * "preachform": "1", //鍙戦�佹柟寮� + * "compensateTime": 2 //琛ュ伩鏃堕棿 + * } + * ] + */ + @Excel(name = " 浠诲姟褰㈠紡 1,浜哄伐 2,绾歌川 3,鐢佃瘽 4,鐭俊 5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹� 8.鏅鸿兘灏忕▼搴� 9.閽夐拤 ") + @ApiModelProperty(value = " 浠诲姟褰㈠紡 1,浜哄伐 2,绾歌川 3,鐢佃瘽 4,鐭俊 5.寰俊鍏紬鍙� 6.寰俊灏忕▼搴� 7.鏀粯瀹� 8.鏅鸿兘灏忕▼搴� 9.閽夐拤 ") + private List<ServiceSubtaskPreachform> preachformList; + /** * diff --git a/smartor/src/main/java/com/smartor/domain/SvyTaskAnswer.java b/smartor/src/main/java/com/smartor/domain/SvyTaskAnswer.java index 84086c3..982945a 100644 --- a/smartor/src/main/java/com/smartor/domain/SvyTaskAnswer.java +++ b/smartor/src/main/java/com/smartor/domain/SvyTaskAnswer.java @@ -70,10 +70,10 @@ private String istrack; /** - * 寮傚父棰勮锛堟槸锛�1銆佸惁锛�0锛� + * 寮傚父棰勮锛�0缁胯壊锛�1绾㈣壊锛�2榛勮壊 */ - @ApiModelProperty(value = "寮傚父棰勮 鏄�=锛�1銆佸惁锛�0") - private String isabnormal; + @ApiModelProperty(value = "寮傚父棰勮锛�0缁胯壊锛�1绾㈣壊锛�2榛勮壊") + private Long isabnormal; /** * 鍒犻櫎鏍囧織锛�0锛氭湭鍒犻櫎 1锛氬凡鍒犻櫎锛� diff --git a/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java index 96449a0..89161f7 100644 --- a/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java +++ b/smartor/src/main/java/com/smartor/domain/SvyTaskTemplateScriptVO.java @@ -191,6 +191,13 @@ @ApiModelProperty(value = "闂缁撴灉 ,缁�=鈥滃�肩被鍨嬧�濇槸鏂囨湰鎴栬�呮暟鍊肩敤鐨�") private String scriptResult; + + /** + * 寮傚父棰勮锛�0缁胯壊锛�1绾㈣壊锛�2榛勮壊 + */ + @ApiModelProperty(value = "寮傚父棰勮锛�0缁胯壊锛�1绾㈣壊锛�2榛勮壊") + private Long isabnormal; + /** * 鍙橀噺鍙傛暟闆嗗悎 */ diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java index 90a640b..cba167c 100644 --- a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java +++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java @@ -31,6 +31,10 @@ */ public List<ServiceSubtask> selectServiceSubtaskList(ServiceSubtaskVO serviceSubtaskVO); + public List<ServiceSubtask> queryServiceSubtaskList(ServiceSubtaskVO serviceSubtaskVO); + + public List<ServiceSubtask> selectServiceSubtaskBySendstate(ServiceSubtaskVO serviceSubtaskVO); + public List<ServiceSubtask> selectServiceSubtaskListByCreateTime(ServiceSubtaskVO serviceSubtaskVO); public List<ServiceSubtask> selectServiceSubtaskListAgain(ServiceSubtaskVO serviceSubtaskVO); diff --git a/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java new file mode 100644 index 0000000..b136f2b --- /dev/null +++ b/smartor/src/main/java/com/smartor/mapper/ServiceSubtaskPreachformMapper.java @@ -0,0 +1,73 @@ +package com.smartor.mapper; + +import java.util.List; +import org.apache.ibatis.annotations.Mapper; +import com.smartor.domain.ServiceSubtaskPreachform; + +/** + * 銆愯濉啓鍔熻兘鍚嶇О銆慚apper鎺ュ彛 + * + * @author lihu + * @date 2025-09-15 + */ +@Mapper +public interface ServiceSubtaskPreachformMapper +{ + /** + * 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆� + * + * @param id 銆愯濉啓鍔熻兘鍚嶇О銆戜富閿� + * @return 銆愯濉啓鍔熻兘鍚嶇О銆� + */ + public ServiceSubtaskPreachform selectServiceSubtaskPreachformById(Long id); + + /** + * 鏌ヨ銆愯濉啓鍔熻兘鍚嶇О銆戝垪琛� + * + * @param serviceSubtaskPreachform 銆愯濉啓鍔熻兘鍚嶇О銆� + * @return 銆愯濉啓鍔熻兘鍚嶇О銆戦泦鍚� + */ + public List<ServiceSubtaskPreachform> selectServiceSubtaskPreachformList(ServiceSubtaskPreachform serviceSubtaskPreachform); + + /** + * 鏂板銆愯濉啓鍔熻兘鍚嶇О銆� + * + * @param serviceSubtaskPreachform 銆愯濉啓鍔熻兘鍚嶇О銆� + * @return 缁撴灉 + */ + public int insertServiceSubtaskPreachform(ServiceSubtaskPreachform serviceSubtaskPreachform); + + /** + * 淇敼銆愯濉啓鍔熻兘鍚嶇О銆� + * + * @param serviceSubtaskPreachform 銆愯濉啓鍔熻兘鍚嶇О銆� + * @return 缁撴灉 + */ + public int updateServiceSubtaskPreachform(ServiceSubtaskPreachform serviceSubtaskPreachform); + public int updateSSPByCondition(ServiceSubtaskPreachform serviceSubtaskPreachform); + + /** + * 鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆� + * + * @param id 銆愯濉啓鍔熻兘鍚嶇О銆戜富閿� + * @return 缁撴灉 + */ + public int deleteServiceSubtaskPreachformById(Long id); + + /** + * 鏍规嵁subid鍒犻櫎璇ュ瓙浠诲姟鐨勬墍鏈夊彂閫佹柟寮� + * @param subIds + * @return + */ + public int deleteServiceSubtaskPreachformBySubid(Long subIds); + + + + /** + * 鎵归噺鍒犻櫎銆愯濉啓鍔熻兘鍚嶇О銆� + * + * @param ids 闇�瑕佸垹闄ょ殑鏁版嵁涓婚敭闆嗗悎 + * @return 缁撴灉 + */ + public int deleteServiceSubtaskPreachformByIds(Long[] ids); +} diff --git a/smartor/src/main/java/com/smartor/mapper/SysDept2Mapper.java b/smartor/src/main/java/com/smartor/mapper/SysDept2Mapper.java index 95a5967..5a4b6a7 100644 --- a/smartor/src/main/java/com/smartor/mapper/SysDept2Mapper.java +++ b/smartor/src/main/java/com/smartor/mapper/SysDept2Mapper.java @@ -38,7 +38,7 @@ */ public SysDept selectDeptById(Long deptId); - public SysDept selectDeptByCode(String deptCode); + public SysDept selectDeptByCode(@Param("deptCode")String deptCode,@Param("orgid")String orgid); /** * 鏍规嵁ID鏌ヨ鎵�鏈夊瓙閮ㄩ棬 diff --git a/smartor/src/main/java/com/smartor/service/IHNGatherPatArchiveService.java b/smartor/src/main/java/com/smartor/service/IHNGatherPatArchiveService.java index 40234b9..ec1c3a7 100644 --- a/smartor/src/main/java/com/smartor/service/IHNGatherPatArchiveService.java +++ b/smartor/src/main/java/com/smartor/service/IHNGatherPatArchiveService.java @@ -42,7 +42,7 @@ /** * 闂ㄦ�ヨ瘖淇℃伅 * - * @param id + * @param patMedOuthosp * @return */ public Integer selectPatMedOuthospList(PatMedOuthosp patMedOuthosp); diff --git a/smartor/src/main/java/com/smartor/service/IServiceSLTDHealthcareRecordService.java b/smartor/src/main/java/com/smartor/service/IServiceSLTDHealthcareRecordService.java index f8aafc2..a06fa67 100644 --- a/smartor/src/main/java/com/smartor/service/IServiceSLTDHealthcareRecordService.java +++ b/smartor/src/main/java/com/smartor/service/IServiceSLTDHealthcareRecordService.java @@ -1,5 +1,6 @@ package com.smartor.service; +import com.smartor.domain.ServiceSLTDDeptReqVO; import com.smartor.domain.ServiceSLTDInhospReqVO; import com.smartor.domain.ServiceSLTDInhospResDTO; @@ -43,7 +44,7 @@ * @return 鍙傝�� * { * "orgId": 20001001, - * "campusIds": 30001002, + * "campusId": 30001002, * "unitIds": null, * "relationType": null, * "searchText": null, @@ -52,5 +53,21 @@ */ Boolean queryHospUserInfoList(ServiceSLTDInhospReqVO reqVO); + /** + * 閲囬泦绉戝鐥呭尯淇℃伅 + * + * @param serviceSLTDDeptReqVO + * @return 鍙傝�� + * { + * "orgId": 20001001, + * "campusIds": 30001002, + * "unitIds": null, + * "relationType": null, + * "searchText": null, + * "status": 1 + * } + */ + Boolean queryDeptWardAreaInfoList(ServiceSLTDDeptReqVO serviceSLTDDeptReqVO); + } diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskAnswerService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskAnswerService.java index af983cc..5a3dfa9 100644 --- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskAnswerService.java +++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskAnswerService.java @@ -70,6 +70,8 @@ */ public Integer saveQuestionAnswer(ServiceSubTaskAnswerReq serviceSubTaskAnswerReq,Long flag); + public Boolean saveMYDQuestionAnswer(ServiceSubTaskMYDAnswerReq serviceSubTaskMYDAnswerReq); + /** * 灏嗛棶棰樹繚瀛樺埌缂撳瓨 * diff --git a/smartor/src/main/java/com/smartor/service/IServiceTaskService.java b/smartor/src/main/java/com/smartor/service/IServiceTaskService.java index 703bb77..dcc24fe 100644 --- a/smartor/src/main/java/com/smartor/service/IServiceTaskService.java +++ b/smartor/src/main/java/com/smartor/service/IServiceTaskService.java @@ -77,5 +77,7 @@ */ public Map<String, Object> getScriptInfoByCondition(Long taskid, Long patid, Boolean isFinish, String patfrom); + public Map<String, Object> getScriptByCondition(Long taskid, String zyserialnum, String mzserialnum, String tsserialnum); + } diff --git a/smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java index 54b30ff..c4f7484 100644 --- a/smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/CommonTaskServiceImpl.java @@ -60,7 +60,6 @@ //瀹f暀 return xjSend(sendTaskVO); } - log.error("璧板埌杩欓噷浜嗗槢"); return null; } @@ -108,6 +107,8 @@ //鍒ゆ柇浠诲姟鏄惁鏄珛鍗冲彂閫� if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("2")) { String content = sendMQContent(sendTaskVO, ivrTask.getTemplateid().toString(), ivrTask.getPreachform(), ivrTask.getStopState(), null); + //鍏堜慨鏀圭姸鎬� + updateServiceSubtask(ivrTask.getTaskid(), new Date()); //绔嬪嵆鍙戦�� redisCache.setCacheObject(content, content, 1, TimeUnit.SECONDS); //灏嗕换鍔$姸鎬佷慨鏀规垚鎵ц涓� @@ -130,23 +131,23 @@ } catch (JsonProcessingException e) { log.error("JsonProcessingException鎶ラ敊浜嗭細{}", e.getMessage()); } + Date date = new Date(); for (TaskSendTimeVO taskSendTimeVO : taskSendTimeVOList) { -// //鍘籗endTimeslot涓紝鑾峰彇鎵�鏈夌殑鏃堕棿娈� -// List<TaskSendTimeVO> list = new ArrayList<>(); -// list.add(taskSendTimeVO); - //鑾峰彇寮�濮嬪彂閫佹椂闂� String begantime = taskSendTimeVO.getBegantime(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //璁板綍鐩墠鍒板彂閫佹椂闂寸殑姣鍊� 锛堝彂閫佹椂闂寸殑姣鍊� - 褰撳墠鏃堕棿鐨勬绉掑�硷級 Long milliseconds = 1000L; try { - Date date = sdf.parse(begantime); + date = sdf.parse(begantime); milliseconds = date.getTime() - System.currentTimeMillis(); System.out.println("鏃ユ湡姣鏁帮細" + milliseconds); SendTaskVO sendTaskVO1 = DtoConversionUtils.sourceToTarget(sendTaskVO, SendTaskVO.class); sendTaskVO1.setSendType("1"); String content = sendMQContent(sendTaskVO1, ivrTask.getTemplateid().toString(), ivrTask.getPreachform(), ivrTask.getStopState(), taskSendTimeVO); + + //鍏堜慨鏀圭姸鎬� + updateServiceSubtask(ivrTask.getTaskid(), date); redisCache.setCacheObject(content, content, milliseconds / 1000, TimeUnit.SECONDS); } catch (Exception e) { e.printStackTrace(); @@ -208,6 +209,8 @@ if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("2")) { String content = sendMQContent(sendTaskVO, serviceTask1.getTemplateid().toString(), serviceTask1.getPreachform(), serviceTask1.getStopState(), null); + //鍏堜慨鏀圭姸鎬� + updateServiceSubtask(serviceTask1.getTaskid(), new Date()); //绔嬪嵆鍙戦�� redisCache.setCacheObject(content, content, 1, TimeUnit.SECONDS); @@ -228,6 +231,7 @@ } catch (JsonProcessingException e) { log.error("JsonProcessingException鎶ラ敊浜嗭細{}", e.getMessage()); } + Date date = new Date(); for (TaskSendTimeVO taskSendTimeVO : taskSendTimeVOList) { //鍘籗endTimeslot涓紝鑾峰彇鎵�鏈夌殑鏃堕棿娈� // List<TaskSendTimeVO> list = new ArrayList<>(); @@ -239,7 +243,7 @@ //璁板綍鐩墠鍒板彂閫佹椂闂寸殑姣鍊� 锛堝彂閫佹椂闂寸殑姣鍊� - 褰撳墠鏃堕棿鐨勬绉掑�硷級 Long milliseconds = 1000L; try { - Date date = sdf.parse(begantime); + date = sdf.parse(begantime); milliseconds = date.getTime() - System.currentTimeMillis(); if (milliseconds < 0) { milliseconds = 1000L; @@ -252,6 +256,8 @@ SendTaskVO sendTaskVO1 = DtoConversionUtils.sourceToTarget(sendTaskVO, SendTaskVO.class); sendTaskVO1.setSendType("1"); String content = sendMQContent(sendTaskVO1, serviceTask1.getTemplateid().toString(), serviceTask1.getPreachform(), serviceTask1.getStopState(), taskSendTimeVO); + //鍏堜慨鏀圭姸鎬� + updateServiceSubtask(serviceTask1.getTaskid(), date); redisCache.setCacheObject(content, content, milliseconds / 1000, TimeUnit.SECONDS); } //灏嗕换鍔$姸鎬佷慨鏀规垚鎵ц涓� @@ -310,6 +316,8 @@ if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("2")) { String content = sendMQContent(sendTaskVO, serviceTask1.getLibtemplateid().toString(), serviceTask1.getPreachform(), serviceTask1.getStopState(), null); + //鍏堜慨鏀圭姸鎬� + updateServiceSubtask(serviceTask1.getTaskid(), new Date()); //绔嬪嵆鍙戦�� redisCache.setCacheObject(content, content, 1, TimeUnit.SECONDS); @@ -323,6 +331,7 @@ } else if (StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("1") || StringUtils.isNotEmpty(sendTaskVO.getSendType()) && sendTaskVO.getSendType().equals("3")) { //鏃堕棿娈靛彂閫� ObjectMapper objectMapper = new ObjectMapper(); + Date date = new Date(); if (StringUtils.isNotEmpty(serviceTask1.getSendTimeSlot())) { List<TaskSendTimeVO> taskSendTimeVOList = null; try { @@ -342,7 +351,7 @@ //璁板綍鐩墠鍒板彂閫佹椂闂寸殑姣鍊� 锛堝彂閫佹椂闂寸殑姣鍊� - 褰撳墠鏃堕棿鐨勬绉掑�硷級 Long milliseconds = 1000L; try { - Date date = sdf.parse(begantime); + date = sdf.parse(begantime); milliseconds = date.getTime() - System.currentTimeMillis(); System.out.println("鏃ユ湡姣鏁帮細" + milliseconds); } catch (Exception e) { @@ -352,6 +361,8 @@ SendTaskVO sendTaskVO1 = DtoConversionUtils.sourceToTarget(sendTaskVO, SendTaskVO.class); sendTaskVO1.setSendType("1"); String content = sendMQContent(sendTaskVO1, serviceTask1.getTemplateid().toString(), serviceTask1.getPreachform(), serviceTask1.getStopState(), taskSendTimeVO); + //鍏堜慨鏀圭姸鎬� + updateServiceSubtask(serviceTask1.getTaskid(), date); redisCache.setCacheObject(content, content, milliseconds / 1000, TimeUnit.SECONDS); } //灏嗕换鍔$姸鎬佷慨鏀规垚鎵ц涓� @@ -389,4 +400,17 @@ commonTaskcallMQJson = commonTaskcallMQJson.substring(1, commonTaskcallMQJson.length() - 1); return commonTaskcallMQJson; } + + private void updateServiceSubtask(Long taskId, Date date) { + //鍙杩涘叆闃熷垪灏辩畻寰呭彂閫� + ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); + serviceSubtaskVO.setTaskid(taskId); + serviceSubtaskVO.setSendstate(1L); + List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + for (ServiceSubtask serviceSubtask : serviceSubtaskList) { + serviceSubtask.setSendstate(2L); + serviceSubtask.setVisitTime(date); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + } + } } diff --git a/smartor/src/main/java/com/smartor/service/impl/HNGatherPatArchiveServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/HNGatherPatArchiveServiceImpl.java index 3ae6888..d1496e0 100644 --- a/smartor/src/main/java/com/smartor/service/impl/HNGatherPatArchiveServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/HNGatherPatArchiveServiceImpl.java @@ -157,7 +157,7 @@ PatMedOuthosp patMedOuthosp = new PatMedOuthosp(); patMedOuthosp.setBeginTime(Date.from(dayStart.atZone(ZoneId.systemDefault()).toInstant())); patMedOuthosp.setEndTime(Date.from(dayEnd.atZone(ZoneId.systemDefault()).toInstant())); - selectPatMedOuthospList(patMedOuthosp); + selectPatMedOuthospList(patMedOuthosp); } return true; } @@ -204,6 +204,9 @@ @Override public Integer selectUserList(SysUser sysUser) { List<SysUser> sysUserList = hnGatherPatArchiveMapper.selectUserList(sysUser); + if (CollectionUtils.isEmpty(sysUserList)) return null; + + log.info("sysUserList鐨勯噰闆嗗埌鐨勬暟閲忎负锛歿}", sysUserList.size()); int i = sysUser2Mapper.batchUser(sysUserList); for (SysUser sysUser1 : sysUserList) { @@ -240,7 +243,8 @@ public Integer selectDeptList(SysDept dept) { List<SysDept> sysDepts = hnGatherPatArchiveMapper.selectDeptList(dept); log.info("selectDeptList鐨勯噰闆嗗埌鐨勬暟閲忎负锛歿}", sysDepts.size()); - int i = sysDept2Mapper.batchDept(sysDepts); + int i = 0; + if (CollectionUtils.isNotEmpty(sysDepts)) i = sysDept2Mapper.batchDept(sysDepts); return i; } diff --git a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java index 771f905..7e34d50 100644 --- a/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java @@ -1,5 +1,8 @@ package com.smartor.service.impl; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DtoConversionUtils; @@ -46,7 +49,7 @@ @Autowired private ServiceSubtaskMapper serviceSubtaskMapper; @Autowired - private SysUserDeptMapper sysUserDeptMapper; + private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper; @Value("${visitHosp}") private Integer visitHosp; @@ -619,31 +622,17 @@ serviceSubtaskMapper.updateServiceSubtask(serviceSubtask1); //閲嶆柊鏂板瀛愪换鍔� i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); + //杩欓噷闇�瑕佸叏澶辫触 + addServiceSubtaskPreachform(serviceSubtask, "5"); } } - } else { - if (StringUtils.isEmpty(serviceSubtask.getPhone())) { - serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�"); - serviceSubtask.setSendstate(4L); - serviceSubtask.setResult("error"); -// serviceSubtask.setFinishtime(new Date()); - } - serviceSubtask.setCreateBy(serviceTask.getCreateBy()); - serviceSubtask.setCreateTime(new Date()); - i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); } } else { - if (StringUtils.isEmpty(serviceSubtask.getPhone())) { - serviceSubtask.setRemark("鎵嬫満鍙蜂负绌�"); - serviceSubtask.setSendstate(4L); - serviceSubtask.setResult("error"); -// serviceSubtask.setFinishtime(new Date()); - - } serviceSubtask.setCreateBy(serviceTask.getCreateBy()); serviceSubtask.setCreateTime(new Date()); i = serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); + addServiceSubtaskPreachform(serviceSubtask, null); } if (i == 1) { //灏哻heck_flag鏀规垚1锛堝凡澶勭悊锛� @@ -667,6 +656,36 @@ } } + private Integer addServiceSubtaskPreachform(ServiceSubtask serviceSubtask, String sendstate) { + //灏唒reachform鐨刯son瀵硅薄锛屾斁鍒發ist闆嗗悎涓� + String preachform = serviceSubtask.getPreachform(); + ObjectMapper objectMapper = new ObjectMapper(); + if (org.apache.commons.lang3.StringUtils.isNotEmpty(preachform)) { + List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = null; + try { + serviceSubtaskPreachformList = objectMapper.readValue(preachform, new TypeReference<List<ServiceSubtaskPreachform>>() { + }); + } catch (JsonProcessingException e) { + log.error("preachform杞琇ist<ServiceSubtaskPreachform>鎶ラ敊浜嗭細{}", e.getMessage()); + } + for (ServiceSubtaskPreachform serviceSubtaskPreachform : serviceSubtaskPreachformList) { + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + //杩欎釜sendstate闇�瑕佸湪鏁版嵁搴撹缃竴涓粯璁ゅ�间负鈥�1鈥� + serviceSubtaskPreachform.setSendstate("1"); + if (StringUtils.isNotEmpty(sendstate)) serviceSubtaskPreachform.setSendstate(sendstate); + + serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid()); + return serviceSubtaskPreachformMapper.insertServiceSubtaskPreachform(serviceSubtaskPreachform); + + } + + } + + return 0; + } + + //灏佽serviceSubtask private ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive) { ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTask, ServiceSubtask.class); diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java index b087f29..408e684 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSLTDHealthcareRecordServiceImpl.java @@ -2,24 +2,28 @@ import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.entity.SysUserDept; +import com.ruoyi.common.core.domain.entity.SysUserRole; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.http.HttpUtils; import com.smartor.domain.*; -import com.smartor.mapper.PatMedOuthospMapper; -import com.smartor.mapper.SysUser2Mapper; -import com.smartor.mapper.SysUserImportMapper; +import com.smartor.mapper.*; import com.smartor.service.IPatArchiveService; import com.smartor.service.IPatMedInhospService; import com.smartor.service.IServiceSLTDHealthcareRecordService; +import com.sun.org.apache.bcel.internal.generic.NEW; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import java.lang.reflect.Array; import java.lang.reflect.Type; +import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -29,7 +33,7 @@ public class ServiceSLTDHealthcareRecordServiceImpl implements IServiceSLTDHealthcareRecordService { private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; - private static final String APP_KEY = "ak-zUMiOWhqXiJQWPB1pCbz0pjr"; + public static final String APP_KEY = "ak-zUMiOWhqXiJQWPB1pCbz0pjr"; @Autowired private IPatArchiveService patArchiveService; @@ -43,25 +47,128 @@ @Autowired private SysUser2Mapper sysUser2Mapper; + @Autowired + private SysDept2Mapper sysDeptMapper; + + @Autowired + private SysUserDeptMapper sysUserDeptMapper; + + @Autowired + private SysUserRole2Mapper sysUserRoleMapper; + @Value("${sltd_pub_path}") private String sltdPubPath; + @Value("${userPwd}") + private String userPwd; + @Override public List<ServiceSLTDInhospResDTO> queryHealthcareRecordList(ServiceSLTDInhospReqVO reqVO) { - log.info("銆恞ueryHealthcareRecordList銆戝紑濮嬭皟鐢ㄧ渷绔嬪悓寰峰仴搴疯褰曟煡璇㈡帴鍙o紝璇锋眰鍙傛暟锛歿}", reqVO); try { + log.info("銆恞ueryHealthcareRecordList銆戝紑濮嬭皟鐢ㄧ渷绔嬪悓寰峰仴搴疯褰曟煡璇㈡帴鍙o紝璇锋眰鍙傛暟锛歿}", reqVO); Map<String, Object> requestParams = buildRequestParams(reqVO); Map<String, String> headers = buildRequestHeaders(); + String result = HttpUtils.sendPostByHeader(sltdPubPath + "osj/hbos-thirdparty-integration/standard/common/healthcareRecord/dtcQueryHealthcareRecordList", new Gson().toJson(requestParams), headers); log.info("銆恞ueryHealthcareRecordList銆戞帴鍙e搷搴旂粨鏋滐細{}", result); String cry = determineCry(reqVO); - return parseResponseData(result, reqVO.getHealthcareRecordTypeList().get(0), cry); + return parseResponseData(result, reqVO.getHealthcareRecordTypeList(), cry, reqVO.getCampusId()); } catch (Exception e) { log.error("銆恞ueryHealthcareRecordList銆戣皟鐢ㄧ渷绔嬪悓寰峰仴搴疯褰曟煡璇㈡帴鍙e紓甯革紝璇锋眰鍙傛暟锛歿}", reqVO, e); throw new RuntimeException("璋冪敤鐪佺珛鍚屽痉鍋ュ悍璁板綍鏌ヨ鎺ュ彛澶辫触", e); } } + + + /** + * 閲囬泦绉戝鐥呭尯淇℃伅 + * + * @param serviceSLTDDeptReqVO + * @return 鍙傝�� + * { + * "orgId": 20001001, + * "campusIds": 30001002, + * "unitIds": null, + * "relationType": null, + * "searchText": null, + * "status": 1 + * } + */ + @Override + public Boolean queryDeptWardAreaInfoList(ServiceSLTDDeptReqVO serviceSLTDDeptReqVO) { + log.info("銆恞ueryDeptWardAreaInfoList銆戝紑濮嬭皟鐢ㄧ渷绔嬪悓寰风瀹ょ梾鍖烘煡璇㈡帴鍙o紝璇锋眰鍙傛暟锛歿}", serviceSLTDDeptReqVO); + try { + Map<String, Object> params = new HashMap<>(); + if (serviceSLTDDeptReqVO.getOrgId() != null) { + params.put("orgId", Long.parseLong(serviceSLTDDeptReqVO.getOrgId())); + } + if (serviceSLTDDeptReqVO.getCampusIds() != null) { + params.put("campusIds", serviceSLTDDeptReqVO.getCampusIds()); + } + params.put("subjectCode", serviceSLTDDeptReqVO.getSubjectCode()); + params.put("orgSubjectCode", serviceSLTDDeptReqVO.getOrgSubjectCode()); + + params.put("deptDimensions", serviceSLTDDeptReqVO.getDeptDimensions()); + + params.put("serviceScopes", serviceSLTDDeptReqVO.getServiceScopes()); + params.put("inpatientArea", serviceSLTDDeptReqVO.getInpatientArea()); + params.put("status", serviceSLTDDeptReqVO.getStatus()); + + + Map<String, String> headers = buildRequestHeaders(); + String result = HttpUtils.sendPostByHeader(sltdPubPath + "/osj/hbos-thirdparty-integration/standard/common/dept/queryDeptList", new Gson().toJson(params), headers); + log.info("銆恞ueryDeptWardAreaInfoList銆戞帴鍙e搷搴旂粨鏋滐細{}", result); + List<Map<String, Object>> dataList = getDataList(result); + log.info("-----------dataList鎺ュ彛鍝嶅簲缁撴灉锛歿}", dataList.size()); + for (Map<String, Object> dataItem : dataList) { + SysDept sysDept = new SysDept(); + sysDept.setOrgid("" + serviceSLTDDeptReqVO.getCampusIds().get(0)); + sysDept.setHisDeptId("" + getLongValue(dataItem, "deptId")); + sysDept.setHisParentId(getStringValue(dataItem, "parentDeptId")); + //閫氳繃his鐨勭埗绉戝ID鍘绘壘鍒扮瀹D,濉厖parentId + if (StringUtils.isNotEmpty(getStringValue(dataItem, "parentDeptId"))) { + SysDept sd = new SysDept(); + sd.setHisDeptId(getStringValue(dataItem, "parentDeptId")); + sd.setOrgid(getStringValue(dataItem, "orgId")); + List<SysDept> sysDepts = sysDeptMapper.selectDeptList(sd); + if (CollectionUtils.isNotEmpty(sysDepts)) { + SysDept sysDept1 = sysDepts.get(0); + sysDept.setParentId(sysDept1.getDeptId()); + sysDept.setParentName(sysDept1.getDeptName()); + } + } + sysDept.setDeptName(getStringValue(dataItem, "deptName")); + Integer inpatientArea = getIntegerValue(dataItem, "inpatientArea"); + if (inpatientArea != null && inpatientArea == 0) sysDept.setDeptType("1"); + else if (inpatientArea != null && inpatientArea == 1) sysDept.setDeptType("2"); + sysDept.setLeader(""); + Integer status = getIntegerValue(dataItem, "status"); + if (status != null & status == 0) sysDept.setStatus("1"); + if (status != null & status == 1) sysDept.setStatus("0"); + sysDept.setType(""); + sysDept.setDeptCode("" + getLongValue(dataItem, "deptId")); + sysDept.setCreateBy(null); + sysDept.setCreateTime(new Date()); + sysDept.setUpdateTime(new Date()); + sysDept.setUpdateBy(null); + + SysDept sysDept1 = sysDeptMapper.selectDeptByCode(sysDept.getDeptCode(), sysDept.getOrgid()); + if (Objects.isNull(sysDept1)) { + int i = sysDeptMapper.insertDept(sysDept); + log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁鏂板鎴愬姛锛歿}", i); + } else { + sysDept.setDeptId(sysDept1.getDeptId()); + int i = sysDeptMapper.updateDept(sysDept); + log.info("ServiceExternalServiceImpl---addDeptInfo鏄惁淇敼鎴愬姛04锛歿}", i); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return true; + } + /** * 閲囬泦鍖婚櫌鐢ㄦ埛淇℃伅 @@ -73,11 +180,14 @@ public Boolean queryHospUserInfoList(ServiceSLTDInhospReqVO reqVO) { Map<String, Object> requestParams = buildRequestParams(reqVO); Map<String, String> headers = buildRequestHeaders(); - String result = HttpUtils.sendPostByHeader(sltdPubPath + "osj/hbos-thirdparty-integration/standard/common/healthcareRecord/dtcQueryHealthcareRecordList", new Gson().toJson(requestParams), headers); + String result = HttpUtils.sendPostByHeader(sltdPubPath + "/osj/hbos-thirdparty-integration/standard/common/staff/queryStaffList", new Gson().toJson(requestParams), headers); log.info("銆恞ueryHealthcareRecordList銆戞帴鍙e搷搴旂粨鏋滐細{}", result); List<Map<String, Object>> dataList = getDataList(result); for (Map<String, Object> dataItem : dataList) { SysUser sysUser = new SysUser(); + if (StringUtils.isEmpty(getStringValue(dataItem, "accountNo"))) { + continue; + } sysUser.setUserName(getStringValue(dataItem, "accountNo")); sysUser.setNickName(getStringValue(dataItem, "name")); List diagnosisObjList = (List<?>) dataItem.get("qualifications"); @@ -86,15 +196,21 @@ if (diagnosis instanceof Map) { Map<String, Object> diagnosisMap = (Map<String, Object>) diagnosis; String professionalTitleName = getStringValue(diagnosisMap, "professionalTitleName"); - if (professionalTitleName.contains("鍖诲笀")) sysUser.setUserType("鍖荤敓"); - if (professionalTitleName.contains("鎶�")) sysUser.setUserType("鎶ゅ+"); + if (professionalTitleName.contains("鍖诲笀")) { + sysUser.setUserType("鍖荤敓"); + sysUser.setSearchscope("1"); + } + if (professionalTitleName.contains("鎶�")) { + sysUser.setUserType("鎶ゅ+"); + sysUser.setSearchscope("2"); + } sysUser.setTitle(getStringValue(diagnosisMap, "professionalTitleName")); } } } - sysUser.setDeptCode(getStringValue(dataItem, "accountNo")); - sysUser.setDeptName(getStringValue(dataItem, "personnelDeptName")); + sysUser.setPhonenumber(getStringValue(dataItem, "telephone")); + sysUser.setUserCode(getStringValue(dataItem, "jobNumber")); //璁剧疆鎬у埆 String genderName = getStringValue(dataItem, "genderName"); if ("鐢�".equals(genderName)) sysUser.setSex("0"); @@ -105,8 +221,61 @@ sysUser.setUpdateTime(new Date()); sysUser.setUpdateBy("admin"); sysUser.setCreateBy("admin"); + sysUser.setCreateBy("admin"); + sysUser.setOrgid(reqVO.getCampusId().toString()); + BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); + sysUser.setPassword(passwordEncoder.encode(userPwd)); sysUser2Mapper.insertUser(sysUser); + + // 澶勭悊鐢ㄦ埛涓庨儴闂ㄧ殑鍏崇郴 + List personnelDepts = (List<?>) dataItem.get("personnelDepts"); + if (CollectionUtils.isEmpty(personnelDepts)) { + continue; + } + + List<List<String>> deptInfoList = new ArrayList<>(); + List<List<String>> hospInfoList = new ArrayList<>(); + for (Object personnelDept : personnelDepts) { + if (personnelDept instanceof Map) { + Map<String, Object> personnelDeptMap = (Map<String, Object>) personnelDept; +// Long hisDeptId = (Long) personnelDeptMap.get("deptId"); + String hisDeptId = getStringValue(personnelDeptMap, "deptId"); + //鍦ㄨ繖閲岋紝hisDeptId灏辨槸deptCode + SysDept sysDept = sysDeptMapper.selectDeptByCode(hisDeptId, reqVO.getCampusId().toString()); + if (Objects.isNull(sysDept)) continue; + SysUserDept sysUserDept = new SysUserDept(); + sysUserDept.setUserId(sysUser.getUserId()); + sysUserDept.setDeptType(sysDept.getDeptType()); + sysUserDept.setDeptId(sysDept.getDeptId()); + sysUserDept.setDeptCode(sysDept.getDeptCode()); + sysUserDept.setDeptName(sysDept.getDeptName()); + sysUserDept.setOrgid(sysDept.getOrgid()); + sysUserDept.setCreateTime(new Date()); + sysUserDept.setDelFlag(0L); + sysUserDeptMapper.insertSysUserDept(sysUserDept); + if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("1")) { + hospInfoList.add(Arrays.asList(sysDept.getDeptCode())); + } else if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("2")) { + deptInfoList.add(Arrays.asList(sysDept.getDeptCode())); + } + } + } + //灏嗛儴闂ㄦ垜鐥呭尯鏀惧埌鎸囧畾瀛楁涓� + Gson gson = new Gson(); + sysUser.setHospInfo(gson.toJson(hospInfoList)); + sysUser.setDeptInfo(gson.toJson(deptInfoList)); + sysUser2Mapper.updateUser(sysUser); + + //璁剧疆涓�涓粯璁よ鑹诧紙鍖荤敓瑙掕壊锛� + List<SysUserRole> userRoleList = new ArrayList(); + SysUserRole sur = new SysUserRole(); + sur.setUserId(sysUser.getUserId()); + sur.setRoleId(3L); + sur.setOrgid(sysUser.getOrgid()); + userRoleList.add(sur); + sysUserRoleMapper.batchUserRole(userRoleList); + } return true; @@ -116,7 +285,7 @@ if (reqVO.getHealthcareRecordTypeList().contains("FH0108.02")) { if (reqVO.getStartHeadTime() != null && reqVO.getStartTailTime() != null) { return "0"; - } else if (reqVO.getPreOutHospitalHeadDate() != null && reqVO.getPreOutHospitalTailDate() != null) { + } else if (StringUtils.isNotEmpty(reqVO.getPreOutHospitalHeadDate()) && StringUtils.isNotEmpty(reqVO.getPreOutHospitalTailDate())) { return "1"; } } @@ -128,14 +297,26 @@ if (reqVO.getOrgId() != null) { params.put("orgId", Long.parseLong(reqVO.getOrgId())); } - if (reqVO.getCampusIds() != null) { - params.put("campusIds", reqVO.getCampusIds()); + if (reqVO.getCampusId() != null) { + params.put("campusId", reqVO.getCampusId()); } if (reqVO.getStartHeadTime() != null) { params.put("startHeadTime", reqVO.getStartHeadTime()); } if (reqVO.getStartTailTime() != null) { params.put("startTailTime", reqVO.getStartTailTime()); + } + if (reqVO.getEncounterTimeStart() != null) { + params.put("encounterTimeStart", reqVO.getEncounterTimeStart()); + } + if (reqVO.getEncounterTimeEnd() != null) { + params.put("encounterTimeEnd", reqVO.getEncounterTimeEnd()); + } + if (reqVO.getPreOutHospitalHeadDate() != null) { + params.put("preOutHospitalHeadDate", reqVO.getPreOutHospitalHeadDate()); + } + if (reqVO.getPreOutHospitalTailDate() != null) { + params.put("preOutHospitalTailDate", reqVO.getPreOutHospitalTailDate()); } if (reqVO.getHealthcareRecordTypeList() != null && !reqVO.getHealthcareRecordTypeList().isEmpty()) { params.put("healthcareRecordTypeList", reqVO.getHealthcareRecordTypeList()); @@ -148,7 +329,7 @@ } params.put("serviceScopes", null); params.put("inpatientArea", null); - params.put("status", reqVO.getStatusList() != null && !reqVO.getStatusList().isEmpty() ? reqVO.getStatusList() : null); + params.put("status", reqVO.getStatusList() != null && !reqVO.getStatusList().isEmpty() ? reqVO.getStatusList().get(0) : null); return params; } @@ -159,7 +340,7 @@ return headers; } - private List<ServiceSLTDInhospResDTO> parseResponseData(String result, String type, String cry) { + private List<ServiceSLTDInhospResDTO> parseResponseData(String result, List<String> types, String cry, Long orgid) { try { List<Map<String, Object>> dataList = getDataList(result); @@ -169,7 +350,7 @@ } log.info("銆恜arseResponseData銆戞垚鍔熻В鏋恵}鏉″仴搴疯褰曟暟鎹�", resultList.size()); - processResultList(resultList, type, cry); + processResultList(resultList, types, cry, orgid); return resultList; } catch (Exception e) { log.error("銆恜arseResponseData銆戣В鏋愬搷搴旀暟鎹紓甯革紝鍝嶅簲鍐呭锛歿}", result, e); @@ -182,16 +363,16 @@ Type mapType = new TypeToken<Map<String, Object>>() { }.getType(); Map<String, Object> responseMap = gson.fromJson(result, mapType); - - Number codeObj = (Number) responseMap.get("code"); - if (codeObj == null || codeObj.intValue() != 200) { - log.error("銆恜arseResponseData銆戞帴鍙h繑鍥炲け璐ワ紝鍝嶅簲鐮侊細{}锛屽搷搴斿唴瀹癸細{}", codeObj, result); - throw new RuntimeException("鎺ュ彛璋冪敤澶辫触锛屽搷搴旂爜锛�" + codeObj); + Number codeNum = (Number) responseMap.get("code"); + String code = BigDecimal.valueOf(codeNum.longValue()).toPlainString(); + if (StringUtils.isEmpty(code) || !code.equals("200")) { + log.error("銆恜arseResponseData銆戞帴鍙h繑鍥炲け璐ワ紝鍝嶅簲鐮侊細{}锛屽搷搴斿唴瀹癸細{}", code, result); + throw new RuntimeException("鎺ュ彛璋冪敤澶辫触锛屽搷搴旂爜锛�" + code); } Object dataObj = responseMap.get("data"); if (dataObj == null) { - log.warn("銆恜arseResponseData銆戞帴鍙h繑鍥炴暟鎹负绌�"); + log.info("銆恜arseResponseData銆戞帴鍙h繑鍥炴暟鎹负绌�"); return new ArrayList<>(); } @@ -202,36 +383,38 @@ return dataList; } - private void processResultList(List<ServiceSLTDInhospResDTO> resultList, String type, String cry) { - switch (type) { - case "FH0108.01": - log.info("銆恜arseResponseData銆戣В鏋愰棬璇婃暟鎹�"); - outHospitalDate(resultList); - break; - case "FH0108.02": - log.info("銆恜arseResponseData銆戣В鏋愪綇闄㈡暟鎹�"); - inHospitalDate(resultList, cry); - break; - case "FH0108.03": - log.info("銆恜arseResponseData銆戣В鏋愭�ヨ瘖鏁版嵁"); - outHospitalDate(resultList); - break; - default: - log.warn("銆恜arseResponseData銆戞湭鐭ョ殑鏁版嵁绫诲瀷锛歿}", type); - break; - } + private void processResultList(List<ServiceSLTDInhospResDTO> resultList, List<String> types, String cry, Long orgid) { + for (String type : types) + switch (type) { + case "FH0108.01": + log.info("銆恜arseResponseData銆戣В鏋愰棬璇婃暟鎹�"); + outHospitalDate(resultList, orgid); + break; + case "FH0108.02": + log.info("銆恜arseResponseData銆戣В鏋愪綇闄㈡暟鎹�"); + inHospitalDate(resultList, cry, orgid); + break; + case "FH0108.03": + log.info("銆恜arseResponseData銆戣В鏋愭�ヨ瘖鏁版嵁"); + outHospitalDate(resultList, orgid); + break; + default: + log.warn("銆恜arseResponseData銆戞湭鐭ョ殑鏁版嵁绫诲瀷锛歿}", type); + break; + } } - private Boolean outHospitalDate(List<ServiceSLTDInhospResDTO> resultList) { + private Boolean outHospitalDate(List<ServiceSLTDInhospResDTO> resultList, Long orgid) { for (ServiceSLTDInhospResDTO dto : resultList) { - PatArchive patArchive = processPatientArchive(dto); - PatMedOuthosp patMedOuthosp = buildPatMedOuthosp(dto, patArchive); + if (Objects.isNull(dto)) continue; + PatArchive patArchive = processPatientArchive(dto, orgid); + PatMedOuthosp patMedOuthosp = buildPatMedOuthosp(dto, patArchive, orgid); patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp); } return true; } - private PatMedOuthosp buildPatMedOuthosp(ServiceSLTDInhospResDTO dto, PatArchive patArchive) { + private PatMedOuthosp buildPatMedOuthosp(ServiceSLTDInhospResDTO dto, PatArchive patArchive, Long orgid) { PatMedOuthosp patMedOuthosp = new PatMedOuthosp(); patMedOuthosp.setOuthospno(dto.getHealthcareRecordNo()); patMedOuthosp.setSerialnum(dto.getHealthcareRecordNo()); @@ -249,10 +432,14 @@ patMedOuthosp.setMainsuit(dto.getDiagnosisName()); patMedOuthosp.setHpi(null); patMedOuthosp.setCreateTime(new Date()); + patMedOuthosp.setOrgid("" + orgid); return patMedOuthosp; } private Date parseDate(String dateStr) { + if (StringUtils.isEmpty(dateStr)) { + return null; + } try { return new SimpleDateFormat(DATE_FORMAT).parse(dateStr); } catch (ParseException e) { @@ -261,21 +448,25 @@ } } - private Boolean inHospitalDate(List<ServiceSLTDInhospResDTO> resultList, String cry) { + private Boolean inHospitalDate(List<ServiceSLTDInhospResDTO> resultList, String cry, Long orgid) { for (ServiceSLTDInhospResDTO dto : resultList) { - PatArchive patArchive = processPatientArchive(dto); - processPatientInhospInfo(dto, patArchive, cry); + if (Objects.isNull(dto)) continue; + PatArchive patArchive = processPatientArchive(dto, orgid); + processPatientInhospInfo(dto, patArchive, cry, orgid); } return true; } - private void processPatientInhospInfo(ServiceSLTDInhospResDTO dto, PatArchive patArchive, String cry) { - PatMedInhosp patMedInhosp = buildPatientInhospInfo(dto, patArchive, cry); + private void processPatientInhospInfo(ServiceSLTDInhospResDTO dto, PatArchive patArchive, String cry, Long orgid) { + PatMedInhosp patMedInhosp = buildPatientInhospInfo(dto, patArchive, cry, orgid); PatMedInhosp queryInhosp = new PatMedInhosp(); queryInhosp.setPatno(patArchive.getPatientno()); queryInhosp.setSerialnum(patMedInhosp.getSerialnum()); + queryInhosp.setOrgid("" + orgid); + log.info("----------------杩欓噷鐨勫叆鍙備负锛歿}", queryInhosp); List<PatMedInhosp> existingInhosps = patMedInhospService.selectPatMedInhospList(queryInhosp); + log.info("----------------杩欓噷鐨勮繑鍙備负锛歿}", existingInhosps); if (CollectionUtils.isNotEmpty(existingInhosps)) { patMedInhosp.setInhospid(existingInhosps.get(0).getInhospid()); patMedInhospService.updatePatMedInhosp(patMedInhosp); @@ -286,7 +477,8 @@ } } - private PatMedInhosp buildPatientInhospInfo(ServiceSLTDInhospResDTO dto, PatArchive patArchive, String cry) { + private PatMedInhosp buildPatientInhospInfo(ServiceSLTDInhospResDTO dto, PatArchive patArchive, String cry, Long orgid) { + log.info("----------------buildPatientInhospInfo杩欓噷杩涙潵浜嗗悧锛焮}", cry); PatMedInhosp patMedInhosp = new PatMedInhosp(); patMedInhosp.setPatid(patArchive.getId()); patMedInhosp.setPatno(patArchive.getPatientno()); @@ -295,7 +487,8 @@ patMedInhosp.setNurseName(dto.getChiefNurseName()); patMedInhosp.setSerialnum(dto.getHealthcareRecordNo()); patMedInhosp.setFuflag("1"); - patMedInhosp.setInhospstate("0".equals(cry) ? "0" : "1"); + if ("0".equals(cry)) patMedInhosp.setInhospstate("0"); + if ("1".equals(cry)) patMedInhosp.setInhospstate("1"); patMedInhosp.setHospitalcode(dto.getOrgId()); patMedInhosp.setBedNo(dto.getBedNumber()); patMedInhosp.setStarttime(parseDate(dto.getStartTime())); @@ -311,7 +504,7 @@ patMedInhosp.setDrcode("" + dto.getDoctorId()); patMedInhosp.setSchemestatus("0".equals(cry) ? 1L : 2L); patMedInhosp.setDelFlag("0"); - patMedInhosp.setOrgid("1"); + patMedInhosp.setOrgid("" + orgid); return patMedInhosp; } @@ -338,12 +531,12 @@ patMedInhosp.setHospitaldistrictname(dto.getAreaName()); } - private PatArchive processPatientArchive(ServiceSLTDInhospResDTO dto) { + private PatArchive processPatientArchive(ServiceSLTDInhospResDTO dto, Long orgid) { PatArchive queryArchive = new PatArchive(); - queryArchive.setIdcardno(dto.getIdCardNo().trim()); + queryArchive.setIdcardno(StringUtils.isEmpty(dto.getIdCardNo()) ? "" + dto.getMedicalCardId() : dto.getIdCardNo().trim()); List<PatArchive> existingArchives = patArchiveService.selectPatArchiveList(queryArchive); - PatArchive patArchive = buildPatientArchive(dto); + PatArchive patArchive = buildPatientArchive(dto, orgid); if (CollectionUtils.isEmpty(existingArchives)) { patArchiveService.insertPatArchive(patArchive); @@ -357,10 +550,10 @@ return patArchive; } - private PatArchive buildPatientArchive(ServiceSLTDInhospResDTO dto) { + private PatArchive buildPatientArchive(ServiceSLTDInhospResDTO dto, Long orgid) { PatArchive patArchive = new PatArchive(); - patArchive.setPatientno(dto.getMedicalRecordNo()); - patArchive.setIdcardno(dto.getIdCardNo().trim()); + patArchive.setPatientno("" + dto.getPatientId()); + patArchive.setIdcardno(StringUtils.isEmpty(dto.getIdCardNo()) ? "" + dto.getMedicalCardId() : dto.getIdCardNo().trim()); patArchive.setName(dto.getPatientName()); patArchive.setSourcefrom(2); patArchive.setPattype("2"); @@ -376,6 +569,7 @@ patArchive.setDelFlag("0"); patArchive.setCreateTime(new Date()); patArchive.setUpdateTime(new Date()); + patArchive.setOrgid("" + orgid); return patArchive; } @@ -485,7 +679,12 @@ private String getStringValue(Map<String, Object> map, String key) { Object value = map.get(key); - return value != null ? value.toString() : null; + if (value == null) { + return null; + } + + // 鍙鐞嗘暟瀛楃被鍨嬶紝閬垮厤绉戝璁℃暟娉� + return value instanceof Number ? new BigDecimal(value.toString()).toPlainString() : value.toString(); } private Long getLongValue(Map<String, Object> map, String key) { diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java index aa9a70c..799fd20 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java @@ -1,17 +1,12 @@ 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; import com.ruoyi.common.utils.DtoConversionUtils; import com.ruoyi.common.utils.RSAPublicKeyExample; import com.ruoyi.common.utils.StringUtils; import com.smartor.domain.*; -import com.smartor.mapper.ServiceSubtaskAnswerMapper; -import com.smartor.mapper.ServiceSubtaskDetailMapper; -import com.smartor.mapper.ServiceSubtaskMapper; -import com.smartor.mapper.SvyTaskTemplateTargetoptionMapper; +import com.smartor.mapper.*; import com.smartor.service.IServiceSubtaskAnswerService; import com.smartor.service.IServiceTaskService; import lombok.extern.slf4j.Slf4j; @@ -23,7 +18,6 @@ import java.math.BigDecimal; import java.util.*; -import java.util.concurrent.TimeUnit; /** * 浠诲姟闂嵎闂閫夐」Service涓氬姟灞傚鐞� @@ -41,6 +35,9 @@ private ServiceSubtaskMapper serviceSubtaskMapper; @Autowired + private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper; + + @Autowired private RedisCache redisCache; @Autowired @@ -50,10 +47,20 @@ private IServiceTaskService serviceTaskService; @Autowired - private SvyTaskTemplateTargetoptionMapper svyTaskTemplateTargetoptionMapper; + private PatArchiveMapper patArchiveMapper; + + + @Autowired + private PatMedInhospMapper patMedInhospMapper; + + @Autowired + private PatMedOuthospMapper patMedOuthospMapper; @Value("${pri_key}") private String pri_key; + + @Value("${dealDeptCode}") + private String dealDeptCode; /** * 鏌ヨ浠诲姟闂嵎闂閫夐」 @@ -129,6 +136,7 @@ Long tid = null; Long pid = null; Double score = null; + Long isabno = 0L; Set<String> allKeys = redisCache.getAllKeys(); if (ObjectUtils.isNotEmpty(serviceSubTaskAnswerReq)) { //闇�瑕佺珛鍗虫墽琛� @@ -179,7 +187,8 @@ svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, tid, pid); if (map == null) continue aa; - nextScriptno = Long.valueOf(map.get("nextScriptNo")); + if (!Objects.isNull(map.get("nextScriptNo"))) + nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (score == null) { score = Double.valueOf(map.get("score")); } else { @@ -197,7 +206,8 @@ log.error("svyTaskTemplateScriptVO鐨勫�间负锛歿}", svyTaskTemplateScriptVO); 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 (!Objects.isNull(map.get("nextScriptNo"))) + nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (score == null) { score = Double.valueOf(map.get("score")); } else { @@ -221,7 +231,8 @@ List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(ivrLibaTemplateTargetoptions, IvrTaskTemplateTargetoption.class); ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions); Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, tid, pid); - nextScriptno = Long.valueOf(map.get("nextScriptNo")); + if (!Objects.isNull(map.get("nextScriptNo"))) + nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (score == null) { score = Double.valueOf(map.get("score")); } else { @@ -238,7 +249,8 @@ if (ivrTaskTemplateScriptVO.getSort() != null && Long.valueOf(ivrTaskTemplateScriptVO.getSort()).equals(nextScriptno)) { Map<String, String> map = setSFInfo(ivrTaskTemplateScriptVO, Long.valueOf(split[1]), Long.valueOf(split[0])); log.error("map鐨勪俊鎭负锛歿}", map); - nextScriptno = Long.valueOf(map.get("nextScriptNo")); + if (!Objects.isNull(map.get("nextScriptNo"))) + nextScriptno = Long.valueOf(map.get("nextScriptNo")); if (score == null) { score = Double.valueOf(map.get("score")); } else { @@ -252,6 +264,14 @@ } //灏嗚key鍜寁alue浠巖edis涓紝鍒犻櫎 redisCache.deleteObject(key); + + //鏌ヨ鍑鸿浠诲姟涓鍦ㄦ墽琛岀殑鎮h�呬俊鎭� + ServiceSubtaskVO ssVO = new ServiceSubtaskVO(); + ssVO.setTaskid(tid); + ssVO.setPatid(pid); + ssVO.setSendstate(3L); + List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(ssVO); + ServiceSubtask serviceSubtask = new ServiceSubtask(); serviceSubtask.setTaskid(tid); serviceSubtask.setPatid(pid); @@ -263,8 +283,186 @@ log.error("灏嗚key鍜寁alue浠巖edis涓�,serviceSubtask鐨勫�间负--------锛歿}", serviceSubtask); if (score != null) serviceSubtask.setScore(BigDecimal.valueOf(score)); serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); + + //灏嗗綋鍓嶅彂閫佺姸鎬佹敼鎴�9瀹屾垚 + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setPreachform(serviceSubtaskList.get(0).getCurrentPreachform()); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { + ServiceSubtaskPreachform ssp = serviceSubtaskPreachforms.get(0); + ssp.setSendstate("9"); + serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(ssp); + } + } return 1; + } + + @Override + public Boolean saveMYDQuestionAnswer(ServiceSubTaskMYDAnswerReq serviceSubTaskMYDAnswerReq) { + //鐢ㄦ潵澶勭悊鎶曡瘔寤鸿鐨勯儴闂� + String dealDept = null; + + Long patid = null; + List<PatMedInhosp> patMedInhospList = null; + List<PatMedOuthosp> patMedOuthosps = null; + List<Long> idList = new ArrayList<>(); + if (serviceSubTaskMYDAnswerReq.getMzzy().equals("1")) { + //浣忛櫌 + PatMedInhosp patMedInhosp = new PatMedInhosp(); + patMedInhosp.setSerialnum(serviceSubTaskMYDAnswerReq.getSerialnum()); + patMedInhospList = patMedInhospMapper.selectPatMedInhospList(patMedInhosp); + if (CollectionUtils.isNotEmpty(patMedInhospList)) patid = patMedInhospList.get(0).getPatid(); + } else if (serviceSubTaskMYDAnswerReq.getMzzy().equals("2")) { + //闂ㄨ瘖 + PatMedOuthosp patMedOuthosp = new PatMedOuthosp(); + patMedOuthosp.setSerialnum(serviceSubTaskMYDAnswerReq.getSerialnum()); + patMedOuthosps = patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp); + if (CollectionUtils.isNotEmpty(patMedOuthosps)) patid = patMedOuthosps.get(0).getPatid(); + } else if (serviceSubTaskMYDAnswerReq.getMzzy().equals("3")) { + //鎸囧畾涓�涓儴闂紝鐢ㄦ潵澶勭悊鎶曡瘔寤鸿 + dealDept = dealDeptCode; + String serialnum = serviceSubTaskMYDAnswerReq.getSerialnum(); + PatArchive patArchive = new PatArchive(); + patArchive.setPatientno(serialnum); + List<PatArchive> patArchives = patArchiveMapper.selectPatArchiveList(patArchive); + if (CollectionUtils.isNotEmpty(patArchives)) { + patid = patArchives.get(0).getId(); + } + } + + if (CollectionUtils.isNotEmpty(serviceSubTaskMYDAnswerReq.getSvyLibTemplateScriptVOS())) { + Double score = null; + List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS = serviceSubTaskMYDAnswerReq.getSvyLibTemplateScriptVOS(); + Long nextScriptno = null; + for (int i = 0; i < svyLibTemplateScriptVOS.size(); i++) { + if (i == 0) { + //杩欎釜鏃堕棿瑕佹壘鍒扮涓�棰� + for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOS) { + if (svyLibTemplateScriptVO.getSort() == 1L) { + //璇存槑鏄涓�棰� + SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(svyLibTemplateScriptVOS.get(0), SvyTaskTemplateScriptVO.class); + List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateScriptVOS.get(0).getSvyLibTemplateTargetoptions(); + List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyLibTemplateTargetoptions, SvyTaskTemplateTargetoption.class); + svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); + Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(serviceSubTaskMYDAnswerReq.getTaskId()), patid); + if (map == null) continue; + if (!Objects.isNull(map.get("nextScriptNo"))) + nextScriptno = Long.valueOf(map.get("nextScriptNo")); + if (score == null) { + score = Double.valueOf(map.get("score")); + } else { + score = score + Double.valueOf(map.get("score")); + } + if (!Objects.isNull(map.get("id"))) { + idList.add(Long.valueOf(map.get("id"))); + } + } + } + + } else { + SvyTaskTemplateScriptVO svyTaskTemplateScriptVO = DtoConversionUtils.sourceToTarget(svyLibTemplateScriptVOS.get(i), SvyTaskTemplateScriptVO.class); + List<SvyTaskTemplateTargetoption> svyTaskTemplateTargetoptions = DtoConversionUtils.sourceToTarget(svyLibTemplateScriptVOS.get(i).getSvyLibTemplateTargetoptions(), SvyTaskTemplateTargetoption.class); + svyTaskTemplateScriptVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateTargetoptions); + + if (svyTaskTemplateScriptVO.getSort() != null && svyTaskTemplateScriptVO.getSort().equals(nextScriptno)) { + log.error("svyTaskTemplateScriptVO鐨勫�间负锛歿}", svyTaskTemplateScriptVO); + Map<String, String> map = setWJInfo(svyTaskTemplateScriptVO, Long.valueOf(serviceSubTaskMYDAnswerReq.getTaskId()), patid); + log.error("map鐨勪俊鎭负锛歿}", map); + if (!Objects.isNull(map.get("nextScriptNo"))) + nextScriptno = Long.valueOf(map.get("nextScriptNo")); + if (score == null) { + score = Double.valueOf(map.get("score")); + } else { + score = score + Double.valueOf(map.get("score")); + } + if (!Objects.isNull(map.get("id"))) { + idList.add(Long.valueOf(map.get("id"))); + } + } + } + } + ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(Long.valueOf(serviceSubTaskMYDAnswerReq.getTaskId())); + PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patid); + + if (!Objects.isNull(serviceTask)) { + ServiceSubtask serviceSubtask = new ServiceSubtask(); + serviceSubtask.setTaskid(serviceTask.getTaskid()); + serviceSubtask.setTaskName(serviceTask.getTaskName()); + serviceSubtask.setTaskDesc(serviceTask.getTaskDesc()); + serviceSubtask.setTemplateid(serviceTask.getTemplateid()); + serviceSubtask.setTemplatename(serviceTask.getTemplatename()); + serviceSubtask.setLibtemplateid(Long.valueOf(serviceTask.getLibtemplateid())); + if (CollectionUtils.isNotEmpty(patMedInhospList)) { + serviceSubtask.setHospType("2"); + serviceSubtask.setDeptname(patMedInhospList.get(0).getDeptname()); + serviceSubtask.setDeptcode(patMedInhospList.get(0).getDeptcode()); + serviceSubtask.setLeavehospitaldistrictcode(patMedInhospList.get(0).getLeavehospitaldistrictcode()); + serviceSubtask.setLeavehospitaldistrictname(patMedInhospList.get(0).getLeavehospitaldistrictname()); + serviceSubtask.setDrname(patMedInhospList.get(0).getDrname()); + serviceSubtask.setDrcode(patMedInhospList.get(0).getDrcode()); + serviceSubtask.setNurseName(patMedInhospList.get(0).getNurseName()); + serviceSubtask.setNurseId(patMedInhospList.get(0).getNurseId()); + serviceSubtask.setInhospid(patMedInhospList.get(0).getInhospid()); + serviceSubtask.setServiceType("6"); + } else if (CollectionUtils.isNotEmpty(patMedOuthosps)) { + serviceSubtask.setHospType("1"); + serviceSubtask.setAdmindate(patMedOuthosps.get(0).getAdmitdate()); + serviceSubtask.setHospno(patMedOuthosps.get(0).getOuthospno()); + serviceSubtask.setDeptname(patMedOuthosps.get(0).getDeptname()); + serviceSubtask.setDeptcode(patMedOuthosps.get(0).getDeptcode()); + serviceSubtask.setDrname(patMedOuthosps.get(0).getDrname()); + serviceSubtask.setDrcode(patMedOuthosps.get(0).getDrcode()); + serviceSubtask.setServiceType("14"); + } + if (!Objects.isNull(patArchive)) { + serviceSubtask.setPatid(patArchive.getId()); + serviceSubtask.setSendname(patArchive.getName()); + serviceSubtask.setSex(patArchive.getSex()); + serviceSubtask.setPhone(patArchive.getTelcode()); + serviceSubtask.setSfzh(patArchive.getIdcardno()); + serviceSubtask.setAddr(patArchive.getPlaceOfResidence()); + serviceSubtask.setOrgid(patArchive.getOrgid()); + } + if (StringUtils.isNotEmpty(dealDept)) { + //鎶曡瘔寤鸿鐨勫鐞嗛儴闂� + serviceSubtask.setDeptcode(dealDept); + serviceSubtask.setServiceType("15"); + } + serviceSubtask.setSubmit(1L); + serviceSubtask.setSendstate(6L); + serviceSubtask.setType("2"); + serviceSubtask.setExcep(null); + serviceSubtask.setFinishtime(new Date()); + serviceSubtask.setUpdateTime(new Date()); + serviceSubtask.setCreateTime(new Date()); + serviceSubtask.setVisitTime(new Date()); + if (score != null) serviceSubtask.setScore(BigDecimal.valueOf(score)); + serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); + //灏嗗綋鍓嶅彂閫佺姸鎬佹敼鎴�9瀹屾垚 + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setPreachform(serviceSubtask.getCurrentPreachform()); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { + ServiceSubtaskPreachform ssp = serviceSubtaskPreachforms.get(0); + ssp.setSendstate("9"); + serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(ssp); + } + + for (Long detailId : idList) { + ServiceSubtaskDetail serviceSubtaskDetail = new ServiceSubtaskDetail(); + serviceSubtaskDetail.setId(detailId); + serviceSubtaskDetail.setSubId(serviceSubtask.getId()); + serviceSubtaskDetailMapper.updateServiceSubtaskDetail(serviceSubtaskDetail); + } + } + } + + return true; } @@ -287,7 +485,7 @@ tid = Long.valueOf(serviceSubTaskCacheReq.getParam1()); pid = Long.valueOf(serviceSubTaskCacheReq.getParam2()); } - if (CollectionUtils.isNotEmpty(serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS()) && serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS().size() > 0) { + if (CollectionUtils.isNotEmpty(serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS()) && serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS().size() > 0) { //闂嵎 redisCache.deleteObject(pid + "-" + tid + "-WJscriptCache"); redisCache.setCacheListRight(pid + "-" + tid + "-WJscriptCache", serviceSubTaskCacheReq.getSvyLibTemplateScriptVOS()); @@ -428,7 +626,7 @@ List<ServiceSubtaskDetail> serviceSubtaskDetails = serviceSubtaskDetailMapper.selectServiceSubtaskDetailList(serviceSubtaskDetail); if (CollectionUtils.isNotEmpty(serviceSubtaskDetails)) { map.put("asrtext", serviceSubtaskDetails.get(0).getAsrtext()); - map.put("asrtextId", serviceSubtaskDetails.get(0).getId()); + map.put("asrtextId", "" + serviceSubtaskDetails.get(0).getId()); map.put("answerps", serviceSubtaskDetails.get(0).getAnswerps()); return map; } @@ -440,7 +638,6 @@ serviceSubtaskVO.setTaskid(taskid); serviceSubtaskVO.setPatid(patid); List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); - String score = "0"; //涓嬮璺宠浆 String nextScriptNo = null; @@ -455,35 +652,15 @@ } else { serviceSubtaskDetailVO.setTargetvalue(serviceSubtaskDetailVO.getTargetvalue() + "&" + svyTaskTemplateTargetoption.getOptioncontent()); } -// if (svyTaskTemplateTargetoption.getIsUserOperation() == true) { -// //灏嗛�変腑鐨勭粨鏋滄斁鍒癮srtext涓� -// if (StringUtils.isEmpty(serviceSubtaskDetailVO.getAsrtext())) { -// //鍜屽墠绔晢閲忥紝鍓嶇浼氬皢閫変腑鐨勭粨鏋滄洿鏂板埌闂涓� -//// serviceSubtaskDetailVO.setAsrtext(svyTaskTemplateTargetoption.getTargetvalue()); -// serviceSubtaskDetailVO.setAsrtext(svyTaskTemplateScriptVO.getScriptResult()); -// } else { -// //濡傛灉鏄閫夛紝绛旀闇�瑕佺敤 & 杩涜鎷兼帴(//鍜屽墠绔晢閲忥紝鍓嶇浼氬皢閫変腑鐨勭粨鏋滄洿鏂板埌闂涓�) -//// serviceSubtaskDetailVO.setAsrtext(serviceSubtaskDetailVO.getAnswerps() + "&" + svyTaskTemplateTargetoption.getTargetvalue()); -// serviceSubtaskDetailVO.setAsrtext(svyTaskTemplateScriptVO.getScriptResult()); -// } -// if (svyTaskTemplateScriptVO.getScriptType().equals("1") && svyTaskTemplateScriptVO.getBranchFlag().equals("1")) { -// //鏄崟閫夛紝骞朵笖鏄湁鍒嗘敮鐨�(鍜屽墠绔晢閲忥紝鍦ㄥ閾剧粨鏋滀繚瀛樻椂锛屼細灏嗛�変腑鐨勯�夐」涓婄殑璺宠浆鏇存柊鍒伴鐩笂) -//// nextScriptNo = svyTaskTemplateTargetoption.getNextQuestion().toString(); -// nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString(); -// score = svyTaskTemplateTargetoption.getScore().toString(); -// } else { -// nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString(); -// score = svyTaskTemplateScriptVO.getScore().toString(); -// } -// } + } - nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString(); + nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno(); if (svyTaskTemplateScriptVO.getScore() != null) { score = String.valueOf(svyTaskTemplateScriptVO.getScore()); } serviceSubtaskDetailVO.setAsrtext(StringUtils.isEmpty(svyTaskTemplateScriptVO.getScriptResult()) ? "" : svyTaskTemplateScriptVO.getScriptResult().replaceAll("^\"|\"$", "")); serviceSubtaskDetailVO.setMatchedtext(StringUtils.isEmpty(svyTaskTemplateScriptVO.getScriptResult()) ? "" : svyTaskTemplateScriptVO.getScriptResult().replaceAll("^\"|\"$", "")); -// if (StringUtils.isEmpty(serviceSubtaskDetailVO.getAsrtext())) { + // if (StringUtils.isEmpty(serviceSubtaskDetailVO.getAsrtext())) { // nextScriptNo = svyTaskTemplateScriptVO.getNextScriptno().toString(); // } // serviceSubtaskDetailVO.setSvyTaskTemplateTargetoptions(svyTaskTemplateScriptVO.getSvyTaskTemplateTargetoptions()); @@ -520,6 +697,7 @@ Map<String, String> map = new HashMap<>(); map.put("nextScriptNo", nextScriptNo); map.put("score", score); + map.put("id", "" + serviceSubtaskDetail.getId()); return map; } diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java index 92b45c6..66e6364 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java @@ -1,6 +1,7 @@ package com.smartor.service.impl; import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; @@ -48,6 +49,9 @@ public class ServiceSubtaskServiceImpl implements IServiceSubtaskService { @Autowired private ServiceSubtaskMapper serviceSubtaskMapper; + + @Autowired + private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper; @Autowired private ServiceSubtaskDetailMapper serviceSubtaskDetailMapper; @@ -173,7 +177,6 @@ return DtoConversionUtils.sourceToTarget(serviceTask, ServiceTaskVO.class); } - //灏嗘煡鍑烘潵鐨勬暟鎹�掑叆ServiceSubtaskVO涓� ServiceTaskVO serviceTaskVO = DtoConversionUtils.sourceToTarget(serviceTask, ServiceTaskVO.class); serviceTaskVO.setShowDate(serviceTask.getShowDate()); @@ -253,6 +256,14 @@ patTaskRelevance.setNurseName(serviceSubtask1.getNurseName()); patTaskRelevances.add(patTaskRelevance); } + + //鑾峰彇璇ユ偅鑰呮墍鏈夌殑鎵ц鐘舵�� + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid()); + serviceSubtaskPreachform.setSubid(serviceSubtask1.getId()); + List<ServiceSubtaskPreachform> serviceSubtaskPreachformList = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + serviceTaskVO.setPreachformList(serviceSubtaskPreachformList); + } serviceTaskVO.setPatTaskRelevances(patTaskRelevances); @@ -297,7 +308,8 @@ if (serviceSubtask.getSendstate() >= 3L || serviceSubtask.getSendstate() == 1L) yfs = yfs + 1; if (serviceSubtask.getSendstate() == 2L) dsf = dsf + 1; if (serviceSubtask.getSendstate() == 1L) blq = blq + 1; - if (serviceSubtask.getExcep().equals("1")) yc = yc + 1; + if (StringUtils.isNotEmpty(serviceSubtask.getExcep()) && !serviceSubtask.getExcep().equals("0")) + yc = yc + 1; } map.put("wzx", wzx); map.put("ysf", ysf); @@ -414,6 +426,16 @@ throw new BaseException("浠诲姟鍏ュ弬涓虹┖锛岃妫�鏌ュ叆鍙�"); } ServiceTask serviceTask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceTask.class); + if (CollectionUtils.isEmpty(serviceTaskVO.getPreachformList())) throw new BaseException("浠诲姟鐨勫彂閫佹柟寮忎负绌�"); + //灏唒reachfromList鏀惧埌serviceTask涓殑preachfrom涓� + ObjectMapper mapper = new ObjectMapper(); + try { + String preachformList = mapper.writeValueAsString(serviceTaskVO.getPreachformList()); + serviceTask.setPreachform(preachformList); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + serviceTask.setTextParam(JSON.toJSONString(serviceTaskVO.getTextParam())); if (serviceTaskVO.getIsoperation() != null && serviceTaskVO.getIsoperation() == 1) { //鏂板妯℃澘淇℃伅 @@ -460,7 +482,7 @@ ServiceTaskdiag serviceTaskdiag = new ServiceTaskdiag(); serviceTaskdiag.setTaskId(serviceTask.getTaskid()); serviceTaskdiag.setTaskName(serviceTask.getTaskName()); - serviceTaskdiag.setLongtask(0L); + serviceTaskdiag.setLongtask(Long.valueOf(serviceTask.getLongTask())); if (serviceTaskVO.getLongTask() == 1) serviceTaskdiag.setLongtask(1L); serviceTaskdiag.setIcd10code(serviceTaskVO.getIcd10code()); serviceTaskdiag.setIcd10name(serviceTaskVO.getIcd10name()); @@ -481,11 +503,10 @@ serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc()); serviceTaskoper.setTaskId(serviceTask.getTaskid()); serviceTaskoper.setTaskName(serviceTask.getTaskName()); - serviceTaskoper.setLongtask(0L); + serviceTaskoper.setLongtask(Long.valueOf(serviceTask.getLongTask())); serviceTaskoper.setGuid(serviceTask.getGuid()); serviceTaskoper.setOrgid(serviceTask.getOrgid()); serviceTaskoper.setCreateTime(new Date()); - if (serviceTaskVO.getLongTask() == 1) serviceTaskoper.setLongtask(1L); if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) { String[] opcodes = serviceTaskVO.getOpcode().split(","); for (String opcode : opcodes) { @@ -500,8 +521,7 @@ serviceTaskdept.setTaskId(serviceTask.getTaskid()); serviceTaskdept.setTaskName(serviceTask.getTaskName()); serviceTaskdept.setOrgid(serviceTask.getOrgid()); - serviceTaskdept.setLongtask(0L); - if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L); + serviceTaskdept.setLongtask(Long.valueOf(serviceTaskVO.getLongTask())); if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) { String[] deptcodes = serviceTaskVO.getDeptcode().split(","); for (String deptCode : deptcodes) { @@ -522,11 +542,12 @@ } } } - if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1 && serviceTaskVO.getPatCycle() == 0L) { - Map<String, Integer> map = new HashMap<>(); - map.put("taskId", serviceTask.getTaskid().intValue()); - return map; - } +//闀挎湡浠诲姟锛屼篃鍏佽鍔犱汉浜� +// if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1 && serviceTaskVO.getPatCycle() == 0L) { +// Map<String, Integer> map = new HashMap<>(); +// map.put("taskId", serviceTask.getTaskid().intValue()); +// return map; +// } //灏嗕换鍔′俊鎭斁鍒版湇鍔¤〃涓� ServiceSubtask serviceSubtask = DtoConversionUtils.sourceToTarget(serviceTaskVO, ServiceSubtask.class); @@ -565,11 +586,25 @@ serviceSubtask.setNurseName(patTaskRelevance.getNurseName()); serviceSubtask.setCreateBy(serviceTask.getCreateBy()); serviceSubtask.setUpdateBy(serviceTask.getCreateBy()); - serviceSubtask.setVisitTime(patTaskRelevance.getVisitTime()); + serviceSubtask.setVisitTime(patTaskRelevance.getVisittime()); if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1) serviceSubtask.setLongSendTime(patTaskRelevance.getLongSendTime()); serviceSubtaskMapper.insertServiceSubtask(serviceSubtask); serviceSubtask.getId().intValue(); + + //闇�瑕佹寜service_task閲岀殑preachform鐨勯『搴忓皢鍙戦�佹柟寮忎繚瀛樺埌service_subtask_preachform琛ㄤ腑 + if (StringUtils.isNotEmpty(serviceTaskVO.getPreachformList())) { + List<ServiceSubtaskPreachform> pfList = serviceTaskVO.getPreachformList(); + for (ServiceSubtaskPreachform serviceSubtaskPreachform : pfList) { + serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid()); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + //杩欎釜sendstate闇�瑕佸湪鏁版嵁搴撹缃竴涓粯璁ゅ�间负鈥�1鈥� + serviceSubtaskPreachform.setSendstate("1"); + serviceSubtaskPreachform.setOrgid(serviceTask.getOrgid()); + serviceSubtaskPreachform.setCreateTime(new Date()); + serviceSubtaskPreachformMapper.insertServiceSubtaskPreachform(serviceSubtaskPreachform); + } + } } } @@ -579,8 +614,6 @@ serviceTask.setSendTimeSlot(JSON.toJSONString(serviceTaskVO.getSendTimeslot())); //淇敼鎿嶄綔锛岄渶瑕佸皢stopState鐘舵��+1 ServiceTask serviceTask1 = serviceTaskService.selectServiceTaskByTaskid(serviceTask.getTaskid()); -// long l = serviceTask1.getStopState() + 1; -// serviceTask.setStopState(l); //鑾峰彇鍒拌浠诲姟鎵�鏈夌殑鏈嶅姟锛屽苟浠庨槦鍒楅噷鍒犻櫎 ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); serviceSubtaskVO.setTaskid(serviceTask1.getTaskid()); @@ -593,18 +626,6 @@ } else { if (CollectionUtils.isNotEmpty(serviceSubtaskList1)) serviceSubtaskList = serviceSubtaskList1; } - if (CollectionUtils.isNotEmpty(serviceSubtaskList)) { - for (ServiceSubtask serviceSubtask : serviceSubtaskList) { - log.info("insertOrUpdateTask闇�瑕佺Щ闄ょ殑subId涓猴細{}", serviceSubtask.getId().toString()); - serviceSubtaskMapper.deleteServiceSubtaskById(serviceSubtask.getId()); - redisCache.removeElementFromList("cache-exist", serviceSubtask.getId().toString()); - redisCache.removeElementFromList("cache-0", serviceSubtask.getId().toString()); - redisCache.removeElementFromList("cache-1", serviceSubtask.getId().toString()); - redisCache.removeElementFromList("cache-2", serviceSubtask.getId().toString()); - redisCache.removeElementFromList("cache-3", serviceSubtask.getId().toString()); - redisCache.removeElementFromList("cache-4", serviceSubtask.getId().toString()); - } - } if (serviceTaskVO.getLibtemplateid() != null) serviceTask.setLibtemplateid(serviceTaskVO.getLibtemplateid().toString()); @@ -613,17 +634,14 @@ serviceTask.setUpdateTime(new Date()); serviceTaskService.updateServiceTask(serviceTask); if (serviceTaskVO.getAppltype().equals("1") || serviceTaskVO.getAppltype().equals("2")) { - - if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) { String[] deptcodes = serviceTaskVO.getDeptcode().split(","); for (String deptCode : deptcodes) { ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); serviceTaskdept.setTaskId(serviceTask.getTaskid()); serviceTaskdept.setTaskName(serviceTask.getTaskName()); - serviceTaskdept.setLongtask(0L); + serviceTaskdept.setLongtask(Long.valueOf(serviceTask.getLongTask())); serviceTaskdept.setOrgid(serviceTaskVO.getOrgid()); - if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L); serviceTaskdept.setDeptCode(deptCode); serviceTaskdept.setDeptType("1"); serviceTaskdept.setServiceType(serviceTaskVO.getServiceType()); @@ -644,9 +662,8 @@ ServiceTaskdept serviceTaskdept = new ServiceTaskdept(); serviceTaskdept.setTaskId(serviceTask.getTaskid()); serviceTaskdept.setTaskName(serviceTask.getTaskName()); - serviceTaskdept.setLongtask(0L); + serviceTaskdept.setLongtask(Long.valueOf(serviceTask.getLongTask())); serviceTaskdept.setOrgid(serviceTaskVO.getOrgid()); - if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L); serviceTaskdept.setDeptCode(districtcode); serviceTaskdept.setDeptType("2"); serviceTaskdept.setServiceType(serviceTaskVO.getServiceType()); @@ -669,9 +686,7 @@ if (StringUtils.isEmpty(serviceTaskVO.getIcd10code())) { throw new BaseException("鐤剧梾缂栫爜涓虹┖"); } -// serviceTaskdiag.setIcd10code(serviceTaskVO.getIcd10code()); - - serviceTaskdiag.setLongtask(1L); + serviceTaskdiag.setLongtask(Long.valueOf(serviceTask.getLongTask())); serviceTaskdiag.setIcd10name(serviceTaskVO.getIcd10name()); serviceTaskdiag.setGuid(serviceTask.getGuid()); serviceTaskdiag.setOrgid(serviceTask.getOrgid()); @@ -695,7 +710,6 @@ } } - } else if (serviceTaskVO.getAppltype().equals("4")) { ServiceTaskoper serviceTaskoper = new ServiceTaskoper(); if (StringUtils.isEmpty(serviceTaskVO.getOpcode())) { @@ -705,7 +719,7 @@ serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc()); serviceTaskoper.setTaskId(serviceTask.getTaskid()); serviceTaskoper.setTaskName(serviceTask.getTaskName()); - serviceTaskoper.setLongtask(1L); + serviceTaskoper.setLongtask(Long.valueOf(serviceTask.getLongTask())); serviceTaskoper.setGuid(serviceTask.getGuid()); serviceTaskoper.setOrgid(serviceTask.getOrgid()); serviceTaskoper.setCreateTime(new Date()); @@ -728,7 +742,6 @@ } } } - } if (ObjectUtils.isNotEmpty(serviceTaskVO.getIvrTaskTemplateVO())) { IvrTaskTemplate ivrTaskTemplate = new IvrTaskTemplate(); @@ -771,12 +784,13 @@ serviceSubtask.setEndtime(patTaskRelevance.getEndtime()); serviceSubtask.setNurseId(patTaskRelevance.getNurseId()); serviceSubtask.setNurseName(patTaskRelevance.getNurseName()); - serviceSubtask.setVisitTime(patTaskRelevance.getVisitTime()); + serviceSubtask.setVisitTime(patTaskRelevance.getVisittime()); serviceSubtask.setTextParam(new Gson().toJson(serviceTaskVO.getTextParam())); if (patTaskRelevance.getIsoperation() != null) { - if (patTaskRelevance.getIsoperation() == 2) + if (patTaskRelevance.getIsoperation() == 2) { serviceSubtask.setUpdateBy(serviceTask.getUpdateBy()); - serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); + serviceSubtaskMapper.updateServiceSubtaskByCondition(serviceSubtask); + } if (patTaskRelevance.getIsoperation() == 1) { serviceSubtask.setSendstate(1L); serviceSubtask.setUpdateBy(serviceTask.getUpdateBy()); @@ -788,6 +802,32 @@ serviceSubtaskMapper.deleteServiceSubtaskByCondition(serviceTaskVO.getTaskid(), patTaskRelevance.getPatid()); } serviceSubtask.getTaskid().intValue(); + } + } + // 鏈夊彲鑳戒細鎶婂彂閫侀『搴忎篃淇敼浜嗭紙闇�瑕佹牴鎹畉askId灏嗘墍鏈夌殑sendstate锛�=4,5,6鐨剆ubTask鎷夊嚭鏉ワ紝杩涜淇敼涓�涓嬶級 + ServiceSubtaskVO ssVo = new ServiceSubtaskVO(); + ssVo.setTaskid(serviceTaskVO.getTaskid()); + ssVo.setDelFlag("0"); + List<Long> ssList = new ArrayList<>(); + ssList.add(1l); + ssList.add(2L); + ssList.add(3L); + ssVo.setSendstates(ssList); + List<ServiceSubtask> ssTaskList = serviceSubtaskMapper.selectServiceSubtaskBySendstate(ssVo); + for (int i = 0; i < ssTaskList.size(); i++) { + ServiceSubtask serviceSubtask = ssTaskList.get(i); + serviceSubtaskPreachformMapper.deleteServiceSubtaskPreachformBySubid(serviceSubtask.getId()); + if (StringUtils.isNotEmpty(serviceTaskVO.getPreachformList())) { + List<ServiceSubtaskPreachform> pfList = serviceTaskVO.getPreachformList(); + for (ServiceSubtaskPreachform serviceSubtaskPreachform : pfList) { + serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid()); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + //杩欎釜sendstate闇�瑕佸湪鏁版嵁搴撹缃竴涓粯璁ゅ�间负鈥�1鈥� + serviceSubtaskPreachform.setSendstate("1"); + serviceSubtaskPreachform.setOrgid(serviceTask.getOrgid()); +// serviceSubtaskPreachform.setSort(Long.valueOf(i)); + serviceSubtaskPreachformMapper.insertServiceSubtaskPreachform(serviceSubtaskPreachform); + } } } } @@ -1055,7 +1095,7 @@ //鍒ゆ柇鏄惁鎸傛満 String hangupState = redisCache.getCacheObject(phoneCallReqYQVO.getUuid() + "- hangup"); Object cacheObject1 = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup"); - if (StringUtils.isNotEmpty(hangupState) && hangup.equals("1") || ObjectUtils.isNotEmpty(cacheObject1) && String.valueOf(cacheObject1).equals("1")) { + if (StringUtils.isNotEmpty(hangupState) && hangupState.equals("1") || ObjectUtils.isNotEmpty(cacheObject1) && String.valueOf(cacheObject1).equals("1")) { return new PhoneCallBackYQVO(); } if ("AsrCallback".equals(phoneCallReqYQVO.getOperate()) && phoneCallReqYQVO.getEnd_time() != null && phoneCallReqYQVO.getEnd_time() != -1) { @@ -1064,6 +1104,8 @@ //鍒ゆ柇 recordAccept-hungup 鏄惁鏈夊�硷紝濡傛灉鏈夛紝鍒欒鏄庝笉鐢ㄥ鐞嗕簡锛屼箣鍓嶅凡缁忓鐞嗚繃浜嗭紙recordAccept-hungup杩欎釜涓昏鏄粰"閫氳瘽璁板綍鐢ㄧ殑锛�"锛� Object cacheObject = redisCache.getCacheObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup"); if (ObjectUtils.isNotEmpty(cacheObject) && String.valueOf(cacheObject).equals("1")) { + ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(phoneCallReqYQVO.getTaskid())); + setFailPreachForm(serviceSubtask, "3", "鎷ㄥ彨鐨勭敤鎴锋蹇�", "4"); return new PhoneCallBackYQVO(); } //濡傛灉鍙戦�佺姸鎬佷负6锛屽氨璇存槑宸茬粡鎵撳畬浜嗭紝涔熸病鏈夊繀瑕佺户缁線涓嬭蛋浜� @@ -1085,8 +1127,12 @@ //鍏堟妸榛樿鐨剅ecordAccept-hungup鍒犻櫎锛屽啀鏇存柊 redisCache.deleteObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup"); redisCache.setCacheObject(phoneCallReqYQVO.getTaskid() + "recordAccept-hungup", "1", 10, TimeUnit.MINUTES); + + //璁板綍鐢佃瘽鍙戦�佺姸鎬� + setFailPreachForm(serviceSubtask2, "3", "鐢佃瘽鍙戦�佹垚鍔燂紙鎮h�呮寕鏂級", "4"); + //杩欎釜鏃跺�欏氨闇�瑕佽蛋琛ュ伩鏈哄埗浜嗭紝鍏堟殏瀹氳蛋鐭俊 - getSmsCompensate(Long.valueOf(phoneCallReqYQVO.getTaskid())); +// getSmsCompensate(Long.valueOf(phoneCallReqYQVO.getTaskid())); return new PhoneCallBackYQVO(); } } @@ -1115,6 +1161,9 @@ req.put("caller", phoneCallReqYQVO.getPhone()); // HttpUtils.sendPost(hangup, new Gson().toJson(req)); HttpUtil.postJsonRequest(hangup, new Gson().toJson(req)); + ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(phoneCallReqYQVO.getTaskid())); + //璁板綍鐢佃瘽鍙戦�佺姸鎬� + setFailPreachForm(serviceSubtask, "3", "閫氳瘽姝e父缁撴潫", "9"); //鍒犻櫎缁撴潫璇殑鎮e瓨 redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "- jsy"); } else { @@ -1122,6 +1171,7 @@ log.error("-------PlayEventCallbackPlaystop鐨勫�间负锛歿}", true); } } + return phoneCallBackYQVO; } //鑾峰彇鏀鹃煶鏄惁缁撴潫 @@ -1198,6 +1248,9 @@ serviceSubtask.setUpdateTime(new Date()); log.error("鍏堟洿鏂颁竴涓嬪垎鏁�,鐢佃瘽鐨剆erviceSubtask鐨勫�间负锛歿}", serviceSubtask); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + //璁板綍鐘舵�� + setFailPreachForm(serviceSubtask, "3", "闈欓粯娆℃暟杈惧埌" + num + "娆�", "4"); + Map<String, String> map = delRedisValue(null, id.toString()); if (ObjectUtils.isNotEmpty(map)) redisCache.setCacheObject(map.get("cacheName"), map.get("val")); redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone()); @@ -1252,6 +1305,8 @@ ss.setSendstate(6L); ss.setRemark("鐢佃瘽鎷ㄦ墦宸插畬鎴�"); serviceSubtaskMapper.updateServiceSubtask(ss); + //璁板綍鐘舵�� + setFailPreachForm(serviceSubtask, "3", "鐢佃瘽鎷ㄦ墦宸插畬鎴�", "9"); //鍙互鎸傛満浜� redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone()); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE"); @@ -1336,6 +1391,8 @@ redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES); phoneCallBackYQVO.setType("text"); phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask.getJsy()); + //璁板綍鐘舵�� + setFailPreachForm(serviceSubtask, "3", "鐢佃瘽鎷ㄦ墦宸插畬鎴�", "9"); return phoneCallBackYQVO; } @@ -1367,6 +1424,9 @@ ss.setSendstate(6L); ss.setRemark("鐢佃瘽鎷ㄦ墦宸插畬鎴�"); serviceSubtaskMapper.updateServiceSubtask(ss); + //璁板綍鐘舵�� + setFailPreachForm(serviceSubtask, "3", "鐢佃瘽鎷ㄦ墦宸插畬鎴�", "9"); + redisCache.deleteObject(serviceSubtask.getId() + "-" + serviceSubtask.getPhone()); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "SCORE"); redisCache.deleteObject(phoneCallReqYQVO.getUuid() + "PlayEventCallbackPlaystop"); @@ -1414,6 +1474,8 @@ serviceSubtask.setSendstate(6L); serviceSubtask.setRemark("鐢佃瘽鎷ㄦ墦宸插畬鎴�"); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + //璁板綍鐘舵�� + setFailPreachForm(serviceSubtask, "3", "鐢佃瘽鎷ㄦ墦宸插畬鎴�", "9"); //璁剧疆缁撴潫璇� phoneCallBackYQVO.setValue(phoneCallBackYQVO.getCommonValue() + serviceTask1.getJsy()); Long id = serviceSubtask.getId(); @@ -1484,7 +1546,8 @@ serviceSubtask.setSendstate(6L); serviceSubtask.setRemark("鐢佃瘽鎷ㄦ墦宸插畬鎴�"); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); - + //璁板綍鐘舵�� + setFailPreachForm(serviceSubtask, "3", "鐢佃瘽鎷ㄦ墦宸插畬鎴�", "9"); //鍦╮edis涓繚瀛樹竴涓嬬粨鏉熻锛屽湪璋冪敤鎸傜數璇濈殑鏂规硶鏃跺垹闄� ServiceTask serviceTask = serviceTaskService.selectServiceTaskByTaskid(serviceSubtask.getTaskid()); redisCache.setCacheObject(phoneCallReqYQVO.getUuid() + "- jsy", serviceTask.getJsy(), 120, TimeUnit.MINUTES); @@ -1588,7 +1651,8 @@ serviceSubtask.setRemark("鐢佃瘽鎷ㄦ墦宸插畬鎴�"); serviceSubtask.setSendstate(6L); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); - + //璁板綍鐘舵�� + setFailPreachForm(serviceSubtask, "3", "鐢佃瘽鎷ㄦ墦宸插畬鎴�", "9"); //鍘籸edis涓紝鎶婅瀛愪换鍔D鍒犻櫎 Long id = serviceSubtask.getId(); Map<String, String> map = delRedisValue(null, id.toString()); @@ -1813,241 +1877,6 @@ } - //涓嬮潰鐨勪唬鐮佷笉鑳藉垹闄わ紝涓婇潰鐨勬柟娉曞彧鏄厤鍚堢數璇濈鑱旇皟鐢ㄧ殑锛� -// @Override -// public PhoneCallBackVO phoneCallBack(PhoneCallBackVO phoneCallBackVO) { -// log.error("phoneCallBackVO鐨勫叆鍙傦細{},{},{},{},{},{},{}", phoneCallBackVO.getResultType(), phoneCallBackVO.getUuid(), phoneCallBackVO.getErrResult(), phoneCallBackVO.getTextResult(), phoneCallBackVO.getHangUpResult(), phoneCallBackVO.getEnumState(), phoneCallBackVO.getUint8()); -// //鑾峰彇鏁版嵁 -// Boolean aBoolean = redisCache.hasKey(phoneCallBackVO.getUuid()); -// if (!aBoolean) { -// throw new BaseException("璇uid涓嶅瓨鍦�"); -// } -// Integer hangupValue = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "hangup"); -// if (hangupValue != null && hangupValue == 1) { -// //hangupValue == 1 闅忚缁撴潫锛岀洿鎺ュ彲浠ユ寕鐢佃瘽 -// PhoneUtils phoneUtils = new PhoneUtils(); -// phoneUtils.hangup(phoneCallBackVO.getUuid(), null, null, null, null, null, null, null); -// -// } -// -// Map<String, Object> map = redisCache.getCacheObject(phoneCallBackVO.getUuid()); -//// ObjectMapper objectMapper = new ObjectMapper(); -//// Map<String, Object> map = null; -//// try { -//// map = objectMapper.readValue(cacheObject, Map.class); -//// } catch (JsonProcessingException e) { -//// e.printStackTrace(); -//// } -// -// ServiceSubtask ServiceSubtask = (ServiceSubtask) map.get("ServiceSubtask"); -// List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOs = (List<IvrLibaTemplateScriptVO>) map.get("ivrLibaTemplateScriptVO"); -// //灏唘uid鏇存柊鍒版暟鎹簱涓� -// ServiceSubtask.setSenduuid(phoneCallBackVO.getUuid()); -// ServiceSubtaskMapper.updateServiceSubtask(ServiceSubtask); -// -// //鑾峰彇妯℃澘淇℃伅 -// IvrLibaTemplateVO ivrLibaTemplateVO = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "ivrLibaTemplateVO"); -// -// -// //棣栧厛鍒ゆ柇resultType -// if (phoneCallBackVO.getResultType() == 1) { -// //鍛煎彨缁撴灉鎺ュ彛: 1 -// if (phoneCallBackVO.getUint8() == 1) { -// //鍛煎彨澶辫触锛屽幓redis涓褰曚竴涓嬪け璐ユ鏁帮紝杩涜鍐嶆鍛煎彨 -// Integer integer = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "uint8"); -// if (integer != null) { -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "uint8", integer + 1, 120, TimeUnit.MINUTES); -// } else { -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "uint8", 1, 120, TimeUnit.MINUTES); -// } -// -// if (integer != null && integer == ServiceSubtask.getRecallcount().intValue()) { -// log.info("鏃犱汉鎺ュ惉锛歿}, {}", phoneCallBackVO.getErrResult(), phoneCallBackVO.getUuid()); -// //杩炵画鎵撹瀹氭锛屽鏋滆娌′汉鎺ワ紝閭e氨缁撴潫 -// ServiceSubtask.setResult(phoneCallBackVO.getErrResult()); -// ServiceSubtaskMapper.updateServiceSubtask(ServiceSubtask); -// redisCache.deleteObject(phoneCallBackVO.getUuid() + "uint8"); -// } else if (integer != null && integer < ServiceSubtask.getRecallcount().intValue()) { -// //杩涜閲嶆嫧 -// PhoneUtils phoneUtils = new PhoneUtils(); -// phoneUtils.ob(null, null, null, null, null, null, null, ServiceSubtask.getPhone(), phoneCallBackVO.getUuid(), true); -// } -// } -// -// } else if (phoneCallBackVO.getResultType() == 2) { -// //閫氳瘽鐘舵�佹洿鏂版帴鍙�: 2 -// if (phoneCallBackVO.getEnumState() == 0) { -// // 0-鎸搩 -// Integer integer = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "enumState"); -// -// if (integer != null && integer < ServiceSubtask.getRecallcount().intValue()) { -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "enumState", integer + 1, 120, TimeUnit.MINUTES); -// } else if (integer == null) { -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "enumState", 1, 120, TimeUnit.MINUTES); -// } else if (integer != null && integer == ServiceSubtask.getRecallcount().intValue()) { -// ServiceSubtask.setResult("鏃犱汉鎺ュ惉"); -// ServiceSubtaskMapper.updateServiceSubtask(ServiceSubtask); -// redisCache.deleteObject(phoneCallBackVO.getUuid() + "enumState"); -// } -// } else if (phoneCallBackVO.getEnumState() == 2) { -// //鎮h�呮寕鏂數璇� -// log.info("鎮h�呮寕鏂數璇濓細{}", phoneCallBackVO.getUuid()); -// ServiceSubtask.setResult(phoneCallBackVO.getHangUpResult()); -// ServiceSubtaskMapper.updateServiceSubtask(ServiceSubtask); -// redisCache.deleteObject(phoneCallBackVO.getUuid() + "enumState"); -// } -// -// -// } else if (phoneCallBackVO.getResultType() == 3) { -// //璇煶璇嗗埆缁撴灉涓婃姤鎺ュ彛: 3 -// Integer noVoice = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "noVoice"); -// QuestionMessage returnQues = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "returnQues"); -// IvrLibaTemplateScriptVO nowQuestion = returnQues.getNowQuestion(); -// PhoneUtils phoneUtils = new PhoneUtils(); -// -// if (StringUtils.isEmpty(phoneCallBackVO.getTextResult())) { -// //鏃犲洖璇� -// //鍒ゆ柇noVoice鏄惁宸茬粡鍒颁簡鏈�澶у�� -// if (noVoice == ivrLibaTemplateVO.getNoVoiceNum().intValue()) { -// //宸茬粡闂簡瀵瑰簲鐨勯亶鏁帮紝灏卞垽鏂槸鍚﹁繕鏈変笅涓�棰� -// if (nowQuestion.getTargetid() == ivrLibaTemplateScriptVOs.size()) { -// //娌℃湁涓嬩竴棰樹簡锛屽氨鎸傛柇鐢佃瘽锛屾挱鏀剧粨鏉熻 -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "hangup", 1, 120, TimeUnit.MINUTES); -// phoneUtils.ttsPlayback(ivrLibaTemplateVO.getRevisitAfter(), phoneCallBackVO.getUuid()); -// } else { -// //鏈変笅涓�棰� -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "noVoice", 0, 120, TimeUnit.MINUTES); -// IvrLibaTemplateScriptVO nextQuestion = getNextQuestion(ivrLibaTemplateScriptVOs, nowQuestion); -// // 闂锛� 鍘昏皟鐢�"tts鍚堟垚鍜屾挱鏀�"鎺ュ彛 -// phoneUtils.ttsPlayback(nowQuestion.getQuestionText(), phoneCallBackVO.getUuid()); -// } -// } else { -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "noVoice", noVoice + 1, 120, TimeUnit.MINUTES); -// //璋冪敤ivrLibaTemplateScriptVO涓殑slienceText(闈欓粯璇濇湳) -// String slienceText = nowQuestion.getSlienceText(); -// //闈欓粯璇濇湳 + 闂锛� 鍘昏皟鐢�"tts鍚堟垚鍜屾挱鏀�"鎺ュ彛 -// phoneUtils.ttsPlayback(slienceText + nowQuestion.getQuestionText(), phoneCallBackVO.getUuid()); -// return new PhoneCallBackVO(); -// } -// -// } else { -// //鏈夊洖璇濓紝瀵瑰洖绛旂殑闂,杩涜姝e垯鍖归厤锛堣繖閲屽彧閽堝閫夋嫨棰橈紝鍏跺畠棰樺瀷涓嶈锛� -// for (int j = 0; j < nowQuestion.getIvrLibaScriptTargetoptionList().size(); j++) { -// //鍖呭惈 -// Matcher matcher = null; -// if (StringUtils.isNotEmpty(nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getTargetregex())) { -// Pattern pattern = Pattern.compile(nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getTargetregex()); -// matcher = pattern.matcher(phoneCallBackVO.getTextResult()); -// } -// //涓嶅寘鍚� -// Matcher matcher2 = null; -// if (StringUtils.isNotEmpty(nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2())) { -// Pattern pattern2 = Pattern.compile(nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2()); -// matcher2 = pattern2.matcher(phoneCallBackVO.getTextResult()); -// } -// log.info("phoneCallBack--Targetregex鐨勫�间负锛歿}, phoneCallBack--Targetregex2鐨勫�间负锛歿}", nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getTargetregex(), nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2()); -// if (StringUtils.isNotEmpty(nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches() && StringUtils.isNotEmpty(nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() || StringUtils.isEmpty(nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getTargetregex()) && StringUtils.isNotEmpty(nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2()) && matcher2.matches() || StringUtils.isEmpty(nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getTargetregex2()) && StringUtils.isNotEmpty(nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getTargetregex()) && matcher.matches()) { -// //璇存槑鍖归厤姝g‘浜� -// //杩欓噷搴旇鍏堝垽鏂被鍨嬶紝鍘诲啀淇敼锛岃缃甀sUserOperation鏄崟閫夐鐨勬敼娉� -// nowQuestion.getIvrLibaScriptTargetoptionList().get(j).setIsUserOperation(true); -// ivrLibaScriptTargetoptionMapper.updateIvrLibaTemplateTargetoption(nowQuestion.getIvrLibaScriptTargetoptionList().get(j)); -// -// -// //灏嗛潤榛樼疆涓�0 -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "noVoice", 0, 120, TimeUnit.MINUTES); -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "mateNum", 0, 120, TimeUnit.MINUTES); -// //鑾峰彇涓嬩竴棰� -// Integer nextQuestion = nowQuestion.getIvrLibaScriptTargetoptionList().get(j).getNextQuestion(); -// for (IvrLibaTemplateScriptVO script : ivrLibaTemplateScriptVOs) { -// if (script.getTargetid() == nextQuestion) { -// QuestionMessage questionMessage = new QuestionMessage(); -// questionMessage.setNowQuestion(script); -// questionMessage.setQuestionList(ivrLibaTemplateScriptVOs); -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "returnQues", questionMessage, 120, TimeUnit.MINUTES); -// break; -// } -// } -// break; -// } else { -// //娌℃湁鍖归厤鍒� -// Integer mateNum = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "mateNum"); -// //鏃犲尮閰嶆鏁板幓鍒ゆ柇鏄惁鍒版渶澶ц闂鏁帮紝骞朵笖鎵�鏈夌殑閫夐」閮藉尮閰嶅畬浜� -// if (mateNum == ivrLibaTemplateVO.getMateNum().intValue() && j == nowQuestion.getIvrLibaScriptTargetoptionList().size() - 1) { -// //濡傛灉涓嬩竴棰樹负绌�.鍒欐柊鐨勬暟鎹繑鍥�,骞跺姞涓婃劅璋㈣ -// if (nowQuestion.getTargetid() < ivrLibaTemplateScriptVOs.size()) { -// QuestionMessage questionMessage = new QuestionMessage(); -// IvrLibaTemplateScriptVO nextQuestion = getNextQuestion(ivrLibaTemplateScriptVOs, nowQuestion); -// questionMessage.setQuestionList(ivrLibaTemplateScriptVOs); -// questionMessage.setNowQuestion(nextQuestion); -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "returnQues", questionMessage, 120, TimeUnit.MINUTES); -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "mateNum", 0, 120, TimeUnit.MINUTES); -// } else { -// //灏卞彲浠ユ寕鏂數璇濅簡 -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "hangup", 1, 120, TimeUnit.MINUTES); -// phoneUtils.ttsPlayback(ivrLibaTemplateVO.getRevisitAfter(), phoneCallBackVO.getUuid()); -// break; -// } -// } else if (mateNum < ivrLibaTemplateVO.getMateNum().intValue() && j == nowQuestion.getIvrLibaScriptTargetoptionList().size() - 1) { -// //娌℃湁闂埌瑙勫畾娆℃暟 -// mateNum = mateNum + 1; -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "mateNum", mateNum, 120, TimeUnit.MINUTES); -// } -// } -// -// } -// //閫夐」鍖归厤瀹屾垚鍚庯紝闇�瑕佸啀鍘婚�氳繃搴撳啀杩涜鍖归厤涓�娆� -// String extemplateID = ivrLibaTemplateVO.getSubmoduleID(); -// String[] split = extemplateID.split(","); -// List<String> list = Arrays.asList(split); -// List<Long> list1 = new ArrayList<>(); -// if (StringUtils.isNotEmpty(extemplateID)) { -// for (String str : list) { -// list1.add(Long.valueOf(str)); -// } -// List<IvrLibaExtemplatescript> ivrLibaExtemplatescripts = ivrLibaExtemplatescriptMapper.queryIvrLibaExtemplatescriptList(list1); -// for (IvrLibaExtemplatescript ivrLibaExtemplatescript : ivrLibaExtemplatescripts) { -// Matcher matcher = null; -// if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex())) { -// Pattern pattern = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex()); -// matcher = pattern.matcher(returnQues.getContent()); -// } -// -// Matcher matcher2 = null; -// if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2())) { -// Pattern pattern2 = Pattern.compile(ivrLibaExtemplatescript.getSelfRegex2()); -// matcher2 = pattern2.matcher(returnQues.getContent()); -// } -// log.info("++++++++++++++++++++++++++閫氱敤搴撴槸鍚︿负绌猴細selfRegex : {} , selfRegex2 : {}", ivrLibaExtemplatescript.getSelfRegex(), ivrLibaExtemplatescript.getSelfRegex2()); -// if (StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches() && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && matcher2.matches() || StringUtils.isEmpty(ivrLibaExtemplatescript.getSelfRegex2()) && StringUtils.isNotEmpty(ivrLibaExtemplatescript.getSelfRegex()) && matcher.matches()) { -// QuestionMessage questionMessage = redisCache.getCacheObject(phoneCallBackVO.getUuid() + "returnQues"); -// IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO = returnQues.getNowQuestion(); -// ivrLibaTemplateScriptVO.setSubmoduleText(ivrLibaExtemplatescript.getSwitchText()); -// ivrLibaTemplateScriptVO.setSubmoduleVoice(ivrLibaExtemplatescript.getSwitchWav()); -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "returnQues", questionMessage, 120, TimeUnit.MINUTES); -// if (ivrLibaExtemplatescript.getIsEnd() == 1) { -// //灏嗛棶棰樼疆绌� -// IvrLibaTemplateScriptVO nowQuestion1 = questionMessage.getNowQuestion(); -// nowQuestion1.setQuestionText(null); -// nowQuestion1.setQuestionVoice(null); -// questionMessage.setNowQuestion(nowQuestion1); -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "returnQues", questionMessage, 120, TimeUnit.MINUTES); -// -// redisCache.setCacheObject(phoneCallBackVO.getUuid() + "isOver", 1, 120, TimeUnit.MINUTES); -// } -// -// //璋冪敤"15銆乼ts鍚堟垚鍜屾挱鏀撅紝 tts_playback"灏嗙粨鏋滀紶鍥� -// -// -// } -// break; -// } -// } -// -// } -// } -// return phoneCallBackVO; -// } - @Override public Integer saveQuestionAnswerPhone(ServiceSubTaskDetailReq serviceSubTaskDetailReq) { int i = 0; @@ -2066,7 +1895,7 @@ //闅忚 for (ServiceSubtaskDetail serviceSubtaskDetail : serviceSubTaskDetailReq.getServiceSubtaskDetailList()) { serviceSubtaskDetail.setSubId(selectServiceSubtaskList.get(0).getId()); - serviceSubtaskDetail.setId(UUID.randomUUID().toString()); +// serviceSubtaskDetail.setId(UUID.randomUUID().toString()); serviceSubtaskDetail.setCreateTime(new Date()); serviceSubtaskDetail.setGuid(selectServiceSubtaskList.get(0).getGuid()); serviceSubtaskDetail.setOrgid(serviceSubTaskDetailReq.getOrgid()); @@ -2112,7 +1941,11 @@ Object cacheObject = redisCache.getCacheObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup"); if (phoneCallRecordVO.getHangup_cause().equals("NO_USER_RESPONSE") || ObjectUtils.isNotEmpty(cacheObject) && String.valueOf(cacheObject).equals("1")) { //鏃犱汉鎺ュ惉 - getSmsCompensate(Long.valueOf(phoneCallRecordVO.getTaskid())); + //璁板綍鐢佃瘽鍙戦�佺姸鎬� + ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(Long.valueOf(phoneCallRecordVO.getTaskid())); + setFailPreachForm(serviceSubtask, "3", "鏃犱汉鎺ュ惉", "4"); + //杩涜鐭俊琛ュ伩 +// getSmsCompensate(Long.valueOf(phoneCallRecordVO.getTaskid())); redisCache.deleteObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup"); redisCache.removeElementFromList("cache-exist", phoneCallRecordVO.getTaskid()); } else if (ObjectUtils.isNotEmpty(cacheObject) && String.valueOf(cacheObject).equals("2")) { @@ -2130,6 +1963,7 @@ serviceSubtask.setUpdateTime(new Date()); log.error("鐢佃瘽鎷ㄦ墦宸插畬鎴恠erviceSubtask鐨勫�间负:{}", serviceSubtask); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + setFailPreachForm(serviceSubtask, StringUtils.isNotEmpty(serviceSubtask.getCurrentPreachform()) ? serviceSubtask.getCurrentPreachform() : "3", "鐢佃瘽鎷ㄦ墦宸插畬鎴�", "9"); //涓嬭浇鏂囦欢 ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString()); redisCache.deleteObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup"); @@ -2147,8 +1981,10 @@ // int endIndex = phoneCallRecordVO.getRecord_path().lastIndexOf("/"); // String result = phoneCallRecordVO.getRecord_path().substring(startIndex, endIndex); //涓嬭浇鏂囦欢 - ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString()); +// ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString()); redisCache.deleteObject(phoneCallRecordVO.getTaskid() + "recordAccept-hungup"); + ServiceSubtask ss = serviceSubtaskMapper.selectServiceSubtaskById(serviceSubtask.getId()); + setFailPreachForm(ss, StringUtils.isNotEmpty(ss.getCurrentPreachform()) ? ss.getCurrentPreachform() : "3", "鐢佃瘽鎺ラ�氭垚鍔燂紝鎮h�呮嫆缁濋殢璁�", "5"); } return 1; @@ -2227,11 +2063,11 @@ public List<ServiceSubtaskStatistic> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) { log.error("getSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq); List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>(); - List<ServiceSubtask> rawData = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq); - +// List<ServiceSubtask> rawData = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq); + // 鏍规嵁鏉′欢杩涜鍒嗙粍 Map<String, List<ServiceSubtask>> collect = new HashMap<>(); - + if (serviceSubtaskCountReq.getLeavehospitaldistrictcodes() != null && serviceSubtaskCountReq.getLeavehospitaldistrictcodes().size() > 0) { if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) { collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDrname()).orElse("Unknown"))); @@ -2245,7 +2081,7 @@ collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDeptname()).orElse("Unknown"))); } } - + for (List<ServiceSubtask> serviceSubtaskList : collect.values()) { if (CollectionUtils.isEmpty(serviceSubtaskList)) { continue; @@ -2259,14 +2095,14 @@ // 濡傛灉鏈夊尰鐢熺紪鐮侊紝璁剧疆鍖荤敓缂栫爜鐢ㄤ簬鍙婃椂鐜囨煡璇� if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) { ss.setDrcode(serviceSubtaskList.get(0).getDrcode()); - }else { + } else { if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())) { ss.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode()); } else if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getDeptcodes())) { ss.setDeptcode(serviceSubtaskList.get(0).getDeptcode()); } } - + ss.setStarttime(serviceSubtaskCountReq.getStartTime()); ss.setEndtime(serviceSubtaskCountReq.getEndTime()); if (serviceSubtaskCountReq.getEndTime() != null && new Date().before(serviceSubtaskCountReq.getEndTime())) { @@ -2310,15 +2146,15 @@ collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(subtask -> Optional.ofNullable(subtask.getDeptname()).orElse("Unknown"))); } } - List<ServiceSubtaskCount> joySubCount=serviceSubtaskMapper.getSfStatisticsJoy(serviceSubtaskCountReq); + List<ServiceSubtaskCount> joySubCount = serviceSubtaskMapper.getSfStatisticsJoy(serviceSubtaskCountReq); for (List<ServiceSubtask> serviceSubtaskList : collect.values()) { if (CollectionUtils.isEmpty(serviceSubtaskList)) { continue; } - ServiceSubtaskStatistic statistic = getStatisticJoy(serviceSubtaskList,joySubCount); - if(statistic.getJoyCount()!=0&&statistic.getJoyAllCount()!=0) { + ServiceSubtaskStatistic statistic = getStatisticJoy(serviceSubtaskList, joySubCount); + if (statistic.getJoyCount() != 0 && statistic.getJoyAllCount() != 0) { Double joyTotal = Double.parseDouble(statistic.getJoyCount() + "") / Double.parseDouble(statistic.getJoyAllCount() + "") * 100; - statistic.setJoyTotal(String.format("%.2f", joyTotal)+"%"); + statistic.setJoyTotal(String.format("%.2f", joyTotal) + "%"); } //鍙婃椂鐜� ServiceSubtask ss = new ServiceSubtask(); @@ -2327,7 +2163,7 @@ // 濡傛灉鏈夊尰鐢熺紪鐮侊紝璁剧疆鍖荤敓缂栫爜鐢ㄤ簬鍙婃椂鐜囨煡璇� if (serviceSubtaskCountReq.getDrcode() != null && !serviceSubtaskCountReq.getDrcode().isEmpty()) { ss.setDrcode(serviceSubtaskList.get(0).getDrcode()); - }else { + } else { if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())) { ss.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode()); } else if (CollectionUtils.isNotEmpty(serviceSubtaskCountReq.getDeptcodes())) { @@ -2380,7 +2216,7 @@ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) { serviceSubtaskStatistic.setPendingFollowUp(serviceSubtaskStatistic.getPendingFollowUp() + 1L); } - if (serviceSubtask.getSendstate() != null && ( serviceSubtask.getSendstate() == 6)) { + if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 6)) { serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L); } if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) { @@ -2445,7 +2281,7 @@ return serviceSubtaskStatistic; } - private ServiceSubtaskStatistic getStatisticJoy(List<ServiceSubtask> serviceSubtaskList,List<ServiceSubtaskCount> joySubCount) { + private ServiceSubtaskStatistic getStatisticJoy(List<ServiceSubtask> serviceSubtaskList, List<ServiceSubtaskCount> joySubCount) { ServiceSubtaskStatistic serviceSubtaskStatistic = new ServiceSubtaskStatistic(); //鏍煎紡鍖栦负涓や綅灏忔暟鐨勭櫨鍒嗘瘮 DecimalFormat percentFormat = new DecimalFormat("##.##%"); @@ -2461,13 +2297,12 @@ serviceSubtaskStatistic.setJoyAllCount(0); for (ServiceSubtask serviceSubtask : serviceSubtaskList) { //婊℃剰搴� - List<ServiceSubtaskCount> joyCountTemp= joySubCount.stream().filter(r->r.getSubTaskId().equals(serviceSubtask.getId())) - .collect(Collectors.toList()); - if(joyCountTemp!=null&&joyCountTemp.size()>0){ - if(ObjectUtils.isNotEmpty(joyCountTemp.get(0).getJoyCount())) - serviceSubtaskStatistic.setJoyCount(serviceSubtaskStatistic.getJoyCount()+joyCountTemp.get(0).getJoyCount()); - if(ObjectUtils.isNotEmpty(joyCountTemp.get(0).getJoyAllCount())) - serviceSubtaskStatistic.setJoyAllCount(serviceSubtaskStatistic.getJoyAllCount()+joyCountTemp.get(0).getJoyAllCount()); + List<ServiceSubtaskCount> joyCountTemp = joySubCount.stream().filter(r -> r.getSubTaskId().equals(serviceSubtask.getId())).collect(Collectors.toList()); + if (joyCountTemp != null && joyCountTemp.size() > 0) { + if (ObjectUtils.isNotEmpty(joyCountTemp.get(0).getJoyCount())) + serviceSubtaskStatistic.setJoyCount(serviceSubtaskStatistic.getJoyCount() + joyCountTemp.get(0).getJoyCount()); + if (ObjectUtils.isNotEmpty(joyCountTemp.get(0).getJoyAllCount())) + serviceSubtaskStatistic.setJoyAllCount(serviceSubtaskStatistic.getJoyAllCount() + joyCountTemp.get(0).getJoyAllCount()); } //鏃犻渶闅忚浜烘 if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) { @@ -2486,7 +2321,7 @@ if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) { serviceSubtaskStatistic.setPendingFollowUp(serviceSubtaskStatistic.getPendingFollowUp() + 1L); } - if (serviceSubtask.getSendstate() != null && ( serviceSubtask.getSendstate() == 6)) { + if (serviceSubtask.getSendstate() != null && (serviceSubtask.getSendstate() == 6)) { serviceSubtaskStatistic.setFollowUpSuccess(serviceSubtaskStatistic.getFollowUpSuccess() + 1L); } if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) { @@ -2611,6 +2446,11 @@ return serviceSubtaskDetail; } + /** + * 鐢佃瘽鐨勮ˉ鍋挎柟娉曪紙鑰侊級 + * + * @param subTaskId + */ private void getSmsCompensate(Long subTaskId) { ServiceSubtask serviceSubtask = serviceSubtaskMapper.selectServiceSubtaskById(subTaskId); RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample(); @@ -2641,6 +2481,34 @@ serviceSubtask.setSendstate(3L); serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + //闇�瑕佸湪servicePreachform閲岃褰曚竴涓嬬煭淇$姸鎬� + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setPreachform("4"); + serviceSubtaskPreachform.setSubid(subTaskId); + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid()); + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { + ServiceSubtaskPreachform serviceSubtaskPreachform1 = serviceSubtaskPreachforms.get(0); + serviceSubtaskPreachform1.setSendstate("9"); + serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform1); + } else if (CollectionUtils.isEmpty(serviceSubtaskPreachforms)) { + //濡傛灉涓虹┖鐨勮瘽锛岃鏄庣敤鎴锋病鏈夐�夌煭淇″彂閫佹柟寮忥紝杩欎釜鏃跺�欓渶瑕佸己鍒舵柊澧炰竴鏉� + //鑾峰彇sort鐨勬渶澶у�� + ServiceSubtaskPreachform ssp = new ServiceSubtaskPreachform(); + ssp.setSubid(subTaskId); + ssp.setTaskid(serviceSubtask.getTaskid()); + ssp.setOrgid(serviceSubtask.getOrgid()); + List<ServiceSubtaskPreachform> sspf2 = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(ssp); + + serviceSubtaskPreachform.setSort(0L); + if (CollectionUtils.isNotEmpty(sspf2)) { + serviceSubtaskPreachform.setSort(Long.valueOf(sspf2.size())); + } + serviceSubtaskPreachform.setSendstate("2"); + serviceSubtaskPreachformMapper.insertServiceSubtaskPreachform(serviceSubtaskPreachform); + } + } //閫氳繃褰撳墠鏃堕棿锛屾媺鍙栫數璇濇�绘暟 @@ -2665,6 +2533,72 @@ } public List<ServiceSubtaskCount> getSfStatisticsJoydetails(ServiceSubtaskCountReq serviceSubtaskCountReq) { - return serviceSubtaskMapper.getSfStatisticsJoydetails(serviceSubtaskCountReq); + return serviceSubtaskMapper.getSfStatisticsJoydetails(serviceSubtaskCountReq); + } + + + /** + * @param serviceSubtask + * @param preachform + * @param remark + * @param failSendstate + * @return + */ + public Boolean setFailPreachForm(ServiceSubtask serviceSubtask, String preachform, String remark, String failSendstate) { + //灏嗙姸鎬佽缃负澶辫触 + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + serviceSubtaskPreachform.setTaskid(serviceSubtask.getTaskid()); + serviceSubtaskPreachform.setOrgid(serviceSubtask.getOrgid()); + //鑾峰彇璇ユ偅鑰呯殑鍙戦�佹柟寮忔�绘暟 + List<ServiceSubtaskPreachform> spSize = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + + serviceSubtaskPreachform.setPreachform(preachform); + //1:鏈彂閫佺姸鎬� + serviceSubtaskPreachform.setSendstate("1"); + if (preachform.equals("3")) { + //鐢佃瘽杩涘叆闃熷垪鍚庯紝鐘舵�佷細鍙樻垚2 + serviceSubtaskPreachform.setSendstate("2"); + } + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { + ServiceSubtaskPreachform serviceSubtaskPreachform1 = serviceSubtaskPreachforms.get(0); + serviceSubtaskPreachform1.setSendstate(failSendstate); + serviceSubtaskPreachform1.setRemark(remark); + serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(serviceSubtaskPreachform1); + + //濡傛灉褰撳墠鐨刾reachform宸茬粡鏄渶鍚庝竴涓簡锛岄偅鐩存帴灏唖erviceSubtask鐨剆endstate鐘舵�佹敼鎴�5灏辫浜�(鍏ㄥけ璐ヤ簡) + if (serviceSubtaskPreachform1.getSort() == spSize.size() && failSendstate.equals("4")) { + serviceSubtask.setCurrentPreachform(preachform); + serviceSubtask.setSendstate(5L); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + return true; + } + } + + serviceSubtask.setCurrentPreachform(preachform); + serviceSubtask.setSendstate(3L); + //濡傛灉绛変簬9锛屽垯璇存槑鐢佃瘽姝e父缁撴潫浜� + if (failSendstate.equals("9")) serviceSubtask.setSendstate(6L); + serviceSubtask.setVisitTime(getNextVisitTime(serviceSubtask.getId(), serviceSubtask.getTaskid(), serviceSubtask.getVisitTime())); + serviceSubtaskMapper.updateServiceSubtask(serviceSubtask); + return true; + } + + private Date getNextVisitTime(Long subid, Long taskid, Date visitTime) { + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setSubid(subid); + serviceSubtaskPreachform.setTaskid(taskid); + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { + String compensateTime = serviceSubtaskPreachforms.get(0).getCompensateTime(); + int hoursToAdd = Integer.valueOf(compensateTime) * 24; + Calendar calendar = Calendar.getInstance(); + calendar.setTime(visitTime); + calendar.add(Calendar.HOUR_OF_DAY, hoursToAdd); + Date newDate = calendar.getTime(); + return newDate; + } + return visitTime; } } diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java index 1aba511..2ed3017 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceTaskServiceImpl.java @@ -45,13 +45,15 @@ @Autowired - private SvyTaskTemplateMapper svyTaskTemplateMapper; + private ServiceSubtaskPreachformMapper serviceSubtaskPreachformMapper; @Autowired private HeLibraryMapper heLibraryMapper; @Autowired private IvrLibaTemplateScriptMapper ivrLibaTemplateScriptMapper; + @Autowired + private IvrTaskTemplateScriptMapper ivrTaskTemplateScriptMapper; @Autowired private SvyLibTemplateScriptMapper svyLibTemplateScriptMapper; @@ -59,9 +61,17 @@ @Autowired private PatArchiveMapper patArchiveMapper; + @Autowired + private PatMedInhospMapper patMedInhospMapper; + + @Autowired + private PatMedOuthospMapper patMedOuthospMapper; + @Autowired private IvrLibaTemplateTargetoptionMapper ivrLibaTemplateTargetOptionMapper; + @Autowired + private IvrTaskTemplateTargetoptionMapper ivrTaskTemplateTargetOptionMapper; @Autowired private SvyLibTemplateTargetoptionMapper svyLibTemplateTargetoptionMapper; @@ -224,7 +234,8 @@ ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); serviceSubtaskVO.setPatid(patid); serviceSubtaskVO.setTaskid(taskid); -// List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + serviceSubtaskVO.setSendstate(3L); + List<ServiceSubtask> selectServiceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); // //鏌ヨ鎮h�呮槸鍚﹂噸瑕嗗仛棰� // if (CollectionUtils.isEmpty(selectServiceSubtaskList)) { // Long submit = selectServiceSubtaskList.get(0).getSubmit(); @@ -255,20 +266,121 @@ Integer integer = serviceSubtaskMapper.selectSendstateByCondition(ss); if (integer != null && integer != 6) { ss.setSendstate(1L); -// ss.setResult("success"); -// ss.setFinishtime(new Date()); serviceSubtaskMapper.updateServiceSubtaskByCondition(ss); } } } - SvyTaskTemplate svyTaskTemplate = svyTaskTemplateMapper.selectSvyTaskTemplateBySvyid(serviceTask.getTemplateid()); + if (CollectionUtils.isNotEmpty(selectServiceSubtaskList)) { + //灏嗗綋鍓嶆柟寮忕殑鍙戦�佺姸鎬佹敼鎴愬凡棰嗗彇 + ServiceSubtask serviceSubtask = selectServiceSubtaskList.get(0); + ServiceSubtaskPreachform serviceSubtaskPreachform = new ServiceSubtaskPreachform(); + serviceSubtaskPreachform.setPreachform(serviceSubtask.getCurrentPreachform()); + serviceSubtaskPreachform.setSubid(serviceSubtask.getId()); + serviceSubtaskPreachform.setTaskid(serviceTask.getTaskid()); + List<ServiceSubtaskPreachform> serviceSubtaskPreachforms = serviceSubtaskPreachformMapper.selectServiceSubtaskPreachformList(serviceSubtaskPreachform); + if (CollectionUtils.isNotEmpty(serviceSubtaskPreachforms)) { + ServiceSubtaskPreachform ssp = serviceSubtaskPreachforms.get(0); + ssp.setSendstate("3"); + serviceSubtaskPreachformMapper.updateServiceSubtaskPreachform(ssp); + } + } + if (StringUtils.isNotEmpty(serviceTask.getKcb())) map.put("kcb", serviceTask.getKcb()); map.put("script", info); if (StringUtils.isNotEmpty(serviceTask.getJsy())) map.put("jsy", serviceTask.getJsy()); map.put("type", serviceTask.getType()); map.put("taskName", serviceTask.getTaskName()); map.put("submit", "0"); + return map; + } + + @Override + public Map<String, Object> getScriptByCondition(Long taskid, String zyserialnum, String mzserialnum, String tsserialnum) { + //閫氳繃浠诲姟ID鑾峰彇妯℃澘ID + ServiceTask serviceTask = selectServiceTaskByTaskid(taskid); + //閫氳繃妯℃澘ID鑾峰彇闂淇℃伅 + SvyLibTemplateScript svyLibTemplateScript = new SvyLibTemplateScript(); + svyLibTemplateScript.setSvyid(Long.valueOf(serviceTask.getLibtemplateid())); + svyLibTemplateScript.setDelFlag("0"); + List<SvyLibTemplateScript> svyLibTemplateScripts = svyLibTemplateScriptMapper.selectSvyLibTemplateScriptList(svyLibTemplateScript); + if (CollectionUtils.isEmpty(svyLibTemplateScripts) || svyLibTemplateScripts.size() == 0) { + log.info("ivrLibaTemplateScripts涓虹┖浜嗭紝璇峰敖蹇仈绯荤鐞嗗憳澶勭悊"); + return null; + } + PatArchive patArchive = null; + if (StringUtils.isNotEmpty(zyserialnum)) { + PatMedInhospVO patMedInhospVO = new PatMedInhospVO(); + patMedInhospVO.setSerialnum(zyserialnum); + List<PatMedInhosp> patMedInhospList = patMedInhospMapper.selectPatMedInhospListByCondition(patMedInhospVO); + if (CollectionUtils.isNotEmpty(patMedInhospList)) { + patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhospList.get(0).getPatid()); + } + } else if (StringUtils.isNotEmpty(mzserialnum)) { + PatMedOuthosp patMedOuthosp = new PatMedOuthosp(); + patMedOuthosp.setSerialnum(mzserialnum); + List<PatMedOuthosp> patMedOuthosps = patMedOuthospMapper.selectPatMedOuthospList(patMedOuthosp); + if (CollectionUtils.isNotEmpty(patMedOuthosps)) { + patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedOuthosps.get(0).getPatid()); + } + } else if (StringUtils.isNotEmpty(tsserialnum)) { + PatArchive pa = new PatArchive(); + pa.setPatientno(tsserialnum); + List<PatArchive> patArchives = patArchiveMapper.selectPatArchiveList(pa); + if (CollectionUtils.isNotEmpty(patArchives)) patArchive = patArchives.get(0); + } + + //鍒ゆ柇涓�涓嬩粖澶╂槸鍚﹀凡缁忓仛杩囬锛屽仛杩囧氨涓嶈鍐嶅仛浜� + ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO(); + serviceSubtaskVO.setTaskid(taskid); + serviceSubtaskVO.setPatid(patArchive.getId()); + serviceSubtaskVO.setVisitTime(new Date()); + List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO); + if (CollectionUtils.isNotEmpty(serviceSubtaskList) && serviceSubtaskList.size() > 0) { + Map<String, Object> map = new HashMap<>(); + map.put("result", "浠婃棩宸茬粡鍋氳繃婊℃剰搴﹁皟鏌� 锛屾棤闇�鍐嶉噸澶嶅仛绛旓紒"); + return map; + } + + List<SvyLibTemplateScriptVO> svyLibTemplateScriptVOS = DtoConversionUtils.sourceToTarget(svyLibTemplateScripts, SvyLibTemplateScriptVO.class); + //灏嗘ā鏉块棶棰樿瘽鏈噷鐨勯�氶厤绗︽浛鎹� + ObjectMapper objectMapper = new ObjectMapper(); + Map<String, Map<String, String>> serviceTaskMap = null; + try { + serviceTaskMap = objectMapper.readValue(serviceTask.getTextParam(), Map.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + List<Map<String, String>> mapList = new ArrayList<>(); + + for (Map<String, String> map : serviceTaskMap.values()) { + mapList.add(map); + } + for (SvyLibTemplateScriptVO svyLibTemplateScriptVO : svyLibTemplateScriptVOS) { + if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent())) { + for (Map<String, String> map : mapList) { + for (String key : map.keySet()) { + + svyLibTemplateScriptVO.setScriptContent(svyLibTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); + } + } + //鏇挎崲鎮h�呬釜浜轰俊鎭暟鎹� + log.error("闂id锛歿}, 闂鍐呭锛歿}", svyLibTemplateScriptVO.getId(), svyLibTemplateScriptVO.getScriptContent()); + if (StringUtils.isNotEmpty(svyLibTemplateScriptVO.getScriptContent()) && ObjectUtils.isNotEmpty(patArchive)) { + 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()); + List<SvyLibTemplateTargetoption> svyLibTemplateTargetoptions = svyLibTemplateTargetoptionMapper.selectSvyLibTemplateTargetoptionList(svyLibTemplateTargetoption); + svyLibTemplateScriptVO.setSvyLibTemplateTargetoptions(svyLibTemplateTargetoptions); + } + } + Map<String, Object> map = new HashMap<>(); + map.put("result", null); + map.put("svyLibTemplateScriptVOS", svyLibTemplateScriptVOS); return map; } @@ -281,15 +393,15 @@ */ public List sfInfo(ServiceTask serviceTask, Long patid, String patfrom) { //閫氳繃妯℃澘ID鑾峰彇闂淇℃伅 - IvrLibaTemplateScript ivrLibaTemplateScript = new IvrLibaTemplateScript(); - ivrLibaTemplateScript.setTemplateid(Long.valueOf(serviceTask.getLibtemplateid())); - ivrLibaTemplateScript.setDelFlag("0"); - List<IvrLibaTemplateScript> ivrLibaTemplateScripts = ivrLibaTemplateScriptMapper.selectIvrLibaTemplateScriptList(ivrLibaTemplateScript); - if (CollectionUtils.isEmpty(ivrLibaTemplateScripts) || ivrLibaTemplateScripts.size() == 0) { + IvrTaskTemplateScript ivrTaskTemplateScript = new IvrTaskTemplateScript(); + ivrTaskTemplateScript.setTemplateID(Long.valueOf(serviceTask.getTemplateid())); + ivrTaskTemplateScript.setDelFlag("0"); + List<IvrTaskTemplateScript> ivrTaskTemplateScripts = ivrTaskTemplateScriptMapper.selectIvrTaskTemplateScriptList(ivrTaskTemplateScript); + if (CollectionUtils.isEmpty(ivrTaskTemplateScripts) || ivrTaskTemplateScripts.size() == 0) { log.info("ivrLibaTemplateScripts涓虹┖浜嗭紝璇峰敖蹇仈绯荤鐞嗗憳澶勭悊"); return new ArrayList<>(); } - List<IvrLibaTemplateScriptVO> ivrLibaTemplateScriptVOS = DtoConversionUtils.sourceToTarget(ivrLibaTemplateScripts, IvrLibaTemplateScriptVO.class); + List<IvrTaskTemplateScriptVO> ivrTaskTemplateScriptVOS = DtoConversionUtils.sourceToTarget(ivrTaskTemplateScripts, IvrTaskTemplateScriptVO.class); //鑾峰彇鎮h�呬俊鎭� PatArchive patArchive = null; @@ -314,29 +426,29 @@ } //灏嗘ā鏉块棶棰樿瘽鏈噷鐨勯�氶厤绗︽浛鎹� - for (IvrLibaTemplateScriptVO ivrLibaTemplateScriptVO : ivrLibaTemplateScriptVOS) { - if (StringUtils.isNotEmpty(ivrLibaTemplateScriptVO.getScriptContent())) { + for (IvrTaskTemplateScriptVO ivrTaskTemplateScriptVO : ivrTaskTemplateScriptVOS) { + if (StringUtils.isNotEmpty(ivrTaskTemplateScriptVO.getScriptContent())) { for (Map<String, String> map : mapList) { for (String key : map.keySet()) { - ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); + ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace(key, StringUtils.isNotEmpty(map.get(key)) ? map.get(key) : "")); } } //鏇挎崲鎮h�呬釜浜轰俊鎭暟鎹� - ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : "")); - ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : "")); - ivrLibaTemplateScriptVO.setScriptContent(ivrLibaTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : "")); + ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace("${name}", StringUtils.isNotEmpty(patArchive.getName()) ? patArchive.getName() : "")); + ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace("${dzz}", StringUtils.isNotEmpty(patArchive.getPlaceOfResidence()) ? patArchive.getPlaceOfResidence() : "")); + ivrTaskTemplateScriptVO.setScriptContent(ivrTaskTemplateScriptVO.getScriptContent().replace("${dhh}", StringUtils.isNotEmpty(patArchive.getTelcode()) ? patArchive.getTelcode() : "")); //鑾峰彇闂閫夐」 - IvrLibaTemplateTargetoption ivrLibaTemplateTargetoption = new IvrLibaTemplateTargetoption(); - ivrLibaTemplateTargetoption.setScriptid(ivrLibaTemplateScriptVO.getId()); - List<IvrLibaTemplateTargetoption> ivrLibaTemplateTargetoptions = ivrLibaTemplateTargetOptionMapper.selectIvrLibaTemplateTargetoptionList(ivrLibaTemplateTargetoption); - ivrLibaTemplateScriptVO.setIvrLibaScriptTargetoptionList(ivrLibaTemplateTargetoptions); + IvrTaskTemplateTargetoption ivrTaskTemplateTargetoption = new IvrTaskTemplateTargetoption(); + ivrTaskTemplateTargetoption.setScriptid(ivrTaskTemplateScriptVO.getId()); + List<IvrTaskTemplateTargetoption> ivrTaskTemplateTargetoptions = ivrTaskTemplateTargetOptionMapper.selectIvrTaskTemplateTargetoptionList(ivrTaskTemplateTargetoption); + ivrTaskTemplateScriptVO.setIvrTaskScriptTargetoptionList(ivrTaskTemplateTargetoptions); } } - Collections.sort(ivrLibaTemplateScriptVOS, Comparator.comparingLong(IvrLibaTemplateScriptVO::getSort)); + Collections.sort(ivrTaskTemplateScriptVOS, Comparator.comparingLong(IvrTaskTemplateScriptVO::getSort)); - return ivrLibaTemplateScriptVOS; + return ivrTaskTemplateScriptVOS; } /** diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceTelInfoServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceTelInfoServiceImpl.java index dae868d..a0f88b0 100644 --- a/smartor/src/main/java/com/smartor/service/impl/ServiceTelInfoServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/ServiceTelInfoServiceImpl.java @@ -23,7 +23,7 @@ */ @Override public List<Map<String,Object>> getList() { - List<Map<String,Object>> lists= utilsMapper.getList("select * from service_telinfo where state=0 OR DATE_ADD(editTime, INTERVAL 10 MINUTE)< NOW() "); + List<Map<String,Object>> lists= utilsMapper.getList("select * from service_telinfo where state=0 "); return lists; } /** diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java index ce09f39..f52638e 100644 --- a/smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/SvyTaskSingleServiceImpl.java @@ -350,7 +350,7 @@ }else if(ObjectUtils.isNotEmpty(serviceQueryInfo.getUrl360())){ result = OkHttpExample.sendPostRequest(serviceQueryInfo.getUrl360(), jsonString, token); } - map = objectMapper.readValue(result, Map.class); + map = objectMapper.readValue(result, Map.class); } catch (Exception e) { e.printStackTrace(); } @@ -362,6 +362,7 @@ return map; } + @Override public Map focus(ServiceQueryFocus serviceQueryFocus) { return null; diff --git a/smartor/src/main/resources/mapper/smartor/HNGatherPatArchiveMapper.xml b/smartor/src/main/resources/mapper/smartor/HNGatherPatArchiveMapper.xml index ac28143..30fe095 100644 --- a/smartor/src/main/resources/mapper/smartor/HNGatherPatArchiveMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/HNGatherPatArchiveMapper.xml @@ -645,7 +645,7 @@ d.create_time, d.his_dept_id, d.his_parent_id - FROM bmxx d + FROM HEALTHY_DEPT d </select> </mapper> diff --git a/smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml b/smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml index ce7292e..11c69e2 100644 --- a/smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/PatArchiveMapper.xml @@ -519,7 +519,7 @@ </if> </where> order by a.update_time desc - <if test="pn != null and ps != null"> limit ${pn},${ps} </if> + <if test="pn != null and ps != null">limit ${pn},${ps}</if> </select> @@ -660,8 +660,9 @@ AND NOT exists ( SELECT 1 FROM pat_filterlist f where d.patid=f.patid) </if> </where> - order by a.update_time desc - <if test="pn != null and ps != null"> limit ${pn},${ps} </if> + -- order by a.update_time desc + <if test="pageSize != null and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if> + </select> <select id="selectPatArchiveInfoByOuthosp" parameterType="com.smartor.domain.PatArchiveReq" @@ -751,8 +752,8 @@ AND NOT exists ( SELECT 1 FROM pat_filterlist f where d.patid=f.patid) </if> </where> - order by a.update_time desc - <if test="pn != null and ps != null"> limit ${pn},${ps} </if> + -- order by a.update_time desc + <if test="pageSize != null and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if> </select> <select id="selectPatArchiveInfoByPhysical" parameterType="com.smartor.domain.PatArchiveReq" @@ -844,8 +845,8 @@ AND NOT exists ( SELECT 1 FROM pat_filterlist f where d.patid=f.patid) </if> </where> - order by a.update_time desc - <if test="pn != null and ps != null"> limit ${pn},${ps} </if> + -- order by a.update_time desc + <if test="pageSize != null and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if> </select> <select id="selectPatArchiveInfoByInhospQC" parameterType="com.smartor.domain.PatArchiveReq" @@ -939,8 +940,8 @@ <if test="drcode != null"> AND d.drcode = #{drcode} </if> - <if test="cry != null and cry == 0 ">and d.endtime is null</if> - <if test="cry != null and cry == 1 ">and d.endtime is not null</if> + <if test="allhosp != null and allhosp == 1 ">and d.endtime is null</if> + <if test="allhosp != null and allhosp == 4 ">and d.endtime is not null</if> <if test="visitno != null and visitno != ''"> AND d.inhospno = #{visitno} </if> @@ -989,8 +990,8 @@ AND NOT exists ( SELECT 1 FROM pat_filterlist f where d.patid=f.patid) </if> </where> - order by a.id,a.update_time desc ) as tmp order by endtime desc - <if test="pn != null and ps != null"> limit ${pn},${ps} </if> + <if test="pageSize != null and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if> + ) as tmp </select> <select id="selectPatArchiveInfoByOuthospQC" parameterType="com.smartor.domain.PatArchiveReq" @@ -1084,7 +1085,7 @@ AND NOT exists ( SELECT 1 FROM pat_filterlist f where d.patid=f.patid) </if> </where> - order by a.update_time desc + <if test="pageSize != null and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if> </select> <select id="selectPatArchiveInfoByPhysicalQC" parameterType="com.smartor.domain.PatArchiveReq" @@ -1176,6 +1177,7 @@ AND NOT exists ( SELECT 1 FROM pat_filterlist f where d.patid=f.patid) </if> </where> - order by a.update_time desc + -- order by a.update_time desc + <if test="pageSize != null and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if> </select> </mapper> diff --git a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml index 351aab6..032b5b7 100644 --- a/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/PatMedInhospMapper.xml @@ -387,9 +387,9 @@ b.out_way_name, b.nurse_id, b.nurse_name, - b.deptcheckFlag, - b.diagcheckFlag, - b.wardcheckFlag, + b.deptcheck_flag, + b.diagcheck_flag, + b.wardcheck_flag, b.inhospstate, b.patno, b.inhospno, @@ -436,7 +436,7 @@ b.futypecode, b.futypedesc, b.fuadvice, - b.fuspecialadvice + b.fuspecialadvice, b.schemetime FROM pat_med_inhosp b, @@ -456,6 +456,7 @@ concat('%', #{hospitaldistrictname}, '%') </if> <if test="endtime != null ">and b.endtime = #{endtime}</if> + <if test="serialnum != null ">and b.serialnum = #{serialnum}</if> <if test="fuflag != null ">and b.fuflag = #{fuflag}</if> <if test="nurseId != null ">and b.nurse_id = #{nurseId}</if> <if test="nurseName != null ">and b.nurse_name = #{nurseName}</if> diff --git a/smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml b/smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml index 52f3ec3..039bc61 100644 --- a/smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/PatMedOuthospMapper.xml @@ -122,6 +122,15 @@ #{hospitalname}, '%') </if> + <if test="deptcodes != null and deptcodes.size()>0"> + AND pmo.deptcode IN + <foreach collection="deptcodes" item="deptcode" open="(" separator="," + close=")"> + #{deptcode} + </foreach> + </if> + + <if test="deptname != null and deptname != ''">and pmo.deptname like concat('%', #{deptname}, '%')</if> <if test="drname != null and drname != ''">and pmo.drname like concat('%', #{drname}, '%')</if> <if test="patname != null and patname != ''">and pmo.patname like concat('%', #{patname}, '%')</if> diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml index 761ca97..011efb7 100644 --- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml @@ -171,7 +171,9 @@ where id = #{id} </select> - <insert id="insertServiceSubtaskDetail" parameterType="com.smartor.domain.ServiceSubtaskDetail"> + <insert id="insertServiceSubtaskDetail" parameterType="com.smartor.domain.ServiceSubtaskDetail" + useGeneratedKeys="true" + keyProperty="id"> insert into service_subtask_detail <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">id,</if> diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml index e3f07ff..cd63052 100644 --- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml @@ -84,6 +84,7 @@ <result property="visitDeptCode" column="visit_dept_code"/> <result property="managementDoctor" column="management_doctor"/> <result property="managementDoctorCode" column="management_doctor_code"/> + <result property="currentPreachform" column="current_preachform"/> </resultMap> <resultMap type="com.smartor.domain.ServiceSubtaskCount" id="ServiceSubtaskResult2"> @@ -104,6 +105,7 @@ patfrom, management_doctor, management_doctor_code, + current_preachform, upid, visit_dept_name, visit_dept_code, @@ -184,6 +186,36 @@ management_doctor_code from service_subtask </sql> + + <select id="selectServiceSubtaskBySendstate" parameterType="com.smartor.domain.ServiceSubtaskVO" + resultMap="ServiceSubtaskResult"> + + <include refid="selectServiceSubtaskVo"/> + <where> + del_flag=0 + and taskid = #{taskid} + AND sendstate IN + <foreach collection="sendstates" item="sendstate" open="(" separator="," + close=")"> + #{sendstate} + </foreach> + </where> + </select> + + <select id="queryServiceSubtaskList" parameterType="com.smartor.domain.ServiceSubtaskVO" + resultMap="ServiceSubtaskResult"> + <include refid="selectServiceSubtaskVo"/> + <where> + del_flag=0 + <if test="taskid != null ">and taskid = #{taskid}</if> + <if test="visitTime != null"> + AND date_format(visit_time,'%y%m%d') <= date_format(#{visitTime},'%y%m%d') + </if> + <if test="sendstate != null ">and sendstate = #{sendstate}</if> + </where> + + </select> + <select id="selectServiceSubtaskList" parameterType="com.smartor.domain.ServiceSubtaskVO" resultMap="ServiceSubtaskResult"> @@ -275,6 +307,9 @@ </if> </if> + <if test="visitTime != null"> + AND date_format(visit_time,'%y%m%d') = date_format(#{visitTime},'%y%m%d') + </if> <if test="senddate != null ">and senddate = #{senddate}</if> <if test="senduuid != null and senduuid != ''">and senduuid = #{senduuid}</if> <if test="result != null and result != ''">and result = #{result}</if> @@ -290,6 +325,7 @@ <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if> <if test="pid != null ">and pid = #{pid}</if> <if test="preachform != null ">and preachform = #{preachform}</if> + <if test="currentPreachform != null ">and current_preachform = #{currentPreachform}</if> <if test="guid != null and guid != ''">and guid = #{guid}</if> <if test="textParam != null and textParam != ''">and text_param = #{textParam}</if> <if test="bedNo != null">and bed_no = #{bedNo}</if> @@ -324,7 +360,7 @@ <if test="createBy != null">and create_by = #{createBy}</if> <if test="taskGuid != null">and task_guid = #{taskGuid}</if> <if test="isVisitAgain != null">and is_visit_again = #{isVisitAgain}</if> - <if test="visitTime != null">and visit_time = #{visitTime}</if> + <!-- <if test="visitTime != null">and visit_time = #{visitTime}</if> --> <!--<if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if> <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>--> <if test="visitCount != null and visitCount > 1 and visitDeptCodes != null and visitDeptCodes.size() > 0"> @@ -367,6 +403,7 @@ <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if> <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if> <if test="managementDoctor != null">and management_doctor = #{managementDoctor}</if> + <if test="currentPreachform != null">and current_preachform = #{currentPreachform}</if> </where> </select> @@ -421,6 +458,7 @@ <if test="visitTime != null ">and visit_time = #{visitTime}</if> <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if> <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if> + <if test="currentPreachform != null">and current_preachform = #{currentPreachform}</if> <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if> <if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if> </where> @@ -585,6 +623,7 @@ <if test="visitDeptName != null">visit_dept_name,</if> <if test="managementDoctorCode != null">management_doctor_code,</if> <if test="managementDoctor != null">management_doctor,</if> + <if test="currentPreachform != null">current_preachform,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="sendname != null">#{sendname},</if> @@ -668,6 +707,7 @@ <if test="visitDeptName != null">#{visitDeptName},</if> <if test="managementDoctorCode != null">#{managementDoctorCode},</if> <if test="managementDoctor != null">#{managementDoctor},</if> + <if test="currentPreachform != null">#{currentPreachform},</if> </trim> </insert> @@ -756,6 +796,7 @@ <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if> <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if> <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if> + <if test="currentPreachform != null">current_preachform=#{currentPreachform},</if> </trim> where id = #{id} </update> @@ -845,6 +886,7 @@ <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if> <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if> <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if> + <if test="currentPreachform != null">current_preachform=#{currentPreachform},</if> </trim> <where> <if test="patid != null ">and patid = #{patid}</if> @@ -936,6 +978,7 @@ <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if> <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if> <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if> + <if test="currentPreachform != null">current_preachform=#{currentPreachform},</if> </trim> where patid = #{patid} and taskid = #{taskid} </update> @@ -1024,6 +1067,7 @@ <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if> <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if> <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if> + <if test="currentPreachform != null">current_preachform=#{currentPreachform},</if> </trim> where task_guid = #{taskGuid} and task_name = #{taskName} </update> @@ -1204,6 +1248,7 @@ openid, sfzh, addr, + current_preachform, senderdetail, type, taskid, @@ -1342,16 +1387,16 @@ DATE_FORMAT(visit_time, '%Y-%m-%d') AS timePeriod, </otherwise> </choose> - COUNT(CASE WHEN service_type = '2' THEN 1 END) AS dischargeFollowCount, - COUNT(CASE WHEN service_type = '3' THEN 1 END) AS outpatientFollowCount, + CASE WHEN service_type = '2' THEN 1 END AS dischargeFollowCount, + CASE WHEN service_type = '3' THEN 1 END AS outpatientFollowCount, 0 AS pmiCount, 0 AS pmoCount FROM service_subtask WHERE del_flag = '0' <if test="startDate != null and endDate != null"> - and date_format(visit_time,'%y%m%d') >= date_format(#{startDate},'%y%m%d') - and date_format(visit_time,'%y%m%d') <= date_format(#{endDate},'%y%m%d') + AND visit_time >= #{startDate} + AND visit_time <= DATE_ADD(#{endDate}, INTERVAL 1 DAY) </if> <if test="orgid != null"> @@ -1379,24 +1424,24 @@ </foreach> </if> - GROUP BY - <choose> - <when test="timeType == 'day'"> - DATE_FORMAT(visit_time, '%Y-%m-%d') - </when> - <when test="timeType == 'month'"> - DATE_FORMAT(visit_time, '%Y-%m') - </when> - <when test="timeType == 'year'"> - DATE_FORMAT(visit_time, '%Y') - </when> - <when test="timeType == 'week'"> - CONCAT(YEAR(visit_time), '-W', LPAD(WEEK(visit_time, 1), 2, '0')) - </when> - <otherwise> - DATE_FORMAT(visit_time, '%Y-%m-%d') - </otherwise> - </choose> +<!-- GROUP BY--> +<!-- <choose>--> +<!-- <when test="timeType == 'day'">--> +<!-- DATE_FORMAT(visit_time, '%Y-%m-%d')--> +<!-- </when>--> +<!-- <when test="timeType == 'month'">--> +<!-- DATE_FORMAT(visit_time, '%Y-%m')--> +<!-- </when>--> +<!-- <when test="timeType == 'year'">--> +<!-- DATE_FORMAT(visit_time, '%Y')--> +<!-- </when>--> +<!-- <when test="timeType == 'week'">--> +<!-- CONCAT(YEAR(visit_time), '-W', LPAD(WEEK(visit_time, 1), 2, '0'))--> +<!-- </when>--> +<!-- <otherwise>--> +<!-- DATE_FORMAT(visit_time, '%Y-%m-%d')--> +<!-- </otherwise>--> +<!-- </choose>--> UNION ALL @@ -1421,13 +1466,13 @@ </choose> 0 AS dischargeFollowCount, 0 AS outpatientFollowCount, - COUNT( patid) AS pmiCount, + 1 AS pmiCount, 0 AS pmoCount FROM pat_med_inhosp WHERE del_flag = '0' <if test="startDate != null and endDate != null"> - and date_format(endtime,'%y%m%d') >= date_format(#{startDate},'%y%m%d') - and date_format(endtime,'%y%m%d') <= date_format(#{endDate},'%y%m%d') + AND endtime >= #{startDate} + AND endtime <= DATE_ADD(#{endDate}, INTERVAL 1 DAY) </if> AND inhospstate=1 @@ -1449,24 +1494,24 @@ </foreach> </if> - GROUP BY - <choose> - <when test="timeType == 'day'"> - DATE_FORMAT(endtime, '%Y-%m-%d') - </when> - <when test="timeType == 'month'"> - DATE_FORMAT(endtime, '%Y-%m') - </when> - <when test="timeType == 'year'"> - DATE_FORMAT(endtime, '%Y') - </when> - <when test="timeType == 'week'"> - CONCAT(YEAR(endtime), '-W', LPAD(WEEK(endtime, 1), 2, '0')) - </when> - <otherwise> - DATE_FORMAT(endtime, '%Y-%m-%d') - </otherwise> - </choose> +<!-- GROUP BY--> +<!-- <choose>--> +<!-- <when test="timeType == 'day'">--> +<!-- DATE_FORMAT(endtime, '%Y-%m-%d')--> +<!-- </when>--> +<!-- <when test="timeType == 'month'">--> +<!-- DATE_FORMAT(endtime, '%Y-%m')--> +<!-- </when>--> +<!-- <when test="timeType == 'year'">--> +<!-- DATE_FORMAT(endtime, '%Y')--> +<!-- </when>--> +<!-- <when test="timeType == 'week'">--> +<!-- CONCAT(YEAR(endtime), '-W', LPAD(WEEK(endtime, 1), 2, '0'))--> +<!-- </when>--> +<!-- <otherwise>--> +<!-- DATE_FORMAT(endtime, '%Y-%m-%d')--> +<!-- </otherwise>--> +<!-- </choose>--> UNION ALL @@ -1492,12 +1537,12 @@ 0 AS dischargeFollowCount, 0 AS outpatientFollowCount, 0 AS pmiCount, - COUNT( patid) AS pmoCount + 1 AS pmoCount FROM pat_med_outhosp WHERE del_flag = '0' <if test="startDate != null and endDate != null"> - and date_format(admitdate,'%y%m%d') >= date_format(#{startDate},'%y%m%d') - and date_format(admitdate,'%y%m%d') <= date_format(#{endDate},'%y%m%d') + AND admitdate >= #{startDate} + AND admitdate <= DATE_ADD(#{endDate}, INTERVAL 1 DAY) </if> <if test="orgid != null"> AND orgid = #{orgid} @@ -1510,24 +1555,24 @@ </foreach> </if> - GROUP BY - <choose> - <when test="timeType == 'day'"> - DATE_FORMAT(admitdate, '%Y-%m-%d') - </when> - <when test="timeType == 'month'"> - DATE_FORMAT(admitdate, '%Y-%m') - </when> - <when test="timeType == 'year'"> - DATE_FORMAT(admitdate, '%Y') - </when> - <when test="timeType == 'week'"> - CONCAT(YEAR(admitdate), '-W', LPAD(WEEK(admitdate, 1), 2, '0')) - </when> - <otherwise> - DATE_FORMAT(admitdate, '%Y-%m-%d') - </otherwise> - </choose> +<!-- GROUP BY--> +<!-- <choose>--> +<!-- <when test="timeType == 'day'">--> +<!-- DATE_FORMAT(admitdate, '%Y-%m-%d')--> +<!-- </when>--> +<!-- <when test="timeType == 'month'">--> +<!-- DATE_FORMAT(admitdate, '%Y-%m')--> +<!-- </when>--> +<!-- <when test="timeType == 'year'">--> +<!-- DATE_FORMAT(admitdate, '%Y')--> +<!-- </when>--> +<!-- <when test="timeType == 'week'">--> +<!-- CONCAT(YEAR(admitdate), '-W', LPAD(WEEK(admitdate, 1), 2, '0'))--> +<!-- </when>--> +<!-- <otherwise>--> +<!-- DATE_FORMAT(admitdate, '%Y-%m-%d')--> +<!-- </otherwise>--> +<!-- </choose>--> ) AS combined_data GROUP BY timePeriod ORDER BY timePeriod DESC diff --git a/smartor/src/main/resources/mapper/smartor/SysDeptMapper.xml b/smartor/src/main/resources/mapper/smartor/SysDeptMapper.xml index 089aa5e..cebb745 100644 --- a/smartor/src/main/resources/mapper/smartor/SysDeptMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/SysDeptMapper.xml @@ -120,23 +120,28 @@ <select id="selectDeptByCode" parameterType="string" resultMap="SysDeptResult"> select d.dept_id, - d.parent_id, - d.type, - d.dept_code, - d.dept_type, - d.ancestors, - d.dept_name, - d.order_num, - d.leader, - d.phone, - d.email, - d.orgid, - d.his_dept_id, - d.his_parent_id - d.status + d.parent_id, + d.type, + d.dept_code, + d.dept_type, + d.ancestors, + d.dept_name, + d.order_num, + d.leader, + d.phone, + d.email, + d.orgid, + d.his_dept_id, + d.his_parent_id, + d.status from sys_dept d where del_flag = 0 - and d.dept_code = #{deptCode} + <if test="deptCode != null and deptCode != ''"> + AND dept_code = #{deptCode} + </if> + <if test="orgid != null and orgid != ''"> + AND orgid = #{orgid} + </if> </select> <select id="checkDeptExistUser" parameterType="Long" resultType="int"> @@ -306,7 +311,7 @@ <delete id="deleteDeptById" parameterType="Long"> update sys_dept - set del_flag = '2' + set del_flag = '1' where dept_id = #{deptId} </delete> diff --git a/smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml b/smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml index 0608f36..dbdef40 100644 --- a/smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/SysUserDeptMapper.xml @@ -195,7 +195,7 @@ d.orgid, d.status as dept_status from sys_dept d - left join sys_user_dept ud on d.dept_id = ud.dept_id + left join sys_user_dept ud on d.dept_code = ud.dept_code where ud.user_id = #{userId} and ud.del_flag = 0 and d.del_flag = 0 -- Gitblit v1.9.3