浏览代码

feat(service): 一级cso直接给二级cso发包

lixuesong 4 年之前
父节点
当前提交
6f5e1c1e9c

+ 90 - 41
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -17,6 +17,7 @@
 
 package com.qunzhixinxi.hnqz.admin.controller;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.alibaba.csp.sentinel.util.StringUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -25,18 +26,18 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qunzhixinxi.hnqz.admin.api.dto.UserDTO;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
-import com.qunzhixinxi.hnqz.admin.api.entity.SysRole;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.api.vo.ErrorInfoVo;
 import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
 import com.qunzhixinxi.hnqz.admin.api.vo.WmScorePackageVO;
 import com.qunzhixinxi.hnqz.admin.entity.*;
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
+import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.enums.WmScoreTaskTypeEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.*;
 import com.qunzhixinxi.hnqz.admin.service.*;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
-import com.qunzhixinxi.hnqz.common.security.annotation.Inner;
 import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import io.swagger.annotations.Api;
@@ -55,7 +56,6 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.InputStream;
 import java.math.BigDecimal;
@@ -64,7 +64,6 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 
 /**
@@ -1457,7 +1456,8 @@ public class WmScorePackageController {
 			map2.put("kfpjf", "");
 //			wmDaDrugEnts = wmDaAgentService.selectByRelationId(Integer.valueOf(anId.getId()));
 //			wmDaDrugEnts = wmDaAgentService.selectWmDaAgentByDeptIds(anId.getDeptId());
-			List<WmDaAgent> list = wmDaAgentService.selectWmDaAgentByDeptIds(anId.getDeptId());
+//			List<WmDaAgent> list = wmDaAgentService.selectWmDaAgentByDeptIds(anId.getDeptId());
+			List<WmDaAgent> list = wmDaAgentService.listAgentByDeptRelation(Integer.parseInt(anId.getDeptId()));
 			for (int i = 0; i < list.size(); i++) {
 				if (Integer.parseInt(list.get(i).getEnableFlag()) == 0) {
 					wmDaDrugEnts.add(list.get(i));
@@ -1670,36 +1670,60 @@ public class WmScorePackageController {
 			}
 		} else if (sysDeptRuleId.getLevel() == 3) {
 			//一级cso规则ID
-			WmScorePackage wmScorePackageRule = new WmScorePackage();
-			wmScorePackageRule.setDelFlag("0");
-			List<WmScorePackage> wmScorePackageRuleList = wmScorePackageService.list(Wrappers.query(wmScorePackageRule));
-			for (WmScorePackage wm : wmScorePackageRuleList) {
-				if (wmScorePackage.getRelationScoreId().equals(wm.getId())) {
-					WmTaskType wmTaskType = new WmTaskType();
-					wmTaskType.setRuleId(wm.getRuleId());
-					List<WmTaskType> wmTaskTypeList = wmTaskTypeService.selectByRuleId(wmTaskType);
-					if (wmTaskTypeList.size() > 0) {
-						wmScorePackage.setRuleId(wm.getRuleId());
-						wmScorePackage.setDrugEntId(wm.getDrugEntId());
-					} else {
-						return R.failed("需要药企给下级cso分配积分规则");
-					}
-				} else if ("".equals(wmScorePackage.getRelationScoreId())) {
-					WmTaskType wmTaskType = new WmTaskType();
-					wmTaskType.setRuleId(wmScorePackage.getAcceptSug());
-					List<WmTaskType> wmTaskTypeList = wmTaskTypeService.selectByRuleId(wmTaskType);
-					if (wmTaskTypeList.size() > 0) {
-						wmScorePackage.setRuleId(wmScorePackage.getAcceptSug());
-						wmScorePackage.setDrugEntId("");
-					} else {
-						return R.failed("cso没有分配积分呢规则");
-					}
+			WmDaAgent daAgent = wmDaAgentService.getOne(Wrappers.<WmDaAgent>lambdaQuery()
+					.eq(WmDaAgent::getEnableFlag, EnableEnum.ENABLE.val())
+					.eq(WmDaAgent::getDelFlag, DelEnum.NOT_DEL.val())
+					.eq(WmDaAgent::getDeptId, String.valueOf(sysDeptRuleId.getDeptId())));
+			if (StringUtils.isNotBlank(wmScorePackage.getRelationScoreId())) {
+				// 关联了积分包的情况
+				WmScorePackage relationScorePackage = wmScorePackageService.getById(wmScorePackage.getRelationScoreId());
+				if (relationScorePackage != null) {
+					wmScorePackage.setRuleId(relationScorePackage.getRuleId());
+					wmScorePackage.setDrugEntId(relationScorePackage.getDrugEntId());
+				} else {
+					return R.failed("cso没有分配积分规则");
+				}
+//				WmScorePackage wmScorePackageRule = new WmScorePackage();
+//				wmScorePackageRule.setDelFlag("0");
+//				List<WmScorePackage> wmScorePackageRuleList = wmScorePackageService.list(Wrappers.query(wmScorePackageRule));
+//				for (WmScorePackage wm : wmScorePackageRuleList) {
+//					if (wmScorePackage.getRelationScoreId().equals(wm.getId())) {
+//						WmTaskType wmTaskType = new WmTaskType();
+//						wmTaskType.setRuleId(wm.getRuleId());
+//						List<WmTaskType> wmTaskTypeList = wmTaskTypeService.selectByRuleId(wmTaskType);
+//						if (wmTaskTypeList.size() > 0) {
+//							wmScorePackage.setRuleId(wm.getRuleId());
+//							wmScorePackage.setDrugEntId(wm.getDrugEntId());
+//						} else {
+//							return R.failed("需要药企给下级cso分配积分规则");
+//						}
+//					} else if ("".equals(wmScorePackage.getRelationScoreId())) {
+//						WmTaskType wmTaskType = new WmTaskType();
+//						wmTaskType.setRuleId(wmScorePackage.getAcceptSug());
+//						List<WmTaskType> wmTaskTypeList = wmTaskTypeService.selectByRuleId(wmTaskType);
+//						if (wmTaskTypeList.size() > 0) {
+//							wmScorePackage.setRuleId(wmScorePackage.getAcceptSug());
+//							wmScorePackage.setDrugEntId("");
+//						} else {
+//							return R.failed("cso没有分配积分呢规则");
+//						}
+//					}
+//				}
+			} else {
+				// 没有关联积分包的情况
+				List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
+						.eq(WmTaskType::getRuleId, daAgent.getId()));
+				if (CollectionUtil.isNotEmpty(taskTypeList)) {
+					wmScorePackage.setRuleId(wmScorePackage.getAcceptSug());
+					wmScorePackage.setDrugEntId("");
+				} else {
+					return R.failed("cso没有分配积分规则");
 				}
 			}
-		} else if (sysDeptRuleId.getLevel() == 3 && "".equals(wmScorePackage.getRelationScoreId())) {
+		}/* else if (sysDeptRuleId.getLevel() == 3 && "".equals(wmScorePackage.getRelationScoreId())) {
 			wmScorePackage.setRuleId(wmScorePackage.getAcceptSug());
 			wmScorePackage.setDrugEntId("");
-		}
+		}*/
 
 		boolean isAnswer = wmScorePackageService.save(wmScorePackage);
 
