feat: (REQ-3300) 变更签证详情-代码优化

This commit is contained in:
xudawei 2025-02-06 15:47:57 +08:00
parent d96ab83847
commit bb3fa9b9d0
9 changed files with 66 additions and 29 deletions

View File

@ -6,7 +6,7 @@ import com.google.common.collect.Sets;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.springframework.util.CollectionUtils;
import org.apache.commons.collections4.CollectionUtils;
import java.util.Map;
import java.util.Objects;
@ -108,9 +108,10 @@ public enum VisaButtonTypeEnum {
switch (bizTypeSet) {
case CREATE:
case CONFIRM:
return bizTypeBtnMap.get(bizTypeSet.name() + status.name());
case OTHER:
case APPROVE:
Set<VisaButtonTypeEnum> buttonTypeEnumSet = bizTypeBtnMap.get(bizTypeSet.name() + status.name());
return CollectionUtils.isNotEmpty(buttonTypeEnumSet) ? buttonTypeEnumSet : Sets.newHashSet();
default:
throw new ServiceException("单据确认业务类型不匹配");
}

View File

@ -19,7 +19,7 @@ public enum VisaLogTypeEnum {
CHAT_GROUP("chat_group", "发起群聊洽商","发起群聊洽商","%s发起群聊洽商"),
EDIT_FORM("edit_form", "编辑表单","%s编辑表单","%s编辑表单"),
EDIT_AMOUNT("edit_amount", "编辑金额变化","%s编辑金额变化","原值:金额变化:%s;/n 新值:金额变化:%s;"),
EDIT_AMOUNT("edit_amount", "编辑金额变化","%s编辑金额变化","原值:金额变化:%s;<br> 新值:金额变化:%s;"),
UPLOAD_FILE("upload_file", "上传附件","%s上传附件","%s上传%d个附件%s"),
DELETE_UPLOAD_FILE("delete_upload_file", "删除附件","%s删除附件","%s删除%d个附件"),
TO_EXECUTE("to_execute", "发起执行","发起执行", "%s发起执行"),

View File

@ -247,6 +247,20 @@ public class VisaDetailByIdResponse {
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class RelationProfessional {
/**
* code
*/
private String code;
}
@Data
@Builder
@NoArgsConstructor
@ -270,6 +284,18 @@ public class VisaDetailByIdResponse {
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public static class RelationArea {
/**
* id
*/
private Long id;
}
@Data
@Builder
@NoArgsConstructor

View File

@ -61,7 +61,7 @@ public class ChangeRecord extends BaseEntity<ChangeRecord> {
*/
@TableField(value = "relation_area", typeHandler = FastjsonTypeHandler.class)
private JSONObject relationArea;
private JSONArray relationArea;
/**
* 专业集合
@ -138,7 +138,7 @@ public class ChangeRecord extends BaseEntity<ChangeRecord> {
/**
* 修改人id
*/
@TableField(value = "updateBy")
@TableField(value = "update_by")
private Long updateBy;
}

View File

@ -65,7 +65,7 @@ public class ChangeRecordBill extends BaseEntity<ChangeRecordBill> {
/**
* 修改人id
*/
@TableField(value = "updateBy")
@TableField(value = "update_by")
private Long updateBy;
}

View File

@ -56,22 +56,11 @@ public class ChangeRecordLog extends BaseEntity<ChangeRecordLog> {
@TableField(value = "order_by")
private Integer orderBy;
/**
* 操作时间
*/
@TableField(value = "operation_time")
private Date operationTime;
/**
* 创建人id
*/
@TableField(value = "create_by")
private Long createBy;
/**
* 修改人id
*/
@TableField(value = "updateBy")
private Long updateBy;
}

View File

@ -68,7 +68,7 @@ public class ChangeRecordRelation extends BaseEntity<ChangeRecordRelation> {
/**
* 修改人id
*/
@TableField(value = "updateBy")
@TableField(value = "update_by")
private Long updateBy;
}

View File

@ -37,7 +37,6 @@ public class VisaChangeLogPayload implements Serializable {
.action(log.getAction())
.title(log.getTitle())
.content(log.getContent())
.operateTime(log.getOperationTime())
.personId(log.getCreateBy())
.build();
return Event.builder()

View File

@ -8,7 +8,6 @@ import cn.axzo.basics.common.constant.enums.OrganizationalNodeTypeEnum;
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.ReportServiceSDK;
import cn.axzo.basics.report.api.sheet.SheetWrapper;
import cn.axzo.framework.domain.ServiceException;
import cn.axzo.framework.domain.web.result.PageData;
@ -50,12 +49,12 @@ import cn.axzo.nanopart.visa.server.dto.VisaConfirmDto;
import cn.axzo.nanopart.visa.server.dto.VisaLogParam;
import cn.axzo.nanopart.visa.server.mapper.ChangeRecordDao;
import cn.axzo.nanopart.visa.server.rpc.ApolloConstructionAreaGateway;
import cn.axzo.nanopart.visa.server.rpc.VisaCooperateShipGateway;
import cn.axzo.nanopart.visa.server.rpc.DrawingMajorGateway;
import cn.axzo.nanopart.visa.server.rpc.MsgCenterGateway;
import cn.axzo.nanopart.visa.server.rpc.ProjectApiGateway;
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.ProjectApiGateway;
import cn.axzo.nanopart.visa.server.rpc.WorkflowGateway;
import cn.axzo.nanopart.visa.server.rpc.WorkspaceGateway;
import cn.axzo.nanopart.visa.server.service.ChangeRecordBillService;
@ -73,12 +72,12 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
@ -328,8 +327,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
.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") : "") //最终审批时间
.relationProfessionalList(this.buildProfession(visa.getRelationProject(), Sets.newHashSet()))//专业
.relationAreaList(this.buildArea(Lists.newArrayList())) //区域
.relationProfessionalList(this.buildProfession(visa.getRelationProject(), visa.getRelationProfessional()))//专业
.relationAreaList(this.buildArea(visa.getRelationArea())) //区域
.relationProject(visa.getRelationProject()) // 工程Id
.relationProjectName((Objects.nonNull(projectDetailRes) && Objects.nonNull(projectDetailRes.getProjectInfo())) ? projectDetailRes.getProjectInfo().getName() : "") // 工程名称
.relationWorkspaceId(visa.getRelationWorkspaceId()) // 项目Id
@ -927,7 +926,17 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
}
}
private List<VisaDetailByIdResponse.RelationAreaDetail> buildArea(List<Long> areaIds) {
private List<VisaDetailByIdResponse.RelationAreaDetail> buildArea(JSONArray relationArea) {
if (CollectionUtils.isEmpty(relationArea)) {
return Lists.newArrayList();
}
List<VisaDetailByIdResponse.RelationArea> relationAreaList = relationArea.toJavaList(VisaDetailByIdResponse.RelationArea.class);
if (CollectionUtils.isEmpty(relationAreaList)) {
return Lists.newArrayList();
}
List<Long> areaIds = relationAreaList.stream()
.filter(item -> Objects.nonNull(item.getId()))
.map(VisaDetailByIdResponse.RelationArea::getId).collect(Collectors.toList());
if (CollectionUtils.isEmpty(areaIds)) {
return Lists.newArrayList();
}
@ -944,10 +953,23 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
/**
* 构建专业集合
*/
private List<VisaDetailByIdResponse.RelationProfessionalDetail> buildProfession(Long projectId, Set<String> majorCodes) {
if (Objects.isNull(projectId) || CollectionUtils.isEmpty(majorCodes)) {
private List<VisaDetailByIdResponse.RelationProfessionalDetail> buildProfession(Long projectId, JSONArray relationProfessional) {
if (Objects.isNull(projectId) || CollectionUtils.isEmpty(relationProfessional)) {
return Lists.newArrayList();
}
List<VisaDetailByIdResponse.RelationProfessional> professionalList = relationProfessional.toJavaList(VisaDetailByIdResponse.RelationProfessional.class);
if (CollectionUtils.isEmpty(professionalList)) {
return Lists.newArrayList();
}
Set<String> majorCodes = professionalList.stream()
.filter(item -> StringUtils.hasText(item.getCode()))
.map(VisaDetailByIdResponse.RelationProfessional::getCode).collect(Collectors.toSet());
if (CollectionUtils.isEmpty(majorCodes)) {
return Lists.newArrayList();
}
List<DrawingMajorResp> majorRespList = drawingMajorGateway.list(projectId, majorCodes, true);
if (CollectionUtils.isEmpty(majorCodes)) {
return Lists.newArrayList();