Merge branch 'master' of codeup.aliyun.com:61c0318acd8b75daa5a125f7/medical/openhis

This commit is contained in:
Zhuangxingyu
2025-02-25 13:24:16 +08:00
10 changed files with 422 additions and 72 deletions

View File

@@ -1,19 +1,25 @@
package com.openhis.web.datadictionary.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
import com.core.common.utils.MessageUtils;
import com.core.common.utils.bean.BeanUtils;
import com.openhis.clinical.domain.ConditionDefinition;
import com.openhis.clinical.service.IConditionDefinitionService;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.ConditionDefinitionSource;
import com.openhis.web.datadictionary.dto.DiseaseManageDto;
import com.openhis.web.datadictionary.dto.DiseaseSourceDto;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -40,7 +46,16 @@ public class DiseaseManageController {
public R<?> getDiseaseCategory() {
// 获取疾病目录种类
List<ConditionDefinitionSource> statusList = Arrays.asList(ConditionDefinitionSource.values());
return R.ok(statusList);
List<DiseaseSourceDto> diseaseSourceDtos = new ArrayList<>();
// 取得更新值
for (ConditionDefinitionSource detail : statusList) {
DiseaseSourceDto diseaseSourceDto = new DiseaseSourceDto();
diseaseSourceDto.setCode(detail.getCode());
diseaseSourceDto.setValue(detail.getValue());
diseaseSourceDto.setInfo(detail.getInfo());
diseaseSourceDtos.add(diseaseSourceDto);
}
return R.ok(diseaseSourceDtos);
}
/**
@@ -63,8 +78,18 @@ public class DiseaseManageController {
// 查询【病种目录】分页列表
Page<ConditionDefinition> diseasePage =
iConditionDefinitionService.getPage(searchKey, status, sourceEnum, pageNo, pageSize);
// 获取入病种目录列表
Page<DiseaseManageDto> diseaseManageDtoPage = new Page<>();
diseaseManageDtoPage.setRecords(diseasePage.getRecords().stream().map(entity -> {
// 定义【入病种目录列表DTO】
DiseaseManageDto dto = new DiseaseManageDto();
BeanUtils.copyProperties(entity, dto);
return dto;
}).collect(Collectors.toList()));
// 返回【病种目录列表DTO】分页
return R.ok(diseasePage);
return R.ok(diseaseManageDtoPage);
}
/**
@@ -73,8 +98,8 @@ public class DiseaseManageController {
* @param id 疾病ID
* @return
*/
@GetMapping("/information-one")
public R<?> getDiseaseOne(@RequestParam(value = "id", required = false, defaultValue = "0") Long id) {
@GetMapping("/information-one/{id}")
public R<?> getDiseaseOne(@PathVariable("id") Long id) {
// 根据ID查询【病种目录】
ConditionDefinition byId = iConditionDefinitionService.getById(id);
@@ -84,11 +109,18 @@ public class DiseaseManageController {
/**
* 病种目录编辑
*
* @param conditionDefinitionList 病种目录实体列表
* @param diseaseManageDtos 病种目录列表
* @return
*/
@PutMapping("/information")
public R<?> editDisease(@RequestBody List<ConditionDefinition> conditionDefinitionList) {
public R<?> editDisease(@RequestBody List<DiseaseManageDto> diseaseManageDtos) {
List<ConditionDefinition> conditionDefinitionList = new ArrayList<>();
// 取得更新值
for (DiseaseManageDto detail : diseaseManageDtos) {
ConditionDefinition conditionDefinition = new ConditionDefinition();
BeanUtils.copyProperties(detail, conditionDefinition);
conditionDefinitionList.add(conditionDefinition);
}
// 更新病种信息
return iConditionDefinitionService.updateBatchById(conditionDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, null))
@@ -98,11 +130,13 @@ public class DiseaseManageController {
/**
* 新增外来病种目录
*
* @param conditionDefinition 病种目录实体
* @param diseaseManageDto 病种目录实体
* @return
*/
@PostMapping("/information")
public R<?> addDisease(@RequestBody ConditionDefinition conditionDefinition) {
public R<?> addDisease(@Validated @RequestBody DiseaseManageDto diseaseManageDto) {
ConditionDefinition conditionDefinition = new ConditionDefinition();
BeanUtils.copyProperties(diseaseManageDto, conditionDefinition);
// 新增外来病种目录
return iConditionDefinitionService.addDisease(conditionDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
@@ -117,5 +151,7 @@ public class DiseaseManageController {
* @return
*/
@PostMapping("/information-yb")
void AddYbDisease(@RequestBody ConditionDefinition conditionDefinition) {}
public R<?> addYbDisease(@RequestBody ConditionDefinition conditionDefinition) {
return null;
}
}

View File

@@ -0,0 +1,129 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.datadictionary.controller;
import java.util.List;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
import com.core.common.utils.MessageUtils;
import com.core.common.utils.bean.BeanUtils;
import com.openhis.administration.domain.Supplier;
import com.openhis.administration.service.ISupplierService;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.web.datadictionary.dto.SupplierDto;
import com.openhis.web.datadictionary.dto.SupplierSearchParam;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.openhis.clinical.domain.ConditionDefinition;
import com.openhis.clinical.service.IConditionDefinitionService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import javax.servlet.http.HttpServletRequest;
/**
* TODO:厂商/产地
*
* @author dh
* @date 2025-02-21
*/
@RestController
@RequestMapping("/data-dictionary-supplier")
@Slf4j
@AllArgsConstructor
public class SupplierManagementController {
private final ISupplierService supplierService;
/**
* 厂商/产地查询
*
* @param supplierSearchParam 查询条件
* @param pageNo 查询条件
* @param pageSize 查询条件
* @return 厂商/产地查询结果
*/
@GetMapping(value = "/get-supplier-list")
public R<?> getSupplierList(SupplierSearchParam supplierSearchParam,
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
// 查询条件初始化
Supplier supplier = new Supplier();
BeanUtils.copyProperties(supplierSearchParam, supplier);
// 查询
Page<Supplier> supplierPage = supplierService.getPage(supplier,pageNo,pageSize);
// 定义【入库单据分页列表DTO】的分页传入【页码】、【行数】、及上面分页的【总数】
Page<SupplierDto> returnPage =
new Page<>(supplierPage.getCurrent(), supplierPage.getSize(), supplierPage.getTotal());
// supplierPage
// supplierPage.map(item -> {
// SupplierDto supplierDto = new SupplierDto();
// BeanUtils.copyProperties(item, supplierDto); // 使用 BeanUtils 复制属性
// // 如果有特殊字段需要手动转换,可以在这里处理
// return supplierDto;
// });
return R.ok(returnPage);
}
/**
* 添加供应商信息
*
* @param supplierDto 供应商信息
*/
@PostMapping("/add-supplier")
public R<?> addSupplyRequest(@Validated @RequestBody SupplierDto supplierDto) {
// 初始化参数
Supplier supplier = new Supplier();
BeanUtils.copyProperties(supplierDto, supplier);
// 如果业务上不需要其它处理 直接调用service的保存方法
boolean saveSupplierSuccess = supplierService.save(supplier);
if (!saveSupplierSuccess) {
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00006, null));
}
return saveSupplierSuccess
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00001, new Object[] {"厂商/供应商信息"}))
: R.fail(PromptMsgConstant.Common.M00007, null);
}
/**
* 编辑供应商信息
*
* @param supplierDto 供应商信息
*/
@PutMapping("/edit-supplier")
public R<?> editSupplyRequest(@Validated @RequestBody SupplierDto supplierDto) {
// 初始化参数
Supplier supplier = new Supplier();
BeanUtils.copyProperties(supplierDto, supplier);
return supplierService.updateById(supplier) ?
R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"厂商/供应商信息"}))
: R.fail(PromptMsgConstant.Common.M00007, null);
}
/**
* 厂商/产地详细查询
*
* @param supplierId 查询条件
* @return 厂商/产地查询结果
*/
@GetMapping(value = "/get-supplier-detail")
public R<?> getSupplierDetail(@RequestParam(name = "id", required = true) String supplierId) {
// 查询
Supplier supplierDetail = supplierService.getById(supplierId);
return R.ok(supplierDetail);
}
}

View File

@@ -0,0 +1,61 @@
package com.openhis.web.datadictionary.dto;
import javax.validation.constraints.NotBlank;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.openhis.common.enums.ConditionDefinitionSource;
import com.openhis.common.enums.PublicationStatus;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 疾病目录分页Dto
*
* @author lpt
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class DiseaseManageDto {
/** ID */
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/** 所属分类 */
private ConditionDefinitionSource sourceEnum;
/** 编码 */
@NotBlank(message = "疾病编码不能为空")
private String conditionCode;
/** 诊断名称 */
@NotBlank(message = "疾病名称不能为空")
private String name;
/** 诊断名称拼音 */
private String pyStr;
/** 诊断名称五笔拼音 */
private String wbStr;
/** 类型 */
private String typeCode;
/** 描述 */
private String description;
/** 医保标记 */
private Integer ybFlag;
/** 医保编码 */
private String ybNo;
/** 医保对码标记 */
private Integer ybMatchFlag;
/** 状态 */
private PublicationStatus statusEnum;
}

View File

@@ -0,0 +1,18 @@
package com.openhis.web.datadictionary.dto;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 疾病目录种别dto
*
* @author lpt
* @date 2025-02-25
*/
@Data
@Accessors(chain = true)
public class DiseaseSourceDto {
private Integer value;
private String code;
private String info;
}

View File

@@ -0,0 +1,56 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.datadictionary.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.util.Date;
/**
* 供应商保存dto
*
* @author dh
* @date 2025-02-24
*/
@Data
@Accessors(chain = true)
public class SupplierDto {
/** ID */
private Long id;
/** 编号 */
private String busNo;
/** 名称 */
private String name;
/** 类型 */
private Integer typeEnum;
/** 地址 */
private String address;
/** 拼音码 */
private String pyStr;
/** 五笔码 */
private String wbStr;
/** 联系人电话 */
private String phone;
/** 联系人邮箱 */
private String email;
/** 活动标识 */
private Integer activeFlag;
/** 机构编号 */
private Long orgId;
}

View File

@@ -0,0 +1,39 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.datadictionary.dto;
import java.io.Serializable;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 厂商/产地分页查询条件
*
* @author dh
* @date 2025-02-18
*/
@Data
@Accessors(chain = true)
public class SupplierSearchParam implements Serializable {
/**
* 编号
*/
@Schema(description = "编号")
private String busNo;
/**
* 名称*
*/
@Schema(description = "名称")
private String name;
/**
* 名称*
*/
@Schema(description = "供应商类型")
private String typeEnum;
}

View File

@@ -1,14 +1,31 @@
package com.openhis.administration.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.core.common.core.domain.R;
import com.openhis.administration.domain.Supplier;
import com.openhis.workflow.domain.SupplyRequest;
import org.springframework.web.bind.annotation.RequestParam;
import javax.servlet.http.HttpServletRequest;
/**
* 供应商管理Service接口
*
* @author system
* @author dh
* @date 2025-02-20
*/
public interface ISupplierService extends IService<Supplier> {
/**
* 查询厂商/供应商分页列表
*
* @param supplier 查询条件
* @param pageNo 查询条件
* @param pageSize 查询条件
* @return 供应申请列表
*/
Page<Supplier> getPage(Supplier supplier, Integer pageNo, Integer pageSize);
}

View File

@@ -1,5 +1,13 @@
package com.openhis.administration.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.utils.StringUtils;
import com.core.common.utils.bean.BeanUtils;
import com.openhis.common.enums.DelFlag;
import com.openhis.workflow.domain.SupplyRequest;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -13,7 +21,47 @@ import com.openhis.administration.service.ISupplierService;
* @author system
* @date 2025-02-20
*/
@Slf4j
@Service
@AllArgsConstructor
public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> implements ISupplierService {
private final SupplierMapper supplierMapper;
/**
* 查询厂商/产地列表
*
* @param supplier 查询条件
* @param pageNo 查询条件
* @param pageSize 查询条件
* @return 厂商/产地列表
*/
@Override
public Page<Supplier> getPage(Supplier supplier, Integer pageNo, Integer pageSize) {
Page<Supplier> supplierList = new Page<>();
// // 判断入库数量
// if (supplyRequest.getItemQuantity() != 0) {
// // 查询供应申请信息列表
// supplyRequestList = supplyRequestMapper.selectPage(new Page<>(pageNo, pageSize),
// new LambdaQueryWrapper<SupplyRequest>().eq(SupplyRequest::getDeleteFlag, DelFlag.NO.getValue()));
// } else {
// return null;
// }
// 设置查询条件
LambdaQueryWrapper<Supplier> lambdaQueryWrapper = new LambdaQueryWrapper<>();
if (StringUtils.isNotEmpty(supplier.getBusNo())) {
lambdaQueryWrapper.eq(Supplier::getBusNo, supplier.getBusNo());
}
if (StringUtils.isNotEmpty(supplier.getName())) {
lambdaQueryWrapper.eq(Supplier::getName, supplier.getName());
}
if (StringUtils.isNotNull(supplier.getTypeEnum())) {
lambdaQueryWrapper.eq(Supplier::getTypeEnum, supplier.getTypeEnum());
}
lambdaQueryWrapper.eq(Supplier::getDeleteFlag, DelFlag.NO.getValue());
supplierList = supplierMapper.selectPage(new Page<>(pageNo, pageSize), lambdaQueryWrapper);
// 返回入库信息列表
return supplierList;
}
}