✨ 新增合同变更独立单据与MK审批回写

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-27 18:34:09 +08:00
parent 41a86fe335
commit 4b9e117c9e
11 changed files with 1380 additions and 7 deletions
@@ -0,0 +1,228 @@
/**
* 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_contract_change")
@Schema(description = "合同变更")
public class ContractChange extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "原合同ID")
private Long contractId;
@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 changeAttachmentsJson;
@Schema(description = "变更前快照JSON")
private String beforeDataJson;
@Schema(description = "合同编号")
private String contractNo;
@Schema(description = "合同名称")
private String contractName;
@Schema(description = "所属项目ID")
private Long projectId;
@Schema(description = "所属项目")
private String projectName;
@Schema(description = "合同负责部门ID")
private Long organizationId;
@Schema(description = "合同负责部门")
private String organizationName;
@Schema(description = "合同类别")
private String contractCategory;
@Schema(description = "签约类型")
private String signType;
@Schema(description = "甲方")
private String partyA;
@Schema(description = "乙方")
private String partyB;
@Schema(description = "开始日期")
private LocalDate startDate;
@Schema(description = "结束日期")
private LocalDate endDate;
@Schema(description = "临时效力起")
private LocalDate temporaryStartDate;
@Schema(description = "临时效力止")
private LocalDate temporaryEndDate;
@Schema(description = "经办人ID")
private Long handlerUserId;
@Schema(description = "经办人")
private String handlerUserName;
@Schema(description = "签订日期")
private LocalDate signDate;
@Schema(description = "申请日期")
private LocalDate applyDate;
@Schema(description = "结算方式")
private String settlementMode;
@Schema(description = "合同格式")
private String contractFormat;
@Schema(description = "是否需要加盖法人章")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private Integer legalSealFlag;
@Schema(description = "一式份数")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private Integer copyCount;
@Schema(description = "结算币种")
private String settlementCurrency;
@Schema(description = "开票周期(天)")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private Integer invoiceCycle;
@Schema(description = "回款账期(天)")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private Integer paymentDays;
@Schema(description = "合同金额")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private BigDecimal contractAmount;
@Schema(description = "是否范本")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private Integer templateFlag;
@Schema(description = "原件合同编号")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private String originalContractNo;
@Schema(description = "是否电子章")
@TableField(insertStrategy = FieldStrategy.ALWAYS, updateStrategy = FieldStrategy.ALWAYS)
private Integer electronicSealFlag;
@Schema(description = "计费信息开关")
private Integer billingEnabled;
@Schema(description = "费用生成模式")
private String feeGenerationMode;
@Schema(description = "合同主文件JSON")
private String contractFileJson;
@Schema(description = "其它附件JSON")
private String attachmentsJson;
@Schema(description = "计费方案JSON")
private String billingPlanJson;
@Schema(description = "结算生成规则JSON")
private String settlementRuleJson;
@Schema(description = "预结算配置JSON")
private String preSettlementConfigJson;
@Schema(description = "正式结算配置JSON")
private String formalSettlementConfigJson;
@Schema(description = "付款比例设置JSON")
private String paymentRatioJson;
@Schema(description = "对账配置JSON")
private String reconciliationJson;
@Schema(description = "合同主要内容")
private String mainContent;
@Schema(description = "其他事项说明")
private String remark;
@Schema(description = "合规客商风险等级(展示用)")
private String hcsRiskLevel;
@Schema(description = "合规客商黑名单状态(展示用)")
private String hcsBlackStatus;
@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,70 @@
/**
* 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.ContractChange;
import java.io.Serial;
/**
* 合同变更视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "合同变更")
public class ContractChangeVO extends ContractChange {
@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;
}