diff --git a/visa/visa-api/src/main/java/cn/axzo/visa/api/changerecord/ChangeRecordApi.java b/visa/visa-api/src/main/java/cn/axzo/visa/api/changerecord/ChangeRecordApi.java index 2e552988..7c61d9dd 100644 --- a/visa/visa-api/src/main/java/cn/axzo/visa/api/changerecord/ChangeRecordApi.java +++ b/visa/visa-api/src/main/java/cn/axzo/visa/api/changerecord/ChangeRecordApi.java @@ -1,9 +1,11 @@ package cn.axzo.visa.api.changerecord; +import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.visa.api.request.ChangeStatusRequest; import cn.axzo.visa.api.request.VisaChangeApproveCreateReq; import cn.axzo.visa.api.request.VisaChangeDiscussCreateReq; +import cn.axzo.visa.api.request.VisaChangeExportReq; import cn.axzo.visa.api.request.VisaChangePageSearchReq; import cn.axzo.visa.api.request.VisaChangeTempCreateReq; import cn.axzo.visa.api.request.VisaDetailByIdRequest; @@ -70,6 +72,15 @@ public interface ChangeRecordApi { * @return 分页记录 */ @PostMapping("/api/visa/change/pageSearch") - ApiResult pageSearchVisaChangeRecord(@RequestBody @Validated VisaChangePageSearchReq req); + ApiPageResult pageSearchVisaChangeRecord(@RequestBody @Validated VisaChangePageSearchReq req); + + /** + * 导出 + * + * @param req {@link VisaChangeExportReq} 筛选条件和导出字段 + * @return void + */ + @PostMapping("/api/visa/change/export") + ApiResult exportVisaChangeRecord(@RequestBody VisaChangeExportReq req); } diff --git a/visa/visa-api/src/main/java/cn/axzo/visa/api/enums/VisaChangeFieldEnum.java b/visa/visa-api/src/main/java/cn/axzo/visa/api/enums/VisaChangeFieldEnum.java new file mode 100644 index 00000000..07d7764a --- /dev/null +++ b/visa/visa-api/src/main/java/cn/axzo/visa/api/enums/VisaChangeFieldEnum.java @@ -0,0 +1,44 @@ +package cn.axzo.visa.api.enums; + +import lombok.Getter; +import org.apache.commons.lang3.StringUtils; + +/** + * @author chenwenjian + * @version 1.0 + * @date 2025/1/16 17:10 + */ +@Getter +public enum VisaChangeFieldEnum { + NO("no", "单号"), + TYPE("type", "单据类型"), + STATUS("status", "单据状态"), + TOPIC("topic", "主题"), + AMOUNT_CHANGE("amountChange", "金额变化"), + CREATE_BY("createBy", "发起人"), + CREATE_AT("happenTime", "提出时间"), + APPROVAL_COMPLETE_TIME("approvalCompleteTime", "审批通过时间"), + RELATION_PROJECT("relationProject", "所属工程"), + ; + + private final String value; + + private final String desc; + + VisaChangeFieldEnum(String value, String desc) { + this.value = value; + this.desc = desc; + } + + public static VisaChangeFieldEnum getByName(String name) { + if (StringUtils.isBlank(name)) { + return null; + } + for (VisaChangeFieldEnum value : values()) { + if (value.value.equals(name)) { + return value; + } + } + return null; + } +} diff --git a/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangeExportReq.java b/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangeExportReq.java new file mode 100644 index 00000000..3d1feaa8 --- /dev/null +++ b/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangeExportReq.java @@ -0,0 +1,31 @@ +package cn.axzo.visa.api.request; + +import cn.axzo.visa.api.enums.VisaChangeFieldEnum; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author chenwenjian + * @version 1.0 + * @date 2025/1/16 17:38 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class VisaChangeExportReq { + + /** + * 筛选条件 + */ + private VisaChangePageSearchReq filter; + + /** + * 导出字段 + */ + private List fields; +} diff --git a/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangeInitiatorResp.java b/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangeInitiatorResp.java new file mode 100644 index 00000000..e1a1306b --- /dev/null +++ b/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangeInitiatorResp.java @@ -0,0 +1,54 @@ +package cn.axzo.visa.api.request; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author chenwenjian + * @version 1.0 + * @date 2025/1/16 18:43 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class VisaChangeInitiatorResp { + + /** + * 发起人personId + */ + private Long personId; + + /** + * 发起人姓名 + */ + private String name; + + /** + * 岗位id + */ + private Long jobId; + + /** + * 岗位名称 + */ + private String jobName; + + /** + * 岗位编码 + */ + private String jobCode; + + /** + * 所属单位id或班组节点id + */ + private Long unitIdOrTeamNodeId; + + /** + * 所属单位名称或班组名称 + */ + private String unitOrTeamName; + +} diff --git a/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangePageSearchReq.java b/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangePageSearchReq.java index 832debab..8a2b6b2d 100644 --- a/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangePageSearchReq.java +++ b/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangePageSearchReq.java @@ -57,10 +57,10 @@ public class VisaChangePageSearchReq { private List amountChange; /** - * 提交时间区间 + * 提出时间区间 * 0:起始时间 1:结束时间 */ - private List submitDate; + private List happenTime; /** * 审批完成时间区间 diff --git a/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangeTempCreateReq.java b/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangeTempCreateReq.java index f896535b..69b6b0ca 100644 --- a/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangeTempCreateReq.java +++ b/visa/visa-api/src/main/java/cn/axzo/visa/api/request/VisaChangeTempCreateReq.java @@ -62,10 +62,10 @@ public class VisaChangeTempCreateReq { private JSONObject relationArea; /** - * 提出日期 + * 提出时间 */ @NotNull(message = "请选择提交日期") - private Date submitDate; + private Date happenTime; /** * 专业集合 diff --git a/visa/visa-api/src/main/java/cn/axzo/visa/api/response/VisaChangePageSearchResp.java b/visa/visa-api/src/main/java/cn/axzo/visa/api/response/VisaChangePageSearchResp.java index df80bbed..e3f5e410 100644 --- a/visa/visa-api/src/main/java/cn/axzo/visa/api/response/VisaChangePageSearchResp.java +++ b/visa/visa-api/src/main/java/cn/axzo/visa/api/response/VisaChangePageSearchResp.java @@ -1,10 +1,16 @@ package cn.axzo.visa.api.response; +import cn.axzo.visa.api.enums.VisaStatusEnum; +import cn.axzo.visa.api.enums.VisaTypeEnum; +import cn.axzo.visa.api.request.VisaChangeInitiatorResp; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import java.math.BigDecimal; +import java.util.Date; + /** * @author chenwenjian * @version 1.0 @@ -15,4 +21,65 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor public class VisaChangePageSearchResp { + + private Long id; + + /** + * 单号 + */ + private String no; + + /** + * 主题 + */ + private String topic; + + /** + * 项目 + */ + private Long relationWorkspaceId; + + /** + * 工程 + */ + private Long relationProject; + + /** + * 工程名称 + */ + private String relationProjectName; + + /** + * 提出时间 + */ + private Date happenTime; + + + /** + * 最终审批时间 + */ + private Date approvalCompleteTime; + + /** + * 单据类型 + */ + private VisaTypeEnum type; + + /** + * 状态 + */ + private VisaStatusEnum status; + + /** + * 有符号的变更金额 + */ + private BigDecimal amountChange; + + + /** + * 发起人 + */ + private VisaChangeInitiatorResp initiator; + + } diff --git a/visa/visa-api/src/main/java/cn/axzo/visa/api/response/VisaDetailByIdResponse.java b/visa/visa-api/src/main/java/cn/axzo/visa/api/response/VisaDetailByIdResponse.java index b0aa9e78..898eb5f3 100644 --- a/visa/visa-api/src/main/java/cn/axzo/visa/api/response/VisaDetailByIdResponse.java +++ b/visa/visa-api/src/main/java/cn/axzo/visa/api/response/VisaDetailByIdResponse.java @@ -67,9 +67,9 @@ public class VisaDetailByIdResponse { private JSONObject relationArea; /** - * 提交日期 + * 提出时间 */ - private Date submitDate; + private Date happenTime; /** * 专业集合 diff --git a/visa/visa-server/src/main/java/cn/axzo/visa/server/controller/ChangeRecordController.java b/visa/visa-server/src/main/java/cn/axzo/visa/server/controller/ChangeRecordController.java index aecff546..b58f6c2e 100644 --- a/visa/visa-server/src/main/java/cn/axzo/visa/server/controller/ChangeRecordController.java +++ b/visa/visa-server/src/main/java/cn/axzo/visa/server/controller/ChangeRecordController.java @@ -1,10 +1,12 @@ package cn.axzo.visa.server.controller; +import cn.axzo.framework.domain.web.result.ApiPageResult; import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.visa.api.changerecord.ChangeRecordApi; import cn.axzo.visa.api.request.ChangeStatusRequest; import cn.axzo.visa.api.request.VisaChangeApproveCreateReq; import cn.axzo.visa.api.request.VisaChangeDiscussCreateReq; +import cn.axzo.visa.api.request.VisaChangeExportReq; import cn.axzo.visa.api.request.VisaChangePageSearchReq; import cn.axzo.visa.api.request.VisaChangeTempCreateReq; import cn.axzo.visa.api.request.VisaDetailByIdRequest; @@ -63,7 +65,12 @@ public class ChangeRecordController implements ChangeRecordApi { } @Override - public ApiResult pageSearchVisaChangeRecord(VisaChangePageSearchReq req) { + public ApiPageResult pageSearchVisaChangeRecord(VisaChangePageSearchReq req) { + return null; + } + + @Override + public ApiResult exportVisaChangeRecord(VisaChangeExportReq req) { return null; } } diff --git a/visa/visa-server/src/main/java/cn/axzo/visa/server/domain/ChangeRecord.java b/visa/visa-server/src/main/java/cn/axzo/visa/server/domain/ChangeRecord.java index 56381f85..d2f8e13e 100644 --- a/visa/visa-server/src/main/java/cn/axzo/visa/server/domain/ChangeRecord.java +++ b/visa/visa-server/src/main/java/cn/axzo/visa/server/domain/ChangeRecord.java @@ -66,6 +66,12 @@ public class ChangeRecord extends BaseEntity { @TableField(value = "relation_professional", typeHandler = FastjsonTypeHandler.class) private JSONObject relationProfessional; + /** + * 提出时间 + */ + @TableField(value = "happen_time") + private Date happenTime; + /** * 有符号的变更金额 */