|
@@ -26,6 +26,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.google.common.collect.ImmutableList;
|
|
import com.google.common.collect.ImmutableList;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsType;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskTypeSubCategory;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskTypeSubCategory;
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
|
|
@@ -35,9 +36,7 @@ import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageStatus;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTask;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTask;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
|
|
-import com.qunzhixinxi.hnqz.admin.entity.WmTaskTypeSubCate2;
|
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmUserSign;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmUserSign;
|
|
-import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDaHospitalMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmDaHospitalMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskContentMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskContentMapper;
|
|
@@ -71,12 +70,12 @@ import java.time.LocalDateTime;
|
|
import java.time.LocalTime;
|
|
import java.time.LocalTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
-import java.util.Arrays;
|
|
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
|
|
+import java.util.function.Function;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -157,17 +156,41 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
|
|
* 校验积分上线
|
|
* 校验积分上线
|
|
*
|
|
*
|
|
* @param userId 用户id
|
|
* @param userId 用户id
|
|
|
|
+ * @param deptId 部门id
|
|
* @param pkgType 积分包类型
|
|
* @param pkgType 积分包类型
|
|
*/
|
|
*/
|
|
- private void limitScore(Integer userId, String pkgType) {
|
|
|
|
|
|
+ private void limitScore(Integer userId, Integer deptId, String pkgType) {
|
|
|
|
|
|
if ("1".equals(pkgType)) {
|
|
if ("1".equals(pkgType)) {
|
|
|
|
+ String limitValue = "30000";
|
|
|
|
+ // 查询当前企业配置的积分限制
|
|
|
|
+ List<WmTaskSubmissionRule> scoreLimitRuleList = taskSubmissionRuleService.list(Wrappers.<WmTaskSubmissionRule>lambdaQuery()
|
|
|
|
+ .in(WmTaskSubmissionRule::getDeptId, CollUtil.newHashSet(deptId, 1))
|
|
|
|
+ .eq(WmTaskSubmissionRule::getOptFlag, CommonFlag.OptFlag.OK)
|
|
|
|
+ .eq(WmTaskSubmissionRule::getSubCategory, UpmsType.TaskSubCategory.SCORE_LIMIT));
|
|
|
|
+
|
|
|
|
+ // 公共参数配置的
|
|
|
|
+ String userTaskSubScore = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
|
|
|
|
+
|
|
|
|
+ if (CollUtil.isNotEmpty(scoreLimitRuleList)) {
|
|
|
|
+ Map<Integer, WmTaskSubmissionRule.SubmissionRule> submissionRuleMap = scoreLimitRuleList.stream()
|
|
|
|
+ .collect(Collectors.toMap(WmTaskSubmissionRule::getDeptId, rules ->
|
|
|
|
+ BeanUtil.toBean(rules.getRule().get(0), WmTaskSubmissionRule.SubmissionRule.class)));
|
|
|
|
+ WmTaskSubmissionRule.SubmissionRule submissionRule = null;
|
|
|
|
+ if (submissionRuleMap.containsKey(deptId)) {
|
|
|
|
+ submissionRule = submissionRuleMap.get(deptId);
|
|
|
|
+ } else {
|
|
|
|
+ submissionRule = submissionRuleMap.get(1);
|
|
|
|
+ }
|
|
|
|
+ limitValue = String.valueOf(submissionRule.getFrequency().get(0).get("quantity"));
|
|
|
|
+ } else if (StrUtil.isNotBlank(userTaskSubScore)) {
|
|
|
|
+ limitValue = userTaskSubScore;
|
|
|
|
+ }
|
|
|
|
|
|
- Boolean fullFlag = wmTaskService.checkUserTaskSubScore(String.valueOf(userId));
|
|
|
|
|
|
+ Boolean fullFlag = wmTaskService.checkUserTaskSubScore(String.valueOf(userId), limitValue);
|
|
if (fullFlag) {
|
|
if (fullFlag) {
|
|
- String value = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
|
|
|
|
- String info = StringUtils.isEmpty(value) ? "每日最多提交3万积分" : "每日最多提交" + Integer.parseInt(value) + "积分";
|
|
|
|
- log.warn("系统当前限制积分上限:【{}】,提示:【{}】", value, info);
|
|
|
|
|
|
+ String info = String.format("每日最多提交%s积分", limitValue);
|
|
|
|
+ log.warn("系统当前限制积分上限:【{}】,提示:【{}】", limitValue, info);
|
|
throw new RuntimeException(info);
|
|
throw new RuntimeException(info);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -518,7 +541,7 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
|
|
List<WmScorePackageStatus> statusList = checkPackageStatus(sysU.getUserId(), tWmScorePackage.getId());
|
|
List<WmScorePackageStatus> statusList = checkPackageStatus(sysU.getUserId(), tWmScorePackage.getId());
|
|
|
|
|
|
// 检验分值 3W
|
|
// 检验分值 3W
|
|
- this.limitScore(sysU.getUserId(), tWmScorePackage.getPackageType1());
|
|
|
|
|
|
+ this.limitScore(sysU.getUserId(), sysU.getDeptId(), tWmScorePackage.getPackageType1());
|
|
|
|
|
|
// 获取校验规则
|
|
// 获取校验规则
|
|
List<WmTaskSubmissionRule.SubmissionRule> taskSubmissionRule = this.getTaskSubmissionRule(wmTaskContent.getTemp30(), tWmScorePackage.getRelatedService());
|
|
List<WmTaskSubmissionRule.SubmissionRule> taskSubmissionRule = this.getTaskSubmissionRule(wmTaskContent.getTemp30(), tWmScorePackage.getRelatedService());
|