Przeglądaj źródła

Merge branch 'feat-20231107-scorepackagedrug'

lixuesong 1 rok temu
rodzic
commit
04fe7b55ac
17 zmienionych plików z 206 dodań i 61 usunięć
  1. 5 0
      db/v2.0/20231107.sql
  2. 35 37
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java
  3. 31 4
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaDrugEntDrugtableController.java
  4. 9 1
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java
  5. 5 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmWkArticleController.java
  6. 9 1
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmScorePackage.java
  7. 4 1
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmWkArticle.java
  8. 10 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmDaDrugEntDrugtableService.java
  9. 50 14
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaDistributionServiceImpl.java
  10. 35 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaDrugEntDrugtableServiceImpl.java
  11. 1 1
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaHospitalServiceImpl.java
  12. 1 1
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaPharmacyServiceImpl.java
  13. 10 0
      hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmScorePackageServiceImpl.java
  14. BIN
      hnqz-upms/hnqz-upms-biz/src/main/resources/excel/batch_create_distribution_template.xlsx
  15. BIN
      hnqz-upms/hnqz-upms-biz/src/main/resources/excel/batch_create_hospital_template.xlsx
  16. BIN
      hnqz-upms/hnqz-upms-biz/src/main/resources/excel/batch_create_pharmacy_template.xlsx
  17. 1 1
      hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageMapper.xml

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

@@ -0,0 +1,5 @@
+alter table wm_score_package
+    add drugtable varchar(255) null comment '推广药品id';
+
+alter table wm_wk_article
+    add source_ent varchar(255) null comment '文章来源(来源企业)';

