10 changed files with 242 additions and 50 deletions
@ -1,47 +0,0 @@ |
|||||
package com.ccsens.carbasics.bean.vo; |
|
||||
|
|
||||
import io.swagger.annotations.ApiModel; |
|
||||
import io.swagger.annotations.ApiModelProperty; |
|
||||
import lombok.Data; |
|
||||
|
|
||||
/** |
|
||||
* @description: 平车 |
|
||||
* @author: whj |
|
||||
* @time: 2021/7/27 16:53 |
|
||||
*/ |
|
||||
public class CarVo { |
|
||||
|
|
||||
@Data |
|
||||
@ApiModel("查询医院平车") |
|
||||
public static class Car{ |
|
||||
@ApiModelProperty("平车ID") |
|
||||
public Long id; |
|
||||
@ApiModelProperty("平车编号") |
|
||||
public String serial; |
|
||||
@ApiModelProperty("急救ID") |
|
||||
public Long aidId; |
|
||||
@ApiModelProperty("患者名字") |
|
||||
public String patientName; |
|
||||
@ApiModelProperty("绑定平车急救的项目ID") |
|
||||
public Long projectId; |
|
||||
} |
|
||||
|
|
||||
@ApiModel("绑定平车信息--响应") |
|
||||
@Data |
|
||||
public static class QueryBind { |
|
||||
@ApiModelProperty("患者平车ID") |
|
||||
private Long patientCarId; |
|
||||
@ApiModelProperty("患者id") |
|
||||
private Long patientId; |
|
||||
@ApiModelProperty("平车id") |
|
||||
private Long carId; |
|
||||
@ApiModelProperty("平车编号") |
|
||||
private String carSerial; |
|
||||
@ApiModelProperty("开始时间") |
|
||||
private Long startTime; |
|
||||
@ApiModelProperty("结束时间") |
|
||||
private Long endTime; |
|
||||
@ApiModelProperty("患者姓名") |
|
||||
private String name; |
|
||||
} |
|
||||
} |
|
@ -0,0 +1,33 @@ |
|||||
|
package com.ccsens.carbasics.bean.vo; |
||||
|
|
||||
|
import io.swagger.annotations.ApiModel; |
||||
|
import io.swagger.annotations.ApiModelProperty; |
||||
|
import lombok.Data; |
||||
|
|
||||
|
/** |
||||
|
* @description: |
||||
|
* @author: whj |
||||
|
* @time: 2021/8/31 9:38 |
||||
|
*/ |
||||
|
public class OrganizationVo { |
||||
|
|
||||
|
@Data |
||||
|
@ApiModel("机构基本信息") |
||||
|
public static class Basic{ |
||||
|
@ApiModelProperty("医院ID") |
||||
|
private Long organizationId; |
||||
|
} |
||||
|
|
||||
|
@Data |
||||
|
@ApiModel("成员部门和职位信息") |
||||
|
public static class MemberPosition{ |
||||
|
@ApiModelProperty("id") |
||||
|
private Long id; |
||||
|
@ApiModelProperty("姓名") |
||||
|
private String name; |
||||
|
@ApiModelProperty("职位code") |
||||
|
private String positionCode; |
||||
|
@ApiModelProperty("科室code") |
||||
|
private String departmentCode; |
||||
|
} |
||||
|
} |
@ -0,0 +1,21 @@ |
|||||
|
package com.ccsens.carbasics.persist.dao; |
||||
|
|
||||
|
import com.ccsens.carbasics.bean.vo.OrganizationVo; |
||||
|
import com.ccsens.carbasics.persist.mapper.OrganizationMapper; |
||||
|
import org.apache.ibatis.annotations.Param; |
||||
|
|
||||
|
/** |
||||
|
* @description: 机构相关 |
||||
|
* @author: whj |
||||
|
* @time: 2021/8/31 9:32 |
||||
|
*/ |
||||
|
public interface OrganizationDao extends OrganizationMapper { |
||||
|
|
||||
|
/** |
||||
|
* 查询用户和入口项目是否是同一个医院,相同返回医院、用户信息,否则,返回null |
||||
|
* @param projectId 项目ID |
||||
|
* @param userId 用户ID |
||||
|
* @return 医院信息 |
||||
|
*/ |
||||
|
OrganizationVo.Basic getOrganization(@Param("projectId") Long projectId, @Param("userId") Long userId); |
||||
|
} |
@ -0,0 +1,20 @@ |
|||||
|
package com.ccsens.carbasics.persist.dao; |
||||
|
|
||||
|
import com.ccsens.carbasics.bean.vo.OrganizationVo; |
||||
|
import com.ccsens.carbasics.persist.mapper.OrganizationMemberMapper; |
||||
|
import org.apache.ibatis.annotations.Param; |
||||
|
import org.springframework.stereotype.Repository; |
||||
|
|
||||
|
/** |
||||
|
* @author 逗 |
||||
|
*/ |
||||
|
@Repository |
||||
|
public interface OrganizationMemberDao extends OrganizationMemberMapper { |
||||
|
/** |
||||
|
* 通过userId查找成员的科室和部门信息 |
||||
|
* @param userId |
||||
|
* @return |
||||
|
*/ |
||||
|
OrganizationVo.MemberPosition getMemberPosition(@Param("userId") Long userId); |
||||
|
|
||||
|
} |
@ -1,25 +1,120 @@ |
|||||
package com.ccsens.carbasics.service; |
package com.ccsens.carbasics.service; |
||||
|
|
||||
|
import cn.hutool.core.lang.Snowflake; |
||||
|
import cn.hutool.core.util.IdcardUtil; |
||||
|
import cn.hutool.core.util.ObjectUtil; |
||||
|
import cn.hutool.core.util.StrUtil; |
||||
import com.ccsens.carbasics.bean.dto.PatientDto; |
import com.ccsens.carbasics.bean.dto.PatientDto; |
||||
|
import com.ccsens.carbasics.bean.po.FirstAid; |
||||
|
import com.ccsens.carbasics.bean.po.FirstAidLog; |
||||
|
import com.ccsens.carbasics.bean.po.FirstAidMember; |
||||
|
import com.ccsens.carbasics.bean.vo.OrganizationVo; |
||||
import com.ccsens.carbasics.bean.vo.PatientVo; |
import com.ccsens.carbasics.bean.vo.PatientVo; |
||||
|
import com.ccsens.carbasics.persist.dao.FirstAidDao; |
||||
|
import com.ccsens.carbasics.persist.dao.OrganizationDao; |
||||
|
import com.ccsens.carbasics.persist.dao.OrganizationMemberDao; |
||||
|
import com.ccsens.carbasics.persist.mapper.FirstAidLogMapper; |
||||
|
import com.ccsens.carbasics.persist.mapper.FirstAidMemberMapper; |
||||
|
import com.ccsens.carbasics.util.Constant; |
||||
|
import com.ccsens.carbasics.util.DefaultCodeError; |
||||
|
import com.ccsens.util.exception.BaseException; |
||||
import com.github.pagehelper.PageInfo; |
import com.github.pagehelper.PageInfo; |
||||
import lombok.extern.slf4j.Slf4j; |
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.stereotype.Service; |
import org.springframework.stereotype.Service; |
||||
import org.springframework.transaction.annotation.Propagation; |
import org.springframework.transaction.annotation.Propagation; |
||||
import org.springframework.transaction.annotation.Transactional; |
import org.springframework.transaction.annotation.Transactional; |
||||
|
|
||||
|
import javax.annotation.Resource; |
||||
|
|
||||
@Slf4j |
@Slf4j |
||||
@Service |
@Service |
||||
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
||||
public class FirstAidService implements IFirstAidService{ |
public class FirstAidService implements IFirstAidService{ |
||||
|
|
||||
|
@Resource |
||||
|
private OrganizationDao organizationDao; |
||||
|
@Resource |
||||
|
private OrganizationMemberDao organizationMemberDao; |
||||
|
@Resource |
||||
|
private Snowflake snowflake; |
||||
|
@Resource |
||||
|
private FirstAidDao firstAidDao; |
||||
|
@Resource |
||||
|
private FirstAidMemberMapper firstAidMemberMapper; |
||||
|
@Resource |
||||
|
private FirstAidLogMapper firstAidLogMapper; |
||||
|
|
||||
@Override |
@Override |
||||
public PageInfo<PatientVo.QueryPatientList> querySelf(PatientDto.QueryPatient param, Long userId) { |
public PageInfo<PatientVo.QueryPatientList> querySelf(PatientDto.QueryPatient param, Long userId) { |
||||
|
// 判断有无权限添加
|
||||
|
OrganizationVo.Basic basic = organizationDao.getOrganization(param.getProjectId(), userId); |
||||
|
if (basic == null) { |
||||
|
throw new BaseException(DefaultCodeError.NO_DATA_MODIFY_PRIVILEGE); |
||||
|
} |
||||
return null; |
return null; |
||||
} |
} |
||||
|
|
||||
@Override |
@Override |
||||
public void savePatient(PatientDto.SavePatient param, Long userId) { |
public void savePatient(PatientDto.SavePatient param, Long userId) { |
||||
|
//查找当前用户的职位和科室
|
||||
|
OrganizationVo.MemberPosition memberPosition = organizationMemberDao.getMemberPosition(userId); |
||||
|
log.info("当前用户的科室职位信息:{}",memberPosition); |
||||
|
if(ObjectUtil.isNull(memberPosition)){ |
||||
|
//为空则提示没有权限
|
||||
|
throw new BaseException(DefaultCodeError.NO_POWER); |
||||
|
} |
||||
|
//职位
|
||||
|
Byte position = null; |
||||
|
//是否是急诊的护士
|
||||
|
if(Constant.Department.JI_ZHEN.equalsIgnoreCase(memberPosition.getDepartmentCode()) && Constant.Position.HU_SHI.equalsIgnoreCase(memberPosition.getPositionCode())){ |
||||
|
position = 0; |
||||
|
} |
||||
|
//是否是神内的医生
|
||||
|
if(Constant.Department.SHEN_NEI.equalsIgnoreCase(memberPosition.getDepartmentCode()) && Constant.Position.YI_SHENG.equalsIgnoreCase(memberPosition.getPositionCode())){ |
||||
|
position = 1; |
||||
|
} |
||||
|
if(ObjectUtil.isNull(position)){ |
||||
|
//不是急诊护士或者不是神内的医生,提示没有权限
|
||||
|
throw new BaseException(DefaultCodeError.NO_POWER); |
||||
|
} |
||||
|
//创建病例
|
||||
|
FirstAid firstAid = new FirstAid(); |
||||
|
firstAid.setId(snowflake.nextId()); |
||||
|
firstAid.setName(param.getName()); |
||||
|
firstAid.setGender(param.getGender()); |
||||
|
firstAid.setNation(param.getNation()); |
||||
|
firstAid.setIdcard(param.getIdcard()); |
||||
|
if(StrUtil.isNotEmpty(param.getIdcard())){ |
||||
|
firstAid.setAge(IdcardUtil.getAgeByIdCard(param.getIdcard())); |
||||
|
} |
||||
|
firstAidDao.insertSelective(firstAid); |
||||
|
//添加急救成员
|
||||
|
FirstAidMember firstAidMember = new FirstAidMember(); |
||||
|
firstAidMember.setId(snowflake.nextId()); |
||||
|
firstAidMember.setCreateUserId(userId); |
||||
|
if(position == 1){ |
||||
|
firstAidMember.setRecordUserId(userId); |
||||
|
} |
||||
|
firstAidMemberMapper.insertSelective(firstAidMember); |
||||
|
//添加急救日志表(创建信息)
|
||||
|
FirstAidLog firstAidLog = new FirstAidLog(); |
||||
|
firstAidLog.setId(snowflake.nextId()); |
||||
|
firstAidLog.setFirstAidId(firstAid.getId()); |
||||
|
firstAidLog.setOperationTime(System.currentTimeMillis()); |
||||
|
firstAidLog.setOperationUserId(userId); |
||||
|
firstAidLog.setOperationType((byte) 0); |
||||
|
firstAidLog.setOperationRole(position); |
||||
|
firstAidLogMapper.insertSelective(firstAidLog); |
||||
|
//如果是医生,再添加一条加入的日志
|
||||
|
if(position == 1){ |
||||
|
FirstAidLog firstAidLogJoin = new FirstAidLog(); |
||||
|
firstAidLogJoin.setId(snowflake.nextId()); |
||||
|
firstAidLogJoin.setFirstAidId(firstAid.getId()); |
||||
|
firstAidLogJoin.setOperationTime(System.currentTimeMillis()); |
||||
|
firstAidLogJoin.setOperationUserId(userId); |
||||
|
firstAidLogJoin.setOperationType((byte) 7); |
||||
|
firstAidLogJoin.setOperationRole(position); |
||||
|
firstAidLogMapper.insertSelective(firstAidLog); |
||||
|
} |
||||
} |
} |
||||
} |
} |
||||
|
@ -0,0 +1,26 @@ |
|||||
|
<?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.ccsens.carbasics.persist.dao.OrganizationDao"> |
||||
|
|
||||
|
<select id="getOrganization" resultType="com.ccsens.carbasics.bean.vo.OrganizationVo$Basic"> |
||||
|
SELECT |
||||
|
t1.organization_id |
||||
|
FROM |
||||
|
( SELECT organization_id FROM t_organization_project WHERE project_id = #{projectId} AND rec_status = 0 ) t1, |
||||
|
( |
||||
|
SELECT |
||||
|
d.organization_id |
||||
|
FROM |
||||
|
t_organization_member m, |
||||
|
t_organization_department d |
||||
|
WHERE |
||||
|
m.department_id = d.id |
||||
|
AND m.user_id = #{userId} |
||||
|
AND m.rec_status = 0 |
||||
|
AND d.rec_status = 0 |
||||
|
limit 1 |
||||
|
) t2 |
||||
|
WHERE |
||||
|
t1.organization_id = t2.organization_id |
||||
|
</select> |
||||
|
</mapper> |
@ -0,0 +1,23 @@ |
|||||
|
<?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.ccsens.carbasics.persist.dao.OrganizationMemberDao"> |
||||
|
|
||||
|
<select id="getMemberPosition" resultType="com.ccsens.carbasics.bean.vo.OrganizationVo$MemberPosition"> |
||||
|
SELECT |
||||
|
m.id, |
||||
|
m.`name`, |
||||
|
p.`code` as positionCode, |
||||
|
d.`code` as departmentCode |
||||
|
FROM |
||||
|
t_organization_member m, |
||||
|
t_organization_position p, |
||||
|
t_organization_department d |
||||
|
WHERE |
||||
|
m.user_id = #{userId} |
||||
|
and m.position_id = p.id |
||||
|
and m.department_id = d.id |
||||
|
and m.rec_status = 0 |
||||
|
and p.rec_status = 0 |
||||
|
and d.rec_status = 0 |
||||
|
</select> |
||||
|
</mapper> |
Loading…
Reference in new issue