|
@@ -37,6 +37,8 @@ import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageStatus;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTask;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.dto.WmDeptTaskTypeConfigDTO;
|
|
|
+import com.qunzhixinxi.hnqz.admin.entity.dto.WmDeptTaskTypeConfigJsonDTO;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.vo.WmTaskVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.ReportEnum;
|
|
@@ -48,6 +50,7 @@ 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.WmDeptTaskTypeConfigService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmReportService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.WmScorePackageStatusService;
|
|
@@ -68,6 +71,7 @@ import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
+import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -91,6 +95,7 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
|
|
|
private final WmDaDistributionService wmDaDistributionService;
|
|
|
private final WmDaPharmacyService wmDaPharmacyService;
|
|
|
private final WmDaHospitalService wmDaHospitalService;
|
|
|
+ private final WmDeptTaskTypeConfigService wmDeptTaskTypeConfigService;
|
|
|
private final RedisTemplate<String,String> redisTemplate;
|
|
|
|
|
|
@Override
|
|
@@ -395,6 +400,43 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
|
|
|
return R.ok("审批成功");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 企业根据任务类型审核任务
|
|
|
+ *
|
|
|
+ * @param taskIds
|
|
|
+ * @param approvalOpinion
|
|
|
+ * @param approvalInfo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R<?> approvalReportByTaskType(List<String> taskIds, String approvalOpinion, String approvalInfo) {
|
|
|
+ LambdaQueryWrapper<WmTask> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.in(WmTask::getId, taskIds);
|
|
|
+ List<WmTask> wmTaskList = wmTaskService.list(queryWrapper);
|
|
|
+
|
|
|
+ // 根据task任务表 反查report报告表
|
|
|
+ // 以reportId(reportDrugId或reportOneId字段)为key进行分类
|
|
|
+ Map<Integer, List<WmTask>> reportIdMap = wmTaskList.stream()
|
|
|
+ .filter(wmTask -> wmTask.getReportDrugId() != null || wmTask.getReportOneId() != null)
|
|
|
+ .collect(Collectors.groupingBy(wmTask -> wmTask.getReportDrugId() != null ?
|
|
|
+ wmTask.getReportDrugId() : wmTask.getReportOneId()));
|
|
|
+
|
|
|
+ // 调用原有审核方法
|
|
|
+ AtomicBoolean successFlag = new AtomicBoolean(true);
|
|
|
+ reportIdMap.forEach((reportId, wmTasks) -> {
|
|
|
+ WmReport queryReport = this.getById(reportId);
|
|
|
+ List<String> taskIdList = wmTasks.stream().map(WmTask::getId).collect(Collectors.toList());
|
|
|
+ log.info("企业批量审核任务reportId={}, taskIds={}", reportId, taskIdList);
|
|
|
+ R approvalReportResult = this.approvalReport(queryReport, taskIdList, approvalOpinion, approvalInfo);
|
|
|
+ if (approvalReportResult.getCode() != 0) {
|
|
|
+ successFlag.set(false);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return successFlag.get() ? R.ok("批量审批成功") : R.failed("批量审批失败");
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 报告管理--查看
|
|
|
* @param page
|
|
@@ -473,18 +515,29 @@ public class WmReportServiceImpl extends ServiceImpl<WmReportMapper, WmReport> i
|
|
|
@Override
|
|
|
public R<?> taskPageByTaskType(Page<WmTaskVO> page, String taskTypeName) {
|
|
|
|
|
|
- WmTaskType baseTaskType = wmTaskTypeService.getOne(Wrappers.<WmTaskType>lambdaQuery()
|
|
|
+ LambdaQueryWrapper<WmTaskType> queryWrapper = Wrappers.<WmTaskType>lambdaQuery()
|
|
|
.eq(WmTaskType::getTaskTypeLevel, "1")
|
|
|
- .eq(WmTaskType::getTaskTypeName, taskTypeName)
|
|
|
- .eq(WmTaskType::getEnableFlag, EnableEnum.ENABLE.val()));
|
|
|
- if (baseTaskType == null) {
|
|
|
- log.warn("任务类型不存在tastTypeName={}", taskTypeName);
|
|
|
+ .eq(WmTaskType::getEnableFlag, EnableEnum.ENABLE.val());
|
|
|
+ if (StrUtil.isNotBlank(taskTypeName)) {
|
|
|
+ queryWrapper.eq(WmTaskType::getTaskTypeName, taskTypeName);
|
|
|
+ } else {
|
|
|
+ // 查询该企业配置的任务类型
|
|
|
+ WmDeptTaskTypeConfigDTO deptTaskTypeConfig =
|
|
|
+ wmDeptTaskTypeConfigService.getDeptTaskTypeConfig(SecurityUtils.getUser().getDeptId());
|
|
|
+ List<String> taskTypeNames = deptTaskTypeConfig.getConfigList().stream()
|
|
|
+ .map(WmDeptTaskTypeConfigJsonDTO::getTaskTypeName)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ queryWrapper.in(WmTaskType::getTaskTypeName, taskTypeNames);
|
|
|
+ }
|
|
|
+ List<WmTaskType> baseTaskTypeList = wmTaskTypeService.list(queryWrapper);
|
|
|
+ if (CollUtil.isEmpty(baseTaskTypeList)) {
|
|
|
+ log.warn("任务类型不存在tastTypeName={}", baseTaskTypeList);
|
|
|
return R.failed("任务类型不存在");
|
|
|
}
|
|
|
|
|
|
WmReport queryReport = new WmReport();
|
|
|
queryReport.setDrugEntId(SecurityUtils.getUser().getDeptId());
|
|
|
- queryReport.setTaskTypeId(baseTaskType.getId());
|
|
|
+ queryReport.setTaskTypeIdList(baseTaskTypeList.stream().map(WmTaskType::getId).collect(Collectors.toList()));
|
|
|
IPage<WmTaskVO> pages = wmTaskMapper.entTaskPageByTaskType(page, queryReport);
|
|
|
|
|
|
Page<Map<String, Object>> mapPage = new Page<>(pages.getCurrent(), pages.getSize(), pages.getTotal());
|