From f80f9983ecc2e8942b5d6fa3b85dd7f4aed147aa Mon Sep 17 00:00:00 2001
From: aike <17730485278@139.com>
Date: Fri, 12 Dec 2025 10:42:18 +0800
Subject: [PATCH 1/5] =?UTF-8?q?demand:=20=20=20=20tms-=E8=BF=90=E8=BE=93?=
=?UTF-8?q?=E7=AE=A1=E7=90=86-=E8=B4=A7=E7=89=A9=E7=BB=84=E6=89=B9?=
=?UTF-8?q?=E6=AC=A1-=E7=BB=84=E6=89=B9=E6=AC=A1=E9=AA=8C=E9=87=8D?=
=?UTF-8?q?=E8=A7=84=E5=88=99=E5=A2=9E=E5=8A=A0=E6=A0=B9=E6=8D=AE=E6=8F=90?=
=?UTF-8?q?=E5=8D=95=E5=8F=B7=E9=AA=8C=E9=87=8D=E8=A7=84=E5=88=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml | 3 +++
1 file changed, 3 insertions(+)
diff --git a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml
index 72751746b..f29693505 100644
--- a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml
@@ -333,6 +333,9 @@
and start_site_code = #{startSiteCode}
and next_site_code = #{nextSiteCode}
and supplier_code=#{supplierCode}
+
+ and car_no = #{carNo}
+
and batch_no in (select batch_no from emis_tms_site_batch_dtl where del_flag='0'
and FIND_IN_SET(`bill_code`
, #{params.billCode}) )
From 7de119b530e4e2e2e19da2043ef8e5b1f585cbad Mon Sep 17 00:00:00 2001
From: aike <17730485278@139.com>
Date: Fri, 12 Dec 2025 11:02:50 +0800
Subject: [PATCH 2/5] =?UTF-8?q?demand:=20=20=20=20tms-=E8=BF=90=E8=BE=93?=
=?UTF-8?q?=E7=AE=A1=E7=90=86-=E8=B4=A7=E7=89=A9=E7=BB=84=E6=89=B9?=
=?UTF-8?q?=E6=AC=A1-=E6=96=B0=E5=A2=9E/=E4=BF=AE=E6=94=B9=E7=BB=84?=
=?UTF-8?q?=E6=89=B9=E6=AC=A1=E6=A0=A1=E9=AA=8C=E4=BB=B6=E6=95=B0=E3=80=81?=
=?UTF-8?q?=E9=87=8D=E9=87=8F=E4=BD=93=E7=A7=AF=E6=97=B6=E5=8F=AA=E6=A0=A1?=
=?UTF-8?q?=E9=AA=8C=E8=BF=90=E8=BE=93=E5=8F=B7=E7=9B=B8=E5=90=8C=E7=9A=84?=
=?UTF-8?q?=20=20tms-=E8=BF=90=E8=BE=93=E7=AE=A1=E7=90=86-=E8=B4=A7?=
=?UTF-8?q?=E7=89=A9=E7=BB=84=E6=89=B9=E6=AC=A1-=E6=9F=A5=E8=AF=A2?=
=?UTF-8?q?=E6=89=B9=E6=AC=A1=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3-?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=BF=90=E5=8D=95=E5=89=A9=E4=BD=99=E4=BB=B6?=
=?UTF-8?q?=E6=95=B0=E3=80=81=E9=87=8D=E9=87=8F=E3=80=81=E4=BD=93=E7=A7=AF?=
=?UTF-8?q?=E6=97=B6=E5=8F=AA=E6=9F=A5=E8=AF=A2=E8=BF=90=E8=BE=93=E5=8F=B7?=
=?UTF-8?q?=E7=9B=B8=E5=90=8C=E7=9A=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../emis/mapper/EmisTmsSiteBatchMapper.java | 37 ++++++++++---------
.../service/IEmisTmsSiteBatchService.java | 6 ++-
.../impl/EmisTmsSiteBatchDtlServiceImpl.java | 23 +++++++-----
.../impl/EmisTmsSiteBatchServiceImpl.java | 5 ++-
.../mapper/EmisTmsSiteBatchMapper.xml | 3 ++
5 files changed, 44 insertions(+), 30 deletions(-)
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMapper.java
index fead43f6e..b5a8a5d18 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMapper.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMapper.java
@@ -1,10 +1,10 @@
-/**
+/**
* @Project: emis
* @Title: EmisTmsSiteBatchMapper.java
* @author linfso
* @date 2024-03-01 08:54:56
* @Copyright: ShangHai Doitinfo 2022 All rights reserved.
- * @version v1.0
+ * @version v1.0
* @Description:
一级网点TMS组批次 Mapper 接口
* Warning : This file is generate by ai tools,don't edit!!!
*/
@@ -29,13 +29,13 @@ public interface EmisTmsSiteBatchMapper extends BaseMapper
/**
* 主键查询
* @param id
- * @return
+ * @return
*/
public EmisTmsSiteBatch selectEmisTmsSiteBatchById(Long id);
/**
* 主键查询(包含明细和装载信息)
- *
+ *
* @param id
* @return
*/
@@ -48,8 +48,8 @@ public interface EmisTmsSiteBatchMapper extends BaseMapper
/**
* 查询列表
- *
- * @param emisTmsSiteBatch
+ *
+ * @param emisTmsSiteBatch
* @return 集合
*/
public List selectEmisTmsSiteBatchList(EmisTmsSiteBatch emisTmsSiteBatch);
@@ -64,25 +64,25 @@ public interface EmisTmsSiteBatchMapper extends BaseMapper
public List selectWaitDoProfitList(EmisTmsSiteBatch emisTmsSiteBatch);
/**
- * 新增
- *
+ * 新增
+ *
* @param emisTmsSiteBatch
- * @return
+ * @return
*/
public int insertEmisTmsSiteBatch(EmisTmsSiteBatch emisTmsSiteBatch);
/**
* 修改
- *
- * @param emisTmsSiteBatch
- * @return
+ *
+ * @param emisTmsSiteBatch
+ * @return
*/
@DataAuditLog(operateType= OperateType.UPDATE,serviceClass= EmisTmsSiteBatchServiceImpl.class)
public int updateEmisTmsSiteBatch(EmisTmsSiteBatch emisTmsSiteBatch);
/**
* 删除
- *
+ *
* @param id 主键
* @return 结果
*/
@@ -90,7 +90,7 @@ public interface EmisTmsSiteBatchMapper extends BaseMapper
/**
* 批量删除
- *
+ *
* @param ids 需要删除的数据主键集合
* @return 结果
*/
@@ -119,7 +119,7 @@ public interface EmisTmsSiteBatchMapper extends BaseMapper
/**
* 根据运单号列表查询组批次信息
- *
+ *
* @param billCodes 运单号列表
* @return 组批次信息列表
*/
@@ -130,13 +130,16 @@ public interface EmisTmsSiteBatchMapper extends BaseMapper
*
* @param startSiteCode 起始网点编码
* @param nextSiteCode 下一网点编码
+ * @param carNo 运输号
* @param billCode 运单号
* @param id
* @return TMS组批次列表
*/
- List selectTmsSiteBatchBySiteAndBillCode(@Param("startSiteCode") String startSiteCode,
+ List selectTmsSiteBatchBySiteAndBillCode(
+ @Param("startSiteCode") String startSiteCode,
@Param("nextSiteCode") String nextSiteCode,
- @Param("billCode") String billCode, @Param("id")Long id);
+ @Param("carNo") String carNo,
+ @Param("billCode") String billCode, @Param("id") Long id);
/**
* 验重
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsSiteBatchService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsSiteBatchService.java
index 83bdbbc98..d33f7e2c7 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsSiteBatchService.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTmsSiteBatchService.java
@@ -46,12 +46,14 @@ public interface IEmisTmsSiteBatchService extends IDataAuditService
*
* @param startSiteCode 起始网点编码
* @param nextSiteCode 下一网点编码
+ * @param carNo
* @param billCode 运单号
* @param id
* @return TMS组批次列表
*/
- public List selectTmsSiteBatchBySiteAndBillCode(String startSiteCode, String nextSiteCode,
- String billCode, Long id);
+ public List selectTmsSiteBatchBySiteAndBillCode(
+ String startSiteCode, String nextSiteCode,
+ String carNo, String billCode, Long id);
/**
* 查询一级网点TMS组批次列表
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchDtlServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchDtlServiceImpl.java
index 08bb15d76..6e028d112 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchDtlServiceImpl.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchDtlServiceImpl.java
@@ -1,10 +1,10 @@
-/**
+/**
* @Project: emis
* @Title: EmisTmsSiteBatchDtlServiceImpl.java
* @author linfso
* @date 2024-03-01 08:54:57
* @Copyright: ShangHai Duta 2022 All rights reserved.
-* @version v1.0
+* @version v1.0
* @Description: 一级网点TMS组批次明细 实体类
*/
@@ -34,7 +34,7 @@ import com.xdadan.erp.emis.service.IEmisTmsSiteBatchDtlService;
/**
* 一级网点TMS组批次明细Service业务层处理
- *
+ *
* @author linfso
* @date 2024-03-01 08:54:57
*/
@@ -57,7 +57,7 @@ public class EmisTmsSiteBatchDtlServiceImpl implements IEmisTmsSiteBatchDtlServi
/**
* 查询一级网点TMS组批次明细
- *
+ *
* @param id 一级网点TMS组批次明细主键
* @return 一级网点TMS组批次明细
*/
@@ -68,7 +68,7 @@ public class EmisTmsSiteBatchDtlServiceImpl implements IEmisTmsSiteBatchDtlServi
/**
* 查询一级网点TMS组批次明细列表
- *
+ *
* @param emisTmsSiteBatchDtl 一级网点TMS组批次明细
* @return 一级网点TMS组批次明细
*/
@@ -93,7 +93,7 @@ public class EmisTmsSiteBatchDtlServiceImpl implements IEmisTmsSiteBatchDtlServi
/**
* 新增一级网点TMS组批次明细
- *
+ *
* @param emisTmsSiteBatchDtl 一级网点TMS组批次明细
* @return 结果
*/
@@ -107,7 +107,7 @@ public class EmisTmsSiteBatchDtlServiceImpl implements IEmisTmsSiteBatchDtlServi
/**
* 修改一级网点TMS组批次明细
- *
+ *
* @param emisTmsSiteBatchDtl 一级网点TMS组批次明细
* @return 结果
*/
@@ -118,7 +118,7 @@ public class EmisTmsSiteBatchDtlServiceImpl implements IEmisTmsSiteBatchDtlServi
/**
* 批量删除一级网点TMS组批次明细
- *
+ *
* @param ids 需要删除的一级网点TMS组批次明细主键
* @return 结果
*/
@@ -129,7 +129,7 @@ public class EmisTmsSiteBatchDtlServiceImpl implements IEmisTmsSiteBatchDtlServi
/**
* 删除一级网点TMS组批次明细信息
- *
+ *
* @param id 一级网点TMS组批次明细主键
* @return 结果
*/
@@ -149,6 +149,7 @@ public class EmisTmsSiteBatchDtlServiceImpl implements IEmisTmsSiteBatchDtlServi
String batchNo = emisTmsSiteBatchDtl.getBatchNo();
String startSiteCode = (String) emisTmsSiteBatchDtl.getParams().get("startSiteCode");
String nextSiteCode = (String) emisTmsSiteBatchDtl.getParams().get("nextSiteCode");
+ String carNo = (String) emisTmsSiteBatchDtl.getParams().get("carNo");
String supplierCode = (String) emisTmsSiteBatchDtl.getParams().get("supplierCode");
// 参数校验
@@ -161,6 +162,9 @@ public class EmisTmsSiteBatchDtlServiceImpl implements IEmisTmsSiteBatchDtlServi
if (StringUtils.isBlank(nextSiteCode)) {
throw new EmisBizError(EmisBizErrorType.FAIL, "下一网点编码不能为空");
}
+ if (StringUtils.isBlank(carNo)) {
+ throw new EmisBizError(EmisBizErrorType.FAIL, "运输号不能为空");
+ }
// 查询运单信息
EmisWaybill emisWaybill = emisWaybillMapper.selectEmisWaybillByBillCode(billCode);
@@ -200,6 +204,7 @@ public class EmisTmsSiteBatchDtlServiceImpl implements IEmisTmsSiteBatchDtlServi
List existingBatches = emisTmsSiteBatchMapper.selectTmsSiteBatchBySiteAndBillCode(
startSiteCode,
nextSiteCode,
+ carNo,
billCode,
null);
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchServiceImpl.java
index d826c64f1..200aafecc 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchServiceImpl.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchServiceImpl.java
@@ -111,8 +111,8 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
@Override
public List selectTmsSiteBatchBySiteAndBillCode(String startSiteCode, String nextSiteCode,
- String billCode, Long id) {
- return emisTmsSiteBatchMapper.selectTmsSiteBatchBySiteAndBillCode(startSiteCode, nextSiteCode, billCode, id);
+ String carNo, String billCode, Long id) {
+ return emisTmsSiteBatchMapper.selectTmsSiteBatchBySiteAndBillCode(startSiteCode, nextSiteCode, carNo, billCode, id);
}
/**
@@ -209,6 +209,7 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
List existingBatches = selectTmsSiteBatchBySiteAndBillCode(
oldSiteBatch.getStartSiteCode(),
oldSiteBatch.getNextSiteCode(),
+ oldSiteBatch.getCarNo(),
itemDtl.getBillCode(), itemDtl.getId());
if (itemDtl.getId() != null) {
existingBatches = existingBatches.stream().filter(i -> !itemDtl.getBatchNo().equals(i.getBatchNo()))
diff --git a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml
index f29693505..12b5b5821 100644
--- a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml
@@ -577,6 +577,9 @@
left join emis_waybill w on d.bill_code = w.bill_code and w.del_flag = '0'
where b.start_site_code = #{startSiteCode}
and b.next_site_code = #{nextSiteCode}
+
+ and b.car_no = #{carNo}
+
and d.bill_code = #{billCode}
and b.del_flag = '0'
and d.del_flag = '0'
From 4d2ac65d80639ca29eaf3752602daf534b7b2a7f Mon Sep 17 00:00:00 2001
From: aike <17730485278@139.com>
Date: Fri, 12 Dec 2025 11:11:07 +0800
Subject: [PATCH 3/5] =?UTF-8?q?demand:=20=20=20=20tms-=E8=BF=90=E8=BE=93?=
=?UTF-8?q?=E7=AE=A1=E7=90=86-=E8=B4=A7=E7=89=A9=E7=BB=84=E6=89=B9?=
=?UTF-8?q?=E6=AC=A1-=E6=96=B0=E5=A2=9E/=E4=BF=AE=E6=94=B9=E7=BB=84?=
=?UTF-8?q?=E6=89=B9=E6=AC=A1=E6=A0=A1=E9=AA=8C=E4=BB=B6=E6=95=B0=E3=80=81?=
=?UTF-8?q?=E9=87=8D=E9=87=8F=E4=BD=93=E7=A7=AF=E6=97=B6=E5=8F=AA=E6=A0=A1?=
=?UTF-8?q?=E9=AA=8C=E8=BF=90=E8=BE=93=E5=8F=B7=E7=9B=B8=E5=90=8C=E7=9A=84?=
=?UTF-8?q?=20=20tms-=E8=BF=90=E8=BE=93=E7=AE=A1=E7=90=86-=E8=B4=A7?=
=?UTF-8?q?=E7=89=A9=E7=BB=84=E6=89=B9=E6=AC=A1-=E6=9F=A5=E8=AF=A2?=
=?UTF-8?q?=E6=89=B9=E6=AC=A1=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3-?=
=?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=BF=90=E5=8D=95=E5=89=A9=E4=BD=99=E4=BB=B6?=
=?UTF-8?q?=E6=95=B0=E3=80=81=E9=87=8D=E9=87=8F=E3=80=81=E4=BD=93=E7=A7=AF?=
=?UTF-8?q?=E6=97=B6=E5=8F=AA=E6=9F=A5=E8=AF=A2=E8=BF=90=E8=BE=93=E5=8F=B7?=
=?UTF-8?q?=E7=9B=B8=E5=90=8C=E7=9A=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml
index 12b5b5821..daa95c62b 100644
--- a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMapper.xml
@@ -583,7 +583,7 @@
and d.bill_code = #{billCode}
and b.del_flag = '0'
and d.del_flag = '0'
- and d.waybill_batch_status != '2'
+-- and d.waybill_batch_status != '2'
AND d.id != #{id}
group by b.id, b.batch_no, b.batch_name, b.batch_date, b.supplier_code, b.trans_line_type,
b.product_type, b.batch_type, b.trans_type, b.start_site_code, b.send_country,
From cbcae37f235b2c5256aaa3aa23218b593221c19b Mon Sep 17 00:00:00 2001
From: aike <17730485278@139.com>
Date: Fri, 12 Dec 2025 13:13:24 +0800
Subject: [PATCH 4/5] =?UTF-8?q?demand:=20=20=20=20TMS-=E5=AE=A2=E6=88=B7?=
=?UTF-8?q?=E8=B4=A6=E5=8D=95=E7=AE=A1=E7=90=86-=E4=B8=9A=E5=8A=A1?=
=?UTF-8?q?=E8=B4=A6=E5=8D=95=E7=A1=AE=E8=AE=A4-=E6=B5=B7=E8=BF=90?=
=?UTF-8?q?=E8=B4=A6=E5=8D=95=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../impl/EmisSettleBillServiceImpl.java | 103 ++++++++++++++++--
.../mapper/EmisSettleSubBillFeeitemMapper.xml | 4 +-
2 files changed, 96 insertions(+), 11 deletions(-)
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java
index 6df1c0373..eb3c622c5 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java
@@ -21,8 +21,13 @@ import cn.hutool.core.map.MapUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.support.ExcelTypeEnum;
+import com.alibaba.excel.write.handler.AbstractCellWriteHandler;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.metadata.Head;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.WriteTable;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.metadata.style.WriteFont;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
@@ -46,8 +51,11 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.io.IOUtils;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.apache.poi.ss.usermodel.FillPatternType;
+import org.apache.poi.ss.usermodel.Cell;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xdadan.erp.emis.service.IEmisSettleBillService;
@@ -1245,6 +1253,8 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
// 结算对象
String settlement = Optional.ofNullable(list.get(0)).map(e -> StringUtil.isNotBlank(e.getCustName()) ? e.getCustName() : e.getCustomerName()).orElse("");
+ settlement = Optional.ofNullable(settlement).orElse("").replace("ST", "");
+ final String settlementDisplay = settlement;
// 根据运单号查询运单详情
List emisWaybills = emisSettleSubBillFeeitemMapper
@@ -1303,36 +1313,106 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
ExcelWriter excelWriter = EasyExcel.write(outputStream).excelType(ExcelTypeEnum.XLSX).build();
List> contentHeader = this.buildHeader();
- HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(null,
+ WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+ headWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+ headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+
+ AbstractCellWriteHandler headerStyleHandler = new AbstractCellWriteHandler() {
+ @Override
+ public void afterCellDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder,
+ List> cellDataList, Cell cell, Head head,
+ Integer relativeRowIndex, Boolean isHead) {
+ if (!Boolean.TRUE.equals(isHead)) {
+ return;
+ }
+ int rowIndex = cell.getRowIndex();
+ WriteCellStyle style = cellDataList.get(0).getOrCreateStyle();
+ WriteFont font = style.getWriteFont();
+ if (font == null) {
+ font = new WriteFont();
+ style.setWriteFont(font);
+ }
+ switch (rowIndex) {
+ case 0:
+ font.setFontHeightInPoints((short) 8);
+ font.setBold(Boolean.FALSE);
+ font.setColor(IndexedColors.BLACK.getIndex());
+ style.setHorizontalAlignment(HorizontalAlignment.LEFT);
+ break;
+ case 1:
+ font.setFontHeightInPoints((short) 14);
+ font.setBold(Boolean.FALSE);
+ font.setColor(IndexedColors.BLACK.getIndex());
+ style.setHorizontalAlignment(HorizontalAlignment.CENTER);
+ break;
+ case 3:
+ font.setFontHeightInPoints((short) 12);
+ font.setBold(Boolean.TRUE);
+ font.setColor(IndexedColors.RED.getIndex());
+ style.setFillForegroundColor(IndexedColors.WHITE.getIndex());
+ style.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
+ style.setHorizontalAlignment(HorizontalAlignment.CENTER);
+ break;
+ default:
+ break;
+ }
+ cellDataList.get(0).setWriteCellStyle(style);
+ }
+ };
+
+ HorizontalCellStyleStrategy horizontalCellStyleStrategy = new HorizontalCellStyleStrategy(headWriteCellStyle,
contentWriteCellStyle);
+ // 样式:日期行单独,后续保持原样
+ WriteCellStyle dateContentStyle = new WriteCellStyle();
+ dateContentStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+ dateContentStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);
+ dateContentStyle.setBorderLeft(BorderStyle.THIN);
+ dateContentStyle.setBorderRight(BorderStyle.THIN);
+ dateContentStyle.setBorderTop(BorderStyle.THIN);
+ dateContentStyle.setBorderBottom(BorderStyle.THIN);
+ WriteFont dateFont = new WriteFont();
+ dateFont.setFontName("微软雅黑");
+ dateFont.setFontHeightInPoints((short) 8);
+ dateContentStyle.setWriteFont(dateFont);
+
+ // 日期行:单独写入并使用独立样式,按列头数量合并
+ WriteSheet dateSheet = EasyExcel.writerSheet("sheet").needHead(Boolean.FALSE)
+ .registerWriteHandler(new HorizontalCellStyleStrategy(null, dateContentStyle))
+ .registerWriteHandler(headerStyleHandler)
+ .registerWriteHandler(new CellStyleStrategy(new WriteCellStyle())).build();
+ List> headerDate = contentHeader.stream()
+ .map(item -> Collections.singletonList("出账日期:" + date))
+ .collect(Collectors.toList());
+ WriteTable tDate = EasyExcel.writerTable(0).needHead(Boolean.TRUE).head(headerDate).build();
+ excelWriter.write((Collection>) null, dateSheet, tDate);
+
// 构建大表头
WriteSheet writeSheet1 = EasyExcel.writerSheet("sheet").needHead(Boolean.FALSE)
.registerWriteHandler(horizontalCellStyleStrategy)
+ .registerWriteHandler(headerStyleHandler)
.registerWriteHandler(new CellStyleStrategy(new WriteCellStyle())).build();
+
List> header1 = contentHeader.stream().map(item -> Collections.singletonList("探路供应链(上海)"))
.collect(Collectors.toList());
- WriteTable t1 = EasyExcel.writerTable(0).needHead(Boolean.TRUE).head(header1).build();
+ WriteTable t1 = EasyExcel.writerTable(1).needHead(Boolean.TRUE).head(header1).build();
excelWriter.write((Collection>) null, writeSheet1, t1);
List> header2 = contentHeader.stream()
.map(item -> Collections.singletonList(year + "年" + month + "月海运费确认书"))
.collect(Collectors.toList());
- WriteTable t2 = EasyExcel.writerTable(1).needHead(Boolean.TRUE).head(header2).build();
+ WriteTable t2 = EasyExcel.writerTable(2).needHead(Boolean.TRUE).head(header2).build();
excelWriter.write((Collection>) null, writeSheet1, t2);
List> header3 = contentHeader.stream()
- .map(item -> Collections.singletonList("结算对象:" + settlement))
+ .map(item -> Collections.singletonList("结算对象:" + settlementDisplay))
.collect(Collectors.toList());
- header3.set(9, Collections.singletonList("出账日期:" + date));
- header3.set(10, Collections.singletonList("出账日期:" + date));
- header3.set(11, Collections.singletonList("出账日期:" + date));
- WriteTable t3 = EasyExcel.writerTable(2).needHead(Boolean.TRUE).head(header3).build();
+ WriteTable t3 = EasyExcel.writerTable(3).needHead(Boolean.TRUE).head(header3).build();
excelWriter.write((Collection>) null, writeSheet1, t3);
log.info("Building a large header is success");
List excelKey = emisWaybillMap.keySet().stream().collect(Collectors.toList());
- int num = 3;
+ int num = 4;
for (int i = 0; i < excelKey.size(); i++) {
List> result = new ArrayList<>();
Map subtotalMap = new HashMap<>();
@@ -1341,6 +1421,7 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
List settleSubBillFeeitemList = emisWaybill.getSettleSubBillFeeitemList();
calculateSubtotal(settleSubBillFeeitemList, subtotalMap);
settleSubBillFeeitemList.forEach(item -> {
+ String remark = Optional.ofNullable(item.getRemark()).orElse("");
result.add(Lists.newArrayList(emisWaybill.getLadingBillCode(), emisWaybill.getBillCode(),
emisWaybill.getCompanyCode(), emisWaybill.getDeparturePortName(),
emisWaybill.getDestinationPortName(), emisWaybill.getBoxQuantity(),
@@ -1348,7 +1429,8 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
emisWaybill.getBillWeight().stripTrailingZeros().toPlainString(),
emisWaybill.getTotalVolume().stripTrailingZeros().toPlainString(),
item.getFeeName(), item.getCurrency(),
- item.getBillFee().stripTrailingZeros().toPlainString()));
+ item.getBillFee().stripTrailingZeros().toPlainString(),
+ remark));
});
// 小表头
WriteSheet sheet = EasyExcel.writerSheet("sheet")
@@ -1416,6 +1498,7 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS
header.add(Collections.singletonList("费用名称"));
header.add(Collections.singletonList("币种"));
header.add(Collections.singletonList("金额"));
+ header.add(Collections.singletonList("备注"));
return header;
}
diff --git a/emis-biz/src/main/resources/mapper/EmisSettleSubBillFeeitemMapper.xml b/emis-biz/src/main/resources/mapper/EmisSettleSubBillFeeitemMapper.xml
index 48f174587..8314723a2 100644
--- a/emis-biz/src/main/resources/mapper/EmisSettleSubBillFeeitemMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisSettleSubBillFeeitemMapper.xml
@@ -41,6 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+
@@ -66,7 +67,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
b.bill_fee,
b.orig_fee,
b.currency,
- b.order_num
+ b.order_num,
+ b.remark
from emis_waybill a
left join emis_settle_sub_bill_feeitem b on a.bill_code = b.bill_code and b.del_flag = '0'
left join emis_site seaway1 on a.departure_port=seaway1.site_code and seaway1.del_flag='0'
From e332b01163c74191c9e0fcbbc2f9bb0b117679c0 Mon Sep 17 00:00:00 2001
From: aike <17730485278@139.com>
Date: Fri, 12 Dec 2025 13:35:01 +0800
Subject: [PATCH 5/5] =?UTF-8?q?demand:=20=20=20=20=E5=88=86=E6=89=B9?=
=?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../impl/EmisTmsSiteBatchDtlServiceImpl.java | 32 +++++++++----------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchDtlServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchDtlServiceImpl.java
index 6e028d112..01083420f 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchDtlServiceImpl.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchDtlServiceImpl.java
@@ -234,22 +234,22 @@ public class EmisTmsSiteBatchDtlServiceImpl implements IEmisTmsSiteBatchDtlServi
boolean hasMatchingSupplier = existingBatches.stream()
.anyMatch(batch -> supplierCodeList.contains(batch.getSupplierCode()));
- if (hasMatchingSupplier) {
- // 找到匹配的批次,检查重量、体积、件数是否一致
- EmisTmsSiteBatch matchingBatch = existingBatches.stream()
- .filter(batch -> supplierCodeList.contains(batch.getSupplierCode()))
- .findFirst()
- .orElse(null);
- if (Objects.nonNull(matchingBatch)) {
- result.setBatchParcelQty(
- matchingBatch.getTotalParcelQty() != null ? matchingBatch.getTotalParcelQty() : 0);
- result.setBatchWeight(
- matchingBatch.getTotalWeight() != null ? matchingBatch.getTotalWeight() : BigDecimal.ZERO);
- result.setBatchVolume(
- matchingBatch.getTotalVolume() != null ? matchingBatch.getTotalVolume() : BigDecimal.ZERO);
- return result;
- }
- }
+// if (hasMatchingSupplier) {
+// // 找到匹配的批次,检查重量、体积、件数是否一致
+// EmisTmsSiteBatch matchingBatch = existingBatches.stream()
+// .filter(batch -> supplierCodeList.contains(batch.getSupplierCode()))
+// .findFirst()
+// .orElse(null);
+// if (Objects.nonNull(matchingBatch)) {
+// result.setBatchParcelQty(
+// matchingBatch.getTotalParcelQty() != null ? matchingBatch.getTotalParcelQty() : 0);
+// result.setBatchWeight(
+// matchingBatch.getTotalWeight() != null ? matchingBatch.getTotalWeight() : BigDecimal.ZERO);
+// result.setBatchVolume(
+// matchingBatch.getTotalVolume() != null ? matchingBatch.getTotalVolume() : BigDecimal.ZERO);
+// return result;
+// }
+// }
}
// 先过滤出包含多个供应商编码的rules