ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -21,6 +21,7 @@ import com.ruoyi.common.utils.sign.Md5Utils; import com.ruoyi.common.utils.sms.smsUtils; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.service.ISysConfigService; import com.smartor.common.LSHospTokenUtil; import com.smartor.common.MtSubmitSmUtil; @@ -121,6 +122,8 @@ @Autowired private ISysConfigService configService; @Autowired private SysConfigMapper sysConfigMapper; public RedisMqReceiver(RedisMessageListenerContainer listenerContainer) { super(listenerContainer); @@ -311,12 +314,11 @@ iServiceOutPathService.updateServiceOutPath(serviceOutPath); sendMagParam.setPhone(serviceSubtask.getPhone()); sendMagParam.setUrl(ip + ":" + req_path + "/sf?p=" + format); if (active.equals("ls") || active.equals("sltd") || active.equals("nhfy")) { sendMagParam.setContent("您好,邀请您填写出院随访调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); } else if (active.equals("xh")) { sendMagParam.setContent("【新华医院】您好,邀请您填写出院随访调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); } else if (active.equals("hzszlyy")) { sendMagParam.setContent("【杭州市第一人民医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("wj.sms.template"); if (!Objects.isNull(sysConfig)) { String smsContemt = sysConfig.getConfigValue(); // sendMagParam.setContent("您好,邀请您填写出院随访调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); sendMagParam.setContent(smsContemt.replace("${wjurl}", sendMagParam.getUrl())); } } else if (type == 2) { @@ -340,14 +342,12 @@ //如果type是语音随访的话(说明补偿发送方式中有电话随访的方式,这里的外链就地址只能用/sf) if (serviceSubtask.getType().equals("1")) sendMagParam.setUrl(StringUtils.isNotEmpty(req_path) ? ip + ":" + req_path + "/sf?p=" + format : ip + "/sf?p=" + format); if (active.equals("ls") || active.equals("sltd") || active.equals("nhfy")) { sendMagParam.setContent("您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); } else if (active.equals("xh")) { sendMagParam.setContent("【新华医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); } else if (active.equals("druid")) { sendMagParam.setContent("您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); } else if (active.equals("hzszlyy")) { sendMagParam.setContent("【杭州市第一人民医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("wj.sms.template"); if (!Objects.isNull(sysConfig)) { String smsContemt = sysConfig.getConfigValue(); // sendMagParam.setContent("您好,邀请您填写出院随访调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); sendMagParam.setContent(smsContemt.replace("${wjurl}", sendMagParam.getUrl())); } } else if (type == 3) { //宣教 @@ -367,13 +367,22 @@ if (heLibrary.getHetype().equals("1")) { sendMagParam.setPhone(serviceSubtask.getPhone()); sendMagParam.setUrl(StringUtils.isNotEmpty(req_path) ? ip + ":" + req_path + "/xj?p=" + format : ip + "/xj?p=" + format); if (active.equals("ls") || active.equals("sltd") || active.equals("nhfy")) { sendMagParam.setContent("您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); } else if (active.equals("xh")) { sendMagParam.setContent("【新华医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); } else if (active.equals("hzszlyy")) { sendMagParam.setContent("【杭州市第一人民医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("xj.sms.template"); if (!Objects.isNull(sysConfig)) { String smsContemt = sysConfig.getConfigValue(); // sendMagParam.setContent("您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); sendMagParam.setContent(smsContemt.replace("${xjurl}", sendMagParam.getUrl())); } // if (active.equals("ls") || active.equals("sltd") || active.equals("nhfy")) { // sendMagParam.setContent("您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); // } else if (active.equals("xh")) { // sendMagParam.setContent("【新华医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); // } else if (active.equals("hzszlyy")) { // sendMagParam.setContent("【杭州市第一人民医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); // } } else if (heLibrary.getHetype().equals("2")) { //通知 String sc = getSC(serviceSubtask, heLibrary.getPreachcontent()); ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskRuleController.java
@@ -123,8 +123,12 @@ @ApiOperation("删除任务执行规则") //@PreAuthorize("@ss.hasPermi('smartor:rule:remove')") @Log(title = "任务执行规则", businessType = BusinessType.DELETE) @GetMapping("/remove/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(serviceTaskRuleService.deleteServiceTaskRuleByIds(ids)); @GetMapping("/remove/{id}") public AjaxResult remove(@PathVariable Long id) { if (id != null) { Long[] ids = new Long[]{id}; return toAjax(serviceTaskRuleService.deleteServiceTaskRuleByIds(ids)); } return error(); } } ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -19,6 +19,7 @@ import com.ruoyi.quartz.service.ICollectHISService; import com.ruoyi.quartz.util.CreateDataTable; import com.ruoyi.system.domain.SysConfig; import com.ruoyi.system.mapper.SysConfigMapper; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.ISysDeptService; import com.smartor.common.LSHospTokenUtil; @@ -173,6 +174,8 @@ @Value("${spring.profiles.active}") private String active; @Autowired private SysConfigMapper sysConfigMapper; public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i)); @@ -412,7 +415,7 @@ } LocalDateTime yesterdayZero = todayZero.minusDays(1); if (active.trim().equals("sltd") || active.trim().equals("nhfy")) { if (active.trim().equals("sltd") || active.trim().equals("nhfy")) { //省立同德与华南附一用同一套采集方法(都是来未来提供) try { //获取省立同德要采集的院区 @@ -444,12 +447,12 @@ log.info("【dealHisData】省立同德“门急诊”开始分页采集数据,院区:{}", cid); serviceSLTDInhospReqVO.setStartHeadTime(null); serviceSLTDInhospReqVO.setStartTailTime(null); serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime); serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime); if (active.trim().equals("nhfy")) { serviceSLTDInhospReqVO.setEncounterTimeStart(yesterdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); serviceSLTDInhospReqVO.setEncounterTimeEnd(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); } // serviceSLTDInhospReqVO.setEncounterTimeStart(nowTime); // serviceSLTDInhospReqVO.setEncounterTimeEnd(nowTime); // if (yesterdayZero != null) { serviceSLTDInhospReqVO.setEncounterTimeStart(yesterdayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); serviceSLTDInhospReqVO.setEncounterTimeEnd(todayZero.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))); // } serviceSLTDInhospReqVO.setStatusList(null); List<String> list1 = new ArrayList<>(); list1.add("FH0108.01"); @@ -838,19 +841,25 @@ //如果type是语音随访的话(说明补偿发送方式中有电话随访的方式,这里的外链就地址只能用/sf) if (serviceSubtask.getType().equals("1")) sendMagParam.setUrl(StringUtils.isNotEmpty(req_path) ? localIP + ":" + req_path + "/sf?p=" + format : localIP + "/sf?p=" + format); sendMagParam.setContent("您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); if (active.equals("xh")) { sendMagParam.setContent("【新华医院】您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("wj.sms.template"); if (!Objects.isNull(sysConfig)) { String smsContemt = sysConfig.getConfigValue(); // sendMagParam.setContent("您好,邀请您填写出院调查表,请点击" + sendMagParam.getUrl() + "填写。感谢您配合!"); sendMagParam.setContent(smsContemt.replace("${wjurl}", sendMagParam.getUrl())); } } else { HeLibrary heLibrary = heLibraryMapper.selectHeLibraryById(serviceSubtask.getLibtemplateid()); if (heLibrary.getHetype().equals("1")) { sendMagParam.setPhone(serviceSubtask.getPhone()); sendMagParam.setUrl(StringUtils.isNotEmpty(req_path) ? localIP + ":" + req_path + "/xj?p=" + format : localIP + "/xj?p=" + format); if (active.equals("ls") || active.equals("sltd") || active.equals("nhfy")) { sendMagParam.setContent("您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); } else if (active.equals("xh")) { sendMagParam.setContent("【新华医院】您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique("xj.sms.template"); if (!Objects.isNull(sysConfig)) { String smsContemt = sysConfig.getConfigValue(); // sendMagParam.setContent("您好,邀请您填写出院宣教调查表,请点击" + sendMagParam.getUrl() + "查看。感谢您配合!"); sendMagParam.setContent(smsContemt.replace("${xjurl}", sendMagParam.getUrl())); } } else if (heLibrary.getHetype().equals("2")) { //通知 @@ -923,12 +932,12 @@ SysDept sysDeptVo = new SysDept(); List<SysDept> sysDepts = new ArrayList<>(); if (ObjectUtils.isNotEmpty(serviceSubtask.getDeptcode())){ if (ObjectUtils.isNotEmpty(serviceSubtask.getDeptcode())) { sysDeptVo.setDeptType("1"); sysDeptVo.setOrgid(serviceSubtask.getOrgid()); sysDeptVo.setDeptCode(serviceSubtask.getDeptcode()); sysDeptService.selectDeptList(sysDeptVo); }else if(ObjectUtils.isNotEmpty(serviceSubtask.getLeavehospitaldistrictcode())){ } else if (ObjectUtils.isNotEmpty(serviceSubtask.getLeavehospitaldistrictcode())) { sysDeptVo.setDeptType("2"); sysDeptVo.setOrgid(serviceSubtask.getOrgid()); sysDeptVo.setDeptCode(serviceSubtask.getLeavehospitaldistrictcode()); @@ -937,13 +946,13 @@ SysDept sysDept = CollectionUtils.isNotEmpty(sysDepts) ? sysDepts.get(0) : new SysDept(); String campusid = ObjectUtils.isNotEmpty(sysDept) ? sysDept.getCampusid() : "2"; //湖滨单独发送方式 if("1".equals(campusid)){ if ("1".equals(campusid)) { String result = smsUtils.sendSms1(xhsmsPath, xhsmsAccount, xhsmsPwd, sendMagParam.getPhone(), content); //这里需要根据result返回的值去判断,是否成功,然后将值赋值给isSuccess if (StringUtils.isNotEmpty(result) && result.contains("处理成功")) { isSuccess = "true"; } }else { } else { String result = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, sendMagParam.getPhone(), content); //这里需要根据result返回的值去判断,是否成功,然后将值赋值给isSuccess if (StringUtils.isNotEmpty(result) && result.contains("处理成功")) { smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
@@ -433,7 +433,6 @@ @ApiModelProperty("手术等级编码") @Excel(name = "手术等级编码") private String oplevelcode; /** * 适用条件类型:1、按科室、2、按病区、3、按疾病诊断、4、按手术类型 */ smartor/src/main/java/com/smartor/domain/ServiceTaskoper.java
@@ -6,6 +6,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * 任务手术关联对象 service_taskoper * @@ -18,24 +20,23 @@ private static final long serialVersionUID = 1L; /** * 模板库和科室关联id * 主键ID */ @ApiModelProperty("模板库和科室关联id") //数据库自增改成@TableId(type = IdType.AUTO) @ApiModelProperty("主键ID") private Long id; /** * 任务id * 任务ID */ @ApiModelProperty("任务id") @Excel(name = "任务id") @ApiModelProperty("任务ID") @Excel(name = "任务ID") private Long taskId; /** * 是否是长期模板: 0:不是 1:是 * 是否长期模板:0 否,1 是 */ @ApiModelProperty("是否是长期模板: 0:不是 1:是") @Excel(name = "是否是长期模板: 0:不是 1:是") @ApiModelProperty("是否长期模板:0 否,1 是") @Excel(name = "是否长期模板:0 否,1 是") private Long longtask; /** @@ -46,17 +47,17 @@ private String taskName; /** * 服务类型(1、监测评估;2、出院随访;3、门诊随访;4、宣教关怀(出院) 5、复诊管理;6、住院满意度调查;7、患者报告; 8、其他通知 9体检随访 10.医技随访 11,影像专科随访 12、心电专科随访, 13专科随访 14、门诊满意度调查 15投诉建议 16课题随访 17、宣教关怀(入院) 18、入院随访 * 服务类型 */ @ApiModelProperty("服务类型(1、监测评估;2、出院随访;3、门诊随访;4、宣教关怀(出院) 5、复诊管理;6、住院满意度调查;7、患者报告; 8、其他通知 9体检随访 10.医技随访 11,影像专科随访 12、心电专科随访, 13专科随访 14、门诊满意度调查 15投诉建议 16课题随访 17、宣教关怀(入院) 18、入院随访") @Excel(name = "服务类型(1、监测评估;2、出院随访;3、门诊随访;4、宣教关怀(出院) 5、复诊管理;6、住院满意度调查;7、患者报告; 8、其他通知 9体检随访 10.医技随访 11,影像专科随访 12、心电专科随访, 13专科随访 14、门诊满意度调查 15投诉建议 16课题随访 17、宣教关怀(入院) 18、入院随访)") @ApiModelProperty("服务类型") @Excel(name = "服务类型") private String serviceType; /** * 手术id * 手术ID */ @ApiModelProperty("手术id") @Excel(name = "手术id") @ApiModelProperty("手术ID") @Excel(name = "手术ID") private String opid; /** @@ -67,12 +68,11 @@ private String opcode; /** * 手术编码 * 手术等级代码 */ @ApiModelProperty("手术等级代码") @Excel(name = "手术等级代码") private String oplevelcode; /** * 手术名称 @@ -82,9 +82,37 @@ private String opdesc; /** * 删除标志(0:未删除 1:已删除) * 科室编码 */ @ApiModelProperty("删除标志(0:未删除 1:已删除)") @ApiModelProperty("科室编码") @Excel(name = "科室编码") private String deptCode; /** * 科室名称 */ @ApiModelProperty("科室名称") @Excel(name = "科室名称") private String deptName; /** * 病区编码 */ @ApiModelProperty("病区编码") @Excel(name = "病区编码") private String wardCode; /** * 病区名称 */ @ApiModelProperty("病区名称") @Excel(name = "病区名称") private String wardName; /** * 删除标志:0 未删除,1 已删除 */ @ApiModelProperty("删除标志:0 未删除,1 已删除") private Integer delFlag; /** @@ -95,10 +123,10 @@ private String orgid; /** * $column.columnComment * GUID */ @ApiModelProperty("$column.columnComment") @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()") @ApiModelProperty("GUID") @Excel(name = "GUID") private String guid; /** @@ -114,6 +142,4 @@ @ApiModelProperty("父ID") @Excel(name = "父ID") private Long pid; } smartor/src/main/java/com/smartor/service/impl/PatMedInhospServiceImpl.java
@@ -313,6 +313,7 @@ addSubTaskByRule(config); //根据患者所在病区,获取该病区的长期任务,新华医院可以先不用根据病区和疾病来做 if (!active.equals("xh")) { //todo 手术主表-手术详情表-出院记录表-科室关系? 需要限制科室? addOperationSubTask(config); } smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -983,43 +983,38 @@ // } // serviceTaskoper.setOpcode(serviceTaskVO.getOpcode()); serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc()); serviceTaskoper.setOplevelcode(serviceTaskVO.getOplevelcode()); // serviceTaskoper.setOplevelcode(serviceTaskVO.getOplevelcode()); serviceTaskoper.setTaskId(serviceTask.getTaskid()); serviceTaskoper.setTaskName(serviceTask.getTaskName()); serviceTaskoper.setLongtask(Long.valueOf(serviceTask.getLongTask())); serviceTaskoper.setGuid(serviceTask.getGuid()); serviceTaskoper.setOrgid(serviceTask.getOrgid()); serviceTaskoper.setCreateTime(new Date()); // if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) { // String[] opcodes = serviceTaskVO.getOpcode().split(","); // for (String opcode : opcodes) { // //先查询一下是否存在 // ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper(); // serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid()); // serviceTaskoper2.setOpcode(serviceTaskVO.getOpcode()); // List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2); // // serviceTaskoper.setOpcode(opcode); // log.info("----serviceTaskoper的值为:{}", serviceTaskoper); // if (CollectionUtils.isNotEmpty(serviceTaskopers)) { // serviceTaskoper.setId(serviceTaskopers.get(0).getId()); // serviceTaskoperService.updateServiceTaskoper(serviceTaskoper); // } else { // serviceTaskoperService.insertServiceTaskoper(serviceTaskoper); // } // } // } ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper(); serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid()); serviceTaskoper2.setOrgid(serviceTask.getOrgid()); // serviceTaskoper2.setOplevelcode(serviceTaskVO.getOplevelcode()); List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2); if (CollectionUtils.isNotEmpty(serviceTaskopers)) { serviceTaskoper.setId(serviceTaskopers.get(0).getId()); serviceTaskoperService.updateServiceTaskoper(serviceTaskoper); } else { serviceTaskoperService.insertServiceTaskoper(serviceTaskoper); serviceTaskoper.setDeptCode(serviceTask1.getDeptcode()); serviceTaskoper.setDeptName(serviceTask1.getDeptname()); serviceTaskoper.setWardCode(serviceTask1.getLeavehospitaldistrictcode()); serviceTaskoper.setWardName(serviceTask1.getLeavehospitaldistrictname()); serviceTaskoper.setCreateTime(new Date()); if (StringUtils.isNotEmpty(serviceTaskVO.getOplevelcode())) { String[] opLevelcodes = serviceTaskVO.getOplevelcode().split(","); for (String opLevelcode : opLevelcodes) { //先查询一下是否存在 log.info("----serviceTaskoper的值为:{}", serviceTaskoper); ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper(); serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid()); serviceTaskoper2.setOrgid(serviceTask.getOrgid()); serviceTaskoper2.setOplevelcode(opLevelcode); List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2); serviceTaskoper.setOplevelcode(opLevelcode); if (CollectionUtils.isNotEmpty(serviceTaskopers)) { serviceTaskoper.setId(serviceTaskopers.get(0).getId()); serviceTaskoperService.updateServiceTaskoper(serviceTaskoper); } else { serviceTaskoperService.insertServiceTaskoper(serviceTaskoper); } } } } } smartor/src/main/resources/mapper/smartor/ServiceTaskoperMapper.xml
@@ -21,6 +21,10 @@ <result property="guid" column="guid"/> <result property="pguid" column="pguid"/> <result property="pid" column="pid"/> <result property="deptCode" column="dept_code"/> <result property="deptName" column="dept_name"/> <result property="wardCode" column="ward_code"/> <result property="wardName" column="ward_name"/> </resultMap> <sql id="selectServiceTaskoperVo"> @@ -39,7 +43,11 @@ orgid, guid, pguid, pid pid, dept_code, dept_name, ward_code, ward_name from service_taskoper </sql> @@ -84,6 +92,18 @@ <if test="pid != null "> and pid = #{pid} </if> <if test="deptCode != null and deptCode != ''"> and dept_code = #{deptCode} </if> <if test="deptName != null and deptName != ''"> and dept_name = #{deptName} </if> <if test="wardCode != null and wardCode != ''"> and ward_code = #{wardCode} </if> <if test="wardName != null and wardName != ''"> and ward_name = #{wardName} </if> </select> <select id="selectServiceTaskoperById" parameterType="Long" @@ -126,6 +146,14 @@ </if> <if test="pid != null">pid, </if> <if test="deptCode != null">dept_code, </if> <if test="deptName != null">dept_name, </if> <if test="wardCode != null">ward_code, </if> <if test="wardName != null">ward_name, </if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="taskId != null">#{taskId}, @@ -157,6 +185,14 @@ <if test="pguid != null">#{pguid}, </if> <if test="pid != null">#{pid}, </if> <if test="deptCode != null">#{deptCode}, </if> <if test="deptName != null">#{deptName}, </if> <if test="wardCode != null">#{wardCode}, </if> <if test="wardName != null">#{wardName}, </if> </trim> </insert> @@ -209,6 +245,18 @@ <if test="pid != null">pid = #{pid}, </if> <if test="deptCode != null">dept_code = #{deptCode}, </if> <if test="deptName != null">dept_name = #{deptName}, </if> <if test="wardCode != null">ward_code = #{wardCode}, </if> <if test="wardName != null">ward_name = #{wardName}, </if> </trim> where id = #{id} </update>