|
@@ -16,8 +16,10 @@
|
|
|
*/
|
|
|
package com.qunzhixinxi.hnqz.admin.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.lang.Assert;
|
|
|
+import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
@@ -33,26 +35,56 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
|
-import com.qunzhixinxi.hnqz.admin.entity.*;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.MonitoringIndicator;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.SysDeptSub;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmReport;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageSettleNote;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageStatus;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmScoreTaskType;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmTask;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.WmTaskContent;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.dto.CommonEvidenceDTO;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.input.SettleAmountMonitorInput;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.output.SettleAmountMonitorOutput;
|
|
|
-import com.qunzhixinxi.hnqz.admin.enums.*;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.ChannelEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.LockEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.PackageFinishStatusEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.PackageStatusEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.TaskStatusEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmReportMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskContentMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
|
|
|
-import com.qunzhixinxi.hnqz.admin.service.*;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.MonitoringIndicatorService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysDeptSubService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysPublicParamService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.SysUserService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmDaDistributionService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmDaHospitalService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmDaPharmacyService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageSettleNoteService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmScoreTaskTypeService;
|
|
|
+import com.qunzhixinxi.hnqz.admin.service.WmTaskService;
|
|
|
import com.qunzhixinxi.hnqz.admin.util.RegUtils;
|
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
|
import com.qunzhixinxi.hnqz.common.data.datascope.DataScope;
|
|
|
import com.qunzhixinxi.hnqz.common.security.service.HnqzUser;
|
|
|
import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
|
import com.qunzhixinxi.hnqz.common.taxhelper.enums.InvoiceInfo;
|
|
|
-import lombok.AllArgsConstructor;
|
|
|
+import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
@@ -64,10 +96,15 @@ import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.UUID;
|
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
|
-import java.util.concurrent.atomic.AtomicInteger;
|
|
|
-import java.util.concurrent.atomic.AtomicReference;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -77,7 +114,7 @@ import java.util.stream.Collectors;
|
|
|
* @date 2020-06-25 23:35:25
|
|
|
*/
|
|
|
@Service
|
|
|
-@AllArgsConstructor
|
|
|
+@RequiredArgsConstructor
|
|
|
@Slf4j
|
|
|
public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> implements WmTaskService {
|
|
|
|
|
@@ -94,6 +131,24 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
|
private final WmScoreTaskTypeService wmScoreTaskTypeService;
|
|
|
private final SysUserService userService;
|
|
|
private final WmScorePackageSettleNoteService wmScorePackageSettleNoteService;
|
|
|
+ private WmDaHospitalService wmDaHospitalService;
|
|
|
+ private WmDaPharmacyService wmDaPharmacyService;
|
|
|
+ private WmDaDistributionService wmDaDistributionService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public void setWmDaHospitalService(WmDaHospitalService wmDaHospitalService) {
|
|
|
+ this.wmDaHospitalService = wmDaHospitalService;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public void setWmDaPharmacyService(WmDaPharmacyService wmDaPharmacyService) {
|
|
|
+ this.wmDaPharmacyService = wmDaPharmacyService;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ public void setWmDaDistributionService(WmDaDistributionService wmDaDistributionService) {
|
|
|
+ this.wmDaDistributionService = wmDaDistributionService;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
public List<WmTask> listTask(QueryWrapper wrappers) {
|
|
@@ -1404,6 +1459,45 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
|
updateWrapper.in(WmTask::getId, ids);
|
|
|
List<WmTask> wmTaskList = list(updateWrapper);
|
|
|
|
|
|
+ String scorePackageId = wmTaskList.get(0).getScorePackageId();
|
|
|
+ WmScorePackage wmScorePackage = wmScorePackageService.getById(scorePackageId);
|
|
|
+
|
|
|
+ // 如果是源头积分包,则判断是否审核入库调查信息
|
|
|
+ if (StringUtils.isBlank(wmScorePackage.getRelationScoreId())) {
|
|
|
+ // 调查信息审核(15、30-医院 16-商业公司 18-药店)
|
|
|
+ wmTaskList.forEach(task -> {
|
|
|
+ String approvalOpinion = wmTask.getTaskStatus().equals(TaskStatusEnum.APPROVED.val()) ? "1" : "2";
|
|
|
+ if ("15".equals(task.getTaskTypeId()) || "30".equals(task.getTaskTypeId())) {
|
|
|
+ Map<String, Object> data = (Map<String, Object>) wmDaHospitalService.approvalHospital(task.getId()).getData();
|
|
|
+ WmTask _wmTask = (WmTask) data.get("wmTask");
|
|
|
+ Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
|
|
|
+ paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
|
|
|
+ paramMap.put("approvalOpinion", approvalOpinion);
|
|
|
+ paramMap.put("compareResult", _wmTask.getCompareResult());
|
|
|
+ paramMap.put("taskId", task.getId());
|
|
|
+ wmDaHospitalService.updateByApproval(paramMap);
|
|
|
+ } else if ("16".equals(task.getTaskTypeId())) {
|
|
|
+ Map<String, Object> data = (Map<String, Object>) wmDaDistributionService.approvalDistribution(task.getId()).getData();
|
|
|
+ WmTask _wmTask = (WmTask) data.get("wmTask");
|
|
|
+ Map<String, String> paramMap = BeanUtil.toBean(data.get("newinfo"), Map.class);
|
|
|
+ paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
|
|
|
+ paramMap.put("approvalOpinion", approvalOpinion);
|
|
|
+ paramMap.put("compareResult", _wmTask.getCompareResult());
|
|
|
+ paramMap.put("taskId", task.getId());
|
|
|
+ wmDaDistributionService.updateByApproval(paramMap);
|
|
|
+ } else if ("18".equals(task.getTaskTypeId())) {
|
|
|
+ Map<String, Object> data = (Map<String, Object>) wmDaPharmacyService.approvalPharmacy(task.getId()).getData();
|
|
|
+ WmTask _wmTask = (WmTask) data.get("wmTask");
|
|
|
+ Map<String, String> paramMap = MapUtil.newHashMap(4);
|
|
|
+ paramMap.put("approvalInfo", wmTask.getTaskStatusInfo());
|
|
|
+ paramMap.put("approvalOpinion", approvalOpinion);
|
|
|
+ paramMap.put("compareResult", _wmTask.getCompareResult());
|
|
|
+ paramMap.put("taskId", task.getId());
|
|
|
+ wmDaPharmacyService.updateByapproval(paramMap);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
switch (wmTask.getTaskStatus()){
|
|
|
case "3": // 审核通过
|
|
|
|
|
@@ -1434,6 +1528,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
|
flag = true;
|
|
|
}
|
|
|
t.setTaskStatus("3");
|
|
|
+ t.setRealFlag("0");
|
|
|
t.setUpdateTime(LocalDateTime.now());
|
|
|
}
|
|
|
bathList.addAll(taskList);
|
|
@@ -1445,12 +1540,11 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
|
break;
|
|
|
case "4": // 审核不通过
|
|
|
updateWrapper.set(WmTask::getTaskStatus, wmTask.getTaskStatus());
|
|
|
+ updateWrapper.set(WmTask::getRealFlag, "0");
|
|
|
this.update(updateWrapper);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- String scorePackageId = wmTaskList.get(0).getScorePackageId();
|
|
|
- WmScorePackage wmScorePackage = wmScorePackageService.getById(scorePackageId);
|
|
|
wmTaskList.forEach(task -> {
|
|
|
WmScorePackageStatus scorePackageStatus = new WmScorePackageStatus();
|
|
|
scorePackageStatus.setPackageId(wmScorePackage.getId());
|
|
@@ -1653,6 +1747,49 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
|
return R.ok(task);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 查询调查信息审核数据
|
|
|
+ *
|
|
|
+ * @param taskId 任务id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public R<?> getSurveryTaskInfo(String taskId) {
|
|
|
+ WmTask task = this.getById(taskId);
|
|
|
+ R<?> result = null;
|
|
|
+ // 15、30-医院 16-商业公司 18-药店
|
|
|
+ if ("15".equals(task.getTaskTypeId()) || "30".equals(task.getTaskTypeId())) {
|
|
|
+ result = wmDaHospitalService.approvalHospital(taskId);
|
|
|
+ if (result.getCode() == 0) {
|
|
|
+ Map<String, Object> data = (Map<String, Object>) result.getData();
|
|
|
+ data.remove("info");
|
|
|
+ data.remove("newinfo");
|
|
|
+ }
|
|
|
+ } else if ("16".equals(task.getTaskTypeId())) {
|
|
|
+ result = wmDaDistributionService.approvalDistribution(taskId);
|
|
|
+ if (result.getCode() == 0) {
|
|
|
+ Map<String, Object> data = (Map<String, Object>) result.getData();
|
|
|
+ data.remove("info");
|
|
|
+ data.remove("newinfo");
|
|
|
+ }
|
|
|
+ } else if ("18".equals(task.getTaskTypeId())) {
|
|
|
+ result = wmDaPharmacyService.approvalPharmacy(taskId);
|
|
|
+ if (result.getCode() == 0) {
|
|
|
+ Map<String, Object> data = (Map<String, Object>) result.getData();
|
|
|
+ data.put("wmTask", data.get("_wmTask"));
|
|
|
+ data.put("compareList", new ArrayList<>());
|
|
|
+ data.remove("_wmTask");
|
|
|
+ data.remove("info");
|
|
|
+ data.remove("newinfo");
|
|
|
+ data.remove("compareResult");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ result = R.failed("未查询到任务信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 患者教育-处方列表
|
|
|
*
|
|
@@ -2169,4 +2306,29 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
|
public IPage<WmTask> listInfoAudit(Page page, WmTask wmTask, LocalDateTime startDate, LocalDateTime endDate) {
|
|
|
return wmTaskMapper.listInfoAudit(page, wmTask, startDate, endDate);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询同一家医院一个月做的任务次数
|
|
|
+ *
|
|
|
+ * @param hospitalId 医院id
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public List<WmTask> listCurrentMonthHospitalTask(String hospitalId) {
|
|
|
+ return wmTaskMapper.listCurrentMonthHospitalTask(hospitalId);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查询会议任务个数
|
|
|
+ *
|
|
|
+ * @param taskTypeList 任务类型列表
|
|
|
+ * @param taskUserId 用户id
|
|
|
+ * @param startTime 会议时间范围-开始
|
|
|
+ * @param endTime 会议时间范围-结束
|
|
|
+ * @return 会议任务个数
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Long countMeetingTask(List<String> taskTypeList, String taskUserId, LocalDateTime startTime, LocalDateTime endTime) {
|
|
|
+ return wmTaskMapper.countMeetingTask(taskTypeList, taskUserId, startTime, endTime);
|
|
|
+ }
|
|
|
}
|