🔀 合并 origin/master 到 dev
This commit is contained in:
+3
-2
@@ -309,12 +309,13 @@ public interface ISysClient {
|
||||
R<Region> getRegion(@RequestParam("code") String code);
|
||||
|
||||
/**
|
||||
* 获取启用的费用项
|
||||
* 获取费用项。默认仅返回启用档案;includeDisabled 为 true 时同时返回停用档案。
|
||||
*
|
||||
* @param includeDisabled 是否包含停用费用项
|
||||
* @return 费用项集合
|
||||
*/
|
||||
@GetMapping(FEE_ITEMS)
|
||||
R<List<FeeItem>> getFeeItems();
|
||||
R<List<FeeItem>> getFeeItems(@RequestParam(value = "includeDisabled", required = false) Boolean includeDisabled);
|
||||
|
||||
@GetMapping(CARGO_TYPES)
|
||||
R<List<CargoType>> getCargoTypes();
|
||||
|
||||
+1
-1
@@ -165,7 +165,7 @@ public class ISysClientFallback implements ISysClient {
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<List<FeeItem>> getFeeItems() {
|
||||
public R<List<FeeItem>> getFeeItems(Boolean includeDisabled) {
|
||||
return R.fail("获取数据失败");
|
||||
}
|
||||
|
||||
|
||||
+15
@@ -72,4 +72,19 @@ public class OaOrgSyncPageVO implements Serializable {
|
||||
|
||||
@Schema(description = "全量同步结束后原始数据层级 JSON 文件路径")
|
||||
private String dumpFilePath;
|
||||
|
||||
@Schema(description = "当前同步的公司 OA 主键(部门阶段按公司轮询时使用)")
|
||||
private String companyOaId;
|
||||
|
||||
@Schema(description = "当前公司序号,从 1 开始")
|
||||
private Integer companyIndex;
|
||||
|
||||
@Schema(description = "待同步公司总数")
|
||||
private Integer companyTotal;
|
||||
|
||||
@Schema(description = "当前公司的部门是否已同步完")
|
||||
private Boolean companyFinished;
|
||||
|
||||
@Schema(description = "下一公司 OA 主键;当前公司完成后回传,前端据此切换并重置页码")
|
||||
private String nextCompanyOaId;
|
||||
}
|
||||
|
||||
+3
@@ -35,6 +35,7 @@ public class PaymentApplicationSaveRequest implements Serializable {
|
||||
private Long settlementId;
|
||||
private List<Long> settlementIds;
|
||||
private Long preSettlementId;
|
||||
private List<Long> preSettlementIds;
|
||||
private Long projectId;
|
||||
private String projectName;
|
||||
private Long deptId;
|
||||
@@ -60,4 +61,6 @@ public class PaymentApplicationSaveRequest implements Serializable {
|
||||
private String remark;
|
||||
private List<PaymentApplicationInvoiceRequest> invoices;
|
||||
private List<PaymentApplicationRecordRequest> paymentRecords;
|
||||
/** 多张结算单时按行提交的付款金额 */
|
||||
private List<PaymentApplicationSettlementLineRequest> settlementLines;
|
||||
}
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* 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>
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
|
||||
* not liable for any claims arising from secondary or illegal development.
|
||||
* <p>
|
||||
* Author: Chill Zhuang (bladejava@qq.com)
|
||||
*/
|
||||
package org.springblade.transport.pojo.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/** 付款申请多结算单付款明细。 @author Chill */
|
||||
@Data
|
||||
public class PaymentApplicationSettlementLineRequest implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
private Long formalSettlementId;
|
||||
private Long preSettlementId;
|
||||
private BigDecimal paymentRatio;
|
||||
private BigDecimal appliedAmount;
|
||||
}
|
||||
+1
-1
@@ -33,7 +33,7 @@ public class PreSettlementDetailAdjustRequest implements Serializable {
|
||||
@Schema(description = "预结算明细ID")
|
||||
private Long detailId;
|
||||
|
||||
@Schema(description = "调整原因")
|
||||
@Schema(description = "备注(写入结算明细备注,非必填)")
|
||||
private String changeReason;
|
||||
|
||||
@Schema(description = "明细费用行")
|
||||
|
||||
+6
@@ -63,4 +63,10 @@ public class ReceivablePayableFeeCalculateRequest implements Serializable {
|
||||
@Schema(description = "动态费用项目")
|
||||
private Map<String, BigDecimal> feeItems;
|
||||
|
||||
@Schema(description = "运输单价")
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
@Schema(description = "本次调整字段:transportQuantity、mileage、unitPrice 或费用项名称")
|
||||
private String changedField;
|
||||
|
||||
}
|
||||
|
||||
+8
@@ -172,4 +172,12 @@ public class FormalSettlement extends TenantEntity {
|
||||
* 作废原因,驳回时记录驳回原因
|
||||
*/
|
||||
private String voidReason;
|
||||
/**
|
||||
* 来源原正式结算单号:结算调整重推生成的新单,指向被调整的原单
|
||||
*/
|
||||
private String originFormalSettlementNo;
|
||||
/**
|
||||
* 调整状态:adjusted-已被结算调整(原单标记)
|
||||
*/
|
||||
private String adjustStatus;
|
||||
}
|
||||
|
||||
+4
@@ -25,6 +25,10 @@ public class FormalSettlementChangeRecord extends TenantEntity {
|
||||
private Integer lineNo;
|
||||
private String operationType;
|
||||
private String changeContent;
|
||||
/** 变更前数据JSON */
|
||||
private String beforeData;
|
||||
/** 变更后数据JSON */
|
||||
private String afterData;
|
||||
private String changeReason;
|
||||
private String operatorName;
|
||||
private LocalDateTime changeTime;
|
||||
|
||||
+8
@@ -8,7 +8,9 @@
|
||||
*/
|
||||
package org.springblade.transport.pojo.entity;
|
||||
|
||||
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;
|
||||
@@ -123,6 +125,12 @@ public class FormalSettlementDetail extends TenantEntity {
|
||||
* 批次号
|
||||
*/
|
||||
private String batchNo;
|
||||
/**
|
||||
* 计费方式(来源应收应付货物费用计费类型,非本表字段)
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@Schema(description = "计费方式")
|
||||
private String billingType;
|
||||
/**
|
||||
* 运输单价
|
||||
*/
|
||||
|
||||
+8
@@ -8,7 +8,9 @@
|
||||
*/
|
||||
package org.springblade.transport.pojo.entity;
|
||||
|
||||
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;
|
||||
@@ -70,6 +72,12 @@ public class FormalSettlementDetailFee extends TenantEntity {
|
||||
* 费用项JSON
|
||||
*/
|
||||
private String feeItemsJson;
|
||||
/**
|
||||
* 命中计费规则JSON(来源费用带回,非本表字段)
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@Schema(description = "命中计费规则JSON")
|
||||
private String billingRulesJson;
|
||||
/**
|
||||
* 原金额
|
||||
*/
|
||||
|
||||
+6
@@ -1,5 +1,6 @@
|
||||
package org.springblade.transport.pojo.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -17,7 +18,12 @@ public class PaymentApplicationSettlement extends TenantEntity {
|
||||
private Long paymentApplicationId;
|
||||
private Long formalSettlementId;
|
||||
private String formalSettlementNo;
|
||||
private Long preSettlementId;
|
||||
private String preSettlementNo;
|
||||
private BigDecimal settlementAmount;
|
||||
private BigDecimal appliedAmount;
|
||||
private BigDecimal paidAmount;
|
||||
/** 查看时回填的可付款金额,不落库 */
|
||||
@TableField(exist = false)
|
||||
private BigDecimal payableAmount;
|
||||
}
|
||||
|
||||
+5
@@ -9,6 +9,7 @@
|
||||
*/
|
||||
package org.springblade.transport.pojo.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
@@ -99,6 +100,10 @@ public class PreSettlementDetail extends TenantEntity {
|
||||
@Schema(description = "批次号")
|
||||
private String batchNo;
|
||||
|
||||
@TableField(exist = false)
|
||||
@Schema(description = "计费方式")
|
||||
private String billingType;
|
||||
|
||||
@Schema(description = "运输单价")
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
|
||||
+4
@@ -30,6 +30,10 @@ public class SettlementAdjustment extends TenantEntity {
|
||||
private String currentNode;
|
||||
private String currentProcessor;
|
||||
private String kingdeeSyncStatus;
|
||||
/**
|
||||
* 金蝶单据号(未推送场景回填原结算单金蝶单号;重推场景回填新单金蝶单号)
|
||||
*/
|
||||
private String kingdeeBillNo;
|
||||
private String attachmentsJson;
|
||||
private String remark;
|
||||
private LocalDateTime approvedTime;
|
||||
|
||||
+3
@@ -107,6 +107,9 @@ public class SettlementImportBatch extends TenantEntity {
|
||||
@Schema(description = "动态费用列名JSON")
|
||||
private String feeItemNamesJson;
|
||||
|
||||
@Schema(description = "导入明细行JSON")
|
||||
private String rowsJson;
|
||||
|
||||
@Schema(description = "备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
+3
@@ -6,6 +6,8 @@
|
||||
*/
|
||||
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 lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -41,6 +43,7 @@ public class TransportReconciliationExternal extends TenantEntity {
|
||||
private BigDecimal freightAmount;
|
||||
private String feeItemsJson;
|
||||
private BigDecimal settlementAmount;
|
||||
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
||||
private Boolean suspectedDuplicate;
|
||||
private String matchStatus;
|
||||
private Long matchedInternalId;
|
||||
|
||||
+3
@@ -58,6 +58,8 @@ public class FormalSettlementVO extends FormalSettlement implements KingdeeUnloc
|
||||
private String kingdeeUnlockOperator;
|
||||
@TableField(exist = false) @Schema(description = "解锁动作名称:金蝶删单/金蝶锁单")
|
||||
private String kingdeeUnlockOperationName;
|
||||
@TableField(exist = false) @Schema(description = "调整状态名称:adjusted-已调整")
|
||||
private String adjustStatusName;
|
||||
@TableField(exist = false) private String preSettlementNos;
|
||||
@TableField(exist = false) private String preSettlementNo;
|
||||
@TableField(exist = false) private List<FormalSettlementSource> sources;
|
||||
@@ -70,6 +72,7 @@ public class FormalSettlementVO extends FormalSettlement implements KingdeeUnloc
|
||||
@TableField(exist = false) @Schema(description = "开票申请经金蝶回写的发票结果(含文件地址,只读展示)")
|
||||
private List<InvoiceApplicationInvoice> issuedInvoices;
|
||||
@TableField(exist = false) private List<PaymentApplicationVO> paymentApplications;
|
||||
@TableField(exist = false) private List<SettlementAdvancePaymentVO> advancePayments;
|
||||
@TableField(exist = false) private List<SettlementAdjustmentVO> adjustments;
|
||||
@TableField(exist = false) private List<FormalSettlementChangeRecord> changeRecords;
|
||||
}
|
||||
|
||||
+2
@@ -27,4 +27,6 @@ public class PaymentApplicationReferenceAmountVO implements Serializable {
|
||||
@Schema(description = "结算金额") private BigDecimal settlementAmount;
|
||||
@Schema(description = "累计申请付款金额") private BigDecimal cumulativeAppliedAmount;
|
||||
@Schema(description = "可付款金额") private BigDecimal payableAmount;
|
||||
/** 该结算单当前为第几次付款(含本次,已作废不计) */
|
||||
@Schema(description = "付款次序") private Integer paymentSequence;
|
||||
}
|
||||
|
||||
+6
@@ -39,6 +39,7 @@ import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 收款流水视图实体类
|
||||
@@ -91,4 +92,9 @@ public class ReceiptFlowVO extends KingdeeReceiptFlow {
|
||||
private BigDecimal receiptAmountEnd;
|
||||
@TableField(exist = false)
|
||||
private List<ReceiptFlowRecord> claimRecords = new ArrayList<>();
|
||||
/**
|
||||
* 本流水历史关联且仍有剩余可认领金额的应收正式结算单(继续认领时预填)
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private List<Map<String, Object>> relatedSettlements = new ArrayList<>();
|
||||
}
|
||||
|
||||
+4
@@ -73,6 +73,10 @@ public class ReceivablePayableDetailVO extends ReceivablePayableDetail {
|
||||
@Schema(description = "状态名称")
|
||||
private String settlementStatusName;
|
||||
|
||||
@TableField(exist = false)
|
||||
@Schema(description = "计费方式")
|
||||
private String billingType;
|
||||
|
||||
@TableField(exist = false)
|
||||
@Schema(description = "费用项目")
|
||||
private Map<String, Object> feeItems;
|
||||
|
||||
-1
@@ -17,7 +17,6 @@ public class SettlementAdjustmentVO extends SettlementAdjustment {
|
||||
private String approvalStatusName;
|
||||
private String settlementTypeName;
|
||||
private String createUserName;
|
||||
private String kingdeeBillNo;
|
||||
private List<SettlementAdjustmentDetail> details;
|
||||
private List<FormalSettlementDetail> formalDetails;
|
||||
}
|
||||
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
/**
|
||||
* 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>
|
||||
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
|
||||
* not liable for any claims arising from secondary or illegal development.
|
||||
* <p>
|
||||
* Author: Chill Zhuang (bladejava@qq.com)
|
||||
*/
|
||||
package org.springblade.transport.pojo.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 结算单统一预付付款记录(进度预付 / 项目预付核销,供付款记录合并展示)
|
||||
*
|
||||
* @author Chill
|
||||
*/
|
||||
@Data
|
||||
@Schema(description = "结算单统一预付付款记录")
|
||||
public class SettlementAdvancePaymentVO implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Schema(description = "记录类型:progress_advance 进度预付 / project_advance 项目预付核销")
|
||||
private String recordType;
|
||||
|
||||
@Schema(description = "付款单号")
|
||||
private String paymentNo;
|
||||
|
||||
@Schema(description = "申请金额(进度预付为申请预付金额,项目预付为本次核销金额)")
|
||||
private BigDecimal appliedAmount;
|
||||
|
||||
@Schema(description = "已付款金额(底层付款申请实付)")
|
||||
private BigDecimal paidAmount;
|
||||
|
||||
@Schema(description = "单据状态")
|
||||
private String billStatus;
|
||||
|
||||
@Schema(description = "金蝶单据号")
|
||||
private String kingdeeBillNo;
|
||||
|
||||
@Schema(description = "创建人姓名")
|
||||
private String createUserName;
|
||||
|
||||
@Schema(description = "创建时间(统一取底层付款申请创建时间)")
|
||||
private Date createTime;
|
||||
|
||||
}
|
||||
+4
@@ -32,6 +32,7 @@ import org.springblade.transport.pojo.entity.SettlementImportBatch;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 导入结算单批次视图
|
||||
@@ -66,4 +67,7 @@ public class SettlementImportBatchVO extends SettlementImportBatch {
|
||||
|
||||
@Schema(description = "动态费用列名")
|
||||
private List<String> feeItemNames;
|
||||
|
||||
@Schema(description = "导入明细行")
|
||||
private List<Map<String, Object>> rows;
|
||||
}
|
||||
|
||||
+34
-1
@@ -17,7 +17,40 @@ public interface ISettlementAdjustmentService {
|
||||
Long saveDraft(SettlementAdjustmentSaveRequest request);
|
||||
void removeDraft(Long id);
|
||||
void submit(SettlementAdjustmentStatusRequest request);
|
||||
void approve(SettlementAdjustmentStatusRequest request);
|
||||
/**
|
||||
* 审批通过:未推送场景回写原单并发布金蝶自动推送事件;已推送场景原单零改动仅追加变更记录。
|
||||
*
|
||||
* @param request 审批请求
|
||||
* @return 已推送场景的手工冲销提示文案,未推送场景返回 null
|
||||
*/
|
||||
String approve(SettlementAdjustmentStatusRequest request);
|
||||
void returnBill(SettlementAdjustmentStatusRequest request);
|
||||
String repush(Long adjustmentId);
|
||||
|
||||
/**
|
||||
* 选单后金蝶冲销预检(软提示,不阻断建单):未推送 / 已推送已冲销 / 已推送未冲销;
|
||||
* 金蝶查询异常降级返回「未校验」,由审批分流与重推闸门兜底
|
||||
*
|
||||
* @param formalSettlementId 选定正式结算单id
|
||||
* @return syncStatus / writtenOff / message
|
||||
*/
|
||||
Map<String, Object> kingdeeWriteOffPrecheck(Long formalSettlementId);
|
||||
|
||||
/**
|
||||
* 推送金蝶(未推送/生成失败场景):推送关联正式结算单,成功后由正式结算单回填调整单金蝶单号与同步状态
|
||||
*
|
||||
* @param adjustmentId 结算调整单id
|
||||
* @return 金蝶单据编号
|
||||
*/
|
||||
String syncKingdee(Long adjustmentId);
|
||||
|
||||
/**
|
||||
* 重推克隆+应用(独立事务,由 repush 经自代理调用):克隆原单为新正式结算单并应用调整,
|
||||
* 供推送失败重试时幂等复用
|
||||
*
|
||||
* @param originalSettlementId 原正式结算单id
|
||||
* @param adjustmentId 结算调整单id
|
||||
* @return 新正式结算单id
|
||||
*/
|
||||
Long cloneAndApplyForRepush(Long originalSettlementId, Long adjustmentId);
|
||||
}
|
||||
|
||||
+4
@@ -132,6 +132,10 @@ public class User extends TenantEntity implements IPhone {
|
||||
* 是否是oa的账号
|
||||
*/
|
||||
private Integer isOa;
|
||||
/**
|
||||
* OA登录名
|
||||
*/
|
||||
private String oaLoginId;
|
||||
/**
|
||||
* OA上次更新时间(OA 的 modified 字段),仅同步比对使用
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user