|
@@ -18,6 +18,7 @@
|
|
package com.qunzhixinxi.hnqz.admin.controller;
|
|
package com.qunzhixinxi.hnqz.admin.controller;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
+import cn.hutool.core.util.ArrayUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
import com.alibaba.excel.EasyExcel;
|
|
import com.alibaba.excel.EasyExcel;
|
|
@@ -34,6 +35,7 @@ import com.pig4cloud.plugin.excel.annotation.RequestExcel;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.MqConstants;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysDictItem;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysFile;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysFile;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmReportOpt;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.WmReportOpt;
|
|
@@ -50,6 +52,11 @@ 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.WmTaskRule;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTaskRule;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmUserSign;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmUserSignDetail;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmWkAlbum;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmWkArticle;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmWkArticleShare;
|
|
import com.qunzhixinxi.hnqz.admin.entity.XlsPackageInfo;
|
|
import com.qunzhixinxi.hnqz.admin.entity.XlsPackageInfo;
|
|
import com.qunzhixinxi.hnqz.admin.entity.XlsTask;
|
|
import com.qunzhixinxi.hnqz.admin.entity.XlsTask;
|
|
import com.qunzhixinxi.hnqz.admin.entity.dto.CommonEvidenceDTO;
|
|
import com.qunzhixinxi.hnqz.admin.entity.dto.CommonEvidenceDTO;
|
|
@@ -57,8 +64,11 @@ import com.qunzhixinxi.hnqz.admin.entity.model.excel.CommonTaskExcelModel;
|
|
import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.SettleStatusEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.SettleStatusEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
|
|
import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.UserSignPurposeEnum;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.UserSignResultEnum;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysDictItemService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysFileService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysFileService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaAgentService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmDaAgentService;
|
|
@@ -71,6 +81,11 @@ import com.qunzhixinxi.hnqz.admin.service.WmTaskContentService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskRuleService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskRuleService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
|
|
import com.qunzhixinxi.hnqz.admin.service.WmTaskTypeService;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmUserSignDetailService;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmUserSignService;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmWkAlbumService;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmWkArticleService;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmWkArticleShareService;
|
|
import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
|
|
import com.qunzhixinxi.hnqz.common.core.constant.CommonConstants;
|
|
import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
|
|
import com.qunzhixinxi.hnqz.common.core.entity.BaseMap;
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
@@ -129,6 +144,7 @@ import java.util.Set;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.function.Function;
|
|
import java.util.function.Function;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -170,6 +186,18 @@ public class WmTaskController {
|
|
|
|
|
|
private final WmTaskContentService wmTaskContentService;
|
|
private final WmTaskContentService wmTaskContentService;
|
|
|
|
|
|
|
|
+ private final WmWkArticleService wmWkArticleService;
|
|
|
|
+
|
|
|
|
+ private final WmWkArticleShareService wmWkArticleShareService;
|
|
|
|
+
|
|
|
|
+ private final WmWkAlbumService wmWkAlbumService;
|
|
|
|
+
|
|
|
|
+ private final WmUserSignService wmUserSignService;
|
|
|
|
+
|
|
|
|
+ private final WmUserSignDetailService wmUserSignDetailService;
|
|
|
|
+
|
|
|
|
+ private final SysDictItemService sysDictItemService;
|
|
|
|
+
|
|
private final SysFileService sysFileService;
|
|
private final SysFileService sysFileService;
|
|
|
|
|
|
private final RabbitMqClient rabbitMqClient;
|
|
private final RabbitMqClient rabbitMqClient;
|
|
@@ -1201,6 +1229,142 @@ public class WmTaskController {
|
|
return R.ok(taskIPage);
|
|
return R.ok(taskIPage);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 根据积分包id查询待审核任务详情列表
|
|
|
|
+ *
|
|
|
|
+ * @param packageId 积分包id
|
|
|
|
+ * @param taskTypeId 任务类型id
|
|
|
|
+ * @return 列表结果
|
|
|
|
+ */
|
|
|
|
+ @GetMapping("/list-review-task-info")
|
|
|
|
+ public R<?> listTaskInfo(@RequestParam("packageId") String packageId, String taskTypeId) {
|
|
|
|
+ QueryWrapper<WmTask> queryWrapper = Wrappers.query();
|
|
|
|
+ if (StrUtil.isNotBlank(taskTypeId)) {
|
|
|
|
+ queryWrapper.eq("task_type_id", taskTypeId);
|
|
|
|
+ }
|
|
|
|
+ queryWrapper.eq("task_status", TaskStatusEnum.UNDER_REVIEW.val());
|
|
|
|
+ queryWrapper.eq("score_package_id", packageId);
|
|
|
|
+ queryWrapper.eq("del_flag", DelEnum.NOT_DEL.val());
|
|
|
|
+ queryWrapper.eq("real_flag", "0");
|
|
|
|
+ queryWrapper.orderByDesc("lookinto_date");
|
|
|
|
+ List<WmTask> taskList = wmTaskMapper.selectList(queryWrapper);
|
|
|
|
+
|
|
|
|
+ // 添加结算详情
|
|
|
|
+ List<Map<String, Object>> resultList = new ArrayList<>();
|
|
|
|
+ if (CollUtil.isNotEmpty(taskList)) {
|
|
|
|
+ // 查询taskType
|
|
|
|
+ Set<String> taskTypeIdSet = taskList.stream().map(WmTask::getTaskTypeId).collect(Collectors.toSet());
|
|
|
|
+ List<WmTaskType> taskTypeList = wmTaskTypeService.listByIds(taskTypeIdSet);
|
|
|
|
+ Map<String, String> taskTypeNameMap = taskTypeList.stream().collect(Collectors.toMap(WmTaskType::getId, WmTaskType::getTaskTypeName));
|
|
|
|
+ // 查询taskContent
|
|
|
|
+ Set<String> taskConentIdSet = taskList.stream().map(WmTask::getTaskContentId).collect(Collectors.toSet());
|
|
|
|
+ List<WmTaskContent> taskContentList = wmTaskContentService.listByIds(taskConentIdSet);
|
|
|
|
+ Map<Integer, WmTaskContent> taskContentMap = taskContentList.stream().collect(Collectors.toMap(WmTaskContent::getId, Function.identity()));
|
|
|
|
+ // 查询scorePackage
|
|
|
|
+ Set<String> scorePackageIdSet = taskList.stream().map(WmTask::getScorePackageId).collect(Collectors.toSet());
|
|
|
|
+ List<WmScorePackage> scorePackageList = wmScorePackageService.listByIds(scorePackageIdSet);
|
|
|
|
+ Map<String, WmScorePackage> scorePackageMap = scorePackageList.stream().collect(Collectors.toMap(WmScorePackage::getId, Function.identity()));
|
|
|
|
+ // 查询打卡记录userSign
|
|
|
|
+ boolean hasSignTask = taskList.stream().anyMatch(wmTask -> "5".equals(wmTask.getTaskTypeId())
|
|
|
|
+ || "6".equals(wmTask.getTaskTypeId()) || "33".equals(wmTask.getTaskTypeId()));
|
|
|
|
+ Map<Integer, WmUserSign> userSignMap = new HashMap<>();
|
|
|
|
+ Map<Integer, WmUserSignDetail> userSignDetailMap = new HashMap<>();
|
|
|
|
+ Map<String, List<SysDictItem>> userSignPurposeMap = new HashMap<>();
|
|
|
|
+ if (hasSignTask) {
|
|
|
|
+ Set<String> userSignIdSet = taskContentList.stream()
|
|
|
|
+ .map(WmTaskContent::getTemp3)
|
|
|
|
+ .filter(StrUtil::isNotBlank)
|
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
+ List<WmUserSign> userSignList = wmUserSignService.listByIds(userSignIdSet);
|
|
|
|
+ userSignMap.putAll(userSignList.stream().collect(Collectors.toMap(WmUserSign::getId, Function.identity())));
|
|
|
|
+ List<WmUserSignDetail> signDetailList = wmUserSignDetailService.list(Wrappers.<WmUserSignDetail>lambdaQuery()
|
|
|
|
+ .in(WmUserSignDetail::getSignId, userSignIdSet));
|
|
|
|
+ if (CollUtil.isNotEmpty(signDetailList)) {
|
|
|
|
+ userSignDetailMap.putAll(signDetailList.stream().collect(Collectors.toMap(WmUserSignDetail::getSignId, Function.identity())));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 拜访目的字典值
|
|
|
|
+ List<SysDictItem> itemList = sysDictItemService.list(Wrappers.<SysDictItem>lambdaQuery()
|
|
|
|
+ .in(SysDictItem::getType, "user_sign_detail_purpose", "user_sign_detail_distribution_purpose", "user_sign_detail_pharmacy_purpose")
|
|
|
|
+ .eq(SysDictItem::getDelFlag, DelEnum.NOT_DEL.val()));
|
|
|
|
+ userSignPurposeMap.putAll(itemList.stream().collect(Collectors.groupingBy(SysDictItem::getType)));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ taskList.forEach(wmTask -> {
|
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
|
+ wmTask.setTaskTypeName(taskTypeNameMap.get(wmTask.getTaskTypeId()));
|
|
|
|
+ map.put("taskType", wmTask.getTaskTypeId());
|
|
|
|
+ map.put("taskInfo", wmTask);
|
|
|
|
+
|
|
|
|
+ WmTaskContent wmTaskContent = taskContentMap.get(Integer.parseInt(wmTask.getTaskContentId()));
|
|
|
|
+ map.put("wmTaskContent", wmTaskContent);
|
|
|
|
+
|
|
|
|
+ if (null != wmTaskContent) {
|
|
|
|
+ WmScorePackage wmScorePackage = scorePackageMap.get(wmTask.getScorePackageId());
|
|
|
|
+ if (null != wmScorePackage) {
|
|
|
|
+ wmTaskContent.setTemp32(wmScorePackage.getScorePackageName());
|
|
|
|
+ }
|
|
|
|
+ // 设置地图地址
|
|
|
|
+ if ("30".equals(wmTask.getTaskTypeId()) || "15".equals(wmTask.getTaskTypeId())) {
|
|
|
|
+ wmTaskContent.setTemp31(wmTaskContent.getTemp16());
|
|
|
|
+ }
|
|
|
|
+ if ("16".equals(wmTask.getTaskTypeId())) {
|
|
|
|
+ wmTaskContent.setTemp31(wmTaskContent.getTemp4());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 医院拜访、商业公司拜访、药店拜访打卡记录
|
|
|
|
+ List<WmUserSign> wmUserSignList = new ArrayList<>();
|
|
|
|
+ if (hasSignTask && null != wmTaskContent.getTemp3()) {
|
|
|
|
+ int userSignId = Integer.parseInt(wmTaskContent.getTemp3());
|
|
|
|
+ WmUserSign userSign = userSignMap.get(userSignId);
|
|
|
|
+ // 关联查询签到详情
|
|
|
|
+ WmUserSignDetail userSignDetail = userSignDetailMap.get(userSignId);
|
|
|
|
+ if (userSignDetail != null) {
|
|
|
|
+ if (ArrayUtil.isNotEmpty(userSignDetail.getPurpose())) {
|
|
|
|
+ // 拜访目的字典值匹配
|
|
|
|
+ Map<String, String> dictPurposeMap = userSignPurposeMap.get(UserSignPurposeEnum.getDictTypeBySignEntType(userSign.getSignEntType()))
|
|
|
|
+ .stream().collect(Collectors.toMap(SysDictItem::getValue, SysDictItem::getLabel));
|
|
|
|
+
|
|
|
|
+ String[] purposeNameArr = Stream.of(userSignDetail.getPurpose())
|
|
|
|
+ .map(s -> dictPurposeMap.getOrDefault(s, s))
|
|
|
|
+ .toArray(String[]::new);
|
|
|
|
+ userSignDetail.setPurposeName(purposeNameArr);
|
|
|
|
+ }
|
|
|
|
+ if (StrUtil.isNotBlank(userSignDetail.getResult())) {
|
|
|
|
+ userSignDetail.setResultName(UserSignResultEnum.resolve(userSignDetail.getResult()).getName());
|
|
|
|
+ }
|
|
|
|
+ userSign.setUserSignDetail(userSignDetail);
|
|
|
|
+ }
|
|
|
|
+ wmUserSignList.add(userSign);
|
|
|
|
+ }
|
|
|
|
+ map.put("wmUserSignList", wmUserSignList);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ("8".equals(wmTask.getTaskTypeId()) || "11".equals(wmTask.getTaskTypeId())
|
|
|
|
+ || "9".equals(wmTask.getTaskTypeId()) || "10".equals(wmTask.getTaskTypeId())) {
|
|
|
|
+ map.put("title", "");
|
|
|
|
+ map.put("score", wmTask.getScore());
|
|
|
|
+ WmWkArticleShare wmWkArticleShare = wmWkArticleShareService.getById(wmTask.getTaskContentId());
|
|
|
|
+ if (null != wmWkArticleShare) {
|
|
|
|
+ if ("8".equals(wmTask.getTaskTypeId()) || "11".equals(wmTask.getTaskTypeId())) {
|
|
|
|
+ WmWkAlbum wmWkAlbum = wmWkAlbumService.getById(wmWkArticleShare.getArctileId());
|
|
|
|
+ map.put("title", wmWkAlbum.getXcmc());
|
|
|
|
+ } else {
|
|
|
|
+ WmWkArticle wmWkArticle = wmWkArticleService.getById(wmWkArticleShare.getArctileId());
|
|
|
|
+ map.put("title", wmWkArticle.getTitle());
|
|
|
|
+ }
|
|
|
|
+ map.put("shareId", wmWkArticleShare.getArctileId());
|
|
|
|
+ map.put("remark", wmWkArticleShare.getTemp1());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ resultList.add(map);
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return R.ok(resultList);
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 任务审核
|
|
* 任务审核
|
|
*
|
|
*
|