liusheng
2025-03-05 bb14a46e456ee3a89ae385559726667acd8af37e
代码提交
已添加2个文件
已修改24个文件
573 ■■■■■ 文件已修改
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/resources/application-druid.yml 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPasswordService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ExternalDiagnosisInfo.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ExternalDiseaseInfo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ExternalJZInfo.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ExternalWZInfo.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/Icd10.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceOutPath.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/domain/ThiedInhospInfo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/Icd10Mapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/component/RedisMqReceiver.java
@@ -290,6 +290,7 @@
                        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) {
@@ -297,6 +298,7 @@
                                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 + "&param2=" + patid + "&param5=false");
@@ -313,6 +315,7 @@
                                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());
@@ -330,6 +333,7 @@
                                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());
ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/PatMedInhospController.java
@@ -168,4 +168,15 @@
        return getDataTable(patMedInhospService.getDocAndPat(patMedInhosp));
    }
//    /**
//     * åŒ»æŠ¤ä¸Žæ‚£è€…关联关系
//     *
//     * @return
//     */
//    @ApiOperation("医护与患者关联关系")
//    @GetMapping("/test")
//    public void test() {
//        patMedInhospService.dealOutHospInfo();
//    }
}
ruoyi-admin/src/main/resources/application-druid.yml
@@ -17,17 +17,17 @@
        #        username: smartor
        #        password: Smartor.2023
        #        driverClassName: com.mysql.cj.jdbc.Driver
        #        # æ–°åŽ
        url: jdbc:mysql://192.168.191.181:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: smartor
        password: Smartor.2023
        driverClassName: com.mysql.cj.jdbc.Driver
        #        #        # æ–°åŽ
        #        url: jdbc:mysql://192.168.191.181:3308/smartor?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        #        username: smartor
        #        password: Smartor.2023
        #        driverClassName: com.mysql.cj.jdbc.Driver
