package com.qunzhixinxi.hnqz.admin; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType; import com.qunzhixinxi.hnqz.admin.api.entity.SysDept; import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule; import com.qunzhixinxi.hnqz.admin.service.SysDeptService; import com.qunzhixinxi.hnqz.admin.service.WmTaskSubmissionPercentRuleService; import com.qunzhixinxi.hnqz.common.core.constant.enums.CommonFlag; import lombok.extern.slf4j.Slf4j; 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 javax.validation.constraints.NotEmpty; import java.time.LocalDateTime; import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; import static java.util.Collections.addAll; /** * @author snows * @date 2023/7/18 17:00 */ @Slf4j @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = {HnqzAdminApplication.class, Test.class}) public class WmTaskSubmissionRuleServiceTest { @Autowired private WmTaskSubmissionPercentRuleService taskSubmissionPercentRuleService; @Autowired private SysDeptService deptService; // @Test public void initTaskTypeConfig() { // 查询所有企业 List depts = deptService.list(); // 查询平台企业的规则 List baseRules = taskSubmissionPercentRuleService.list(Wrappers.lambdaQuery() .eq(WmTaskSubmissionPercentRule::getDeptId, 1) .eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG)); WmTaskSubmissionPercentRule.PercentRule rule = baseRules.get(0).getRule(); depts.forEach(sysDept -> { // 查询待修改企业的规则 List queryRules = taskSubmissionPercentRuleService.list(Wrappers.lambdaQuery() .eq(WmTaskSubmissionPercentRule::getDeptId, sysDept.getDeptId()) .eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG)); if (CollUtil.isEmpty(queryRules)) { log.info("初始化deptId={}", sysDept.getDeptId()); WmTaskSubmissionPercentRule percentRule = new WmTaskSubmissionPercentRule(); percentRule.setDeptId(sysDept.getDeptId()); percentRule.setRule(rule); percentRule.setSubCategory(UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG); percentRule.setOptFlag(CommonFlag.OptFlag.OK); taskSubmissionPercentRuleService.save(percentRule); } }); } /** * 增量更新企业的任务类型配置数据 */ // @Test public void initNewTaskTypeConfig() { // 平台新增的任务类型 Set taskTypeIds = new HashSet<>(); taskTypeIds.add("51"); taskTypeIds.add("52"); taskTypeIds.add("53"); taskTypeIds.add("54"); taskTypeIds.add("55"); taskTypeIds.add("56"); taskTypeIds.add("57"); // 查询待修改企业的规则 List queryRules = taskSubmissionPercentRuleService.list(Wrappers.lambdaQuery() .eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG)); if (CollUtil.isNotEmpty(queryRules)) { queryRules.forEach(percentRule -> { log.info("初始化deptId={}", percentRule.getDeptId()); String[] oldTaskTypeIds = percentRule.getRule().getTaskTypeIds(); WmTaskSubmissionPercentRule updateRule = new WmTaskSubmissionPercentRule(); updateRule.setRuleId(percentRule.getRuleId()); Set newTaskTypeIdSet = Stream.of(oldTaskTypeIds).collect(Collectors.toSet()); newTaskTypeIdSet.addAll(taskTypeIds); WmTaskSubmissionPercentRule.PercentRule updatePercentRule = BeanUtil.copyProperties(percentRule.getRule(), WmTaskSubmissionPercentRule.PercentRule.class); updatePercentRule.setTaskTypeIds(newTaskTypeIdSet.stream().sorted(Comparator.comparingInt(Integer::parseInt)).toArray(String[]::new)); updateRule.setRule(updatePercentRule); updateRule.setUpdateTime(LocalDateTime.now()); taskSubmissionPercentRuleService.updateById(updateRule); }); } } }