From 98039f1cc4a378d176decb25cd031b19ac0c84bf Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Wed, 26 Mar 2025 13:43:17 +0800 Subject: [PATCH 01/13] =?UTF-8?q?=E5=8F=82=E4=B8=8E=E8=80=85=E9=87=8D?= =?UTF-8?q?=E5=86=99=20-=20=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../appservice/IPractitionerAppService.java | 14 +++ .../impl/PractitionerAppServiceImpl.java | 119 ++++++++++++++++-- .../controller/PractitionerController.java | 25 +++- .../mapper/PractitionerAppAppMapper.java | 28 +++++ .../dto/UserAndPractitionerChildDto.java | 54 ++++++++ .../dto/UserAndPractitionerDto.java | 35 ++++-- .../basedatamanage/PractitionerAppMapper.xml | 62 +++++++++ .../administration/domain/BizUser.java | 4 +- 8 files changed, 314 insertions(+), 27 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/UserAndPractitionerChildDto.java diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IPractitionerAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IPractitionerAppService.java index b88504f3..fe255a7e 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IPractitionerAppService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IPractitionerAppService.java @@ -1,5 +1,6 @@ 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; @@ -10,9 +11,22 @@ public interface IPractitionerAppService { /** * 新增用户及参与者 + * * @param userAndPractitionerDto 用户及参与者dto * @return 结果 */ R saveUserPractitioner(UserAndPractitionerDto userAndPractitionerDto); + /** + * 查询用户及参与者 + * + * @param userAndPractitionerDto 查询条件 + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 用户及参与者 + */ + IPage getUserPractitionerPage(UserAndPractitionerDto userAndPractitionerDto, + String searchKey, Integer pageNo, Integer pageSize); + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java index 5e25389d..06104195 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java @@ -1,18 +1,36 @@ package com.openhis.web.basedatamanage.appservice.impl; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.stream.Collectors; + import javax.annotation.Resource; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.core.common.core.domain.R; +import com.core.common.utils.ChineseConvertUtils; +import com.core.common.utils.MessageUtils; +import com.core.common.utils.SecurityUtils; +import com.openhis.administration.domain.BizUser; +import com.openhis.administration.domain.BizUserRole; +import com.openhis.administration.domain.Practitioner; +import com.openhis.administration.domain.PractitionerRole; import com.openhis.administration.service.IBizUserRoleService; import com.openhis.administration.service.IBizUserService; import com.openhis.administration.service.IPractitionerRoleService; import com.openhis.administration.service.IPractitionerService; -import org.springframework.stereotype.Service; - -import com.core.common.core.domain.R; -import com.core.common.utils.MessageUtils; import com.openhis.common.constant.PromptMsgConstant; +import com.openhis.common.enums.AccountStatus; +import com.openhis.common.utils.HisQueryUtils; import com.openhis.web.basedatamanage.appservice.IPractitionerAppService; import com.openhis.web.basedatamanage.mapper.PractitionerAppAppMapper; +import com.openhis.web.doctorstation.dto.UserAndPractitionerChildDto; import com.openhis.web.doctorstation.dto.UserAndPractitionerDto; @Service @@ -33,26 +51,105 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService { @Resource IPractitionerRoleService iPractitionerRoleService; - /** * 新增用户及参与者 - * + * * @param userAndPractitionerDto 用户及参与者dto * @return 结果 */ @Override public R saveUserPractitioner(UserAndPractitionerDto userAndPractitionerDto) { - // 数据有效性校验 : 账号唯一性 - + String userName = userAndPractitionerDto.getUserName(); + String nickName = userAndPractitionerDto.getNickName(); + String phonenumber = userAndPractitionerDto.getPhonenumber(); + String sex = userAndPractitionerDto.getSex(); + // 账号唯一性 + long count = iBizUserService.count(new LambdaQueryWrapper().eq(BizUser::getUserName, userName)); + if (count > 0L) { + return R.fail(null, "账号已存在"); + } // 新增 sys_user - + BizUser bizUser = new BizUser(); + bizUser.setUserName(userName); // 账号 + bizUser.setNickName(nickName); // 昵称 + bizUser.setEmail(userAndPractitionerDto.getEmail());// 邮箱 + bizUser.setPhonenumber(phonenumber); // 电话 + bizUser.setSex(sex); // 性别 + bizUser.setPassword(SecurityUtils.encryptPassword(userAndPractitionerDto.getPassword())); // 密码 + bizUser.setStatus(userAndPractitionerDto.getStatus()); // 状态 + bizUser.setRemark(userAndPractitionerDto.getRemark()); // 备注 + iBizUserService.save(bizUser); + Long userId = bizUser.getUserId(); // 用户id // 新增 sys_user_role - + List roleIds = userAndPractitionerDto.getRoleIds(); + BizUserRole bizUserRole; + for (Long roleId : roleIds) { + bizUserRole = new BizUserRole(); + bizUserRole.setUserId(userId); + bizUserRole.setRoleId(roleId); + iBizUserRoleService.save(bizUserRole); + } // 新增 adm_practitioner - + Practitioner practitioner = new Practitioner(); + practitioner.setActiveFlag(AccountStatus.ACTIVE.getValue()); // 活动标记 + practitioner.setName(nickName); // 姓名 + practitioner.setGenderEnum(Integer.parseInt(sex)); // 性别 + practitioner.setBirthDate(userAndPractitionerDto.getBirthDate()); // 出生日期 + practitioner.setPhone(phonenumber); // 电话 + practitioner.setAddress(userAndPractitionerDto.getAddress()); // 地址 + practitioner.setYbNo(userAndPractitionerDto.getYbNo()); // 医保码 + practitioner.setUserId(userId); // 系统用户id + practitioner.setOrgId(userAndPractitionerDto.getOrgId()); // 机构id + practitioner.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(nickName)); // 拼音码 + practitioner.setWbStr(ChineseConvertUtils.toWBFirstLetter(nickName)); // 五笔码 + iPractitionerService.save(practitioner); + Long practitionerId = practitioner.getId();// 参与者id // 新增 adm_practitioner_role + List childList = userAndPractitionerDto.getChildList(); + PractitionerRole practitionerRole; + for (UserAndPractitionerChildDto userAndPractitionerChildDto : childList) { + 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 + iPractitionerRoleService.save(practitionerRole); + } return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"人员信息"})); } + /** + * 查询用户及参与者 + * + * @param userAndPractitionerDto 查询条件 + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 用户及参与者 + */ + @Override + public IPage getUserPractitionerPage(UserAndPractitionerDto userAndPractitionerDto, + String searchKey, Integer pageNo, Integer pageSize) { + // 构建查询条件 + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(userAndPractitionerDto, + searchKey, new HashSet<>(Arrays.asList("user_name", "nick_name", "py_str", "wb_str")), null); + IPage userPractitionerPage = + practitionerAppAppMapper.getUserPractitionerPage(new Page<>(pageNo, pageSize), queryWrapper); + List records = userPractitionerPage.getRecords(); + // 参与者id集合 + List practitionerIdList = + records.stream().map(UserAndPractitionerDto::getPractitionerId).collect(Collectors.toList()); + // 子集合 + List childList = practitionerAppAppMapper.getChildList(practitionerIdList); + for (UserAndPractitionerDto record : records) { + // 匹配子集合 + List childDtoList = + childList.stream().filter(e -> e.getPractitionerId().equals(record.getPractitionerId())).collect(Collectors.toList()); + record.setChildList(childDtoList); + } + return userPractitionerPage; + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerController.java index 08673c57..ac4f0668 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerController.java @@ -3,10 +3,7 @@ */ package com.openhis.web.basedatamanage.controller; -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 com.core.common.core.domain.R; import com.openhis.web.basedatamanage.appservice.IPractitionerAppService; @@ -32,9 +29,27 @@ public class PractitionerController { * @param userAndPractitionerDto 用户及参与者dto * @return 结果 */ - @PostMapping(value = "/save-user-practitioner") + @PostMapping(value = "/user-practitioner") public R saveUserPractitioner(@RequestBody UserAndPractitionerDto userAndPractitionerDto) { return practitionerAppService.saveUserPractitioner(userAndPractitionerDto); } + /** + * 查询用户及参与者 + * + * @param userAndPractitionerDto 查询条件 + * @param searchKey 模糊查询关键字 + * @param pageNo 当前页 + * @param pageSize 每页多少条 + * @return 用户及参与者 + */ + @GetMapping(value = "/user-practitioner-page") + public R getUserPractitionerPage(UserAndPractitionerDto userAndPractitionerDto, + @RequestParam(value = "searchKey", defaultValue = "") String searchKey, + @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { + return R + .ok(practitionerAppService.getUserPractitionerPage(userAndPractitionerDto, searchKey, pageNo, pageSize)); + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/mapper/PractitionerAppAppMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/mapper/PractitionerAppAppMapper.java index 9e50ba06..7a07c05e 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/mapper/PractitionerAppAppMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/mapper/PractitionerAppAppMapper.java @@ -1,11 +1,39 @@ package com.openhis.web.basedatamanage.mapper; +import java.util.List; + +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +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; + /** * 参与者 应用Mapper */ @Repository public interface PractitionerAppAppMapper { + /** + * 查询用户及参与者 + * + * @param page 分页参数 + * @param queryWrapper 查询条件 + * @return 用户及参与者 + */ + IPage getUserPractitionerPage(@Param("page") Page page, + @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + + /** + * 查询子集合 + * + * @param practitionerIdList 参与者id集合 + * @return 子集合 + */ + List getChildList(@Param("practitionerIdList") List practitionerIdList); + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/UserAndPractitionerChildDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/UserAndPractitionerChildDto.java new file mode 100644 index 00000000..f3586e8f --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/UserAndPractitionerChildDto.java @@ -0,0 +1,54 @@ +package com.openhis.web.doctorstation.dto; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.openhis.common.annotation.Dict; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 用户 及 参与者 子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; + + /** + * 位置id + */ + @Dict(dictTable = "adm_location", dictCode = "id", dictText = "name") + @JsonSerialize(using = ToStringSerializer.class) + private Long locationId; + private String locationId_dictText; + + /** + * 角色code + */ + private String roleCode; + + /** + * 角色id + */ + private Long roleId; + + /** + * 角色name + */ + private String roleName; + + /** + * 参与者id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long practitionerId; + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/UserAndPractitionerDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/UserAndPractitionerDto.java index 4ae24281..4a6e4718 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/UserAndPractitionerDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/UserAndPractitionerDto.java @@ -5,6 +5,7 @@ import java.util.List; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.openhis.common.annotation.Dict; import lombok.Data; import lombok.experimental.Accessors; @@ -16,6 +17,18 @@ import lombok.experimental.Accessors; @Accessors(chain = true) public class UserAndPractitionerDto { + /** + * 用户id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long userId; + + /** + * 参与者id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long practitionerId; + /** * 账号 */ @@ -26,6 +39,12 @@ public class UserAndPractitionerDto { */ private String nickName; + /** 拼音码 */ + private String pyStr; + + /** 五笔码 */ + private String wbStr; + /** * 邮箱 */ @@ -39,7 +58,9 @@ public class UserAndPractitionerDto { /** * 性别 */ + @Dict(dictCode = "sys_user_sex") private String sex; + private String sex_dictText; /** * 密码 @@ -49,7 +70,9 @@ public class UserAndPractitionerDto { /** * 状态(0正常 1停用) */ + @Dict(dictCode = "sys_normal_disable") private String status; + private String status_dictText; /** * 备注 @@ -74,14 +97,10 @@ public class UserAndPractitionerDto { /** * 机构id */ + @Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name") @JsonSerialize(using = ToStringSerializer.class) private Long orgId; - - /** - * 位置id - */ - @JsonSerialize(using = ToStringSerializer.class) - private Long locationId; + private String orgId_dictText; /** * 角色id集合 @@ -89,8 +108,8 @@ public class UserAndPractitionerDto { private List roleIds; /** - * 角色code集合 + * 子集合 */ - private List roleCodes; + private List childList; } diff --git a/openhis-server/openhis-application/src/main/resources/mapper/basedatamanage/PractitionerAppMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/basedatamanage/PractitionerAppMapper.xml index f5b8f393..338d2807 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/basedatamanage/PractitionerAppMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/basedatamanage/PractitionerAppMapper.xml @@ -4,5 +4,67 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + \ No newline at end of file diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/BizUser.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/BizUser.java index 3c830920..9980d0fa 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/BizUser.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/domain/BizUser.java @@ -2,8 +2,6 @@ package com.openhis.administration.domain; import java.util.Date; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.core.common.core.domain.HisBaseEntity; @@ -24,7 +22,7 @@ import lombok.experimental.Accessors; public class BizUser extends HisBaseEntity { /** 用户ID */ - @TableId(type = IdType.ASSIGN_ID) + // @TableId(type = IdType.ASSIGN_ID) private Long userId; /** 部门ID */ From 5b77a40ee9bf1340121b8f7df8db0cbed0ac9ae5 Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Wed, 26 Mar 2025 14:23:56 +0800 Subject: [PATCH 02/13] =?UTF-8?q?=E7=9B=AE=E5=BD=95=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DeviceManageAppServiceImpl.java | 28 +++++-- .../impl/ItemDefinitionServiceImpl.java | 6 +- .../impl/MedicationManageAppServiceImpl.java | 19 ++++- .../MedicationManageController.java | 2 +- .../datadictionary/dto/DeviceManageDto.java | 11 +++ .../dto/DiagnosisTreatmentDto.java | 5 ++ .../dto/MedicationManageDto.java | 50 +++++------ .../dto/MedicationManageUpDto.java | 23 +++++ .../mapper/DeviceManageMapper.java | 30 +++++++ .../datadictionary/DeviceManageMapper.xml | 84 +++++++++++++++++++ .../MedicationManageSearchMapper.xml | 6 +- .../impl/ChargeItemDefDetailServiceImpl.java | 1 + .../openhis/medication/domain/Medication.java | 6 ++ 13 files changed, 232 insertions(+), 39 deletions(-) create mode 100644 openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/mapper/DeviceManageMapper.java create mode 100644 openhis-server/openhis-application/src/main/resources/mapper/datadictionary/DeviceManageMapper.xml diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java index ebd2f777..a7752e1a 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DeviceManageAppServiceImpl.java @@ -10,6 +10,7 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.stream.Collectors; import java.util.stream.Stream; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; @@ -21,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestParam; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.core.common.core.domain.R; import com.core.common.utils.MessageUtils; @@ -30,6 +32,7 @@ import com.openhis.administration.domain.Organization; import com.openhis.administration.mapper.DeviceDefinitionMapper; import com.openhis.administration.service.IDeviceDefinitionService; import com.openhis.administration.service.IOrganizationService; +import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.enums.DeviceCategory; import com.openhis.common.enums.OrganizationType; @@ -43,6 +46,8 @@ import com.openhis.web.datadictionary.dto.DeviceManageDto; import com.openhis.web.datadictionary.dto.DeviceManageInitDto; import com.openhis.web.datadictionary.dto.DeviceManageSelParam; import com.openhis.web.datadictionary.dto.DeviceManageUpDto; +import com.openhis.web.datadictionary.mapper.DeviceManageMapper; +import com.openhis.web.doctorstation.dto.AdviceBaseDto; /** * 器材目录 impl @@ -62,6 +67,9 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { @Autowired private IOrganizationService organizationService; + @Resource + DeviceManageMapper deviceManageMapper; + /** * 器材目录初始化 * @@ -106,15 +114,23 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { +// // 构建查询条件 +// QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam, searchKey, +// new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request); +// // 设置排序 +// queryWrapper.orderByAsc("bus_no"); +// +// // 分页查询 +// Page deviceManagePage = +// HisPageUtils.selectPage(deviceDefinitionMapper, queryWrapper, pageNo, pageSize, DeviceManageDto.class); + // 构建查询条件 - QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam, searchKey, + QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(deviceManageSelParam, searchKey, new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request); - // 设置排序 - queryWrapper.orderByAsc("bus_no"); // 分页查询 - Page deviceManagePage = - HisPageUtils.selectPage(deviceDefinitionMapper, queryWrapper, pageNo, pageSize, DeviceManageDto.class); + IPage deviceManagePage = + deviceManageMapper.getDevicePage(new Page<>(pageNo, pageSize), queryWrapper); deviceManagePage.getRecords().forEach(e -> { // 高值器材标志枚举类回显赋值 @@ -125,7 +141,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService { e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag())); // 过敏标记枚举类回显赋值 e.setAllergenFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getAllergenFlag())); - //器材分类 + // 器材分类 e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(DeviceCategory.class, e.getCategoryEnum())); }); diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/ItemDefinitionServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/ItemDefinitionServiceImpl.java index fde1002d..ef6a274b 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/ItemDefinitionServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/ItemDefinitionServiceImpl.java @@ -64,7 +64,7 @@ public class ItemDefinitionServiceImpl implements IItemDefinitionService { .setConditionCode( medicationManageUpDto.getDoseUnitCode_dictText() + "," + medicationManageUpDto.getLotNumber()) // 购入价 - .setAmount(medicationManageUpDto.getPurchasePrice()).setPriority(0); + .setAmount(medicationManageUpDto.getPurchasePrice()); ChargeItemDefDetail chargeItemDefDetail2 = new ChargeItemDefDetail(); chargeItemDefDetail1.setDefinitionId(chargeItemDefinition.getId()) @@ -72,7 +72,7 @@ public class ItemDefinitionServiceImpl implements IItemDefinitionService { .setConditionCode( medicationManageUpDto.getDoseUnitCode_dictText() + "," + medicationManageUpDto.getLotNumber()) // 零售价 - .setAmount(medicationManageUpDto.getRetailPrice()).setPriority(1); + .setAmount(medicationManageUpDto.getRetailPrice()); shargeItemDefDetails.add(chargeItemDefDetail2); @@ -82,7 +82,7 @@ public class ItemDefinitionServiceImpl implements IItemDefinitionService { .setConditionCode( medicationManageUpDto.getDoseUnitCode_dictText() + "," + medicationManageUpDto.getLotNumber()) // 最高零售价 - .setAmount(medicationManageUpDto.getMaximumRetailPrice()).setPriority(2); + .setAmount(medicationManageUpDto.getMaximumRetailPrice()); shargeItemDefDetails.add(chargeItemDefDetail3); diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java index 50dede8c..9e219021 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java @@ -164,10 +164,23 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum())); // 权限限制 e.setRestrictedEnum_enumText(EnumUtils.getInfoByValue(PermissionLimit.class, e.getRestrictedEnum())); - // 活动标记 - // e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag())); + // 是否为活性 + e.setActiveFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getActiveFlag())); + // 医保是否对码 + e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag())); + //是否皮试 + e.setSkinTestFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getSkinTestFlag()));; + //是否为注射药物 + e.setInjectFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getInjectFlag())); + //是否限制使用 + e.setRestrictedFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getRestrictedFlag())); + //儿童用药标志 + e.setChildrenFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getChildrenFlag())); // 适用范围 - // e.setDomainEnum_enumText(EnumUtils.getInfoByValue(ApplicableScope.class, e.getDomainEnum())); + e.setDomainEnum_enumText(EnumUtils.getInfoByValue(ApplicableScope.class, e.getDomainEnum())); +// // 活动标记 +// e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag())); + }); // 返回【药品录列表DTO】分页 diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/MedicationManageController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/MedicationManageController.java index d232cfac..1c3dac5c 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/MedicationManageController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/MedicationManageController.java @@ -70,7 +70,7 @@ public class MedicationManageController { * @return */ @GetMapping("/information-one") - public R getMedicationOne(@PathVariable("id") Long id) { + public R getMedicationOne(@RequestParam Long id) { return medicationManageAppService.getMedicationOne(id); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageDto.java index b9212b2d..6895680c 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageDto.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import com.openhis.common.annotation.Dict; import com.openhis.common.enums.DeviceCategory; import com.openhis.common.enums.PublicationStatus; @@ -84,8 +85,14 @@ public class DeviceManageDto { /** 生产厂家 */ private Long manufacturerId; + /** 生产厂商文本 */ + private Long manufacturerText; + /** 供应商 */ + @JsonSerialize(using = ToStringSerializer.class) + @Dict(dictTable = "adm_supplier",dictCode = "id",dictText = "name") private Long supplyId; + private String supplyId_dictText; /** 说明 */ private String description; @@ -105,4 +112,8 @@ public class DeviceManageDto { /** 过敏标记 */ private Integer allergenFlag; private String allergenFlag_enumText; + + /** 售价 */ + private BigDecimal price; + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiagnosisTreatmentDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiagnosisTreatmentDto.java index 154f3ad6..34d09f69 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiagnosisTreatmentDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiagnosisTreatmentDto.java @@ -9,6 +9,7 @@ import lombok.Data; import lombok.experimental.Accessors; import javax.validation.constraints.NotNull; +import java.math.BigDecimal; /** * 诊疗目录分页检索 @@ -80,4 +81,8 @@ public class DiagnosisTreatmentDto { /** 所在位置 */ @JsonSerialize(using = ToStringSerializer.class) private Long locationId; + + /** 售价 */ + private BigDecimal price; + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java index 4e9011be..f3e3befa 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java @@ -6,7 +6,6 @@ import java.util.Date; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.openhis.common.annotation.Dict; -import com.openhis.common.enums.PublicationStatus; import lombok.Data; import lombok.experimental.Accessors; @@ -34,13 +33,13 @@ public class MedicationManageDto { private String statusEnum_enumText; /** 所属科室 */ - @Dict(dictTable = "adm_organization",dictCode = "id",dictText = "name") + @Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name") @JsonSerialize(using = ToStringSerializer.class) private Long orgId; private String orgId_dictText; /** 所在位置 */ - @Dict(dictTable = "adm_location",dictCode = "id",dictText = "name") + @Dict(dictTable = "adm_location", dictCode = "id", dictText = "name") @JsonSerialize(using = ToStringSerializer.class) private Long locationId; private String locationId_dictText; @@ -83,7 +82,9 @@ public class MedicationManageDto { private BigDecimal dose; /** 剂量单位 */ + @Dict(dictCode = "unit_code") private String doseUnitCode; + private String doseUnitCode_dictText; /** 单次最大剂量 */ private BigDecimal maxUnit; @@ -95,7 +96,9 @@ public class MedicationManageDto { private BigDecimal usageLimit; /** DDD值 */ + @Dict(dictCode = "ddd_code") private String dddCode; + private String dddCode_dictText; /** DDD单位 */ @Dict(dictCode = "unit_code") @@ -149,9 +152,6 @@ public class MedicationManageDto { /** 所含耗材 */ private String comprisedText; - /** 成分 */ - private String ingredient; - /** 拆零比 */ private BigDecimal partPercent; @@ -162,9 +162,8 @@ public class MedicationManageDto { private String approvalNumber; /** 医保是否对码 */ - @Dict(dictCode = "sys_yes_no") private Integer ybMatchFlag; - private String ybMatchFlag_dictText; + private String ybMatchFlag_enumText;; /** 医保编码 */ private String ybNo; @@ -173,14 +172,12 @@ public class MedicationManageDto { private String pharmacologyCategoryCode; /** 是否皮试 */ - @Dict(dictCode = "sys_yes_no") private Integer skinTestFlag; - private String skinTestFlag_dictText; + private String skinTestFlag_enumText; /** 是否为注射药物 */ - @Dict(dictCode = "sys_yes_no") private Integer injectFlag; - private String injectFlag_dictText; + private String injectFlag_enumText; /** 生产厂家 */ @JsonSerialize(using = ToStringSerializer.class) @@ -188,22 +185,20 @@ public class MedicationManageDto { /** 供应商 */ @JsonSerialize(using = ToStringSerializer.class) - @Dict(dictTable = "adm_supplier",dictCode = "id",dictText = "name") + @Dict(dictTable = "adm_supplier", dictCode = "id", dictText = "name") private Long supplyId; private String supplyId_dictText; /** 是否限制使用 */ - @Dict(dictCode = "sys_yes_no") private Integer restrictedFlag; - private String restrictedFlag_dictText; + private String restrictedFlag_enumText; /** 限制使用范围 */ private String restrictedScope; /** 儿童用药标志 */ - @Dict(dictCode = "sys_yes_no") private Integer childrenFlag; - private String childrenFlag_dictText; + private String childrenFlag_enumText; /** 产品特性 */ private Integer characteristic; @@ -212,31 +207,27 @@ public class MedicationManageDto { private String nationalDrugCode; /** 拆分属性 */ - private String partAttribute; + private Integer partAttributeEnum; + private String partAttributeEnum_enumText; /** 抗生素分类 */ - @Dict(dictCode = "antibiotic_type_code") private String antibioticCode; private String antibioticCode_dictText; - /** 权限限制 */ private Integer restrictedEnum; private String restrictedEnum_enumText; /** 是否自制 */ - @Dict(dictCode = "sys_yes_no") private Integer selfFlag; private String selfFlag_dictText; /** 是否抗生素 */ - @Dict(dictCode = "sys_yes_no") private Integer antibioticFlag; private String antibioticFlag_dictText; /** 基药标识 */ - @Dict(dictCode = "sys_yes_no") private Integer basicFlag; private String basicFlag_dictText; @@ -244,15 +235,24 @@ public class MedicationManageDto { private String manufacturerName; /** 常规单位 */ + @Dict(dictCode = "unit_code") private String baseUnitCode; + private String baseUnitCode_dictText; /** 当前库存数量(常规单位) */ - @Dict(dictCode = "unit_code") private String baseQuantity; - private String baseQuantity_dictText; /** 当前库存数量(最小单位数量) */ private String minQuantity; + /** 售价 */ + private BigDecimal price; + + /** 单次最小用药频次 */ + private String minRateCode; + + /** 单次最大用药频次 */ + private String maxRateCode; + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageUpDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageUpDto.java index 83b017df..6c605f4e 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageUpDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageUpDto.java @@ -191,4 +191,27 @@ public class MedicationManageUpDto { /** 最小费用 */ private String minimalFee; + /** 单次最小用药频次 */ + private String minRateCode; + + /** 单次最大用药频次 */ + private String maxRateCode; + + /** 药品状态 */ + private Integer statusEnum; + + /** 拆分属性 */ + private String partAttribute; + + /** 贯标国家编码 */ + private String nationalDrugCode; + + /** 是否抗生素 */ + private Integer antibioticFlag; + + /** 是否自制 */ + private Integer selfFlag; + + /** 系统类别???? */ + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/mapper/DeviceManageMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/mapper/DeviceManageMapper.java new file mode 100644 index 00000000..39a3d652 --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/mapper/DeviceManageMapper.java @@ -0,0 +1,30 @@ +package com.openhis.web.datadictionary.mapper; + +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.datadictionary.dto.DeviceManageDto; +import com.openhis.web.outpatientmanage.dto.OutpatientInfusionPatientDto; +import org.apache.ibatis.annotations.Param; + +/** + * 器材目录 + * + * @author Wuser + * @date 2025/3/26 + */ +public interface DeviceManageMapper { + + /** + * 器材目录分页查询 + * + * @param page 分页参数 + * @param queryWrapper 查询条件 + * @return 器材记录 + */ + IPage getDevicePage( + @Param("page") Page page, + @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + +} diff --git a/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/DeviceManageMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/DeviceManageMapper.xml new file mode 100644 index 00000000..f74ad716 --- /dev/null +++ b/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/DeviceManageMapper.xml @@ -0,0 +1,84 @@ + + + + + \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml index 0546ef98..2984dc48 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml @@ -7,6 +7,7 @@ T2.medication_def_id, T2.status_enum, T2.org_id, + T2.location_id, T2.dose_form_code, T2.total_volume, T2.ingredient_item, @@ -63,13 +64,16 @@ T4.base_unit_code, T4.base_quantity, T4.min_unit_code, - T4.min_quantity + T4.min_quantity, + T5.price FROM med_medication_definition T1 LEFT JOIN med_medication T2 ON T1.id = T2.medication_def_id LEFT JOIN adm_supplier T3 ON T1.manufacturer_id = T3.id LEFT JOIN wor_inventory_item T4 ON T1.id = T4.item_id + LEFT JOIN adm_charge_item_definition T5 ON T2.medication_def_id = T5.instance_id T1.delete_flag = '0' + AND T5.instance_table = 'med_medication_definition' AND ( T1.name LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR T1.name_en LIKE CONCAT(CONCAT('%', #{searchKey}),'%') OR diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemDefDetailServiceImpl.java b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemDefDetailServiceImpl.java index 67aa037a..6da90303 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemDefDetailServiceImpl.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/administration/service/impl/ChargeItemDefDetailServiceImpl.java @@ -31,6 +31,7 @@ public class ChargeItemDefDetailServiceImpl extends ServiceImpl 0; } } else { diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/domain/Medication.java b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/domain/Medication.java index df26fa0d..7d2bd5af 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/domain/Medication.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/domain/Medication.java @@ -92,4 +92,10 @@ public class Medication extends HisBaseEntity { /** DDD单位 */ private String dddUnitCode; + /** 单次最小用药频次 */ + private String minRateCode; + + /** 单次最大用药频次 */ + private String maxRateCode; + } \ No newline at end of file From 07cd057d200e02b7d71b52bbf29943a1fb7cf822 Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Wed, 26 Mar 2025 14:33:02 +0800 Subject: [PATCH 03/13] up --- .../mapper/datadictionary/MedicationManageSearchMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml index 2984dc48..760e0fa3 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/datadictionary/MedicationManageSearchMapper.xml @@ -53,7 +53,7 @@ T1.children_flag, T1.characteristic, T1.national_drug_code, - T1.part_attribute, + T1.part_attribute_enum, T1.antibiotic_code, T1.restricted_enum, T1.self_flag, From d2e57dd8766b121ccc7a326ddd72716038cb9a88 Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Wed, 26 Mar 2025 14:45:04 +0800 Subject: [PATCH 04/13] UP --- .../appservice/impl/MedicationManageAppServiceImpl.java | 8 ++++++++ .../web/datadictionary/dto/MedicationManageDto.java | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java index 9e219021..cd6488c2 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/MedicationManageAppServiceImpl.java @@ -178,6 +178,14 @@ public class MedicationManageAppServiceImpl implements IMedicationManageAppServi e.setChildrenFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getChildrenFlag())); // 适用范围 e.setDomainEnum_enumText(EnumUtils.getInfoByValue(ApplicableScope.class, e.getDomainEnum())); + + // 是否自制 + e.setSelfFlag_enumText(EnumUtils.getInfoByValue(ApplicableScope.class, e.getSelfFlag())); + // 是否抗生素 + e.setAntibioticFlag_enumText(EnumUtils.getInfoByValue(ApplicableScope.class, e.getAntibioticFlag())); + // 基药标识 + e.setBasicFlag_enumText(EnumUtils.getInfoByValue(ApplicableScope.class, e.getBasicFlag())); + // // 活动标记 // e.setActiveFlag_enumText(EnumUtils.getInfoByValue(AccountStatus.class, e.getActiveFlag())); diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java index f3e3befa..8b27075a 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java @@ -221,15 +221,15 @@ public class MedicationManageDto { /** 是否自制 */ private Integer selfFlag; - private String selfFlag_dictText; + private String selfFlag_enumText; /** 是否抗生素 */ private Integer antibioticFlag; - private String antibioticFlag_dictText; + private String antibioticFlag_enumText; /** 基药标识 */ private Integer basicFlag; - private String basicFlag_dictText; + private String basicFlag_enumText; /** 生产厂家名称 */ private String manufacturerName; From 9ba2bdb1e6d8df18d044bffad7f08e01794e7216 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Wed, 26 Mar 2025 15:24:21 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E5=8F=82=E4=B8=8E=E8=80=85=E4=B8=8E?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=94=A8=E6=88=B7=E6=95=B4=E5=90=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../appservice/IPractitionerAppService.java | 16 ++++ .../impl/PractitionerAppServiceImpl.java | 90 ++++++++++++++++++- .../controller/PractitionerController.java | 22 +++++ .../mapper/PractitionerAppAppMapper.java | 14 +++ .../basedatamanage/PractitionerAppMapper.xml | 12 +++ 5 files changed, 151 insertions(+), 3 deletions(-) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IPractitionerAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IPractitionerAppService.java index fe255a7e..b3d27871 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IPractitionerAppService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/IPractitionerAppService.java @@ -29,4 +29,20 @@ public interface IPractitionerAppService { IPage getUserPractitionerPage(UserAndPractitionerDto userAndPractitionerDto, String searchKey, Integer pageNo, Integer pageSize); + /** + * 修改用户及参与者 + * + * @param userAndPractitionerDto 用户及参与者dto + * @return 结果 + */ + R editUserPractitioner(UserAndPractitionerDto userAndPractitionerDto); + + /** + * 删除用户及参与者 ; admin不允许删除 + * + * @param userId 系统用户id + * @return 结果 + */ + R delUserPractitioner(Long userId); + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java index 06104195..e3fcd178 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java @@ -117,7 +117,7 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService { iPractitionerRoleService.save(practitionerRole); } - return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"人员信息"})); + return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"人员信息"})); } /** @@ -145,11 +145,95 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService { List childList = practitionerAppAppMapper.getChildList(practitionerIdList); for (UserAndPractitionerDto record : records) { // 匹配子集合 - List childDtoList = - childList.stream().filter(e -> e.getPractitionerId().equals(record.getPractitionerId())).collect(Collectors.toList()); + List childDtoList = childList.stream() + .filter(e -> e.getPractitionerId().equals(record.getPractitionerId())).collect(Collectors.toList()); record.setChildList(childDtoList); } return userPractitionerPage; } + /** + * 修改用户及参与者 : 登录账号和密码不允许编辑 + * + * @param userAndPractitionerDto 用户及参与者dto + * @return 结果 + */ + @Override + public R editUserPractitioner(UserAndPractitionerDto userAndPractitionerDto) { + Long userId = userAndPractitionerDto.getUserId(); // 系统用户id + Long practitionerId = userAndPractitionerDto.getPractitionerId(); // 参与者id + + String nickName = userAndPractitionerDto.getNickName(); + String phonenumber = userAndPractitionerDto.getPhonenumber(); + String sex = userAndPractitionerDto.getSex(); + // 编辑 sys_user + BizUser bizUser = new BizUser(); + bizUser.setNickName(nickName); // 昵称 + bizUser.setEmail(userAndPractitionerDto.getEmail());// 邮箱 + bizUser.setPhonenumber(phonenumber); // 电话 + bizUser.setSex(sex); // 性别 + bizUser.setStatus(userAndPractitionerDto.getStatus()); // 状态 + bizUser.setRemark(userAndPractitionerDto.getRemark()); // 备注 + iBizUserService.update(bizUser, new LambdaQueryWrapper().eq(BizUser::getUserId, userId)); + // 先删除,再新增 sys_user_role + practitionerAppAppMapper.delUserRole(userId); + List roleIds = userAndPractitionerDto.getRoleIds(); + BizUserRole bizUserRole; + for (Long roleId : roleIds) { + bizUserRole = new BizUserRole(); + bizUserRole.setUserId(userId); + bizUserRole.setRoleId(roleId); + iBizUserRoleService.save(bizUserRole); + } + // 编辑 adm_practitioner + Practitioner practitioner = new Practitioner(); + practitioner.setId(practitionerId); + practitioner.setName(nickName); // 姓名 + practitioner.setGenderEnum(Integer.parseInt(sex)); // 性别 + practitioner.setBirthDate(userAndPractitionerDto.getBirthDate()); // 出生日期 + practitioner.setPhone(phonenumber); // 电话 + practitioner.setAddress(userAndPractitionerDto.getAddress()); // 地址 + practitioner.setYbNo(userAndPractitionerDto.getYbNo()); // 医保码 + practitioner.setUserId(userId); // 系统用户id + practitioner.setOrgId(userAndPractitionerDto.getOrgId()); // 机构id + practitioner.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(nickName)); // 拼音码 + practitioner.setWbStr(ChineseConvertUtils.toWBFirstLetter(nickName)); // 五笔码 + iPractitionerService.updateById(practitioner); + // 先删除,再新增 adm_practitioner_role + practitionerAppAppMapper.delPractitionerRole(practitionerId); + List childList = userAndPractitionerDto.getChildList(); + PractitionerRole practitionerRole; + for (UserAndPractitionerChildDto userAndPractitionerChildDto : childList) { + 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 + iPractitionerRoleService.save(practitionerRole); + } + + return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"人员信息"})); + } + + /** + * 删除用户及参与者 ; admin不允许删除 + * + * @param userId 系统用户id + * @return 结果 + */ + @Override + public R delUserPractitioner(Long userId) { + iBizUserService.remove(new LambdaQueryWrapper().eq(BizUser::getUserId, userId)); + practitionerAppAppMapper.delUserRole(userId); + Practitioner one = + iPractitionerService.getOne(new LambdaQueryWrapper().eq(Practitioner::getUserId, userId)); + Long practitionerId = one.getId();// 参与者id + iPractitionerService.removeById(practitionerId); + iPractitionerRoleService + .remove(new LambdaQueryWrapper().eq(PractitionerRole::getPractitionerId, practitionerId)); + + return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00005, new Object[] {"人员信息"})); + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerController.java index ac4f0668..872ad941 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/controller/PractitionerController.java @@ -52,4 +52,26 @@ public class PractitionerController { .ok(practitionerAppService.getUserPractitionerPage(userAndPractitionerDto, searchKey, pageNo, pageSize)); } + /** + * 修改用户及参与者 + * + * @param userAndPractitionerDto 用户及参与者dto + * @return 结果 + */ + @PutMapping(value = "/user-practitioner") + public R editUserPractitioner(@RequestBody UserAndPractitionerDto userAndPractitionerDto) { + return practitionerAppService.editUserPractitioner(userAndPractitionerDto); + } + + /** + * 删除用户及参与者 ; admin不允许删除 + * + * @param userId 系统用户id + * @return 结果 + */ + @DeleteMapping(value = "/user-practitioner") + public R delUserPractitioner(@RequestParam Long userId) { + return practitionerAppService.delUserPractitioner(userId); + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/mapper/PractitionerAppAppMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/mapper/PractitionerAppAppMapper.java index 7a07c05e..9696fae2 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/mapper/PractitionerAppAppMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/mapper/PractitionerAppAppMapper.java @@ -36,4 +36,18 @@ public interface PractitionerAppAppMapper { */ List getChildList(@Param("practitionerIdList") List practitionerIdList); + /** + * 物理删除系统用户与角色的关系 + * + * @param userId 系统用户id + */ + void delUserRole(@Param("userId") Long userId); + + /** + * 物理删除参与者与业务角色的关系 + * + * @param practitionerId 参与者id + */ + void delPractitionerRole(@Param("practitionerId") Long practitionerId); + } diff --git a/openhis-server/openhis-application/src/main/resources/mapper/basedatamanage/PractitionerAppMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/basedatamanage/PractitionerAppMapper.xml index 338d2807..be4c8a1f 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/basedatamanage/PractitionerAppMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/basedatamanage/PractitionerAppMapper.xml @@ -67,4 +67,16 @@ + + delete + from sys_user_role + where user_id = #{userId} + + + + delete + from adm_practitioner_role + where practitioner_id = #{practitionerId} + + \ No newline at end of file From 76604c062f1d871953f1481d4b29ba90f204d396 Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Wed, 26 Mar 2025 15:30:01 +0800 Subject: [PATCH 06/13] UP --- .../appservice/IItemDefinitionService.java | 2 +- .../datadictionary/dto/DeviceManageUpDto.java | 16 ++++++++++++++++ .../dto/MedicationManageUpDto.java | 2 +- .../medication/domain/MedicationDefinition.java | 2 +- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IItemDefinitionService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IItemDefinitionService.java index 41f69488..28ab2d00 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IItemDefinitionService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IItemDefinitionService.java @@ -12,7 +12,7 @@ import com.openhis.web.datadictionary.dto.MedicationManageUpDto; public interface IItemDefinitionService { /** - * 添加项目定价 + * 添加药品的项目定价 * * @param medicationManageUpDto 药品目录信息 * @param medicationDetail 药品信息 diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageUpDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageUpDto.java index f520ed5d..d5921262 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageUpDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DeviceManageUpDto.java @@ -133,4 +133,20 @@ public class DeviceManageUpDto { /** 过敏标记 */ // @NotNull(message = "过敏标记不能为空") private Integer allergenFlag; + + /** 购入价 */ + private BigDecimal purchasePrice; + + /** 零售价 */ + private BigDecimal retailPrice; + + /** 最高零售价 */ + private BigDecimal maximumRetailPrice; + + /** 最小费用 */ + private String minimalFee; + + /** 医保类别 */ + private String ybType; + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageUpDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageUpDto.java index 6c605f4e..6b73434b 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageUpDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageUpDto.java @@ -201,7 +201,7 @@ public class MedicationManageUpDto { private Integer statusEnum; /** 拆分属性 */ - private String partAttribute; + private Integer partAttributeEnum; /** 贯标国家编码 */ private String nationalDrugCode; diff --git a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/domain/MedicationDefinition.java b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/domain/MedicationDefinition.java index 1ce3be40..ddc85a7e 100644 --- a/openhis-server/openhis-domain/src/main/java/com/openhis/medication/domain/MedicationDefinition.java +++ b/openhis-server/openhis-domain/src/main/java/com/openhis/medication/domain/MedicationDefinition.java @@ -139,7 +139,7 @@ public class MedicationDefinition extends HisBaseEntity { private String nationalDrugCode; /** 拆分属性 */ - private String partAttribute; + private Integer partAttributeEnum; /** 抗生素分类 */ private String antibioticCode; From e1d38a7e75c6fc93f481a4179ffd0c9d584a992a Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Wed, 26 Mar 2025 15:30:29 +0800 Subject: [PATCH 07/13] UP --- .../com/openhis/web/datadictionary/dto/MedicationManageDto.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java index 8b27075a..69867a29 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java @@ -205,7 +205,7 @@ public class MedicationManageDto { /** 贯标国家编码 */ private String nationalDrugCode; - + /** 拆分属性 */ private Integer partAttributeEnum; private String partAttributeEnum_enumText; From 973424d46ee8fe1472443e2c2242a6e0eca8d8f7 Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Wed, 26 Mar 2025 15:41:50 +0800 Subject: [PATCH 08/13] up --- .../openhis/web/datadictionary/dto/MedicationManageDto.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java index 69867a29..f236f982 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/MedicationManageDto.java @@ -157,6 +157,7 @@ public class MedicationManageDto { /** 剂量形式 */ private Integer doseFrom; + private String doseFrom_enumText; /** 批准文号 */ private String approvalNumber; @@ -202,10 +203,11 @@ public class MedicationManageDto { /** 产品特性 */ private Integer characteristic; + private String characteristic_enumText; /** 贯标国家编码 */ private String nationalDrugCode; - + /** 拆分属性 */ private Integer partAttributeEnum; private String partAttributeEnum_enumText; From 6e63d3c286564b36a8273f92266e1860f878428f Mon Sep 17 00:00:00 2001 From: duhe Date: Wed, 26 Mar 2025 15:52:33 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E8=8D=AF=E5=93=81=E7=94=BB=E9=9D=A2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=87=8D=E6=96=B0=E5=AF=B9=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../catalog/medicine/components/medicine.js | 29 +- .../medicine/components/medicineDialog.vue | 331 +++++++++++------- .../src/views/catalog/medicine/index.vue | 299 ++++++++++++---- 3 files changed, 448 insertions(+), 211 deletions(-) diff --git a/openhis-ui-vue3/src/views/catalog/medicine/components/medicine.js b/openhis-ui-vue3/src/views/catalog/medicine/components/medicine.js index 0ba4330f..c5e1a74c 100644 --- a/openhis-ui-vue3/src/views/catalog/medicine/components/medicine.js +++ b/openhis-ui-vue3/src/views/catalog/medicine/components/medicine.js @@ -13,8 +13,9 @@ export function getMedicationList(query) { // 查询药品目录详细 export function getMedicationOne(id) { return request({ - url: '/data-dictionary/medication/information-one/' + parseStrEmpty(id), - method: 'get' + url: '/data-dictionary/medication/information-one', + method: 'get', + params: { id } // 确保参数正确传递 }) } @@ -53,7 +54,7 @@ export function getMedicationCategory() { } -// 停用病种目录 +// 停用药品目录 export function stopMedication(ids) { console.log(ids) return request({ @@ -63,7 +64,7 @@ export function stopMedication(ids) { }) } -// 启用病种目录 +// 启用药品目录 export function startMedication(ids) { console.log(ids) return request({ @@ -71,4 +72,22 @@ export function startMedication(ids) { method: 'put', data: ids }) -} \ No newline at end of file +} + +// 查询部门树形数据 +export function deptTreeSelect(queryParams) { + return request({ + url: '/base-data-manage/organization/organization', + method: 'get', + param: queryParams + }) +} + +// 查询地点树形数据 +export function locationTreeSelect(queryParams) { + return request({ + url: '/base-data-manage/cabinet-location/cabinet-location', + method: 'get', + param: queryParams + }) +} diff --git a/openhis-ui-vue3/src/views/catalog/medicine/components/medicineDialog.vue b/openhis-ui-vue3/src/views/catalog/medicine/components/medicineDialog.vue index 339140cb..a650482f 100644 --- a/openhis-ui-vue3/src/views/catalog/medicine/components/medicineDialog.vue +++ b/openhis-ui-vue3/src/views/catalog/medicine/components/medicineDialog.vue @@ -77,12 +77,39 @@ - + + + + + + - + - + @@ -153,15 +180,6 @@ - - - - - - + @@ -189,15 +207,15 @@ - - + - + @@ -265,27 +283,22 @@ - - + + - - + + - - + + - - - - - @@ -301,6 +314,11 @@ + + + + + @@ -412,16 +430,6 @@ - - - - - - - + @@ -452,13 +460,25 @@ - - + + - + + + @@ -469,13 +489,13 @@ - - + + - - + + @@ -485,7 +505,7 @@ - + - - + + + + + + + - + + - - + + - - - - + @@ -566,9 +580,9 @@ - + @@ -576,9 +590,9 @@ - - + @@ -587,9 +601,9 @@ - + @@ -597,9 +611,9 @@ - - + @@ -627,18 +641,6 @@ - - - - - - - (单位g) - @@ -653,22 +655,16 @@