fix: 修复佛山三院基础信息数据采集转换科室和主管医生

master
wyb 1 year ago
parent c6b8f11cdd
commit f733ee85f8

@ -0,0 +1 @@
{"startDate": "2024-01-01", "pageNumber": 1, "pageSize": 100}

@ -35,7 +35,7 @@ public class PatientInfoConverter {
tBasic.setInpatientNo(view.getZY());
tBasic.setAdmissTimes(view.getZYCS());
tBasic.setName(view.getXM());
tBasic.setNameSpell(PingYinUtil.getFirstSpell(view.getXM()));
tBasic.setNameSpell(getPinyinFirstSpell(view.getXM()));
tBasic.setSex(sex(view.getXB()));
tBasic.setSexName(sexName(view.getXB()));
tBasic.setAdmissDate(view.getRYRQ());
@ -59,6 +59,14 @@ public class PatientInfoConverter {
return tBasic;
}
public static String getPinyinFirstSpell(String str) {
try {
return PingYinUtil.getFirstSpell(str);
}catch (Exception ex){
return null;
}
}
/**
* age
* ageMonth

@ -0,0 +1,62 @@
package com.docus.server.archive.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author jiashi
* @since 2021-04-15
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "PowerDept对象", description = "科室")
public class PowerDept implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "科室id")
private Long deptId;
@ApiModelProperty(value = "科室代码")
private String deptCode;
@ApiModelProperty(value = "科室名称")
private String deptName;
@ApiModelProperty(value = "字典id")
private Integer dictId;
@ApiModelProperty(value = "是否有效")
private Integer effective;
@ApiModelProperty(value = "创建时间")
private Date createDate;
@ApiModelProperty(value = "创建人")
private String creater;
@ApiModelProperty(value = "更新时间")
private Date updateDate;
@ApiModelProperty(value = "更新人")
private String updater;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "临床科室排序")
private Integer sort;
@ApiModelProperty(value = "0:非临床科室,1:临床科室")
private Integer type;
}

@ -0,0 +1,113 @@
package com.docus.server.archive.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.util.Date;
/**
* <p>
*
* </p>
*
* @author jiashi
* @since 2021-04-14
*/
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "PowerUser对象", description = "用户表")
public class PowerUser implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户id")
private Long userId;
@ApiModelProperty(value = "登陆名")
private String userName;
@ApiModelProperty(value = "用户密码")
private String userPwd;
@ApiModelProperty(value = "密码修改(0未修改1已修改)")
private Integer pwdChange;
@ApiModelProperty(value = "性别 0 男 1 女")
private Integer userSex;
@ApiModelProperty(value = "年龄")
private Integer userAge;
@ApiModelProperty(value = "电话")
private String userTel;
@ApiModelProperty(value = "邮箱")
private String userEmail;
@ApiModelProperty(value = "微信信息")
private String wxBank;
@ApiModelProperty(value = "职位")
private String userPosition;
@ApiModelProperty(value = "角色")
private Long roleId;
@ApiModelProperty(value = "部门id")
private String deptId;
@ApiModelProperty("头像路径")
private String userHead;
@ApiModelProperty(value = "是否有效")
private Integer effective;
@ApiModelProperty(value = "创建时间")
private Date createDate;
@ApiModelProperty(value = "创建人")
private String creater;
@ApiModelProperty(value = "更新时间")
private Date updateDate;
@ApiModelProperty(value = "更新人")
private String updater;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "登录标志 默认为0为未登录 1登录")
private Integer loginFlag;
@ApiModelProperty(value = "用户名称")
private String name;
@ApiModelProperty(value = "权限科室 拥有对科室查阅权限")
private String powerDept;
@ApiModelProperty(value = "权限 拥有对主管医生查阅权限")
private String powerAttending;
@ApiModelProperty("是否可用")
private Integer enabled;
@ApiModelProperty("账号状态 0正常 1锁定 2冻结")
private Integer accountState;
@ApiModelProperty("其他角色选择")
private String attRoleId;
@ApiModelProperty("微信公众号openid")
private String openId;
@ApiModelProperty("是否第三方账号 0否 1是")
private Integer isThird;
}

