Bladeren bron

1.箱轨迹-港口查询问题修改
2.所有审批流程代码整理优化修改
3.进出场计算超期箱使费报错不拦截
4.进出场除ow箱不同步来源单据数据
5.提单修改模块功能箱管接口调试
6.ow拿PickUp费用增加多个箱号查询
7.ow拿生成PickUp逻辑修改
8.销项发票生成结算单汇率不对修改

纪新园 2 weken geleden
bovenliggende
commit
ea6fdeb8c3
27 gewijzigde bestanden met toevoegingen van 2888 en 742 verwijderingen
  1. 11 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/PutBoxItems.java
  2. 34 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/dto/DeadlineContainersDTO.java
  3. 34 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/dto/DeadlineDTO.java
  4. 6 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java
  5. 603 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Deadline.java
  6. 185 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/DeadlineContainers.java
  7. 36 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/vo/DeadlineContainersVO.java
  8. 62 0
      blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/vo/DeadlineVO.java
  9. 23 5
      blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java
  10. 4 1
      blade-service/blade-los/src/main/java/org/springblade/los/box/controller/ArchivesTrajectoryController.java
  11. 592 203
      blade-service/blade-los/src/main/java/org/springblade/los/box/dynamics/service/impl/BoxDynamicsRecordServiceImpl.java
  12. 1 0
      blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxServiceImpl.java
  13. 126 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/DeadlineContainersController.java
  14. 155 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/DeadlineController.java
  15. 42 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/DeadlineContainersMapper.java
  16. 39 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/DeadlineContainersMapper.xml
  17. 42 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/DeadlineMapper.java
  18. 111 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/DeadlineMapper.xml
  19. 41 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IDeadlineContainersService.java
  20. 51 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IDeadlineService.java
  21. 41 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/DeadlineContainersServiceImpl.java
  22. 439 0
      blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/DeadlineServiceImpl.java
  23. 1 21
      blade-service/blade-los/src/main/java/org/springblade/los/check/controller/AuditProecessController.java
  24. 1 26
      blade-service/blade-los/src/main/java/org/springblade/los/check/service/IAuditProecessService.java
  25. 203 484
      blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java
  26. 4 1
      blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/controller/FeeCenterItemsController.java
  27. 1 1
      blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java

+ 11 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/entity/PutBoxItems.java

@@ -362,4 +362,15 @@ public class PutBoxItems implements Serializable {
 	 */
 	@TableField(exist = false)
 	private Boolean whetherStatus;
+
+	/**
+	 * 提单号
+	 */
+	@TableField(exist = false)
+	private String temporaryMblno;
+	/**
+	 * 分单号
+	 */
+	@TableField(exist = false)
+	private String temporaryHblno;
 }

+ 34 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/dto/DeadlineContainersDTO.java

@@ -0,0 +1,34 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.dto;
+
+import org.springblade.los.business.sea.entity.DeadlineContainers;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 截单修改单据配箱信息表数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class DeadlineContainersDTO extends DeadlineContainers {
+	private static final long serialVersionUID = 1L;
+
+}

+ 34 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/dto/DeadlineDTO.java

@@ -0,0 +1,34 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.dto;
+
+import org.springblade.los.business.sea.entity.Deadline;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 截单修改单据信息表数据传输对象实体类
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class DeadlineDTO extends Deadline {
+	private static final long serialVersionUID = 1L;
+
+}

+ 6 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java

@@ -2829,4 +2829,10 @@ public class Bills implements Serializable {
 	@TableField(exist = false)
 	private String statusCr;
 
+	/**
+	 * 费用权限
+	 */
+	@TableField(exist = false)
+	private String permission;
+
 }

+ 603 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Deadline.java

