From 5b48f25cc96a1d0facd6c93d7933c8402e9e58cd Mon Sep 17 00:00:00 2001
From: aike <17730485278@139.com>
Date: Tue, 5 Aug 2025 10:42:54 +0800
Subject: [PATCH] =?UTF-8?q?demand:=20=20=20=20=E8=BF=90=E5=8D=95=E7=BB=84?=
=?UTF-8?q?=E6=89=B9=E6=AC=A1=E5=88=86=E6=89=B9=E8=AE=BE=E7=BD=AE=E5=88=86?=
=?UTF-8?q?=E6=89=B9=E7=8A=B6=E6=80=81=E5=8C=BA=E5=88=86=20committer:=20he?=
=?UTF-8?q?yu?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../erp/emis/domain/EmisTmsSiteBatchDtl.java | 10 +--
.../mapper/EmisTmsSiteBatchDtlMapper.java | 32 ++++---
.../erp/emis/service/EmisBaseService.java | 3 +-
.../impl/EmisTmsSiteBatchServiceImpl.java | 87 ++++++++++++-------
.../mapper/EmisTmsSiteBatchDtlMapper.xml | 35 ++++++--
5 files changed, 109 insertions(+), 58 deletions(-)
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatchDtl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatchDtl.java
index 4ff17a5f3..8c1f7477c 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatchDtl.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatchDtl.java
@@ -23,9 +23,9 @@ import com.xdadan.erp.common.core.domain.TreeEntity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
+import java.util.List;
import lombok.Data;
-
/**
* @ClassName EmisTmsSiteBatchDtl
* @Description TMS组批次明细
@@ -33,8 +33,7 @@ import lombok.Data;
* @date 2024-06-03 05:44:39
*/
@Data
-public class EmisTmsSiteBatchDtl extends BaseEntity
-{
+public class EmisTmsSiteBatchDtl extends BaseEntity {
private static final long serialVersionUID = 1L;
/* id */
@@ -63,8 +62,9 @@ public class EmisTmsSiteBatchDtl extends BaseEntity
private Integer batchParcelQty;
/* 分批重量 */
private BigDecimal batchWeight;
- /* 运单分批状态 1-已分批 0-未分批,默认为0 */
- private String blBatch;
+ /* 运单分批状态 1-已分批 0-未分批,2-分批完成 默认为0 */
+ private String waybillBatchStatus;
+
// 扩展参数
private EmisWaybill waybillDetail;
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchDtlMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchDtlMapper.java
index 1ff4b802c..7c69d9f7c 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchDtlMapper.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchDtlMapper.java
@@ -18,40 +18,43 @@ import org.apache.ibatis.annotations.Param;
/**
* @ClassName EmisTmsSiteBatchDtlMapper
- * @Description
一级网点TMS组批次明细 Mapper 接口
+ * @Description
+ *
+ * 一级网点TMS组批次明细 Mapper 接口
+ *
* @author linfso
* @date 2024-03-01 08:54:57
*/
-public interface EmisTmsSiteBatchDtlMapper extends BaseMapper
-{
+public interface EmisTmsSiteBatchDtlMapper extends BaseMapper {
/**
* 主键查询
- * @param id
- * @return
+ *
+ * @param id
+ * @return
*/
public EmisTmsSiteBatchDtl selectEmisTmsSiteBatchDtlById(Long id);
/**
* 查询列表
*
- * @param emisTmsSiteBatchDtl
+ * @param emisTmsSiteBatchDtl
* @return 集合
*/
public List selectEmisTmsSiteBatchDtlList(EmisTmsSiteBatchDtl emisTmsSiteBatchDtl);
/**
- * 新增
+ * 新增
*
* @param emisTmsSiteBatchDtl
- * @return
+ * @return
*/
public int insertEmisTmsSiteBatchDtl(EmisTmsSiteBatchDtl emisTmsSiteBatchDtl);
/**
* 修改
*
- * @param emisTmsSiteBatchDtl
- * @return
+ * @param emisTmsSiteBatchDtl
+ * @return
*/
public int updateEmisTmsSiteBatchDtl(EmisTmsSiteBatchDtl emisTmsSiteBatchDtl);
@@ -81,6 +84,7 @@ public interface EmisTmsSiteBatchDtlMapper extends BaseMapper batchNos, @Param("billCode") String billCode);
}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java
index 3597a0562..2aca71776 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java
@@ -5368,7 +5368,8 @@ public class EmisBaseService {
// 构建查询条件:根据运单号和bl_batch=1查询批次详情
EmisTmsSiteBatchDtl queryCondition = new EmisTmsSiteBatchDtl();
queryCondition.setBillCode(emisWaybillSave.getBillCode());
- queryCondition.setBlBatch("1"); // 已分批状态
+ List waybillBatchStatusList = Arrays.asList("1", "2");
+ queryCondition.getParams().put("waybillBatchStatusList",waybillBatchStatusList); // 已分批状态
// 查询批次详情表
List batchDtlList = emisTmsSiteBatchDtlMapper
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 31ca48dbf..dd12d4f06 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
@@ -1,12 +1,12 @@
- /**
- * @Project: emis
- * @Title: EmisTmsSiteBatchServiceImpl.java
- * @author linfso
- * @date 2024-03-01 08:54:56
- * @Copyright: ShangHai Duta 2022 All rights reserved.
- * @version v1.0
- * @Description: 一级网点TMS组批次 实体类
- */
+/**
+* @Project: emis
+* @Title: EmisTmsSiteBatchServiceImpl.java
+* @author linfso
+* @date 2024-03-01 08:54:56
+* @Copyright: ShangHai Duta 2022 All rights reserved.
+* @version v1.0
+* @Description: 一级网点TMS组批次 实体类
+*/
package com.xdadan.erp.emis.service.impl;
@@ -75,7 +75,7 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
*/
@Override
public Object getAuditObjectById(Object id) {
- EmisTmsSiteBatch emisTmsSiteBatch = emisTmsSiteBatchMapper.selectEmisTmsSiteBatchById((Long)id);
+ EmisTmsSiteBatch emisTmsSiteBatch = emisTmsSiteBatchMapper.selectEmisTmsSiteBatchById((Long) id);
return emisTmsSiteBatch;
}
@@ -86,14 +86,12 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
* @return 一级网点TMS组批次
*/
@Override
- public EmisTmsSiteBatch selectEmisTmsSiteBatchById(Long id)
- {
+ public EmisTmsSiteBatch selectEmisTmsSiteBatchById(Long id) {
return emisTmsSiteBatchMapper.selectEmisTmsSiteBatchById(id);
}
@Override
- public List selectTmsSiteBatchBySupplerAndCarNo(String supplierCode,String carNo, Date etd)
- {
+ public List selectTmsSiteBatchBySupplerAndCarNo(String supplierCode, String carNo, Date etd) {
EmisTmsSiteBatch emisTmsSiteBatch = new EmisTmsSiteBatch();
emisTmsSiteBatch.setSupplierCode(supplierCode);
emisTmsSiteBatch.setCarNo(carNo);
@@ -104,8 +102,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 billCode, Long id) {
+ return emisTmsSiteBatchMapper.selectTmsSiteBatchBySiteAndBillCode(startSiteCode, nextSiteCode, billCode, id);
}
/**
@@ -163,23 +161,23 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
}
- private void checkItemDtl(EmisTmsSiteBatch oldSiteBatch, EmisTmsSiteBatchDtl itemDtl, EmisWaybill emisWaybill,
+ private void checkItemDtl(EmisTmsSiteBatch oldSiteBatch, EmisTmsSiteBatchDtl itemDtl, EmisWaybill emisWaybill,
EmisTransPlanRule rule) throws EmisBizError {
// 安全比较:检查批次数据是否与运单数据完全一致
boolean isParcelQtyEqual = Objects.equals(emisWaybill.getParcelQty(), itemDtl.getBatchParcelQty());
// 重量比较:使用compareTo方法比较大小是否相等
- boolean isWeightEqual = emisWaybill.getBillWeight() != null && itemDtl.getBatchWeight() != null
+ boolean isWeightEqual = emisWaybill.getBillWeight() != null && itemDtl.getBatchWeight() != null
&& emisWaybill.getBillWeight().compareTo(itemDtl.getBatchWeight()) == 0;
// 体积比较:使用compareTo方法比较大小是否相等
- boolean isVolumeEqual = emisWaybill.getTotalVolume() != null && itemDtl.getBatchVolume() != null
+ boolean isVolumeEqual = emisWaybill.getTotalVolume() != null && itemDtl.getBatchVolume() != null
&& emisWaybill.getTotalVolume().compareTo(itemDtl.getBatchVolume()) == 0;
-
+
if (isParcelQtyEqual && isWeightEqual && isVolumeEqual) {
checkUnique(oldSiteBatch, itemDtl.getBillCode());
return;
}
- itemDtl.setBlBatch("1");
+ itemDtl.setWaybillBatchStatus("1");
// 校验批次重量、件数、体积都得大于0
if (itemDtl.getBatchWeight() == null || itemDtl.getBatchWeight().compareTo(BigDecimal.ZERO) <= 0) {
@@ -300,12 +298,15 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
if (matchingBatch != null) {
// 检查批次重量、体积、件数是否一致
- boolean isBatchWeightEqual = matchingBatch.getTotalWeight() != null && itemDtl.getBatchWeight() != null
+ boolean isBatchWeightEqual = matchingBatch.getTotalWeight() != null
+ && itemDtl.getBatchWeight() != null
&& matchingBatch.getTotalWeight().compareTo(itemDtl.getBatchWeight()) == 0;
- boolean isBatchVolumeEqual = matchingBatch.getTotalVolume() != null && itemDtl.getBatchVolume() != null
+ boolean isBatchVolumeEqual = matchingBatch.getTotalVolume() != null
+ && itemDtl.getBatchVolume() != null
&& matchingBatch.getTotalVolume().compareTo(itemDtl.getBatchVolume()) == 0;
- boolean isBatchParcelQtyEqual = Objects.equals(matchingBatch.getTotalParcelQty(), itemDtl.getBatchParcelQty());
-
+ boolean isBatchParcelQtyEqual = Objects.equals(matchingBatch.getTotalParcelQty(),
+ itemDtl.getBatchParcelQty());
+
if (!isBatchWeightEqual || !isBatchVolumeEqual || !isBatchParcelQtyEqual) {
throw new EmisBizError(EmisBizErrorType.FAIL,
itemDtl.getBillCode() + "的批次重量、体积、件数与批次" + matchingBatch.getBatchNo() + "不一致,请检查后重新录入");
@@ -314,6 +315,27 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
}
}
+
+ // 安全比较:检查批次数据是否与运单数据完全一致
+ boolean isTotalParcelQtyEqual = Objects.equals(emisWaybill.getParcelQty(), totalParcelQty);
+ // 重量比较:使用compareTo方法比较大小是否相等
+ boolean isTotalWeightEqual = emisWaybill.getBillWeight() != null
+ && emisWaybill.getBillWeight().compareTo(totalWeight) == 0;
+ // 体积比较:使用compareTo方法比较大小是否相等
+ boolean isTotalVolumeEqual = emisWaybill.getTotalVolume() != null
+ && emisWaybill.getTotalVolume().compareTo(totalVolume) == 0;
+
+ if (isTotalParcelQtyEqual && isTotalWeightEqual && isTotalVolumeEqual) {
+ // 设置批次状态为2(已完成)
+ itemDtl.setWaybillBatchStatus("2");
+ List batchNos = allBatches.stream().map(EmisTmsSiteBatch::getBatchNo).distinct()
+ .collect(Collectors.toList());
+ if (CollectionUtil.isEmpty(batchNos)) {
+ return;
+ }
+ // 根据运单号和批次号更新批次状态为2
+ emisTmsSiteBatchDtlMapper.updatetWaybillBatchStatus(batchNos, itemDtl.getBillCode());
+ }
}
private static void checkVirtual(String billCode, EmisWaybill emisWaybill) throws EmisBizError {
@@ -360,10 +382,11 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
*/
@Override
public int updateEmisTmsSiteBatch(EmisTmsSiteBatch emisTmsSiteBatch) throws EmisBizError {
-// List emisWaybills = emisTmsSiteBatchDtlMapper.selectEmisWayBillByBatchNo(emisTmsSiteBatch.getBatchNo());
-// for (EmisWaybill emisWaybill : emisWaybills) {
-// checkUnique(emisTmsSiteBatch, emisWaybill.getBillCode());
-// }
+ // List emisWaybills =
+ // emisTmsSiteBatchDtlMapper.selectEmisWayBillByBatchNo(emisTmsSiteBatch.getBatchNo());
+ // for (EmisWaybill emisWaybill : emisWaybills) {
+ // checkUnique(emisTmsSiteBatch, emisWaybill.getBillCode());
+ // }
return emisTmsSiteBatchMapper.updateEmisTmsSiteBatch(emisTmsSiteBatch);
}
@@ -374,8 +397,7 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
* @return 结果
*/
@Override
- public int deleteEmisTmsSiteBatchByIds(Long[] ids)
- {
+ public int deleteEmisTmsSiteBatchByIds(Long[] ids) {
return emisTmsSiteBatchMapper.deleteEmisTmsSiteBatchByIds(ids);
}
@@ -386,8 +408,7 @@ public class EmisTmsSiteBatchServiceImpl extends EmisBaseService implements IEmi
* @return 结果
*/
@Override
- public int deleteEmisTmsSiteBatchById(Long id)
- {
+ public int deleteEmisTmsSiteBatchById(Long id) {
return emisTmsSiteBatchMapper.deleteEmisTmsSiteBatchById(id);
}
diff --git a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchDtlMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchDtlMapper.xml
index a35954e88..2b7407f58 100644
--- a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchDtlMapper.xml
+++ b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchDtlMapper.xml
@@ -16,7 +16,7 @@
-
+
@@ -30,7 +30,7 @@
- select id, bill_code, batch_no, scan_date, scan_status, group_status, scan_man, scan_site, batch_volume, batch_parcel_qty, batch_weight, bl_batch, remark, tenant_id, del_flag, create_by, create_time, update_by, update_time, create_site, update_site from emis_tms_site_batch_dtl
+ select id, bill_code, batch_no, scan_date, scan_status, group_status, scan_man, scan_site, batch_volume, batch_parcel_qty, batch_weight, waybill_batch_status, remark, tenant_id, del_flag, create_by, create_time, update_by, update_time, create_site, update_site from emis_tms_site_batch_dtl
@@ -128,7 +134,7 @@
batch_volume,
batch_parcel_qty,
batch_weight,
- bl_batch,
+ waybill_batch_status,
remark,
tenant_id,
del_flag,
@@ -150,7 +156,7 @@
#{batchVolume},
#{batchParcelQty},
#{batchWeight},
- #{blBatch},
+ #{waybillBatchStatus},
#{remark},
#{tenantId},
#{delFlag},
@@ -176,7 +182,7 @@
batch_volume = #{batchVolume},
batch_parcel_qty = #{batchParcelQty},
batch_weight = #{batchWeight},
- bl_batch = #{blBatch},
+ waybill_batch_status = #{waybillBatchStatus},
remark = #{remark},
tenant_id = #{tenantId},
del_flag = #{delFlag},
@@ -203,7 +209,7 @@