Преглед на файлове

Merge branch 'feature-packagewithdrugproducer-20210715' into master

# Conflicts:
#	hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmDaAgentMapper.xml
Qutong преди 4 години
родител
ревизия
cc87cbb963

+ 3 - 0
db/v2.0/0715.sql

@@ -0,0 +1,3 @@
+-- 积分包表添加记录关联药品生产厂商列表
+alter table wm_score_package
+    add `drug_producer` VARCHAR(512) null comment '关联药品生产厂商名称';

+ 62 - 0
hnqz-common/hnqz-common-data/src/main/java/com/qunzhixinxi/hnqz/common/data/handler/ListToStringTypeHandler.java

@@ -0,0 +1,62 @@
+package com.qunzhixinxi.hnqz.common.data.handler;
+
+import cn.hutool.core.collection.CollectionUtil;
+import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.type.MappedJdbcTypes;
+import org.apache.ibatis.type.MappedTypes;
+import org.apache.ibatis.type.TypeHandler;
+
+import java.sql.CallableStatement;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * mybatis list与varchar之间转换处理类
+ * 加上下面两行,可以解决mybatis plus的list、getone等查询方法 查不到List<String>的问题
+ * @author lixuesong
+ * @date 2021年07月15日 17:10
+ */
+@MappedTypes(value = { List.class })
+@MappedJdbcTypes(value = JdbcType.VARCHAR)
+public class ListToStringTypeHandler implements TypeHandler<List<String>> {
+
+	@Override
+	public void setParameter(PreparedStatement preparedStatement, int i, List<String> strings, JdbcType jdbcType) throws SQLException {
+		if (CollectionUtil.isNotEmpty(strings)) {
+			preparedStatement.setString(i, String.join(",", strings));
+		} else {
+			preparedStatement.setString(i, "");
+		}
+	}
+
+	@Override
+	public List<String> getResult(ResultSet resultSet, String s) throws SQLException {
+		if (resultSet.getString(s) == null) {
+			return new ArrayList<>();
+		}
+		String[] arr = resultSet.getString(s).split(",");
+		return Arrays.asList(arr);
+	}
+
+	@Override
+	public List<String> getResult(ResultSet resultSet, int i) throws SQLException {
+		if (resultSet.getString(i) == null) {
+			return new ArrayList<>();
+		}
+		String[] arr = resultSet.getString(i).split(",");
+		return Arrays.asList(arr);
+	}
+
+	@Override
+	public List<String> getResult(CallableStatement callableStatement, int i) throws SQLException {
+		if (callableStatement.getString(i) == null) {
+			return new ArrayList<>();
+		}
+		String[] arr = callableStatement.getString(i).split(",");
+		return Arrays.asList(arr);
+	}
+}

+ 11 - 12
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -1,5 +1,6 @@
 package com.qunzhixinxi.hnqz.admin.controller;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.lang.Assert;