@@ -0,0 +1,603 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springblade.los.utils.LosSpecialHandle;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 截单修改单据信息表实体类
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+@Data
+@TableName("los_deadline")
+@ApiModel(value = "Deadline对象", description = "截单修改单据信息表")
+public class Deadline implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	private Long id;
+	/**
+	 * 分公司
+	 */
+	@ApiModelProperty(value = "分公司")
+	private String branchName;
+	/**
+	 * 分公司 Id
+	 */
+	@ApiModelProperty(value = "分公司 Id")
+	private String branchId;
+	/**
+	 * 创建人 Id
+	 */
+	@ApiModelProperty(value = "创建人 Id")
+	private Long createUser;
+	/**
+	 * 创建人
+	 */
+	@ApiModelProperty(value = "创建人")
+	private String createUserName;
+	/**
+	 * 创建时间
+	 */
+	@ApiModelProperty(value = "创建时间")
+	private Date createTime;
+	/**
+	 * 修改人 Id
+	 */
+	@ApiModelProperty(value = "修改人 Id")
+	private Long updateUser;
+	/**
+	 * 修改人
+	 */
+	@ApiModelProperty(value = "修改人")
+	private String updateUserName;
+	/**
+	 * 修改时间
+	 */
+	@ApiModelProperty(value = "修改时间")
+	private Date updateTime;
+	/**
+	 * 申请人 Id
+	 */
+	@ApiModelProperty(value = "申请人 Id")
+	private Long applicant;
+	/**
+	 * 申请人
+	 */
+	@ApiModelProperty(value = "申请人")
+	private String applicantName;
+	/**
+	 * 申请时间
+	 */
+	@ApiModelProperty(value = "申请时间")
+	@TableField(updateStrategy = FieldStrategy.IGNORED)
+	private Date applicantTime;
+	/**
+	 * 单据编号
+	 */
+	@ApiModelProperty(value = "单据编号")
+	private String billNo;
+	/**
+	 * MB/L NO
+	 */
+	@ApiModelProperty(value = "MB/L NO")
+	private String mblno;
+	/**
+	 * HB/L NO
+	 */
+	@ApiModelProperty(value = "HB/L NO")
+	private String hblno;
+	/**
+	 * 来源单据id
+	 */
+	@ApiModelProperty(value = "来源单据id")
+	private Long srcBillId;
+	/**
+	 * 来源单据编号
+	 */
+	@ApiModelProperty(value = "来源单据编号")
+	private String srcBillNo;
+	/**
+	 * 客户 id
+	 */
+	@ApiModelProperty(value = "客户 id")
+	private Long corpId;
+	/**
+	 * 客户中文名称
+	 */
+	@ApiModelProperty(value = "客户中文名称")
+	private String corpCnName;
+	/**
+	 * 客户英文名称
+	 */
+	@ApiModelProperty(value = "客户英文名称")
+	private String corpEnName;
+	/**
+	 * 简称
+	 */
+	@ApiModelProperty(value = "客户简称")
+	private String shortName;
+	/**
+	 * 审核状态
+	 */
+	@ApiModelProperty(value = "审核状态")
+	private String billStatus;
+	/**
+	 * 船公司 id
+	 */
+	@ApiModelProperty(value = "船公司 id")
+	private Long carrierId;
+	/**
+	 * 船公司中文名称
+	 */
+	@ApiModelProperty(value = "船公司中文名称")
+	private String carrierCnName;
+	/**
+	 * 船公司英文名称
+	 */
+	@ApiModelProperty(value = "船公司英文名称")
+	private String carrierEnName;
+	/**
+	 * 船公司约号
+	 */
+	@ApiModelProperty(value = "船公司约号")
+	private String carrierArgreementNo;
+	/**
+	 * 船名 id
+	 */
+	@ApiModelProperty(value = "船名 id")
+	private Long vesselId;
+	/**
+	 * 中文船名
+	 */
+	@ApiModelProperty(value = "中文船名")
+	private String vesselCnName;
+	/**
+	 * 英文船名
+	 */
+	@ApiModelProperty(value = "英文船名")
+	private String vesselEnName;
+	/**
+	 * 航次
+	 */
+	@ApiModelProperty(value = "航次")
+	private String voyageNo;
+	/**
+	 * 装货港 id
+	 */
+	@ApiModelProperty(value = "装货港 id")
+	private Long polId;
+	/**
+	 * 装货港代码
+	 */
+	@ApiModelProperty(value = "装货港代码")
+	private String polCode;
+	/**
+	 * 装货港英文名称
+	 */
+	@ApiModelProperty(value = "装货港英文名称")
+	private String polCnName;
+	/**
+	 * 装货港英文名称
+	 */
+	@ApiModelProperty(value = "装货港英文名称")
+	private String polEnName;
+	/**
+	 * 装货港英文名称打印
+	 */
+	@ApiModelProperty(value = "装货港英文名称打印")
+	private String polNamePrint;
+	/**
+	 * 卸货港 id
+	 */
+	@ApiModelProperty(value = "卸货港 id")
+	private Long podId;
+	/**
+	 * 卸货港代码
+	 */
+	@ApiModelProperty(value = "卸货港代码")
+	private String podCode;
+	/**
+	 * 卸货港中文名称
+	 */
+	@ApiModelProperty(value = "卸货港中文名称")
+	private String podCnName;
+	/**
+	 * 卸货港英文名称
+	 */
+	@ApiModelProperty(value = "卸货港英文名称")
+	private String podEnName;
+	/**
+	 * 卸货港英文名称打印
+	 */
+	@ApiModelProperty(value = "卸货港英文名称打印")
+	private String podNamePrint;
+	/**
+	 * 交货地 id
+	 */
+	@ApiModelProperty(value = "交货地 id")
+	private Long placeDeliveryId;
+	/**
+	 * 交货地代码
+	 */
+	@ApiModelProperty(value = "交货地代码")
+	private String placeDeliveryCode;
+	/**
+	 * 交货地英文名称
+	 */
+	@ApiModelProperty(value = "交货地英文名称")
+	private String placeDeliveryName;
+	/**
+	 * 交货地英文名称打印
+	 */
+	@ApiModelProperty(value = "交货地英文名称打印")
+	private String placeDeliveryNamePrint;
+	/**
+	 * 签单方式
+	 */
+	@ApiModelProperty(value = "签单方式")
+	private String issueType;
+	/**
+	 * 签单日期
+	 */
+	@ApiModelProperty(value = "签单日期")
+	private Date issueDate;
+	/**
+	 * 签单地点
+	 */
+	@ApiModelProperty(value = "签单地点")
+	private String issueAt;
+	/**
+	 * 签单地点id
+	 */
+	@ApiModelProperty(value = "签单地点id")
+	private Long issueAtId;
+	/**
+	 * 提单上货物描述
+	 */
+	@ApiModelProperty(value = "提单上货物描述")
+	private String commodityDescr;
+	/**
+	 * 唛头
+	 */
+	@ApiModelProperty(value = "唛头")
+	private String marks;
+	/**
+	 * 包装单位 Id
+	 */
+	@ApiModelProperty(value = "包装单位 Id")
+	private Long packingUnitId;
+	/**
+	 * 包装单位
+	 */
+	@ApiModelProperty(value = "包装单位")
+	private String packingUnit;
+	/**
+	 * 件数
+	 */
+	@ApiModelProperty(value = "件数")
+	private BigDecimal quantity;
+	/**
+	 * 毛重 (KGM)
+	 */
+	@ApiModelProperty(value = "毛重 (KGM)")
+	private BigDecimal grossWeight;
+	/**
+	 * 体积 (CBM)
+	 */
+	@ApiModelProperty(value = "体积 (CBM)")
+	private BigDecimal measurement;
+	/**
+	 * 国外代理提单描述
+	 */
+	@ApiModelProperty(value = "国外代理提单描述")
+	private String foreignAgencyDetails;
+	/**
+	 *  发货人提单描述
+	 */
+	@ApiModelProperty(value = " 发货人提单描述")
+	private String shipperDetails;
+	/**
+	 *  收货人提单描述
+	 */
+	@ApiModelProperty(value = " 收货人提单描述")
+	private String consigneeDetails;
+	/**
+	 *  通知人提单描述
+	 */
+	@ApiModelProperty(value = " 通知人提单描述")
+	private String notifyDetails;
+	/**
+	 * 租户
+	 */
+	@ApiModelProperty(value = "租户")
+	private String tenantId;
+	/**
+	 * 是否已删除(0 否 1是)
+	 */
+	@ApiModelProperty(value = "是否已删除(0 否 1是)")
+	private Integer isDeleted;
+	/**
+	 * 版本
+	 */
+	@ApiModelProperty(value = "版本")
+	private String version;
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remarks;
+	/**
+	 * 截单时间
+	 */
+	@ApiModelProperty(value = "截单时间")
+	private Date cyTrailerTime;
+	/**
+	 * 船公司中文名称
+	 */
+	@ApiModelProperty(value = "船公司简称")
+	private String carrierShortName;
+	/**
+	 * 订舱代理 id
+	 */
+	@ApiModelProperty(value = "订舱代理 id")
+	private Long bookingAgentId;
+	/**
+	 * 订舱代理中文名称
+	 */
+	@ApiModelProperty(value = "订舱代理中文名称")
+	private String bookingAgentCnName;
+	/**
+	 * 订舱代理英文名称
+	 */
+	@ApiModelProperty(value = "订舱代理英文名称")
+	private String bookingAgentEnName;
+	/**
+	 * 订舱备注
+	 */
+	@ApiModelProperty(value = "订舱备注")
+	private String bookingRemarks;
+	/**
+	 * 修改后船公司 id
+	 */
+	@ApiModelProperty(value = "修改后船公司 id")
+	private Long deadlineCarrierId;
+	/**
+	 * 修改后船公司中文名称
+	 */
+	@ApiModelProperty(value = "修改后船公司中文名称")
+	private String deadlineCarrierCnName;
+	/**
+	 * 修改后船公司英文名称
+	 */
+	@ApiModelProperty(value = "修改后船公司英文名称")
+	private String deadlineCarrierEnName;
+	/**
+	 * 修改后船公司约号
+	 */
+	@ApiModelProperty(value = "修改后船公司约号")
+	private String deadlineCarrierArgreementNo;
+	/**
+	 * 修改后船名 id
+	 */
+	@ApiModelProperty(value = "修改后船名 id")
+	private Long deadlineVesselId;
+	/**
+	 * 修改后中文船名
+	 */
+	@ApiModelProperty(value = "修改后中文船名")
+	private String deadlineVesselCnName;
+	/**
+	 * 修改后英文船名
+	 */
+	@ApiModelProperty(value = "修改后英文船名")
+	private String deadlineVesselEnName;
+	/**
+	 * 修改后航次
+	 */
+	@ApiModelProperty(value = "修改后航次")
+	private String deadlineVoyageNo;
+	/**
+	 * 修改后装货港 id
+	 */
+	@ApiModelProperty(value = "修改后装货港 id")
+	private Long deadlinePolId;
+	/**
+	 * 修改后装货港代码
+	 */
+	@ApiModelProperty(value = "修改后装货港代码")
+	private String deadlinePolCode;
+	/**
+	 * 修改后装货港英文名称
+	 */
+	@ApiModelProperty(value = "修改后装货港英文名称")
+	private String deadlinePolCnName;
+	/**
+	 * 修改后装货港英文名称
+	 */
+	@ApiModelProperty(value = "修改后装货港英文名称")
+	private String deadlinePolEnName;
+	/**
+	 * 修改后装货港英文名称打印
+	 */
+	@ApiModelProperty(value = "修改后装货港英文名称打印")
+	private String deadlinePolNamePrint;
+	/**
+	 * 修改后卸货港 id
+	 */
+	@ApiModelProperty(value = "修改后卸货港 id")
+	private Long deadlinePodId;
+	/**
+	 * 修改后卸货港代码
+	 */
+	@ApiModelProperty(value = "修改后卸货港代码")
+	private String deadlinePodCode;
+	/**
+	 * 修改后卸货港中文名称
+	 */
+	@ApiModelProperty(value = "修改后卸货港中文名称")
+	private String deadlinePodCnName;
+	/**
+	 * 修改后卸货港英文名称
+	 */
+	@ApiModelProperty(value = "修改后卸货港英文名称")
+	private String deadlinePodEnName;
+	/**
+	 * 修改后卸货港英文名称打印
+	 */
+	@ApiModelProperty(value = "修改后卸货港英文名称打印")
+	private String deadlinePodNamePrint;
+	/**
+	 * 修改后交货地 id
+	 */
+	@ApiModelProperty(value = "修改后交货地 id")
+	private Long deadlinePlaceDeliveryId;
+	/**
+	 * 修改后交货地代码
+	 */
+	@ApiModelProperty(value = "修改后交货地代码")
+	private String deadlinePlaceDeliveryCode;
+	/**
+	 * 修改后交货地英文名称
+	 */
+	@ApiModelProperty(value = "修改后交货地英文名称")
+	private String deadlinePlaceDeliveryName;
+	/**
+	 * 修改后交货地英文名称打印
+	 */
+	@ApiModelProperty(value = "修改后交货地英文名称打印")
+	private String deadlinePlaceDeliveryNamePrint;
+	/**
+	 * 修改后签单方式
+	 */
+	@ApiModelProperty(value = "修改后签单方式")
+	private String deadlineIssueType;
+	/**
+	 * 修改后签单日期
+	 */
+	@ApiModelProperty(value = "修改后签单日期")
+	private Date deadlineIssueDate;
+	/**
+	 * 修改后签单地点
+	 */
+	@ApiModelProperty(value = "修改后签单地点")
+	private String deadlineIssueAt;
+	/**
+	 * 修改后签单地点id
+	 */
+	@ApiModelProperty(value = "修改后签单地点id")
+	private Long deadlineIssueAtId;
+	/**
+	 * 修改后提单上货物描述
+	 */
+	@ApiModelProperty(value = "修改后提单上货物描述")
+	private String deadlineCommodityDescr;
+	/**
+	 * 修改后唛头
+	 */
+	@ApiModelProperty(value = "修改后唛头")
+	private String deadlineMarks;
+	/**
+	 * 修改后包装单位 Id
+	 */
+	@ApiModelProperty(value = "修改后包装单位 Id")
+	private Long deadlinePackingUnitId;
+	/**
+	 * 修改后包装单位
+	 */
+	@ApiModelProperty(value = "修改后包装单位")
+	private String deadlinePackingUnit;
+	/**
+	 * 修改后件数
+	 */
+	@ApiModelProperty(value = "修改后件数")
+	private BigDecimal deadlineQuantity;
+	/**
+	 * 修改后毛重 (KGM)
+	 */
+	@ApiModelProperty(value = "修改后毛重 (KGM)")
+	private BigDecimal deadlineGrossWeight;
+	/**
+	 * 修改后体积 (CBM)
+	 */
+	@ApiModelProperty(value = "修改后体积 (CBM)")
+	private BigDecimal deadlineMeasurement;
+	/**
+	 * 修改后国外代理提单描述
+	 */
+	@ApiModelProperty(value = "修改后国外代理提单描述")
+	private String deadlineForeignAgencyDetails;
+	/**
+	 *  修改后发货人提单描述
+	 */
+	@ApiModelProperty(value = " 修改后发货人提单描述")
+	private String deadlineShipperDetails;
+	/**
+	 *  修改后收货人提单描述
+	 */
+	@ApiModelProperty(value = " 修改后收货人提单描述")
+	private String deadlineConsigneeDetails;
+	/**
+	 *  修改后通知人提单描述
+	 */
+	@ApiModelProperty(value = " 修改后通知人提单描述")
+	private String deadlineNotifyDetails;
+	/**
+	 * 修改后截单时间
+	 */
+	@ApiModelProperty(value = "修改后截单时间")
+	private Date deadlineCyTrailerTime;
+	/**
+	 * 修改后船公司中文名称
+	 */
+	@ApiModelProperty(value = "修改后船公司简称")
+	private String deadlineCarrierShortName;
+	/**
+	 * 修改后订舱代理 id
+	 */
+	@ApiModelProperty(value = "修改后订舱代理 id")
+	private Long deadlineBookingAgentId;
+	/**
+	 * 修改后订舱代理中文名称
+	 */
+	@ApiModelProperty(value = "修改后订舱代理中文名称")
+	private String deadlineBookingAgentCnName;
+	/**
+	 * 修改后订舱代理英文名称
+	 */
+	@ApiModelProperty(value = "修改后订舱代理英文名称")
+	private String deadlineBookingAgentEnName;
+	/**
+	 * 修改后订舱备注
+	 */
+	@ApiModelProperty(value = "修改后订舱备注")
+	private String deadlineBookingRemarks;
+
+
+}