+ 35 - 37
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -1451,6 +1451,8 @@ public class ApiController {
 		if (StringUtils.isNotEmpty(wmWkArticle.getTitle())) {
 			wrapper.like(WmWkArticle::getTitle, wmWkArticle.getTitle());
 		}
+		wrapper.apply("(FIND_IN_SET({0}, source_ent) OR FIND_IN_SET({1}, source_ent))",
+				String.valueOf(SecurityUtils.getUser().getDeptId()), "1");
 		wrapper.orderByDesc(WmWkArticle::getHotFlag);
 		wrapper.orderByDesc(WmWkArticle::getCreateTime);
 		IPage<WmWkArticle> pages = wmWkArticleService.page(page, wrapper);
@@ -3008,51 +3010,47 @@ public class ApiController {
 
 		List<Map<String, Object>> listMap = new ArrayList<>();
 
-		for (WmScorePackageStatus item : statusList) {
-			WmScorePackage wmScorePackage = wmScorePackageService.getOne(Wrappers.<WmScorePackage>lambdaQuery()
-					.eq(WmScorePackage::getId, item.getPackageId()));
-			if (null != wmScorePackage) {
-				if ("0".equals(wmScorePackage.getTaskAddFlag())) {
-					continue;
-				}
-				if ("1".equals(wmScorePackage.getEnableFlag())) {
-					continue;
-				}
-				if (PackageTypeEnum.TYPE2_SETTLE_PACKAGE.val().equals(wmScorePackage.getPackageType2())
-						&& !PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val().equals(wmScorePackage.getPackageType1())) {
-					continue;
-				}
-				if ("3".equals(wmScorePackage.getPackageType1())) {
-					continue;
-				}
-				if (ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList())) {
-					continue;
-				}
-				boolean flag = false;
-				for (String name : wmScorePackage.getDrugProducerList()) {
-					if (StringUtils.equals(name, drugProducer)) {
-						flag = true;
-						break;
-					}
-				}
+		// 获取领包记录对应的积分包ID && 获取积分包信息
+		Set<String> pkgIds = statusList.stream().map(WmScorePackageStatus::getPackageId).collect(Collectors.toSet());
+		// 过滤有效任务类型
+		List<WmScoreTaskType> scoreTaskTypes = wmScoreTaskTypeService.list(Wrappers.<WmScoreTaskType>lambdaQuery()
+				.eq(WmScoreTaskType::getTaskTypeId, type)
+				.in(WmScoreTaskType::getScoreId, pkgIds));
 
-				if (!flag) {
-					continue;
-				}
+		Set<String> availPkgIds = scoreTaskTypes.stream().map(WmScoreTaskType::getScoreId).collect(Collectors.toSet());
+		if (CollUtil.isEmpty(availPkgIds)) {
+			return R.ok(Collections.emptyList());
+		}
 
-				// 过滤有效任务类型
-				WmScoreTaskType taskType = new WmScoreTaskType();
-				taskType.setTaskTypeId(type);
-				taskType.setScoreId(wmScorePackage.getId());
-				int total = wmScoreTaskTypeService.count(Wrappers.query(taskType));
+		List<WmScorePackage> packages = wmScorePackageService.listByIds(availPkgIds);
 
-				if (total != 0) {
+		for (WmScorePackage wmScorePackage : packages) {
+
+			if ("0".equals(wmScorePackage.getTaskAddFlag())
+					|| "1".equals(wmScorePackage.getEnableFlag())
+					|| "3".equals(wmScorePackage.getPackageType1())
+					|| (PackageTypeEnum.TYPE2_SETTLE_PACKAGE.val().equals(wmScorePackage.getPackageType2())
+					&& !PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val().equals(wmScorePackage.getPackageType1()))) {
+				continue;
+			}
+
+			// 推广药品企业drugProducerList不为空, 则走推广药品企业的判断(历史数据判断), 否则判断推广药品是否包含(新数据判断)
+			if (ArrayUtil.isEmpty(wmScorePackage.getDrugProducerList())) {
+				// 只要关联了推广药品的积分包
+				if (ArrayUtil.contains(wmScorePackage.getDrugtable(), album.getGlyp())) {
+					Map<String, Object> map = new HashMap<>();
+					map.put("label", wmScorePackage.getScorePackageName());
+					map.put("value", wmScorePackage.getId());
+					listMap.add(map);
+				}
+			} else {
+				// 只要关联了推广药品企业的积分包(兼容历史数据)
+				if (ArrayUtil.contains(wmScorePackage.getDrugProducerList(), drugProducer)) {
 					Map<String, Object> map = new HashMap<>();
 					map.put("label", wmScorePackage.getScorePackageName());
 					map.put("value", wmScorePackage.getId());
 					listMap.add(map);
 				}
-
 			}
 		}
 		return R.ok(listMap);

+ 31 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaDrugEntDrugtableController.java

@@ -18,6 +18,7 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
 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.OrderItem;
@@ -25,11 +26,14 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 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.service.WmDaDrugEntService;
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEntDrugtable;
 import com.qunzhixinxi.hnqz.admin.service.WmDaDrugEntDrugtableService;
+import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -37,6 +41,7 @@ import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
+import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -54,6 +59,7 @@ public class WmDaDrugEntDrugtableController {
 
 	private final WmDaDrugEntDrugtableService wmDaDrugEntDrugtableService;
 	private final WmDaDrugEntService wmDaDrugEntService;
+	private final WmScorePackageService wmScorePackageService;
 
 	/**
 	 * 分页查询
@@ -201,7 +207,7 @@ public class WmDaDrugEntDrugtableController {
 	}
 
 	/**
-	 * 获取药品生产企业名称列表
+	 * 获取药品生产企业名称列表(已废弃,改为接口/list-drug-table直接获取药品, 兼容历史数据需要用到)
 	 *
 	 * @param deptId 部门id
 	 * @return 名称列表
@@ -216,12 +222,15 @@ public class WmDaDrugEntDrugtableController {
 	 * 获取药品列表
 	 *
 	 * @param drugEntName 部门id
+	 * @param packageId 积分包id
 	 * @return 名称列表
 	 */
 	@GetMapping(value = "/list-drug-table")
-	public R listDrugByDrugEntName(@RequestParam(value = "drugEntName") String drugEntName) {
+	public R listDrugByDrugEntName(@RequestParam(value = "drugEntName", required = false) String drugEntName,
+								   @RequestParam(value = "packageId") String packageId) {
 
-		if (StrUtil.isNotEmpty(drugEntName)){
+		// 兼容历史数据(通过推广药品企业查询药品)
+		if (StrUtil.isNotEmpty(drugEntName)) {
 			List<String> split = StrUtil.split(drugEntName, StrUtil.COMMA).stream().filter(StrUtil::isNotEmpty).collect(Collectors.toList());
 			if (CollUtil.isNotEmpty(split)){
 				return R.ok(wmDaDrugEntDrugtableService.list(Wrappers.<WmDaDrugEntDrugtable>lambdaQuery().in(WmDaDrugEntDrugtable::getDrugEntName, split))
@@ -229,9 +238,27 @@ public class WmDaDrugEntDrugtableController {
 			}
 
 		}
+
+		// 查询积分包的推广药品id
+		WmScorePackage scorePackage = wmScorePackageService.getById(packageId);
+		if (ArrayUtil.isNotEmpty(scorePackage.getDrugtable())) {
+			List<WmDaDrugEntDrugtable> drugEntDrugtables =
+					wmDaDrugEntDrugtableService.listByIds(Arrays.stream(scorePackage.getDrugtable()).collect(Collectors.toSet()));
+			return R.ok(drugEntDrugtables.stream().map(WmDaDrugEntDrugtable::getDrugname).collect(Collectors.toList()));
+		}
+
 		return R.ok();
 	}
 
-
+	/**
+	 * 获取分配给当前企业的药品列表
+	 *
+	 * @return {@link R}<{@link ?}> 药品列表
+	 */
+	@GetMapping("/list-drug")
+	public R<?> listDrugByDeptId() {
+		Integer deptId = SecurityUtils.getUser().getDeptId();
+		return R.ok(wmDaDrugEntDrugtableService.listDrugByDeptId(deptId));
+	}
 
 }

+ 9 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -1669,13 +1669,21 @@ public class WmScorePackageController {
 		wmScorePackage.setSendPackageDeptId(deptId.toString());
 		wmScorePackage.setAllocationDate(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN).format(now));
 
-		if (StringUtils.isNotEmpty(relPkgId) && ArrayUtils.isEmpty(wmScorePackage.getDrugProducerList())) {
+		// 关联上级推广药品企业(兼容历史)
+		if (StringUtils.isNotEmpty(relPkgId)) {
 			WmScorePackage relateSp = wmScorePackageService.getById(relPkgId);
 			if (relateSp != null) {
 				Set<String> producerNames = wmDaDrugEntDrugtableService.listDrugProducerByDeptId(Integer.parseInt(relateSp.getDeptId()));
 				wmScorePackage.setDrugProducerList(producerNames.toArray(new String[0]));
 			}
 		}
+		// 关联上级推广药品
+		if (StringUtils.isNotEmpty(relPkgId) && ArrayUtils.isEmpty(wmScorePackage.getDrugtable())) {
+			WmScorePackage relateSp = wmScorePackageService.getById(relPkgId);
+			if (relateSp != null) {
+				wmScorePackage.setDrugtable(wmScorePackage.getDrugtable());
+			}
+		}
 
 		SysDept sysDeptRelatedService = sysDeptService.getById(Integer.valueOf(wmScorePackage.getRelatedService()));
 		if (StrUtil.isBlank(wmScorePackage.getTypeid())) {

+ 5 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmWkArticleController.java

@@ -1,5 +1,6 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
+import cn.hutool.core.util.ArrayUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -9,6 +10,7 @@ import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.admin.entity.WmWkArticle;
 import com.qunzhixinxi.hnqz.admin.service.WmWkArticleService;
+import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import lombok.AllArgsConstructor;
@@ -70,6 +72,9 @@ public class WmWkArticleController {
 		if (null != wmWkArticle.getSource()) {
 			wrappers.eq(true, "source", wmWkArticle.getSource());
 		}
+		if (ArrayUtil.isNotEmpty(wmWkArticle.getSourceEnt())) {
+			wrappers.apply("FIND_IN_SET({0}, source_ent)", wmWkArticle.getSourceEnt()[0]);
+		}
 
 		wrappers.eq("del_flag", DelEnum.NOT_DEL.val());
 		wrappers.orderByDesc("create_time");

+ 9 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmScorePackage.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmPkgQuizRelation;
 import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmReportOpt;
@@ -17,6 +18,7 @@ import lombok.Getter;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -26,7 +28,7 @@ import java.util.Set;
  * @date 2020-06-25 23:35:42
  */
 @Data
-@TableName("wm_score_package")
+@TableName(value = "wm_score_package")
 @EqualsAndHashCode(callSuper = true)
 public class WmScorePackage extends Model<WmScorePackage> {
 	private static final long serialVersionUID = 1L;
@@ -471,6 +473,7 @@ public class WmScorePackage extends Model<WmScorePackage> {
 	/**
 	 * 关联药品的生产厂商列表
 	 */
+	@Deprecated
 	@TableField(value = "drug_producer")
 	private String[] drugProducerList;
 
@@ -494,6 +497,11 @@ public class WmScorePackage extends Model<WmScorePackage> {
 	 */
 	private BigDecimal entTaskLimit;
 
+	/**
+	 * 推广药品id
+	 */
+	private String[] drugtable;
+
 	/**
 	 * 获取积分包的关联试卷
 	 */

+ 4 - 1
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmWkArticle.java

@@ -102,6 +102,9 @@ public class WmWkArticle extends Model<WmWkArticle> {
 
 	private String area;
 
-
+	/**
+	 * 文章来源(来源企业)
+	 */
+	private String[] sourceEnt;
 
 }

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

@@ -24,6 +24,7 @@ import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEntDrugtable;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -64,4 +65,13 @@ public interface WmDaDrugEntDrugtableService extends IService<WmDaDrugEntDrugtab
 	 * @return 生产企业列表
 	 */
 	Set<String> listDrugProducerByDeptId(Integer deptId);
+
+
+	/**
+	 * 获取分配给指定企业的药品列表
+	 *
+	 * @param deptId 部门id
+	 * @return {@link List}<{@link Map}<{@link String}, {@link String}>>
+	 */
+	List<Map<String, String>> listDrugByDeptId(Integer deptId);
 }

+ 50 - 14
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaDistributionServiceImpl.java

@@ -759,7 +759,7 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 			}
 
 			// 校验地址
-			String address = StrUtil.cleanBlank(excelModel.getName());
+			String address = StrUtil.cleanBlank(excelModel.getAddress());
 			if (StrUtil.isBlank(address)) {
 				log.error("地址为空");
 				errorMap(errorMap, "地址为空", excelModel.getNumber());
@@ -776,6 +776,54 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 				errorMap(errorMap, "名称已存在", excelModel.getNumber());
 			}
 
+			// 统一社会信用代码
+			if (StrUtil.isBlank(excelModel.getCode())) {
+				log.error("统一社会信用代码为空");
+				errorMap(errorMap, "统一社会信用代码为空", excelModel.getNumber());
+			} else {
+				distribution.setShyshxydm(excelModel.getCode());
+			}
+
+			// 公司注册地
+			if (StrUtil.isBlank(excelModel.getRegisteredAddress())) {
+				log.error("公司注册地为空");
+				errorMap(errorMap, "公司注册地为空", excelModel.getNumber());
+			} else {
+				distribution.setGszcd(excelModel.getRegisteredAddress());
+			}
+
+			// 注册资本
+			if (StrUtil.isBlank(excelModel.getRegisteredCapital())) {
+				log.error("注册资本为空");
+				errorMap(errorMap, "注册资本为空", excelModel.getNumber());
+			} else {
+				distribution.setZczb(excelModel.getRegisteredCapital());
+			}
+
+			// GSP证书编号
+			if (StrUtil.isBlank(excelModel.getCertificateNumber())) {
+				log.error("GSP证书编号为空");
+				errorMap(errorMap, "GSP证书编号为空", excelModel.getNumber());
+			} else {
+				distribution.setGspzsbh(excelModel.getCertificateNumber());
+			}
+
+			// 法定代表人
+			if (StrUtil.isBlank(excelModel.getLegalRepresentative())) {
+				log.error("法定代表人为空");
+				errorMap(errorMap, "法定代表人为空", excelModel.getNumber());
+			} else {
+				distribution.setFrdb(excelModel.getLegalRepresentative());
+			}
+
+			// 药品信息化追溯体系
+			if (StrUtil.isBlank(excelModel.getMedicineTraceability())) {
+				log.error("药品信息化追溯体系为空");
+				errorMap(errorMap, "药品信息化追溯体系为空", excelModel.getNumber());
+			} else {
+				distribution.setMedicineTraceability(excelModel.getMedicineTraceability());
+			}
+
 			// 记录正确的结果
 			LocalDateTime now = LocalDateTime.now();
 			distribution.setCreateTime(now);
@@ -790,20 +838,8 @@ public class WmDaDistributionServiceImpl extends ServiceImpl<WmDaDistributionMap
 				distribution.setCity(latAndLng.getCity());
 				distribution.setArea(latAndLng.getArea());
 			}
-			// 公司名称
+			// 公司规模
 			distribution.setGsgm(excelModel.getSize());
-			// 统一社会信用代码
-			distribution.setShyshxydm(excelModel.getCode());
-			// 公司注册地
-			distribution.setGszcd(excelModel.getRegisteredAddress());
-			// 注册资本
-			distribution.setZczb(excelModel.getRegisteredCapital());
-			// GSP证书编号
-			distribution.setGspzsbh(excelModel.getCertificateNumber());
-			// 法定代表人
-			distribution.setFrdb(excelModel.getLegalRepresentative());
-			// 药品信息化追溯体系
-			distribution.setMedicineTraceability(excelModel.getMedicineTraceability());
 			// 追溯体系介绍
 			distribution.setMedicineTraceabilityOther(excelModel.getMedicineTraceabilityDesc());
 			// 公司简介

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

@@ -22,6 +22,7 @@ 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.entity.ReAlbumDrug;
 import com.qunzhixinxi.hnqz.admin.entity.ReDeptDrug;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEntDrugtable;
@@ -37,8 +38,11 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -147,5 +151,36 @@ public class WmDaDrugEntDrugtableServiceImpl extends ServiceImpl<WmDaDrugEntDrug
 		return R.ok();
 	}
 
+	/**
+	 * 获取分配给指定企业的药品列表
+	 *
+	 * @param deptId 部门id
+	 * @return {@link List}<{@link Map}<{@link String}, {@link String}>>
+	 */
+	@Override
+	public List<Map<String, String>> listDrugByDeptId(Integer deptId) {
+		Set<Integer> drugIds = reDeptDrugService.list(Wrappers.<ReDeptDrug>lambdaQuery()
+						.eq(ReDeptDrug::getDeptId, deptId))
+				.stream()
+				.mapToInt(ReDeptDrug::getDrugId)
+				.boxed()
+				.collect(Collectors.toSet());
+
+		if (CollectionUtil.isEmpty(drugIds)) {
+			return Collections.emptyList();
+		}
 
+		List<WmDaDrugEntDrugtable> list = this.list(Wrappers.<WmDaDrugEntDrugtable>lambdaQuery()
+				.eq(WmDaDrugEntDrugtable::getDelFlag, CommonConstants.STATUS_NORMAL)
+				.eq(WmDaDrugEntDrugtable::getEnableFlag, CommonConstants.STATUS_NORMAL)
+				.in(WmDaDrugEntDrugtable::getId, drugIds));
+
+		return list.stream()
+				.map(drug -> {
+					Map<String, String> map = new HashMap<>();
+					map.put("drug_id", drug.getId());
+					map.put("drug_name", drug.getDrugnameTy());
+					return map;
+				}).collect(Collectors.toList());
+	}
 }

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

@@ -814,7 +814,7 @@ public class WmDaHospitalServiceImpl extends ServiceImpl<WmDaHospitalMapper, WmD
 			}
 
 			// 校验地址
-			String address = StrUtil.cleanBlank(excelModel.getName());
+			String address = StrUtil.cleanBlank(excelModel.getAddress());
 			if (StrUtil.isBlank(address)) {
 				log.error("{} 地址为空", name);
 				errorMap(errorMap, "地址为空", excelModel.getNumber());

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

@@ -489,7 +489,7 @@ public class WmDaPharmacyServiceImpl extends ServiceImpl<WmDaPharmacyMapper, WmD
 			}
 
 			// 校验地址
-			String address = StrUtil.cleanBlank(excelModel.getName());
+			String address = StrUtil.cleanBlank(excelModel.getAddress());
 			if (StrUtil.isBlank(address)) {
 				log.error("地址为空");
 				errorMap(errorMap, "地址为空", excelModel.getNumber());

+ 10 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmScorePackageServiceImpl.java

@@ -54,6 +54,7 @@ import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.scheduling.annotation.Async;
@@ -769,6 +770,15 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 			if (relationScore == null) {
 				return R.failed("未查询到关联积分包!");
 			}
+
+			// 关联上级推广药品企业(兼容历史)
+			Set<String> producerNames = wmDaDrugEntDrugtableService.listDrugProducerByDeptId(Integer.parseInt(relationScore.getDeptId()));
+			wmScorePackage.setDrugProducerList(producerNames.toArray(new String[0]));
+			// 关联上级推广药品
+			if (ArrayUtil.isEmpty(wmScorePackage.getDrugtable())) {
+				wmScorePackage.setDrugtable(wmScorePackage.getDrugtable());
+			}
+
 			wmScorePackage.setDrugEntId(relationScore.getDrugEntId());
 			wmScorePackage.setRuleId(relationScore.getRuleId());
 			wmScorePackage.setSendPackageDeptId(currentUser.getDeptId() + "");

BIN
hnqz-upms/hnqz-upms-biz/src/main/resources/excel/batch_create_distribution_template.xlsx


BIN
hnqz-upms/hnqz-upms-biz/src/main/resources/excel/batch_create_hospital_template.xlsx


BIN
hnqz-upms/hnqz-upms-biz/src/main/resources/excel/batch_create_pharmacy_template.xlsx


+ 1 - 1
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageMapper.xml

@@ -94,7 +94,7 @@
 		<result property="drugProducerList" column="drug_producer"/>
 		<result property="omsOrderSn" column="oms_order_sn"/>
 		<result property="packageSn" column="pkg_sn"/>
-
+		<result property="drugtable" column="drugtable"/>
 	</resultMap>
 
 	<select id="listWmScorePackageAndTask" resultMap="wmScorePackageMap">