@@ -2924,9 +2925,8 @@ public class ApiController {
 		WmWkAlbum album = wmWkAlbumService.getById(albumId);
 		// 获取相册的关联的药品
 		WmDaDrugEntDrugtable daDrugEntDrugtable = wmDaDrugEntDrugtableService.getById(album.getGlyp());
-		// 获取药品的生产企业
-		WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntService.getBaseMapper()
-				.selectOne(Wrappers.<WmDaDrugEnt>query().eq("entname", daDrugEntDrugtable.getDrugEntName()));
+		// 获取关联药品的生产企业
+		String drugProducer = daDrugEntDrugtable.getDrugEntName();
 		//筛选积分包
 		WmScorePackageStatus wmScorePackageStatus = new WmScorePackageStatus();
 		wmScorePackageStatus.setUserId(sysUser.getUserId() + "");
@@ -2940,15 +2940,11 @@ public class ApiController {
 		List<Map<String, Object>> listMap = new ArrayList<>();
 
 		for (WmScorePackageStatus item : statusList) {
-			QueryWrapper<WmScorePackage> wrapper = null;
-			if (wmDaDrugEnt != null) {
-				wrapper = Wrappers.<WmScorePackage>query().eq("id", item.getPackageId())
-						.eq("drug_ent_id", wmDaDrugEnt.getId());
-			} else {
-				wrapper = Wrappers.<WmScorePackage>query().eq("id", item.getPackageId())
-						.eq("send_package_dept_id", sysUser.getDeptId()).isNull("drug_ent_id");
-			}
-			WmScorePackage wmScorePackage = wmScorePackageService.getOne(wrapper);
+			WmScorePackage wmScorePackage = wmScorePackageService.getOne(Wrappers.<WmScorePackage>lambdaQuery()
+					.eq(WmScorePackage::getId, item.getPackageId()));
+			// Map<String, Object> tmp = wmScorePackageService.getOne(Wrappers.<WmScorePackage>lambdaQuery()
+			// 		.eq(WmScorePackage::getId, item.getPackageId()));
+			// WmScorePackage wmScorePackage = BeanUtil.copyProperties(tmp,WmScorePackage.class);
 			if (null != wmScorePackage) {
 				if ("0".equals(wmScorePackage.getTaskAddFlag())) {
 					continue;
@@ -2962,6 +2958,9 @@ public class ApiController {
 				if ("3".equals(wmScorePackage.getPackageType1())) {
 					continue;
 				}
+				if (CollectionUtil.isEmpty(wmScorePackage.getDrugProducerList()) || !wmScorePackage.getDrugProducerList().contains(drugProducer)){
+					continue;
+				}
 				/**
 				 * 过滤有效任务类型
 				 */

+ 18 - 13
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaDrugEntDrugtableController.java

@@ -28,6 +28,7 @@ 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.annotation.Inner;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -75,7 +76,7 @@ public class WmDaDrugEntDrugtableController {
 		if (StringUtils.isNotEmpty(wmDaDrugEntDrugtable.getDrugname())) {
 			wmDaDrugEntDrugtable.setDrugname(null);
 			queryWrapper.like("drugname", drugname);
-		}else {
+		} else {
 			wmDaDrugEntDrugtable.setDrugname(null);
 		}
 
@@ -83,7 +84,7 @@ public class WmDaDrugEntDrugtableController {
 		if (StringUtils.isNotEmpty(wmDaDrugEntDrugtable.getDrugnameTy())) {
 			wmDaDrugEntDrugtable.setDrugnameTy(null);
 			queryWrapper.like("drugname_ty", drugnameTy);
-		}else {
+		} else {
 			wmDaDrugEntDrugtable.setDrugnameTy(null);
 		}
 		if (StringUtils.isEmpty(wmDaDrugEntDrugtable.getDrugEntName())) {
@@ -126,7 +127,7 @@ public class WmDaDrugEntDrugtableController {
 		}
 		WmDaDrugEnt drugEnt = new WmDaDrugEnt();
 		List<WmDaDrugEnt> daDrugEnts = wmDaDrugEntService.list(Wrappers.query(drugEnt));
-		if(CollectionUtils.isNotEmpty(daDrugEnts)){
+		if (CollectionUtils.isNotEmpty(daDrugEnts)) {
 			wmDaDrugEntDrugtable.setDrugEntId(daDrugEnts.get(0).getId());
 		}
 
@@ -148,10 +149,10 @@ public class WmDaDrugEntDrugtableController {
 	public R updateById(@RequestBody WmDaDrugEntDrugtable wmDaDrugEntDrugtable) {
 
 		WmDaDrugEntDrugtable oldData = wmDaDrugEntDrugtableService.getById(wmDaDrugEntDrugtable.getId());
-		if(!oldData.getDrugEntName().equals(wmDaDrugEntDrugtable.getDrugEntName())){
+		if (!oldData.getDrugEntName().equals(wmDaDrugEntDrugtable.getDrugEntName())) {
 			WmDaDrugEnt drugEnt = new WmDaDrugEnt();
 			List<WmDaDrugEnt> daDrugEnts = wmDaDrugEntService.list(Wrappers.query(drugEnt));
-			if(CollectionUtils.isNotEmpty(daDrugEnts)){
+			if (CollectionUtils.isNotEmpty(daDrugEnts)) {
 				wmDaDrugEntDrugtable.setDrugEntId(daDrugEnts.get(0).getId());
 			}
 		}
@@ -166,7 +167,6 @@ public class WmDaDrugEntDrugtableController {
 //		}
 
 
-
 		return R.ok(wmDaDrugEntDrugtableService.updateById(wmDaDrugEntDrugtable));
 	}
 
@@ -198,19 +198,24 @@ public class WmDaDrugEntDrugtableController {
 	@SysLog("新增档案-药企药品")
 	@PostMapping("/distribute")
 	public R distribute(@RequestBody WmDaDrugEntDrugtable wmDaDrugEntDrugtable) {
-
 		return wmDaDrugEntDrugtableService.distribute(wmDaDrugEntDrugtable);
 	}
 
+	@SysLog("获取药品关联部门列表")
 	@GetMapping("/listReDept")
 	public R listReDept(WmDaDrugEntDrugtable wmDaDrugEntDrugtable) {
-
 		return wmDaDrugEntDrugtableService.listReDept(wmDaDrugEntDrugtable);
 	}
 
-//	@GetMapping("/listReDept")
-//	public R distribute(@RequestBody WmDaDrugEntDrugtable wmDaDrugEntDrugtable) {
-//
-//		return wmDaDrugEntDrugtableService.distribute(wmDaDrugEntDrugtable);
-//	}
+	/**
+	 * 获取药品生产企业名称列表
+	 *
+	 * @param deptId 部门id
+	 * @return 名称列表
+	 */
+	@GetMapping(value = "/list-drug-producer")
+	public R listDrugProducerByDeptId(@RequestParam(value = "deptId", required = false) Integer deptId) {
+		return R.ok(wmDaDrugEntDrugtableService.listDrugProducerByDeptId(deptId));
+	}
+
 }

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

@@ -22,16 +22,14 @@ 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.fasterxml.jackson.annotation.JsonFormat;
+import com.qunzhixinxi.hnqz.common.data.handler.ListToStringTypeHandler;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
-import java.util.Date;
 import java.util.List;
 import java.util.Set;
 
@@ -294,6 +292,7 @@ public class WmScorePackage extends Model<WmScorePackage> {
 
 	private LocalDateTime receiveDate;
 
+	@TableField(exist = false)
 	private List<String> drugsIds;
 
 	@ApiModelProperty(value = "结算单号")
@@ -467,4 +466,11 @@ public class WmScorePackage extends Model<WmScorePackage> {
 	 */
 	private String projectNum;
 
+	/**
+	 * 关联药品的生产厂商列表
+	 */
+	@TableField(value = "drug_producer")
+	@ApiModelProperty(value="关联药品的生产厂商列表")
+	private List<String> drugProducerList;
+
 }

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

@@ -23,6 +23,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEntDrugtable;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 
+import java.util.List;
+import java.util.Set;
+
 /**
  * 档案-药企药品
  *
@@ -54,4 +57,11 @@ public interface WmDaDrugEntDrugtableService extends IService<WmDaDrugEntDrugtab
 	 * @return 药品列表
 	 */
 	IPage<WmDaDrugEntDrugtable> listDrugs(Page page, Integer deptId, String drugName);
+
+	/**
+	 * 根据部门id获取关联药品生产生产企业名称
+	 * @param deptId 部门id
+	 * @return 生产企业列表
+	 */
+	Set<String> listDrugProducerByDeptId(Integer deptId);
 }

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

@@ -28,6 +28,7 @@ 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.WmDaDrugEntDrugtableService;
+import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
@@ -36,6 +37,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -53,9 +55,10 @@ public class WmDaDrugEntDrugtableServiceImpl extends ServiceImpl<WmDaDrugEntDrug
 	@Override
 	public R listReDept(WmDaDrugEntDrugtable wmDaDrugEntDrugtable) {
 
-		List<ReDeptDrug> list = reDeptDrugService.list(Wrappers.<ReDeptDrug>lambdaQuery().eq(ReDeptDrug::getDrugId,wmDaDrugEntDrugtable.getId()));
+		List<ReDeptDrug> list = reDeptDrugService.list(Wrappers.<ReDeptDrug>lambdaQuery()
+				.eq(ReDeptDrug::getDrugId, wmDaDrugEntDrugtable.getId()));
 
-		List<String> reDeptList = list.stream().map(p -> p.getDeptId()+"").collect(Collectors.toList());
+		List<String> reDeptList = list.stream().map(p -> p.getDeptId() + "").collect(Collectors.toList());
 		return R.ok(reDeptList);
 	}
 
@@ -70,26 +73,53 @@ public class WmDaDrugEntDrugtableServiceImpl extends ServiceImpl<WmDaDrugEntDrug
 	@Override
 	public IPage<WmDaDrugEntDrugtable> listDrugs(Page page, Integer deptId, String drugName) {
 		LambdaQueryWrapper<WmDaDrugEntDrugtable> queryWrapper = Wrappers.lambdaQuery();
-		if (StringUtils.isNotEmpty(drugName)){
-			queryWrapper.like(WmDaDrugEntDrugtable::getDrugname,drugName);
+		if (StringUtils.isNotEmpty(drugName)) {
+			queryWrapper.like(WmDaDrugEntDrugtable::getDrugname, drugName);
 		}
-		if (deptId != null){
-			final List<ReDeptDrug> reDeptDrugList = reDeptDrugService.list(Wrappers.<ReDeptDrug>lambdaQuery().eq(ReDeptDrug::getDeptId, deptId));
-			final List<Integer> drugIdList = reDeptDrugList.stream().mapToInt(ReDeptDrug::getDrugId).boxed().collect(Collectors.toList());
+		if (deptId != null) {
+			final List<ReDeptDrug> reDeptDrugList = reDeptDrugService.list(Wrappers.<ReDeptDrug>lambdaQuery()
+					.eq(ReDeptDrug::getDeptId, deptId));
+			final List<Integer> drugIdList = reDeptDrugList.stream()
+					.mapToInt(ReDeptDrug::getDrugId)
+					.boxed()
+					.collect(Collectors.toList());
 			queryWrapper.in(WmDaDrugEntDrugtable::getId, drugIdList);
 		}
 
 		return page(page, queryWrapper);
 	}
 
+	/**
+	 * 根据部门id获取关联药品生产生产企业名称
+	 *
+	 * @param deptId 部门id
+	 * @return 生产企业列表
+	 */
+	@Override
+	public Set<String> listDrugProducerByDeptId(Integer deptId) {
+		Set<Integer> drugIds = reDeptDrugService.list(Wrappers.<ReDeptDrug>lambdaQuery()
+				.eq(deptId != null, ReDeptDrug::getDeptId, deptId))
+				.stream()
+				.mapToInt(ReDeptDrug::getDrugId)
+				.boxed()
+				.collect(Collectors.toSet());
+		return list(Wrappers.<WmDaDrugEntDrugtable>lambdaQuery()
+				.eq(WmDaDrugEntDrugtable::getDelFlag, CommonConstants.STATUS_NORMAL)
+				.eq(WmDaDrugEntDrugtable::getEnableFlag, CommonConstants.STATUS_NORMAL)
+				.in(WmDaDrugEntDrugtable::getId, drugIds))
+				.stream()
+				.map(WmDaDrugEntDrugtable::getDrugEntName)
+				.collect(Collectors.toSet());
+	}
+
 	@Override
 	public R distribute(WmDaDrugEntDrugtable wmDaDrugEntDrugtable) {
-		int id  = Integer.parseInt(wmDaDrugEntDrugtable.getId());
+		int id = Integer.parseInt(wmDaDrugEntDrugtable.getId());
 		List<String> deptList = wmDaDrugEntDrugtable.getReDeptList();
 
 		List<ReDeptDrug> reDeptDrugs = new ArrayList<>();
 
-		reDeptDrugService.remove(Wrappers.<ReDeptDrug>lambdaQuery().eq(ReDeptDrug::getDrugId,id));
+		reDeptDrugService.remove(Wrappers.<ReDeptDrug>lambdaQuery().eq(ReDeptDrug::getDrugId, id));
 
 
 		for (String str : deptList) {
@@ -109,4 +139,6 @@ public class WmDaDrugEntDrugtableServiceImpl extends ServiceImpl<WmDaDrugEntDrug
 
 		return R.ok();
 	}
+
+
 }

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

@@ -482,8 +482,10 @@ public class WmScorePackageServiceImpl extends ServiceImpl<WmScorePackageMapper,
 		List<WmScorePackage> packageList = wmScorePackageMapper.getScorePackagekfpjf(wmScorePackage);
 
 		for (WmScorePackage wmScorePackage1 : packageList) {
+			WmScorePackage tmp = getById(wmScorePackage1.getId());
 			List<WmScoreTaskType> taskTypelist = wmScoreTaskTypeMapper.getScoreTaskTypeByScoreId(wmScorePackage1.getId());
 			wmScorePackage1.setTaskTypeList1(taskTypelist);
+			wmScorePackage1.setDrugProducerList(tmp.getDrugProducerList());
 			Set taskTypeSet = taskTypelist.stream().map(WmScoreTaskType::getTaskTypeId).collect(Collectors.toSet());
 			wmScorePackage1.setTaskTypeSet(taskTypeSet);
 		}

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

@@ -342,8 +342,7 @@
 	<select id="listAgentByDeptLevel" resultMap="wmDaAgentMap">
 		SELECT a.*
 		FROM wm_da_agent a
-				 LEFT JOIN
-			 sys_dept d ON d.dept_id = a.dept_id
+			LEFT JOIN sys_dept d ON d.dept_id = a.dept_id
 		WHERE a.del_flag = 0
 		  AND a.enable_flag = 0
 		  AND d.level = #{deptLevel}

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

@@ -91,6 +91,7 @@
 		<result property="oldPackage" column="old_package"/>
 		<result property="scorePackageStatus" column="score_package_status"/>
 		<result property="subType" column="sub_type"/>
+		<result property="drugProducerList" column="drug_producer"/>
 
 	</resultMap>
 
@@ -951,7 +952,7 @@
 		aa.score_package_name,p.score_package_name as relation_score_id,aa.package_user_scope,
 		aa.user_num,aa.task_num,aa.related_service,aa.package_finish_status,aa.user_score,
 		aa.enable_type,aa.settle_flag,aa.score_package_status,aa.belong_date,aa.description,
-		aa.sub_type
+		aa.sub_type, aa.drug_producer
 		from wm_score_package aa left join (
 		select score_package_id,
 		sum(if(report_drug_approval_opinion =1 or report_one_approval_opinion = 1, score, 0))   shtg,