+ 185 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/DeadlineContainers.java

@@ -0,0 +1,185 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * 截单修改单据配箱信息表实体类
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+@Data
+@TableName("los_deadline_containers")
+@ApiModel(value = "DeadlineContainers对象", description = "截单修改单据配箱信息表")
+public class DeadlineContainers implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	private Long id;
+	/**
+	 * 分公司
+	 */
+	@ApiModelProperty(value = "分公司")
+	private String branchName;
+	/**
+	 * 分公司 Id
+	 */
+	@ApiModelProperty(value = "分公司 Id")
+	private String branchId;
+	/**
+	 * 创建人 Id
+	 */
+	@ApiModelProperty(value = "创建人 Id")
+	private Long createUser;
+	/**
+	 * 创建人
+	 */
+	@ApiModelProperty(value = "创建人")
+	private String createUserName;
+	/**
+	 * 创建时间
+	 */
+	@ApiModelProperty(value = "创建时间")
+	private Date createTime;
+	/**
+	 * 修改人 Id
+	 */
+	@ApiModelProperty(value = "修改人 Id")
+	private Long updateUser;
+	/**
+	 * 修改人
+	 */
+	@ApiModelProperty(value = "修改人")
+	private String updateUserName;
+	/**
+	 * 修改时间
+	 */
+	@ApiModelProperty(value = "修改时间")
+	private Date updateTime;
+	/**
+	 * 主表id
+	 */
+	@ApiModelProperty(value = "主表id")
+	private Long pid;
+	/**
+	 * 箱号
+	 */
+	@ApiModelProperty(value = "箱号")
+	private String cntrNo;
+	/**
+	 * 铅封号
+	 */
+	@ApiModelProperty(value = "铅封号")
+	private String sealNo;
+	/**
+	 * 件数
+	 */
+	@ApiModelProperty(value = "件数")
+	private BigDecimal quantity;
+	/**
+	 * 毛重 (KGM)
+	 */
+	@ApiModelProperty(value = "毛重 (KGM)")
+	private BigDecimal grossWeight;
+	/**
+	 * 体积 (CBM)
+	 */
+	@ApiModelProperty(value = "体积 (CBM)")
+	private BigDecimal measurement;
+	/**
+	 * VGM 总重(KGM)
+	 */
+	@ApiModelProperty(value = "VGM 总重(KGM)")
+	private BigDecimal vgmWeight;
+	/**
+	 * 皮重
+	 */
+	@ApiModelProperty(value = "皮重")
+	private String tare;
+	/**
+	 * 修改后箱号
+	 */
+	@ApiModelProperty(value = "修改后箱号")
+	private String deadlineCntrNo;
+	/**
+	 * 修改后铅封号
+	 */
+	@ApiModelProperty(value = "修改后铅封号")
+	private String deadlineSealNo;
+	/**
+	 * 修改后件数
+	 */
+	@ApiModelProperty(value = "修改后件数")
+	private BigDecimal deadlineQuantity;
+	/**
+	 * 修改后毛重 (KGM)
+	 */
+	@ApiModelProperty(value = "修改后毛重 (KGM)")
+	private BigDecimal deadlineGrossWeight;
+	/**
+	 * 修改后体积 (CBM)
+	 */
+	@ApiModelProperty(value = "修改后体积 (CBM)")
+	private BigDecimal deadlineMeasurement;
+	/**
+	 * 修改后VGM 总重(KGM)
+	 */
+	@ApiModelProperty(value = "修改后VGM 总重(KGM)")
+	private BigDecimal deadlineVgmWeight;
+	/**
+	 * 修改后皮重
+	 */
+	@ApiModelProperty(value = "修改后皮重")
+	private String deadlineTare;
+	/**
+	 * 来源明细id
+	 */
+	@ApiModelProperty(value = "来源明细id")
+	private Long srcItemId;
+	/**
+	 * 租户
+	 */
+	@ApiModelProperty(value = "租户")
+	private String tenantId;
+	/**
+	 * 是否已删除(0 否 1是)
+	 */
+	@ApiModelProperty(value = "是否已删除(0 否 1是)")
+	private Integer isDeleted;
+	/**
+	 * 版本
+	 */
+	@ApiModelProperty(value = "版本")
+	private String version;
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remarks;
+
+
+}

+ 36 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/vo/DeadlineContainersVO.java

@@ -0,0 +1,36 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.vo;
+
+import org.springblade.los.business.sea.entity.DeadlineContainers;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.swagger.annotations.ApiModel;
+
+/**
+ * 截单修改单据配箱信息表视图实体类
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "DeadlineContainersVO对象", description = "截单修改单据配箱信息表")
+public class DeadlineContainersVO extends DeadlineContainers {
+	private static final long serialVersionUID = 1L;
+
+}

+ 62 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/vo/DeadlineVO.java

@@ -0,0 +1,62 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.los.business.sea.entity.Deadline;
+import org.springblade.los.business.sea.entity.DeadlineContainers;
+
+import java.util.List;
+
+/**
+ * 截单修改单据信息表视图实体类
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "DeadlineVO对象", description = "截单修改单据信息表")
+public class DeadlineVO extends Deadline {
+	private static final long serialVersionUID = 1L;
+
+	private List<DeadlineContainers> deadlineContainersList;
+
+	//跳转对应页面的路由
+	@TableField(exist = false)
+	private String url;
+	//页面枚举
+	@TableField(exist = false)
+	private String pageStatus;
+	//页面名字
+	@TableField(exist = false)
+	private String pageLabel;
+	/**
+	 * 编码生成code
+	 */
+	@TableField(exist = false)
+	private String billNoFormat;
+	/**
+	 * 业务类型表 code
+	 */
+	@TableField(exist = false)
+	private String businessTypeCode;
+
+}

+ 23 - 5
blade-service/blade-los/src/main/java/org/springblade/los/basic/reports/service/impl/ReportsServiceImpl.java

@@ -1376,6 +1376,24 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 							}
 							item.setFeeCenterList(feeCenterReports);
 						}
+						item.setPermission("0");
+						if (!AuthUtil.getUserRole().contains("总部") && !AuthUtil.getUserRole().contains("admin")) {
+							if (!(AuthUtil.getUserRole().contains("应付查看") && AuthUtil.getUserRole().contains("应收查看"))) {
+								if (!(AuthUtil.getUserRole().contains("应付修改") && AuthUtil.getUserRole().contains("应收修改"))) {
+									item.setPermission("1");
+									/*item.setAmountProfitUsd(null);
+									item.setAmountProfitLoc(null);
+									item.setOceanFreightProfit(null);
+									item.setAmountProfitUpdate(null);
+									item.setAmountProfitUsdUpdate(null);
+									item.setAmountProfitLocUpdate(null);
+									item.setProfitMargin(null);
+									item.setAmountProfitAmend(null);
+									item.setAmountProfitUsdAmend(null);
+									item.setAmountProfitLocAmend(null);*/
+								}
+							}
+						}
 						item.setDept(dept);
 					}
 				}
