|
@@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.json.JSONArray;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
@@ -555,269 +556,315 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
|
|
|
* 53 基础拜访
|
|
|
* 64 线上学术会议
|
|
|
*
|
|
|
- * @param wmTaskContent 任务内容
|
|
|
+ * @param wmTaskContent1 任务内容
|
|
|
* @return 保存结果
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public R<?> saveTaskContent(WmTaskContent wmTaskContent, String ip, String region) {
|
|
|
+ public R<Map<String, String>> saveTaskContent(WmTaskContent wmTaskContent1, String ip, String region) {
|
|
|
|
|
|
- // 获取积分包
|
|
|
- WmScorePackage tWmScorePackage = this.checkPackage(wmTaskContent.getTemp32());
|
|
|
+ List<WmTaskContent> contents;
|
|
|
|
|
|
- // 校验
|
|
|
- HnqzUser user = SecurityUtils.getUser();
|
|
|
- UserVO sysU = sysUserService.selectUserVoById(user.getId());
|
|
|
+ // 判断积分包参数情况
|
|
|
+ String temp32 = wmTaskContent1.getTemp32();
|
|
|
|
|
|
- // 校验超过60周岁,不能做任务
|
|
|
- Map<String, String> checkResult = sysUserService.checkSixtyYearsOld(sysU);
|
|
|
- if (CollUtil.isNotEmpty(checkResult) && checkResult.containsKey("OVER")) {
|
|
|
- throw new RuntimeException(checkResult.get("OVER"));
|
|
|
- }
|
|
|
+ if (JSONUtil.isJsonArray(temp32)) {
|
|
|
|
|
|
- List<WmScorePackageStatus> statusList = checkPackageStatus(sysU.getUserId(), tWmScorePackage.getId());
|
|
|
+ // 用于硬拷贝
|
|
|
+ String jsonStr = JSONUtil.toJsonStr(wmTaskContent1);
|
|
|
|
|
|
- // 查询任务类型启用状态
|
|
|
- List<WmTaskSubmissionPercentRule> rules = wmTaskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
|
|
|
- .eq(WmTaskSubmissionPercentRule::getDeptId, user.getDeptId())
|
|
|
- .eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
|
|
|
- if (CollUtil.isEmpty(rules)) {
|
|
|
- throw new RuntimeException("当前企业未开启该任务!");
|
|
|
- }
|
|
|
- String[] taskTypeIds = rules.get(0).getRule().getTaskTypeIds();
|
|
|
- if (!ArrayUtil.contains(taskTypeIds, wmTaskContent.getTemp30())) {
|
|
|
- throw new RuntimeException("当前企业未开启该任务!");
|
|
|
- }
|
|
|
|
|
|
- // 检验分值 3W
|
|
|
- this.limitScore(sysU.getUserId(), sysU.getDeptId(), tWmScorePackage.getPackageType1());
|
|
|
+ JSONArray array = JSONUtil.parseArray(temp32);
|
|
|
+ contents = new ArrayList<>(array.size());
|
|
|
|
|
|
- // 校验任务个数
|
|
|
- String taskTypeIdStr = wmTaskContent.getTemp30().trim();
|
|
|
+ array.forEach(item -> {
|
|
|
|
|
|
- if (!StrUtil.equalsAny(taskTypeIdStr, "8", "9", "10", "11")) {
|
|
|
- Integer pId = Integer.valueOf(tWmScorePackage.getId());
|
|
|
- Map<String, List<WmPackageTaskTypeQty>> qtyList = packageTaskTypeQtyService.listPkgTaskTypeQtyByPkgIds(Collections.singletonList(pId)).stream().collect(Collectors.groupingBy(WmPackageTaskTypeQty::getTaskTypeName));
|
|
|
+ WmTaskContent content = JSONUtil.toBean(jsonStr, WmTaskContent.class);
|
|
|
|
|
|
- Map<String, WmTaskType> taskTypeMap = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery().lt(WmTaskType::getId, "100")).stream().collect(Collectors.toMap(WmTaskType::getId, Function.identity()));
|
|
|
+ cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(item);
|
|
|
|
|
|
- WmTaskType taskType = taskTypeMap.get(taskTypeIdStr);
|
|
|
+ String packageId = jsonObject.getStr("packageId");
|
|
|
+ content.setTemp32(packageId);
|
|
|
+ String drugIds = jsonObject.getStr("drugIds");
|
|
|
+ content.setTemp17(drugIds);
|
|
|
|
|
|
- List<WmPackageTaskTypeQty> packageTaskTypeQtyList = qtyList.get(taskType.getTaskTypeName());
|
|
|
+ contents.add(content);
|
|
|
+ });
|
|
|
|
|
|
- if (CollUtil.isEmpty(packageTaskTypeQtyList)) {
|
|
|
- throw new RuntimeException("当前积分包拆解结果中该服务类型数量为:0,不能提交!");
|
|
|
- } else {
|
|
|
|
|
|
- // 获取任务类型比较数据
|
|
|
- Integer count = wmTaskMapper.selectCount(Wrappers.<WmTask>lambdaQuery()
|
|
|
- .in(WmTask::getTaskStatus, 1, 2, 3)
|
|
|
- .eq(WmTask::getTaskTypeId, taskTypeIdStr).eq(WmTask::getScorePackageId, pId.toString()));
|
|
|
+ } else {
|
|
|
|
|
|
- Integer qty = packageTaskTypeQtyList.get(0).getQty();
|
|
|
+ contents = Collections.singletonList(wmTaskContent1);
|
|
|
+ }
|
|
|
|
|
|
- if (qty - count <= 0) {
|
|
|
- // throw new RuntimeException(tWmScorePackage.getScorePackageName() + "可做数量:" + qty + ",已用:" + count + ",剩余:0,不能提交!");
|
|
|
- throw new RuntimeException("【" + tWmScorePackage.getScorePackageName() + "】不含此项服务剩余次数,不能提交!");
|
|
|
- }
|
|
|
+
|
|
|
+ int total = 0;
|
|
|
+ for (WmTaskContent wmTaskContent : contents) {
|
|
|
+
|
|
|
+ // 获取积分包
|
|
|
+ WmScorePackage tWmScorePackage = this.checkPackage(wmTaskContent.getTemp32());
|
|
|
+
|
|
|
+ // 校验
|
|
|
+ HnqzUser user = SecurityUtils.getUser();
|
|
|
+ UserVO sysU = sysUserService.selectUserVoById(user.getId());
|
|
|
+
|
|
|
+ // 校验超过60周岁,不能做任务
|
|
|
+ Map<String, String> checkResult = sysUserService.checkSixtyYearsOld(sysU);
|
|
|
+ if (CollUtil.isNotEmpty(checkResult) && checkResult.containsKey("OVER")) {
|
|
|
+ throw new RuntimeException(checkResult.get("OVER"));
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+ List<WmScorePackageStatus> statusList = checkPackageStatus(sysU.getUserId(), tWmScorePackage.getId());
|
|
|
|
|
|
+ // 查询任务类型启用状态
|
|
|
+ List<WmTaskSubmissionPercentRule> rules = wmTaskSubmissionPercentRuleService.list(Wrappers.<WmTaskSubmissionPercentRule>lambdaQuery()
|
|
|
+ .eq(WmTaskSubmissionPercentRule::getDeptId, user.getDeptId())
|
|
|
+ .eq(WmTaskSubmissionPercentRule::getSubCategory, UpmsType.TaskSubCategory2.TASK_TYPE_CONFIG));
|
|
|
+ if (CollUtil.isEmpty(rules)) {
|
|
|
+ throw new RuntimeException("当前企业未开启该任务!");
|
|
|
+ }
|
|
|
+ String[] taskTypeIds = rules.get(0).getRule().getTaskTypeIds();
|
|
|
+ if (!ArrayUtil.contains(taskTypeIds, wmTaskContent.getTemp30())) {
|
|
|
+ throw new RuntimeException("当前企业未开启该任务!");
|
|
|
+ }
|
|
|
|
|
|
- // 获取校验规则
|
|
|
- // List<WmTaskSubmissionRule.SubmissionRule> taskSubmissionRule = this.getTaskSubmissionRule(wmTaskContent.getTemp30(), tWmScorePackage.getRelatedService());
|
|
|
+ // 检验分值 3W
|
|
|
+ this.limitScore(sysU.getUserId(), sysU.getDeptId(), tWmScorePackage.getPackageType1());
|
|
|
|
|
|
+ // 校验任务个数
|
|
|
+ String taskTypeIdStr = wmTaskContent.getTemp30().trim();
|
|
|
|
|
|
- // 校验提交数据
|
|
|
- // this.checkTaskContent(tWmScorePackage, wmTaskContent, sysU.getUserId(), taskSubmissionRule);
|
|
|
+ if (!StrUtil.equalsAny(taskTypeIdStr, "8", "9", "10", "11")) {
|
|
|
+ Integer pId = Integer.valueOf(tWmScorePackage.getId());
|
|
|
+ Map<String, List<WmPackageTaskTypeQty>> qtyList = packageTaskTypeQtyService.listPkgTaskTypeQtyByPkgIds(Collections.singletonList(pId)).stream().collect(Collectors.groupingBy(WmPackageTaskTypeQty::getTaskTypeName));
|
|
|
|
|
|
- Map<String, String> resultMap = new HashMap<>();
|
|
|
- WmScorePackageStatus scorePackageStatus = statusList.get(0);
|
|
|
- int score = 0;
|
|
|
- if (this.save(wmTaskContent)) {
|
|
|
- if (null != sysU) {
|
|
|
- WmTask wmTask = new WmTask();
|
|
|
- wmTask.setRemoteIp(ip);
|
|
|
- wmTask.setIp2region(region);
|
|
|
- wmTask.setTaskFrom("1");
|
|
|
- LocalDateTime localDateTime = LocalDateTime.now();
|
|
|
- wmTask.setUpdateTime(localDateTime);
|
|
|
- // 任务提交人
|
|
|
- wmTask.setTaskUserId(String.valueOf(sysU.getUserId()));
|
|
|
- // 调研时间
|
|
|
- wmTask.setLookintoDate(localDateTime);
|
|
|
- wmTask.setDrugEntId(tWmScorePackage.getDrugEntId());
|
|
|
- wmTask.setTaskTypeId(wmTaskContent.getTemp30());
|
|
|
-
|
|
|
- WmTaskType wmTaskType = new WmTaskType();
|
|
|
- wmTaskType.setRuleId(tWmScorePackage.getRuleId());
|
|
|
- WmTaskType wmTaskType1 = wmTaskTypeService.getById(wmTaskContent.getTemp30());
|
|
|
- wmTaskType.setTaskTypeName(wmTaskType1.getTaskTypeName());
|
|
|
- score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType);
|
|
|
-
|
|
|
- // 校验任务类型是否启用
|
|
|
- WmTaskType _baseTaskType = wmTaskTypeService.getById(wmTaskContent.getTemp30());
|
|
|
- WmTaskType queryTaskType = new WmTaskType();
|
|
|
- queryTaskType.setRuleId(tWmScorePackage.getRuleId());
|
|
|
- queryTaskType.setTaskTypeName(_baseTaskType.getTaskTypeName());
|
|
|
- queryTaskType.setDelFlag("0");
|
|
|
- List<WmTaskType> deptTaskTypes = wmTaskTypeService.list(Wrappers.query(queryTaskType));
|
|
|
- if (CollUtil.isEmpty(deptTaskTypes)) {
|
|
|
- throw new RuntimeException(_baseTaskType.getTaskTypeName() + "任务类型不存在");
|
|
|
- }
|
|
|
- if (EnableEnum.DISABLE.val().equals(deptTaskTypes.get(0).getEnableFlag())) {
|
|
|
- throw new RuntimeException(_baseTaskType.getTaskTypeName() + "任务类型已停用");
|
|
|
- }
|
|
|
+ Map<String, WmTaskType> taskTypeMap = wmTaskTypeService.list(Wrappers.<WmTaskType>lambdaQuery().lt(WmTaskType::getId, "100")).stream().collect(Collectors.toMap(WmTaskType::getId, Function.identity()));
|
|
|
|
|
|
- log.info("获取任务得分:{}", score);
|
|
|
+ WmTaskType taskType = taskTypeMap.get(taskTypeIdStr);
|
|
|
|
|
|
- if (score < 0) {
|
|
|
- return R.failed("获取任务积分失败");
|
|
|
- }
|
|
|
- wmTask.setScore(score);
|
|
|
+ List<WmPackageTaskTypeQty> packageTaskTypeQtyList = qtyList.get(taskType.getTaskTypeName());
|
|
|
|
|
|
- resultMap.put("score", tWmScorePackage.getPackageType1());
|
|
|
- log.warn("获取积分包ID:{}", tWmScorePackage);
|
|
|
+ if (CollUtil.isEmpty(packageTaskTypeQtyList)) {
|
|
|
+ throw new RuntimeException("当前积分包拆解结果中该服务类型数量为:0,不能提交!");
|
|
|
+ } else {
|
|
|
|
|
|
- wmTask.setScorePackageId(tWmScorePackage.getId());
|
|
|
- wmTask.setTaskRuleId(tWmScorePackage.getTaskRuleId());
|
|
|
+ // 获取任务类型比较数据
|
|
|
+ Integer count = wmTaskMapper.selectCount(Wrappers.<WmTask>lambdaQuery()
|
|
|
+ .in(WmTask::getTaskStatus, 1, 2, 3)
|
|
|
+ .eq(WmTask::getTaskTypeId, taskTypeIdStr).eq(WmTask::getScorePackageId, pId.toString()));
|
|
|
|
|
|
- wmTask.setTaskContentId(String.valueOf(wmTaskContent.getId()));
|
|
|
+ Integer qty = packageTaskTypeQtyList.get(0).getQty();
|
|
|
|
|
|
- if (HnqzUtils.isZbRole(sysU.getRoleList(), 5)) {
|
|
|
- wmTask.setTaskUserType("5");
|
|
|
+ if (qty - count <= 0) {
|
|
|
+ // throw new RuntimeException(tWmScorePackage.getScorePackageName() + "可做数量:" + qty + ",已用:" + count + ",剩余:0,不能提交!");
|
|
|
+ throw new RuntimeException("【" + tWmScorePackage.getScorePackageName() + "】不含此项服务剩余次数,不能提交!");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- wmTask.setCreateTime(localDateTime);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
- if (HnqzUtils.isZbRole(sysU.getRoleList(), 6)) {
|
|
|
- wmTask.setTaskUserType("6");
|
|
|
- }
|
|
|
+ // 获取校验规则
|
|
|
+ // List<WmTaskSubmissionRule.SubmissionRule> taskSubmissionRule = this.getTaskSubmissionRule(wmTaskContent.getTemp30(), tWmScorePackage.getRelatedService());
|
|
|
+
|
|
|
+
|
|
|
+ // 校验提交数据
|
|
|
+ // this.checkTaskContent(tWmScorePackage, wmTaskContent, sysU.getUserId(), taskSubmissionRule);
|
|
|
+
|
|
|
+ Map<String, String> resultMap = new HashMap<>();
|
|
|
+ WmScorePackageStatus scorePackageStatus = statusList.get(0);
|
|
|
+ int score = 0;
|
|
|
+ if (this.save(wmTaskContent)) {
|
|
|
+ if (null != sysU) {
|
|
|
+ WmTask wmTask = new WmTask();
|
|
|
+ wmTask.setRemoteIp(ip);
|
|
|
+ wmTask.setIp2region(region);
|
|
|
+ wmTask.setTaskFrom("1");
|
|
|
+ LocalDateTime localDateTime = LocalDateTime.now();
|
|
|
+ wmTask.setUpdateTime(localDateTime);
|
|
|
+ // 任务提交人
|
|
|
+ wmTask.setTaskUserId(String.valueOf(sysU.getUserId()));
|
|
|
+ // 调研时间
|
|
|
+ wmTask.setLookintoDate(localDateTime);
|
|
|
+ wmTask.setDrugEntId(tWmScorePackage.getDrugEntId());
|
|
|
+ wmTask.setTaskTypeId(wmTaskContent.getTemp30());
|
|
|
+
|
|
|
+ WmTaskType wmTaskType = new WmTaskType();
|
|
|
+ wmTaskType.setRuleId(tWmScorePackage.getRuleId());
|
|
|
+ WmTaskType wmTaskType1 = wmTaskTypeService.getById(wmTaskContent.getTemp30());
|
|
|
+ wmTaskType.setTaskTypeName(wmTaskType1.getTaskTypeName());
|
|
|
+ score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType);
|
|
|
+
|
|
|
+ // 校验任务类型是否启用
|
|
|
+ WmTaskType _baseTaskType = wmTaskTypeService.getById(wmTaskContent.getTemp30());
|
|
|
+ WmTaskType queryTaskType = new WmTaskType();
|
|
|
+ queryTaskType.setRuleId(tWmScorePackage.getRuleId());
|
|
|
+ queryTaskType.setTaskTypeName(_baseTaskType.getTaskTypeName());
|
|
|
+ queryTaskType.setDelFlag("0");
|
|
|
+ List<WmTaskType> deptTaskTypes = wmTaskTypeService.list(Wrappers.query(queryTaskType));
|
|
|
+ if (CollUtil.isEmpty(deptTaskTypes)) {
|
|
|
+ throw new RuntimeException(_baseTaskType.getTaskTypeName() + "任务类型不存在");
|
|
|
+ }
|
|
|
+ if (EnableEnum.DISABLE.val().equals(deptTaskTypes.get(0).getEnableFlag())) {
|
|
|
+ throw new RuntimeException(_baseTaskType.getTaskTypeName() + "任务类型已停用");
|
|
|
+ }
|
|
|
|
|
|
- wmTask.setDeptId(sysU.getDeptId() + "");
|
|
|
- wmTask.setSubmitStatus("0");
|
|
|
+ log.info("获取任务得分:{}", score);
|
|
|
|
|
|
- // 不需要平台管理员审核的直接提交上级审核 taskStatus = 2 已提交 否则 taskStatus = 1 待提交
|
|
|
- wmTask.setRealFlag("0");
|
|
|
- wmTask.setTaskStatus("2");
|
|
|
+ if (score < 0) {
|
|
|
+ throw new RuntimeException("获取任务积分失败");
|
|
|
+ // return R.failed("获取任务积分失败");
|
|
|
+ }
|
|
|
+ wmTask.setScore(score);
|
|
|
|
|
|
- wmTask.setTaskNumber(taskSequence.nextNo());
|
|
|
- // 保存任务
|
|
|
- boolean isSave = wmTaskService.save(wmTask);
|
|
|
+ resultMap.put("score", tWmScorePackage.getPackageType1());
|
|
|
+ log.warn("获取积分包ID:{}", tWmScorePackage);
|
|
|
|
|
|
+ wmTask.setScorePackageId(tWmScorePackage.getId());
|
|
|
+ wmTask.setTaskRuleId(tWmScorePackage.getTaskRuleId());
|
|
|
|
|
|
- // 判断任务是否完成
|
|
|
- if (isSave) {
|
|
|
- WmScorePackage wmScorePackage1 = wmScorePackageService.getById(tWmScorePackage.getId());
|
|
|
- if (null != wmScorePackage1) {
|
|
|
- WmTask taskQuery = new WmTask();
|
|
|
- taskQuery.setScorePackageId(tWmScorePackage.getId());
|
|
|
- QueryWrapper<WmTask> taskQueryWrapper = Wrappers.query(taskQuery);
|
|
|
+ wmTask.setTaskContentId(String.valueOf(wmTaskContent.getId()));
|
|
|
|
|
|
- // 查询出 审核通过和审核中的任务
|
|
|
- taskQueryWrapper.lambda()
|
|
|
- .ne(WmTask::getTaskStatus, "4")
|
|
|
- .eq(WmTask::getRealFlag, "0");
|
|
|
-// .ne(WmTask::getRealFlag, "1");
|
|
|
- List<WmTask> wmTaskList = wmTaskService.list(taskQueryWrapper);
|
|
|
+ if (HnqzUtils.isZbRole(sysU.getRoleList(), 5)) {
|
|
|
+ wmTask.setTaskUserType("5");
|
|
|
+ }
|
|
|
|
|
|
- // 判断定量还是定额 1- 定额 2-定量
|
|
|
- if (StrUtil.equals(PackageTypeEnum.TYPE1_SCOTE_PACKAGE.val(), wmScorePackage1.getPackageType1())) {
|
|
|
+ wmTask.setCreateTime(localDateTime);
|
|
|
|
|
|
- int totalCount = 0;
|
|
|
- for (WmTask wmtask : wmTaskList) {
|
|
|
- totalCount += wmtask.getScore();
|
|
|
- }
|
|
|
+ if (HnqzUtils.isZbRole(sysU.getRoleList(), 6)) {
|
|
|
+ wmTask.setTaskUserType("6");
|
|
|
+ }
|
|
|
|
|
|
- if (totalCount >= wmScorePackage1.getScore()) {
|
|
|
- wmScorePackage1.setTaskAddFlag("0");
|
|
|
- scorePackageStatus.setTaskAddFlag("0");
|
|
|
- wmScorePackageStatusService.updateById(scorePackageStatus);
|
|
|
- }
|
|
|
- resultMap.put("type", "1");
|
|
|
- } else if (StrUtil.equals(PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val(), wmScorePackage1.getPackageType1())) {
|
|
|
- // 多人积分包处理
|
|
|
- int totalCount = 0;
|
|
|
- for (WmTask wmtask : wmTaskList) {
|
|
|
- totalCount += wmtask.getScore();
|
|
|
- }
|
|
|
+ wmTask.setDeptId(sysU.getDeptId() + "");
|
|
|
+ wmTask.setSubmitStatus("0");
|
|
|
|
|
|
- if (totalCount >= wmScorePackage1.getScore()) {
|
|
|
- wmScorePackage1.setTaskAddFlag("0");
|
|
|
- List<WmScorePackageStatus> packageStatusList = wmScorePackageStatusService.list(Wrappers.<WmScorePackageStatus>lambdaQuery()
|
|
|
- .eq(WmScorePackageStatus::getStatus, "2")
|
|
|
- .eq(WmScorePackageStatus::getTaskAddFlag, "1")
|
|
|
- .eq(WmScorePackageStatus::getPackageId, tWmScorePackage.getId()));
|
|
|
- if (CollUtil.isNotEmpty(packageStatusList)) {
|
|
|
- packageStatusList.forEach(packageStatus -> {
|
|
|
- WmScorePackageStatus updatePackageStatus = new WmScorePackageStatus();
|
|
|
- updatePackageStatus.setId(packageStatus.getId());
|
|
|
- updatePackageStatus.setTaskAddFlag("0");
|
|
|
- updatePackageStatus.setUpdateTime(LocalDateTime.now());
|
|
|
- wmScorePackageStatusService.updateById(updatePackageStatus);
|
|
|
- });
|
|
|
+ // 不需要平台管理员审核的直接提交上级审核 taskStatus = 2 已提交 否则 taskStatus = 1 待提交
|
|
|
+ wmTask.setRealFlag("0");
|
|
|
+ wmTask.setTaskStatus("2");
|
|
|
+
|
|
|
+ wmTask.setTaskNumber(taskSequence.nextNo());
|
|
|
+ // 保存任务
|
|
|
+ boolean isSave = wmTaskService.save(wmTask);
|
|
|
+
|
|
|
+
|
|
|
+ // 判断任务是否完成
|
|
|
+ if (isSave) {
|
|
|
+ WmScorePackage wmScorePackage1 = wmScorePackageService.getById(tWmScorePackage.getId());
|
|
|
+ if (null != wmScorePackage1) {
|
|
|
+ WmTask taskQuery = new WmTask();
|
|
|
+ taskQuery.setScorePackageId(tWmScorePackage.getId());
|
|
|
+ QueryWrapper<WmTask> taskQueryWrapper = Wrappers.query(taskQuery);
|
|
|
+
|
|
|
+ // 查询出 审核通过和审核中的任务
|
|
|
+ taskQueryWrapper.lambda()
|
|
|
+ .ne(WmTask::getTaskStatus, "4")
|
|
|
+ .eq(WmTask::getRealFlag, "0");
|
|
|
+// .ne(WmTask::getRealFlag, "1");
|
|
|
+ List<WmTask> wmTaskList = wmTaskService.list(taskQueryWrapper);
|
|
|
+
|
|
|
+ // 判断定量还是定额 1- 定额 2-定量
|
|
|
+ if (StrUtil.equals(PackageTypeEnum.TYPE1_SCOTE_PACKAGE.val(), wmScorePackage1.getPackageType1())) {
|
|
|
+
|
|
|
+ int totalCount = 0;
|
|
|
+ for (WmTask wmtask : wmTaskList) {
|
|
|
+ totalCount += wmtask.getScore();
|
|
|
}
|
|
|
- }
|
|
|
- resultMap.put("type", "1");
|
|
|
- } else if ("2".equals(wmScorePackage1.getPackageType1()) || "3".equals(wmScorePackage1.getPackageType1())) {
|
|
|
- score = 0;
|
|
|
-
|
|
|
- List<WmTask> userTaskList = wmTaskList.stream().filter(item ->
|
|
|
- item.getTaskUserId().equals(sysU.getUserId() + "")).collect(Collectors.toList());
|
|
|
-
|
|
|
- if (userTaskList.size() >= scorePackageStatus.getTaskNum()) {
|
|
|
- scorePackageStatus.setTaskAddFlag("0");
|
|
|
- wmScorePackageStatusService.updateById(scorePackageStatus);
|
|
|
-
|
|
|
- // 改变大包状态
|
|
|
- WmScorePackageStatus queryAll = new WmScorePackageStatus();
|
|
|
- queryAll.setPackageId(tWmScorePackage.getId());
|
|
|
- queryAll.setStatus("2");
|
|
|
- queryAll.setTaskAddFlag("0");
|
|
|
- List<WmScorePackageStatus> statusAll = wmScorePackageStatusService.
|
|
|
- list(Wrappers.query(queryAll));
|
|
|
- if (new BigDecimal(wmScorePackage1.getUserNum())
|
|
|
- .compareTo(new BigDecimal(statusAll.size())) <= 0) {
|
|
|
+
|
|
|
+ if (totalCount >= wmScorePackage1.getScore()) {
|
|
|
wmScorePackage1.setTaskAddFlag("0");
|
|
|
+ scorePackageStatus.setTaskAddFlag("0");
|
|
|
+ wmScorePackageStatusService.updateById(scorePackageStatus);
|
|
|
+ }
|
|
|
+ resultMap.put("type", "1");
|
|
|
+ } else if (StrUtil.equals(PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val(), wmScorePackage1.getPackageType1())) {
|
|
|
+ // 多人积分包处理
|
|
|
+ int totalCount = 0;
|
|
|
+ for (WmTask wmtask : wmTaskList) {
|
|
|
+ totalCount += wmtask.getScore();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (totalCount >= wmScorePackage1.getScore()) {
|
|
|
+ wmScorePackage1.setTaskAddFlag("0");
|
|
|
+ List<WmScorePackageStatus> packageStatusList = wmScorePackageStatusService.list(Wrappers.<WmScorePackageStatus>lambdaQuery()
|
|
|
+ .eq(WmScorePackageStatus::getStatus, "2")
|
|
|
+ .eq(WmScorePackageStatus::getTaskAddFlag, "1")
|
|
|
+ .eq(WmScorePackageStatus::getPackageId, tWmScorePackage.getId()));
|
|
|
+ if (CollUtil.isNotEmpty(packageStatusList)) {
|
|
|
+ packageStatusList.forEach(packageStatus -> {
|
|
|
+ WmScorePackageStatus updatePackageStatus = new WmScorePackageStatus();
|
|
|
+ updatePackageStatus.setId(packageStatus.getId());
|
|
|
+ updatePackageStatus.setTaskAddFlag("0");
|
|
|
+ updatePackageStatus.setUpdateTime(LocalDateTime.now());
|
|
|
+ wmScorePackageStatusService.updateById(updatePackageStatus);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resultMap.put("type", "1");
|
|
|
+ } else if ("2".equals(wmScorePackage1.getPackageType1()) || "3".equals(wmScorePackage1.getPackageType1())) {
|
|
|
+ score = 0;
|
|
|
+
|
|
|
+ List<WmTask> userTaskList = wmTaskList.stream().filter(item ->
|
|
|
+ item.getTaskUserId().equals(sysU.getUserId() + "")).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (userTaskList.size() >= scorePackageStatus.getTaskNum()) {
|
|
|
+ scorePackageStatus.setTaskAddFlag("0");
|
|
|
+ wmScorePackageStatusService.updateById(scorePackageStatus);
|
|
|
+
|
|
|
+ // 改变大包状态
|
|
|
+ WmScorePackageStatus queryAll = new WmScorePackageStatus();
|
|
|
+ queryAll.setPackageId(tWmScorePackage.getId());
|
|
|
+ queryAll.setStatus("2");
|
|
|
+ queryAll.setTaskAddFlag("0");
|
|
|
+ List<WmScorePackageStatus> statusAll = wmScorePackageStatusService.
|
|
|
+ list(Wrappers.query(queryAll));
|
|
|
+ if (new BigDecimal(wmScorePackage1.getUserNum())
|
|
|
+ .compareTo(new BigDecimal(statusAll.size())) <= 0) {
|
|
|
+ wmScorePackage1.setTaskAddFlag("0");
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
+ resultMap.put("type", "2");
|
|
|
}
|
|
|
|
|
|
- resultMap.put("type", "2");
|
|
|
+ wmScorePackage1.setIsConduct("1");
|
|
|
+ wmScorePackageService.updateById(wmScorePackage1);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
- wmScorePackage1.setIsConduct("1");
|
|
|
- wmScorePackageService.updateById(wmScorePackage1);
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("任务保存失败");
|
|
|
+ }
|
|
|
|
|
|
+ // 保存打卡记录
|
|
|
+ if ("51".equals(wmTaskContent.getTemp30()) || "52".equals(wmTaskContent.getTemp30()) || "53".equals(wmTaskContent.getTemp30())) {
|
|
|
+ WmUserSign wmUserSign = new WmUserSign();
|
|
|
+ wmUserSign.setSignEntType(wmTaskContent.getTemp8());
|
|
|
+ wmUserSign.setSignEntId(wmTaskContent.getTemp9());
|
|
|
+ wmUserSign.setSignEntName(wmTaskContent.getTemp10());
|
|
|
+ wmUserSign.setLatitude(wmTaskContent.getTemp11());
|
|
|
+ wmUserSign.setLongitude(wmTaskContent.getTemp12());
|
|
|
+ // wmUserSign.setSignUserid(wmTaskContent.getTemp25());
|
|
|
+ wmUserSign.setSignUserid(SecurityUtils.getUser().getId().toString());
|
|
|
+ // wmUserSign.setSignEntName(wmTaskContent.getTemp7());
|
|
|
+
|
|
|
+ wmUserSign.setSignDate(localDateTime);
|
|
|
+ wmUserSignMapper.insert(wmUserSign);
|
|
|
}
|
|
|
|
|
|
- } else {
|
|
|
- return R.failed("任务保存失败");
|
|
|
+ // 推送任务h5截图
|
|
|
+ applicationEventPublisher.publishEvent(new TaskInfoImgEvent(wmTask.getId()));
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- // 保存打卡记录
|
|
|
- if ("51".equals(wmTaskContent.getTemp30()) || "52".equals(wmTaskContent.getTemp30()) || "53".equals(wmTaskContent.getTemp30())) {
|
|
|
- WmUserSign wmUserSign = new WmUserSign();
|
|
|
- wmUserSign.setSignEntType(wmTaskContent.getTemp8());
|
|
|
- wmUserSign.setSignEntId(wmTaskContent.getTemp9());
|
|
|
- wmUserSign.setSignEntName(wmTaskContent.getTemp10());
|
|
|
- wmUserSign.setLatitude(wmTaskContent.getTemp11());
|
|
|
- wmUserSign.setLongitude(wmTaskContent.getTemp12());
|
|
|
- // wmUserSign.setSignUserid(wmTaskContent.getTemp25());
|
|
|
- wmUserSign.setSignUserid(SecurityUtils.getUser().getId().toString());
|
|
|
- // wmUserSign.setSignEntName(wmTaskContent.getTemp7());
|
|
|
-
|
|
|
- wmUserSign.setSignDate(localDateTime);
|
|
|
- wmUserSignMapper.insert(wmUserSign);
|
|
|
- }
|
|
|
+ total += score;
|
|
|
+
|
|
|
+ resultMap.put("score", String.valueOf(score));
|
|
|
|
|
|
- // 推送任务h5截图
|
|
|
- applicationEventPublisher.publishEvent(new TaskInfoImgEvent(wmTask.getId()));
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
- resultMap.put("score", String.valueOf(score));
|
|
|
- return R.ok(resultMap);
|
|
|
+ Map<String, String> score = new HashMap<>(1);
|
|
|
+ score.put("score", String.valueOf(total));
|
|
|
+ return R.ok(score);
|
|
|
}
|
|
|
|
|
|
|