From c5d5687999a7689e2818963ce9fc15a36cc19b76 Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Mon, 19 Oct 2026 12:06:49 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E5=AE=8C=E5=96=84=E4=BB=98?= =?UTF-8?q?=E6=AC=BE=E7=94=B3=E8=AF=B7=E5=A4=9A=E7=BB=93=E7=AE=97=E8=A1=8C?= =?UTF-8?q?=E3=80=81=E7=BB=93=E7=AE=97=E5=AF=BC=E5=85=A5=E4=B8=8E=E8=AE=A1?= =?UTF-8?q?=E8=B4=B9=E6=96=B9=E5=BC=8F=E5=9B=9E=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- .../dto/PaymentApplicationSaveRequest.java | 2 + ...ymentApplicationSettlementLineRequest.java | 43 ++++++ .../ReceivablePayableFeeCalculateRequest.java | 6 + .../pojo/entity/PreSettlementDetail.java | 5 + .../pojo/vo/ReceivablePayableDetailVO.java | 4 + .../springblade/system/mapper/UserMapper.java | 12 +- .../springblade/system/mapper/UserMapper.xml | 23 +-- .../system/service/impl/DeptServiceImpl.java | 4 +- .../system/service/impl/UserServiceImpl.java | 4 +- .../excel/SettlementImportFeeReader.java | 21 ++- .../impl/FormalSettlementServiceImpl.java | 2 +- .../impl/PaymentApplicationServiceImpl.java | 131 +++++++++++++++- .../impl/PreSettlementServiceImpl.java | 31 +++- .../ReceivablePayableDetailServiceImpl.java | 145 +++++++++++++++--- .../SettlementImportBatchServiceImpl.java | 50 +++++- .../impl/WaybillImportBatchServiceImpl.java | 22 ++- doc/sql/bladex/bladex.mysql.all.create.sql | 4 +- .../blade_user_dept_index_20261019.sql | 6 + doc/sql/transport/transport.sql | 4 +- 19 files changed, 449 insertions(+), 70 deletions(-) create mode 100644 blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/PaymentApplicationSettlementLineRequest.java create mode 100644 doc/sql/transport/blade_user_dept_index_20261019.sql diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/PaymentApplicationSaveRequest.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/PaymentApplicationSaveRequest.java index df7740a0..d608d7cb 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/PaymentApplicationSaveRequest.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/PaymentApplicationSaveRequest.java @@ -61,4 +61,6 @@ public class PaymentApplicationSaveRequest implements Serializable { private String remark; private List invoices; private List paymentRecords; + /** 多张结算单时按行提交的付款金额 */ + private List settlementLines; } diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/PaymentApplicationSettlementLineRequest.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/PaymentApplicationSettlementLineRequest.java new file mode 100644 index 00000000..78f28a11 --- /dev/null +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/PaymentApplicationSettlementLineRequest.java @@ -0,0 +1,43 @@ +/** + * 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. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * 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; +} diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/ReceivablePayableFeeCalculateRequest.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/ReceivablePayableFeeCalculateRequest.java index 640ac839..04f1cd42 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/ReceivablePayableFeeCalculateRequest.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/dto/ReceivablePayableFeeCalculateRequest.java @@ -63,4 +63,10 @@ public class ReceivablePayableFeeCalculateRequest implements Serializable { @Schema(description = "动态费用项目") private Map feeItems; + @Schema(description = "运输单价") + private BigDecimal unitPrice; + + @Schema(description = "本次调整字段:transportQuantity、mileage、unitPrice 或费用项名称") + private String changedField; + } diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/PreSettlementDetail.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/PreSettlementDetail.java index 2539ca07..76c5653c 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/PreSettlementDetail.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/PreSettlementDetail.java @@ -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; 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 index 44857626..5fe0ab5d 100644 --- 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 @@ -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 feeItems; diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.java b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.java index 76a4be9f..a252c387 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.java @@ -45,13 +45,13 @@ public interface UserMapper extends BaseMapper { /** * 自定义分页 * - * @param page - * @param user - * @param deptIdList - * @param tenantId - * @return + * @param page 分页 + * @param user 查询条件 + * @param deptId 部门 ID(含自身及子孙,由 SQL FIND_IN_SET 过滤;为空则不过滤部门) + * @param tenantId 租户 ID + * @return 用户列表 */ - List selectUserPage(IPage page, @Param("user") User user, @Param("deptIdList") List deptIdList, @Param("tenantId") String tenantId); + List selectUserPage(IPage page, @Param("user") User user, @Param("deptId") Long deptId, @Param("tenantId") String tenantId); /** * 获取用户 diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml index 23fff0b7..1cdec59f 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml @@ -61,20 +61,21 @@ and bu.status = #{user.status} - + and bu.id in ( - SELECT - user_id - FROM - blade_user_dept - WHERE - status = 1 and is_deleted = 0 and dept_id IN - - #{item} - + select distinct bud.user_id + from blade_user_dept bud + where bud.status = 1 + and bud.is_deleted = 0 + and bud.dept_id in ( + select bd.id + from blade_dept bd + where bd.is_deleted = 0 + and (bd.id = #{deptId} or find_in_set(#{deptId}, bd.ancestors) > 0) + ) ) - ORDER BY bu.id + ORDER BY bu.create_time DESC, bu.id DESC