Browse Source

Merge branch 'master-dev' of http://116.204.114.73:3000/ccsens_zhengzhichuan/cga_v2 into master-dev

whszxyjhyy
ccsens_zhengzhichuan 6 days ago
parent
commit
d70ea156db
  1. 13
      ruisi_java/ruisi-cc-common/src/main/java/com/ccsens/common/core/domain/entity/SysUser.java
  2. 21
      ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/SysLoginService.java
  3. 14
      ruisi_java/ruisi-cc-generator/src/main/resources/mbg.xml
  4. 22
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/DockEmpl.java
  5. 140
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/DockEmplExample.java
  6. 5
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/mapper/SysDeptMapper.java
  7. 5
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/mapper/SysRoleMapper.java
  8. 2
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/mapper/SysUserMapper.java
  9. 1
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/DockService.java
  10. 71
      ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/DockServiceImpl.java
  11. 42
      ruisi_java/ruisi-system/src/main/resources/mapper/system/DockEmplMapper.xml
  12. 13
      ruisi_java/ruisi-system/src/main/resources/mapper/system/SysDeptMapper.xml
  13. 7
      ruisi_java/ruisi-system/src/main/resources/mapper/system/SysRoleMapper.xml
  14. 13
      ruisi_java/ruisi-system/src/main/resources/mapper/system/SysUserMapper.xml
  15. 35
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/DockController.java
  16. 4
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/scheduled/SyncHospitalData.java
  17. 2
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/PmsPatientServiceImpl.java
  18. 64
      ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/RmsServiceImpl.java
  19. 11
      ruisi_java/ruisi-web-client/src/main/resources/application-dev.yml
  20. 3
      ruisi_java/ruisi-web-client/src/main/resources/application-prod.yml
  21. 65
      ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/PmsPatientDao.xml
  22. 43
      ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/RmsDao.xml
  23. 11
      web_client/src/main.js
  24. 2
      web_client/vue.config.js

13
ruisi_java/ruisi-cc-common/src/main/java/com/ccsens/common/core/domain/entity/SysUser.java

