参与者改造
This commit is contained in:
@@ -149,14 +149,14 @@
|
||||
<if test="dataScope != null and dataScope != ''">data_scope = #{dataScope},</if>
|
||||
<if test="menuCheckStrictly != null">
|
||||
<choose>
|
||||
<when test="menuCheckStrictly == true">1,</when>
|
||||
<otherwise>0,</otherwise>
|
||||
<when test="menuCheckStrictly == true">menu_check_strictly=1,</when>
|
||||
<otherwise>menu_check_strictly=0,</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<if test="deptCheckStrictly != null">
|
||||
<choose>
|
||||
<when test="deptCheckStrictly == true">1,</when>
|
||||
<otherwise>0,</otherwise>
|
||||
<when test="deptCheckStrictly == true">dept_check_strictly=1,</when>
|
||||
<otherwise>dept_check_strictly=0,</otherwise>
|
||||
</choose>
|
||||
</if>
|
||||
<if test="status != null and status != ''">status = #{status},</if>
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.openhis.web.basedatamanage.appservice;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.doctorstation.dto.UserAndPractitionerDto;
|
||||
import com.openhis.web.basedatamanage.dto.UserAndPractitionerDto;
|
||||
|
||||
/**
|
||||
* 参与者 应该服务类
|
||||
|
||||
@@ -27,11 +27,13 @@ import com.openhis.administration.service.IPractitionerRoleService;
|
||||
import com.openhis.administration.service.IPractitionerService;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.AccountStatus;
|
||||
import com.openhis.common.enums.PractitionerRoles;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
import com.openhis.web.basedatamanage.appservice.IPractitionerAppService;
|
||||
import com.openhis.web.basedatamanage.dto.PractitionerOrgAndLocationDto;
|
||||
import com.openhis.web.basedatamanage.dto.PractitionerRolesDto;
|
||||
import com.openhis.web.basedatamanage.dto.UserAndPractitionerDto;
|
||||
import com.openhis.web.basedatamanage.mapper.PractitionerAppAppMapper;
|
||||
import com.openhis.web.doctorstation.dto.UserAndPractitionerChildDto;
|
||||
import com.openhis.web.doctorstation.dto.UserAndPractitionerDto;
|
||||
|
||||
@Service
|
||||
public class PractitionerAppServiceImpl implements IPractitionerAppService {
|
||||
@@ -82,12 +84,12 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService {
|
||||
Long userId =
|
||||
iBizUserService.getOne(new LambdaQueryWrapper<BizUser>().eq(BizUser::getUserName, userName)).getUserId(); // 用户id
|
||||
// 新增 sys_user_role
|
||||
List<Long> roleIds = userAndPractitionerDto.getRoleIds();
|
||||
List<PractitionerRolesDto> practitionerRoleDtoList = userAndPractitionerDto.getPractitionerRolesDtoList();
|
||||
BizUserRole bizUserRole;
|
||||
for (Long roleId : roleIds) {
|
||||
for (PractitionerRolesDto practitionerRolesDto : practitionerRoleDtoList) {
|
||||
bizUserRole = new BizUserRole();
|
||||
bizUserRole.setUserId(userId);
|
||||
bizUserRole.setRoleId(roleId);
|
||||
bizUserRole.setRoleId(practitionerRolesDto.getRoleId());
|
||||
iBizUserRoleService.save(bizUserRole);
|
||||
}
|
||||
// 新增 adm_practitioner
|
||||
@@ -100,21 +102,43 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService {
|
||||
practitioner.setAddress(userAndPractitionerDto.getAddress()); // 地址
|
||||
practitioner.setYbNo(userAndPractitionerDto.getYbNo()); // 医保码
|
||||
practitioner.setUserId(userId); // 系统用户id
|
||||
practitioner.setOrgId(userAndPractitionerDto.getOrgId()); // 机构id
|
||||
// 责任科室
|
||||
List<PractitionerOrgAndLocationDto> responsibilityOrgDtoList =
|
||||
userAndPractitionerDto.getResponsibilityOrgDtoList();
|
||||
practitioner.setOrgId(responsibilityOrgDtoList.get(0).getOrgId()); // 机构id
|
||||
practitioner.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(nickName)); // 拼音码
|
||||
practitioner.setWbStr(ChineseConvertUtils.toWBFirstLetter(nickName)); // 五笔码
|
||||
iPractitionerService.save(practitioner);
|
||||
Long practitionerId = practitioner.getId();// 参与者id
|
||||
// 新增 adm_practitioner_role
|
||||
List<UserAndPractitionerChildDto> childList = userAndPractitionerDto.getChildList();
|
||||
PractitionerRole practitionerRole;
|
||||
for (UserAndPractitionerChildDto userAndPractitionerChildDto : childList) {
|
||||
// 1.责任科室
|
||||
for (PractitionerOrgAndLocationDto responsibilityOrgDto : responsibilityOrgDtoList) {
|
||||
practitionerRole = new PractitionerRole();
|
||||
practitionerRole.setName(nickName); // 姓名
|
||||
practitionerRole.setPractitionerId(practitionerId); // 参与者id
|
||||
practitionerRole.setRoleCode(userAndPractitionerChildDto.getRoleCode()); // 角色code
|
||||
practitionerRole.setOrgId(userAndPractitionerChildDto.getOrgId()); // 机构id
|
||||
practitionerRole.setLocationId(userAndPractitionerChildDto.getLocationId()); // 位置id
|
||||
practitionerRole.setOrgId(responsibilityOrgDto.getOrgId()); // 机构id
|
||||
iPractitionerRoleService.save(practitionerRole);
|
||||
}
|
||||
// 2.医生出诊科室
|
||||
List<PractitionerOrgAndLocationDto> doctorVisitOrgDtoList = userAndPractitionerDto.getDoctorVisitOrgDtoList();
|
||||
for (PractitionerOrgAndLocationDto doctorVisitOrgDto : doctorVisitOrgDtoList) {
|
||||
practitionerRole = new PractitionerRole();
|
||||
practitionerRole.setName(nickName); // 姓名
|
||||
practitionerRole.setPractitionerId(practitionerId); // 参与者id
|
||||
practitionerRole.setRoleCode(PractitionerRoles.DOCTOR.getCode());// 角色code
|
||||
practitionerRole.setOrgId(doctorVisitOrgDto.getOrgId()); // 机构id
|
||||
iPractitionerRoleService.save(practitionerRole);
|
||||
}
|
||||
// 3.管理库房
|
||||
List<PractitionerOrgAndLocationDto> manageLocationDtoList = userAndPractitionerDto.getManageLocationDtoList();
|
||||
for (PractitionerOrgAndLocationDto manageLocationDto : manageLocationDtoList) {
|
||||
practitionerRole = new PractitionerRole();
|
||||
practitionerRole.setName(nickName); // 姓名
|
||||
practitionerRole.setPractitionerId(practitionerId); // 参与者id
|
||||
practitionerRole.setRoleCode(PractitionerRoles.LOCATION_ADMIN.getCode()); // 角色code
|
||||
practitionerRole.setLocationId(manageLocationDto.getLocationId()); // 位置id
|
||||
practitionerRole.setOrgId(manageLocationDto.getOrgId()); // 机构id
|
||||
iPractitionerRoleService.save(practitionerRole);
|
||||
}
|
||||
|
||||
@@ -143,13 +167,34 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService {
|
||||
// 参与者id集合
|
||||
List<Long> practitionerIdList =
|
||||
records.stream().map(UserAndPractitionerDto::getPractitionerId).collect(Collectors.toList());
|
||||
// 子集合
|
||||
List<UserAndPractitionerChildDto> childList = practitionerAppAppMapper.getChildList(practitionerIdList);
|
||||
// 角色集合
|
||||
List<PractitionerRolesDto> practitionerRolesDtoList =
|
||||
practitionerAppAppMapper.getPractitionerRolesDtoList(practitionerIdList);
|
||||
// 科室和位置
|
||||
List<PractitionerOrgAndLocationDto> orgAndLocationDtoList =
|
||||
practitionerAppAppMapper.getOrgAndLocationDtoList(practitionerIdList);
|
||||
for (UserAndPractitionerDto record : records) {
|
||||
// 匹配子集合
|
||||
List<UserAndPractitionerChildDto> childDtoList = childList.stream()
|
||||
// 匹配角色
|
||||
List<PractitionerRolesDto> list1 = practitionerRolesDtoList.stream()
|
||||
.filter(e -> e.getPractitionerId().equals(record.getPractitionerId())).collect(Collectors.toList());
|
||||
record.setChildList(childDtoList);
|
||||
record.setPractitionerRolesDtoList(list1);
|
||||
// 匹配责任科室
|
||||
List<PractitionerOrgAndLocationDto> list2 = orgAndLocationDtoList.stream()
|
||||
.filter(e -> e.getPractitionerId().equals(record.getPractitionerId()) && "".equals(e.getRoleCode()))
|
||||
.collect(Collectors.toList());
|
||||
record.setResponsibilityOrgDtoList(list2);
|
||||
// 匹配医生出诊科室
|
||||
List<PractitionerOrgAndLocationDto> list3 =
|
||||
orgAndLocationDtoList.stream().filter(e -> e.getPractitionerId().equals(record.getPractitionerId())
|
||||
&& PractitionerRoles.DOCTOR.getCode().equals(e.getRoleCode())).collect(Collectors.toList());
|
||||
record.setDoctorVisitOrgDtoList(list3);
|
||||
// 匹配管理库房
|
||||
List<PractitionerOrgAndLocationDto> list4 =
|
||||
orgAndLocationDtoList.stream()
|
||||
.filter(e -> e.getPractitionerId().equals(record.getPractitionerId())
|
||||
&& PractitionerRoles.LOCATION_ADMIN.getCode().equals(e.getRoleCode()))
|
||||
.collect(Collectors.toList());
|
||||
record.setManageLocationDtoList(list4);
|
||||
}
|
||||
return userPractitionerPage;
|
||||
}
|
||||
@@ -179,12 +224,12 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService {
|
||||
iBizUserService.update(bizUser, new LambdaQueryWrapper<BizUser>().eq(BizUser::getUserId, userId));
|
||||
// 先删除,再新增 sys_user_role
|
||||
practitionerAppAppMapper.delUserRole(userId);
|
||||
List<Long> roleIds = userAndPractitionerDto.getRoleIds();
|
||||
List<PractitionerRolesDto> practitionerRoleDtoList = userAndPractitionerDto.getPractitionerRolesDtoList();
|
||||
BizUserRole bizUserRole;
|
||||
for (Long roleId : roleIds) {
|
||||
for (PractitionerRolesDto practitionerRolesDto : practitionerRoleDtoList) {
|
||||
bizUserRole = new BizUserRole();
|
||||
bizUserRole.setUserId(userId);
|
||||
bizUserRole.setRoleId(roleId);
|
||||
bizUserRole.setRoleId(practitionerRolesDto.getRoleId());
|
||||
iBizUserRoleService.save(bizUserRole);
|
||||
}
|
||||
// 编辑 adm_practitioner
|
||||
@@ -197,21 +242,43 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService {
|
||||
practitioner.setAddress(userAndPractitionerDto.getAddress()); // 地址
|
||||
practitioner.setYbNo(userAndPractitionerDto.getYbNo()); // 医保码
|
||||
practitioner.setUserId(userId); // 系统用户id
|
||||
practitioner.setOrgId(userAndPractitionerDto.getOrgId()); // 机构id
|
||||
// 责任科室
|
||||
List<PractitionerOrgAndLocationDto> responsibilityOrgDtoList =
|
||||
userAndPractitionerDto.getResponsibilityOrgDtoList();
|
||||
practitioner.setOrgId(responsibilityOrgDtoList.get(0).getOrgId()); // 机构id
|
||||
practitioner.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(nickName)); // 拼音码
|
||||
practitioner.setWbStr(ChineseConvertUtils.toWBFirstLetter(nickName)); // 五笔码
|
||||
iPractitionerService.updateById(practitioner);
|
||||
// 先删除,再新增 adm_practitioner_role
|
||||
practitionerAppAppMapper.delPractitionerRole(practitionerId);
|
||||
List<UserAndPractitionerChildDto> childList = userAndPractitionerDto.getChildList();
|
||||
PractitionerRole practitionerRole;
|
||||
for (UserAndPractitionerChildDto userAndPractitionerChildDto : childList) {
|
||||
// 1.责任科室
|
||||
for (PractitionerOrgAndLocationDto responsibilityOrgDto : responsibilityOrgDtoList) {
|
||||
practitionerRole = new PractitionerRole();
|
||||
practitionerRole.setName(nickName); // 姓名
|
||||
practitionerRole.setPractitionerId(practitionerId); // 参与者id
|
||||
practitionerRole.setRoleCode(userAndPractitionerChildDto.getRoleCode()); // 角色code
|
||||
practitionerRole.setOrgId(userAndPractitionerChildDto.getOrgId()); // 机构id
|
||||
practitionerRole.setLocationId(userAndPractitionerChildDto.getLocationId()); // 位置id
|
||||
practitionerRole.setOrgId(responsibilityOrgDto.getOrgId()); // 机构id
|
||||
iPractitionerRoleService.save(practitionerRole);
|
||||
}
|
||||
// 2.医生出诊科室
|
||||
List<PractitionerOrgAndLocationDto> doctorVisitOrgDtoList = userAndPractitionerDto.getDoctorVisitOrgDtoList();
|
||||
for (PractitionerOrgAndLocationDto doctorVisitOrgDto : doctorVisitOrgDtoList) {
|
||||
practitionerRole = new PractitionerRole();
|
||||
practitionerRole.setName(nickName); // 姓名
|
||||
practitionerRole.setPractitionerId(practitionerId); // 参与者id
|
||||
practitionerRole.setRoleCode(PractitionerRoles.DOCTOR.getCode());// 角色code
|
||||
practitionerRole.setOrgId(doctorVisitOrgDto.getOrgId()); // 机构id
|
||||
iPractitionerRoleService.save(practitionerRole);
|
||||
}
|
||||
// 3.管理库房
|
||||
List<PractitionerOrgAndLocationDto> manageLocationDtoList = userAndPractitionerDto.getManageLocationDtoList();
|
||||
for (PractitionerOrgAndLocationDto manageLocationDto : manageLocationDtoList) {
|
||||
practitionerRole = new PractitionerRole();
|
||||
practitionerRole.setName(nickName); // 姓名
|
||||
practitionerRole.setPractitionerId(practitionerId); // 参与者id
|
||||
practitionerRole.setRoleCode(PractitionerRoles.LOCATION_ADMIN.getCode()); // 角色code
|
||||
practitionerRole.setLocationId(manageLocationDto.getLocationId()); // 位置id
|
||||
practitionerRole.setOrgId(manageLocationDto.getOrgId()); // 机构id
|
||||
iPractitionerRoleService.save(practitionerRole);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.basedatamanage.appservice.IPractitionerAppService;
|
||||
import com.openhis.web.doctorstation.dto.UserAndPractitionerDto;
|
||||
import com.openhis.web.basedatamanage.dto.UserAndPractitionerDto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.openhis.web.doctorstation.dto;
|
||||
package com.openhis.web.basedatamanage.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
@@ -8,19 +8,11 @@ import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 用户 及 参与者 子dto
|
||||
* 参与者机构和位置 dto
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class UserAndPractitionerChildDto {
|
||||
|
||||
/**
|
||||
* 机构id
|
||||
*/
|
||||
@Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long orgId;
|
||||
private String orgId_dictText;
|
||||
public class PractitionerOrgAndLocationDto {
|
||||
|
||||
/**
|
||||
* 位置id
|
||||
@@ -36,14 +28,12 @@ public class UserAndPractitionerChildDto {
|
||||
private String roleCode;
|
||||
|
||||
/**
|
||||
* 角色id
|
||||
* 机构id
|
||||
*/
|
||||
private Long roleId;
|
||||
|
||||
/**
|
||||
* 角色name
|
||||
*/
|
||||
private String roleName;
|
||||
@Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long orgId;
|
||||
private String orgId_dictText;
|
||||
|
||||
/**
|
||||
* 参与者id
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.openhis.web.basedatamanage.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 参与者角色 dto
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class PractitionerRolesDto {
|
||||
|
||||
/**
|
||||
* 角色id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long roleId;
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
* 参与者id
|
||||
*/
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long practitionerId;
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.openhis.web.doctorstation.dto;
|
||||
package com.openhis.web.basedatamanage.dto;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
@@ -103,13 +103,23 @@ public class UserAndPractitionerDto {
|
||||
private String orgId_dictText;
|
||||
|
||||
/**
|
||||
* 角色id集合
|
||||
* 责任科室
|
||||
*/
|
||||
private List<Long> roleIds;
|
||||
private List<PractitionerOrgAndLocationDto> responsibilityOrgDtoList;
|
||||
|
||||
/**
|
||||
* 子集合
|
||||
* 参与者角色集合
|
||||
*/
|
||||
private List<UserAndPractitionerChildDto> childList;
|
||||
private List<PractitionerRolesDto> practitionerRolesDtoList;
|
||||
|
||||
/**
|
||||
* 医生出诊科室集合
|
||||
*/
|
||||
private List<PractitionerOrgAndLocationDto> doctorVisitOrgDtoList;
|
||||
|
||||
/**
|
||||
* 管理库房集合
|
||||
*/
|
||||
private List<PractitionerOrgAndLocationDto> manageLocationDtoList;
|
||||
|
||||
}
|
||||
@@ -9,8 +9,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.web.doctorstation.dto.UserAndPractitionerChildDto;
|
||||
import com.openhis.web.doctorstation.dto.UserAndPractitionerDto;
|
||||
import com.openhis.web.basedatamanage.dto.PractitionerOrgAndLocationDto;
|
||||
import com.openhis.web.basedatamanage.dto.PractitionerRolesDto;
|
||||
import com.openhis.web.basedatamanage.dto.UserAndPractitionerDto;
|
||||
|
||||
/**
|
||||
* 参与者 应用Mapper
|
||||
@@ -29,12 +30,21 @@ public interface PractitionerAppAppMapper {
|
||||
@Param(Constants.WRAPPER) QueryWrapper<UserAndPractitionerDto> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询子集合
|
||||
* 查询参与者的角色信息
|
||||
*
|
||||
* @param practitionerIdList 参与者id集合
|
||||
* @return 子集合
|
||||
* @return 参与者的角色信息
|
||||
*/
|
||||
List<UserAndPractitionerChildDto> getChildList(@Param("practitionerIdList") List<Long> practitionerIdList);
|
||||
List<PractitionerRolesDto> getPractitionerRolesDtoList(@Param("practitionerIdList") List<Long> practitionerIdList);
|
||||
|
||||
/**
|
||||
* 查询科室和位置集合
|
||||
*
|
||||
* @param practitionerIdList 参与者id集合
|
||||
* @return 科室和位置集合
|
||||
*/
|
||||
List<PractitionerOrgAndLocationDto>
|
||||
getOrgAndLocationDtoList(@Param("practitionerIdList") List<Long> practitionerIdList);
|
||||
|
||||
/**
|
||||
* 物理删除系统用户与角色的关系
|
||||
|
||||
@@ -23,7 +23,7 @@ import com.openhis.administration.service.*;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.enums.PractitionerRole;
|
||||
import com.openhis.common.enums.PractitionerRoles;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.common.utils.HisPageUtils;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
@@ -142,7 +142,7 @@ public class OutpatientRegistrationAppServiceImpl implements IOutpatientRegistra
|
||||
new HashSet<>(Arrays.asList("name", "py_str", "wb_str")), null);
|
||||
IPage<PractitionerMetadata> practitionerMetadataPage =
|
||||
outpatientRegistrationAppMapper.getPractitionerMetadataPage(new Page<>(pageNo, pageSize), locationId,
|
||||
PractitionerRole.DOCTOR.getCode(), queryWrapper);
|
||||
PractitionerRoles.DOCTOR.getCode(), queryWrapper);
|
||||
practitionerMetadataPage.getRecords().forEach(e -> {
|
||||
// 性别
|
||||
e.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, e.getGenderEnum()));
|
||||
|
||||
@@ -98,70 +98,114 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp
|
||||
|
||||
// 费用定价子表信息
|
||||
List<AdvicePriceDto> childCharge = doctorStationAdviceAppMapper
|
||||
.getChildCharge(ConditionCode.UNIT_PRODUCT_BATCH_NUM.getInfo(), chargeItemDefinitionIdList);
|
||||
.getChildCharge(ConditionCode.UNIT_PRODUCT_BATCH_NUM.getCode(), chargeItemDefinitionIdList);
|
||||
// 费用定价主表信息
|
||||
List<AdvicePriceDto> mainCharge = doctorStationAdviceAppMapper.getMainCharge(chargeItemDefinitionIdList);
|
||||
// 药品和耗材
|
||||
List<AdviceBaseDto> medicationAndDeviceList = adviceBaseDtoList.stream()
|
||||
.filter(e -> CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(e.getAdviceTableName())
|
||||
|| CommonConstants.TableName.ADM_DEVICE_DEFINITION.equals(e.getAdviceTableName()))
|
||||
.collect(Collectors.toList());
|
||||
// 药品和耗材-赋值
|
||||
|
||||
String unitCode = ""; // 包装单位
|
||||
String minUnitCode; // 小单位
|
||||
Long chargeItemDefinitionId; // 费用定价主表ID
|
||||
for (AdviceBaseDto baseDto : medicationAndDeviceList) {
|
||||
// 每一条医嘱的库存集合信息
|
||||
List<AdviceInventoryDto> inventoryList =
|
||||
adviceInventory.stream().filter(e -> baseDto.getAdviceDefinitionId().equals(e.getItemId())
|
||||
&& baseDto.getAdviceTableName().equals(e.getItemTable())).collect(Collectors.toList());
|
||||
// 库存信息
|
||||
baseDto.setInventoryList(inventoryList);
|
||||
|
||||
unitCode = baseDto.getUnitCode();
|
||||
minUnitCode = baseDto.getMinUnitCode();
|
||||
chargeItemDefinitionId = baseDto.getChargeItemDefinitionId();
|
||||
|
||||
List<AdvicePriceDto> priceDtoList = new ArrayList<>();
|
||||
// 库存信息里取 单位,产品批号 去匹配价格
|
||||
for (AdviceInventoryDto adviceInventoryDto : inventoryList) {
|
||||
Long finalChargeItemDefinitionId = chargeItemDefinitionId;
|
||||
String finalUnitCode = unitCode;
|
||||
String finalMinUnitCode = minUnitCode;
|
||||
// 匹配包装单位
|
||||
List<AdvicePriceDto> advicePrice1 = childCharge.stream()
|
||||
.filter(e -> e.getDefinitionId().equals(finalChargeItemDefinitionId) && e.getConditionValue()
|
||||
.equals(String.format(CommonConstants.Common.COMMA_FORMAT, finalUnitCode,
|
||||
adviceInventoryDto.getLotNumber())))
|
||||
.peek(e -> e.setUnitCode(finalUnitCode)) // 设置 unitCode
|
||||
.collect(Collectors.toList());
|
||||
// 匹配最小单位
|
||||
List<AdvicePriceDto> advicePrice2 = childCharge.stream()
|
||||
.filter(e -> e.getDefinitionId().equals(finalChargeItemDefinitionId) && e.getConditionValue()
|
||||
.equals(String.format(CommonConstants.Common.COMMA_FORMAT, finalMinUnitCode,
|
||||
adviceInventoryDto.getLotNumber())))
|
||||
.peek(e -> e.setUnitCode(finalMinUnitCode)) // 设置 unitCode
|
||||
.collect(Collectors.toList());
|
||||
priceDtoList.addAll(advicePrice1);
|
||||
priceDtoList.addAll(advicePrice2);
|
||||
for (AdviceBaseDto baseDto : adviceBaseDtoList) {
|
||||
// 药品和耗材
|
||||
if (CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(baseDto.getAdviceTableName())
|
||||
|| CommonConstants.TableName.ADM_DEVICE_DEFINITION.equals(baseDto.getAdviceTableName())) {
|
||||
// 每一条医嘱的库存集合信息 , 包装单位库存前端计算
|
||||
List<AdviceInventoryDto> inventoryList =
|
||||
adviceInventory.stream().filter(e -> baseDto.getAdviceDefinitionId().equals(e.getItemId())
|
||||
&& baseDto.getAdviceTableName().equals(e.getItemTable())).collect(Collectors.toList());
|
||||
// 库存信息
|
||||
baseDto.setInventoryList(inventoryList);
|
||||
unitCode = baseDto.getUnitCode();
|
||||
chargeItemDefinitionId = baseDto.getChargeItemDefinitionId();
|
||||
List<AdvicePriceDto> priceDtoList = new ArrayList<>();
|
||||
// 库存信息里取 命中条件 去匹配价格
|
||||
for (AdviceInventoryDto adviceInventoryDto : inventoryList) {
|
||||
Long finalChargeItemDefinitionId = chargeItemDefinitionId;
|
||||
String finalUnitCode = unitCode;
|
||||
// 匹配包装单位
|
||||
List<AdvicePriceDto> advicePrice1 = childCharge.stream()
|
||||
.filter(e -> e.getDefinitionId().equals(finalChargeItemDefinitionId) && e.getConditionValue()
|
||||
.equals(String.format(CommonConstants.Common.COMMA_FORMAT, finalUnitCode,
|
||||
adviceInventoryDto.getLotNumber())))
|
||||
.peek(e -> e.setUnitCode(finalUnitCode)) // 设置 unitCode
|
||||
.collect(Collectors.toList());
|
||||
priceDtoList.addAll(advicePrice1);
|
||||
}
|
||||
}
|
||||
// 诊疗活动
|
||||
else {
|
||||
List<AdvicePriceDto> priceList =
|
||||
mainCharge.stream().filter(e -> baseDto.getChargeItemDefinitionId().equals(e.getDefinitionId()))
|
||||
.collect(Collectors.toList());
|
||||
// 价格信息
|
||||
baseDto.setPriceList(priceList);
|
||||
// 活动类型
|
||||
baseDto
|
||||
.setActivityType_enumText(EnumUtils.getInfoByValue(ActivityType.class, baseDto.getActivityType()));
|
||||
}
|
||||
// 价格信息
|
||||
baseDto.setPriceList(priceDtoList);
|
||||
}
|
||||
// 诊疗
|
||||
List<AdviceBaseDto> activityList = adviceBaseDtoList.stream()
|
||||
.filter(e -> CommonConstants.TableName.WOR_ACTIVITY_DEFINITION.equals(e.getAdviceTableName()))
|
||||
.collect(Collectors.toList());
|
||||
// 诊疗-赋值
|
||||
for (AdviceBaseDto baseDto : activityList) {
|
||||
// 活动类型
|
||||
baseDto.setActivityType_enumText(EnumUtils.getInfoByValue(ActivityType.class, baseDto.getActivityType()));
|
||||
List<AdvicePriceDto> priceList =
|
||||
mainCharge.stream().filter(e -> baseDto.getChargeItemDefinitionId().equals(e.getDefinitionId()))
|
||||
.collect(Collectors.toList());
|
||||
// 价格信息
|
||||
baseDto.setPriceList(priceList);
|
||||
}
|
||||
|
||||
// 下面的注释不要删除 2025.03.27
|
||||
// // 药品和耗材
|
||||
// List<AdviceBaseDto> medicationAndDeviceList = adviceBaseDtoList.stream()
|
||||
// .filter(e -> CommonConstants.TableName.MED_MEDICATION_DEFINITION.equals(e.getAdviceTableName())
|
||||
// || CommonConstants.TableName.ADM_DEVICE_DEFINITION.equals(e.getAdviceTableName()))
|
||||
// .collect(Collectors.toList());
|
||||
// // 药品和耗材-赋值
|
||||
// String unitCode = ""; // 包装单位
|
||||
// String minUnitCode; // 小单位
|
||||
// Long chargeItemDefinitionId; // 费用定价主表ID
|
||||
// for (AdviceBaseDto baseDto : medicationAndDeviceList) {
|
||||
// // 每一条医嘱的库存集合信息
|
||||
// List<AdviceInventoryDto> inventoryList =
|
||||
// adviceInventory.stream().filter(e -> baseDto.getAdviceDefinitionId().equals(e.getItemId())
|
||||
// && baseDto.getAdviceTableName().equals(e.getItemTable())).collect(Collectors.toList());
|
||||
// // 库存信息
|
||||
// baseDto.setInventoryList(inventoryList);
|
||||
//
|
||||
// unitCode = baseDto.getUnitCode();
|
||||
// minUnitCode = baseDto.getMinUnitCode();
|
||||
// chargeItemDefinitionId = baseDto.getChargeItemDefinitionId();
|
||||
//
|
||||
// List<AdvicePriceDto> priceDtoList = new ArrayList<>();
|
||||
// // 库存信息里取 单位,产品批号 去匹配价格
|
||||
// for (AdviceInventoryDto adviceInventoryDto : inventoryList) {
|
||||
// Long finalChargeItemDefinitionId = chargeItemDefinitionId;
|
||||
// String finalUnitCode = unitCode;
|
||||
// String finalMinUnitCode = minUnitCode;
|
||||
// // 匹配包装单位
|
||||
// List<AdvicePriceDto> advicePrice1 = childCharge.stream()
|
||||
// .filter(e -> e.getDefinitionId().equals(finalChargeItemDefinitionId) && e.getConditionValue()
|
||||
// .equals(String.format(CommonConstants.Common.COMMA_FORMAT, finalUnitCode,
|
||||
// adviceInventoryDto.getLotNumber())))
|
||||
// .peek(e -> e.setUnitCode(finalUnitCode)) // 设置 unitCode
|
||||
// .collect(Collectors.toList());
|
||||
// // 匹配最小单位
|
||||
// List<AdvicePriceDto> advicePrice2 = childCharge.stream()
|
||||
// .filter(e -> e.getDefinitionId().equals(finalChargeItemDefinitionId) && e.getConditionValue()
|
||||
// .equals(String.format(CommonConstants.Common.COMMA_FORMAT, finalMinUnitCode,
|
||||
// adviceInventoryDto.getLotNumber())))
|
||||
// .peek(e -> e.setUnitCode(finalMinUnitCode)) // 设置 unitCode
|
||||
// .collect(Collectors.toList());
|
||||
// priceDtoList.addAll(advicePrice1);
|
||||
// priceDtoList.addAll(advicePrice2);
|
||||
// }
|
||||
// // 价格信息
|
||||
// baseDto.setPriceList(priceDtoList);
|
||||
// }
|
||||
// // 诊疗
|
||||
// List<AdviceBaseDto> activityList = adviceBaseDtoList.stream()
|
||||
// .filter(e -> CommonConstants.TableName.WOR_ACTIVITY_DEFINITION.equals(e.getAdviceTableName()))
|
||||
// .collect(Collectors.toList());
|
||||
// // 诊疗-赋值
|
||||
// for (AdviceBaseDto baseDto : activityList) {
|
||||
// // 活动类型
|
||||
// baseDto.setActivityType_enumText(EnumUtils.getInfoByValue(ActivityType.class, baseDto.getActivityType()));
|
||||
// List<AdvicePriceDto> priceList =
|
||||
// mainCharge.stream().filter(e -> baseDto.getChargeItemDefinitionId().equals(e.getDefinitionId()))
|
||||
// .collect(Collectors.toList());
|
||||
// // 价格信息
|
||||
// baseDto.setPriceList(priceList);
|
||||
// }
|
||||
return adviceBaseInfo;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.openhis.web.doctorstation.dto;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
@@ -24,6 +25,12 @@ public class AdviceBaseDto {
|
||||
*/
|
||||
private String categoryCode;
|
||||
|
||||
/** 拆零比 */
|
||||
private BigDecimal partPercent;
|
||||
|
||||
/** 拆分属性 */
|
||||
private Integer partAttributeEnum;
|
||||
|
||||
/** 医嘱定义ID */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long adviceDefinitionId;
|
||||
|
||||
@@ -27,6 +27,12 @@ public class AdviceSaveDto {
|
||||
*/
|
||||
private String categoryCode;
|
||||
|
||||
/** 拆零比 */
|
||||
private BigDecimal partPercent;
|
||||
|
||||
/** 拆分属性 */
|
||||
private Integer partAttributeEnum;
|
||||
|
||||
/** 执行次数 */
|
||||
private Integer executeNum; // 当医嘱类型为药品时,选填
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.openhis.web.basedatamanage.mapper.PractitionerAppAppMapper">
|
||||
|
||||
<select id="getUserPractitionerPage" resultType="com.openhis.web.doctorstation.dto.UserAndPractitionerDto">
|
||||
<select id="getUserPractitionerPage" resultType="com.openhis.web.basedatamanage.dto.UserAndPractitionerDto">
|
||||
SELECT T3.tenant_id,
|
||||
T3.user_id,
|
||||
T3.practitioner_id,
|
||||
@@ -45,18 +45,33 @@
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
|
||||
<select id="getChildList" resultType="com.openhis.web.doctorstation.dto.UserAndPractitionerChildDto">
|
||||
<select id="getPractitionerRolesDtoList" resultType="com.openhis.web.basedatamanage.dto.PractitionerRolesDto">
|
||||
SELECT
|
||||
sr.role_id,
|
||||
sr.role_name,
|
||||
ap.ID AS practitioner_id
|
||||
FROM
|
||||
sys_role sr
|
||||
JOIN sys_user_role sur ON sr.role_id = sur.role_id
|
||||
JOIN adm_practitioner ap ON sur.user_id = ap.user_id
|
||||
WHERE
|
||||
ap.delete_flag = '0'
|
||||
<if test="practitionerIdList != null and !practitionerIdList.isEmpty()">
|
||||
AND ap.ID IN
|
||||
<foreach collection="practitionerIdList" item="itemId" open="(" separator="," close=")">
|
||||
#{itemId}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getOrgAndLocationDtoList" resultType="com.openhis.web.basedatamanage.dto.PractitionerOrgAndLocationDto">
|
||||
SELECT
|
||||
t1.practitioner_id,
|
||||
t1.org_id,
|
||||
t1.location_id,
|
||||
t1.role_code,
|
||||
t2.role_id,
|
||||
t2.role_name
|
||||
t1.org_id,
|
||||
t1.location_id
|
||||
FROM
|
||||
adm_practitioner_role AS T1
|
||||
LEFT JOIN sys_role AS T2 ON t2.role_key = t1.role_code
|
||||
AND t2.del_flag = '0'
|
||||
WHERE
|
||||
t1.delete_flag = '0'
|
||||
<if test="practitionerIdList != null and !practitionerIdList.isEmpty()">
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
SELECT abi.tenant_id,
|
||||
abi.advice_type,
|
||||
abi.category_code,
|
||||
abi.part_percent,
|
||||
abi.advice_definition_id,
|
||||
abi.advice_name,
|
||||
abi.advice_bus_no,
|
||||
@@ -33,6 +34,7 @@
|
||||
SELECT T1.tenant_id,
|
||||
1 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
T1.part_percent AS part_percent,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
@@ -69,6 +71,7 @@
|
||||
SELECT T1.tenant_id,
|
||||
2 AS advice_type,
|
||||
T1.category_code AS category_code,
|
||||
T1.part_percent AS part_percent,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
@@ -104,6 +107,7 @@
|
||||
SELECT T1.tenant_id,
|
||||
3 AS advice_type,
|
||||
'' AS category_code,
|
||||
1 AS part_percent,
|
||||
T1.ID AS advice_definition_id,
|
||||
T1.NAME AS advice_name,
|
||||
T1.bus_no AS advice_bus_no,
|
||||
@@ -137,8 +141,6 @@
|
||||
SELECT
|
||||
T1.item_id,
|
||||
T1.item_table,
|
||||
T1.base_quantity,
|
||||
T1.base_unit_code,
|
||||
T1.min_quantity,
|
||||
T1.min_unit_code,
|
||||
T1.lot_number,
|
||||
|
||||
@@ -10,13 +10,15 @@ import lombok.Getter;
|
||||
*/
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum PractitionerRole implements HisEnumInterface {
|
||||
public enum PractitionerRoles implements HisEnumInterface {
|
||||
|
||||
DOCTOR(1, "doctor", "医生"),
|
||||
|
||||
NURSE(2, "nurse", "护士"),
|
||||
|
||||
PHARMACIST(3, "pharmacist", "药师");
|
||||
PHARMACIST(3, "pharmacist", "药师"),
|
||||
|
||||
LOCATION_ADMIN(4, "locationAdmin", "库房管理员");
|
||||
|
||||
@EnumValue
|
||||
private final Integer value;
|
||||
Reference in New Issue
Block a user