WmTaskSubmissionRuleServiceTest.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package com.qunzhixinxi.hnqz.admin;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.collection.CollUtil;
  4. import cn.hutool.core.util.ArrayUtil;
  5. import cn.hutool.json.JSONUtil;
  6. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  7. import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
  8. import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
  9. import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
  10. import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
  11. import com.qunzhixinxi.hnqz.admin.service.WmTaskSubmissionPercentRuleService;
  12. import com.qunzhixinxi.hnqz.common.core.constant.enums.CommonFlag;
  13. import lombok.extern.slf4j.Slf4j;
  14. import org.junit.Test;
  15. import org.junit.runner.RunWith;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.boot.test.context.SpringBootTest;
  18. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  19. import javax.validation.constraints.NotEmpty;
  20. import java.time.LocalDateTime;
  21. import java.util.Comparator;
  22. import java.util.HashSet;
  23. import java.util.List;
  24. import java.util.Set;
  25. import java.util.stream.Collectors;
  26. import java.util.stream.Stream;
  27. import static java.util.Collections.addAll;
  28. /**
  29. * @author snows
  30. * @date 2023/7/18 17:00
  31. */
  32. @Slf4j
  33. @RunWith(SpringJUnit4ClassRunner.class)
  34. @SpringBootTest(classes = {HnqzAdminApplication.class, Test.class})
  35. public class WmTaskSubmissionRuleServiceTest {
  36. @Autowired
  37. private WmTaskSubmissionPercentRuleService taskSubmissionPercentRuleService;
  38. @Autowired
  39. private SysDeptService deptService;
  40. // @Test
  41. public void initTaskTypeConfig() {
  42. // 查询所有企业
  43. List<SysDept> depts = deptService.list();
  44. // 查询平台企业的规则
  45. List<WmTaskSubmissionPercentRule> baseRules = taskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
  46. .eq(WmTaskSubmissionPercentRule::getDeptId, 1)
  47. .eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
  48. WmTaskSubmissionPercentRule.PercentRule rule = baseRules.get(0).getRule();
  49. depts.forEach(sysDept -> {
  50. // 查询待修改企业的规则
  51. List<WmTaskSubmissionPercentRule> queryRules = taskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
  52. .eq(WmTaskSubmissionPercentRule::getDeptId, sysDept.getDeptId())
  53. .eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
  54. if (CollUtil.isEmpty(queryRules)) {
  55. log.info("初始化deptId={}", sysDept.getDeptId());
  56. WmTaskSubmissionPercentRule percentRule = new WmTaskSubmissionPercentRule();
  57. percentRule.setDeptId(sysDept.getDeptId());
  58. percentRule.setRule(rule);
  59. percentRule.setSubCategory(UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG);
  60. percentRule.setOptFlag(CommonFlag.OptFlag.OK);
  61. taskSubmissionPercentRuleService.save(percentRule);
  62. }
  63. });
  64. }
  65. /**
  66. * 增量更新企业的任务类型配置数据
  67. */
  68. // @Test
  69. public void initNewTaskTypeConfig() {
  70. // 平台新增的任务类型
  71. Set<String> taskTypeIds = new HashSet<>();
  72. taskTypeIds.add("51");
  73. taskTypeIds.add("52");
  74. taskTypeIds.add("53");
  75. taskTypeIds.add("54");
  76. taskTypeIds.add("55");
  77. taskTypeIds.add("56");
  78. taskTypeIds.add("57");
  79. // 查询待修改企业的规则
  80. List<WmTaskSubmissionPercentRule> queryRules = taskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
  81. .eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
  82. if (CollUtil.isNotEmpty(queryRules)) {
  83. queryRules.forEach(percentRule -> {
  84. log.info("初始化deptId={}", percentRule.getDeptId());
  85. String[] oldTaskTypeIds = percentRule.getRule().getTaskTypeIds();
  86. WmTaskSubmissionPercentRule updateRule = new WmTaskSubmissionPercentRule();
  87. updateRule.setRuleId(percentRule.getRuleId());
  88. Set<String> newTaskTypeIdSet = Stream.of(oldTaskTypeIds).collect(Collectors.toSet());
  89. newTaskTypeIdSet.addAll(taskTypeIds);
  90. WmTaskSubmissionPercentRule.PercentRule updatePercentRule = BeanUtil.copyProperties(percentRule.getRule(), WmTaskSubmissionPercentRule.PercentRule.class);
  91. updatePercentRule.setTaskTypeIds(newTaskTypeIdSet.stream().sorted(Comparator.comparingInt(Integer::parseInt)).toArray(String[]::new));
  92. updateRule.setRule(updatePercentRule);
  93. updateRule.setUpdateTime(LocalDateTime.now());
  94. taskSubmissionPercentRuleService.updateById(updateRule);
  95. });
  96. }
  97. }
  98. }