ids;
+
+ @Schema(description = "处理方式")
+ private String disposalMethod;
+
+ @Schema(description = "处置说明")
+ private String disposalRemark;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/RiskDisposalDisposeRequest.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/RiskDisposalDisposeRequest.java
new file mode 100644
index 0000000..c3e7bfd
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/RiskDisposalDisposeRequest.java
@@ -0,0 +1,29 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ */
+package org.springblade.transport.pojo.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+@Schema(description = "风险处置请求")
+public class RiskDisposalDisposeRequest implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "主键")
+ private Long id;
+
+ @Schema(description = "处理方式")
+ private String disposalMethod;
+
+ @Schema(description = "处置说明")
+ private String disposalRemark;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ExceptionDisposal.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ExceptionDisposal.java
new file mode 100644
index 0000000..96f5647
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ExceptionDisposal.java
@@ -0,0 +1,105 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+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.time.LocalDateTime;
+
+/**
+ * 异常处置实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("blade_exception_disposal")
+@Schema(description = "异常处置")
+public class ExceptionDisposal extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "运单ID")
+ private Long waybillId;
+
+ @Schema(description = "运单号")
+ private String waybillNo;
+
+ @Schema(description = "配载单号/总单号")
+ private String loadingOrMasterNo;
+
+ @Schema(description = "项目ID")
+ private Long projectId;
+
+ @Schema(description = "项目")
+ private String projectName;
+
+ @Schema(description = "车牌号")
+ private String vehicleNo;
+
+ @Schema(description = "上报人ID")
+ private Long reporterId;
+
+ @Schema(description = "上报人")
+ private String reporterName;
+
+ @Schema(description = "上报时间")
+ private LocalDateTime reportTime;
+
+ @Schema(description = "异常类型")
+ private String exceptionType;
+
+ @Schema(description = "异常原因")
+ private String exceptionReason;
+
+ @Schema(description = "上报说明")
+ private String reportDescription;
+
+ @Schema(description = "承运商ID")
+ private Long carrierId;
+
+ @Schema(description = "承运商")
+ private String carrierName;
+
+ @Schema(description = "现场照片")
+ private String scenePhotos;
+
+ @Schema(description = "最新跟进说明")
+ private String latestFollowContent;
+
+ @Schema(description = "处置状态:pending/processing/completed")
+ private String disposalStatus;
+
+ @Schema(description = "所属组织ID")
+ private Long deptId;
+
+ @Schema(description = "所属组织")
+ private String deptName;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ExceptionDisposalFollowRecord.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ExceptionDisposalFollowRecord.java
new file mode 100644
index 0000000..a992178
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ExceptionDisposalFollowRecord.java
@@ -0,0 +1,63 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+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.time.LocalDateTime;
+
+/**
+ * 异常处置跟进记录实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("blade_exception_disposal_follow_record")
+@Schema(description = "异常处置跟进记录")
+public class ExceptionDisposalFollowRecord extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "异常处置ID")
+ private Long disposalId;
+
+ @Schema(description = "跟进说明")
+ private String followContent;
+
+ @Schema(description = "跟进人")
+ private Long followUser;
+
+ @Schema(description = "跟进人姓名")
+ private String followUserName;
+
+ @Schema(description = "跟进时间")
+ private LocalDateTime followTime;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableCargoFee.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableCargoFee.java
new file mode 100644
index 0000000..151fd87
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableCargoFee.java
@@ -0,0 +1,108 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+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;
+
+/**
+ * 应收应付货物费用明细实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("blade_receivable_payable_cargo_fee")
+@Schema(description = "应收应付货物费用明细")
+public class ReceivablePayableCargoFee extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "应收应付明细ID")
+ private Long detailId;
+
+ @Schema(description = "运单ID")
+ private Long waybillId;
+
+ @Schema(description = "行号")
+ private String lineNo;
+
+ @Schema(description = "货物名称")
+ private String cargoName;
+
+ @Schema(description = "货物类型")
+ private String cargoType;
+
+ @Schema(description = "规格")
+ private String specification;
+
+ @Schema(description = "型号")
+ private String model;
+
+ @Schema(description = "运费计费要素")
+ private String billingFactor;
+
+ @Schema(description = "运费计费类型")
+ private String billingType;
+
+ @Schema(description = "运输量")
+ private BigDecimal transportQuantity;
+
+ @Schema(description = "数量单位")
+ private String quantityUnit;
+
+ @Schema(description = "运费计算单位")
+ private String priceUnit;
+
+ @Schema(description = "运输单价")
+ private BigDecimal unitPrice;
+
+ @Schema(description = "里程")
+ private BigDecimal mileage;
+
+ @Schema(description = "运输费")
+ private BigDecimal freightAmount;
+
+ @Schema(description = "费用项JSON")
+ private String feeItemsJson;
+
+ @Schema(description = "原总金额")
+ private BigDecimal originalAmount;
+
+ @Schema(description = "调整金额")
+ private BigDecimal adjustAmount;
+
+ @Schema(description = "调整后总金额")
+ private BigDecimal afterAmount;
+
+ @Schema(description = "备注")
+ private String remark;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableChangeRecord.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableChangeRecord.java
new file mode 100644
index 0000000..6e79943
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableChangeRecord.java
@@ -0,0 +1,72 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+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.time.LocalDateTime;
+
+/**
+ * 应收应付费用变更记录实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("blade_receivable_payable_change_record")
+@Schema(description = "应收应付费用变更记录")
+public class ReceivablePayableChangeRecord extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "应收应付明细ID")
+ private Long detailId;
+
+ @Schema(description = "行号")
+ private String lineNo;
+
+ @Schema(description = "货物名称")
+ private String cargoName;
+
+ @Schema(description = "变更内容")
+ private String changeContent;
+
+ @Schema(description = "调整人")
+ private Long adjustUser;
+
+ @Schema(description = "调整人姓名")
+ private String adjustUserName;
+
+ @Schema(description = "调整原因")
+ private String adjustReason;
+
+ @Schema(description = "调整时间")
+ private LocalDateTime adjustTime;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableDetail.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableDetail.java
new file mode 100644
index 0000000..d793650
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/ReceivablePayableDetail.java
@@ -0,0 +1,145 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+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;
+
+/**
+ * 应收应付明细实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("blade_receivable_payable_detail")
+@Schema(description = "应收应付明细")
+public class ReceivablePayableDetail extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "单据号")
+ private String documentNo;
+
+ @Schema(description = "结算明细类型:receivable/payable")
+ private String settlementType;
+
+ @Schema(description = "项目ID")
+ private Long projectId;
+
+ @Schema(description = "项目名称")
+ private String projectName;
+
+ @Schema(description = "所属组织ID")
+ private Long deptId;
+
+ @Schema(description = "所属组织")
+ private String deptName;
+
+ @Schema(description = "费用日期")
+ private LocalDate feeDate;
+
+ @Schema(description = "客商名称")
+ private String customerName;
+
+ @Schema(description = "合同ID")
+ private Long contractId;
+
+ @Schema(description = "合同编号")
+ private String contractNo;
+
+ @Schema(description = "合同名称")
+ private String contractName;
+
+ @Schema(description = "来源")
+ private String sourceType;
+
+ @Schema(description = "预结算单号")
+ private String preSettlementNo;
+
+ @Schema(description = "正式结算单号")
+ private String formalSettlementNo;
+
+ @Schema(description = "运单ID")
+ private Long waybillId;
+
+ @Schema(description = "运单号")
+ private String waybillNo;
+
+ @Schema(description = "车号")
+ private String vehicleNo;
+
+ @Schema(description = "运输类型")
+ private String transportType;
+
+ @Schema(description = "货物名称")
+ private String cargoName;
+
+ @Schema(description = "货物类型")
+ private String cargoType;
+
+ @Schema(description = "运输总量")
+ private BigDecimal transportQuantity;
+
+ @Schema(description = "数量单位")
+ private String quantityUnit;
+
+ @Schema(description = "里程")
+ private BigDecimal mileage;
+
+ @Schema(description = "批次号")
+ private String batchNo;
+
+ @Schema(description = "运输单价")
+ private BigDecimal unitPrice;
+
+ @Schema(description = "币种")
+ private String currency;
+
+ @Schema(description = "运输费")
+ private BigDecimal freightAmount;
+
+ @Schema(description = "其它费用")
+ private BigDecimal otherFeeAmount;
+
+ @Schema(description = "费用合计")
+ private BigDecimal totalAmount;
+
+ @Schema(description = "状态:pending/pre_settled/formal_settled/closed")
+ private String settlementStatus;
+
+ @Schema(description = "费用项JSON")
+ private String feeItemsJson;
+
+ @Schema(description = "备注")
+ private String remark;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/RiskDisposal.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/RiskDisposal.java
new file mode 100644
index 0000000..8242440
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/RiskDisposal.java
@@ -0,0 +1,76 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ */
+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.time.LocalDateTime;
+
+/**
+ * 风险处置实体类
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("blade_risk_disposal")
+@Schema(description = "风险处置")
+public class RiskDisposal extends TenantEntity {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "风险编号")
+ private String riskNo;
+
+ @Schema(description = "规则名称")
+ private String ruleName;
+
+ @Schema(description = "运单ID")
+ private Long waybillId;
+
+ @Schema(description = "运单号")
+ private String waybillNo;
+
+ @Schema(description = "项目名称")
+ private String projectName;
+
+ @Schema(description = "车牌号")
+ private String vehicleNo;
+
+ @Schema(description = "风险等级")
+ private String riskLevel;
+
+ @Schema(description = "运输类型")
+ private String transportType;
+
+ @Schema(description = "风险描述")
+ private String riskDescription;
+
+ @Schema(description = "处置状态")
+ private String disposalStatus;
+
+ @Schema(description = "处理方式")
+ private String disposalMethod;
+
+ @Schema(description = "处置说明")
+ private String disposalRemark;
+
+ @Schema(description = "所属组织ID")
+ private Long deptId;
+
+ @Schema(description = "所属组织")
+ private String deptName;
+
+ @Schema(description = "触发时间")
+ private LocalDateTime triggerTime;
+
+ @Schema(description = "处理时间")
+ private LocalDateTime disposeTime;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ExceptionDisposalFollowRecordVO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ExceptionDisposalFollowRecordVO.java
new file mode 100644
index 0000000..4117a10
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ExceptionDisposalFollowRecordVO.java
@@ -0,0 +1,45 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.transport.pojo.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.transport.pojo.entity.ExceptionDisposalFollowRecord;
+
+import java.io.Serial;
+
+/**
+ * 异常处置跟进记录视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Schema(description = "异常处置跟进记录")
+public class ExceptionDisposalFollowRecordVO extends ExceptionDisposalFollowRecord {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ExceptionDisposalVO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ExceptionDisposalVO.java
new file mode 100644
index 0000000..2cb7fb8
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ExceptionDisposalVO.java
@@ -0,0 +1,88 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * 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.ExceptionDisposal;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serial;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 异常处置视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Schema(description = "异常处置")
+public class ExceptionDisposalVO extends ExceptionDisposal {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @TableField(exist = false)
+ @Schema(description = "上报开始时间")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime reportStartTime;
+
+ @TableField(exist = false)
+ @Schema(description = "上报结束时间")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ private LocalDateTime reportEndTime;
+
+ @TableField(exist = false)
+ @Schema(description = "创建人姓名")
+ private String createUserName;
+
+ @TableField(exist = false)
+ @Schema(description = "更新人姓名")
+ private String updateUserName;
+
+ @TableField(exist = false)
+ @Schema(description = "状态名称")
+ private String disposalStatusName;
+
+ @TableField(exist = false)
+ @Schema(description = "异常类型名称")
+ private String exceptionTypeName;
+
+ @TableField(exist = false)
+ @Schema(description = "现场照片列表")
+ private List scenePhotoList;
+
+ @TableField(exist = false)
+ @Schema(description = "历史跟进")
+ private List followRecords;
+
+ @TableField(exist = false)
+ @Schema(description = "扩展信息")
+ private Map extra;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ReceivablePayableCargoFeeVO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ReceivablePayableCargoFeeVO.java
new file mode 100644
index 0000000..ec42113
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ReceivablePayableCargoFeeVO.java
@@ -0,0 +1,71 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * 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.ReceivablePayableCargoFee;
+
+import java.io.Serial;
+import java.util.Map;
+
+/**
+ * 应收应付货物费用明细视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Schema(description = "应收应付货物费用明细")
+public class ReceivablePayableCargoFeeVO extends ReceivablePayableCargoFee {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @TableField(exist = false)
+ @Schema(description = "运输量展示")
+ private String transportQuantityText;
+
+ @TableField(exist = false)
+ @Schema(description = "原总金额展示")
+ private String originalAmountText;
+
+ @TableField(exist = false)
+ @Schema(description = "调整金额展示")
+ private String adjustAmountText;
+
+ @TableField(exist = false)
+ @Schema(description = "调整后总金额展示")
+ private String afterAmountText;
+
+ @TableField(exist = false)
+ @Schema(description = "更新人姓名")
+ private String updateUserName;
+
+ @TableField(exist = false)
+ @Schema(description = "费用项目")
+ private Map feeItems;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ReceivablePayableChangeRecordVO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ReceivablePayableChangeRecordVO.java
new file mode 100644
index 0000000..ac712f2
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ReceivablePayableChangeRecordVO.java
@@ -0,0 +1,45 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.transport.pojo.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.transport.pojo.entity.ReceivablePayableChangeRecord;
+
+import java.io.Serial;
+
+/**
+ * 应收应付费用变更记录视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Schema(description = "应收应付费用变更记录")
+public class ReceivablePayableChangeRecordVO extends ReceivablePayableChangeRecord {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ReceivablePayableDetailVO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ReceivablePayableDetailVO.java
new file mode 100644
index 0000000..c49f3b7
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ReceivablePayableDetailVO.java
@@ -0,0 +1,80 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * 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.ReceivablePayableDetail;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serial;
+import java.time.LocalDate;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 应收应付明细视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Schema(description = "应收应付明细")
+public class ReceivablePayableDetailVO extends ReceivablePayableDetail {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @TableField(exist = false)
+ @Schema(description = "生成开始日期")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate generateStartDate;
+
+ @TableField(exist = false)
+ @Schema(description = "生成结束日期")
+ @DateTimeFormat(pattern = "yyyy-MM-dd")
+ private LocalDate generateEndDate;
+
+ @TableField(exist = false)
+ @Schema(description = "创建人姓名")
+ private String createUserName;
+
+ @TableField(exist = false)
+ @Schema(description = "更新人姓名")
+ private String updateUserName;
+
+ @TableField(exist = false)
+ @Schema(description = "状态名称")
+ private String settlementStatusName;
+
+ @TableField(exist = false)
+ @Schema(description = "费用项目")
+ private Map feeItems;
+
+ @TableField(exist = false)
+ @Schema(description = "货物费用明细")
+ private List cargoFees;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ReceivablePayableFeeDetailVO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ReceivablePayableFeeDetailVO.java
new file mode 100644
index 0000000..a988068
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/ReceivablePayableFeeDetailVO.java
@@ -0,0 +1,54 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * 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.util.ArrayList;
+import java.util.List;
+
+/**
+ * 应收应付费用明细弹窗视图
+ *
+ * @author Chill
+ */
+@Data
+@Schema(description = "应收应付费用明细弹窗")
+public class ReceivablePayableFeeDetailVO implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "动态费用项名称")
+ private List feeItemNames = new ArrayList<>();
+
+ @Schema(description = "费用明细")
+ private List records = new ArrayList<>();
+
+ @Schema(description = "总数")
+ private Long total = 0L;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/RiskDisposalBatchResultVO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/RiskDisposalBatchResultVO.java
new file mode 100644
index 0000000..eb9c2cb
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/RiskDisposalBatchResultVO.java
@@ -0,0 +1,26 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ */
+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;
+
+@Data
+@Schema(description = "风险处置批量结果")
+public class RiskDisposalBatchResultVO implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @Schema(description = "成功数")
+ private Integer successCount = 0;
+
+ @Schema(description = "失败数")
+ private Integer skippedCount = 0;
+
+}
diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/RiskDisposalVO.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/RiskDisposalVO.java
new file mode 100644
index 0000000..8f39aca
--- /dev/null
+++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/vo/RiskDisposalVO.java
@@ -0,0 +1,42 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ */
+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.RiskDisposal;
+
+import java.io.Serial;
+
+/**
+ * 风险处置视图实体类
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Schema(description = "风险处置")
+public class RiskDisposalVO extends RiskDisposal {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ @TableField(exist = false)
+ @Schema(description = "创建人姓名")
+ private String createUserName;
+
+ @TableField(exist = false)
+ @Schema(description = "更新人姓名")
+ private String updateUserName;
+
+ @TableField(exist = false)
+ @Schema(description = "风险等级名称")
+ private String riskLevelName;
+
+ @TableField(exist = false)
+ @Schema(description = "处置状态名称")
+ private String disposalStatusName;
+
+}
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ExceptionDisposalController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ExceptionDisposalController.java
new file mode 100644
index 0000000..f039e69
--- /dev/null
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ExceptionDisposalController.java
@@ -0,0 +1,97 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.transport.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tool.api.R;
+import org.springblade.transport.pojo.dto.ExceptionDisposalFollowRequest;
+import org.springblade.transport.pojo.vo.ExceptionDisposalVO;
+import org.springblade.transport.service.IExceptionDisposalService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 异常处置控制器
+ *
+ * @author Chill
+ */
+@RestController
+@AllArgsConstructor
+@PreAuth(menu = "exception_disposal")
+@RequestMapping("/exception-disposal")
+@Tag(name = "异常处置", description = "异常处置")
+public class ExceptionDisposalController extends BladeController {
+
+ private final IExceptionDisposalService exceptionDisposalService;
+
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "异常处置分页")
+ public R> list(ExceptionDisposalVO exceptionDisposal, Query query) {
+ return R.data(exceptionDisposalService.selectPage(Condition.getPage(query), exceptionDisposal));
+ }
+
+ @GetMapping("/detail")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "异常处置详情")
+ public R detail(@RequestParam Long id) {
+ return R.data(exceptionDisposalService.detail(id));
+ }
+
+ @PostMapping("/follow")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "异常跟进")
+ public R follow(@RequestBody ExceptionDisposalFollowRequest request) {
+ exceptionDisposalService.follow(request);
+ return R.success("跟进成功");
+ }
+
+ @PostMapping("/complete")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "完成异常")
+ public R complete(@RequestBody ExceptionDisposalFollowRequest request) {
+ exceptionDisposalService.complete(request.getId());
+ return R.success("完成成功");
+ }
+
+ @PostMapping("/batch-complete")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "批量完成异常")
+ public R batchComplete(@RequestParam String ids) {
+ exceptionDisposalService.batchComplete(ids);
+ return R.success("批量完成成功");
+ }
+
+}
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ReceivablePayableDetailController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ReceivablePayableDetailController.java
new file mode 100644
index 0000000..24aea17
--- /dev/null
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ReceivablePayableDetailController.java
@@ -0,0 +1,147 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.transport.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.transport.pojo.dto.ReceivablePayableGenerateRequest;
+import org.springblade.transport.pojo.dto.ReceivablePayableTransferRequest;
+import org.springblade.transport.pojo.dto.ReceivablePayableUpdateFeeRequest;
+import org.springblade.transport.pojo.vo.ReceivablePayableChangeRecordVO;
+import org.springblade.transport.pojo.vo.ReceivablePayableDetailVO;
+import org.springblade.transport.pojo.vo.ReceivablePayableFeeDetailVO;
+import org.springblade.transport.service.IReceivablePayableDetailService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * 应收应付明细控制器
+ *
+ * @author Chill
+ */
+@RestController
+@AllArgsConstructor
+@PreAuth(menu = "receivable_payable_detail")
+@RequestMapping("/receivable-payable-detail")
+@Tag(name = "应收应付明细", description = "应收应付明细")
+public class ReceivablePayableDetailController extends BladeController {
+
+ private final IReceivablePayableDetailService detailService;
+
+ @GetMapping("/list")
+ @ApiOperationSupport(order = 1)
+ @Operation(summary = "应收应付明细分页")
+ public R> list(ReceivablePayableDetailVO query, Query pageQuery) {
+ return R.data(detailService.selectPage(Condition.getPage(pageQuery), query));
+ }
+
+ @GetMapping("/fee-detail")
+ @ApiOperationSupport(order = 2)
+ @Operation(summary = "费用明细")
+ public R feeDetail(@RequestParam Long id) {
+ return R.data(detailService.feeDetail(id));
+ }
+
+ @GetMapping("/change-records")
+ @ApiOperationSupport(order = 3)
+ @Operation(summary = "变更记录")
+ public R> changeRecords(Query query, @RequestParam Long detailId) {
+ return R.data(detailService.changeRecords(Condition.getPage(query), detailId));
+ }
+
+ @PostMapping("/update-fee")
+ @ApiOperationSupport(order = 4)
+ @Operation(summary = "更新费用")
+ public R updateFee(@RequestBody ReceivablePayableUpdateFeeRequest request) {
+ detailService.updateFee(request);
+ return R.success("更新成功");
+ }
+
+ @GetMapping("/transfer-candidates")
+ @ApiOperationSupport(order = 5)
+ @Operation(summary = "转结算候选明细")
+ public R>> transferCandidates(Query query,
+ @RequestParam(required = false) String contractName,
+ @RequestParam(required = false) String batchNo,
+ @RequestParam(required = false) String generateStartDate,
+ @RequestParam(required = false) String generateEndDate,
+ @RequestParam(required = false) String settlementBillType) {
+ return R.data(detailService.transferCandidates(Condition.getPage(query), contractName, batchNo,
+ generateStartDate, generateEndDate, settlementBillType));
+ }
+
+ @PostMapping("/transfer-settlement")
+ @ApiOperationSupport(order = 6)
+ @Operation(summary = "批量转结算")
+ public R transferSettlement(@RequestBody ReceivablePayableTransferRequest request) {
+ detailService.transferSettlement(request);
+ return R.success("转结算成功");
+ }
+
+ @GetMapping("/generate-waybills")
+ @ApiOperationSupport(order = 7)
+ @Operation(summary = "生成费用可选运单")
+ public R>> generateWaybills(Query query, ReceivablePayableGenerateRequest request) {
+ return R.data(detailService.generateWaybills(Condition.getPage(query), request));
+ }
+
+ @GetMapping("/generate-preview")
+ @ApiOperationSupport(order = 8)
+ @Operation(summary = "生成费用预览")
+ public R generatePreview(Query query, ReceivablePayableGenerateRequest request) {
+ return R.data(detailService.generatePreview(Condition.getPage(query), request));
+ }
+
+ @PostMapping("/generate-fee")
+ @ApiOperationSupport(order = 9)
+ @Operation(summary = "确认生成费用")
+ public R generateFee(@RequestBody ReceivablePayableGenerateRequest request) {
+ detailService.generateFee(request);
+ return R.success("生成费用成功");
+ }
+
+ @GetMapping("/export-receivable-payable-detail")
+ @ApiOperationSupport(order = 10)
+ @Operation(summary = "导出应收应付明细")
+ public void exportReceivablePayableDetail(ReceivablePayableDetailVO query, HttpServletResponse response) {
+ IPage page = detailService.selectPage(Condition.getPage(new Query()), query);
+ ExcelUtil.export(response, "应收应付明细" + DateUtil.time(), "应收应付明细", page.getRecords(), ReceivablePayableDetailVO.class);
+ }
+}
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/RiskDisposalController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/RiskDisposalController.java
new file mode 100644
index 0000000..675fb99
--- /dev/null
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/RiskDisposalController.java
@@ -0,0 +1,57 @@
+package org.springblade.transport.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tool.api.R;
+import org.springblade.transport.pojo.dto.RiskDisposalBatchDisposeRequest;
+import org.springblade.transport.pojo.dto.RiskDisposalDisposeRequest;
+import org.springblade.transport.pojo.vo.RiskDisposalBatchResultVO;
+import org.springblade.transport.pojo.vo.RiskDisposalVO;
+import org.springblade.transport.service.IRiskDisposalService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@AllArgsConstructor
+@PreAuth(menu = "risk_disposal")
+@RequestMapping("/risk-disposal")
+@Tag(name = "风险处置", description = "风险处置")
+public class RiskDisposalController extends BladeController {
+
+ private final IRiskDisposalService riskDisposalService;
+
+ @GetMapping("/list")
+ @Operation(summary = "风险处置分页")
+ public R> list(RiskDisposalVO query, Query pageQuery) {
+ return R.data(riskDisposalService.selectPage(Condition.getPage(pageQuery), query));
+ }
+
+ @GetMapping("/detail")
+ @Operation(summary = "风险处置详情")
+ public R detail(@RequestParam Long id) {
+ return R.data(riskDisposalService.detail(id));
+ }
+
+ @PostMapping("/dispose")
+ @Operation(summary = "风险处置")
+ public R dispose(@RequestBody RiskDisposalDisposeRequest request) {
+ riskDisposalService.dispose(request);
+ return R.success("处理成功");
+ }
+
+ @PostMapping("/batch-dispose")
+ @Operation(summary = "批量风险处置")
+ public R batchDispose(@RequestBody RiskDisposalBatchDisposeRequest request) {
+ return R.data(riskDisposalService.batchDispose(request));
+ }
+}
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/WaybillController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/WaybillController.java
index bde3dd4..53f83ad 100644
--- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/WaybillController.java
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/WaybillController.java
@@ -46,6 +46,7 @@ import org.springblade.transport.pojo.entity.ProjectApply;
import org.springblade.transport.pojo.entity.TransportPlan;
import org.springblade.transport.pojo.entity.Waybill;
import org.springblade.transport.pojo.vo.BusinessRemoveResultVO;
+import org.springblade.transport.pojo.vo.LoadingManageVO;
import org.springblade.transport.pojo.vo.WaybillVO;
import org.springblade.transport.service.IContractManageService;
import org.springblade.transport.service.ICustomerArchiveService;
@@ -204,6 +205,13 @@ public class WaybillController extends BladeController {
return R.data(waybillService.batchComplete(ids));
}
+ @PostMapping("/road-loading")
+ @ApiOperationSupport(order = 15)
+ @Operation(summary = "公路配载", description = "传入ids")
+ public R roadLoading(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
+ return R.data(waybillService.roadLoading(ids));
+ }
+
private Map option(Long id, String nameKey, String name, String extraKey, Object extraValue) {
Map option = new LinkedHashMap<>();
option.put("id", id);
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ExceptionDisposalFollowRecordMapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ExceptionDisposalFollowRecordMapper.java
new file mode 100644
index 0000000..4e68433
--- /dev/null
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ExceptionDisposalFollowRecordMapper.java
@@ -0,0 +1,36 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.transport.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springblade.transport.pojo.entity.ExceptionDisposalFollowRecord;
+
+/**
+ * 异常处置跟进记录 Mapper
+ *
+ * @author Chill
+ */
+@Mapper
+public interface ExceptionDisposalFollowRecordMapper extends BaseMapper {
+}
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ExceptionDisposalMapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ExceptionDisposalMapper.java
new file mode 100644
index 0000000..4bfbde1
--- /dev/null
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ExceptionDisposalMapper.java
@@ -0,0 +1,36 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.transport.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springblade.transport.pojo.entity.ExceptionDisposal;
+
+/**
+ * 异常处置 Mapper
+ *
+ * @author Chill
+ */
+@Mapper
+public interface ExceptionDisposalMapper extends BaseMapper {
+}
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceivablePayableCargoFeeMapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceivablePayableCargoFeeMapper.java
new file mode 100644
index 0000000..725007d
--- /dev/null
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceivablePayableCargoFeeMapper.java
@@ -0,0 +1,36 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.transport.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springblade.transport.pojo.entity.ReceivablePayableCargoFee;
+
+/**
+ * 应收应付货物费用 Mapper
+ *
+ * @author Chill
+ */
+@Mapper
+public interface ReceivablePayableCargoFeeMapper extends BaseMapper {
+}
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceivablePayableChangeRecordMapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceivablePayableChangeRecordMapper.java
new file mode 100644
index 0000000..5ea5982
--- /dev/null
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceivablePayableChangeRecordMapper.java
@@ -0,0 +1,36 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.transport.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springblade.transport.pojo.entity.ReceivablePayableChangeRecord;
+
+/**
+ * 应收应付变更记录 Mapper
+ *
+ * @author Chill
+ */
+@Mapper
+public interface ReceivablePayableChangeRecordMapper extends BaseMapper {
+}
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceivablePayableDetailMapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceivablePayableDetailMapper.java
new file mode 100644
index 0000000..3efa524
--- /dev/null
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceivablePayableDetailMapper.java
@@ -0,0 +1,36 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.transport.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springblade.transport.pojo.entity.ReceivablePayableDetail;
+
+/**
+ * 应收应付明细 Mapper
+ *
+ * @author Chill
+ */
+@Mapper
+public interface ReceivablePayableDetailMapper extends BaseMapper {
+}
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/RiskDisposalMapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/RiskDisposalMapper.java
new file mode 100644
index 0000000..eb2c5e3
--- /dev/null
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/RiskDisposalMapper.java
@@ -0,0 +1,9 @@
+package org.springblade.transport.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.springblade.transport.pojo.entity.RiskDisposal;
+
+@Mapper
+public interface RiskDisposalMapper extends BaseMapper {
+}
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IExceptionDisposalService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IExceptionDisposalService.java
new file mode 100644
index 0000000..8c51818
--- /dev/null
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IExceptionDisposalService.java
@@ -0,0 +1,48 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.transport.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.transport.pojo.dto.ExceptionDisposalFollowRequest;
+import org.springblade.transport.pojo.entity.ExceptionDisposal;
+import org.springblade.transport.pojo.vo.ExceptionDisposalVO;
+
+/**
+ * 异常处置服务
+ *
+ * @author Chill
+ */
+public interface IExceptionDisposalService extends BaseService {
+
+ IPage selectPage(IPage page, ExceptionDisposalVO query);
+
+ ExceptionDisposalVO detail(Long id);
+
+ void follow(ExceptionDisposalFollowRequest request);
+
+ void complete(Long id);
+
+ void batchComplete(String ids);
+
+}
diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IReceivablePayableDetailService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IReceivablePayableDetailService.java
new file mode 100644
index 0000000..f085d7c
--- /dev/null
+++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IReceivablePayableDetailService.java
@@ -0,0 +1,62 @@
+/**
+ * BladeX Commercial License Agreement
+ * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
+ *
+ * Use of this software is governed by the Commercial License Agreement
+ * obtained after purchasing a license from BladeX.
+ *
+ * 1. This software is for development use only under a valid license
+ * from BladeX.
+ *
+ * 2. Redistribution of this software's source code to any third party
+ * without a commercial license is strictly prohibited.
+ *
+ * 3. Licensees may copyright their own code but cannot use segments
+ * from this software for such purposes. Copyright of this software
+ * remains with BladeX.
+ *
+ * Using this software signifies agreement to this License, and the software
+ * must not be used for illegal purposes.
+ *
+ * Author: Chill Zhuang (bladejava@qq.com)
+ */
+package org.springblade.transport.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.transport.pojo.dto.ReceivablePayableGenerateRequest;
+import org.springblade.transport.pojo.dto.ReceivablePayableTransferRequest;
+import org.springblade.transport.pojo.dto.ReceivablePayableUpdateFeeRequest;
+import org.springblade.transport.pojo.entity.ReceivablePayableDetail;
+import org.springblade.transport.pojo.vo.ReceivablePayableChangeRecordVO;
+import org.springblade.transport.pojo.vo.ReceivablePayableDetailVO;
+import org.springblade.transport.pojo.vo.ReceivablePayableFeeDetailVO;
+
+import java.util.Map;
+
+/**
+ * 应收应付明细服务
+ *
+ * @author Chill
+ */
+public interface IReceivablePayableDetailService extends BaseService {
+
+ IPage selectPage(IPage page, ReceivablePayableDetailVO query);
+
+ ReceivablePayableFeeDetailVO feeDetail(Long id);
+
+ IPage changeRecords(IPage> page, Long detailId);
+
+ void updateFee(ReceivablePayableUpdateFeeRequest request);
+
+ void transferSettlement(ReceivablePayableTransferRequest request);
+
+ IPage