feat: (REQ-3300) 变更单详情加上发起人头像/发起人岗位/发起人公司
This commit is contained in:
parent
692d1f3e37
commit
3f260a9823
@ -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");
|
||||
|
||||
@ -18,7 +18,7 @@ public enum VisaConfirmBizTypeEnum {
|
||||
|
||||
CONFIRM("CONFIRM", "确认"),
|
||||
CREATE("CREATE", "创建"),
|
||||
APPROVE("CREATE", "审核"),
|
||||
APPROVE("APPROVE", "审核"),
|
||||
OTHER("OTHER", "其他"),
|
||||
;
|
||||
|
||||
|
||||
@ -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
|
||||
*/
|
||||
|
||||
@ -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<ChangeRecordConfirm> {
|
||||
|
||||
|
||||
@ -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<VisaDetailByIdResponse.RelationOuAndPerson> listRelationByVisaId(Long visaId);
|
||||
List<VisaDetailByIdResponse.RelationOuAndPerson> listRelationByVisaId(List<ChangeRecordConfirm> list);
|
||||
|
||||
/**
|
||||
* 根据条件查询
|
||||
@ -74,4 +75,9 @@ public interface ChangeRecordConfirmService {
|
||||
* @return
|
||||
*/
|
||||
List<VisaChangeApproveCreateReq.ApprovePersonInfo> listAllConfirmByVisaId(Long visaId);
|
||||
|
||||
/**
|
||||
* 构建公司的Map,orgIdAndNameMap,key:ouId,value:ouName
|
||||
*/
|
||||
Map<Long, String> buildOrgIdAndNameMap(Set<Long> ouIdSet);
|
||||
}
|
||||
|
||||
@ -179,12 +179,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
|
||||
* 变更签证Id获取map
|
||||
*/
|
||||
@Override
|
||||
public List<VisaDetailByIdResponse.RelationOuAndPerson> listRelationByVisaId(Long visaId) {
|
||||
// 1 查询相关确认人
|
||||
VisaConfirmDto dto = VisaConfirmDto.builder()
|
||||
.visaId(visaId)
|
||||
.bizType(VisaConfirmBizTypeEnum.CONFIRM).build();
|
||||
List<ChangeRecordConfirm> list = this.findByCondition(dto);
|
||||
public List<VisaDetailByIdResponse.RelationOuAndPerson> listRelationByVisaId(List<ChangeRecordConfirm> list) {
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return Lists.newArrayList();
|
||||
}
|
||||
@ -204,7 +199,7 @@ public class ChangeRecordConfirmServiceImpl extends ServiceImpl<ChangeRecordConf
|
||||
/**
|
||||
* 构建公司的Map,orgIdAndNameMap,key:ouId,value:ouName
|
||||
*/
|
||||
private Map<Long, String> buildOrgIdAndNameMap(Set<Long> ouIdSet) {
|
||||
public Map<Long, String> buildOrgIdAndNameMap(Set<Long> ouIdSet) {
|
||||
if (CollectionUtils.isEmpty(ouIdSet)) {
|
||||
return Maps.newHashMap();
|
||||
}
|
||||
|
||||
@ -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<ChangeRecordDao, Change
|
||||
@Resource
|
||||
private VisaHelper visaHelper;
|
||||
|
||||
@Resource
|
||||
private OrganizationalUnitGateway organizationalUnitGateway;
|
||||
|
||||
@Resource
|
||||
private VisaOrganizationalNodeUserGateway visaOrganizationalNodeUserGateway;
|
||||
|
||||
|
||||
/**
|
||||
* 状态变更
|
||||
@ -320,6 +332,10 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
ProjectDetailRes projectDetailRes = visaProjectApiGateway.getProjectById(visa.getRelationProject());
|
||||
GetDetailRes workspace = workspaceGateway.getById(visa.getRelationWorkspaceId());
|
||||
|
||||
// 1 查询相关确认人
|
||||
Pair<List<ChangeRecordConfirm>, 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<ChangeRecordDao, Change
|
||||
.type(visa.getType()) //单据类型,DESIGN_CHANGE:设计变更,TECHNOLOGY_APPROVED:技术核定,PROJECT_VISA:工程签证
|
||||
.reason(visa.getReason()) //发生原因
|
||||
.createName(profile.getRealName()) //发起人姓名
|
||||
.createAvatarUrl(profile.getAvatarUrl()) // 发起人头像
|
||||
.createJobCode((Objects.nonNull(orgNodeUserDTO) && Objects.nonNull(orgNodeUserDTO.getJob())) ? orgNodeUserDTO.getJob().getCode() : "") // 发起人岗位code
|
||||
.createJobName((Objects.nonNull(orgNodeUserDTO) && Objects.nonNull(orgNodeUserDTO.getJob())) ? orgNodeUserDTO.getJob().getName() : "") // 发起人岗位名称
|
||||
.createOuName((Objects.nonNull(orgNodeUserDTO) && Objects.nonNull(orgNodeUserDTO.getUnit())) ? orgNodeUserDTO.getUnit().getName() : "") //发起人单位名称
|
||||
.createOuId((Objects.nonNull(orgNodeUserDTO) && Objects.nonNull(orgNodeUserDTO.getUnit())) ? orgNodeUserDTO.getUnit().getId() : 0l) // 发起人单位
|
||||
.createBy(visa.getCreateBy()) //发起人Id
|
||||
.happenTime(Objects.nonNull(visa.getHappenTime()) ? DateUtil.format(visa.getHappenTime(), "yyyy-MM-dd") : "") // 提出时间
|
||||
.approvalCompleteTime(Objects.nonNull(visa.getApprovalCompleteTime()) ? DateUtil.format(visa.getApprovalCompleteTime(), "yyyy-MM-dd HH:mm:ss") : "") //最终审批时间
|
||||
@ -336,7 +357,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
.relationProjectName((Objects.nonNull(projectDetailRes) && Objects.nonNull(projectDetailRes.getProjectInfo())) ? projectDetailRes.getProjectInfo().getName() : "") // 工程名称
|
||||
.relationWorkspaceId(visa.getRelationWorkspaceId()) // 项目Id
|
||||
.relationWorkspaceName(Objects.nonNull(workspace) ? workspace.getName() : "") // 项目名称
|
||||
.relationOuAndPersonList(changeRecordConfirmService.listRelationByVisaId(visaId)) // 相关单位与确认人
|
||||
.relationOuAndPersonList(changeRecordConfirmService.listRelationByVisaId(pair.getKey())) // 相关单位与确认人
|
||||
.relationTaskList(CollectionUtils.isEmpty(billMap.get(VisaBillTypeEnum.TASK)) ? Lists.newArrayList() : billMap.get(VisaBillTypeEnum.TASK)) // 关联任务单
|
||||
.relationRectifyList(CollectionUtils.isEmpty(billMap.get(VisaBillTypeEnum.RECTIFY)) ? Lists.newArrayList() : billMap.get(VisaBillTypeEnum.RECTIFY)) //关联整改单
|
||||
.relationVisaList(CollectionUtils.isEmpty(billMap.get(VisaBillTypeEnum.VISA)) ? Lists.newArrayList() : billMap.get(VisaBillTypeEnum.VISA)) // 关联变更单
|
||||
@ -347,6 +368,42 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建确认人集合与发起人
|
||||
*/
|
||||
private Pair<List<ChangeRecordConfirm>, ChangeRecordConfirm> buildConfirmCreate(Long visaId) {
|
||||
VisaConfirmDto dto = VisaConfirmDto.builder()
|
||||
.visaId(visaId).build();
|
||||
List<ChangeRecordConfirm> list = this.changeRecordConfirmService.findByCondition(dto);
|
||||
List<ChangeRecordConfirm> confirmList = list.stream().filter(item -> item.getBizType() == VisaConfirmBizTypeEnum.CONFIRM).collect(Collectors.toList());
|
||||
List<ChangeRecordConfirm> 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<OrgNodeUserDTO> 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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建上传文件对象集合
|
||||
*/
|
||||
|
||||
Loading…
Reference in New Issue
Block a user