From 8225994be5d2868250293e8c585f9fcf27c7416d Mon Sep 17 00:00:00 2001
From: aike <17730485278@139.com>
Date: Tue, 2 Sep 2025 17:45:09 +0800
Subject: [PATCH 1/2] =?UTF-8?q?demand:=20tms-=E8=BF=90=E5=8D=95=E7=AE=A1?=
=?UTF-8?q?=E7=90=86-=E6=96=B0=E5=A2=9E=E6=89=B9=E9=87=8F=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9=E8=BF=90=E5=8D=95=E6=8E=A5=E5=8F=A3-=E6=89=B9?=
=?UTF-8?q?=E9=87=8F=E4=BF=AE=E5=A4=8D=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E9=A2=84=E8=AE=A1=E9=80=81=E8=BE=BE=E6=97=B6=E9=97=B4=E8=AE=A1?=
=?UTF-8?q?=E7=AE=97=E4=B8=8D=E5=87=86=E7=A1=AE=E7=9A=84=E8=BF=90=E5=8D=95?=
=?UTF-8?q?=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
committer: heyu
---
.../erp/web/emis/EmisWaybillController.java | 70 ++++++++++++++++++-
.../erp/emis/mapper/EmisWaybillMapper.java | 8 +++
.../erp/emis/service/IEmisWaybillService.java | 14 +++-
.../service/impl/EmisWaybillServiceImpl.java | 11 ++-
.../resources/mapper/EmisWaybillMapper.xml | 31 ++++++++
5 files changed, 127 insertions(+), 7 deletions(-)
diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java
index 6a931c715..8eeb40ba8 100644
--- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java
+++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java
@@ -1,11 +1,11 @@
-/**
+/**
* @Project: emis
* @Title: EmisWaybillController.java
* @author linfso
* @date 2024-02-29 08:15:14
* @Copyright: ShangHai Duta 2022 All rights reserved.
- * @version v1.0
+ * @version v1.0
* @Description:
运单列表 控制器
*/
@@ -59,7 +59,7 @@ import com.xdadan.erp.common.enums.BusinessType;
/**
* 运单列表Controller
- *
+ *
* @author linfso
* @date 2024-02-29 08:15:14
*/
@@ -1443,4 +1443,68 @@ public class EmisWaybillController extends EmisBaseController
// FileUtil.mkdir(fileUploadDir);
}
+ @Log(title = "批量修改运单", businessType = BusinessType.UPDATE)
+ @PostMapping(value = "/batchResubmitProblemWaybills")
+ public AjaxResult batchResubmitProblemWaybills() {
+ try {
+ // 查询2025-08-01 00:00:00-2025-09-03
+ // 23:59:59未签收,且在emis_waybill_problem_info表内的所有运单信息
+ String beginDate = "2025-08-01 00:00:00";
+ String endDate = "2025-09-03 23:59:59";
+
+ // 构建查询条件
+ EmisWaybill queryWaybill = new EmisWaybill();
+ queryWaybill.getParams().put("beginOrderDate", beginDate);
+ queryWaybill.getParams().put("endOrderDate", endDate);
+ // 未签收条件:bl_sign != '1' 或者 waybill_status != '50'(签收扫描)
+ queryWaybill.getParams().put("notSigned", "1");
+ // 在问题表中的条件
+ queryWaybill.getParams().put("inProblemTable", "1");
+
+ List waybillList = emisWaybillService.selectProblemWaybillsForResubmit(queryWaybill);
+
+ if (waybillList == null || waybillList.isEmpty()) {
+ return AjaxResult.success("没有找到符合条件的运单");
+ }
+
+ JSONObject result = new JSONObject();
+ List successList = new ArrayList<>();
+ List failList = new ArrayList<>();
+
+ for (EmisWaybill waybill : waybillList) {
+ try {
+ // 调用realSubmitOrder方法重新下单
+ emisWaybillService.realSubmitOrder(waybill);
+
+ JSONObject successItem = new JSONObject();
+ successItem.put("billCode", waybill.getBillCode());
+ successItem.put("orderSn", waybill.getOrderSn());
+ successItem.put("message", "重新下单成功");
+ successList.add(successItem);
+
+ } catch (Exception ex) {
+ JSONObject failItem = new JSONObject();
+ failItem.put("billCode", waybill.getBillCode());
+ failItem.put("orderSn", waybill.getOrderSn());
+ failItem.put("message", ex.getMessage());
+ failList.add(failItem);
+
+ log.error("运单{}重新下单失败: {}", waybill.getBillCode(), ex.getMessage());
+ }
+ }
+
+ result.put("totalCount", waybillList.size());
+ result.put("successCount", successList.size());
+ result.put("failCount", failList.size());
+ result.put("successList", successList);
+ result.put("failList", failList);
+
+ return AjaxResult.success("批量重新下单完成", result);
+
+ } catch (Exception ex) {
+ log.error("批量重新下单问题运单失败", ex);
+ return AjaxResult.error("批量重新下单失败: " + ex.getMessage());
+ }
+ }
+
}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java
index eb9a33f96..658b47ae1 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisWaybillMapper.java
@@ -347,4 +347,12 @@ public interface EmisWaybillMapper extends BaseMapper
* @return
*/
List selectHistoryVirtualWaybill(@Param("offset")int offset, @Param("pageSize")int pageSize);
+
+ /**
+ * 查询指定时间范围内未签收且在问题表中的运单信息
+ *
+ * @param emisWaybill 查询条件
+ * @return 运单列表
+ */
+ List selectProblemWaybillsForResubmit(EmisWaybill emisWaybill);
}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java
index 95db1fb89..52ced9b71 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisWaybillService.java
@@ -1,10 +1,10 @@
- /**
+ /**
* @Project: emis
* @Title: EmisWaybillService.java
* @author linfso
* @date 2024-02-29 08:15:14
* @Copyright: ShangHai Duta 2022 All rights reserved.
- * @version v1.0
+ * @version v1.0
* @Description: 运单列表 服务类接口
*/
package com.xdadan.erp.emis.service;
@@ -61,7 +61,7 @@ public interface IEmisWaybillService extends IDataAuditService
/**
* 查询运单列表列表
- *
+ *
* @param emisWaybill 运单列表
* @return 运单列表集合
*/
@@ -312,4 +312,12 @@ public interface IEmisWaybillService extends IDataAuditService
* @param emisWaybills
*/
void handleInputVirtualWaybill(List emisWaybills);
+
+ /**
+ * 查询指定时间范围内未签收且在问题表中的运单信息
+ *
+ * @param emisWaybill 查询条件
+ * @return 运单列表
+ */
+ List selectProblemWaybillsForResubmit(EmisWaybill emisWaybill);
}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java
index c9424c4d0..3b41339ae 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java
@@ -6248,6 +6248,15 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb
}
-
+ /**
+ * 查询指定时间范围内未签收且在问题表中的运单信息
+ *
+ * @param emisWaybill 查询条件
+ * @return 运单列表
+ */
+ @Override
+ public List selectProblemWaybillsForResubmit(EmisWaybill emisWaybill) {
+ return emisWaybillMapper.selectProblemWaybillsForResubmit(emisWaybill);
+ }
}
diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml
index effceae25..a93e0e9b5 100644
--- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml
@@ -3929,4 +3929,35 @@
limit 1
+
+
+
From 5460b3b07197670f74f2da507c31fd878614e799 Mon Sep 17 00:00:00 2001
From: aike <17730485278@139.com>
Date: Tue, 2 Sep 2025 18:12:52 +0800
Subject: [PATCH 2/2] =?UTF-8?q?demand:=20tms-=E8=BF=90=E5=8D=95=E7=AE=A1?=
=?UTF-8?q?=E7=90=86-=E6=96=B0=E5=A2=9E=E6=89=B9=E9=87=8F=E4=BF=AE?=
=?UTF-8?q?=E6=94=B9=E8=BF=90=E5=8D=95=E6=8E=A5=E5=8F=A3-=E6=89=B9?=
=?UTF-8?q?=E9=87=8F=E4=BF=AE=E5=A4=8D=E5=8E=86=E5=8F=B2=E6=95=B0=E6=8D=AE?=
=?UTF-8?q?=E9=A2=84=E8=AE=A1=E9=80=81=E8=BE=BE=E6=97=B6=E9=97=B4=E8=AE=A1?=
=?UTF-8?q?=E7=AE=97=E4=B8=8D=E5=87=86=E7=A1=AE=E7=9A=84=E8=BF=90=E5=8D=95?=
=?UTF-8?q?=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
committer: heyu
---
.../erp/web/emis/EmisWaybillController.java | 34 ++++++++++++++-----
1 file changed, 26 insertions(+), 8 deletions(-)
diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java
index 8eeb40ba8..40b31ba21 100644
--- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java
+++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisWaybillController.java
@@ -33,6 +33,7 @@ import com.xdadan.erp.emis.domain.enumtype.ScanType;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.stat.ScanStatInfoDtl;
import com.xdadan.erp.emis.domain.vo.*;
+import com.xdadan.erp.emis.mapper.EmisWaybillMapper;
import com.xdadan.erp.emis.service.*;
import com.xdadan.erp.emis.service.print.IXddTplPrint;
import com.xdadan.erp.emis.service.print.cpcl.CvtTplToCpcl;
@@ -101,6 +102,9 @@ public class EmisWaybillController extends EmisBaseController
@Autowired
RedissonService redissonService;
+ @Autowired
+ private EmisWaybillMapper emisWaybillMapper;
+
@GetMapping(value = "/checkWaybillIsExists")
public AjaxResult checkWaybillIsExists(String billCode){
@@ -1443,12 +1447,13 @@ public class EmisWaybillController extends EmisBaseController
// FileUtil.mkdir(fileUploadDir);
}
- @Log(title = "批量修改运单", businessType = BusinessType.UPDATE)
+ @Log(title = "批量更新预估到达时间", businessType = BusinessType.UPDATE)
@PostMapping(value = "/batchResubmitProblemWaybills")
public AjaxResult batchResubmitProblemWaybills() {
try {
// 查询2025-08-01 00:00:00-2025-09-03
// 23:59:59未签收,且在emis_waybill_problem_info表内的所有运单信息
+ // 重新计算并更新预估到达时间
String beginDate = "2025-08-01 00:00:00";
String endDate = "2025-09-03 23:59:59";
@@ -1473,13 +1478,26 @@ public class EmisWaybillController extends EmisBaseController
for (EmisWaybill waybill : waybillList) {
try {
- // 调用realSubmitOrder方法重新下单
- emisWaybillService.realSubmitOrder(waybill);
+ // 重新计算预估到达时间
+ Date newEstimateDate = emisBaseService.getEstimateDate(
+ waybill.getSendDate(),
+ waybill.getProductType(),
+ waybill.getSendCountry(),
+ waybill.getReceiveCountry(),
+ 0);
+
+ // 只更新estimateDate字段
+ EmisWaybill updateWaybill = new EmisWaybill();
+ updateWaybill.setId(waybill.getId());
+ updateWaybill.setEstimateDate(newEstimateDate);
+ updateWaybill.preUpdate();
+
+ emisWaybillMapper.updateVirtualWaybill(updateWaybill);
JSONObject successItem = new JSONObject();
successItem.put("billCode", waybill.getBillCode());
successItem.put("orderSn", waybill.getOrderSn());
- successItem.put("message", "重新下单成功");
+ successItem.put("message", "预估到达时间更新成功");
successList.add(successItem);
} catch (Exception ex) {
@@ -1489,7 +1507,7 @@ public class EmisWaybillController extends EmisBaseController
failItem.put("message", ex.getMessage());
failList.add(failItem);
- log.error("运单{}重新下单失败: {}", waybill.getBillCode(), ex.getMessage());
+ log.error("运单{}预估到达时间更新失败: {}", waybill.getBillCode(), ex.getMessage());
}
}
@@ -1499,11 +1517,11 @@ public class EmisWaybillController extends EmisBaseController
result.put("successList", successList);
result.put("failList", failList);
- return AjaxResult.success("批量重新下单完成", result);
+ return AjaxResult.success("批量更新预估到达时间完成", result);
} catch (Exception ex) {
- log.error("批量重新下单问题运单失败", ex);
- return AjaxResult.error("批量重新下单失败: " + ex.getMessage());
+ log.error("批量更新预估到达时间失败", ex);
+ return AjaxResult.error("批量更新预估到达时间失败: " + ex.getMessage());
}
}