@@ -2415,7 +2433,7 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 		if (!feeCenterList.isEmpty()) {
 			List<String> unitsName = feeCenterList.stream().map(FeeCenter::getUnitNo)
 				.distinct().collect(Collectors.toList());
-			if (!unitsName.isEmpty()){
+			if (!unitsName.isEmpty()) {
 				unitsList = bUnitsService.list(new LambdaQueryWrapper<BUnits>()
 					.eq(BUnits::getTenantId, AuthUtil.getTenantId())
 					.eq(BUnits::getIsDeleted, 0)
@@ -2483,10 +2501,10 @@ public class ReportsServiceImpl extends ServiceImpl<ReportsMapper, Reports> impl
 			feeCenterReports.setExrate(item.getExrate());
 			feeCenterReports.setQuantity(item.getQuantity());
 			feeCenterReports.setUnitNo(item.getUnitNo());
-			if (!unitsList.isEmpty()){
-                unitsList.stream().filter(e -> e.getCnName().equals(item.getUnitNo()))
-                        .findFirst().ifPresent(units -> feeCenterReports.setUnitNoEname(units.getEnName()));
-            }
+			if (!unitsList.isEmpty()) {
+				unitsList.stream().filter(e -> e.getCnName().equals(item.getUnitNo()))
+					.findFirst().ifPresent(units -> feeCenterReports.setUnitNoEname(units.getEnName()));
+			}
 			feeCenterReports.setPrice(item.getPrice());
 			feeCenterReports.setMoney(item.getAmount());
 			feeCenterReports.setTaxRate(item.getTaxRate());

+ 4 - 1
blade-service/blade-los/src/main/java/org/springblade/los/box/controller/ArchivesTrajectoryController.java

@@ -33,6 +33,7 @@ import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.los.box.entity.ArchivesTrajectory;
 import org.springblade.los.box.service.IArchivesTrajectoryService;
+import org.springblade.los.business.sea.entity.Bills;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
@@ -74,7 +75,9 @@ public class ArchivesTrajectoryController extends BladeController {
 		}
 		LambdaQueryWrapper<ArchivesTrajectory> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(ArchivesTrajectory::getTenantId, AuthUtil.getTenantId()).eq(ArchivesTrajectory::getIsDeleted, 0)
-			.like(ObjectUtils.isNotNull(archivesTrajectory.getPortCname()), ArchivesTrajectory::getPortCname, archivesTrajectory.getPortCname())
+			.and(ObjectUtils.isNotNull(archivesTrajectory.getPortCname()), i -> i.like(ArchivesTrajectory::getPortCname, archivesTrajectory.getPortCname()).or()
+				.like(ArchivesTrajectory::getPortEname, archivesTrajectory.getPortCname()).or().like(ArchivesTrajectory::getPortCode, archivesTrajectory.getPortCname()))
+			.like(ObjectUtils.isNotNull(archivesTrajectory.getPortId()), ArchivesTrajectory::getPortId, archivesTrajectory.getPortId())
 			.like(ObjectUtils.isNotNull(archivesTrajectory.getStationCname()), ArchivesTrajectory::getStationCname, archivesTrajectory.getStationCname())
 			.like(ObjectUtils.isNotNull(archivesTrajectory.getBoxDynamics()), ArchivesTrajectory::getBoxDynamics, archivesTrajectory.getBoxDynamics())
 			.like(ObjectUtils.isNotNull(archivesTrajectory.getContainerNumber()), ArchivesTrajectory::getContainerNumber, archivesTrajectory.getContainerNumber())

File diff suppressed because it is too large
+ 592 - 203
blade-service/blade-los/src/main/java/org/springblade/los/box/dynamics/service/impl/BoxDynamicsRecordServiceImpl.java


+ 1 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/TradingBoxServiceImpl.java

@@ -2843,6 +2843,7 @@ public class TradingBoxServiceImpl extends ServiceImpl<TradingBoxMapper, Trading
 			.eq(TradingBoxItem::getIsDeleted, 0)
 			.eq(TradingBoxItem::getTenantId, AuthUtil.getTenantId())
 			.eq(TradingBoxItem::getPid, id)
+			.eq(TradingBoxItem::getPolPickUpDate, accountDate)
 			.eq(TradingBoxItem::getWhetherGeneratePickUpCost, "0"));
 		if (tradingBoxItems.isEmpty()) {
 			throw new RuntimeException("未查到箱明细");

+ 126 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/DeadlineContainersController.java

@@ -0,0 +1,126 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import lombok.AllArgsConstructor;
+import javax.validation.Valid;
+
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.los.business.sea.entity.DeadlineContainers;
+import org.springblade.los.business.sea.vo.DeadlineContainersVO;
+import org.springblade.los.business.sea.service.IDeadlineContainersService;
+import org.springblade.core.boot.ctrl.BladeController;
+
+/**
+ * 截单修改单据配箱信息表 控制器
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/deadlinecontainers")
+@Api(value = "截单修改单据配箱信息表", tags = "截单修改单据配箱信息表接口")
+public class DeadlineContainersController extends BladeController {
+
+	private final IDeadlineContainersService deadlineContainersService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入deadlineContainers")
+	public R<DeadlineContainers> detail(DeadlineContainers deadlineContainers) {
+		DeadlineContainers detail = deadlineContainersService.getOne(Condition.getQueryWrapper(deadlineContainers));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页 截单修改单据配箱信息表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入deadlineContainers")
+	public R<IPage<DeadlineContainers>> list(DeadlineContainers deadlineContainers, Query query) {
+		IPage<DeadlineContainers> pages = deadlineContainersService.page(Condition.getPage(query), Condition.getQueryWrapper(deadlineContainers));
+		return R.data(pages);
+	}
+
+	/**
+	 * 自定义分页 截单修改单据配箱信息表
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入deadlineContainers")
+	public R<IPage<DeadlineContainersVO>> page(DeadlineContainersVO deadlineContainers, Query query) {
+		IPage<DeadlineContainersVO> pages = deadlineContainersService.selectDeadlineContainersPage(Condition.getPage(query), deadlineContainers);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 截单修改单据配箱信息表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入deadlineContainers")
+	public R save(@Valid @RequestBody DeadlineContainers deadlineContainers) {
+		return R.status(deadlineContainersService.save(deadlineContainers));
+	}
+
+	/**
+	 * 修改 截单修改单据配箱信息表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入deadlineContainers")
+	public R update(@Valid @RequestBody DeadlineContainers deadlineContainers) {
+		return R.status(deadlineContainersService.updateById(deadlineContainers));
+	}
+
+	/**
+	 * 新增或修改 截单修改单据配箱信息表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入deadlineContainers")
+	public R submit(@Valid @RequestBody DeadlineContainers deadlineContainers) {
+		return R.status(deadlineContainersService.saveOrUpdate(deadlineContainers));
+	}
+
+	
+	/**
+	 * 删除 截单修改单据配箱信息表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(deadlineContainersService.removeByIds(Func.toLongList(ids)));
+	}
+
+	
+}

+ 155 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/DeadlineController.java

@@ -0,0 +1,155 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.common.annotation.RepeatSubmit;
+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.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.los.business.sea.entity.Bills;
+import org.springblade.los.business.sea.entity.Deadline;
+import org.springblade.los.business.sea.service.IDeadlineService;
+import org.springblade.los.business.sea.vo.DeadlineVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * 截单修改单据信息表 控制器
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/deadline")
+@Api(value = "截单修改单据信息表", tags = "截单修改单据信息表接口")
+public class DeadlineController extends BladeController {
+
+	private final IDeadlineService deadlineService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	public R<DeadlineVO> detail(DeadlineVO deadline) {
+		DeadlineVO detail = deadlineService.detail(deadline);
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页 截单修改单据信息表
+	 */
+	@GetMapping("/list")
+	public R<IPage<Deadline>> list(Deadline deadline, Query query) {
+		LambdaQueryWrapper<Deadline> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(Deadline::getTenantId, AuthUtil.getTenantId())
+			.eq(Deadline::getIsDeleted, 0)
+			.like(ObjectUtils.isNotNull(deadline.getMblno()), Deadline::getMblno, deadline.getMblno())
+			.like(ObjectUtils.isNotNull(deadline.getHblno()), Deadline::getHblno, deadline.getHblno())
+			.like(ObjectUtils.isNotNull(deadline.getBillNo()), Deadline::getBillNo, deadline.getBillNo())
+			.like(ObjectUtils.isNotNull(deadline.getSrcBillNo()), Deadline::getSrcBillNo, deadline.getSrcBillNo())
+			.eq(ObjectUtils.isNotNull(deadline.getBillStatus()), Deadline::getBillStatus, deadline.getBillStatus())
+			.orderByDesc(Deadline::getCreateTime);
+		IPage<Deadline> pages = deadlineService.page(Condition.getPage(query), lambdaQueryWrapper);
+		return R.data(pages);
+	}
+
+	/**
+	 * 自定义分页 截单修改单据信息表
+	 */
+	@GetMapping("/page")
+	public R<IPage<DeadlineVO>> page(DeadlineVO deadline, Query query) {
+		IPage<DeadlineVO> pages = deadlineService.selectDeadlinePage(Condition.getPage(query), deadline);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 截单修改单据信息表
+	 */
+	@PostMapping("/save")
+	public R save(@Valid @RequestBody Deadline deadline) {
+		return R.status(deadlineService.save(deadline));
+	}
+
+	/**
+	 * 修改 截单修改单据信息表
+	 */
+	@PostMapping("/update")
+	public R update(@Valid @RequestBody Deadline deadline) {
+		return R.status(deadlineService.updateById(deadline));
+	}
+
+	/**
+	 * 新增或修改 截单修改单据信息表
+	 */
+	@PostMapping("/submit")
+	@RepeatSubmit
+	public R submit(@Valid @RequestBody DeadlineVO deadlineVO) {
+		return deadlineService.submit(deadlineVO);
+	}
+	/**
+	 * 删除 截单修改单据信息表
+	 */
+	@PostMapping("/remove")
+	@RepeatSubmit
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(deadlineService.removeByIds(Func.toLongList(ids)));
+	}
+	/**
+	 * 单据请核
+	 */
+	@PostMapping("/checkDeadline")
+	@RepeatSubmit
+	public R checkDeadline(@RequestBody DeadlineVO deadlineVO) {
+		Deadline declare = deadlineService.checkDeadline(deadlineVO);
+		return R.data(declare);
+	}
+
+	/**
+	 * 撤销单据请核
+	 */
+	@PostMapping("/revokeCheckDeadline")
+	@RepeatSubmit
+	public R revokeCheckDeadline(@RequestBody DeadlineVO deadlineVO) {
+		Deadline declare = deadlineService.revokeCheckDeadline(deadlineVO);
+		return R.data(declare);
+	}
+
+	/**
+	 * 海运出口生成提单修改数据
+	 */
+	@GetMapping("/generateDeadline")
+	@RepeatSubmit
+	public R generateDeadline(@RequestParam("billId")Long billId) {
+		DeadlineVO declare = deadlineService.generateDeadline(billId);
+		return R.data(declare);
+	}
+
+
+}

+ 42 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/DeadlineContainersMapper.java

@@ -0,0 +1,42 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.mapper;
+
+import org.springblade.los.business.sea.entity.DeadlineContainers;
+import org.springblade.los.business.sea.vo.DeadlineContainersVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import java.util.List;
+
+/**
+ * 截单修改单据配箱信息表 Mapper 接口
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+public interface DeadlineContainersMapper extends BaseMapper<DeadlineContainers> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param deadlineContainers
+	 * @return
+	 */
+	List<DeadlineContainersVO> selectDeadlineContainersPage(IPage page, DeadlineContainersVO deadlineContainers);
+
+}

+ 39 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/DeadlineContainersMapper.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.los.business.sea.mapper.DeadlineContainersMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="deadlineContainersResultMap" type="org.springblade.los.business.sea.entity.DeadlineContainers">
+        <id column="id" property="id"/>
+        <result column="branch_name" property="branchName"/>
+        <result column="branch_id" property="branchId"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_user_name" property="createUserName"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_user_name" property="updateUserName"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="pid" property="pid"/>
+        <result column="cntr_no" property="cntrNo"/>
+        <result column="seal_no" property="sealNo"/>
+        <result column="quantity" property="quantity"/>
+        <result column="gross_weight" property="grossWeight"/>
+        <result column="measurement" property="measurement"/>
+        <result column="vgm_weight" property="vgmWeight"/>
+        <result column="tare" property="tare"/>
+        <result column="deadline_cntr_no" property="deadlineCntrNo"/>
+        <result column="deadline_seal_no" property="deadlineSealNo"/>
+        <result column="deadline_quantity" property="deadlineQuantity"/>
+        <result column="deadline_gross_weight" property="deadlineGrossWeight"/>
+        <result column="deadline_measurement" property="deadlineMeasurement"/>
+        <result column="deadline_vgm_weight" property="deadlineVgmWeight"/>
+        <result column="deadline_tare" property="deadlineTare"/>
+        <result column="src_item_id" property="srcItemId"/>
+    </resultMap>
+
+
+    <select id="selectDeadlineContainersPage" resultMap="deadlineContainersResultMap">
+        select * from los_deadline_containers where is_deleted = 0
+    </select>
+
+</mapper>

+ 42 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/DeadlineMapper.java

@@ -0,0 +1,42 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.mapper;
+
+import org.springblade.los.business.sea.entity.Deadline;
+import org.springblade.los.business.sea.vo.DeadlineVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import java.util.List;
+
+/**
+ * 截单修改单据信息表 Mapper 接口
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+public interface DeadlineMapper extends BaseMapper<Deadline> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param deadline
+	 * @return
+	 */
+	List<DeadlineVO> selectDeadlinePage(IPage page, DeadlineVO deadline);
+
+}

+ 111 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/mapper/DeadlineMapper.xml

@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.los.business.sea.mapper.DeadlineMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="deadlineResultMap" type="org.springblade.los.business.sea.entity.Deadline">
+        <id column="id" property="id"/>
+        <result column="branch_name" property="branchName"/>
+        <result column="branch_id" property="branchId"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_user_name" property="createUserName"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_user_name" property="updateUserName"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="bill_no" property="billNo"/>
+        <result column="mblno" property="mblno"/>
+        <result column="hblno" property="hblno"/>
+        <result column="src_bill_id" property="srcBillId"/>
+        <result column="src_bill_no" property="srcBillNo"/>
+        <result column="bill_status" property="billStatus"/>
+        <result column="carrier_id" property="carrierId"/>
+        <result column="carrier_cn_name" property="carrierCnName"/>
+        <result column="carrier_en_name" property="carrierEnName"/>
+        <result column="carrier_argreement_no" property="carrierArgreementNo"/>
+        <result column="vessel_id" property="vesselId"/>
+        <result column="vessel_cn_name" property="vesselCnName"/>
+        <result column="vessel_en_name" property="vesselEnName"/>
+        <result column="voyage_no" property="voyageNo"/>
+        <result column="pol_id" property="polId"/>
+        <result column="pol_code" property="polCode"/>
+        <result column="pol_cn_name" property="polCnName"/>
+        <result column="pol_en_name" property="polEnName"/>
+        <result column="pol_name_print" property="polNamePrint"/>
+        <result column="pod_id" property="podId"/>
+        <result column="pod_code" property="podCode"/>
+        <result column="pod_cn_name" property="podCnName"/>
+        <result column="pod_en_name" property="podEnName"/>
+        <result column="pod_name_print" property="podNamePrint"/>
+        <result column="place_delivery_id" property="placeDeliveryId"/>
+        <result column="place_delivery_code" property="placeDeliveryCode"/>
+        <result column="place_delivery_name" property="placeDeliveryName"/>
+        <result column="place_delivery_name_print" property="placeDeliveryNamePrint"/>
+        <result column="issue_type" property="issueType"/>
+        <result column="issue_date" property="issueDate"/>
+        <result column="issue_at" property="issueAt"/>
+        <result column="issue_at_id" property="issueAtId"/>
+        <result column="commodity_descr" property="commodityDescr"/>
+        <result column="marks" property="marks"/>
+        <result column="packing_unit_id" property="packingUnitId"/>
+        <result column="packing_unit" property="packingUnit"/>
+        <result column="quantity" property="quantity"/>
+        <result column="gross_weight" property="grossWeight"/>
+        <result column="measurement" property="measurement"/>
+        <result column="foreign_agency_id" property="foreignAgencyId"/>
+        <result column="foreign_agency_code" property="foreignAgencyCode"/>
+        <result column="foreign_agency_cn_name" property="foreignAgencyCnName"/>
+        <result column="foreign_agency_en_name" property="foreignAgencyEnName"/>
+        <result column="foreign_agency_details" property="foreignAgencyDetails"/>
+        <result column="shipper_details" property="shipperDetails"/>
+        <result column="consignee_details" property="consigneeDetails"/>
+        <result column="notify_details" property="notifyDetails"/>
+        <result column="deadline_carrier_id" property="deadlineCarrierId"/>
+        <result column="deadline_carrier_cn_name" property="deadlineCarrierCnName"/>
+        <result column="deadline_carrier_en_name" property="deadlineCarrierEnName"/>
+        <result column="deadline_carrier_argreement_no" property="deadlineCarrierArgreementNo"/>
+        <result column="deadline_vessel_id" property="deadlineVesselId"/>
+        <result column="deadline_vessel_cn_name" property="deadlineVesselCnName"/>
+        <result column="deadline_vessel_en_name" property="deadlineVesselEnName"/>
+        <result column="deadline_voyage_no" property="deadlineVoyageNo"/>
+        <result column="deadline_pol_id" property="deadlinePolId"/>
+        <result column="deadline_pol_code" property="deadlinePolCode"/>
+        <result column="deadline_pol_cn_name" property="deadlinePolCnName"/>
+        <result column="deadline_pol_en_name" property="deadlinePolEnName"/>
+        <result column="deadline_pol_name_print" property="deadlinePolNamePrint"/>
+        <result column="deadline_pod_id" property="deadlinePodId"/>
+        <result column="deadline_pod_code" property="deadlinePodCode"/>
+        <result column="deadline_pod_cn_name" property="deadlinePodCnName"/>
+        <result column="deadline_pod_en_name" property="deadlinePodEnName"/>
+        <result column="deadline_pod_name_print" property="deadlinePodNamePrint"/>
+        <result column="deadline_place_delivery_id" property="deadlinePlaceDeliveryId"/>
+        <result column="deadline_place_delivery_code" property="deadlinePlaceDeliveryCode"/>
+        <result column="deadline_place_delivery_name" property="deadlinePlaceDeliveryName"/>
+        <result column="deadline_place_delivery_name_print" property="deadlinePlaceDeliveryNamePrint"/>
+        <result column="deadline_issue_type" property="deadlineIssueType"/>
+        <result column="deadline_issue_date" property="deadlineIssueDate"/>
+        <result column="deadline_issue_at" property="deadlineIssueAt"/>
+        <result column="deadline_issue_at_id" property="deadlineIssueAtId"/>
+        <result column="deadline_commodity_descr" property="deadlineCommodityDescr"/>
+        <result column="deadline_marks" property="deadlineMarks"/>
+        <result column="deadline_packing_unit_id" property="deadlinePackingUnitId"/>
+        <result column="deadline_packing_unit" property="deadlinePackingUnit"/>
+        <result column="deadline_quantity" property="deadlineQuantity"/>
+        <result column="deadline_gross_weight" property="deadlineGrossWeight"/>
+        <result column="deadline_measurement" property="deadlineMeasurement"/>
+        <result column="deadline_foreign_agency_id" property="deadlineForeignAgencyId"/>
+        <result column="deadline_foreign_agency_code" property="deadlineForeignAgencyCode"/>
+        <result column="deadline_foreign_agency_cn_name" property="deadlineForeignAgencyCnName"/>
+        <result column="deadline_foreign_agency_en_name" property="deadlineForeignAgencyEnName"/>
+        <result column="deadline_foreign_agency_details" property="deadlineForeignAgencyDetails"/>
+        <result column="deadline_shipper_details" property="deadlineShipperDetails"/>
+        <result column="deadline_consignee_details" property="deadlineConsigneeDetails"/>
+        <result column="deadline_notify_details" property="deadlineNotifyDetails"/>
+    </resultMap>
+
+
+    <select id="selectDeadlinePage" resultMap="deadlineResultMap">
+        select * from los_deadline where is_deleted = 0
+    </select>
+
+</mapper>

+ 41 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IDeadlineContainersService.java

@@ -0,0 +1,41 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.service;
+
+import org.springblade.los.business.sea.entity.DeadlineContainers;
+import org.springblade.los.business.sea.vo.DeadlineContainersVO;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 截单修改单据配箱信息表 服务类
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+public interface IDeadlineContainersService extends IService<DeadlineContainers> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param deadlineContainers
+	 * @return
+	 */
+	IPage<DeadlineContainersVO> selectDeadlineContainersPage(IPage<DeadlineContainersVO> page, DeadlineContainersVO deadlineContainers);
+
+}

