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..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
@@ -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:
运单列表 控制器
*/
@@ -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;
@@ -59,7 +60,7 @@ import com.xdadan.erp.common.enums.BusinessType;
/**
* 运单列表Controller
- *
+ *
* @author linfso
* @date 2024-02-29 08:15:14
*/
@@ -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,4 +1447,82 @@ 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 {
+ // 重新计算预估到达时间
+ 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", "预估到达时间更新成功");
+ 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
+
+
+