Jelajahi Sumber

feat: add taskTypeInit Controller & Test

Qutong 1 tahun lalu
induk
melakukan
74d2e48197

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

@@ -6,6 +6,7 @@ import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -29,5 +30,9 @@ public class InitController {
         return R.ok("TEST:" + System.currentTimeMillis());
     }
 
+    @PostMapping(value = "/tasktype")
+    public R<?> taskTypeInit() {
+        return R.ok();
+    }
 
 }

+ 389 - 0
hnqz-upms/hnqz-upms-biz/src/test/java/com/qunzhixinxi/hnqz/admin/WmTaskTypeServiceTest.java

@@ -0,0 +1,389 @@
+package com.qunzhixinxi.hnqz.admin;
+
+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.constant.enums.DelEnum;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRelation;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaAgent;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmDaDrugEnt;
+import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskType;
+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 com.qunzhixinxi.hnqz.admin.util.AmountToCNUtil;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 批量同步指定的任务类型给所有企业
+ *
+ * @author lixuesong
+ * @date 2021年11月22日 18:55
+ */
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringBootTest(classes = {HnqzAdminApplication.class, Test.class})
+public class WmTaskTypeServiceTest {
+
+	@Autowired
+	private WmTaskTypeMapper wmTaskTypeMapper;
+
+	@Autowired
+	private SysDeptMapper sysDeptMapper;
+
+	@Autowired
+	private SysDeptRelationMapper sysDeptRelationMapper;
+
+	@Autowired
+	private WmDaDrugEntMapper wmDaDrugEntMapper;
+
+	@Autowired
+	private WmDaAgentMapper wmDaAgentMapper;
+	
+	// 任务类型list
+	private static final List<String> taskTypeIdList = new ArrayList<String>(){{
+		add("1");
+		add("2");
+		add("3");
+		add("4");
+		add("5");
+		add("6");
+		add("7");
+		add("8");
+		add("9");
+		add("10");
+		add("11");
+		add("12");
+		add("13");
+		add("14");
+		add("15");
+		add("16");
+		add("17");
+		add("18");
+		add("19");
+		add("21");
+		add("22");
+		add("23");
+		add("24");
+		add("25");
+		add("26");
+		add("27");
+		add("28");
+		add("30");
+		add("31");
+		add("32");
+		add("33");
+		add("34");
+		add("35");
+		add("36");
+		add("37");
+		add("38");
+		add("39");
+		add("40");
+		add("41");
+		add("42");
+		add("43");
+		add("44");
+		add("45");
+		add("46");
+		add("47");
+		add("48");
+		add("49");
+		add("50");
+		add("51");
+		add("52");
+		add("53");
+		add("54");
+		add("55");
+		add("56");
+		add("57");
+		add("58");
+		add("59");
+		add("60");
+		add("61");
+		add("62");
+		add("63");
+		add("64");
+		add("65");
+		add("66");
+		add("67");
+		add("68");
+		add("69");
+		add("70");
+		add("71");
+		add("72");
+		add("73");
+		add("74");
+		add("75");
+		add("76");
+		add("801");
+	}};
+
+	/**
+	 * 批量同步指定的任务类型给所有企业
+	 */
+//	@Test
+	public void test() {
+		List<WmTaskType> tempList = wmTaskTypeMapper.selectBatchIds(taskTypeIdList);
+
+		// 1.第一级是药企的情况
+//		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::getDelFlag, DelEnum.NOT_DEL.val()));
+			if (wmDaDrugEnt == null) {
+				continue;
+			}
+			for (WmTaskType wmTaskType1 : tempList) {
+				WmTaskType newOne = BeanUtil.copyProperties(wmTaskType1, WmTaskType.class);
+				newOne.setCreateTime(null);
+				newOne.setId(null);
+				newOne.setDurgentId(wmDaDrugEnt.getId());
+				newOne.setTaskTypeLevel("2");
+				newOne.setTaskEntId(wmDaDrugEnt.getId());
+				newOne.setDeptId(wmDaDrugEnt.getDeptId());
+				newOne.setStatus("0");
+				newOne.setBaseId(wmTaskType1.getId());
+				newOne.setRuleId(String.valueOf(wmDaDrugEnt.getId()));
+				newOne.setParentId(wmTaskType1.getParentId());
+				newOne.setTaskReceiverType(wmTaskType1.getTaskReceiverType());
+				List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+						.eq(WmTaskType::getTaskTypeName, wmTaskType1.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);
+				}
+			}
+
+			// 查询一级CSO
+			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::getDeptId, oneCSODept.getDeptId()));
+				if (wmDaAgent == null) {
+					continue;
+				}
+				for (WmTaskType wmTaskType1 : tempList) {
+					WmTaskType newOne = BeanUtil.copyProperties(wmTaskType1, WmTaskType.class);
+					newOne.setCreateTime(null);
+					newOne.setId(null);
+					newOne.setLevel1Id(wmDaAgent.getId());
+					newOne.setDurgentId(wmDaDrugEnt.getId());
+					newOne.setTaskTypeLevel("2");
+					newOne.setRuleId(wmDaDrugEnt.getId() + wmDaAgent.getId() + "");
+					newOne.setTaskEntId(wmDaAgent.getId());
+					newOne.setDeptId(wmDaAgent.getDeptId());
+					newOne.setStatus("0");
+					newOne.setBaseId(wmTaskType1.getId());
+					newOne.setTaskReceiverType(wmTaskType1.getTaskReceiverType());
+					List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+							.eq(WmTaskType::getTaskTypeName, wmTaskType1.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);
+					}
+				}
+				// 生成一级CSO的任务类型
+				for (WmTaskType wmTaskType2 : tempList) {
+					WmTaskType newOne = BeanUtil.copyProperties(wmTaskType2, WmTaskType.class);
+					newOne.setCreateTime(null);
+					newOne.setId(null);
+					newOne.setLevel1Id(wmDaAgent.getId());
+					newOne.setTaskTypeLevel("2");
+					newOne.setTaskEntId(wmDaAgent.getId());
+					newOne.setRuleId(String.valueOf(wmDaAgent.getId()));
+					newOne.setDeptId(wmDaAgent.getDeptId());
+					newOne.setStatus("0");
+					newOne.setBaseId(wmTaskType2.getId());
+					newOne.setTaskReceiverType(wmTaskType2.getTaskReceiverType());
+					List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+							.eq(WmTaskType::getTaskTypeName, wmTaskType2.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);
+					}
+				}
+
+				// 查询二级CSO
+				List<SysDept> twoCSODeptList = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery()
+						.eq(SysDept::getParentId, oneCSODept.getDeptId())
+//						.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::getDeptId, twoCSODept.getDeptId()));
+					if (wmDaAgent2 == null) {
+						continue;
+					}
+					for (WmTaskType wmTaskType2 : tempList) {
+						WmTaskType newOne = BeanUtil.copyProperties(wmTaskType2, WmTaskType.class);
+						newOne.setCreateTime(null);
+						newOne.setId(null);
+						newOne.setLevel1Id(wmDaAgent2.getId());
+						newOne.setTaskTypeLevel("2");
+						newOne.setTaskEntId(wmDaAgent2.getId());
+						newOne.setRuleId(String.valueOf(wmDaAgent2.getId()));
+						newOne.setDeptId(wmDaAgent2.getDeptId());
+						newOne.setStatus("0");
+						newOne.setBaseId(wmTaskType2.getId());
+						newOne.setTaskReceiverType(wmTaskType2.getTaskReceiverType());
+						List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+								.eq(WmTaskType::getTaskTypeName, wmTaskType2.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);
+						}
+					}
+				}
+
+			}
+
+		}
+
+		// 2.第一级是CSO的情况
+//		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::getDeptId, oneCSODept.getDeptId()));
+			if (wmDaAgent == null) {
+				continue;
+			}
+			// 生成一级CSO的任务类型
+			for (WmTaskType wmTaskType2 : tempList) {
+				WmTaskType newOne = BeanUtil.copyProperties(wmTaskType2, WmTaskType.class);
+				newOne.setCreateTime(null);
+				newOne.setId(null);
+				newOne.setLevel1Id(wmDaAgent.getId());
+				newOne.setTaskTypeLevel("2");
+				newOne.setTaskEntId(wmDaAgent.getId());
+				newOne.setRuleId(String.valueOf(wmDaAgent.getId()));
+				newOne.setDeptId(wmDaAgent.getDeptId());
+				newOne.setStatus("0");
+				newOne.setBaseId(wmTaskType2.getId());
+				newOne.setTaskReceiverType(wmTaskType2.getTaskReceiverType());
+				List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+						.eq(WmTaskType::getTaskTypeName, wmTaskType2.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);
+				}
+			}
+
+			// 查询二级CSO
+			List<SysDept> twoCSODeptList = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery()
+					.eq(SysDept::getParentId, oneCSODept.getDeptId())
+//					.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::getDeptId, twoCSODept.getDeptId()));
+				if (wmDaAgent2 == null) {
+					continue;
+				}
+				for (WmTaskType wmTaskType2 : tempList) {
+					WmTaskType newOne = BeanUtil.copyProperties(wmTaskType2, WmTaskType.class);
+					newOne.setCreateTime(null);
+					newOne.setId(null);
+					newOne.setLevel1Id(wmDaAgent2.getId());
+					newOne.setTaskTypeLevel("2");
+					newOne.setTaskEntId(wmDaAgent2.getId());
+					newOne.setRuleId(String.valueOf(wmDaAgent2.getId()));
+					newOne.setDeptId(wmDaAgent2.getDeptId());
+					newOne.setStatus("0");
+					newOne.setBaseId(wmTaskType2.getId());
+					newOne.setTaskReceiverType(wmTaskType2.getTaskReceiverType());
+					List<WmTaskType> taskTypeList = wmTaskTypeMapper.selectList(Wrappers.<WmTaskType>lambdaQuery()
+						.eq(WmTaskType::getTaskTypeName, wmTaskType2.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);
+					}
+				}
+			}
+		}
+	}
+
+
+//	public static void main(String[] args) {
+//		String s = AmountToCNUtil.number2CNMontrayUnit(new BigDecimal("323337.08"));
+//		System.out.println(s);
+//	}
+}