1、新增结算调整单
2、新增运输对账
This commit is contained in:
+6
@@ -52,6 +52,9 @@ public class PreSettlementSaveRequest implements Serializable {
|
||||
@Schema(description = "合同ID")
|
||||
private Long contractId;
|
||||
|
||||
@Schema(description = "结算类型:receivable/payable")
|
||||
private String settlementType;
|
||||
|
||||
@Schema(description = "汇率日期")
|
||||
private LocalDate exchangeRateDate;
|
||||
|
||||
@@ -67,6 +70,9 @@ public class PreSettlementSaveRequest implements Serializable {
|
||||
@Schema(description = "应收应付明细ID")
|
||||
private List<Long> sourceDetailIds;
|
||||
|
||||
@Schema(description = "是否允许批量转结算兼容历史来源明细的项目、所属组织或客商差异")
|
||||
private Boolean allowSourceMismatch;
|
||||
|
||||
@Schema(description = "结算合计费用")
|
||||
private List<SummaryFee> summaryFees;
|
||||
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package org.springblade.transport.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class SettlementAdjustmentSaveRequest implements Serializable {
|
||||
@Serial private static final long serialVersionUID = 1L;
|
||||
private Long id;
|
||||
private Long formalSettlementId;
|
||||
private String remark;
|
||||
private List<Detail> details;
|
||||
|
||||
@Data
|
||||
public static class Detail implements Serializable {
|
||||
@Serial private static final long serialVersionUID = 1L;
|
||||
private Long formalSettlementDetailId;
|
||||
private Long formalSettlementDetailFeeId;
|
||||
private String feeType;
|
||||
private String feeItem;
|
||||
private BigDecimal adjustmentAmountTax;
|
||||
private BigDecimal adjustmentAmountNoTax;
|
||||
private String remark;
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package org.springblade.transport.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class SettlementAdjustmentStatusRequest implements Serializable {
|
||||
@Serial private static final long serialVersionUID = 1L;
|
||||
private Long id;
|
||||
private String reason;
|
||||
}
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
/** BladeX Commercial License Agreement. Copyright (c) 2018-2099, https://bladex.cn. Author: Chill Zhuang. */
|
||||
package org.springblade.transport.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/** 运输对账人工匹配请求。 @author Chill */
|
||||
@Data
|
||||
public class TransportReconciliationManualMatchRequest implements Serializable {
|
||||
@Serial private static final long serialVersionUID = 1L;
|
||||
private Long reconciliationId;
|
||||
private Long internalId;
|
||||
private Long externalId;
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
/** BladeX Commercial License Agreement. Copyright (c) 2018-2099, https://bladex.cn. Author: Chill Zhuang. */
|
||||
package org.springblade.transport.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
|
||||
/** 运输对账单保存请求。 @author Chill */
|
||||
@Data
|
||||
public class TransportReconciliationSaveRequest implements Serializable {
|
||||
@Serial private static final long serialVersionUID = 1L;
|
||||
private Long id;
|
||||
private Long formalSettlementId;
|
||||
private String reconciliationMode;
|
||||
private LocalDate reconciliationDate;
|
||||
private String remark;
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
package org.springblade.transport.pojo.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springblade.core.tenant.mp.TenantEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("blade_settlement_adjustment")
|
||||
public class SettlementAdjustment extends TenantEntity {
|
||||
@Serial private static final long serialVersionUID = 1L;
|
||||
private String adjustmentNo;
|
||||
private Long formalSettlementId;
|
||||
private String formalSettlementNo;
|
||||
private String settlementType;
|
||||
private String projectName;
|
||||
private String deptName;
|
||||
private String customerName;
|
||||
private String contractNo;
|
||||
private String contractName;
|
||||
private BigDecimal adjustmentAmount;
|
||||
private BigDecimal originalSettlementAmount;
|
||||
private BigDecimal adjustedSettlementAmount;
|
||||
private String approvalStatus;
|
||||
private String currentNode;
|
||||
private String currentProcessor;
|
||||
private String kingdeeSyncStatus;
|
||||
private String remark;
|
||||
private LocalDateTime approvedTime;
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package org.springblade.transport.pojo.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springblade.core.tenant.mp.TenantEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("blade_settlement_adjustment_detail")
|
||||
public class SettlementAdjustmentDetail extends TenantEntity {
|
||||
@Serial private static final long serialVersionUID = 1L;
|
||||
private Long adjustmentId;
|
||||
private Long formalSettlementDetailId;
|
||||
private Long formalSettlementDetailFeeId;
|
||||
private String feeType;
|
||||
private String feeItem;
|
||||
private BigDecimal originalAmountTax;
|
||||
private BigDecimal adjustmentAmountTax;
|
||||
private BigDecimal adjustmentAmountNoTax;
|
||||
private String remark;
|
||||
}
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
/**
|
||||
* 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>
|
||||
* <p>Author: Chill Zhuang (bladejava@qq.com)</p>
|
||||
*/
|
||||
package org.springblade.transport.pojo.entity;
|
||||
|
||||
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_transport_reconciliation")
|
||||
@Schema(description = "运输对账单")
|
||||
public class TransportReconciliation extends TenantEntity {
|
||||
@Serial private static final long serialVersionUID = 1L;
|
||||
private String reconciliationNo;
|
||||
private Long formalSettlementId;
|
||||
private String formalSettlementNo;
|
||||
private String preSettlementNos;
|
||||
private String settlementType;
|
||||
private String reconciliationMode;
|
||||
private Long projectId;
|
||||
private String projectName;
|
||||
private Long deptId;
|
||||
private String deptName;
|
||||
private Long contractId;
|
||||
private String contractNo;
|
||||
private String contractName;
|
||||
private String payerName;
|
||||
private String payeeName;
|
||||
private String currency;
|
||||
private BigDecimal settlementAmount;
|
||||
private BigDecimal paidAmount;
|
||||
private Long reconcilerId;
|
||||
private String reconcilerName;
|
||||
private LocalDate reconciliationDate;
|
||||
private String reconciliationStatus;
|
||||
private String matchStatus;
|
||||
private Integer internalBillCount;
|
||||
private Integer externalBillCount;
|
||||
private Integer differenceCount;
|
||||
private BigDecimal internalQuantity;
|
||||
private BigDecimal externalQuantity;
|
||||
private BigDecimal differenceQuantity;
|
||||
private BigDecimal internalAmount;
|
||||
private BigDecimal externalAmount;
|
||||
private BigDecimal differenceAmount;
|
||||
private Integer matchedCount;
|
||||
private Integer unmatchedCount;
|
||||
private Boolean billUpdated;
|
||||
private LocalDateTime completedTime;
|
||||
private String remark;
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* 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>
|
||||
* <p>Author: Chill Zhuang (bladejava@qq.com)</p>
|
||||
*/
|
||||
package org.springblade.transport.pojo.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springblade.core.tenant.mp.TenantEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/** 运输对账账单变更记录。 @author Chill */
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("blade_transport_reconciliation_change_record")
|
||||
public class TransportReconciliationChangeRecord extends TenantEntity {
|
||||
@Serial private static final long serialVersionUID = 1L;
|
||||
private Long reconciliationId;
|
||||
private Long internalDetailId;
|
||||
private Long formalSettlementId;
|
||||
private Long formalSettlementDetailId;
|
||||
private Long sourceDetailId;
|
||||
private String documentNo;
|
||||
private String cargoName;
|
||||
private BigDecimal beforeAmount;
|
||||
private BigDecimal afterAmount;
|
||||
private String beforeDataJson;
|
||||
private String afterDataJson;
|
||||
private Long operatorId;
|
||||
private String operatorName;
|
||||
private LocalDateTime changeTime;
|
||||
private String changeReason;
|
||||
}
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
/**
|
||||
* 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>
|
||||
* <p>Author: Chill Zhuang (bladejava@qq.com)</p>
|
||||
*/
|
||||
package org.springblade.transport.pojo.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springblade.core.tenant.mp.TenantEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/** 运输对账外部账单行。 @author Chill */
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("blade_transport_reconciliation_external")
|
||||
public class TransportReconciliationExternal extends TenantEntity {
|
||||
@Serial private static final long serialVersionUID = 1L;
|
||||
private Long reconciliationId;
|
||||
private Integer externalLineNo;
|
||||
private String vehicleNo;
|
||||
private String departureAddress;
|
||||
private String arrivalAddress;
|
||||
private LocalDateTime actualDepartureTime;
|
||||
private LocalDateTime actualCompletionTime;
|
||||
private String transportType;
|
||||
private String cargoName;
|
||||
private String cargoType;
|
||||
private String specification;
|
||||
private String model;
|
||||
private BigDecimal transportQuantity;
|
||||
private String quantityUnit;
|
||||
private BigDecimal mileage;
|
||||
private String batchNo;
|
||||
private BigDecimal unitPrice;
|
||||
private BigDecimal freightAmount;
|
||||
private String feeItemsJson;
|
||||
private BigDecimal settlementAmount;
|
||||
private Boolean suspectedDuplicate;
|
||||
private String matchStatus;
|
||||
private Long matchedInternalId;
|
||||
private String errorMessage;
|
||||
private String rawDataJson;
|
||||
}
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
/**
|
||||
* 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>
|
||||
* <p>Author: Chill Zhuang (bladejava@qq.com)</p>
|
||||
*/
|
||||
package org.springblade.transport.pojo.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springblade.core.tenant.mp.TenantEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/** 运输对账内部账单快照。 @author Chill */
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("blade_transport_reconciliation_internal")
|
||||
public class TransportReconciliationInternal extends TenantEntity {
|
||||
@Serial private static final long serialVersionUID = 1L;
|
||||
private Long reconciliationId;
|
||||
private Long formalSettlementDetailId;
|
||||
private Long formalSettlementDetailFeeId;
|
||||
private Long sourceDetailId;
|
||||
private Long sourceCargoFeeId;
|
||||
private Integer lineNo;
|
||||
private String documentNo;
|
||||
private String waybillNo;
|
||||
private String vehicleNo;
|
||||
private String departureAddress;
|
||||
private String arrivalAddress;
|
||||
private LocalDateTime actualDepartureTime;
|
||||
private LocalDateTime actualCompletionTime;
|
||||
private String transportType;
|
||||
private String cargoName;
|
||||
private String cargoType;
|
||||
private String specification;
|
||||
private String model;
|
||||
private BigDecimal transportQuantity;
|
||||
private String quantityUnit;
|
||||
private BigDecimal mileage;
|
||||
private String batchNo;
|
||||
private BigDecimal unitPrice;
|
||||
private BigDecimal freightAmount;
|
||||
private String feeItemsJson;
|
||||
private BigDecimal settlementAmount;
|
||||
private Long matchedExternalId;
|
||||
private Integer matchedExternalLineNo;
|
||||
private String matchResult;
|
||||
private String updateResult;
|
||||
private String updateMessage;
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package org.springblade.transport.pojo.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springblade.transport.pojo.entity.SettlementAdjustment;
|
||||
import org.springblade.transport.pojo.entity.SettlementAdjustmentDetail;
|
||||
import org.springblade.transport.pojo.entity.FormalSettlementDetail;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class SettlementAdjustmentVO extends SettlementAdjustment {
|
||||
private LocalDate createStartDate;
|
||||
private LocalDate createEndDate;
|
||||
private String approvalStatusName;
|
||||
private String settlementTypeName;
|
||||
private String createUserName;
|
||||
private List<SettlementAdjustmentDetail> details;
|
||||
private List<FormalSettlementDetail> formalDetails;
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
/** BladeX Commercial License Agreement. Copyright (c) 2018-2099, https://bladex.cn. Author: Chill Zhuang. */
|
||||
package org.springblade.transport.pojo.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.springblade.transport.pojo.entity.TransportReconciliation;
|
||||
import org.springblade.transport.pojo.entity.TransportReconciliationChangeRecord;
|
||||
import org.springblade.transport.pojo.entity.TransportReconciliationExternal;
|
||||
import org.springblade.transport.pojo.entity.TransportReconciliationInternal;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.List;
|
||||
|
||||
/** 运输对账单视图实体类。 @author Chill */
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class TransportReconciliationVO extends TransportReconciliation {
|
||||
@Serial private static final long serialVersionUID = 1L;
|
||||
@TableField(exist = false) private String createUserName;
|
||||
@TableField(exist = false) private String updateUserName;
|
||||
@TableField(exist = false) private String reconciliationModeName;
|
||||
@TableField(exist = false) private String reconciliationStatusName;
|
||||
@TableField(exist = false) private String matchStatusName;
|
||||
@TableField(exist = false) private List<TransportReconciliationInternal> internalDetails;
|
||||
@TableField(exist = false) private List<TransportReconciliationExternal> externalDetails;
|
||||
@TableField(exist = false) private List<TransportReconciliationChangeRecord> changeRecords;
|
||||
}
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
package org.springblade.transport.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.springblade.transport.pojo.dto.SettlementAdjustmentSaveRequest;
|
||||
import org.springblade.transport.pojo.dto.SettlementAdjustmentStatusRequest;
|
||||
import org.springblade.transport.pojo.entity.SettlementAdjustment;
|
||||
import org.springblade.transport.pojo.vo.SettlementAdjustmentVO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface ISettlementAdjustmentService {
|
||||
IPage<SettlementAdjustmentVO> selectPage(IPage<SettlementAdjustment> page, SettlementAdjustmentVO query);
|
||||
SettlementAdjustmentVO detail(Long id);
|
||||
List<Map<String, Object>> candidateFormalSettlements(String keyword);
|
||||
List<Map<String, Object>> formalDetails(Long formalSettlementId);
|
||||
Long saveDraft(SettlementAdjustmentSaveRequest request);
|
||||
void removeDraft(Long id);
|
||||
void submit(SettlementAdjustmentStatusRequest request);
|
||||
void approve(SettlementAdjustmentStatusRequest request);
|
||||
void returnBill(SettlementAdjustmentStatusRequest request);
|
||||
String repush(Long adjustmentId);
|
||||
}
|
||||
Reference in New Issue
Block a user