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; |
|||
|
|||
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.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.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 lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Propagation; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import javax.annotation.Resource; |
|||
|
|||
@Slf4j |
|||
@Service |
|||
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) |
|||
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 |
|||
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; |
|||
} |
|||
|
|||
@Override |
|||
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