liusheng
2025-10-21 9dd748e0352f31b6255be2860c177db0d20ac40e
Merge branch 'master' into 0929-master

# Conflicts:
# ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
# ruoyi-admin/src/main/resources/application-druid.yml
# smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
已修改10个文件
已删除10个文件
15911 ■■■■■ 文件已修改
.idea/shelf/Uncommitted_changes_before_Update_at_2025_9_25_19_00_[Changes]/shelved.patch 7361 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/shelf/Uncommitted_changes_before_Update_at_2025_9_25_19_00__Changes_.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/shelf/Uncommitted_changes_before_Update_at_2025_9_29_17_53_[Changes]/shelved.patch 8313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/shelf/Uncommitted_changes_before_Update_at_2025_9_29_17_53__Changes_.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-druid.yml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-hzszlyy.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common.iml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/ruoyi-framework.iml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-generator/ruoyi-generator.iml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/ruoyi-quartz.iml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/ruoyi-system.iml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/smartor.iml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtask.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/smsVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/shelf/Uncommitted_changes_before_Update_at_2025_9_25_19_00_[Changes]/shelved.patch
ÎļþÒÑɾ³ý
.idea/shelf/Uncommitted_changes_before_Update_at_2025_9_25_19_00__Changes_.xml
ÎļþÒÑɾ³ý
.idea/shelf/Uncommitted_changes_before_Update_at_2025_9_29_17_53_[Changes]/shelved.patch
ÎļþÒÑɾ³ý
.idea/shelf/Uncommitted_changes_before_Update_at_2025_9_29_17_53__Changes_.xml
ÎļþÒÑɾ³ý
ruoyi-admin/pom.xml
@@ -185,12 +185,6 @@
            <artifactId>postgresql</artifactId>
            <version>42.6.0</version> <!-- è¯·æ ¹æ®éœ€è¦é€‰æ‹©æœ€æ–°ç‰ˆæœ¬ -->
        </dependency>
        <!--oracle-->
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <scope>runtime</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -5,6 +5,7 @@
import com.ruoyi.common.utils.RSAPublicKeyExample;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.http.HttpUtils;
import com.ruoyi.common.utils.sms.smsUtils;
import com.ruoyi.framework.config.ServerConfig;
import com.smartor.domain.HtmlContentVO;
@@ -15,6 +16,9 @@
import com.smartor.service.IServiceOutPathService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.MediaType;
@@ -30,6 +34,7 @@
@RestController
@Api(description = "知信接口")
@RequestMapping("/sms")
@Slf4j
public class SmsController {
    @Value("${xhsmsPath}")
    private String xhsmsPath;
@@ -61,18 +66,17 @@
     * @return
     */
    @ApiOperation("短信发送")
    @PostMapping("/send")
    @PostMapping("/sendTest")
    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
     */
    @ApiOperation("短信发送")
    @PostMapping("/sendAsk")
    @PostMapping("/send")
    public AjaxResult sendAsk(@RequestBody smsVO vo) throws UnsupportedEncodingException {
        RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
        String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
@@ -84,11 +88,13 @@
        serviceOutPath.setParam3(vo.getTaskName());
        serviceOutPath.setParam6(subId);
        serviceOutPath.setCreateTime(new Date());
        String format ="";
        if(ObjectUtils.isNotEmpty(vo.getSubId())) {
            format = String.format("%03X", Integer.parseInt(vo.getSubId()));
            serviceOutPath.setRadix(format);
        }
        iServiceOutPathService.insertServiceOutPath(serviceOutPath);
        String format = String.format("%03X", serviceOutPath.getId());
        serviceOutPath.setRadix(format);
        serviceOutPath.setUpdateTime(new Date());
        iServiceOutPathService.updateServiceOutPath(serviceOutPath);
        String url = ip + ":" + req_path + "/wt?p=" + format;
        ServiceTask serviceTask = serviceTaskMapper.selectServiceTaskByTaskid(Long.valueOf(taskId));
        //如果type是语音随访的话(说明补偿发送方式中有电话随访的方式,这里的外链就地址只能用/sf)
@@ -96,12 +102,46 @@
            url = ip + ":" + req_path + "/sf?p=" + format;
        }
        String content="您好,邀请您填写出院调查表,请点击" + url + "填写。感谢您配合!";
        if(ObjectUtils.isNotEmpty(vo.getContent()))
            content=vo.getContent();
        else
            sendChat(vo);
        String sendMsg="";
        try{
            sendMsg=smsUtils.sendSms(xhsmsPath,xhsmsAccount,xhsmsPwd,vo.getPhone(),content);
            log.info(sendMsg);
        }catch (Exception ex){
            log.error(ex.getMessage());
        }
        return AjaxResult.success(sendMsg);
    }
        //String url = = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid + "&param3=" + URLEncoder.encode(vo.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
    /**
     * @param
     * @return
     */
    @ApiOperation("微信发送")
    @PostMapping("/sendChat")
    public AjaxResult sendChat(@RequestBody smsVO vo) throws UnsupportedEncodingException {
        RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
        String taskId = rsaPublicKeyExample.encryptedData(vo.getTaskId().toString(), pub_key);
        String patid = rsaPublicKeyExample.encryptedData(vo.getPatId().toString(), pub_key);
        String url = ip + ":" + req_path + "/outsideChainwt?param1=" + taskId + "&param2=" + patid
                + "&param3=" + URLEncoder.encode(vo.getTaskName(), StandardCharsets.UTF_8.toString()) + "&param5=false";
        String content = "您好,邀请您填写出院调查表,请点击" + url + "填写。感谢您配合!";
        String content="您好,邀请您填写出院调查表,请点击" + url + "填写。感谢您配合!";
        String sendMsg = smsUtils.sendSms(xhsmsPath, xhsmsAccount, xhsmsPwd, vo.getPhone(), content);
        String urlTemp="http://192.200.54.14:5003/sfjk/SendMessage?sfzh="+vo.getIdCard()
                +"&title=您好,邀请您填写出院调查表,请点击填写。&content="+content+"&phone="+vo.getPhone()
                +"&url="+url+"&key=ff76f8904f5f32b5ee1739e8ea46e60g";
        String sendMsg= "";
        try{
            sendMsg= HttpUtils.sendGet(urlTemp);
            log.info(sendMsg);
        }catch (Exception ex){
            log.error(ex.getMessage());
        }
        return AjaxResult.success(sendMsg);
    }
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
@@ -77,6 +77,15 @@
    }
    /**
     * æ ¹æ®å‚数键名查询参数值
     */
    @GetMapping(value = "/configKeyOrg")
    public AjaxResult getConfigKeyOrg(String configKey,String orgid)
    {
        return success(configService.selectConfigByKey(configKey,orgid));
    }
    /**
     * æ–°å¢žå‚数配置
     */
    //@PreAuthorize("@ss.hasPermi('system:config:add')")