@ -29,6 +29,7 @@ public class PatientInfoSyncJob {
*/
@XxlJob("FoShanSyPatientInfoSyncJob")
public void foShanSyPatientInfoSyncJob() {
log.info("====================> 佛山三院基础数据同步任务开始 ===================");
String jobConfigPath = "data-config\\job-config";
String jobConfigName = "FoShanSyPatientInfoSyncJob.json";
TableJsonRead jsonReader = new TableJsonRead();
@ -50,6 +51,7 @@ public class PatientInfoSyncJob {
syncJobConfig.setPageNumber(1);
syncJobConfig.setStartDate(runJobDate);
jsonReader.Save(jobConfigPath, jobConfigName, Func.toJson(syncJobConfig));
log.info("====================> 佛山三院基础数据同步任务结束 ===================");
}
private static class FoShanSyPatientInfoSyncJobConfig {

@ -0,0 +1,14 @@
package com.docus.server.archive.mapper;
import com.docus.server.archive.entity.PowerDept;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface PowerDeptMapper {
List<PowerDept> list();
}

@ -0,0 +1,14 @@
package com.docus.server.archive.mapper;
import com.docus.server.archive.entity.PowerUser;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface PowerUserMapper {
List<PowerUser> list();
}

@ -3,7 +3,11 @@ package com.docus.server.archive.service.impl;
import com.docus.core.util.Func;
import com.docus.infrastructure.redis.service.IdService;
import com.docus.server.archive.converter.PatientInfoConverter;
import com.docus.server.archive.entity.PowerDept;
import com.docus.server.archive.entity.PowerUser;
import com.docus.server.archive.entity.TBasic;
import com.docus.server.archive.mapper.PowerDeptMapper;
import com.docus.server.archive.mapper.PowerUserMapper;
import com.docus.server.archive.mapper.TBasicMapper;
import com.docus.server.archive.service.PatientInfoSyncService;
import com.docus.server.fsy.entity.JswzhPatientInfoView;
@ -29,7 +33,10 @@ public class PatientInfoSyncServiceImpl implements PatientInfoSyncService {
private JswzhPatientInfoViewMapper jswzhPatientInfoViewMapper;
@Resource
private IdService idService;
@Resource
private PowerUserMapper powerUserMapper;
@Resource
private PowerDeptMapper powerDeptMapper;
@Override
public void syncInHospitalData() {
@ -103,8 +110,10 @@ public class PatientInfoSyncServiceImpl implements PatientInfoSyncService {
if (Func.isEmpty(jswzhPatientInfoViews)) {
return;
}
Map<String, String> userNameMap = new HashMap<>();
Map<String, String> deptCodeNameMap = new HashMap<>();
List<PowerUser> powerUserList = powerUserMapper.list();
List<PowerDept> powerDeptList = powerDeptMapper.list();
Map<String, String> userNameMap = powerUserList.stream().collect(Collectors.toMap(PowerUser::getUserName, PowerUser::getName));
Map<String, String> deptCodeNameMap = powerDeptList.stream().collect(Collectors.toMap(PowerDept::getDeptCode, PowerDept::getDeptName));
PatientInfoConverter converter = new PatientInfoConverter(userNameMap, deptCodeNameMap);
List<TBasic> basicList = jswzhPatientInfoViews.stream().map(converter::convertArchiveBasicInfo).collect(Collectors.toList());
insertOrUpdate(basicList);

@ -69,6 +69,11 @@ public class PingYinUtil {
}
return pybf.toString().replaceAll("\\W", "").trim();
}
public static void main(String[] args) {
String spell = getFirstSpell("牛的");
System.out.println(spell);
}
/**
*
* @param chinese

@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.docus.server.fsy.mapper.JswzhPatientInfoViewMapper">
<sql id="JswzhPatientInfoViewField">
JZH,ZY,ZYCS,XM,XB,RYRQ,RYKSBQ,RYKSMC,CWDM,DQYS,NL,SFZH,LXDH,CYRQ,DQBQ,DQKS,ZJINE,ZYZT,CYQK,SFSW,BRBZ,JZKH
JZH,ZY,ZYCS,XM,XB,RYRQ,RYKSBQ,RYKSMC,CWDM,DQYS,NL,SFZH,LXDH,CYRQ,DQBQ,DQKS,ZJINE,ZYZT,CYQK,SFSW,JZKH
</sql>
<select id="getInHospital" resultType="com.docus.server.fsy.entity.JswzhPatientInfoView">
@ -20,7 +20,7 @@
WHERE
(ZYZT = 'B' OR ZYZT='O')
AND
CQRY BETWEEN TO_DATE(#{disDateBegin},'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{disDateEnd},'YYYY-MM-DD HH24:MI:SS')
CYRQ BETWEEN TO_DATE(#{disDateBegin},'YYYY-MM-DD HH24:MI:SS') AND TO_DATE(#{disDateEnd},'YYYY-MM-DD HH24:MI:SS')
) WHERE rn BETWEEN ${startRow} AND ${endRow}
</select>

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.docus.server.archive.mapper.PowerDeptMapper">
<select id="list" resultType="com.docus.server.archive.entity.PowerDept">
SELECT
dept_code as deptCode,
dept_Name as deptName
FROM `docus_system`.`power_dept`
</select>
</mapper>

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.docus.server.archive.mapper.PowerUserMapper">
<select id="list" resultType="com.docus.server.archive.entity.PowerUser">
SELECT
user_name as userName,
name
FROM `docus_system`.`power_user`
</select>
</mapper>
Loading…
Cancel
Save