|
@@ -19,6 +19,8 @@ import com.baomidou.mybatisplus.core.metadata.OrderItem;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.dto.SysCheckChainNodeCheckHistoryDTO;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.api.entity.SysCheckChainNodeCheckHistory;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
|
|
import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
|
|
import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
|
|
@@ -41,6 +43,7 @@ import com.qunzhixinxi.hnqz.admin.api.constant.enums.PackageStatusEnum;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.enums.PackageTypeEnum;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.enums.PackageTypeEnum;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.enums.ScorePackageStatusEnum;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.enums.ScorePackageStatusEnum;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.enums.TaskStatusEnum;
|
|
import com.qunzhixinxi.hnqz.admin.api.constant.enums.TaskStatusEnum;
|
|
|
|
+import com.qunzhixinxi.hnqz.admin.manager.SysCheckChainManager;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmReportMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmReportMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskContentMapper;
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskContentMapper;
|
|
@@ -127,6 +130,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
private WmDaDistributionService wmDaDistributionService;
|
|
private WmDaDistributionService wmDaDistributionService;
|
|
private final RedisTemplate<String, Object> redisTemplate;
|
|
private final RedisTemplate<String, Object> redisTemplate;
|
|
private final UpmsConfig upmsConfig;
|
|
private final UpmsConfig upmsConfig;
|
|
|
|
+ private final SysCheckChainManager checkChainManager;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
public void setWmDaHospitalService(WmDaHospitalService wmDaHospitalService) {
|
|
public void setWmDaHospitalService(WmDaHospitalService wmDaHospitalService) {
|
|
@@ -293,7 +297,7 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
public R<?> selectByWmTask(WmTask wmTask) {
|
|
public R<?> selectByWmTask(WmTask wmTask) {
|
|
String packageId = wmTask.getScorePackageId(); // 获取积分包ID
|
|
String packageId = wmTask.getScorePackageId(); // 获取积分包ID
|
|
List<WmScorePackage> wmScorePackageList = wmScorePackageMapper.selectByRelationScoreIdList(packageId);
|
|
List<WmScorePackage> wmScorePackageList = wmScorePackageMapper.selectByRelationScoreIdList(packageId);
|
|
- List<String> idList = wmScorePackageList.stream().map(p -> p.getId()).collect(Collectors.toList());
|
|
|
|
|
|
+ List<String> idList = wmScorePackageList.stream().map(WmScorePackage::getId).collect(Collectors.toList());
|
|
idList.add(packageId);
|
|
idList.add(packageId);
|
|
List<String> strs1 = new ArrayList<>();
|
|
List<String> strs1 = new ArrayList<>();
|
|
WmScorePackage wmScorePackage = wmScorePackageService.getById(packageId);
|
|
WmScorePackage wmScorePackage = wmScorePackageService.getById(packageId);
|
|
@@ -369,13 +373,16 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- } else if (sysDept.getLevel() == 4) {
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ else if (sysDept.getLevel() == 4) {
|
|
// 二级CSO
|
|
// 二级CSO
|
|
- if (Objects.nonNull(wmScorePackage.getDrugEntId())) {
|
|
|
|
- // 通过drugEntId为空,判断是否为药企发来的包,即药企->一级CSO->二级CSO的包
|
|
|
|
- // 药企->一级CSO->二级CSO的大包,只能由一级CSO提交报告审批,二级CSO在任务中心中,点击生成报告按钮应提示没有权限
|
|
|
|
- return R.ok(0);
|
|
|
|
- }
|
|
|
|
|
|
+ //if (Objects.nonNull(wmScorePackage.getDrugEntId())) {
|
|
|
|
+ // // 通过drugEntId为空,判断是否为药企发来的包,即药企->一级CSO->二级CSO的包
|
|
|
|
+ // // 药企->一级CSO->二级CSO的大包,只能由一级CSO提交报告审批,二级CSO在任务中心中,点击生成报告按钮应提示没有权限
|
|
|
|
+ // return R.ok(0);
|
|
|
|
+ //}
|
|
wmTask.setExtIds(strs1);
|
|
wmTask.setExtIds(strs1);
|
|
wmTask.setTaskStatus(String.valueOf(3));
|
|
wmTask.setTaskStatus(String.valueOf(3));
|
|
List<WmTask> taskList = new ArrayList<>();
|
|
List<WmTask> taskList = new ArrayList<>();
|
|
@@ -1440,16 +1447,33 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
|
|
|
|
IPage<WmTask> taskPage = wmTaskMapper.getWmTaskList(page, wmTask);
|
|
IPage<WmTask> taskPage = wmTaskMapper.getWmTaskList(page, wmTask);
|
|
if (CollUtil.isNotEmpty(taskPage.getRecords())) {
|
|
if (CollUtil.isNotEmpty(taskPage.getRecords())) {
|
|
|
|
+
|
|
|
|
+ Set<Integer> taskIds = taskPage.getRecords().stream().mapToInt(task -> Integer.parseInt(task.getId())).boxed().collect(Collectors.toSet());
|
|
|
|
+
|
|
|
|
+ Map<Integer, Map<String, Object>> targetLatestCheckState = checkChainManager.getTargetLatestCheckState(taskIds);
|
|
|
|
+
|
|
Set<Integer> approvalUserIds = taskPage.getRecords().stream()
|
|
Set<Integer> approvalUserIds = taskPage.getRecords().stream()
|
|
.map(WmTask::getApprovalUserId)
|
|
.map(WmTask::getApprovalUserId)
|
|
.filter(Objects::nonNull).collect(Collectors.toSet());
|
|
.filter(Objects::nonNull).collect(Collectors.toSet());
|
|
|
|
+ Map<Integer, String> userMap = null;
|
|
if (CollUtil.isNotEmpty(approvalUserIds)) {
|
|
if (CollUtil.isNotEmpty(approvalUserIds)) {
|
|
List<SysUser> users = userService.listByIds(approvalUserIds);
|
|
List<SysUser> users = userService.listByIds(approvalUserIds);
|
|
- Map<Integer, String> userMap = users.stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getRealname));
|
|
|
|
- taskPage.getRecords().stream()
|
|
|
|
- .filter(r -> r.getApprovalUserId() != null)
|
|
|
|
- .forEach(r -> r.setApprovalUserName(userMap.get(r.getApprovalUserId())));
|
|
|
|
|
|
+ userMap = users.stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getRealname));
|
|
|
|
+
|
|
|
|
+ //taskPage.getRecords().stream()
|
|
|
|
+ // .filter(r -> r.getApprovalUserId() != null)
|
|
|
|
+ // .forEach(r -> r.setApprovalUserName(userMap.get(r.getApprovalUserId())));
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ for (WmTask task : taskPage.getRecords()){
|
|
|
|
+ if (task.getApprovalUserId() != null && CollUtil.isNotEmpty(userMap)){
|
|
|
|
+ task.setApprovalUserName(userMap.get(task.getApprovalUserId()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ task.setCheckState(targetLatestCheckState.get(Integer.parseInt(task.getId())));
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
return R.ok(taskPage);
|
|
return R.ok(taskPage);
|
|
@@ -1659,6 +1683,8 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ Boolean checkResult = null;
|
|
switch (wmTask.getTaskStatus()) {
|
|
switch (wmTask.getTaskStatus()) {
|
|
case "3": // 审核通过
|
|
case "3": // 审核通过
|
|
|
|
|
|
@@ -1703,14 +1729,28 @@ public class WmTaskServiceImpl extends ServiceImpl<WmTaskMapper, WmTask> impleme
|
|
updateWrapper.set(WmTask::getRealFlag, "0");
|
|
updateWrapper.set(WmTask::getRealFlag, "0");
|
|
updateWrapper.set(WmTask::getUpdateTime, now);
|
|
updateWrapper.set(WmTask::getUpdateTime, now);
|
|
this.update(updateWrapper);
|
|
this.update(updateWrapper);
|
|
|
|
+ checkResult = true;
|
|
break;
|
|
break;
|
|
case "4": // 审核不通过
|
|
case "4": // 审核不通过
|
|
updateWrapper.set(WmTask::getTaskStatus, wmTask.getTaskStatus());
|
|
updateWrapper.set(WmTask::getTaskStatus, wmTask.getTaskStatus());
|
|
updateWrapper.set(WmTask::getRealFlag, "0");
|
|
updateWrapper.set(WmTask::getRealFlag, "0");
|
|
this.update(updateWrapper);
|
|
this.update(updateWrapper);
|
|
|
|
+ checkResult = false;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // 创建审批流审核记录
|
|
|
|
+ Boolean finalCheckResult = checkResult;
|
|
|
|
+ List<SysCheckChainNodeCheckHistoryDTO.OnCreate> collect = Arrays.stream(ids).map(id -> {
|
|
|
|
+ SysCheckChainNodeCheckHistoryDTO.OnCreate res = new SysCheckChainNodeCheckHistoryDTO.OnCreate();
|
|
|
|
+ res.setNodeId(wmTask.getNodeId());
|
|
|
|
+ res.setTargetId(Integer.valueOf(id));
|
|
|
|
+ res.setCheckResult(finalCheckResult);
|
|
|
|
+ res.setCheckMessage(wmTask.getTaskStatusInfo());
|
|
|
|
+ return res;
|
|
|
|
+ }).collect(Collectors.toList());
|
|
|
|
+ checkChainManager.doCheck(collect, SecurityUtils.getUser());
|
|
|
|
+
|
|
wmTaskList.forEach(task -> {
|
|
wmTaskList.forEach(task -> {
|
|
WmScorePackageStatus scorePackageStatus = new WmScorePackageStatus();
|
|
WmScorePackageStatus scorePackageStatus = new WmScorePackageStatus();
|
|
scorePackageStatus.setPackageId(wmScorePackage.getId());
|
|
scorePackageStatus.setPackageId(wmScorePackage.getId());
|