|
|
|
@ -1,5 +1,6 @@ |
|
|
|
|
package digital.laboratory.platform.entrustment.service.impl; |
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil; |
|
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
|
import cn.hutool.core.date.LocalDateTimeUtil; |
|
|
|
|
import cn.hutool.core.io.IoUtil; |
|
|
|
@ -50,7 +51,10 @@ import digital.laboratory.platform.sewage.dto.StatisticsDiffStatusJobDTO; |
|
|
|
|
import digital.laboratory.platform.sewage.entity.UpdateInfo; |
|
|
|
|
import digital.laboratory.platform.sewage.feign.RemoteSewageJobService; |
|
|
|
|
import digital.laboratory.platform.sewage.utils.QRCodeUtils; |
|
|
|
|
import digital.laboratory.platform.sys.entity.*; |
|
|
|
|
import digital.laboratory.platform.sys.entity.Deliverer; |
|
|
|
|
import digital.laboratory.platform.sys.entity.DrugLite; |
|
|
|
|
import digital.laboratory.platform.sys.entity.SysOrg; |
|
|
|
|
import digital.laboratory.platform.sys.entity.SysUser; |
|
|
|
|
import digital.laboratory.platform.sys.entity.entrustment.Sample; |
|
|
|
|
import digital.laboratory.platform.sys.feign.*; |
|
|
|
|
import digital.laboratory.platform.sys.vo.entrustment.MarkersVO; |
|
|
|
@ -149,6 +153,9 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru |
|
|
|
|
@Resource |
|
|
|
|
private EntrustApproveRecordService entrustApproveRecordService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private CommonFeignService commonFeignService; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// /**
|
|
|
|
|
// * 审核人员由委托创建者选择。如果 true, 前台在委托提交审核前, 弹出界面让委托人选择审核者; 如果 false, 由系统自动选择审核者。
|
|
|
|
@ -349,49 +356,6 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 取指定环节可用的用户列表 |
|
|
|
|
* 当流程进行到某个环节的时候, 需要某个用户对这个环节进行处理(通过或不通过)。 |
|
|
|
|
* 这里取可用的用户列表 |
|
|
|
|
* <p> |
|
|
|
|
* 涉及到的环境有以下几个: |
|
|
|
|
* 1、创建委托及提交 |
|
|
|
|
* 委托的提交者就是委托的创建者。不存在不通过的可能。 |
|
|
|
|
* 2、审核 |
|
|
|
|
* 审核者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托审核权限 |
|
|
|
|
* 3、审批 |
|
|
|
|
* 审核者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托审批权限 |
|
|
|
|
* 4、送检确认 |
|
|
|
|
* 送检确认者有几个条件: (1)必须与委托的创建者是同一个机构, 或上级机构的人 (2)必须拥有委托送检确认权限 |
|
|
|
|
* 5、受理 |
|
|
|
|
* 受理者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托受理权限 |
|
|
|
|
* |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Override |
|
|
|
|
public List<SysUser> taskAvailableUserList_Check() { |
|
|
|
|
R<List<SysUser>> r = remoteUserService.innerGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, Arrays.asList(new String[]{"EntrustmentCheck"})); |
|
|
|
|
return r.getData(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List<SysUser> taskAvailableUserList_Approve() { |
|
|
|
|
R<List<SysUser>> r = remoteUserService.innerGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, Collections.singletonList("EntrustmentApprove")); |
|
|
|
|
return r.getData(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List<SysUser> taskAvailableUserList_Confirm(String clientOrgId) { |
|
|
|
|
R<List<SysUser>> r = remoteUserService.innerGetUsersByPermission(clientOrgId, Collections.singletonList("EntrustmentConfirm")); |
|
|
|
|
return r.getData(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List<SysUser> taskAvailableUserList_Accept() { |
|
|
|
|
R<List<SysUser>> r = remoteUserService.innerGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, Arrays.asList(new String[]{"EntrustmentAccept"})); |
|
|
|
|
return r.getData(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public long countByCaseId(String caseId) { |
|
|
|
|
return baseMapper.selectCount(Wrappers.<Entrustment>query() |
|
|
|
@ -1344,7 +1308,8 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru |
|
|
|
|
result = saveResult; |
|
|
|
|
} else {// 如果不由客户选择审核候选人, 系统自动把符合条件的员工都作为审核候选人
|
|
|
|
|
if (!StrUtil.equalsIgnoreCase("1", AppStartupRunner.getCfg(CommonConstants.DLP_CODE_ENTRUSTMENT_CLIENT_CHOICE_CHECKERS))) { |
|
|
|
|
List<SysUser> users = this.taskAvailableUserList_Check(); |
|
|
|
|
// List<SysUser> users = this.taskAvailableUserList_Check();
|
|
|
|
|
List<SysUser> users = commonFeignService.remoteGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, CollUtil.newArrayList("EntrustmentCheck")); |
|
|
|
|
String candidateUser = ""; |
|
|
|
|
for (SysUser u : users) { |
|
|
|
|
if (candidateUser.length() > 0) { |
|
|
|
@ -1531,7 +1496,8 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru |
|
|
|
|
|
|
|
|
|
// 是否由审核人选择审批人, 系统自动把符合条件的员工都作为审批候选人
|
|
|
|
|
if (!StrUtil.equalsIgnoreCase("1", AppStartupRunner.getCfg(CommonConstants.DLP_CODE_ENTRUSTMENT_CHECKER_CHOICE_APPROVERS))) { |
|
|
|
|
List<SysUser> users = this.taskAvailableUserList_Approve(); |
|
|
|
|
// List<SysUser> users = this.taskAvailableUserList_Approve();
|
|
|
|
|
List<SysUser> users = commonFeignService.remoteGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, CollUtil.newArrayList("EntrustmentApprove")); |
|
|
|
|
String candidateUser = ""; |
|
|
|
|
for (SysUser u : users) { |
|
|
|
|
if (candidateUser.length() > 0) { |
|
|
|
@ -2025,10 +1991,7 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 送检任务已经提交了, 转到新的环节
|
|
|
|
|
int newStatus = -1; // 新的状态(环节)
|
|
|
|
|
{ |
|
|
|
|
newStatus = ProcessFlowMapper.getNextStatus(entrustment.getStatus(), opCode); |
|
|
|
|
} |
|
|
|
|
int newStatus = ProcessFlowMapper.getNextStatus(entrustment.getStatus(), opCode); // 新的状态(环节)
|
|
|
|
|
|
|
|
|
|
entrustment.setDeliverTime(LocalDateTime.now()); |
|
|
|
|
entrustment.setDeliverSubmitter(dlpUser.getId()); |
|
|
|
@ -2056,7 +2019,7 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
updateWrapper.set("deliver_time", entrustment.getDeliverTime()); |
|
|
|
|
updateWrapper.set("entrustment_time", LocalDateTime.now()); |
|
|
|
|
updateWrapper.set("entrustment_time", entrust.getEntrustmentTime()); |
|
|
|
|
updateWrapper.set("deliver_submitter", entrustment.getDeliverSubmitter()); |
|
|
|
|
|
|
|
|
|
updateWrapper.set("status", entrustment.getStatus()); |
|
|
|
@ -2952,13 +2915,16 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru |
|
|
|
|
|
|
|
|
|
if (entrustment.getStatus() == EntrustmentStatusConstants.ENTRUSTMENT_STATUS_CREATED.getStatus()) { |
|
|
|
|
// 在创建人手中: 已创建, 等待提交
|
|
|
|
|
return R.ok(this.taskAvailableUserList_Check()); |
|
|
|
|
// return R.ok(this.taskAvailableUserList_Check());
|
|
|
|
|
return R.ok(commonFeignService.remoteGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, CollUtil.newArrayList("EntrustmentCheck"))); |
|
|
|
|
} else if (entrustment.getStatus() == EntrustmentStatusConstants.ENTRUSTMENT_STATUS_WAITING_CHECK.getStatus()) { |
|
|
|
|
// 在审核员手中: 已提交, 待审核
|
|
|
|
|
return R.ok(this.taskAvailableUserList_Approve()); |
|
|
|
|
// return R.ok(this.taskAvailableUserList_Approve());
|
|
|
|
|
return R.ok(commonFeignService.remoteGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, CollUtil.newArrayList("EntrustmentApprove"))); |
|
|
|
|
} else if (entrustment.getStatus() == EntrustmentStatusConstants.ENTRUSTMENT_STATUS_WAITING_APPROVE.getStatus()) { |
|
|
|
|
// 在审批员手中: 已审核, 待审批
|
|
|
|
|
return R.ok(this.taskAvailableUserList_Confirm(entrustment.getClientOrgId())); |
|
|
|
|
// return R.ok(this.taskAvailableUserList_Confirm(entrustment.getClientOrgId()));
|
|
|
|
|
return R.ok(commonFeignService.remoteGetUsersByPermission(entrustment.getClientOrgId(), CollUtil.newArrayList("EntrustmentConfirm"))); |
|
|
|
|
} else if (entrustment.getStatus() == EntrustmentStatusConstants.ENTRUSTMENT_STATUS_WAITING_CONFIRM.getStatus()) { |
|
|
|
|
// 在确认者手中: 已审批, 待确认
|
|
|
|
|
List<SysUser> users = new ArrayList<SysUser>(); |
|
|
|
@ -2967,7 +2933,8 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru |
|
|
|
|
return R.ok(users); |
|
|
|
|
} else if (entrustment.getStatus() == EntrustmentStatusConstants.ENTRUSTMENT_STATUS_WAITING_DELIVER.getStatus()) { |
|
|
|
|
// 在送检提交员(创建者)手中: 已确认, 待送检
|
|
|
|
|
return R.ok(this.taskAvailableUserList_Accept()); |
|
|
|
|
// return R.ok(this.taskAvailableUserList_Accept());
|
|
|
|
|
return R.ok(commonFeignService.remoteGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, CollUtil.newArrayList("EntrustmentAccept"))); |
|
|
|
|
} else { |
|
|
|
|
return R.failed("委托在当前状态下不需要其他用户处理"); |
|
|
|
|
} |
|
|
|
|