+ 51 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IDeadlineService.java

@@ -0,0 +1,51 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.service;
+
+import org.springblade.core.tool.api.R;
+import org.springblade.los.business.sea.entity.Deadline;
+import org.springblade.los.business.sea.vo.DeadlineVO;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 截单修改单据信息表 服务类
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+public interface IDeadlineService extends IService<Deadline> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param deadline
+	 * @return
+	 */
+	IPage<DeadlineVO> selectDeadlinePage(IPage<DeadlineVO> page, DeadlineVO deadline);
+
+	DeadlineVO detail(DeadlineVO deadline);
+
+	R submit(DeadlineVO deadlineVO);
+
+	Deadline checkDeadline(DeadlineVO deadlineVO);
+
+	Deadline revokeCheckDeadline(DeadlineVO deadlineVO);
+
+	DeadlineVO generateDeadline(Long billId);
+}

+ 41 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/DeadlineContainersServiceImpl.java

@@ -0,0 +1,41 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.service.impl;
+
+import org.springblade.los.business.sea.entity.DeadlineContainers;
+import org.springblade.los.business.sea.vo.DeadlineContainersVO;
+import org.springblade.los.business.sea.mapper.DeadlineContainersMapper;
+import org.springblade.los.business.sea.service.IDeadlineContainersService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 截单修改单据配箱信息表 服务实现类
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+@Service
+public class DeadlineContainersServiceImpl extends ServiceImpl<DeadlineContainersMapper, DeadlineContainers> implements IDeadlineContainersService {
+
+	@Override
+	public IPage<DeadlineContainersVO> selectDeadlineContainersPage(IPage<DeadlineContainersVO> page, DeadlineContainersVO deadlineContainers) {
+		return page.setRecords(baseMapper.selectDeadlineContainersPage(page, deadlineContainers));
+	}
+
+}

