فهرست منبع

fix: 药店调查批量导入任务类型test类

lixuesong 3 سال پیش
والد
کامیت
9b73578daf

+ 15 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/SysDeptMapper.java

@@ -70,4 +70,19 @@ public interface SysDeptMapper extends DataScopeMapper<SysDept> {
 	List getDeptConvertToName();
 
 	List getChildDept(@Param("query") SysDept sysDept);
+
+	/**
+	 * 查询所有dept
+	 *
+	 * @return
+	 */
+	List<SysDept> listAllDept();
+
+	/**
+	 * 根据id批量查询
+	 *
+	 * @param ids
+	 * @return
+	 */
+	List<SysDept> selectByIds(@Param("ids") List<Integer> ids);
 }

+ 13 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/SysDeptMapper.xml

@@ -223,4 +223,17 @@
 	<select id="getDeptConvertToName" resultType="map">
 		select  dept_id  deptId, `name` from sys_dept
 	</select>
+
+	<!-- 查询所有dept -->
+	<select id="listAllDept" resultMap="sysDeptMap">
+		select * from sys_dept
+	</select>
+
+	<!-- 根据id批量查询 -->
+	<select id="selectByIds" resultMap="sysDeptMap">
+		select * from sys_dept where dept_id in
+		<foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
+			#{item}
+		</foreach>
+	</select>
 </mapper>

+ 77 - 25
hnqz-upms/hnqz-upms-biz/src/test/java/com/qunzhixinxi/hnqz/admin/WmTaskTypeServiceTest.java

@@ -4,16 +4,16 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRelation;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaAgent;
 import com.qunzhixinxi.hnqz.admin.entity.WmDaDrugEnt;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