@ -208,6 +208,11 @@ public class SysUser extends BaseEntity {
*/
private String versions;
/**
* 部门权限字段
*/
private String dataPower;
public SysUser() {
}
@ -490,6 +495,14 @@ public class SysUser extends BaseEntity {
return timeRemaining;
}
public String getDataPower() {
return dataPower;
}
public void setDataPower(String dataPower) {
this.dataPower = dataPower;
}
public void setTimeRemaining(Long timeRemaining) {
this.timeRemaining = timeRemaining;
}

21
ruisi_java/ruisi-cc-framework/src/main/java/com/ccsens/framework/web/service/SysLoginService.java

@ -3,11 +3,13 @@ package com.ccsens.framework.web.service;
import javax.annotation.Resource;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.ccsens.common.constant.ErrorConstant;
import com.ccsens.common.exception.base.BaseException;
import com.ccsens.common.utils.SecurityUtils;
import com.ccsens.framework.security.context.AuthenticationContextHolder;
import com.ccsens.framework.security.token.PhoneAuthenticationToken;
import com.ccsens.system.persist.mapper.SysUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
@ -46,7 +48,6 @@ import java.util.stream.Collectors;
public class SysLoginService {
@Autowired
private TokenService tokenService;
@Resource
private AuthenticationManager authenticationManager;
@ -59,6 +60,8 @@ public class SysLoginService {
@Autowired
private ISysConfigService configService;
@Autowired
private SysPermissionService permissionService;
/**
* 登录验证
*
@ -322,4 +325,20 @@ public class SysLoginService {
// 生成token
return tokenService.createToken(loginUser);
}
/**
* 通过工号获取登录信息
*/
public String getLoginByEmplCode(String emplCode) {
String token = null;
//根据emplCode查询用户信息
SysUser user = userService.selectUserByUserName(emplCode);
if (ObjectUtil.isNotNull(user)) {
LoginUser loginUser = new LoginUser(user.getUserId(), user.getDeptId(), user.getHospitalId(), user, permissionService.getMenuPermission(user));
recordLoginInfo(loginUser.getUserId());
// 生成token
token = tokenService.createToken(loginUser);
}
return token;
}
}

14
ruisi_java/ruisi-cc-generator/src/main/resources/mbg.xml

@ -64,18 +64,18 @@
<!-- <table tableName="ld_patient_record" domainObjectName="LdPatientRecord"/>-->
<!-- <table tableName="pms_patient_record" domainObjectName="PmsPatientRecord"/>-->
<!-- <table tableName="pms_patient_acp" domainObjectName="PmsPatientAcp"/>-->
<!-- <table tableName="pms_patient_body" domainObjectName="PmsPatientBody"/>-->
<table tableName="pms_patient_body" domainObjectName="PmsPatientBody"/>
<!-- <table tableName="pms_patient_family_illness" domainObjectName="PmsPatientFamilyIllness"/>-->
<!-- <table tableName="pms_patient_illness_history" domainObjectName="PmsPatientIllnessHistory"/>-->
<!-- <table tableName="pms_patient_parent_illness" domainObjectName="PmsPatientParentIllness"/>-->
<!-- <table tableName="pms_patient_personal" domainObjectName="PmsPatientPersonal"/>-->
<!-- <table tableName="pms_patient_diagnosis" domainObjectName="PmsPatientDiagnosis"/>-->
<!-- <table tableName="dock_patient_base_info" domainObjectName="DockPatientBaseInfo"/>-->
<!-- <table tableName="dock_patient_diagnosis" domainObjectName="DockPatientDiagnosis"/>-->
<!-- <table tableName="dock_patient_medication_info" domainObjectName="DockPatientMedicationInfo"/>-->
<!-- <table tableName="dock_patient_visit_info" domainObjectName="DockPatientVisitInfo"/>-->
<!-- <table tableName="dock_empl" domainObjectName="DockEmpl"/>-->
<!-- <table tableName="dock_dept" domainObjectName="DockDept"/>-->
<table tableName="dock_patient_base_info" domainObjectName="DockPatientBaseInfo"/>
<table tableName="dock_patient_diagnosis" domainObjectName="DockPatientDiagnosis"/>
<table tableName="dock_patient_medication_info" domainObjectName="DockPatientMedicationInfo"/>
<table tableName="dock_patient_visit_info" domainObjectName="DockPatientVisitInfo"/>
<table tableName="dock_empl" domainObjectName="DockEmpl"/>
<table tableName="dock_dept" domainObjectName="DockDept"/>
<!-- <table tableName="dms_running_log" domainObjectName="DmsRunningLog"/>-->
<!-- <table tableName="hms_combo" domainObjectName="HmsCombo"/>-->
<!-- <table tableName="hms_combo_scale_relevance" domainObjectName="HmsComboScaleRelevance"/>-->

22
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/DockEmpl.java

@ -26,6 +26,10 @@ public class DockEmpl implements Serializable {
private String sync;
private String rolePower;
private String dataPower;
private static final long serialVersionUID = 1L;
public Long getId() {
@ -116,6 +120,22 @@ public class DockEmpl implements Serializable {
this.sync = sync == null ? null : sync.trim();
}
public String getRolePower() {
return rolePower;
}
public void setRolePower(String rolePower) {
this.rolePower = rolePower == null ? null : rolePower.trim();
}
public String getDataPower() {
return dataPower;
}
public void setDataPower(String dataPower) {
this.dataPower = dataPower == null ? null : dataPower.trim();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@ -133,6 +153,8 @@ public class DockEmpl implements Serializable {
sb.append(", updateBy=").append(updateBy);
sb.append(", updateTime=").append(updateTime);
sb.append(", sync=").append(sync);
sb.append(", rolePower=").append(rolePower);
sb.append(", dataPower=").append(dataPower);
sb.append("]");
return sb.toString();
}

140
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/domain/po/DockEmplExample.java

@ -844,6 +844,146 @@ public class DockEmplExample {
addCriterion("sync not between", value1, value2, "sync");
return (Criteria) this;
}
public Criteria andRolePowerIsNull() {
addCriterion("role_power is null");
return (Criteria) this;
}
public Criteria andRolePowerIsNotNull() {
addCriterion("role_power is not null");
return (Criteria) this;
}
public Criteria andRolePowerEqualTo(String value) {
addCriterion("role_power =", value, "rolePower");
return (Criteria) this;
}
public Criteria andRolePowerNotEqualTo(String value) {
addCriterion("role_power <>", value, "rolePower");
return (Criteria) this;
}
public Criteria andRolePowerGreaterThan(String value) {
addCriterion("role_power >", value, "rolePower");
return (Criteria) this;
}
public Criteria andRolePowerGreaterThanOrEqualTo(String value) {
addCriterion("role_power >=", value, "rolePower");
return (Criteria) this;
}
public Criteria andRolePowerLessThan(String value) {
addCriterion("role_power <", value, "rolePower");
return (Criteria) this;
}
public Criteria andRolePowerLessThanOrEqualTo(String value) {
addCriterion("role_power <=", value, "rolePower");
return (Criteria) this;
}
public Criteria andRolePowerLike(String value) {
addCriterion("role_power like", value, "rolePower");
return (Criteria) this;
}
public Criteria andRolePowerNotLike(String value) {
addCriterion("role_power not like", value, "rolePower");
return (Criteria) this;
}
public Criteria andRolePowerIn(List<String> values) {
addCriterion("role_power in", values, "rolePower");
return (Criteria) this;
}
public Criteria andRolePowerNotIn(List<String> values) {
addCriterion("role_power not in", values, "rolePower");
return (Criteria) this;
}
public Criteria andRolePowerBetween(String value1, String value2) {
addCriterion("role_power between", value1, value2, "rolePower");
return (Criteria) this;
}
public Criteria andRolePowerNotBetween(String value1, String value2) {
addCriterion("role_power not between", value1, value2, "rolePower");
return (Criteria) this;
}
public Criteria andDataPowerIsNull() {
addCriterion("data_power is null");
return (Criteria) this;
}
public Criteria andDataPowerIsNotNull() {
addCriterion("data_power is not null");
return (Criteria) this;
}
public Criteria andDataPowerEqualTo(String value) {
addCriterion("data_power =", value, "dataPower");
return (Criteria) this;
}
public Criteria andDataPowerNotEqualTo(String value) {
addCriterion("data_power <>", value, "dataPower");
return (Criteria) this;
}
public Criteria andDataPowerGreaterThan(String value) {
addCriterion("data_power >", value, "dataPower");
return (Criteria) this;
}
public Criteria andDataPowerGreaterThanOrEqualTo(String value) {
addCriterion("data_power >=", value, "dataPower");
return (Criteria) this;
}
public Criteria andDataPowerLessThan(String value) {
addCriterion("data_power <", value, "dataPower");
return (Criteria) this;
}
public Criteria andDataPowerLessThanOrEqualTo(String value) {
addCriterion("data_power <=", value, "dataPower");
return (Criteria) this;
}
public Criteria andDataPowerLike(String value) {
addCriterion("data_power like", value, "dataPower");
return (Criteria) this;
}
public Criteria andDataPowerNotLike(String value) {
addCriterion("data_power not like", value, "dataPower");
return (Criteria) this;
}
public Criteria andDataPowerIn(List<String> values) {
addCriterion("data_power in", values, "dataPower");
return (Criteria) this;
}
public Criteria andDataPowerNotIn(List<String> values) {
addCriterion("data_power not in", values, "dataPower");
return (Criteria) this;
}
public Criteria andDataPowerBetween(String value1, String value2) {
addCriterion("data_power between", value1, value2, "dataPower");
return (Criteria) this;
}
public Criteria andDataPowerNotBetween(String value1, String value2) {
addCriterion("data_power not between", value1, value2, "dataPower");
return (Criteria) this;
}
}
public static class Criteria extends GeneratedCriteria {

5
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/mapper/SysDeptMapper.java

@ -117,4 +117,9 @@ public interface SysDeptMapper {
public int deleteDeptById(Long deptId);
List<SysDept> queryDeptByIdList(@Param("deptIdList") List<Long> deptIdList);
/**
* 同步根据部门code查找部门信息(逗号分隔的多个部门code)
*/
List<SysDept> queryDeptByDeptCode(@Param("deptCode") String deptCode);
}

5
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/mapper/SysRoleMapper.java

@ -107,4 +107,9 @@ public interface SysRoleMapper {
* @return 结果
*/
public int deleteRoleByIds(Long[] roleIds);
/**
* 通过权限key查找角色
*/
public SysRole queryRoleByRoleKey(@Param("roleKey") String roleKey);
}

2
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/persist/mapper/SysUserMapper.java

@ -154,4 +154,6 @@ public interface SysUserMapper {
List<SysUser> selectUserByRoleKey(@Param("roleKey") String roleKey);
List<SysUser> getZcpsByHospitalId(@Param("hospitalId")Long hospitalId);
SysUser selectUserByEmplCode(@Param("emplCode")String emplCode);
}

1
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/DockService.java

@ -32,4 +32,5 @@ public interface DockService {
void syncUmsDeptMaster(List<SysDept> sysDepts);
List<SysUser> syncUmsUserSlave();
void syncUmsUserMaster(List<SysUser> sysUsers);
}

71
ruisi_java/ruisi-system/src/main/java/com/ccsens/system/service/impl/DockServiceImpl.java

@ -11,7 +11,9 @@ import cn.hutool.extra.pinyin.PinyinUtil;
import com.ccsens.common.annotation.DataSource;
import com.ccsens.common.constant.ErrorConstant;
import com.ccsens.common.core.domain.entity.SysDept;
import com.ccsens.common.core.domain.entity.SysRole;
import com.ccsens.common.core.domain.entity.SysUser;
import com.ccsens.common.core.domain.model.LoginUser;
import com.ccsens.common.enums.DataSourceType;
import com.ccsens.common.exception.base.BaseException;
import com.ccsens.common.utils.DateUtils;
@ -25,6 +27,7 @@ import com.ccsens.system.persist.mapper.*;
import com.ccsens.system.service.DmsDataValueService;
import com.ccsens.system.service.DockService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -78,6 +81,9 @@ public class DockServiceImpl implements DockService {
private SysUserMapper sysUserMapper;
@Resource
private SysUserRoleMapper userRoleMapper;
@Resource
private SysRoleMapper sysRoleMapper;
@Value("${hospitalId:}")
private Long hospitalId;
@ -279,6 +285,7 @@ public class DockServiceImpl implements DockService {
}
}
@Override
public void syncHospitalData() {
//患者信息
try {
@ -307,6 +314,7 @@ public class DockServiceImpl implements DockService {
}
@Override
@DataSource(value = DataSourceType.MASTER)
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void syncUmsUserMaster(List<SysUser> sysUsers) {
@ -319,13 +327,16 @@ public class DockServiceImpl implements DockService {
if (CollUtil.isEmpty(users)) {
sysUser.setDeptId(hospitalId);
sysUserMapper.insertUser(sysUser);
}else {
sysUser.setUserId(users.get(0).getUserId());
sysUserMapper.updateUser(sysUser);
}
}
}
}
// @DataSource(value = DataSourceType.SLAVE)
// @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
@Override
public List<SysUser> syncUmsUserSlave() {
List<SysUser> returnUsers = new ArrayList<>();
DockEmplExample dockEmplExample = new DockEmplExample();
@ -344,6 +355,26 @@ public class DockServiceImpl implements DockService {
} else {
sysDept = sysDepts.get(0);
}
//处理用户的部门权限
String dataPower = "";
if(StrUtil.isNotEmpty(dockEmpl.getDataPower())){
if("All".equals(dockEmpl.getDataPower())){
dataPower = "All";
}else {
List<SysDept> depts = sysDeptMapper.queryDeptByDeptCode(dockEmpl.getDataPower());
dataPower = depts.stream().map(SysDept::getDeptId).map(String::valueOf).collect(Collectors.joining(","));
}
}
//处理角色权限
SysRole role = null;
if(StrUtil.isNotEmpty(dockEmpl.getRolePower()) && "1".equals(dockEmpl.getRolePower())){
//总评估师
role = sysRoleMapper.queryRoleByRoleKey("yy_zcps");
}else {
//评估师
role = sysRoleMapper.queryRoleByRoleKey("yy_cps");
}
SysUser sysUser = new SysUser();
sysUser.setEmplCode(dockEmpl.getEmplCode());
List<SysUser> sysUsers = sysUserMapper.selectUserList(sysUser);
@ -355,24 +386,44 @@ public class DockServiceImpl implements DockService {
sysUser.setPassword(SecurityUtils.encryptPassword(generalPassword));
//获取一年后的日期
sysUser.setValidDate(DateUtil.offset(new Date(), DateField.YEAR, 1));
sysUser.setDataPower(dataPower);
sysUserMapper.insertUser(sysUser);
// 新增用户与角色管理
SysUserRole ur = new SysUserRole();
ur.setUserId(sysUser.getUserId());
ur.setRoleId(104L);
userRoleMapper.batchUserRole(CollUtil.newArrayList(ur));
if(role != null) {
SysUserRole ur = new SysUserRole();
ur.setUserId(sysUser.getUserId());
ur.setRoleId(role.getRoleId());
userRoleMapper.batchUserRole(CollUtil.newArrayList(ur));
}
returnUsers.add(sysUser);
dockEmpl.setSync("1");
dockEmplMapper.updateByPrimaryKeySelective(dockEmpl);
}else {
//存在则更新
SysUser user = sysUsers.get(0);
user.setDeptId(sysDept.getDeptId());
user.setNickName(dockEmpl.getEmplName());
user.setDataPower(dataPower);
sysUserMapper.updateUser(user);
//删除旧的用户角色关联
userRoleMapper.deleteUserRoleByUserId(user.getUserId());
// 新增用户与角色管理
if(role != null) {
SysUserRole ur = new SysUserRole();
ur.setUserId(user.getUserId());
ur.setRoleId(role.getRoleId());
userRoleMapper.batchUserRole(CollUtil.newArrayList(ur));
}
returnUsers.add(user);
dockEmpl.setSync("1");
dockEmplMapper.updateByPrimaryKeySelective(dockEmpl);
}
}
return returnUsers;
}
// @DataSource(value = DataSourceType.SLAVE)
// @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
@Override
public List<SysDept> syncUmsDeptSlave() {
List<SysDept> returnDepts = new ArrayList<>();
//查找同步表中的部门信息
@ -409,6 +460,7 @@ public class DockServiceImpl implements DockService {
return returnDepts;
}
@Override
@DataSource(value = DataSourceType.MASTER)
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void syncUmsDeptMaster(List<SysDept> sysDepts) {
@ -429,7 +481,6 @@ public class DockServiceImpl implements DockService {
}
}
private void syncPmsPatient() {
//查找医院下第一个总测评师
List<SysUser> sysUserList = sysUserMapper.getZcpsByHospitalId(hospitalId);

42
ruisi_java/ruisi-system/src/main/resources/mapper/system/DockEmplMapper.xml

@ -13,6 +13,8 @@
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="sync" jdbcType="VARCHAR" property="sync" />
<result column="role_power" jdbcType="VARCHAR" property="rolePower" />
<result column="data_power" jdbcType="VARCHAR" property="dataPower" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -74,7 +76,7 @@
</sql>
<sql id="Base_Column_List">
id, empl_name, empl_code, empl_type, dept_code, del_flag, create_by, create_time,
update_by, update_time, sync
update_by, update_time, sync, role_power, data_power
</sql>
<select id="selectByExample" parameterType="com.ccsens.system.domain.po.DockEmplExample" resultMap="BaseResultMap">
select
@ -110,11 +112,13 @@
insert into dock_empl (id, empl_name, empl_code,
empl_type, dept_code, del_flag,
create_by, create_time, update_by,
update_time, sync)
update_time, sync, role_power,
data_power)
values (#{id,jdbcType=BIGINT}, #{emplName,jdbcType=VARCHAR}, #{emplCode,jdbcType=VARCHAR},
#{emplType,jdbcType=VARCHAR}, #{deptCode,jdbcType=VARCHAR}, #{delFlag,jdbcType=CHAR},
#{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR},
#{updateTime,jdbcType=TIMESTAMP}, #{sync,jdbcType=VARCHAR})
#{updateTime,jdbcType=TIMESTAMP}, #{sync,jdbcType=VARCHAR}, #{rolePower,jdbcType=VARCHAR},
#{dataPower,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.ccsens.system.domain.po.DockEmpl">
insert into dock_empl
@ -152,6 +156,12 @@
<if test="sync != null">
sync,
</if>
<if test="rolePower != null">
role_power,
</if>
<if test="dataPower != null">
data_power,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -187,6 +197,12 @@
<if test="sync != null">
#{sync,jdbcType=VARCHAR},
</if>
<if test="rolePower != null">
#{rolePower,jdbcType=VARCHAR},
</if>
<if test="dataPower != null">
#{dataPower,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.ccsens.system.domain.po.DockEmplExample" resultType="java.lang.Long">
@ -231,6 +247,12 @@
<if test="record.sync != null">
sync = #{record.sync,jdbcType=VARCHAR},
</if>
<if test="record.rolePower != null">
role_power = #{record.rolePower,jdbcType=VARCHAR},
</if>
<if test="record.dataPower != null">
data_power = #{record.dataPower,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -248,7 +270,9 @@
create_time = #{record.createTime,jdbcType=TIMESTAMP},
update_by = #{record.updateBy,jdbcType=VARCHAR},
update_time = #{record.updateTime,jdbcType=TIMESTAMP},
sync = #{record.sync,jdbcType=VARCHAR}
sync = #{record.sync,jdbcType=VARCHAR},
role_power = #{record.rolePower,jdbcType=VARCHAR},
data_power = #{record.dataPower,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -286,6 +310,12 @@
<if test="sync != null">
sync = #{sync,jdbcType=VARCHAR},
</if>
<if test="rolePower != null">
role_power = #{rolePower,jdbcType=VARCHAR},
</if>
<if test="dataPower != null">
data_power = #{dataPower,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=BIGINT}
</update>
@ -300,7 +330,9 @@
create_time = #{createTime,jdbcType=TIMESTAMP},
update_by = #{updateBy,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=TIMESTAMP},
sync = #{sync,jdbcType=VARCHAR}
sync = #{sync,jdbcType=VARCHAR},
role_power = #{rolePower,jdbcType=VARCHAR},
data_power = #{dataPower,jdbcType=VARCHAR}
where id = #{id,jdbcType=BIGINT}
</update>
</mapper>

13
ruisi_java/ruisi-system/src/main/resources/mapper/system/SysDeptMapper.xml

@ -9,6 +9,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="parentId" column="parent_id" />
<result property="ancestors" column="ancestors" />
<result property="deptName" column="dept_name" />
<result property="deptCode" column="dept_code" />
<result property="orderNum" column="order_num" />
<result property="leader" column="leader" />
<result property="phone" column="phone" />
@ -23,7 +24,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectDeptVo">
select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
select d.dept_id, d.parent_id, d.ancestors, d.dept_name,d.dept_code, d.order_num, d.leader, d.phone, d.email, d.status, d.del_flag, d.create_by, d.create_time
from ums_dept d
</sql>
@ -171,4 +172,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
and parent_id = 0
</select>
<select id="queryDeptByDeptCode" resultType="com.ccsens.common.core.domain.entity.SysDept">
SELECT
*
FROM
ums_dept
WHERE
del_flag = '0'
AND FIND_IN_SET(dept_id, #{deptCode})
</select>
</mapper>

7
ruisi_java/ruisi-system/src/main/resources/mapper/system/SysRoleMapper.xml

@ -105,8 +105,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<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">
<select id="queryRoleByRoleKey" resultType="com.ccsens.common.core.domain.entity.SysRole">
select * from ums_role where role_key=#{roleKey} limit 1
</select>
<insert id="insertRole" parameterType="SysRole" useGeneratedKeys="true" keyProperty="roleId">
insert into ums_role(
<if test="roleId != null and roleId != 0">role_id,</if>
<if test="roleName != null and roleName != ''">role_name,</if>

13
ruisi_java/ruisi-system/src/main/resources/mapper/system/SysUserMapper.xml

@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="titleId" column="title_id" />
<result property="userName" column="user_name" />
<result property="nickName" column="nick_name" />
<result property="emplCode" column="empl_code" />
<result property="email" column="email" />
<result property="phonenumber" column="phonenumber" />
<result property="sex" column="sex" />
@ -90,7 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.post_id, u.title_id, u.nick_name, u.user_name, u.email, u.avatar, 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, d1.dept_name as parent_name, d1.dept_id as parent_id,
p.post_name, p.post_code,
p.post_name, p.post_code, u.empl_code,
t.title_name, u.skip_check_device, t.title_code
from ums_user u
left join ums_dept d on u.dept_id = d.dept_id
@ -243,8 +244,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and r.del_flag = 0
and u.dept_id = #{hospitalId}
</select>
<select id="selectUserByEmplCode" resultType="com.ccsens.common.core.domain.entity.SysUser">
<include refid="selectUserVo"/>
where u.empl_code = #{emplCode} and u.del_flag = '0'
group by u.user_id order by u.create_time desc limit 1
</select>
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
insert into ums_user(
<if test="userId != null and userId != 0">user_id,</if>
<if test="deptId != null and deptId != 0">dept_id,</if>
@ -263,6 +269,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="remark != null and remark != ''">remark,</if>
<if test="validDate != null">valid_date,</if>
<if test="skipCheckDevice != null and skipCheckDevice != ''">skip_check_device,</if>
<if test="dataPower != null and dataPower != ''">data_power,</if>
create_time
)values(
<if test="userId != null and userId != ''">#{userId},</if>
@ -282,6 +289,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="remark != null and remark != ''">#{remark},</if>
<if test="validDate != null">#{validDate},</if>
<if test="skipCheckDevice != null and skipCheckDevice != ''">#{skipCheckDevice},</if>
<if test="dataPower != null and dataPower != ''">#{dataPower},</if>
sysdate()
)
</insert>
@ -305,6 +313,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="skipCheckDevice != null and skipCheckDevice != ''">skip_check_device = #{skipCheckDevice},</if>
<if test="dataPower != null and dataPower != ''">data_power = #{dataPower},</if>
<if test="validDate != null">valid_date = #{validDate},</if>
update_time = sysdate()
</set>

35
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/DockController.java

@ -2,18 +2,22 @@ package com.ccsens.client.controller;
import com.ccsens.common.annotation.Anonymous;
import com.ccsens.common.core.domain.JsonResponse;
import com.ccsens.framework.web.service.SysLoginService;
import com.ccsens.system.domain.dto.DockDto;
import com.ccsens.system.service.DockService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* @Author zzc
@ -31,6 +35,29 @@ import javax.annotation.Resource;
public class DockController {
@Resource
private DockService dockService;
@Autowired
private SysLoginService loginService;
@Value("${redirectPath:}")
private String redirectPath;
/**
* 院内调用接口重定向至患者列表页面
* @param visitNo 患者就诊流水号
* @param emplCode 登录用户工号
* @return 重定向至本系统
*/
@Anonymous
@ApiOperation("对接院内登录重定向至本系统")
@GetMapping("/redirect")
public void loginRedirect(String visitNo, String emplCode, HttpServletResponse response) throws IOException {
//根据emplCode获取token
String token = loginService.getLoginByEmplCode(emplCode);
// 3. 构建前端URL
String frontendUrl = redirectPath + "?idCard=" + visitNo + "&token=Bearer " + token;
// 4. 重定向
response.sendRedirect(frontendUrl);
}
@Anonymous
@ApiOperation("接收院内推送的待评估患者")

4
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/controller/scheduled/SyncHospitalData.java

@ -30,7 +30,7 @@ public class SyncHospitalData {
}
@DataSource(value = DataSourceType.SLAVE)
// @Scheduled(cron = "0 */1 * * * ?")
@Scheduled(cron = "0 */1 * * * ?")
public void syncDeptData() {
try {
List<SysDept> sysDepts = dockService.syncUmsDeptSlave();
@ -48,7 +48,7 @@ public class SyncHospitalData {
@DataSource(value = DataSourceType.SLAVE)
// @Scheduled(cron = "0 */1 * * * ?")
@Scheduled(cron = "0 */1 * * * ?")
public void syncUserData() {
try {
List<SysUser> sysUsers = dockService.syncUmsUserSlave();

2
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/PmsPatientServiceImpl.java

@ -222,7 +222,7 @@ public class PmsPatientServiceImpl implements IPmsPatientService {
PmsPatientBodyExample patientBodyExample = new PmsPatientBodyExample();
patientBodyExample.createCriteria().andPatientIdEqualTo(pmsPatient.getId())
.andDelFlagEqualTo((byte) 0);
patientBodyExample.setOrderByClause("id desc");
patientBodyExample.setOrderByClause("create_time desc");
List<PmsPatientBody> pmsPatientBodies = pmsPatientBodyMapper.selectByExample(patientBodyExample);
if (CollUtil.isNotEmpty(pmsPatientBodies)) {
PmsPatientBody body = pmsPatientBodies.get(0);

64
ruisi_java/ruisi-web-client/src/main/java/com/ccsens/client/service/impl/RmsServiceImpl.java

@ -1628,41 +1628,41 @@ public class RmsServiceImpl implements IRmsService {
List<RmsVo.QueryReportHistoryPatient> queryReportHistoryPatients = rmsDao.queryReportList(dto, userId, SecurityUtils.getUsername(), dataScope);
if (CollUtil.isNotEmpty(queryReportHistoryPatients)) {
queryReportHistoryPatients.forEach(patient -> {
//查找最后一题信息
RmsVo.QueryReportHistoryPatient lastQuestion = rmsDao.getLastQuestion(patient.getEvaluationId());
if (ObjectUtil.isNotNull(lastQuestion)) {
patient.setScaleCode(lastQuestion.getScaleCode());
patient.setScaleName(lastQuestion.getScaleName());
patient.setNum(lastQuestion.getNum());
}
// //查找最后一题信息
// RmsVo.QueryReportHistoryPatient lastQuestion = rmsDao.getLastQuestion(patient.getEvaluationId());
// if (ObjectUtil.isNotNull(lastQuestion)) {
// patient.setScaleCode(lastQuestion.getScaleCode());
// patient.setScaleName(lastQuestion.getScaleName());
// patient.setNum(lastQuestion.getNum());
// }
//查询关联的量表名称
patient.setScaleNames(rmsDao.queryEvaluationScaleNames(patient.getEvaluationId()));
//根据测评id查找报告单
RmsReportExample reportExample = new RmsReportExample();
reportExample.createCriteria().andEvaluationIdEqualTo(patient.getEvaluationId()).andDelFlagEqualTo((byte) 0);
List<RmsReport> rmsReports = rmsReportMapper.selectByExample(reportExample);
if (CollUtil.isEmpty(rmsReports)) {
patient.setReport(false);
} else {
patient.setReport(true);
}
//每次查询报告单 都重新生成分数
//查询报告单分数
List<RmsVo.ReportScore> reportScore = rmsDao.queryReportScore(patient.getEvaluationId(), null);
//重新封装报告单信息
List<RmsVo.ReportScore> reportScores = getReportScores(reportScore, patient.getEvaluationId());
int i = 0;
for (RmsVo.ReportScore score : reportScores) {
String result = score.getResult();
if (StrUtil.isNotEmpty(result)) {
i += 1;
}
}
if (i >= 2) {
patient.setResult("");
}
// //根据测评id查找报告单
// RmsReportExample reportExample = new RmsReportExample();
// reportExample.createCriteria().andEvaluationIdEqualTo(patient.getEvaluationId()).andDelFlagEqualTo((byte) 0);
// List<RmsReport> rmsReports = rmsReportMapper.selectByExample(reportExample);
// if (CollUtil.isEmpty(rmsReports)) {
// patient.setReport(false);
// } else {
// patient.setReport(true);
// }
// //每次查询报告单 都重新生成分数
// //查询报告单分数
// List<RmsVo.ReportScore> reportScore = rmsDao.queryReportScore(patient.getEvaluationId(), null);
// //重新封装报告单信息
// List<RmsVo.ReportScore> reportScores = getReportScores(reportScore, patient.getEvaluationId());
// int i = 0;
// for (RmsVo.ReportScore score : reportScores) {
// String result = score.getResult();
// if (StrUtil.isNotEmpty(result)) {
// i += 1;
// }
// }
// if (i >= 2) {
// patient.setResult("");
// }
});
}

11
ruisi_java/ruisi-web-client/src/main/resources/application-dev.yml

@ -11,14 +11,14 @@ spring:
# password: po3OynBO[M3579p6L7)o
url: jdbc:mysql://127.0.0.1:3306/ruisi_cga?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: q7510327
password: 123456
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: true
url: jdbc:mysql://127.0.0.1:3306/ruisi_cga_yf1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:mysql://127.0.0.1:3306/ruisi_cga_yf?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: q7510327
password: 123456
# driverClassName: oracle.jdbc.driver.OracleDriver
# url: jdbc:oracle:thin:@200.1.8.115:1521:hisdb
# username: interface_lnpg
@ -127,5 +127,6 @@ informed:
clientVersion: v1.8.3.0
# 医院id,不同医院部署的时候需要修改
hospitalId: 174
generalPassword: cga123#
hospitalId: 106
generalPassword: cga123#
redirectPath: http://localhost:8080/cga/v2/client/#/sickList

3
ruisi_java/ruisi-web-client/src/main/resources/application-prod.yml

@ -133,4 +133,5 @@ clientVersion: v1.8.3.0
# 医院id,不同医院部署的时候需要修改
hospitalId: 178
generalPassword: cga123#
generalPassword: cga123#
redirectPath: http://院内ip/cga/v2/client/#/sickList

65
ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/PmsPatientDao.xml

@ -29,7 +29,6 @@
pp.id as patientId,
pp.`name` as patientName,
pp.sex,
-- pp.age,
pp.idcard,
pp.mobile as phone,
pp.birth_year as birthYear,
@ -53,6 +52,7 @@
pms_patient pp
LEFT JOIN ems_evaluation ae on pp.id = ae.patient_id
LEFT JOIN ums_user uu on pp.create_by = uu.user_name
left join pms_patient_body pb on pp.id = pb.patient_id
WHERE
pp.del_flag = 0
<if test="searchValue != null and searchValue != ''">
@ -65,43 +65,42 @@
or
pp.idcard like CONCAT('%',#{searchValue},'%')
or
pp.id = #{searchValue}
pb.outpatient_no like CONCAT('%',#{searchValue},'%')
)
</if>
<if test="idcard != null and idcard != ''">
and (pp.idcard = #{idcard} or pp.idcard = #{idcardEncrypt})
</if>
<choose>
<when test="dataScope == 5">
and (pp.create_by = #{userName} or ae.tester_id = #{userId})
</when>
<!-- 当前医院不区分多级,所以本部门及以下权限和本部门数据权限使用相同的查询语句 -->
<when test="dataScope == 3 or dataScope == 4">
and uu.dept_id = (SELECT dept_id FROM ums_user WHERE user_id = #{userId})
</when>
<when test="dataScope == 2">
and uu.dept_id in (
SELECT pud.dept_id FROM ums_user u
LEFT JOIN ums_dept ud ON ud.dept_id = u.dept_id
LEFT JOIN ums_dept pud ON pud.dept_id = ud.parent_id
WHERE u.user_id = #{userId}
UNION ALL
SELECT u.dept_id FROM ums_user u WHERE u.user_id = #{userId}
)
</when>
</choose>
<!-- <if test="dataScope = '5'">-->
<!-- and (pp.create_by = #{userName} or ae.tester_id = #{userId})-->
<!-- </if>-->
<!-- &lt;!&ndash; 当前医院不区分多级,所以本部门及以下权限和本部门数据权限使用相同的查询语句 &ndash;&gt;-->
<!-- <if test="dataScope = '3' and dataScope = '4'">-->
<!-- and uu.dept_id = (SELECT dept_id FROM ums_user WHERE user_id = #{userId})-->
<!-- </if>-->
<!-- <if test="dataScope = '2'">-->
<!-- and uu.dept_id in (-->
<!-- SELECT rd.dept_id FROM ums_user u LEFT JOIN ums_user_role ur on u.user_id = ur.user_id LEFT JOIN ums_role_dept rd on rd.role_id = ur.role_id WHERE u.user_id = #{userId}-->
<!-- )-->
<!-- </if>-->
<!-- 权限 总测评师和测评师都是本部门及以下 -->
and uu.dept_id IN ( SELECT d.dept_id FROM ums_user u LEFT JOIN ums_dept d on (d.dept_id = u.dept_id or FIND_IN_SET(u.dept_id,ancestors))
WHERE user_id = #{userId}
)
<!-- <choose>-->
<!-- &lt;!&ndash; 测评师查看自己的患者 &ndash;&gt;-->
<!-- <when test="dataScope == 5">-->
<!-- and (pp.create_by = #{userName} or ae.tester_id = #{userId})-->
<!-- </when>-->
<!-- &lt;!&ndash; 总测评师查看自己部门的患者 &ndash;&gt;-->
<!-- <when test="dataScope == 3 or dataScope == 4">-->
<!-- and(-->
<!-- (EXISTS ( SELECT 1 FROM ums_user WHERE user_id = #{userId} AND data_power = 'ALL' ))-->
<!-- OR-->
<!-- (uu.dept_id IN ( SELECT CONCAT(dept_id, ',', data_power) FROM ums_user WHERE user_id = #{userId} ))-->
<!-- )-->
<!-- </when>-->
<!-- &lt;!&ndash; 目前没有2的权限 &ndash;&gt;-->
<!-- <when test="dataScope == 2">-->
<!-- and uu.dept_id in (-->
<!-- SELECT pud.dept_id FROM ums_user u-->
<!-- LEFT JOIN ums_dept ud ON ud.dept_id = u.dept_id-->
<!-- LEFT JOIN ums_dept pud ON pud.dept_id = ud.parent_id-->
<!-- WHERE u.user_id = #{userId}-->
<!-- UNION ALL-->
<!-- SELECT u.dept_id FROM ums_user u WHERE u.user_id = #{userId}-->
<!-- )-->
<!-- </when>-->
<!-- </choose>-->
GROUP BY pp.id
order by pp.create_time desc
</select>

43
ruisi_java/ruisi-web-client/src/main/resources/mapper/dao/RmsDao.xml

@ -1157,9 +1157,6 @@ group by ee.id
pp.idcard as idCard,
ee.complete_status as completeStatus,
ee.status,
<!--qq.scale_code,
qq.sort AS num,
qs.`name` AS scaleName,-->
ee.duration,
a.update_time as aduitTime,
b.outpatient_no as outpatientNo,
@ -1176,23 +1173,7 @@ group by ee.id
LEFT JOIN ems_evaluation_aduit a on ee.id = a.evaluation_id and a.del_flag = 0
left join pms_patient_body b on pp.id = b.patient_id
left join hms_version v on v.id = ee.version
<!--LEFT JOIN (
SELECT
pas.id,
pas.evaluation_id,
pas.create_time,
pas.question_id,
row_number() over w AS row_num
FROM
ams_patient_answer_score pas
WINDOW w AS (
PARTITION BY pas.evaluation_id
ORDER BY
pas.create_time DESC
)
) pas on ee.id = pas.evaluation_id
LEFT JOIN qms_question qq ON pas.question_id = qq.id
LEFT JOIN qms_scale qs ON qq.scale_code = qs.`code`-->
WHERE
ee.del_flag = 0
and pp.id is not null
@ -1219,24 +1200,10 @@ group by ee.id
pp.idcard like CONCAT('%',#{dto.searchValue},'%')
)
</if>
<choose>
<when test="dataScope == 5">
and (pp.create_by = #{userName} or ee.tester_id = #{userId})
</when>
<when test="dataScope == 3 or dataScope == 4">
and uu.dept_id = (SELECT dept_id FROM ums_user WHERE user_id = #{userId})
</when>
<when test="dataScope == 2">
and uu.dept_id in (
SELECT pud.dept_id FROM ums_user u
LEFT JOIN ums_dept ud ON ud.dept_id = u.dept_id
LEFT JOIN ums_dept pud ON pud.dept_id = ud.parent_id
WHERE u.user_id = #{userId}
UNION ALL
SELECT u.dept_id FROM ums_user u WHERE u.user_id = #{userId}
)
</when>
</choose>
<!-- 权限 总测评师和测评师都是本部门及以下 -->
and uu.dept_id IN ( SELECT d.dept_id FROM ums_user u LEFT JOIN ums_dept d on (d.dept_id = u.dept_id or FIND_IN_SET(u.dept_id,ancestors))
WHERE user_id = #{userId}
)
group by ee.id
order by ee.create_time desc
</select>

11
web_client/src/main.js

@ -30,6 +30,16 @@ Vue.prototype.VUE_APP_IMG_VAR = '@@@___';
Vue.prototype.$message = message;
router.beforeEach(async (to, from, next) => {
// 从 window.location.hash 中获取 token
const hash = window.location.hash;
const match = hash.match(/[?&]token=([^&]+)/);
if (match) {
const encodedToken = match[1];
const decodedToken = decodeURIComponent(encodedToken);
localStorage.setItem("anyringToken", decodedToken);
}
if (to.path === '/login') return next();
store.commit('user/setShowNav', to.meta.nav);
store.commit('user/setShowRoute', to.meta.route);
@ -49,6 +59,7 @@ router.beforeEach(async (to, from, next) => {
}
next();
} else {
if (!localStorage.getItem('anyringToken')) {
router.replace('/login');
return next();

2
web_client/vue.config.js

@ -38,7 +38,7 @@ module.exports = {
// target: "https://www.ylinno.com/cga/v2/api/client/",
// target: "http://113.45.159.249:59001/cga/v2/api/client/",
// target: "http://127.0.0.1:19331",
target: "http://192.168.1.136:19331",
target: "http://127.0.0.1:19331",
changeOrigin: true,
pathRewrite: {
["^" + settings.proxyUrl]: "",

Loading…
Cancel
Save