+ 439 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/DeadlineServiceImpl.java

@@ -0,0 +1,439 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package org.springblade.los.business.sea.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.los.basic.business.entity.BusinessType;
+import org.springblade.los.basic.business.service.IBusinessTypeService;
+import org.springblade.los.billno.entity.BusinessBillNo;
+import org.springblade.los.billno.service.IBusinessBillNoService;
+import org.springblade.los.business.sea.entity.*;
+import org.springblade.los.business.sea.mapper.DeadlineMapper;
+import org.springblade.los.business.sea.service.*;
+import org.springblade.los.business.sea.vo.DeadlineVO;
+import org.springblade.los.check.dto.LosAuditProecessDTO;
+import org.springblade.los.check.entity.LosAuditPathsActs;
+import org.springblade.los.check.entity.LosAuditPathsLevels;
+import org.springblade.los.check.service.IAuditPathsActsService;
+import org.springblade.los.check.service.IAuditPathsLevelsService;
+import org.springblade.los.check.service.IAuditProecessService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 截单修改单据信息表 服务实现类
+ *
+ * @author BladeX
+ * @since 2026-03-11
+ */
+@Service
+@AllArgsConstructor
+public class DeadlineServiceImpl extends ServiceImpl<DeadlineMapper, Deadline> implements IDeadlineService {
+
+
+	private final IDeadlineContainersService deadlineContainersService;
+
+	private final IAuditPathsActsService auditPathsActsService;
+
+	private final IAuditPathsLevelsService auditPathsLevelsService;
+
+	private final IAuditProecessService auditProecessService;
+
+	private final IBusinessBillNoService businessBillNoService;
+
+	private final IBusinessTypeService bBusinessTypeService;
+
+	private final IContainersService containersService;
+
+	private final IBillsService billsService;
+
+	private final ISeaBillsDetailService seaBillsDetailService;
+
+	@Override
+	public IPage<DeadlineVO> selectDeadlinePage(IPage<DeadlineVO> page, DeadlineVO deadline) {
+		return page.setRecords(baseMapper.selectDeadlinePage(page, deadline));
+	}
+
+	@Override
+	public DeadlineVO detail(DeadlineVO deadlineVO) {
+		if (deadlineVO.getId() == null) {
+			throw new RuntimeException("缺少必要参数");
+		}
+		DeadlineVO detatil = new DeadlineVO();
+		Deadline deadline = baseMapper.selectById(deadlineVO.getId());
+		if (deadline != null) {
+			BeanUtil.copyProperties(deadline, detatil);
+			List<DeadlineContainers> deadlineContainersList = deadlineContainersService.list(new LambdaQueryWrapper<DeadlineContainers>()
+				.eq(DeadlineContainers::getTenantId, AuthUtil.getTenantId())
+				.eq(DeadlineContainers::getIsDeleted, 0)
+				.eq(DeadlineContainers::getPid, deadline.getId()));
+			detatil.setDeadlineContainersList(deadlineContainersList.isEmpty() ? new ArrayList<>() : deadlineContainersList);
+		}
+		return detatil;
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public R submit(DeadlineVO deadlineVO) {
+		Deadline deadline = new Deadline();
+		BeanUtil.copyProperties(deadlineVO, deadline);
+		if (deadline.getId() == null) {
+			BusinessType businessType = bBusinessTypeService.getOne(new LambdaQueryWrapper<BusinessType>()
+				.select(BusinessType::getId)
+				.eq(BusinessType::getTenantId, AuthUtil.getTenantId())
+				.eq(BusinessType::getIsDeleted, 0)
+				.eq(BusinessType::getStatus, 0)
+				.eq(BusinessType::getCode, deadlineVO.getBusinessTypeCode()));
+			if (businessType == null) {
+				throw new RuntimeException("未找到可用业务类型");
+			}
+			BusinessBillNo businessBillNo = new BusinessBillNo();
+			businessBillNo.setBusinessTypeId(businessType.getId());
+			businessBillNo.setCode(deadlineVO.getBillNoFormat());
+			businessBillNo.setBranchId(deadlineVO.getBranchId());
+			R clientBillNo = businessBillNoService.getBillNoLos(businessBillNo);
+			if (!clientBillNo.isSuccess()) {
+				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+				return R.fail(500, "生成订单编号失败");
+			}
+			deadline.setBillNo((String) clientBillNo.getData());
+			deadline.setCreateTime(new Date());
+			deadline.setCreateUser(AuthUtil.getUserId());
+			deadline.setCreateUserName(AuthUtil.getUserName());
+			deadline.setVersion("1");
+			deadline.setBranchId(AuthUtil.getDeptId());
+			deadline.setBranchName(AuthUtil.getUserName());
+		} else {
+			Deadline dataSourceBill = baseMapper.selectOne(new LambdaQueryWrapper<Deadline>().select(Deadline::getId, Deadline::getVersion)
+				.eq(Deadline::getId, deadline.getId()));
+			if (!Objects.equals(dataSourceBill.getVersion(), deadline.getVersion())) {
+				return R.fail(601, "数据已被其他用户更新,请刷新后重试");
+			}
+			// 每更新一次往上累加一次版本
+			// 旧数据处理
+			int version = StringUtil.isBlank(dataSourceBill.getVersion()) ? 1 : Integer.parseInt(dataSourceBill.getVersion());
+			deadline.setVersion(String.valueOf(version + 1));
+			deadline.setUpdateTime(new Date());
+			deadline.setUpdateUser(AuthUtil.getUserId());
+			deadline.setUpdateUserName(AuthUtil.getUserName());
+		}
+		this.saveOrUpdate(deadline);
+		if (ObjectUtils.isNotNull(deadlineVO.getDeadlineContainersList()) &&
+			!deadlineVO.getDeadlineContainersList().isEmpty()) {
+			for (DeadlineContainers item : deadlineVO.getDeadlineContainersList()) {
+				if (item.getId() == null) {
+					item.setPid(deadline.getId());
+					item.setCreateTime(new Date());
+					item.setCreateUser(AuthUtil.getUserId());
+					item.setCreateUserName(AuthUtil.getUserName());
+				} else {
+					item.setUpdateTime(new Date());
+					item.setUpdateUser(AuthUtil.getUserId());
+					item.setUpdateUserName(AuthUtil.getUserName());
+				}
+			}
+			deadlineContainersService.saveOrUpdateBatch(deadlineVO.getDeadlineContainersList());
+		}
+		deadlineVO.setId(deadline.getId());
+		return R.data(deadlineVO);
+	}
+
+	@Override
+	public Deadline checkDeadline(DeadlineVO deadlineVO) {
+		Deadline declare = baseMapper.selectById(deadlineVO.getId());
+		Integer actId = 1138;
+		String processType = "提单修改请核";
+		String checkType = "TDXG";
+		//审批数据
+		LosAuditProecessDTO auditProecessDTO = new LosAuditProecessDTO();
+		//获取审批级次
+		List<LosAuditPathsLevels> auditPathsLevels;
+		// 判断是否有审批流,如果审批流已开启就进入审批流,否则直接走申请通过
+		LosAuditPathsActs pathsActs;
+		//是否开启流程
+		LambdaQueryWrapper<LosAuditPathsActs> auditPathsActsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		auditPathsActsLambdaQueryWrapper
+			.eq(LosAuditPathsActs::getIsEnable, 1)
+			.eq(LosAuditPathsActs::getFidStatus, "billStatus")
+			.eq(LosAuditPathsActs::getTenantId, AuthUtil.getTenantId())
+			.eq(LosAuditPathsActs::getSalesCompanyId, declare.getBranchId())
+			.eq(LosAuditPathsActs::getActId, actId);
+		pathsActs = auditPathsActsService.getOne(auditPathsActsLambdaQueryWrapper);
+		//获取审批信息
+		LosAuditPathsActs losAuditPathsActs = auditPathsActsService.getOne(new LambdaQueryWrapper<LosAuditPathsActs>()
+			.eq(LosAuditPathsActs::getActId, actId)
+			.eq(LosAuditPathsActs::getFidStatus, "billStatus")
+			.eq(LosAuditPathsActs::getSalesCompanyId, declare.getBranchId())
+			.eq(LosAuditPathsActs::getTenantId, AuthUtil.getTenantId()));
+		Long pathId = losAuditPathsActs.getPathId();
+		auditPathsLevels = auditPathsLevelsService.list(new LambdaQueryWrapper<LosAuditPathsLevels>()
+			.eq(LosAuditPathsLevels::getTenantId, AuthUtil.getTenantId()).eq(LosAuditPathsLevels::getPathId, pathId));
+		auditProecessDTO.setTimes(1);
+		auditProecessDTO.setProcessType(processType);
+		// 没开启审批流直接走 通过流程
+		if (pathsActs == null || pathsActs.getIsEnable() == 2) {
+			throw new SecurityException("当前租户未查询到审批流配置");
+		} else {
+			if (CollectionUtils.isEmpty(auditPathsLevels)) {
+				throw new SecurityException("开启审批失败:未查询到审批信息");
+			}
+			// 绑定审核类型
+			auditProecessDTO.setCheckType(checkType);
+			// 追加跳转路由url
+			auditProecessDTO.setUrl(deadlineVO.getUrl());
+			auditProecessDTO.setPageStatus(deadlineVO.getPageStatus());
+			auditProecessDTO.setPageLabel(deadlineVO.getPageLabel());
+			auditProecessDTO.setOrderRemark(declare.getRemarks());
+			auditProecessDTO.setPathsLevelsList(auditPathsLevels);
+			auditProecessDTO.setActId(1);
+			auditProecessDTO.setSrcBillId(declare.getId());
+			auditProecessDTO.setBillId(declare.getId());
+			auditProecessDTO.setBillNo(declare.getBillNo());
+			auditProecessDTO.setSendUserId(AuthUtil.getUserId());
+			auditProecessDTO.setSendName(AuthUtil.getUserName());
+			auditProecessDTO.setSendTime(new Date());
+			auditProecessDTO.setBillTime(declare.getCreateTime());
+			auditProecessDTO.setTenantId(AuthUtil.getTenantId());
+			auditProecessDTO.setCorpId(declare.getCorpId());
+			auditProecessDTO.setCorpsName(declare.getCorpCnName());
+			auditProecessDTO.setReferenceNumber(declare.getMblno());
+			auditProecessDTO.setMorderNo(declare.getMblno());
+			auditProecessDTO.setSalesCompanyId(Long.parseLong(declare.getBranchId()));
+			auditProecessDTO.setSalesCompanyName(declare.getBranchName());
+			auditProecessDTO.setMblno(declare.getMblno());
+			auditProecessDTO.setHblno(declare.getHblno());
+			R financeProcess = auditProecessService.createFinanceProcess(auditProecessDTO);
+			if (!financeProcess.isSuccess()) {
+				throw new SecurityException("操作失败,请联系管理员");
+			}
+		}
+		declare.setBillStatus("1");
+		declare.setApplicant(AuthUtil.getUserId());
+		declare.setApplicantName(AuthUtil.getUserName());
+		declare.setApplicantTime(new Date());
+		declare.setUpdateTime(new Date());
+		declare.setUpdateUser(AuthUtil.getUserId());
+		declare.setUpdateUserName(AuthUtil.getUserName());
+		int versionKHTS = StringUtil.isBlank(declare.getVersion()) ? 1 : Integer.parseInt(declare.getVersion());
+		declare.setVersion(String.valueOf(versionKHTS + 1));
+		baseMapper.updateById(declare);
+		return declare;
+	}
+
+	@Override
+	public Deadline revokeCheckDeadline(DeadlineVO deadlineVO) {
+		Deadline declare = baseMapper.selectById(deadlineVO.getId());
+		if ("3".equals(declare.getBillStatus())) {
+			throw new SecurityException("审核已通过,撤销失败");
+		}
+		R financeProcess = auditProecessService.deteleByBillId(deadlineVO.getId());
+		if (!financeProcess.isSuccess()) {
+			throw new SecurityException("操作失败,请联系管理员");
+		}
+		declare.setBillStatus("0");
+		int version = StringUtil.isBlank(declare.getVersion()) ? 1 : Integer.parseInt(declare.getVersion());
+		declare.setVersion(String.valueOf(version + 1));
+		declare.setApplicant(0L);
+		declare.setApplicantName("");
+		declare.setApplicantTime(null);
+		declare.setUpdateTime(new Date());
+		declare.setUpdateUser(AuthUtil.getUserId());
+		declare.setUpdateUserName(AuthUtil.getUserName());
+		baseMapper.updateById(declare);
+		return declare;
+
+	}
+
+	@Override
+	public DeadlineVO generateDeadline(Long billId) {
+		Bills bills = billsService.getById(billId);
+		if (bills == null) {
+			throw new RuntimeException("缺少必要参数");
+		}
+		SeaBillsDetail seaBillsDetail = seaBillsDetailService.getOne(new LambdaQueryWrapper<SeaBillsDetail>()
+			.eq(SeaBillsDetail::getTenantId, AuthUtil.getTenantId())
+			.eq(SeaBillsDetail::getPid, billId)
+			.last("LIMIT 1"));
+		List<Containers> containersList = containersService.list(new LambdaQueryWrapper<Containers>()
+			.eq(Containers::getTenantId, AuthUtil.getTenantId())
+			.eq(Containers::getIsDeleted, 0)
+			.eq(Containers::getPid, billId));
+		DeadlineVO deadlineVO = new DeadlineVO();
+		deadlineVO.setMblno(bills.getMblno());
+		deadlineVO.setHblno(bills.getHblno());
+		deadlineVO.setBillNo(bills.getBillNo());
+		deadlineVO.setSrcBillId(bills.getId());
+		deadlineVO.setSrcBillNo(bills.getBillNo());
+		deadlineVO.setCorpId(bills.getCorpId());
+		deadlineVO.setCorpCnName(bills.getCorpCnName());
+		deadlineVO.setCorpEnName(bills.getCorpEnName());
+		deadlineVO.setShortName(bills.getShortName());
+		deadlineVO.setBillStatus("0");
+		//发货人提单描述
+		deadlineVO.setShipperDetails(seaBillsDetail.getHshipperDetails());
+		deadlineVO.setDeadlineShipperDetails(seaBillsDetail.getHshipperDetails());
+		//收货人提单描述
+		deadlineVO.setConsigneeDetails(seaBillsDetail.getHconsigneeDetails());
+		deadlineVO.setDeadlineConsigneeDetails(seaBillsDetail.getHconsigneeDetails());
+		//通知人提单描述
+		deadlineVO.setNotifyDetails(seaBillsDetail.getHnotifyDetails());
+		deadlineVO.setDeadlineNotifyDetails(seaBillsDetail.getHnotifyDetails());
+		//船公司
+		deadlineVO.setCarrierId(bills.getCarrierId());
+		deadlineVO.setCarrierCnName(bills.getCarrierCnName());
+		deadlineVO.setCarrierEnName(bills.getCarrierEnName());
+		deadlineVO.setCarrierArgreementNo(bills.getCarrierArgreementNo());
+		deadlineVO.setCarrierShortName(bills.getCarrierShortName());
+		deadlineVO.setDeadlineCarrierId(bills.getCarrierId());
+		deadlineVO.setDeadlineCarrierCnName(bills.getCarrierCnName());
+		deadlineVO.setDeadlineCarrierEnName(bills.getCarrierEnName());
+		deadlineVO.setDeadlineCarrierArgreementNo(bills.getCarrierArgreementNo());
+		deadlineVO.setDeadlineCarrierShortName(bills.getCarrierShortName());
+		//订舱代理
+		deadlineVO.setBookingAgentId(bills.getBookingAgentId());
+		deadlineVO.setBookingAgentCnName(bills.getBookingAgentCnName());
+		deadlineVO.setBookingAgentEnName(bills.getBookingAgentEnName());
+		deadlineVO.setBookingRemarks(bills.getBookingRemarks());
+		deadlineVO.setDeadlineBookingAgentId(bills.getBookingAgentId());
+		deadlineVO.setDeadlineBookingAgentCnName(bills.getBookingAgentCnName());
+		deadlineVO.setDeadlineBookingAgentEnName(bills.getBookingAgentEnName());
+		deadlineVO.setDeadlineBookingRemarks(bills.getBookingRemarks());
+		//船名
+		deadlineVO.setVesselId(bills.getVesselId());
+		deadlineVO.setVesselCnName(bills.getVesselCnName());
+		deadlineVO.setVesselEnName(bills.getVesselEnName());
+		deadlineVO.setDeadlineVesselId(bills.getVesselId());
+		deadlineVO.setDeadlineVesselCnName(bills.getVesselCnName());
+		deadlineVO.setDeadlineVesselEnName(bills.getVesselEnName());
+		//航次
+		deadlineVO.setVoyageNo(bills.getVoyageNo());
+		deadlineVO.setDeadlineVoyageNo(bills.getVoyageNo());
+		//装货港
+		deadlineVO.setPolId(bills.getPolId());
+		deadlineVO.setPolCode(bills.getPolCode());
+		deadlineVO.setPolCnName(bills.getPolCnName());
+		deadlineVO.setPolEnName(bills.getPolEnName());
+		deadlineVO.setDeadlinePolId(bills.getPolId());
+		deadlineVO.setDeadlinePolCode(bills.getPolCode());
+		deadlineVO.setDeadlinePolCnName(bills.getPolCnName());
+		deadlineVO.setDeadlinePolEnName(bills.getPolEnName());
+		//装货港英文名称打印
+		deadlineVO.setPolNamePrint(bills.getPolNamePrint());
+		deadlineVO.setDeadlinePolNamePrint(bills.getPolNamePrint());
+		//卸货港
+		deadlineVO.setPodId(bills.getPodId());
+		deadlineVO.setPodCode(bills.getPodCode());
+		deadlineVO.setPodCnName(bills.getPodCnName());
+		deadlineVO.setPodEnName(bills.getPodEnName());
+		deadlineVO.setDeadlinePodId(bills.getPodId());
+		deadlineVO.setDeadlinePodCode(bills.getPodCode());
+		deadlineVO.setDeadlinePodCnName(bills.getPodCnName());
+		deadlineVO.setDeadlinePodEnName(bills.getPodEnName());
+		//卸货港英文名称打印
+		deadlineVO.setPodNamePrint(bills.getPodNamePrint());
+		deadlineVO.setDeadlinePodNamePrint(bills.getPodNamePrint());
+		//交货地
+		deadlineVO.setPlaceDeliveryId(bills.getPlaceDeliveryId());
+		deadlineVO.setPlaceDeliveryCode(bills.getPlaceDeliveryCode());
+		deadlineVO.setPlaceDeliveryName(bills.getPlaceDeliveryName());
+		deadlineVO.setDeadlinePlaceDeliveryId(bills.getPlaceDeliveryId());
+		deadlineVO.setDeadlinePlaceDeliveryCode(bills.getPlaceDeliveryCode());
+		deadlineVO.setDeadlinePlaceDeliveryName(bills.getPlaceDeliveryName());
+		//交货地英文名称打印
+		deadlineVO.setPlaceDeliveryNamePrint(bills.getPlaceDeliveryNamePrint());
+		deadlineVO.setDeadlinePlaceDeliveryNamePrint(bills.getPlaceDeliveryNamePrint());
+		//签单方式
+		deadlineVO.setIssueType(bills.getIssueType());
+		deadlineVO.setDeadlineIssueType(bills.getIssueType());
+		//签单日期
+		deadlineVO.setIssueDate(bills.getIssueDate());
+		deadlineVO.setDeadlineIssueDate(bills.getIssueDate());
+		//签单地点
+		deadlineVO.setIssueAtId(bills.getIssueAtId());
+		deadlineVO.setIssueAt(bills.getIssueAt());
+		deadlineVO.setDeadlineIssueAtId(bills.getIssueAtId());
+		deadlineVO.setDeadlineIssueAt(bills.getIssueAt());
+		//货物描述
+		deadlineVO.setCommodityDescr(bills.getCommodityDescr());
+		deadlineVO.setDeadlineCommodityDescr(bills.getCommodityDescr());
+		//唛头
+		deadlineVO.setMarks(bills.getMarks());
+		deadlineVO.setDeadlineMarks(bills.getMarks());
+		//包装单位
+		deadlineVO.setPackingUnitId(bills.getPackingUnitId());
+		deadlineVO.setPackingUnit(bills.getPackingUnit());
+		deadlineVO.setDeadlinePackingUnitId(bills.getPackingUnitId());
+		deadlineVO.setDeadlinePackingUnit(bills.getPackingUnit());
+		//件数
+		deadlineVO.setQuantity(bills.getQuantity());
+		deadlineVO.setDeadlineQuantity(bills.getQuantity());
+		//毛重
+		deadlineVO.setGrossWeight(bills.getGrossWeight());
+		deadlineVO.setDeadlineGrossWeight(bills.getGrossWeight());
+		//体积
+		deadlineVO.setMeasurement(bills.getMeasurement());
+		deadlineVO.setDeadlineMeasurement(bills.getMeasurement());
+		//国外代理提单描述
+		deadlineVO.setForeignAgencyDetails(bills.getForeignAgencyDetails());
+		deadlineVO.setDeadlineForeignAgencyDetails(bills.getForeignAgencyDetails());
+		//截单时间
+		deadlineVO.setCyTrailerTime(bills.getCyTrailerTime());
+		deadlineVO.setDeadlineCyTrailerTime(bills.getCyTrailerTime());
+		List<DeadlineContainers> deadlineContainersList = new ArrayList<>();
+		if (!containersList.isEmpty()) {
+			for (Containers item : containersList) {
+				DeadlineContainers deadlineContainers = new DeadlineContainers();
+				deadlineContainers.setCntrNo(item.getCntrNo());
+				deadlineContainers.setSealNo(item.getSealNo());
+				deadlineContainers.setQuantity(item.getQuantity());
+				deadlineContainers.setGrossWeight(item.getGrossWeight());
+				deadlineContainers.setMeasurement(item.getMeasurement());
+				deadlineContainers.setVgmWeight(item.getVgmWeight());
+				if (ObjectUtils.isNotNull(item.getTare())) {
+					deadlineContainers.setTare(item.getTare().toString());
+				}
+				deadlineContainers.setDeadlineCntrNo(item.getCntrNo());
+				deadlineContainers.setDeadlineSealNo(item.getSealNo());
+				deadlineContainers.setDeadlineQuantity(item.getQuantity());
+				deadlineContainers.setDeadlineGrossWeight(item.getGrossWeight());
+				deadlineContainers.setDeadlineMeasurement(item.getMeasurement());
+				deadlineContainers.setDeadlineVgmWeight(item.getVgmWeight());
+				deadlineContainers.setDeadlineTare(item.getCntrNo());
+				deadlineContainers.setSrcItemId(item.getId());
+				deadlineContainersList.add(deadlineContainers);
+			}
+		}
+		deadlineVO.setDeadlineContainersList(deadlineContainersList);
+		return deadlineVO;
+	}
+
+}

+ 1 - 21
blade-service/blade-los/src/main/java/org/springblade/los/check/controller/AuditProecessController.java

@@ -234,27 +234,7 @@ public class AuditProecessController extends BladeController {
 		if (StringUtils.isBlank(proecess.getCheckType())) {
 			throw new SecurityException("审核失败,未填写审批类型");
 		}
-		if ("HYCK-DJ".equals(proecess.getCheckType()) || "HYJK-DJ".equals(proecess.getCheckType())|| "KHTS".equals(proecess.getCheckType())) {
-			auditProecessService.losBillsCheck(auditProecess);
-		} else if ("HYCK-FFSQ".equals(proecess.getCheckType())) {
-			auditProecessService.losStlBillsCheck(auditProecess);
-		} else if ("HYCK-FPSQ".equals(proecess.getCheckType())) {
-			auditProecessService.losFinInvoicesCheck(auditProecess);
-		} else if ("sea-approve".equals(proecess.getCheckType()) || "sia-approve".equals(proecess.getCheckType())) {
-			auditProecessService.amendsCheck(auditProecess);
-		} else if ("HXCB_SOC".equals(proecess.getCheckType()) || "HXCB_COC".equals(proecess.getCheckType())) {
-			auditProecessService.routeCostCheck(auditProecess);
-		} else if ("FYSQ".equals(proecess.getCheckType()) || "FYSQ-C".equals(proecess.getCheckType())) {
-			auditProecessService.pleaseVerifyCostCheck(auditProecess);
-		}else if ("FY-SQXG".equals(proecess.getCheckType()) || "FY-SQSC".equals(proecess.getCheckType())) {
-			auditProecessService.applyUpdateFee(auditProecess);
-		}else if ("BJZX".equals(proecess.getCheckType())) {
-			auditProecessService.checkMktSlot(auditProecess);
-		}else if ("YYFY".equals(proecess.getCheckType())) {
-			auditProecessService.checkOperatingExpenses(auditProecess);
-		}else if ("CGDX".equals(proecess.getCheckType())) {
-			auditProecessService.checkTradingBox(auditProecess);
-		}
+		auditProecessService.check(auditProecess);
 		return R.data(auditProecess);
 	}
 

+ 1 - 26
blade-service/blade-los/src/main/java/org/springblade/los/check/service/IAuditProecessService.java

@@ -49,31 +49,6 @@ public interface IAuditProecessService extends IService<LosAuditProecess> {
     R deteleBySrcBillId(Long billId);
 
 	void deteleByBillIdOrGrade(Long billId, Integer times);
-	/**
-	 * 海运出口单据审核
-	 * @param auditProecess
-	 */
-	void losBillsCheck(LosAuditProecess auditProecess);
-
-	/**
-	 * 付费申请
-	 * @param auditProecess
-	 */
-	void losStlBillsCheck(LosAuditProecess auditProecess);
-
-	void losFinInvoicesCheck(LosAuditProecess auditProecess);
-
-    void amendsCheck(LosAuditProecess auditProecess);
-
-	void routeCostCheck(LosAuditProecess auditProecess);
-
-	void pleaseVerifyCostCheck(LosAuditProecess auditProecess);
-
-	void applyUpdateFee(LosAuditProecess auditProecess);
-
-	void checkMktSlot(LosAuditProecess auditProecess);
-
-	void checkOperatingExpenses(LosAuditProecess auditProecess);
 
-	void checkTradingBox(LosAuditProecess auditProecess);
+	void check(LosAuditProecess auditProecess);
 }

File diff suppressed because it is too large
+ 203 - 484
blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java


+ 4 - 1
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/controller/FeeCenterItemsController.java

@@ -70,12 +70,15 @@ public class FeeCenterItemsController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入feeCenterItems")
 	public R<List<FeeCenterItems>> list(FeeCenterItems feeCenterItems) {
+		if (ObjectUtils.isNotNull(feeCenterItems.getCntrNo())){
+			feeCenterItems.setCntrNo(feeCenterItems.getCntrNo().replaceAll(" ",","));
+		}
 		LambdaQueryWrapper<FeeCenterItems> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 		lambdaQueryWrapper.eq(FeeCenterItems::getTenantId, AuthUtil.getTenantId())
 			.eq(FeeCenterItems::getIsDeleted, 0)
 			.eq(FeeCenterItems::getPid, feeCenterItems.getPid())
 			.eq(FeeCenterItems::getFeeType, feeCenterItems.getFeeType())
-			.eq(ObjectUtils.isNotNull(feeCenterItems.getCntrNo()),FeeCenterItems::getCntrNo, feeCenterItems.getCntrNo())
+			.apply(ObjectUtils.isNotNull(feeCenterItems.getCntrNo()),"find_in_set(cntr_no,'"+feeCenterItems.getCntrNo()+"')")
 			.apply(ObjectUtils.isNotNull(feeCenterItems.getDate()),"DATE_FORMAT(account_date,'%Y-%m') = '" + feeCenterItems.getDate() + "'")
 			.orderByDesc(FeeCenterItems::getAccountDate);
 		List<FeeCenterItems> pages = feeCenterItemsService.list(lambdaQueryWrapper);

+ 1 - 1
blade-service/blade-los/src/main/java/org/springblade/los/finance/invoices/service/impl/FinInvoicesServiceImpl.java

@@ -2521,7 +2521,7 @@ public class FinInvoicesServiceImpl extends ServiceImpl<FinInvoicesMapper, FinIn
 				finStlBillsItems.setCurrentStlAmount(item.getCurrentAmount());
 				finStlBillsItems.setCurrentStlAmountLoc(item.getCurrentAmount().multiply(item.getExrate()).setScale(2, RoundingMode.HALF_UP));
 				finStlBillsItems.setItemType("STL");
-				finStlBillsItems.setCurrentStlExrate(item.getCurrentExrate());
+				finStlBillsItems.setCurrentStlExrate(finStlBillsItems.getExrate());
 				finStlBillsItemsMapper.insert(finStlBillsItems);
 				finStlBillsItemsList.add(finStlBillsItems);
 				item.setUpdateUser(AuthUtil.getUserId());

Some files were not shown because too many files changed in this diff