Browse Source

feat: 月度积分上限需求

lixuesong 1 year ago
parent
commit
f904a921b0

+ 37 - 2
hnqz-upms/hnqz-upms-biz/src/test/java/com/qunzhixinxi/hnqz/admin/WmTaskSubmissionRuleServiceTest.java

@@ -8,6 +8,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
 import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskSubmissionPercentRuleService;
 import com.qunzhixinxi.hnqz.admin.service.WmTaskSubmissionRuleService;
@@ -19,11 +20,13 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -43,6 +46,8 @@ public class WmTaskSubmissionRuleServiceTest {
 	private WmTaskSubmissionRuleService taskSubmissionRuleService;
     @Autowired
     private SysDeptService deptService;
+	@Autowired
+	private WmTaskMapper wmTaskMapper;
 
 	/**
 	 * 初始化企业的特定任务规则
@@ -111,12 +116,12 @@ public class WmTaskSubmissionRuleServiceTest {
     /**
      * 增量更新企业的任务类型配置数据
      */
-//    @Test
+    @Test
     public void initNewTaskTypeConfig() {
 
         // 平台新增的任务类型
         Set<String> taskTypeIds = new HashSet<>();
-        taskTypeIds.add("64");
+        taskTypeIds.add("73");
 
             // 查询待修改企业的规则
             List<WmTaskSubmissionPercentRule> queryRules = taskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
@@ -139,4 +144,34 @@ public class WmTaskSubmissionRuleServiceTest {
                 });
             }
     }
+
+	/**
+	 * 月度积分限制校验
+	 */
+//	@Test
+	public void checkMonthScoreLimit() {
+		Integer entId = 1611890565;
+		// 月度积分限制
+		String monthLimitValue;
+		List<WmTaskSubmissionRule> monthScoreLimitRuleList = taskSubmissionRuleService.list(Wrappers.<WmTaskSubmissionRule>lambdaQuery()
+				.in(WmTaskSubmissionRule::getDeptId, CollUtil.newHashSet("entId", 1))
+				.eq(WmTaskSubmissionRule::getOptFlag, CommonFlag.OptFlag.OK)
+				.eq(WmTaskSubmissionRule::getSubCategory, UpmsType.TaskSubCategory.MONTH_SCORE_LIMIT));
+		if (CollUtil.isNotEmpty(monthScoreLimitRuleList)) {
+			Map<Integer, WmTaskSubmissionRule.SubmissionRule> submissionRuleMap = monthScoreLimitRuleList.stream()
+					.collect(Collectors.toMap(WmTaskSubmissionRule::getDeptId, rules ->
+							BeanUtil.toBean(rules.getRule().get(0), WmTaskSubmissionRule.SubmissionRule.class)));
+			WmTaskSubmissionRule.SubmissionRule submissionRule = submissionRuleMap.containsKey(entId) ? submissionRuleMap.get(entId) : submissionRuleMap.get(1);
+			monthLimitValue = String.valueOf(submissionRule.getFrequency().get(0).get("quantity"));
+		} else {
+			monthLimitValue = "300000";
+		}
+
+		LocalDate localDate = LocalDate.now();
+		LocalDateTime startOfMonth = localDate.withDayOfMonth(1).atStartOfDay();
+		LocalDateTime startOfNextMonth = localDate.plusMonths(1).withDayOfMonth(1).atStartOfDay();
+		int total = wmTaskMapper.getUserTaskSubScore("4714", startOfMonth, startOfNextMonth);
+
+		System.out.println("total=" + total + " limit=" + monthLimitValue);
+	}
 }