✨ 新增项目变更独立单据与MK审批回写

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-27 16:45:37 +08:00
parent adf782401a
commit 41a86fe335
11 changed files with 1379 additions and 0 deletions
@@ -0,0 +1,206 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 项目变更实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_project_change")
@Schema(description = "项目变更")
public class ProjectChange extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "原项目ID")
private Long projectId;
@Schema(description = "变更编号")
private String changeNo;
@Schema(description = "变更类型")
private String changeType;
@Schema(description = "变更日期")
private LocalDate changeDate;
@Schema(description = "变更内容")
private String changeContent;
@Schema(description = "变更原因")
private String changeReason;
@Schema(description = "变更前快照JSON")
private String beforeDataJson;
@Schema(description = "项目编号")
private String projectCode;
@Schema(description = "项目名称")
private String projectName;
@Schema(description = "项目简称")
private String projectShortName;
@Schema(description = "项目类型")
private String projectType;
@Schema(description = "业务部门ID")
private Long businessDeptId;
@Schema(description = "业务部门")
private String businessDeptName;
@Schema(description = "承办部门/平台公司ID,多个逗号分隔")
private String undertakeDeptId;
@Schema(description = "承办部门/平台公司,多个顿号分隔")
private String undertakeDeptName;
@Schema(description = "项目由来")
private String projectSource;
@Schema(description = "项目由来说明")
private String sourceRemark;
@Schema(description = "项目资金使用额度(万元)")
private BigDecimal fundLimit;
@Schema(description = "项目应收账款额度(万元)")
private BigDecimal receivableLimit;
@Schema(description = "应收账款回款期限(天)")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private Integer receivableDays;
@Schema(description = "回款账期(天)")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private Integer paymentDays;
@Schema(description = "货物类型")
private String cargoType;
@Schema(description = "预估货物数量")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private String cargoQuantity;
@Schema(description = "业务周期开始日期")
private LocalDate businessStartDate;
@Schema(description = "业务周期结束日期")
private LocalDate businessEndDate;
@Schema(description = "运输线路")
private String transportRoute;
@Schema(description = "运输类型")
private String transportType;
@Schema(description = "业务类型")
private String businessType;
@Schema(description = "业务模式")
private String businessMode;
@Schema(description = "项目规模(万元)")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private BigDecimal projectScale;
@Schema(description = "预计利润(万元)")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private BigDecimal estimatedProfit;
@Schema(description = "利润率(%)")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private BigDecimal profitRate;
@Schema(description = "资金需求(万元)")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private BigDecimal fundDemand;
@Schema(description = "结算方式")
private String settlementMode;
@Schema(description = "项目经办人ID")
private Long handlerUserId;
@Schema(description = "项目经办人")
private String handlerUserName;
@Schema(description = "项目负责人ID")
private Long principalUserId;
@Schema(description = "项目负责人")
private String principalUserName;
@Schema(description = "客户名称")
private String customerNames;
@Schema(description = "下游承运商")
private String carrierNames;
@Schema(description = "客户信息JSON")
private String customerJson;
@Schema(description = "承运商信息JSON")
private String carrierJson;
@Schema(description = "项目情况说明")
private String situationRemark;
@Schema(description = "项目附件JSON")
private String attachmentsJson;
@Schema(description = "审批状态")
private String approvalStatus;
@Schema(description = "当前节点")
private String currentNode;
@Schema(description = "当前处理人")
private String currentProcessor;
@Schema(description = "审核通过时间")
private LocalDateTime approvedTime;
@Schema(description = "同步状态")
private String syncStatus;
}
@@ -0,0 +1,84 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.ProjectChange;
import java.io.Serial;
import java.util.List;
import java.util.Map;
/**
* 项目变更视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "项目变更")
public class ProjectChangeVO extends ProjectChange {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "是否查看全部组织")
private Integer allDept;
@TableField(exist = false)
@Schema(description = "是否只读")
private Boolean readonly;
@TableField(exist = false)
@Schema(description = "创建人姓名")
private String createUserName;
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
@TableField(exist = false)
@Schema(description = "审批状态名称")
private String approvalStatusName;
@TableField(exist = false)
@Schema(description = "同步状态名称")
private String syncStatusName;
@TableField(exist = false)
@Schema(description = "货物类型字典,公开页回显使用")
private List<Map<String, String>> cargoTypeOptions;
@TableField(exist = false)
@Schema(description = "运输类型字典,公开页回显使用")
private List<Map<String, String>> transportTypeOptions;
@TableField(exist = false)
@Schema(description = "结算方式字典,公开页回显使用")
private List<Map<String, String>> settlementModeOptions;
}