#        #        å…¬å¸äº‘
#        url: jdbc:mysql://116.62.18.175:6002/smartor?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_lisui?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
        username: hxsoft
        password: Hxerp2000
        driverClassName: com.mysql.cj.jdbc.Driver
      # ä»Žåº“数据源
ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/HospitalFilterInterceptor.java
@@ -72,13 +72,7 @@
     * @return ä¿®æ”¹åŽçš„ SQL
     */
    private String modifySqlWithorgidId(String originalSql, String orgid) {
        if (originalSql.contains("insert into")
                || originalSql.contains("INSERT INTO")
                || originalSql.contains("from sys_menu")
                || originalSql.contains("update sys_menu")
                || originalSql.contains("information_schema.tables")
                || originalSql.contains("information_schema.columns")
                || originalSql.contains("gen_table")) {
        if (originalSql.contains("insert into") || originalSql.contains("INSERT INTO") || originalSql.contains("from sys_menu") || originalSql.contains("update sys_menu") || originalSql.contains("information_schema.tables") || originalSql.contains("information_schema.columns") || originalSql.contains("gen_table")) {
            return originalSql;
        }
        // æå– orgid çš„ WHERE å­å¥
@@ -106,6 +100,18 @@
        // ä¿®æ”¹ SQL
        if (originalSql.toUpperCase().contains("WHERE")) {
            // åœ¨å·²æœ‰ WHERE åŽæ·»åŠ  orgid æ¡ä»¶
            if (originalSql.toUpperCase().contains("(SELECT")) {
                int i = originalSql.toUpperCase().lastIndexOf("WHERE");
                if (i != -1) { // ç¡®ä¿æ‰¾åˆ°äº†åŒ¹é…é¡¹
                    // åˆ†å‰²å­—符串
                    String before = originalSql.substring(0, i);
                    String after = originalSql.substring(i + "WHERE".length());
                    // é‡æ–°ç»„合字符串
                    String newString = before + "WHERE " + whereClause + " AND " + after;
                    return newString;
                }
            }
            return originalSql.replaceFirst("(?i)WHERE", "WHERE " + whereClause + " AND ");
        } else {
            // å¦‚果没有 WHERE,检查是否有 ORDER BY æˆ– LIMIT
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPasswordService.java
@@ -1,6 +1,7 @@
package com.ruoyi.framework.web.service;
import java.util.concurrent.TimeUnit;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.Authentication;
@@ -19,12 +20,11 @@
/**
 * ç™»å½•密码方法
 *
 *
 * @author ruoyi
 */
@Component
public class SysPasswordService
{
public class SysPasswordService {
    @Autowired
    private RedisCache redisCache;
@@ -36,58 +36,46 @@
    /**
     * ç™»å½•账户密码错误次数缓存键名
     *
     *
     * @param username ç”¨æˆ·å
     * @return ç¼“存键key
     */
    private String getCacheKey(String username)
    {
    private String getCacheKey(String username) {
        return CacheConstants.PWD_ERR_CNT_KEY + username;
    }
    public void validate(SysUser user)
    {
    public void validate(SysUser user) {
        Authentication usernamePasswordAuthenticationToken = AuthenticationContextHolder.getContext();
        String username = usernamePasswordAuthenticationToken.getName();
        String password = usernamePasswordAuthenticationToken.getCredentials().toString();
        Integer retryCount = redisCache.getCacheObject(getCacheKey(username));
        if (retryCount == null)
        {
        if (retryCount == null) {
            retryCount = 0;
        }
        if (retryCount >= Integer.valueOf(maxRetryCount).intValue())
        {
            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL,
                    MessageUtils.message("user.password.retry.limit.exceed", maxRetryCount, lockTime)));
        if (retryCount >= Integer.valueOf(maxRetryCount).intValue()) {
            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.retry.limit.exceed", maxRetryCount, lockTime)));
            throw new UserPasswordRetryLimitExceedException(maxRetryCount, lockTime);
        }
        if (!matches(user, password))
        {
        if (!matches(user, password)) {
            retryCount = retryCount + 1;
            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL,
                    MessageUtils.message("user.password.retry.limit.count", retryCount)));
            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.retry.limit.count", retryCount)));
            redisCache.setCacheObject(getCacheKey(username), retryCount, lockTime, TimeUnit.MINUTES);
            throw new UserPasswordNotMatchException();
        }
        else
        {
        } else {
            clearLoginRecordCache(username);
        }
    }
    public boolean matches(SysUser user, String rawPassword)
    {
    public boolean matches(SysUser user, String rawPassword) {
        return SecurityUtils.matchesPassword(rawPassword, user.getPassword());
    }
    public void clearLoginRecordCache(String loginName)
    {
        if (redisCache.hasKey(getCacheKey(loginName)))
        {
    public void clearLoginRecordCache(String loginName) {
        if (redisCache.hasKey(getCacheKey(loginName))) {
            redisCache.deleteObject(getCacheKey(loginName));
        }
    }
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
@@ -37,7 +37,7 @@
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException
    {
        String[] split = username.split("&");
        SysUser user = userService.selectUserByUserName(split[0]);
        SysUser user = userService.selectUserByUserName2(username);
        if (StringUtils.isNull(user))
        {
            log.info("登录用户:{} ä¸å­˜åœ¨.", username);
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
@@ -415,12 +415,14 @@
                                    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());
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -44,6 +44,13 @@
     * @return ç”¨æˆ·å¯¹è±¡ä¿¡æ¯
     */
    public SysUser selectUserByUserName(String userName);
    /**
     * é€šè¿‡ç”¨æˆ·åæŸ¥è¯¢ç”¨æˆ·
     *
     * @param userName ç”¨æˆ·å
     * @return ç”¨æˆ·å¯¹è±¡ä¿¡æ¯
     */
    public SysUser selectUserByUserNameByCondition(@Param("userName") String userName, @Param("orgid") String orgid);
    /**
     * é€šè¿‡ç”¨æˆ·ID查询用户
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -41,6 +41,13 @@
     * @return ç”¨æˆ·å¯¹è±¡ä¿¡æ¯
     */
    public SysUser selectUserByUserName(String userName);
    /**
     * é€šè¿‡ç”¨æˆ·åæŸ¥è¯¢ç”¨æˆ·
     *
     * @param userName ç”¨æˆ·å
     * @return ç”¨æˆ·å¯¹è±¡ä¿¡æ¯
     */
    public SysUser selectUserByUserName2(String userName);
    /**
     * é€šè¿‡ç”¨æˆ·ID查询用户
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -157,6 +157,96 @@
        return sysUser;
    }
    @Override
    public SysUser selectUserByUserName2(String userName) {
        String[] split = userName.split("&");
        SysUser sysUser = userMapper.selectUserByUserNameByCondition(split[0], split[1]);
        List<SysDept> sysDepts = null;
        if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
            SysDept dept = new SysDept();
            dept.setOrgid(split[1]);
            sysDepts = sysDeptMapper.selectDeptList(dept);
        } else {
            sysDepts = sysUserDeptMapper.selectDeptListByUserId(sysUser.getUserId());
        }
        List<Long> deptIds = new ArrayList<>();
        for (SysDept sysDept : sysDepts) {
            deptIds.add(sysDept.getDeptId());
        }
        SysUserDept sysUserDept = new SysUserDept();
        sysUserDept.setUserId(sysUser.getUserId());
        sysUserDept.setDeptType(sysUser.getSearchscope());
        List<SysUserDept> sysUserDeptKSs = null;
        List<SysUserDept> sysUserDeptBQs = null;
        if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("0")) {
            if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
                sysUserDept.setUserId(null);
            }
            sysUserDept.setDeptType("1");
            sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
            sysUserDept.setDeptType("2");
            sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
            //如果是admin,需要对sysUserDeptBQs,sysUserDeptBQs去重
            if (StringUtils.isNotEmpty(split[0]) && split[0].equals("admin")) {
                List<SysUserDept> distinctUserDepts = new ArrayList<>();
                Set<String> uniqueDeptCodes = new HashSet<>();
                for (SysUserDept userDept : sysUserDeptKSs) {
                    String deptCode = userDept.getDeptCode();
                    if (!uniqueDeptCodes.contains(deptCode)) {
                        distinctUserDepts.add(userDept);
                        uniqueDeptCodes.add(deptCode);
                    }
                }
                List<SysUserDept> distinctUserBQs = new ArrayList<>();
                Set<String> uniqueBQCodes = new HashSet<>();
                for (SysUserDept userDept : sysUserDeptBQs) {
                    String deptCode = userDept.getDeptCode();
                    if (!uniqueBQCodes.contains(deptCode)) {
                        distinctUserBQs.add(userDept);
                        uniqueBQCodes.add(deptCode);
                    }
                }
                sysUserDeptKSs = distinctUserDepts;
                sysUserDeptBQs = distinctUserBQs;
            }
        } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("1")) {
            sysUserDept.setDeptType("1");
            sysUserDeptKSs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
        } else if (StringUtils.isNotEmpty(sysUser.getSearchscope()) && sysUser.getSearchscope().equals("2")) {
            sysUserDept.setDeptType("2");
            sysUserDeptBQs = sysUserDeptMapper.selectSysUserDeptList(sysUserDept);
        }
        sysUser.setDepts(deptIds);
        if (!CollectionUtils.isEmpty(sysUserDeptBQs)) {
            List<Map<String, Object>> list = new ArrayList<>();
            for (SysUserDept sud : sysUserDeptBQs) {
                Map<String, Object> map = new HashMap<>();
                map.put("districtCode", "");
                if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("districtCode", sud.getDeptCode());
                map.put("districtName", "");
                if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("districtName", sud.getDeptName());
                list.add(map);
            }
            sysUser.setBelongWards(list);
        }
        if (!CollectionUtils.isEmpty(sysUserDeptKSs)) {
            List<Map<String, Object>> list = new ArrayList<>();
            for (SysUserDept sud : sysUserDeptKSs) {
                Map<String, Object> map = new HashMap<>();
                map.put("deptCode", "");
                if (StringUtils.isNotEmpty(sud.getDeptCode())) map.put("deptCode", sud.getDeptCode());
                map.put("deptName", "");
                if (StringUtils.isNotEmpty(sud.getDeptName())) map.put("deptName", sud.getDeptName());
                list.add(map);
            }
            sysUser.setBelongDepts(list);
        }
        return sysUser;
    }
    /**
     * é€šè¿‡ç”¨æˆ·ID查询用户
     *
ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml
@@ -107,7 +107,7 @@
               d.email,
               d.status,
               d.his_dept_id,
               d.his_parent_id
               d.his_parent_id,
               (select dept_name from sys_dept where dept_id = d.parent_id) parent_name
        from sys_dept d
        where d.dept_id = #{deptId}
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -225,6 +225,19 @@
        where u.user_name = #{userName} and u.del_flag = '0'
    </select>
    <select id="selectUserByUserNameByCondition" parameterType="String" resultMap="SysUserResult">
        <include refid="selectUserVo"/>
        <where>
            u.del_flag = '0'
            <if test="userName != null and userName != ''">
                AND u.user_name = #{userName}
            </if>
            <if test="orgid != null and orgid != ''">
                AND u.orgid = #{orgid}
            </if>
        </where>
    </select>
    <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
        <include refid="selectUserVo"/>
        where u.user_id = #{userId}
smartor/src/main/java/com/smartor/domain/ExternalDiagnosisInfo.java
@@ -39,121 +39,14 @@
    private String ZhenDuanYSXM;
    @ApiModelProperty(value = "诊断时间")
    private String ZhenDuanSJ;
    private Date ZhenDuanSJ;
    @ApiModelProperty(value = "发病日期")
    private String FaBingRQ;
    private Date FaBingRQ;
    @ApiModelProperty(value = "诊断 ID")
    private String ZhenDuanID;
    @ApiModelProperty(value = "诊断名称")
    private String ZhenDuanMC;
    @ApiModelProperty(value = "证件号码")
    private String ZhengJianHM;
    @ApiModelProperty(value = "性别代码")
    private String XingBieDM;
    @ApiModelProperty(value = "性别名称")
    private String XingBieMC;
    @ApiModelProperty(value = "出生日期")
    private Date ChuShengRQ;
    @ApiModelProperty(value = "年龄")
    private Long NianLing;
    @ApiModelProperty(value = "年龄单位")
    private String NianLingDW;
    @ApiModelProperty(value = "当前科室ID å…¥é™¢ç§‘室 ID")
    private String DangQianKSID;
    @ApiModelProperty(value = "当前科室名称 å…¥é™¢ç§‘室名称")
    private String DangQianKSMC;
    @ApiModelProperty(value = "当前病区ID å…¥é™¢ç—…区ID")
    private String DangQianBQID;
    @ApiModelProperty(value = "当前病区名称 å…¥é™¢ç—…区名称")
    private String DangQianBQMC;
    @ApiModelProperty(value = "当前床位ID å…¥é™¢åºŠä½ ID")
    private String DangQianCWID;
    @ApiModelProperty(value = "当前床位名称 å…¥é™¢åºŠä½åç§°")
    private String DangQianCWMC;
    @ApiModelProperty(value = "住院次数")
    private Long ZhuYuanCS;
    @ApiModelProperty(value = "入院时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date RuYuanSJ;
    @ApiModelProperty(value = "费用类别 ID")
    private String FeiYongLBID;
    @ApiModelProperty(value = "费用类别名称")
    private String FeiYongLBMC;
    @ApiModelProperty(value = "费用性质 ID")
    private String FeiYongXZID;
    @ApiModelProperty(value = "费用性质名称")
    private String FeiYongXZMC;
    @ApiModelProperty(value = "联系电话")
    private String LianXiDH;
    @ApiModelProperty(value = "联系人电话")
    private String LianXiRDH;
    @ApiModelProperty(value = "单位电话")
    private String DanWeiDH;
    @ApiModelProperty(value = "单位名称")
    private String DanWeiMC;
    @ApiModelProperty(value = "婚姻代码")
    private String HunYinDM;
    @ApiModelProperty(value = "婚姻名称")
    private String HunYinMC;
    @ApiModelProperty(value = "职业代码")
    private String ZhiYeDM;
    @ApiModelProperty(value = "职业名称")
    private String ZhiYeMC;
    @ApiModelProperty(value = "国籍代码")
    private String GuoJiDM;
    @ApiModelProperty(value = "国籍名称")
    private String GuoJiMC;
    @ApiModelProperty(value = "民族代码")
    private String MinZuDM;
    @ApiModelProperty(value = "民族名称")
    private String MinZuMC;
    @ApiModelProperty(value = "操作人 ID")
    private String CaoZuoRID;
    @ApiModelProperty(value = "操作人姓名")
    private String CaoZuoRXM;
    @ApiModelProperty(value = "婴儿标志")
    private String YingErBZ;
    @ApiModelProperty(value = "母亲就诊 ID")
    private String MuQinZYJZID;
    @ApiModelProperty(value = "产妇标志")
    private String ChanFuBZ;
}
smartor/src/main/java/com/smartor/domain/ExternalDiseaseInfo.java
@@ -51,10 +51,10 @@
    private String FUJIBMC;
    @ApiModelProperty(value = "ICD9")
    private String ICD9;
    private String IcD9;
    @ApiModelProperty(value = "ICD9")
    private String ICD10;
    @ApiModelProperty(value = "IcD10")
    private String IcD10;
    @ApiModelProperty(value = "疾病分类代码")
    private String JiBingFLDM;
smartor/src/main/java/com/smartor/domain/ExternalJZInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.smartor.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author æŽ¥æ”¶ç¬¬ä¸‰æ–¹æ‚£è€…就诊信息
 * @date 2024-12-13
 */
@Data
@ApiModel(value = "ExternalInHospPatientInfo", description = "接收第三方患者诊断信息")
public class ExternalJZInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "就诊科室 ID")
    private String JiuZhenKSID;
    @ApiModelProperty(value = "就诊科室名称")
    private String JiuZhenKSMC;
    @ApiModelProperty(value = "就诊医生 ID")
    private String JiuZhenYSID;
    @ApiModelProperty(value = "就诊医生名称")
    private String JiuZhenYSMC;
    @ApiModelProperty(value = "就诊日期")
    private Date JiuZhenRQ;
    @ApiModelProperty(value = "患者去向代码")
    private String HuanZheQXDM;
    @ApiModelProperty(value = "患者去向名称")
    private String HuanZheQXMC;
}
smartor/src/main/java/com/smartor/domain/ExternalWZInfo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
package com.smartor.domain;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author æŽ¥æ”¶ç¬¬ä¸‰æ–¹æ‚£è€…问诊信息
 * @date 2024-12-13
 */
@Data
@ApiModel(value = "ExternalWZInfo", description = "接收第三方患者问诊信息")
public class ExternalWZInfo extends BaseEntity {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "问诊类型代码")
    private String WenZhenLXDM;
    @ApiModelProperty(value = "问诊类型名称")
    private String WenZhenLXMC;
    @ApiModelProperty(value = "内容")
    private String NeiRong;
    @ApiModelProperty(value = "问诊时间")
    private Date WenZhenSJ;
    @ApiModelProperty(value = "问诊医生ID")
    private Date WenZhenYSID;
    @ApiModelProperty(value = "问诊医生姓名")
    private String WenZhenYSXM;
    @ApiModelProperty(value = "问诊科室ID")
    private String WenZhenKSID;
    @ApiModelProperty(value = "问诊科室名称")
    private String WenZhenKSMC;
}
smartor/src/main/java/com/smartor/domain/Icd10.java
@@ -33,6 +33,13 @@
    private String icdcode;
    /**
     * HIS的icd10id
     */
    @ApiModelProperty("HIS的icd10id")
    @Excel(name = "HIS的icd10id")
    private String hisIcdid;
    /**
     * icd10名称
     */
    @ApiModelProperty("icd10名称")
smartor/src/main/java/com/smartor/domain/ServiceOutPath.java
@@ -38,6 +38,13 @@
    private String param2;
    /**
     * å­ä»»åŠ¡ID
     */
    @ApiModelProperty("子任务ID")
    private String param6;
    /**
     * task_name
     */
    @ApiModelProperty("task_name")
smartor/src/main/java/com/smartor/domain/ServiceTaskVO.java
@@ -40,6 +40,13 @@
    private Long taskid;
    /**
     * å‘送天数
     */
    @Excel(name = "发送天数")
    @ApiModelProperty(value = "发送天数")
    private Long sendDay;
    /**
     *
     */
    @Excel(name = "  ")
smartor/src/main/java/com/smartor/domain/ThiedInhospInfo.java
@@ -406,11 +406,13 @@
    @ApiModelProperty("联系电话")
    @Excel(name = "联系电话")
    private String companyTelNum;
    /**
     * æ•°æ®ç±»åž‹
     */
    @ApiModelProperty("出生日期")
    @Excel(name = "出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String patiBirthday;
    /**
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -50,6 +50,8 @@
    private PatMedOperationItemMapper patMedOperationItemMapper;
    @Autowired
    private Icd10Mapper icd10Mapper;
    @Autowired
    private PatMedOuthospMapper patMedOuthospMapper;
    @Value("${defaultPwd}")
    private String defaultPwd;
@@ -295,7 +297,7 @@
            }).collect(Collectors.toList());
            patMedInhosp1.setLeaveicd10code(StringUtils.isNotEmpty(patMedInhosp1.getLeaveicd10code()) ? patMedInhosp1.getLeaveicd10code() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanID() : hospPatientDiagnoseInfos2.get(0).getZhenDuanID());
            patMedInhosp1.setLeavediagname(StringUtils.isNotEmpty(patMedInhosp1.getLeavediagname()) ? patMedInhosp1.getLeavediagname() + "," + hospPatientDiagnoseInfos2.get(0).getZhenDuanMC() : hospPatientDiagnoseInfos2.get(0).getZhenDuanMC());
            patMedInhosp1.setInhospstate("1");
            int i = patMedInhospMapper.updatePatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        }
@@ -327,36 +329,88 @@
    @Override
    public Boolean addFinshJZInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addFinshJZInfo的新增的值为:{}", dataMap);
//        Map yeWuXX = (Map) dataMap.get("YeWuXX");
//        Map<String, Object> BingRenXX = (Map<String, Object>) yeWuXX.get("BingRenXX");
//        Map<String, Object> JiuZhenXX = (Map<String, Object>) yeWuXX.get("JiuZhenXX");
//        ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
//        PatMedOuthosp patMedOuthosp = new PatMedOuthosp();
//        patMedOuthosp.setOuthospno(externalInHospPatientInfo.getBingAnHao());
//        patMedOuthosp.setSerialnum(externalInHospPatientInfo.getBingAnHao());
//        patMedOuthosp.setPatid(Long.valueOf(externalInHospPatientInfo.getBingRenID()));
//        patMedOuthosp.setPatname(externalInHospPatientInfo.getXingMing());
//        patMedOuthosp.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC());
//        patMedOuthosp.setHospitalcode(externalInHospPatientInfo.getZuZhiJGID());
//        patMedOuthosp.setIcd10code();
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> BingRenXX = (Map<String, Object>) yeWuXX.get("BingRenXX");
        Map<String, Object> JiuZhenXX = (Map<String, Object>) yeWuXX.get("JiuZhenXX");
        List<HashMap<String, Object>> ZhenDuanList = (List<HashMap<String, Object>>) yeWuXX.get("ZhenDuanList");
        List<HashMap<String, Object>> externalWZInfos = (List<HashMap<String, Object>>) yeWuXX.get("WenZhenList");
        ExternalInHospPatientInfo externalInHospPatientInfo = BeanUtil.mapToBean(BingRenXX, ExternalInHospPatientInfo.class, true);
        ExternalJZInfo externalJZInfo = BeanUtil.mapToBean(JiuZhenXX, ExternalJZInfo.class, true);
        List<ExternalDiagnosisInfo> externalDiagnosisInfoList = ZhenDuanList.stream().map(map -> {
            ExternalDiagnosisInfo info = new ExternalDiagnosisInfo();
            info.setZhenDuanYSID((String) map.get("ZhenDuanYSID"));
            info.setZhenDuanYSXM((String) map.get("ZhenDuanYSXM"));
            info.setZhenDuanID((String) map.get("ZhenDuanID"));
            info.setZhenDuanMC((String) map.get("ZhenDuanMC"));
            info.setZhenDuanLBDM((String) map.get("ZhenDuanLBDM"));
            info.setZhenDuanLBMC((String) map.get("ZhenDuanLBMC"));
            return info;
        }).collect(Collectors.toList());
        List<ExternalWZInfo> ExternalWZInfoList = externalWZInfos.stream().map(map -> {
            ExternalWZInfo info = new ExternalWZInfo();
            info.setWenZhenLXMC((String) map.get("WenZhenLXMC"));
            info.setNeiRong((String) map.get("NeiRong"));
            return info;
        }).collect(Collectors.toList());
        return null;
        PatArchive patArchive = addPatArchive(externalInHospPatientInfo, null, null);
        PatMedOuthosp patMedOuthosp = new PatMedOuthosp();
        patMedOuthosp.setOuthospno(externalInHospPatientInfo.getBingAnHao());
        patMedOuthosp.setSerialnum(externalInHospPatientInfo.getBingAnHao());
        patMedOuthosp.setPatid(patArchive.getId());
        patMedOuthosp.setPatname(externalInHospPatientInfo.getXingMing());
        patMedOuthosp.setHospitalname(externalInHospPatientInfo.getZuZhiJGMC());
        patMedOuthosp.setHospitalcode(externalInHospPatientInfo.getZuZhiJGID());
        patMedOuthosp.setDeptname(externalJZInfo.getJiuZhenKSMC());
        patMedOuthosp.setDeptcode(externalJZInfo.getJiuZhenKSID());
        patMedOuthosp.setAdmitdate(externalJZInfo.getJiuZhenRQ());
        Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou");
        String FaSongJGID = XiaoXiTou.get("FaSongJGID").toString();
        patMedOuthosp.setOrgid(FaSongJGID);
        for (ExternalDiagnosisInfo externalDiagnosisInfo : externalDiagnosisInfoList) {
            if (externalDiagnosisInfo.getZhenDuanLBMC().equals("主诊断")) {
                patMedOuthosp.setDiagname(externalDiagnosisInfo.getZhenDuanMC());
                patMedOuthosp.setIcd10code(externalDiagnosisInfo.getZhenDuanID());
                patMedOuthosp.setDrcode(externalDiagnosisInfo.getZhenDuanYSID());
                patMedOuthosp.setDrname(externalDiagnosisInfo.getZhenDuanYSXM());
            }
        }
        for (ExternalWZInfo externalWZInfo : ExternalWZInfoList) {
            if (externalWZInfo.getWenZhenLXMC().equals("现病史")) {
                patMedOuthosp.setHpi(externalWZInfo.getNeiRong());
            }
            if (externalWZInfo.getWenZhenLXMC().equals("主诉")) {
                patMedOuthosp.setMainsuit(externalWZInfo.getNeiRong());
            }
        }
        int i = patMedOuthospMapper.insertPatMedOuthosp(patMedOuthosp);
        if (i > 0) {
            return true;
        }
        return false;
    }
    @Override
    public Boolean addDiseaseInfo(Map dataMap) {
        log.error("ServiceExternalServiceImpl---addDiseaseInfo的新增的值为:{}", dataMap);
        Map yeWuXX = (Map) dataMap.get("YeWuXX");
        Map<String, Object> JiBing = (Map<String, Object>) yeWuXX.get("JiBing");
        Map<String, Object> JiBing = (Map<String, Object>) yeWuXX.get("JiBingMLXX");
        ExternalDiseaseInfo externalDiseaseInfo = BeanUtil.mapToBean(JiBing, ExternalDiseaseInfo.class, true);
        Map XiaoXiTou = (Map) dataMap.get("XiaoXiTou");
        String FaSongJGID = XiaoXiTou.get("FaSongJGID").toString();
        Icd10 icd10 = new Icd10();
        icd10.setIcdcode(externalDiseaseInfo.getJiBingID());
        icd10.setIcdcode(externalDiseaseInfo.getIcD10());
        icd10.setHisIcdid(externalDiseaseInfo.getJiBingID());
        icd10.setIcdname(externalDiseaseInfo.getJiBingMC());
        icd10.setGuid(externalDiseaseInfo.getZuZhiJGID());
        icd10.setOrgid(externalDiseaseInfo.getZuZhiJGID());
        icd10.setLastflag(externalDiseaseInfo.getMOJIBZ());
        icd10.setChimedflag("" + externalDiseaseInfo.getZhongYiZDBZ());
        icd10.setOrgid(FaSongJGID);
//        icd10Association.setIcd10AssortName(externalDiseaseInfo.getJiBingFLMC());
//        icd10Association.setChineseMedicineDiagnoseSign(externalDiseaseInfo.getZhongYiZDBZ());
//        icd10Association.setChineseMedicineDiagnoseAssortCode(externalDiseaseInfo.getZhongYiZDFLDM());
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskAnswerServiceImpl.java
@@ -311,15 +311,17 @@
        if (flag == 0L) {
            tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam1(), pri_key));
            pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam2(), pri_key));
            subId = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam6(), pri_key));
            //这个是有问题的,先这样,合并代码的时候没有把param6合进来
            if (StringUtils.isNotEmpty(serviceSubTaskCacheReq.getParam6())) {
                subId = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceSubTaskCacheReq.getParam6(), pri_key));
            }
        } else if (flag == 1L) {
            tid = Long.valueOf(serviceSubTaskCacheReq.getParam1());
            pid = Long.valueOf(serviceSubTaskCacheReq.getParam2());
            if (StringUtils.isNotEmpty(serviceSubTaskCacheReq.getParam6()))
                subId = Long.valueOf(serviceSubTaskCacheReq.getParam6());
        }
        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        } ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
        serviceSubtaskVO.setTaskid(tid);
        serviceSubtaskVO.setPatid(pid);
        serviceSubtaskVO.setSubId(subId);
smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -516,6 +516,7 @@
                serviceTaskdept.setTaskId(serviceTask.getTaskid());
                serviceTaskdept.setTaskName(serviceTask.getTaskName());
                serviceTaskdept.setLongtask(0L);
                serviceTaskdept.setOrgid(serviceTaskVO.getOrgid());
                if (serviceTaskVO.getLongTask() == 1) serviceTaskdept.setLongtask(1L);
                if (StringUtils.isNotEmpty(serviceTaskVO.getDeptcode())) {
                    String[] deptcodes = serviceTaskVO.getDeptcode().split(",");
@@ -1608,7 +1609,7 @@
            }
        }
        if (existList.size() != 0) redisCache.setCacheListRight("cache-exist", existList);
        log.error("-----------实际拉取的电话数据量:{}", pullTaskVOList.size());
        log.error("-----------实际拉取的电话数据量:{}", CollectionUtils.isNotEmpty(pullTaskVOList) ? pullTaskVOList.size() : null);
        return pullTaskVOList;
    }
@@ -1988,7 +1989,7 @@
            serviceSubtask.setId(Long.valueOf(phoneCallRecordVO.getTaskid()));
            serviceSubtask.setFinishtime(new Date());
            serviceSubtask.setUpdateTime(new Date());
            log.error("电话拨打已完成serviceSubtask的值为:{}",serviceSubtask);
            log.error("电话拨打已完成serviceSubtask的值为:{}", serviceSubtask);
            serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
            //下载文件
            ftpService.downloadFolder("/" + LocalDate.now().toString(), profile + "/upload/vadio/voice/" + LocalDate.now().toString());
@@ -2180,10 +2181,12 @@
        RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
        String taskId = rsaPublicKeyExample.encryptedData(serviceSubtask.getTaskid().toString(), pub_key);
        String patid = rsaPublicKeyExample.encryptedData(serviceSubtask.getPatid().toString(), pub_key);
        String subId = rsaPublicKeyExample.encryptedData(serviceSubtask.getId().toString(), pub_key);
        ServiceOutPath serviceOutPath = new ServiceOutPath();
        serviceOutPath.setParam1(taskId);
        serviceOutPath.setParam2(patid);
        serviceOutPath.setCreateTime(new Date());
        serviceOutPath.setParam6(subId);
        iServiceOutPathService.insertServiceOutPath(serviceOutPath);
        //转成16进制
        String format = String.format("%03X", serviceOutPath.getId());
smartor/src/main/resources/mapper/smartor/Icd10Mapper.xml
@@ -20,11 +20,13 @@
        <result property="guid" column="guid"/>
        <result property="lastflag" column="lastflag"/>
        <result property="chimedflag" column="chimedflag"/>
        <result property="hisIcdid" column="his_icdid"/>
    </resultMap>
    <sql id="selectIcd10Vo">
        select icdid,
               icdcode,
               his_icdid,
               lastflag,
               chimedflag,
               icdname,
@@ -44,6 +46,7 @@
    <select id="selectIcd10List" parameterType="com.smartor.domain.Icd10" resultMap="Icd10Result">
        <include refid="selectIcd10Vo"/>
        <where>
            del_flag=0
            <if test="icdcode != null  and icdcode != ''">and icdcode = #{icdcode}</if>
            <if test="lastflag != null  and lastflag != ''">and lastflag = #{lastflag}</if>
            <if test="chimedflag != null  and chimedflag != ''">and chimedflag = #{chimedflag}</if>
@@ -53,6 +56,7 @@
            <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
            <if test="pid != null ">and pid = #{pid}</if>
            <if test="guid != null  and guid != ''">and guid = #{guid}</if>
            <if test="hisIcdid != null  and hisIcdid != ''">and his_icdid = #{hisIcdid}</if>
        </where>
    </select>
@@ -78,6 +82,7 @@
            <if test="guid != null">guid,</if>
            <if test="lastflag != null  and lastflag != ''">lastflag,</if>
            <if test="chimedflag != null  and chimedflag != ''">chimedflag,</if>
            <if test="hisIcdid != null  and hisIcdid != ''">his_icdid,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="icdcode != null">#{icdcode},</if>
@@ -94,6 +99,7 @@
            <if test="guid != null">#{guid},</if>
            <if test="lastflag != null  and lastflag != ''">#{lastflag},</if>
            <if test="chimedflag != null  and chimedflag != ''">#{chimedflag},</if>
            <if test="hisIcdid != null  and hisIcdid != ''">#{hisIcdid},</if>
        </trim>
    </insert>
@@ -114,6 +120,7 @@
            <if test="guid != null">guid = #{guid},</if>
            <if test="lastflag != null  and lastflag != ''">lastflag = #{lastflag},</if>
            <if test="chimedflag != null  and chimedflag != ''">chimedflag = #{chimedflag},</if>
            <if test="hisIcdid != null  and hisIcdid != ''">his_icdid = #{hisIcdid},</if>
        </trim>
        where icdid = #{icdid}
    </update>
smartor/src/main/resources/mapper/smartor/ServiceOutPathMapper.xml
@@ -80,13 +80,11 @@
            </if>
            <if test="param5 != null">param5,
            </if>
            <if test="param6 != null">param6,
            </if>
            <if test="radix != null">radix,
            </if>
            <if test="createTime != null">create_time,
            </if>
            <if test="guid != null">guid,
            </if>
            <if test="orgid != null">orgid,
            </if>
        </trim>
@@ -99,13 +97,11 @@
            </if>
            <if test="param5 != null">#{param5},
            </if>
            <if test="param6 != null">#{param6},
            </if>
            <if test="radix != null">#{radix},
            </if>
            <if test="createTime != null">#{createTime},
            </if>
            <if test="guid != null">#{guid},
            </if>
            <if test="orgid != null">#{orgid},
            </if>
        </trim>
    </insert>
smartor/src/main/resources/mapper/smartor/ServiceTaskMapper.xml
@@ -498,10 +498,10 @@
            </if>
            <if test="leavehospitaldistrictcode != null  ">leavehospitaldistrictcode = #{leavehospitaldistrictcode},
            </if>
            <if test="compensateDate != null  and compensateDate != ''">compensate_date = #{compensateDate}</if>
            <if test="sendDay != null  ">send_day = #{sendDay}</if>
            <if test="appltype != null  ">appltype = #{appltype}</if>
            <if test="patCycle != null  ">pat_cycle = #{patCycle}</if>
            <if test="compensateDate != null  and compensateDate != ''">compensate_date = #{compensateDate},</if>
            <if test="sendDay != null  ">send_day = #{sendDay},</if>
            <if test="appltype != null  ">appltype = #{appltype},</if>
            <if test="patCycle != null  ">pat_cycle = #{patCycle},</if>
        </trim>
        where taskid = #{taskid}
    </update>