|
@@ -12,8 +12,8 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionPercentRule;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.*;
|
|
|
-import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmUserSignMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.*;
|
|
|
import com.qunzhixinxi.hnqz.common.core.constant.enums.CommonFlag;
|
|
@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
import java.time.temporal.ChronoUnit;
|
|
@@ -59,6 +60,7 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
|
|
|
private final WmScorePackageService wmScorePackageService;
|
|
|
private final WmScorePackageStatusService wmScorePackageStatusService;
|
|
|
private final WmTaskService wmTaskService;
|
|
|
+ private final WmTaskMapper wmTaskMapper;
|
|
|
private final WmTaskContentService taskContentService;
|
|
|
private final SysPublicParamService sysPublicParamService;
|
|
|
private final WmDeptTaskTypeTemplateService wmDeptTaskTypeTemplateService;
|
|
@@ -262,6 +264,32 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
|
|
|
throw new BizException(info);
|
|
|
}
|
|
|
|
|
|
+ // 月度积分限制
|
|
|
+ String monthLimitValue;
|
|
|
+ List<WmTaskSubmissionRule> monthScoreLimitRuleList = wmTaskSubmissionRuleService.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(String.valueOf(userId), startOfMonth, startOfNextMonth);
|
|
|
+
|
|
|
+ if (total >= Integer.parseInt(monthLimitValue)) {
|
|
|
+ String info = String.format("每月最多提交%s积分", monthLimitValue);
|
|
|
+ log.warn("系统当前限制月度积分上限:【{}】,提示:【{}】", monthLimitValue, info);
|
|
|
+ throw new BizException(info);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|