diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/CommonFeignService.java b/src/main/java/digital/laboratory/platform/entrustment/service/CommonFeignService.java index 4dff10d..33c6f94 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/CommonFeignService.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/CommonFeignService.java @@ -24,6 +24,15 @@ public interface CommonFeignService { */ SysOrg remoteGetSysOrg(String orgId); + /** + * 根据权限和机构远程获取用户列表 + * + * @param orgId 组织ID + * @param permission 权限列表 + * @return 用户列表 + */ + List remoteGetUsersByPermission(String orgId, List permission); + /** * 通过机构ID远程获取机构所在省市信息 * diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/EntrustmentService.java b/src/main/java/digital/laboratory/platform/entrustment/service/EntrustmentService.java index 8d572ba..3138c97 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/EntrustmentService.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/EntrustmentService.java @@ -51,30 +51,6 @@ public interface EntrustmentService extends IService { IPage getEntrustmentVOPage(IPage page, QueryWrapper qw); EntrustmentVO getEntrustmentVOById(String id); - /** - * 取指定环节可用的用户列表 - * 当流程进行到某个环节的时候, 需要某个用户对这个环节进行处理(通过或不通过)。 - * 这里取可用的用户列表 - *

- * 涉及到的环境有以下几个: - * 1、创建委托及提交 - * 委托的提交者就是委托的创建者。不存在不通过的可能。 - * 2、审核 - * 审核者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托审核权限 - * 3、审批 - * 审核者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托审批权限 - * 4、送检确认 - * 送检确认者有几个条件: (1)必须与委托的创建者是同一个机构, 或上级机构的人 (2)必须拥有委托送检确认权限 - * 5、受理 - * 受理者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托受理权限 - * - * - * @return - */ - List taskAvailableUserList_Check(); - List taskAvailableUserList_Approve(); - List taskAvailableUserList_Confirm(String clientOrgId); - List taskAvailableUserList_Accept(); public long countByCaseId(String caseId); void Entrustment2Word(EntrustmentVO ev) throws IOException; diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/impl/CommonFeignServiceImpl.java b/src/main/java/digital/laboratory/platform/entrustment/service/impl/CommonFeignServiceImpl.java index 1d606a4..d1bfd00 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/impl/CommonFeignServiceImpl.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/impl/CommonFeignServiceImpl.java @@ -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; } + /** + * 取指定环节可用的用户列表 + * 当流程进行到某个环节的时候, 需要某个用户对这个环节进行处理(通过或不通过)。 + * 这里取可用的用户列表 + *

+ * 涉及到的环境有以下几个: + * 1、创建委托及提交 + * 委托的提交者就是委托的创建者。不存在不通过的可能。 + * 2、审核 + * 审核者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托审核权限 + * 3、审批 + * 审核者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托审批权限 + * 4、送检确认 + * 送检确认者有几个条件: (1)必须与委托的创建者是同一个机构, 或上级机构的人 (2)必须拥有委托送检确认权限 + * 5、受理 + * 受理者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托受理权限 + * + * @return + */ + /** + * 根据权限和机构远程获取用户列表 + * + * @param orgId 组织ID + * @param permission 权限列表 + * @return 用户列表 + */ + @Override + public List remoteGetUsersByPermission(String orgId, List permission) { + R> 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远程获取机构所在省市信息 * diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentServiceImpl.java b/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentServiceImpl.java index b7f8a25..5565f06 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentServiceImpl.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentServiceImpl.java @@ -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 - * 涉及到的环境有以下几个: - * 1、创建委托及提交 - * 委托的提交者就是委托的创建者。不存在不通过的可能。 - * 2、审核 - * 审核者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托审核权限 - * 3、审批 - * 审核者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托审批权限 - * 4、送检确认 - * 送检确认者有几个条件: (1)必须与委托的创建者是同一个机构, 或上级机构的人 (2)必须拥有委托送检确认权限 - * 5、受理 - * 受理者有几个条件: (1)必须是鉴定中心的工作人员 (2)必须拥有委托受理权限 - * - * @return - */ - @Override - public List taskAvailableUserList_Check() { - R> r = remoteUserService.innerGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, Arrays.asList(new String[]{"EntrustmentCheck"})); - return r.getData(); - } - - @Override - public List taskAvailableUserList_Approve() { - R> r = remoteUserService.innerGetUsersByPermission(CommonConstants.ORG_TREE_ROOT_ID, Collections.singletonList("EntrustmentApprove")); - return r.getData(); - } - - @Override - public List taskAvailableUserList_Confirm(String clientOrgId) { - R> r = remoteUserService.innerGetUsersByPermission(clientOrgId, Collections.singletonList("EntrustmentConfirm")); - return r.getData(); - } - - @Override - public List taskAvailableUserList_Accept() { - R> 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.query() @@ -1344,7 +1308,8 @@ public class EntrustmentServiceImpl extends ServiceImpl users = this.taskAvailableUserList_Check(); +// List users = this.taskAvailableUserList_Check(); + List 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 users = this.taskAvailableUserList_Approve(); +// List users = this.taskAvailableUserList_Approve(); + List 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 users = new ArrayList(); @@ -2967,7 +2933,8 @@ public class EntrustmentServiceImpl extends ServiceImpl 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 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 approveUsers = entrustmentService.taskAvailableUserList_Approve(); + List 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 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 getSynEntrustStatus(String statusStr) { List statusList = new ArrayList<>();