20250219 更新
取指定环节可用的用户列表 提取到通用实现类中
This commit is contained in:
@@ -24,6 +24,15 @@ public interface CommonFeignService {
|
||||
*/
|
||||
SysOrg remoteGetSysOrg(String orgId);
|
||||
|
||||
/**
|
||||
* 根据权限和机构远程获取用户列表
|
||||
*
|
||||
* @param orgId 组织ID
|
||||
* @param permission 权限列表
|
||||
* @return 用户列表
|
||||
*/
|
||||
List<SysUser> remoteGetUsersByPermission(String orgId, List<String> permission);
|
||||
|
||||
/**
|
||||
* 通过机构ID远程获取机构所在省市信息
|
||||
*
|
||||
|
||||
@@ -51,30 +51,6 @@ public interface EntrustmentService extends IService<Entrustment> {
|
||||
IPage<EntrustmentVO> getEntrustmentVOPage(IPage<Entrustment> page, QueryWrapper<Entrustment> qw);
|
||||
EntrustmentVO getEntrustmentVOById(String id);
|
||||
|
||||
/**
|
||||
* 取指定环节可用的用户列表
|
||||
* 当流程进行到某个环节的时候, 需要某个用户对这个环节进行处理(通过或不通过)。
|
||||
* 这里取可用的用户列表
|
||||
* <p>
|
||||
* 涉及到的环境有以下几个:
|
||||
* 1、创建委托及提交
|
||||
* 委托的提交者就是委托的创建者。不存在不通过的可能。
|
||||
* 2、审核
|
||||
* 审核者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托审核权限
|
||||
* 3、审批
|
||||
* 审核者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托审批权限
|
||||
* 4、送检确认
|
||||
* 送检确认者有几个条件: (1)必须与委托的创建者是同一个机构, 或上级机构的人 (2)必须拥有委托送检确认权限
|
||||
* 5、受理
|
||||
* 受理者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托受理权限
|
||||
*
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<SysUser> taskAvailableUserList_Check();
|
||||
List<SysUser> taskAvailableUserList_Approve();
|
||||
List<SysUser> taskAvailableUserList_Confirm(String clientOrgId);
|
||||
List<SysUser> taskAvailableUserList_Accept();
|
||||
public long countByCaseId(String caseId);
|
||||
void Entrustment2Word(EntrustmentVO ev) throws IOException;
|
||||
|
||||
|
||||
@@ -25,10 +25,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.util.Base64;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -69,6 +66,42 @@ public class CommonFeignServiceImpl implements CommonFeignService {
|
||||
return sysOrg;
|
||||
}
|
||||
|
||||
/**
|
||||
* 取指定环节可用的用户列表
|
||||
* 当流程进行到某个环节的时候, 需要某个用户对这个环节进行处理(通过或不通过)。
|
||||
* 这里取可用的用户列表
|
||||
* <p>
|
||||
* 涉及到的环境有以下几个:
|
||||
* 1、创建委托及提交
|
||||
* 委托的提交者就是委托的创建者。不存在不通过的可能。
|
||||
* 2、审核
|
||||
* 审核者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托审核权限
|
||||
* 3、审批
|
||||
* 审核者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托审批权限
|
||||
* 4、送检确认
|
||||
* 送检确认者有几个条件: (1)必须与委托的创建者是同一个机构, 或上级机构的人 (2)必须拥有委托送检确认权限
|
||||
* 5、受理
|
||||
* 受理者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托受理权限
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
/**
|
||||
* 根据权限和机构远程获取用户列表
|
||||
*
|
||||
* @param orgId 组织ID
|
||||
* @param permission 权限列表
|
||||
* @return 用户列表
|
||||
*/
|
||||
@Override
|
||||
public List<SysUser> remoteGetUsersByPermission(String orgId, List<String> permission) {
|
||||
R<List<SysUser>> r = remoteUserService.innerGetUsersByPermission(orgId, permission);
|
||||
if (r != null && r.getCode() == CommonConstants.SUCCESS) {
|
||||
return r.getData();
|
||||
} else {
|
||||
throw new RuntimeException(String.format("根据权限 [%s] 和 机构id [%s] 远程获取用户列表!", permission, orgId));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过机构ID远程获取机构所在省市信息
|
||||
*
|
||||
|
||||
@@ -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("委托在当前状态下不需要其他用户处理");
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package digital.laboratory.platform.entrustment.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.lang.tree.Tree;
|
||||
import cn.hutool.core.lang.tree.TreeNode;
|
||||
import cn.hutool.core.lang.tree.TreeUtil;
|
||||
@@ -64,6 +65,9 @@ public class SynchronizeDataServiceImpl extends ServiceImpl<EntrustDataVoMapper,
|
||||
@Resource
|
||||
private EntrustmentService entrustmentService;//委托书服务
|
||||
|
||||
@Resource
|
||||
private CommonFeignService commonFeignService;
|
||||
|
||||
//鉴定结果提交
|
||||
public Boolean submitIdentifyResult(String dataPath, String entrustId) {
|
||||
SynConnInfoVo synConnInfoVo = getSysSynConnInfo();
|
||||
@@ -490,15 +494,7 @@ public class SynchronizeDataServiceImpl extends ServiceImpl<EntrustDataVoMapper,
|
||||
}
|
||||
}
|
||||
//设置候选人员
|
||||
List<SysUser> users = entrustmentService.taskAvailableUserList_Check();
|
||||
String candidateUser = "";
|
||||
for (SysUser u : users) {
|
||||
if (candidateUser.length() > 0) {
|
||||
candidateUser += ",";
|
||||
}
|
||||
candidateUser += u.getUserId();
|
||||
}
|
||||
entrustment.setCheckCandidateUser(candidateUser);
|
||||
setEntrustCheckCandidateUser(entrustment);
|
||||
|
||||
|
||||
entrustment.setIdentificationOrgName("国家毒品实验室陕西分中心");//设置鉴定机构
|
||||
@@ -1059,18 +1055,10 @@ public class SynchronizeDataServiceImpl extends ServiceImpl<EntrustDataVoMapper,
|
||||
|
||||
entrustment.setThirdSysEntrustNo(entrustDataVo.getEntrustSerialNumber());
|
||||
//设置审核候选人员
|
||||
List<SysUser> users = entrustmentService.taskAvailableUserList_Check();
|
||||
String candidateUser = "";
|
||||
for (SysUser u : users) {
|
||||
if (candidateUser.length() > 0) {
|
||||
candidateUser += ",";
|
||||
}
|
||||
candidateUser += u.getUserId();
|
||||
}
|
||||
entrustment.setCheckCandidateUser(candidateUser);
|
||||
setEntrustCheckCandidateUser(entrustment);
|
||||
//设置审批候选人员, 也就是受理审核的时候,才设置审批候选人
|
||||
if (entrustDataVo.getStatus().equals("acceptAuditing")) {
|
||||
List<SysUser> approveUsers = entrustmentService.taskAvailableUserList_Approve();
|
||||
List<SysUser> approveUsers = commonFeignService.remoteGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, CollUtil.newArrayList("EntrustmentApprove"));
|
||||
String approveCandidateUser = "";
|
||||
for (SysUser u : approveUsers) {
|
||||
if (approveCandidateUser.length() > 0) {
|
||||
@@ -1142,6 +1130,19 @@ public class SynchronizeDataServiceImpl extends ServiceImpl<EntrustDataVoMapper,
|
||||
return entrustment;
|
||||
}
|
||||
|
||||
//设置候选人员
|
||||
private void setEntrustCheckCandidateUser(Entrustment entrustment) {
|
||||
List<SysUser> users = commonFeignService.remoteGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, CollUtil.newArrayList("EntrustmentCheck"));
|
||||
String candidateUser = "";
|
||||
for (SysUser u : users) {
|
||||
if (candidateUser.length() > 0) {
|
||||
candidateUser += ",";
|
||||
}
|
||||
candidateUser += u.getUserId();
|
||||
}
|
||||
entrustment.setCheckCandidateUser(candidateUser);
|
||||
}
|
||||
|
||||
//设置委托书状态
|
||||
private List<Integer> getSynEntrustStatus(String statusStr) {
|
||||
List<Integer> statusList = new ArrayList<>();
|
||||
|
||||
Reference in New Issue
Block a user