@@ -2060,22 +2084,47 @@ public class WmScorePackageController {
 				}
 			} else if (sysDeptRuleId.getLevel() == 3) {
 				//一级cso规则ID
-				WmScorePackage wmScorePackageRule = new WmScorePackage();
-				wmScorePackageRule.setDelFlag("0");
-				List<WmScorePackage> wmScorePackageRuleList = wmScorePackageService.list(Wrappers.query(wmScorePackageRule));
-				for (WmScorePackage wm : wmScorePackageRuleList) {
-					if (wmScorePackage.getRelationScoreId().equals(wm.getId())) {
-						wmScorePackage.setRuleId(wm.getRuleId());
-						wmScorePackage.setDrugEntId(wm.getDrugEntId());
-					} else if (wmScorePackage.getRelationScoreId().equals("")) {
+//				WmScorePackage wmScorePackageRule = new WmScorePackage();
+//				wmScorePackageRule.setDelFlag("0");
+//				List<WmScorePackage> wmScorePackageRuleList = wmScorePackageService.list(Wrappers.query(wmScorePackageRule));
+//				for (WmScorePackage wm : wmScorePackageRuleList) {
+//					if (wmScorePackage.getRelationScoreId().equals(wm.getId())) {
+//						wmScorePackage.setRuleId(wm.getRuleId());
+//						wmScorePackage.setDrugEntId(wm.getDrugEntId());
+//					} else if (wmScorePackage.getRelationScoreId().equals("")) {
+//						wmScorePackage.setRuleId(wmScorePackage.getAcceptSug());
+//						wmScorePackage.setDrugEntId("");
+//					}
+//				}
+				//一级cso规则ID
+				WmDaAgent daAgent = wmDaAgentService.getOne(Wrappers.<WmDaAgent>lambdaQuery()
+						.eq(WmDaAgent::getEnableFlag, EnableEnum.ENABLE.val())
+						.eq(WmDaAgent::getDelFlag, DelEnum.NOT_DEL.val())
+						.eq(WmDaAgent::getDeptId, String.valueOf(sysDeptRuleId.getDeptId())));
+				if (StringUtils.isNotBlank(wmScorePackage.getRelationScoreId())) {
+					// 关联了积分包的情况
+					WmScorePackage relationScorePackage = wmScorePackageService.getById(wmScorePackage.getRelationScoreId());
+					if (relationScorePackage != null) {
+						wmScorePackage.setRuleId(relationScorePackage.getRuleId());
+						wmScorePackage.setDrugEntId(relationScorePackage.getDrugEntId());
+					} else {
+						return R.failed("cso没有分配积分规则");
+					}
+				} else {
+					// 没有关联积分包的情况
+					List<WmTaskType> taskTypeList = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery()
+							.eq(WmTaskType::getRuleId, daAgent.getId()));
+					if (CollectionUtil.isNotEmpty(taskTypeList)) {
 						wmScorePackage.setRuleId(wmScorePackage.getAcceptSug());
 						wmScorePackage.setDrugEntId("");
+					} else {
+						return R.failed("cso没有分配积分规则");
 					}
 				}
-			} else if (sysDeptRuleId.getLevel() == 3 && "".equals(wmScorePackage.getRelationScoreId())) {
+			}/* else if (sysDeptRuleId.getLevel() == 3 && "".equals(wmScorePackage.getRelationScoreId())) {
 				wmScorePackage.setRuleId(wmScorePackage.getAcceptSug());
 				wmScorePackage.setDrugEntId("");
-			}
+			}*/
 
 
 			WmScorePackage queryWm = new WmScorePackage();

+ 8 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmDaAgentMapper.java

@@ -92,4 +92,12 @@ public interface WmDaAgentMapper extends DataScopeMapper<WmDaAgent> {
 	 * @return
 	 */
 	List<WmDaAgent> listAgentByDeptLevel(@Param("deptLevel") String deptLevel);
+
+	/**
+	 * 根据deptRelation查询
+	 *
+	 * @param deptId
+	 * @return
+	 */
+	List<WmDaAgent> listAgentByDeptRelation(@Param("deptId") Integer deptId);
 }

+ 8 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/WmDaAgentService.java

@@ -95,4 +95,12 @@ public interface WmDaAgentService extends IService<WmDaAgent> {
 	 * @return
 	 */
 	List<WmDaAgent> listAgentByDeptLevel(String deptLevel);
+
+	/**
+	 * 根据deptRelation查询
+	 *
+	 * @param deptId
+	 * @return
+	 */
+	List<WmDaAgent> listAgentByDeptRelation(Integer deptId);
 }

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

@@ -824,6 +824,17 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
 	public List<WmDaAgent> listAgentByDeptLevel(String deptLevel) {
 		return wmDaAgentMapper.listAgentByDeptLevel(deptLevel);
 	}
+
+	/**
+	 * 根据deptRelation查询
+	 *
+	 * @param deptId
+	 * @return
+	 */
+	@Override
+	public List<WmDaAgent> listAgentByDeptRelation(Integer deptId) {
+		return wmDaAgentMapper.listAgentByDeptRelation(deptId);
+	}
 //	@Override
 //	public List selectByCsoIds(Integer id) {
 //		return wmDaAgentMapper.selectByCsoIds(id);

+ 11 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmDaAgentMapper.xml

@@ -349,4 +349,15 @@
 		  AND d.level = #{deptLevel}
 	</select>
 
+	<!-- 根据deptRelation查询 -->
+	<select id="listAgentByDeptRelation" resultMap="wmDaAgentMap">
+		SELECT
+			*
+		FROM
+			wm_da_agent a
+				LEFT JOIN sys_dept_relation r ON r.descendant = a.dept_id
+		WHERE
+			r.ancestor = #{deptId, jdbcType=INTEGER}
+	</select>
+
 </mapper>