platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/Contract.java
@@ -2,26 +2,29 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.by4cloud.platformx.common.data.mybatis.BaseModel; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Table; import jakarta.persistence.Transient; import lombok.Data; import org.hibernate.annotations.Table; import javax.persistence.Transient; import java.math.BigDecimal; import lombok.EqualsAndHashCode; import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; import com.fasterxml.jackson.annotation.JsonFormat; import java.util.List; /** * @author cd * @description * @description 合同管理 * @date 2026/4/29 10:51 **/ @Data @Entity @Table(appliesTo = "contract", comment = "合同管理") @Table(name = "contract") @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) public class Contract extends BaseModel<Contract> { @@ -42,8 +45,8 @@ private String partyA; @Schema(description = "乙方id") @Column(columnDefinition = "VARCHAR(100) comment '乙方id'") private String partyBId; @Column(columnDefinition = "bigint comment '乙方id'") private Long partyBId; @Schema(description = "乙方名称") @Column(columnDefinition = "VARCHAR(100) comment '乙方名称'") @@ -60,6 +63,10 @@ @Schema(description = "合同类型(0-生成式 1-备案式)") @Column(columnDefinition = "tinyint(2) default 0 comment '合同类型'") private Integer contractType; @Schema(description = "供应属性 0-成品 1-备件 2-大修 3-其他") @Column(columnDefinition = "tinyint(2) default 0 comment '供应属性 0-成品 1-备件 2-大修 3-其他'") private Integer supplyAttribute; @Schema(description = "合同状态(0-草稿 1-已生效 2-已终止 3-已过期)") @Column(columnDefinition = "tinyint(2) default 0 comment '合同状态'") @@ -112,12 +119,25 @@ @Transient @TableField(exist = false) private String approverName; /** * 标的物 */ @Transient @TableField(exist = false) private List<ContractSubjectMatter> contractSubjectMatterList; /** * 收款阶段 */ @Transient @TableField(exist = false) private List<ContractPaymentSchedule> contractPaymentScheduleList; /** * 临时字段 - 合同剩余天数 */ @Transient @TableField(exist = false) @Schema(description = "合同剩余天数(临时字段)") private Long remainingDays; } platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ContractPaymentSchedule.java
@@ -6,13 +6,12 @@ import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Table; import jakarta.persistence.Transient; import lombok.Data; import org.hibernate.annotations.Table; import lombok.EqualsAndHashCode; import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.util.Date; /** * 合同收款计划/履约节点实体类 @@ -23,7 +22,9 @@ */ @Data @Entity @Table(appliesTo = "contract_payment_schedule", comment = "合同收款计划/履约节点表") @Table(name = "contract_payment_schedule") @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) public class ContractPaymentSchedule extends BaseModel<ContractPaymentSchedule> { // ==================== 关联信息 ==================== platformx-business-finance-api/src/main/java/com/by4cloud/platformx/business/entity/ContractSubjectMatter.java
@@ -6,13 +6,12 @@ import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Table; import jakarta.persistence.Transient; import lombok.Data; import org.hibernate.annotations.Table; import lombok.EqualsAndHashCode; import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.util.Date; /** * 合同标的物明细实体类 @@ -21,7 +20,9 @@ */ @Data @Entity @Table(appliesTo = "contract_subject_matter", comment = "合同标的物明细表") @Table(name = "contract_subject_matter") @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) public class ContractSubjectMatter extends BaseModel<ContractSubjectMatter> { @Schema(description = "关联合同ID") @@ -91,14 +92,14 @@ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @JsonFormat(pattern = "yyyy-MM-dd HH:mm") @Schema(description = "计划交付日期") @Column(columnDefinition = "datetime comment '计划交付日期'") private Date plannedDeliveryDate; @Column(columnDefinition = "VARCHAR(64) comment '计划交付日期'") private String plannedDeliveryDate; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @JsonFormat(pattern = "yyyy-MM-dd HH:mm") @Schema(description = "实际交付日期") @Column(columnDefinition = "datetime comment '实际交付日期'") private Date actualDeliveryDate; @Column(columnDefinition = "VARCHAR(64) comment '实际交付日期'") private String actualDeliveryDate; @Schema(description = "交付状态(0-未交付 1-部分交付 2-已交付 3-逾期)") @Column(columnDefinition = "tinyint(2) default 0 comment '交付状态'") @@ -127,8 +128,8 @@ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") @JsonFormat(pattern = "yyyy-MM-dd HH:mm") @Schema(description = "验收时间") @Column(columnDefinition = "datetime comment '验收时间'") private Date acceptTime; @Column(columnDefinition = "VARCHAR(64) comment '验收时间'") private String acceptTime; /** @@ -137,5 +138,5 @@ @Transient @TableField(exist = false) @Schema(description = "已交付数量(临时字段)") private BigDecimal deliveredQuantity; private Double deliveredQuantity; } platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/controller/ContractController.java
@@ -7,8 +7,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.by4cloud.platformx.business.entity.Contract; import com.by4cloud.platformx.common.core.util.R; import com.by4cloud.platformx.common.data.mybatis.BaseModel; import com.by4cloud.platformx.common.log.annotation.SysLog; import com.by4cloud.platformx.business.service.ContractService; import com.by4cloud.platformx.common.security.util.SecurityUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.security.access.prepost.PreAuthorize; import com.by4cloud.platformx.common.excel.annotation.ResponseExcel; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -48,7 +51,10 @@ @PreAuthorize("@pms.hasPermission('business_contract_view')" ) public R getContractPage(@ParameterObject Page page, @ParameterObject Contract contract) { LambdaQueryWrapper<Contract> wrapper = Wrappers.lambdaQuery(); return R.ok(contractService.page(page, wrapper)); wrapper.like(StringUtils.isNotBlank(contract.getContractName()),Contract::getContractName,contract.getContractName()); wrapper.like(StringUtils.isNotBlank(contract.getPartyA()),Contract::getPartyA,contract.getPartyA()); wrapper.orderByDesc(BaseModel::getCreateTime); return R.ok(contractService.pageByScope(page, wrapper)); } @@ -74,6 +80,9 @@ @PostMapping @PreAuthorize("@pms.hasPermission('business_contract_add')" ) public R save(@RequestBody Contract contract) { Long compId = SecurityUtils.getUser().getCompId(); contract.setPartyBId(contract.getCompId()); contract.setPartyB(contract.getCompName()); return R.ok(contractService.save(contract)); }