Bläddra i källkod

feat: 药品的剂型规格名称新增字段保存

lixuesong 1 år sedan
förälder
incheckning
ee28f98b4b

+ 5 - 0
db/v2.0/20231206.sql

@@ -0,0 +1,5 @@
+alter table wm_da_drug_ent_drugtable
+    add dose_name varchar(128) null comment '剂型名称';
+
+alter table wm_da_drug_ent_drugtable
+    add guige_name varchar(128) null comment '规格名称';

+ 83 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaDrugEntDrugtableController.java

@@ -21,12 +21,16 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEnt;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaPharmacy;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
+import com.qunzhixinxi.hnqz.admin.service.SysDictItemService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
@@ -44,6 +48,7 @@ import java.time.LocalDateTime;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
@@ -62,6 +67,7 @@ public class WmDaDrugEntDrugtableController {
 	private final WmDaDrugEntDrugtableService wmDaDrugEntDrugtableService;
 	private final WmDaDrugEntService wmDaDrugEntService;
 	private final WmScorePackageService wmScorePackageService;
+	private final SysDictItemService sysDictItemService;
 
 	/**
 	 * 分页查询
@@ -72,12 +78,12 @@ public class WmDaDrugEntDrugtableController {
 	 */
 	@GetMapping("/page")
 	@PreAuthorize("@pms.hasPermission('admin_wmdadrugentdrugtable_view')")
-	public R getWmDaDrugEntDrugtablePage(Page page, WmDaDrugEntDrugtable wmDaDrugEntDrugtable) {
+	public R<IPage<WmDaDrugEntDrugtable>> getWmDaDrugEntDrugtablePage(Page<WmDaDrugEntDrugtable> page, WmDaDrugEntDrugtable wmDaDrugEntDrugtable) {
 		OrderItem orderItem = new OrderItem();
 		orderItem.setColumn("create_time");
 		orderItem.setAsc(false);
 		page.addOrder(orderItem);
-		QueryWrapper queryWrapper = Wrappers.query(wmDaDrugEntDrugtable);
+		QueryWrapper<WmDaDrugEntDrugtable> queryWrapper = Wrappers.query(wmDaDrugEntDrugtable);
 		String drugname = wmDaDrugEntDrugtable.getDrugname();
 		if (StringUtils.isNotEmpty(wmDaDrugEntDrugtable.getDrugname())) {
 			wmDaDrugEntDrugtable.setDrugname(null);
@@ -96,7 +102,32 @@ public class WmDaDrugEntDrugtableController {
 		if (StringUtils.isEmpty(wmDaDrugEntDrugtable.getDrugEntName())) {
 			wmDaDrugEntDrugtable.setDrugEntName(null);
 		}
-		return R.ok(wmDaDrugEntDrugtableService.page(page, queryWrapper));
+
+		wmDaDrugEntDrugtableService.page(page, queryWrapper);
+
+		if (CollUtil.isNotEmpty(page.getRecords())) {
+			// 剂型字典
+			List<SysDictItem> doseDictItems = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
+					.eq(SysDictItem::getType, "dose")
+					.eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
+			Map<String, String> doseMap = doseDictItems.stream().collect(Collectors.toMap(SysDictItem::getValue, SysDictItem::getLabel));
+			// 剂型字典
+			List<SysDictItem> guigeDictItems = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
+					.eq(SysDictItem::getType, "guige")
+					.eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
+			Map<String, String> guigeMap = guigeDictItems.stream().collect(Collectors.toMap(SysDictItem::getValue, SysDictItem::getLabel));
+
+			page.getRecords().forEach(record -> {
+				if (StrUtil.isNotBlank(record.getDoseId()) && StrUtil.isBlank(record.getDoseName())) {
+					record.setDoseName(doseMap.getOrDefault(record.getDoseId(), record.getDoseId()));
+				}
+				if (StrUtil.isNotBlank(record.getGuigeId()) && StrUtil.isBlank(record.getGuigeName())) {
+					record.setGuigeName(guigeMap.getOrDefault(record.getGuigeId(), record.getGuigeId()));
+				}
+			});
+		}
+
+		return R.ok(page);
 	}
 
 
@@ -109,7 +140,29 @@ public class WmDaDrugEntDrugtableController {
 	@GetMapping("/{id}")
 	@PreAuthorize("@pms.hasPermission('admin_wmdadrugentdrugtable_view')")
 	public R getById(@PathVariable("id") Integer id) {
-		return R.ok(wmDaDrugEntDrugtableService.getById(id));
+		WmDaDrugEntDrugtable drugEntDrugtable = wmDaDrugEntDrugtableService.getById(id);
+
+		if (drugEntDrugtable != null) {
+			// 剂型字典
+			List<SysDictItem> doseDictItems = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
+					.eq(SysDictItem::getType, "dose")
+					.eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
+			Map<String, String> doseMap = doseDictItems.stream().collect(Collectors.toMap(SysDictItem::getValue, SysDictItem::getLabel));
+			// 剂型字典
+			List<SysDictItem> guigeDictItems = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
+					.eq(SysDictItem::getType, "guige")
+					.eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
+			Map<String, String> guigeMap = guigeDictItems.stream().collect(Collectors.toMap(SysDictItem::getValue, SysDictItem::getLabel));
+
+			if (StrUtil.isNotBlank(drugEntDrugtable.getDoseId()) && StrUtil.isBlank(drugEntDrugtable.getDoseName())) {
+				drugEntDrugtable.setDoseName(doseMap.getOrDefault(drugEntDrugtable.getDoseId(), drugEntDrugtable.getDoseId()));
+			}
+			if (StrUtil.isNotBlank(drugEntDrugtable.getGuigeId()) && StrUtil.isBlank(drugEntDrugtable.getGuigeName())) {
+				drugEntDrugtable.setGuigeName(guigeMap.getOrDefault(drugEntDrugtable.getGuigeId(), drugEntDrugtable.getGuigeId()));
+			}
+		}
+
+		return R.ok(drugEntDrugtable);
 	}
 
 	/**
@@ -192,7 +245,32 @@ public class WmDaDrugEntDrugtableController {
 		WmDaDrugEntDrugtable wmDaDrugEnt = new WmDaDrugEntDrugtable();
 		wmDaDrugEnt.setDelFlag("0");
 		wmDaDrugEnt.setEnableFlag("0");
-		return R.ok(wmDaDrugEntDrugtableService.list(Wrappers.query(wmDaDrugEnt)));
+
+		List<WmDaDrugEntDrugtable> list = wmDaDrugEntDrugtableService.list(Wrappers.query(wmDaDrugEnt));
+
+		if (CollUtil.isNotEmpty(list)) {
+			// 剂型字典
+			List<SysDictItem> doseDictItems = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
+					.eq(SysDictItem::getType, "dose")
+					.eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
+			Map<String, String> doseMap = doseDictItems.stream().collect(Collectors.toMap(SysDictItem::getValue, SysDictItem::getLabel));
+			// 剂型字典
+			List<SysDictItem> guigeDictItems = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
+					.eq(SysDictItem::getType, "guige")
+					.eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
+			Map<String, String> guigeMap = guigeDictItems.stream().collect(Collectors.toMap(SysDictItem::getValue, SysDictItem::getLabel));
+
+			list.forEach(drugEntDrugtable -> {
+				if (StrUtil.isNotBlank(drugEntDrugtable.getDoseId()) && StrUtil.isBlank(drugEntDrugtable.getDoseName())) {
+					drugEntDrugtable.setDoseName(doseMap.getOrDefault(drugEntDrugtable.getDoseId(), drugEntDrugtable.getDoseId()));
+				}
+				if (StrUtil.isNotBlank(drugEntDrugtable.getGuigeId()) && StrUtil.isBlank(drugEntDrugtable.getGuigeName())) {
+					drugEntDrugtable.setGuigeName(guigeMap.getOrDefault(drugEntDrugtable.getGuigeId(), drugEntDrugtable.getGuigeId()));
+				}
+			});
+		}
+
+		return R.ok(list);
 	}
 
 

+ 10 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmDaDrugEntDrugtable.java

@@ -104,4 +104,14 @@ public class WmDaDrugEntDrugtable extends Model<WmDaDrugEntDrugtable> {
 	 */
 	@TableField(exist = false)
 	private List<String> reDeptList;
+
+	/**
+	 * 剂型名称
+	 */
+	private String doseName;
+
+	/**
+	 * 规格名称
+	 */
+	private String guigeName;
 }

+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmDaDrugEntDrugtableService.java

@@ -57,7 +57,7 @@ public interface WmDaDrugEntDrugtableService extends IService<WmDaDrugEntDrugtab
 	 * @param drugName 药品名称
 	 * @return 药品列表
 	 */
-	IPage<WmDaDrugEntDrugtable> listDrugs(Page page, Integer deptId, String drugName);
+	IPage<WmDaDrugEntDrugtable> listDrugs(Page<WmDaDrugEntDrugtable> page, Integer deptId, String drugName);
 
 	/**
 	 * 根据部门id获取关联药品生产生产企业名称

+ 32 - 2
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaDrugEntDrugtableServiceImpl.java

@@ -16,19 +16,24 @@
  */
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Maps;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
 import com.qunzhixinxi.hnqz.admin.entity.ReAlbumDrug;
 import com.qunzhixinxi.hnqz.admin.entity.ReDeptDrug;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEntDrugtable;
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.ReDeptDrugMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntDrugtableMapper;
 import com.qunzhixinxi.hnqz.admin.service.ReDeptDrugService;
+import com.qunzhixinxi.hnqz.admin.service.SysDictItemService;
 import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntDrugtableService;
 import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import com.qunzhixinxi.hnqz.common.core.util.R;
@@ -57,6 +62,7 @@ import java.util.stream.Collectors;
 public class WmDaDrugEntDrugtableServiceImpl extends ServiceImpl<WmDaDrugEntDrugtableMapper, WmDaDrugEntDrugtable> implements WmDaDrugEntDrugtableService {
 
 	private final ReDeptDrugService reDeptDrugService;
+	private final SysDictItemService sysDictItemService;
 
 	@Override
 	public R listReDept(WmDaDrugEntDrugtable wmDaDrugEntDrugtable) {
@@ -77,7 +83,7 @@ public class WmDaDrugEntDrugtableServiceImpl extends ServiceImpl<WmDaDrugEntDrug
 	 * @return 药品列表
 	 */
 	@Override
-	public IPage<WmDaDrugEntDrugtable> listDrugs(Page page, Integer deptId, String drugName) {
+	public IPage<WmDaDrugEntDrugtable> listDrugs(Page<WmDaDrugEntDrugtable> page, Integer deptId, String drugName) {
 		LambdaQueryWrapper<WmDaDrugEntDrugtable> queryWrapper = Wrappers.lambdaQuery();
 		if (StringUtils.isNotEmpty(drugName)) {
 			queryWrapper.like(WmDaDrugEntDrugtable::getDrugname, drugName);
@@ -92,7 +98,31 @@ public class WmDaDrugEntDrugtableServiceImpl extends ServiceImpl<WmDaDrugEntDrug
 			queryWrapper.in(WmDaDrugEntDrugtable::getId, drugIdList);
 		}
 
-		return page(page, queryWrapper);
+		this.page(page, queryWrapper);
+
+		if (CollUtil.isNotEmpty(page.getRecords())) {
+			// 剂型字典
+			List<SysDictItem> doseDictItems = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
+					.eq(SysDictItem::getType, "dose")
+					.eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
+			Map<String, String> doseMap = doseDictItems.stream().collect(Collectors.toMap(SysDictItem::getValue, SysDictItem::getLabel));
+			// 剂型字典
+			List<SysDictItem> guigeDictItems = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
+					.eq(SysDictItem::getType, "guige")
+					.eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
+			Map<String, String> guigeMap = guigeDictItems.stream().collect(Collectors.toMap(SysDictItem::getValue, SysDictItem::getLabel));
+
+			page.getRecords().forEach(record -> {
+				if (StrUtil.isNotBlank(record.getDoseId()) && StrUtil.isBlank(record.getDoseName())) {
+					record.setDoseName(doseMap.getOrDefault(record.getDoseId(), record.getDoseId()));
+				}
+				if (StrUtil.isNotBlank(record.getGuigeId()) && StrUtil.isBlank(record.getGuigeName())) {
+					record.setGuigeName(guigeMap.getOrDefault(record.getGuigeId(), record.getGuigeId()));
+				}
+			});
+		}
+
+		return page;
 	}
 
 	/**