ruoyi-admin/src/main/resources/application-druid.yml
@@ -29,19 +29,15 @@
        #        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://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://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
@@ -62,11 +58,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
@@ -117,7 +113,7 @@
            multi-statement-allow: true
  # redis é…ç½®
  redis:
    host: 127.0.0.1
    host: 192.168.100.10
    port: 6020
    database: 0
    password: Smartor
@@ -144,7 +140,6 @@
  sql-column-case: camel
  show-sql: true #配置打印SQL
  page-config:
    enabled: false  #禁用分页
    size: size
    page: page
    default-page: 1
@@ -207,9 +202,9 @@
#新华医院外链请求IP和端口号
req_path: 8093
localIP: https://wx.lihusmart.com
#localIP: https://wx.lihusmart.com
#丽水外链请求IP和端口号
#localIP: http://221.12.19.26
localIP: http://221.12.19.26
#获取患者信息URL(华卓提供)
hosp_info_url: http://esb-core-rest.wowjoy.cn/esb/exchange
@@ -218,9 +213,9 @@
uploadSwitch: 0
#  æŒ‡å®šasr回调的url路径(本地)
ASRCallBackPath: http://192.168.100.127:8095/smartor/serviceSubtask/phoneCallBackYQ
ASRCallBackPath: http://192.168.100.10:8095/smartor/serviceSubtask/phoneCallBackYQ
#挂断IP(本地)
hangup: http://192.168.100.33:5060/hangup
hangup: http://192.168.100.6:8089/hangup
#fs所使用的阿里的app_key(本地)
app_key_yq: ZurNHpaQLq6P55YS
@@ -272,11 +267,6 @@
isAdmin: 1,2,3,4,5,6,7,8,9,10,11,12,13
#随访医院:1新华   2丽水
visitHosp: 1
visitHosp: 2
isEncryp:
dealDeptCode:
# å‰ç«¯ip
qdip: 192.168.100.132
ruoyi-admin/src/main/resources/application-hzszlyy.yml
@@ -150,10 +150,10 @@
#localIP: 192.168.2.13
#新华医院外链请求IP和端口号
req_path: 8093
req_path: 8092
#localIP: https://wx.lihusmart.com
#丽水外链请求IP和端口号
localIP: http://221.12.19.26
localIP: http://sf.wehzsy.com
#获取患者信息URL(华卓提供)
hosp_info_url: http://esb-core-rest.wowjoy.cn/esb/exchange
ruoyi-common/ruoyi-common.iml
ÎļþÒÑɾ³ý
ruoyi-framework/ruoyi-framework.iml
ÎļþÒÑɾ³ý
ruoyi-generator/ruoyi-generator.iml
ÎļþÒÑɾ³ý
ruoyi-quartz/ruoyi-quartz.iml
ÎļþÒÑɾ³ý
ruoyi-system/ruoyi-system.iml
ÎļþÒÑɾ³ý
smartor/smartor.iml
ÎļþÒÑɾ³ý
smartor/src/main/java/com/smartor/domain/ServiceSubtask.java
@@ -645,4 +645,7 @@
     */
    @ApiModelProperty(value = "经管医生")
    private String managementDoctor;
    @ApiModelProperty(value = "随访情况:1正常语音,2患者拒接或拒访,3面访或者接诊,4微信随访,5随访电话不正确,6其他")
    private Integer taskSituation;
}
smartor/src/main/java/com/smartor/domain/ServiceSubtaskStatistic.java
@@ -188,4 +188,23 @@
    @ApiModelProperty(value = "满意度比例")
    private String joyTotal="";
    @ApiModelProperty(value = "随访情况:1正常语音")
    private Integer taskSituation1 = 0;
    @ApiModelProperty(value = "随访情况:2患者拒接或拒访")
    private Integer taskSituation2 = 0;
    @ApiModelProperty(value = "随访情况:3面访或者接诊")
    private Integer taskSituation3 = 0;
    @ApiModelProperty(value = "随访情况:4微信随访")
    private Integer taskSituation4 = 0;
    @ApiModelProperty(value = "随访情况:5随访电话不正确")
    private Integer taskSituation5 = 0;
    @ApiModelProperty(value = "随访情况:6其他")
    private Integer taskSituation6 = 0;
}
smartor/src/main/java/com/smartor/domain/smsVO.java
@@ -25,4 +25,7 @@
    @ApiModelProperty(value = "患者ID")
    private String patId;
    @ApiModelProperty(value = "身份证号")
    private String idCard;
}
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -2303,8 +2303,25 @@
                    serviceSubtaskStatistic.setAbnormalAgain(serviceSubtaskStatistic.getAbnormalAgain() + 1L);
                }
            }
            //随访情况
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() ==1) {
                serviceSubtaskStatistic.setTaskSituation1(serviceSubtaskStatistic.getTaskSituation1() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() ==2) {
                serviceSubtaskStatistic.setTaskSituation2(serviceSubtaskStatistic.getTaskSituation2() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() ==3) {
                serviceSubtaskStatistic.setTaskSituation3(serviceSubtaskStatistic.getTaskSituation3() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() ==4) {
                serviceSubtaskStatistic.setTaskSituation4(serviceSubtaskStatistic.getTaskSituation4() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() ==5) {
                serviceSubtaskStatistic.setTaskSituation5(serviceSubtaskStatistic.getTaskSituation5() + 1);
            }
            if (serviceSubtask.getTaskSituation() != null && serviceSubtask.getTaskSituation() ==6) {
                serviceSubtaskStatistic.setTaskSituation6(serviceSubtaskStatistic.getTaskSituation6() + 1);
            }
        }
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -85,6 +85,7 @@
        <result property="managementDoctor" column="management_doctor"/>
        <result property="managementDoctorCode" column="management_doctor_code"/>
        <result property="currentPreachform" column="current_preachform"/>
        <result property="taskSituation" column="task_situation"/>
    </resultMap>
    <resultMap type="com.smartor.domain.ServiceSubtaskCount" id="ServiceSubtaskResult2">
@@ -183,7 +184,8 @@
               orgid,
               visit_type,
               management_doctor,
               management_doctor_code
               management_doctor_code,
               task_situation
        from service_subtask
    </sql>
@@ -624,6 +626,7 @@
            <if test="managementDoctorCode != null">management_doctor_code,</if>
            <if test="managementDoctor != null">management_doctor,</if>
            <if test="currentPreachform != null">current_preachform,</if>
            <if test="taskSituation != null">task_situation,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="sendname != null">#{sendname},</if>
@@ -708,6 +711,7 @@
            <if test="managementDoctorCode != null">#{managementDoctorCode},</if>
            <if test="managementDoctor != null">#{managementDoctor},</if>
            <if test="currentPreachform != null">#{currentPreachform},</if>
            <if test="taskSituation != null">#{taskSituation},</if>
        </trim>
    </insert>
@@ -797,6 +801,7 @@
            <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>
            <if test="taskSituation != null">task_situation=#{taskSituation},</if>
        </trim>
        where id = #{id}
    </update>
@@ -887,6 +892,7 @@
            <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>
            <if test="taskSituation != null">task_situation=#{taskSituation},</if>
        </trim>
        <where>
            <if test="patid != null ">and patid = #{patid}</if>
@@ -979,6 +985,7 @@
            <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>
            <if test="taskSituation != null">task_situation=#{taskSituation},</if>
        </trim>
        where patid = #{patid} and taskid = #{taskid}
    </update>
@@ -1068,6 +1075,7 @@
            <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>
            <if test="taskSituation != null">task_situation=#{taskSituation},</if>
        </trim>
        where task_guid = #{taskGuid} and task_name = #{taskName}
    </update>