-import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.SysDeptRelationMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDaAgentMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDaDrugEntMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskTypeMapper;
-import lombok.AllArgsConstructor;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,7 +21,9 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author lixuesong
@@ -37,6 +39,9 @@ public class WmTaskTypeServiceTest {
 	@Autowired
 	private SysDeptMapper sysDeptMapper;
 
+	@Autowired
+	private SysDeptRelationMapper sysDeptRelationMapper;
+
 	@Autowired
 	private WmDaDrugEntMapper wmDaDrugEntMapper;
 
@@ -56,15 +61,21 @@ public class WmTaskTypeServiceTest {
 		List<WmTaskType> tempList = wmTaskTypeMapper.selectList(Wrappers.query(wmTaskTypeQ));
 
 		// 1.第一级是药企的情况
-		List<SysDept> deptList = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery()
-				.eq(SysDept::getLevel, 2));
-
+//		List<SysDept> deptList = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery()
+//				.eq(SysDept::getLevel, 2));
+		List<SysDept> sysDepts1 = sysDeptMapper.listAllDept();
+		List<SysDept> deptList = new ArrayList<>();
+		if (CollectionUtil.isNotEmpty(sysDepts1)) {
+			deptList = sysDepts1.stream()
+					.filter(sysDept -> sysDept.getLevel().equals(2))
+					.collect(Collectors.toList());
+		}
 		// 遍历药企
 		for (SysDept dept : deptList) {
 			// 生成药企任务类型
 			WmDaDrugEnt wmDaDrugEnt = wmDaDrugEntMapper.selectOne(Wrappers.<WmDaDrugEnt>lambdaQuery()
 					.eq(WmDaDrugEnt::getDeptId, dept.getDeptId())
-					.eq(WmDaDrugEnt::getEnableFlag, EnableEnum.ENABLE.val())
+//					.eq(WmDaDrugEnt::getEnableFlag, EnableEnum.ENABLE.val())
 					.eq(WmDaDrugEnt::getDelFlag, DelEnum.NOT_DEL.val()));
 			if (wmDaDrugEnt == null) {
 				continue;
@@ -81,7 +92,11 @@ public class WmTaskTypeServiceTest {
 				newOne.setBaseId(wmTaskType1.getId());
 				newOne.setRuleId(wmDaDrugEnt.getId());
 				newOne.setParentId(wmTaskType1.getParentId());
-				List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.lambdaQuery(newOne));
+				List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+						.eq(WmTaskType::getTaskTypeName, "药店拜访")
+						.eq(WmTaskType::getRuleId, newOne.getRuleId())
+						.eq(WmTaskType::getDeptId, newOne.getDeptId())
+						.eq(WmTaskType::getTaskEntId, newOne.getTaskEntId()));
 				if (CollectionUtil.isEmpty(taskTypeList)) {
 					newOne.setCreateTime(LocalDateTime.now());
 					wmTaskTypeMapper.insert(newOne);
@@ -89,15 +104,25 @@ public class WmTaskTypeServiceTest {
 			}
 
 			// 查询一级CSO
-			List<SysDept> oneCSODeptList = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery()
-					.eq(SysDept::getParentId, dept.getDeptId())
-					.eq(SysDept::getDelFlag, DelEnum.NOT_DEL.val())
-					.eq(SysDept::getLevel, 3));
+			List<SysDeptRelation> deptRelationList = sysDeptRelationMapper.selectList(Wrappers.<SysDeptRelation>lambdaQuery()
+					.eq(SysDeptRelation::getAncestor, dept.getDeptId())
+					.ne(SysDeptRelation::getDescendant, dept.getDeptId()));
+			if (CollectionUtil.isEmpty(deptRelationList)) {
+				continue;
+			}
+			List<Integer> oneCSODeptIdList = deptRelationList.stream()
+					.map(SysDeptRelation::getDescendant)
+					.collect(Collectors.toList());
+			List<SysDept> oneCSODeptList = sysDeptMapper.selectByIds(oneCSODeptIdList);
+//			List<SysDept> oneCSODeptList = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery()
+//					.eq(SysDept::getParentId, dept.getDeptId())
+//					.eq(SysDept::getDelFlag, DelEnum.NOT_DEL.val())
+//					.eq(SysDept::getLevel, 3));
 			for (SysDept oneCSODept : oneCSODeptList) {
 				// 生成药企给一级CSO的任务类型
 				WmDaAgent wmDaAgent = wmDaAgentMapper.selectOne(Wrappers.<WmDaAgent>lambdaQuery()
 						.eq(WmDaAgent::getDelFlag, DelEnum.NOT_DEL.val())
-						.eq(WmDaAgent::getEnableFlag, EnableEnum.ENABLE.val())
+//						.eq(WmDaAgent::getEnableFlag, EnableEnum.ENABLE.val())
 						.eq(WmDaAgent::getDeptId, oneCSODept.getDeptId()));
 				if (wmDaAgent == null) {
 					continue;
@@ -114,7 +139,11 @@ public class WmTaskTypeServiceTest {
 					newOne.setDeptId(wmDaAgent.getDeptId());
 					newOne.setStatus("0");
 					newOne.setBaseId(wmTaskType1.getId());
-					List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.lambdaQuery(newOne));
+					List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+							.eq(WmTaskType::getTaskTypeName, "药店拜访")
+							.eq(WmTaskType::getRuleId, newOne.getRuleId())
+							.eq(WmTaskType::getDeptId, newOne.getDeptId())
+							.eq(WmTaskType::getTaskEntId, newOne.getTaskEntId()));
 					if (CollectionUtil.isEmpty(taskTypeList)) {
 						newOne.setCreateTime(LocalDateTime.now());
 						wmTaskTypeMapper.insert(newOne);
@@ -132,7 +161,11 @@ public class WmTaskTypeServiceTest {
 					newOne.setDeptId(wmDaAgent.getDeptId());
 					newOne.setStatus("0");
 					newOne.setBaseId(wmTaskType2.getId());
-					List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.lambdaQuery(newOne));
+					List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+							.eq(WmTaskType::getTaskTypeName, "药店拜访")
+							.eq(WmTaskType::getRuleId, newOne.getRuleId())
+							.eq(WmTaskType::getDeptId, newOne.getDeptId())
+							.eq(WmTaskType::getTaskEntId, newOne.getTaskEntId()));
 					if (CollectionUtil.isEmpty(taskTypeList)) {
 						newOne.setCreateTime(LocalDateTime.now());
 						wmTaskTypeMapper.insert(newOne);
@@ -142,13 +175,13 @@ public class WmTaskTypeServiceTest {
 				// 查询二级CSO
 				List<SysDept> twoCSODeptList = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery()
 						.eq(SysDept::getParentId, oneCSODept.getDeptId())
-						.eq(SysDept::getDelFlag, DelEnum.NOT_DEL.val())
+//						.eq(SysDept::getDelFlag, DelEnum.NOT_DEL.val())
 						.eq(SysDept::getLevel, 4));
 				for (SysDept twoCSODept : twoCSODeptList) {
 					// 生成二级CSO任务类型
 					WmDaAgent wmDaAgent2 = wmDaAgentMapper.selectOne(Wrappers.<WmDaAgent>lambdaQuery()
 							.eq(WmDaAgent::getDelFlag, DelEnum.NOT_DEL.val())
-							.eq(WmDaAgent::getEnableFlag, EnableEnum.ENABLE.val())
+//							.eq(WmDaAgent::getEnableFlag, EnableEnum.ENABLE.val())
 							.eq(WmDaAgent::getDeptId, twoCSODept.getDeptId()));
 					if (wmDaAgent2 == null) {
 						continue;
@@ -164,7 +197,11 @@ public class WmTaskTypeServiceTest {
 						newOne.setDeptId(wmDaAgent2.getDeptId());
 						newOne.setStatus("0");
 						newOne.setBaseId(wmTaskType2.getId());
-						List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.lambdaQuery(newOne));
+						List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+								.eq(WmTaskType::getTaskTypeName, "药店拜访")
+								.eq(WmTaskType::getRuleId, newOne.getRuleId())
+								.eq(WmTaskType::getDeptId, newOne.getDeptId())
+								.eq(WmTaskType::getTaskEntId, newOne.getTaskEntId()));
 						if (CollectionUtil.isEmpty(taskTypeList)) {
 							newOne.setCreateTime(LocalDateTime.now());
 							wmTaskTypeMapper.insert(newOne);
@@ -177,15 +214,22 @@ public class WmTaskTypeServiceTest {
 		}
 
 		// 2.第一级是CSO的情况
-		List<SysDept> deptList2 = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery()
-				.eq(SysDept::getLevel, 3)
-				.isNull(SysDept::getParentId));
+//		List<SysDept> deptList2 = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery()
+//				.eq(SysDept::getLevel, 3)
+//				.isNull(SysDept::getParentId));
+		List<SysDept> sysDepts = sysDeptMapper.listAllDept();
+		List<SysDept> deptList2 = new ArrayList<>();
+		if (CollectionUtil.isNotEmpty(sysDepts)) {
+			deptList2 = sysDepts.stream()
+					.filter(sysDept -> sysDept.getLevel().equals(3) && sysDept.getParentId() == null)
+					.collect(Collectors.toList());
+		}
 		// 查询一级CSO
 		for (SysDept oneCSODept : deptList2) {
 			// 生成药企给一级CSO的任务类型
 			WmDaAgent wmDaAgent = wmDaAgentMapper.selectOne(Wrappers.<WmDaAgent>lambdaQuery()
 					.eq(WmDaAgent::getDelFlag, DelEnum.NOT_DEL.val())
-					.eq(WmDaAgent::getEnableFlag, EnableEnum.ENABLE.val())
+//					.eq(WmDaAgent::getEnableFlag, EnableEnum.ENABLE.val())
 					.eq(WmDaAgent::getDeptId, oneCSODept.getDeptId()));
 			if (wmDaAgent == null) {
 				continue;
@@ -202,7 +246,11 @@ public class WmTaskTypeServiceTest {
 				newOne.setDeptId(wmDaAgent.getDeptId());
 				newOne.setStatus("0");
 				newOne.setBaseId(wmTaskType2.getId());
-				List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.lambdaQuery(newOne));
+				List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+						.eq(WmTaskType::getTaskTypeName, "药店拜访")
+						.eq(WmTaskType::getRuleId, newOne.getRuleId())
+						.eq(WmTaskType::getDeptId, newOne.getDeptId())
+						.eq(WmTaskType::getTaskEntId, newOne.getTaskEntId()));
 				if (CollectionUtil.isEmpty(taskTypeList)) {
 					newOne.setCreateTime(LocalDateTime.now());
 					wmTaskTypeMapper.insert(newOne);
@@ -212,13 +260,13 @@ public class WmTaskTypeServiceTest {
 			// 查询二级CSO
 			List<SysDept> twoCSODeptList = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery()
 					.eq(SysDept::getParentId, oneCSODept.getDeptId())
-					.eq(SysDept::getDelFlag, DelEnum.NOT_DEL.val())
+//					.eq(SysDept::getDelFlag, DelEnum.NOT_DEL.val())
 					.eq(SysDept::getLevel, 4));
 			for (SysDept twoCSODept : twoCSODeptList) {
 				// 生成二级CSO任务类型
 				WmDaAgent wmDaAgent2 = wmDaAgentMapper.selectOne(Wrappers.<WmDaAgent>lambdaQuery()
 						.eq(WmDaAgent::getDelFlag, DelEnum.NOT_DEL.val())
-						.eq(WmDaAgent::getEnableFlag, EnableEnum.ENABLE.val())
+//						.eq(WmDaAgent::getEnableFlag, EnableEnum.ENABLE.val())
 						.eq(WmDaAgent::getDeptId, twoCSODept.getDeptId()));
 				if (wmDaAgent2 == null) {
 					continue;
@@ -234,7 +282,11 @@ public class WmTaskTypeServiceTest {
 					newOne.setDeptId(wmDaAgent2.getDeptId());
 					newOne.setStatus("0");
 					newOne.setBaseId(wmTaskType2.getId());
-					List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.lambdaQuery(newOne));
+					List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+						.eq(WmTaskType::getTaskTypeName, "药店拜访")
+						.eq(WmTaskType::getRuleId, newOne.getRuleId())
+						.eq(WmTaskType::getDeptId, newOne.getDeptId())
+						.eq(WmTaskType::getTaskEntId, newOne.getTaskEntId()));
 					if (CollectionUtil.isEmpty(taskTypeList)) {
 						newOne.setCreateTime(LocalDateTime.now());
 						wmTaskTypeMapper.insert(newOne);