diff --git a/nanopart-server/src/main/java/cn/axzo/nanopart/config/FeignConfig.java b/nanopart-server/src/main/java/cn/axzo/nanopart/config/FeignConfig.java index 00336a74..819cfbcb 100644 --- a/nanopart-server/src/main/java/cn/axzo/nanopart/config/FeignConfig.java +++ b/nanopart-server/src/main/java/cn/axzo/nanopart/config/FeignConfig.java @@ -70,7 +70,10 @@ public class FeignConfig implements RequestInterceptor, EnvironmentAware { @Value("${attendanceUrl:http://dev-app.axzo.cn/attendance}") private String attendanceApi; @Value("${thorUrl:http://dev-app.axzo.cn/thor}") - private String thorApi; + private String thorUrl; + @Value("${orgGateway:http://dev-app.axzo.cn/org-gateway}") + private String orgGatewayUrl; + private static String POD_NAMESPACE; static { @@ -109,7 +112,8 @@ public class FeignConfig implements RequestInterceptor, EnvironmentAware { url = url.replace("http://karma:8080", karmaEnvUrl); url = url.replace("http://data-collection:21200", dataCollectionUrl); url = url.replace("http://attendance:8080", attendanceApi); - url = url.replace("http://thor:8080", thorApi); + url = url.replace("http://thor:8080", thorUrl); + url = url.replace("http://org-gateway:8080", orgGatewayUrl); String profile = environment.getProperty("spring.profiles.active"); if(Objects.equals(profile, "test") && url.contains("dev-app.axzo.cn")) { url = url.replace("dev-app", "test-api"); diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/enums/VisaConfirmBizTypeEnum.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/enums/VisaConfirmBizTypeEnum.java index 96ecef89..90882861 100644 --- a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/enums/VisaConfirmBizTypeEnum.java +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/enums/VisaConfirmBizTypeEnum.java @@ -18,7 +18,7 @@ public enum VisaConfirmBizTypeEnum { CONFIRM("CONFIRM", "确认"), CREATE("CREATE", "创建"), - APPROVE("CREATE", "审核"), + APPROVE("APPROVE", "审核"), OTHER("OTHER", "其他"), ; diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/response/VisaDetailByIdResponse.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/response/VisaDetailByIdResponse.java index da7c2114..61a523bf 100644 --- a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/response/VisaDetailByIdResponse.java +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/response/VisaDetailByIdResponse.java @@ -54,6 +54,31 @@ public class VisaDetailByIdResponse { */ private String createName; + /** + * 发起人头像 + */ + private String createAvatarUrl; + + /** + * 发起人岗位名称 + */ + private String createJobName; + + /** + * 发起人岗位code + */ + private String createJobCode; + + /** + * 发起人单位名称 + */ + private String createOuName; + + /** + * 发起人单位Id + */ + private Long createOuId; + /** * 发起人Id */ diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/domain/ChangeRecordConfirm.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/domain/ChangeRecordConfirm.java index d7133fc2..fcac7fb9 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/domain/ChangeRecordConfirm.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/domain/ChangeRecordConfirm.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler; import lombok.AllArgsConstructor; +import lombok.Builder; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; @@ -23,6 +24,7 @@ import lombok.experimental.Accessors; @Accessors(chain = true) @NoArgsConstructor @AllArgsConstructor +@Builder @TableName(value = "visa_change_record_confirm", autoResultMap = true) public class ChangeRecordConfirm extends BaseEntity { diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/ChangeRecordConfirmService.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/ChangeRecordConfirmService.java index 2f69d45a..e2e662ff 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/ChangeRecordConfirmService.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/ChangeRecordConfirmService.java @@ -9,6 +9,7 @@ import cn.axzo.nanopart.visa.server.domain.ChangeRecordConfirm; import cn.axzo.nanopart.visa.server.dto.VisaConfirmDto; import java.util.List; +import java.util.Map; import java.util.Set; /** @@ -43,7 +44,7 @@ public interface ChangeRecordConfirmService { /** * 变更签证Id获取map */ - List listRelationByVisaId(Long visaId); + List listRelationByVisaId(List list); /** * 根据条件查询 @@ -74,4 +75,9 @@ public interface ChangeRecordConfirmService { * @return */ List listAllConfirmByVisaId(Long visaId); + + /** + * 构建公司的Map,orgIdAndNameMap,key:ouId,value:ouName + */ + Map buildOrgIdAndNameMap(Set ouIdSet); } diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordConfirmServiceImpl.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordConfirmServiceImpl.java index 0ee65ae0..1490de27 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordConfirmServiceImpl.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordConfirmServiceImpl.java @@ -179,12 +179,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl listRelationByVisaId(Long visaId) { - // 1 查询相关确认人 - VisaConfirmDto dto = VisaConfirmDto.builder() - .visaId(visaId) - .bizType(VisaConfirmBizTypeEnum.CONFIRM).build(); - List list = this.findByCondition(dto); + public List listRelationByVisaId(List list) { if (CollectionUtils.isEmpty(list)) { return Lists.newArrayList(); } @@ -204,7 +199,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl buildOrgIdAndNameMap(Set ouIdSet) { + public Map buildOrgIdAndNameMap(Set ouIdSet) { if (CollectionUtils.isEmpty(ouIdSet)) { return Maps.newHashMap(); } diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java index 1cbac6a7..3329aed8 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java @@ -9,6 +9,7 @@ import cn.axzo.basics.common.util.AssertUtil; import cn.axzo.basics.common.util.NumberUtil; import cn.axzo.basics.profiles.dto.basic.PersonProfileDto; import cn.axzo.basics.report.api.sheet.SheetWrapper; +import cn.axzo.foundation.page.PageResp; import cn.axzo.framework.domain.ServiceException; import cn.axzo.framework.domain.web.result.PageData; import cn.axzo.im.center.api.vo.PersonAccountAttribute; @@ -51,10 +52,11 @@ import cn.axzo.nanopart.visa.server.mapper.ChangeRecordDao; import cn.axzo.nanopart.visa.server.rpc.ApolloConstructionAreaGateway; import cn.axzo.nanopart.visa.server.rpc.DrawingMajorGateway; import cn.axzo.nanopart.visa.server.rpc.MsgCenterGateway; -import cn.axzo.nanopart.visa.server.rpc.VisaProjectApiGateway; +import cn.axzo.nanopart.visa.server.rpc.OrganizationalUnitGateway; import cn.axzo.nanopart.visa.server.rpc.VisaCooperateShipGateway; import cn.axzo.nanopart.visa.server.rpc.VisaOrganizationalNodeUserGateway; import cn.axzo.nanopart.visa.server.rpc.VisaProfileGateway; +import cn.axzo.nanopart.visa.server.rpc.VisaProjectApiGateway; import cn.axzo.nanopart.visa.server.rpc.WorkflowGateway; import cn.axzo.nanopart.visa.server.rpc.WorkspaceGateway; import cn.axzo.nanopart.visa.server.service.ChangeRecordBillService; @@ -63,6 +65,9 @@ import cn.axzo.nanopart.visa.server.service.ChangeRecordLogService; import cn.axzo.nanopart.visa.server.service.ChangeRecordRelationService; import cn.axzo.nanopart.visa.server.service.ChangeRecordService; import cn.axzo.nanopart.visa.server.service.VisaHelper; +import cn.axzo.orggateway.api.nodeuser.dto.OrgNodeUserDTO; +import cn.axzo.orggateway.api.nodeuser.req.ListOrgNodeUserReq; +import cn.axzo.orgmanax.dto.nodeuser.req.ListNodeUserReq; import cn.axzo.thor.client.model.DrawingMajorResp; import cn.axzo.workflow.common.enums.BpmnProcessInstanceResultEnum; import cn.axzo.workflow.common.model.request.bpmn.process.BpmnProcessInstanceAbortDTO; @@ -71,6 +76,7 @@ import cn.axzo.workflow.common.model.request.bpmn.task.BpmnTaskDelegateAssigner; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.Pair; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; @@ -183,6 +189,12 @@ public class ChangeRecordServiceImpl extends ServiceImpl, ChangeRecordConfirm> pair = this.buildConfirmCreate(visaId); + + OrgNodeUserDTO orgNodeUserDTO = this.getOrgNodeUserDTO(pair.getValue().getPersonId(), pair.getValue().getOuId(), pair.getValue().getWorkspaceId()); return VisaDetailByIdResponse.builder() .visaId(visaId) @@ -327,6 +343,11 @@ public class ChangeRecordServiceImpl extends ServiceImpl, ChangeRecordConfirm> buildConfirmCreate(Long visaId) { + VisaConfirmDto dto = VisaConfirmDto.builder() + .visaId(visaId).build(); + List list = this.changeRecordConfirmService.findByCondition(dto); + List confirmList = list.stream().filter(item -> item.getBizType() == VisaConfirmBizTypeEnum.CONFIRM).collect(Collectors.toList()); + List createList = list.stream().filter(item -> item.getBizType() == VisaConfirmBizTypeEnum.CREATE).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(confirmList)) { + confirmList = Lists.newArrayList(); + } + if (CollectionUtils.isEmpty(createList)) { + return Pair.of(confirmList, ChangeRecordConfirm.builder().build()); + } + return Pair.of(confirmList, createList.get(0)); + } + + /** + * 综合获取基础信息 + */ + private OrgNodeUserDTO getOrgNodeUserDTO(Long personId, Long ouId, Long workspaceId) { + if (Objects.isNull(personId) || Objects.isNull(ouId) || Objects.isNull(workspaceId)) { + return null; + } + PageResp pageResp = visaOrganizationalNodeUserGateway.list(ListOrgNodeUserReq.builder() + .personId(personId) + .organizationalUnitId(ouId) + .workspaceId(workspaceId) + .needs(ListNodeUserReq.Needs.builder().job(true).unit(true).personProfile(true).build()).build()); + if (Objects.isNull(pageResp) || CollectionUtils.isEmpty(pageResp.getData())) { + return null; + } + return pageResp.getData().get(0); + } + /** * 构建上传文件对象集合 */