demand: 孟加拉国际手提漏组批次扫描未根据始发网点扫描bug修复 组批次完成后运单分批组删除完成状态

committer: heyu
This commit is contained in:
aike 2025-08-05 18:05:06 +08:00
parent d0407cf409
commit 9264bfb781
3 changed files with 43 additions and 16 deletions

View File

@ -20,4 +20,11 @@ public interface EmisWaybillBatchStatusMapper extends BaseMapper<EmisWaybillBatc
* @return 结果 * @return 结果
*/ */
public int batchInsertEmisWaybillBatchStatus(List<EmisWaybillBatchStatus> batchStatusList); public int batchInsertEmisWaybillBatchStatus(List<EmisWaybillBatchStatus> batchStatusList);
/**
* 根据运单号列表批量删除批次状态
* @param billCodes 运单号列表
* @return 删除条数
*/
int deleteByBillCodes(@Param("billCodes") List<String> billCodes);
} }

View File

@ -4462,7 +4462,8 @@ public class EmisBaseService {
} }
} }
public void filterBatchStatusList(List<EmisWaybillBatchStatus> batchStatusList, List<EmisTmsSiteBatchMiss> missRecords) { public void filterBatchStatusList(List<EmisWaybillBatchStatus> batchStatusList,
List<EmisTmsSiteBatchMiss> missRecords) {
// 获取所有运单号 // 获取所有运单号
List<String> batchStatusBillCodes = batchStatusList.stream() List<String> batchStatusBillCodes = batchStatusList.stream()
.map(EmisWaybillBatchStatus::getBillCode) .map(EmisWaybillBatchStatus::getBillCode)
@ -4485,27 +4486,37 @@ public class EmisBaseService {
} }
// 将waybill_batch_status=1的运单进行去重处理添加到漏组记录 // 将waybill_batch_status=1的运单进行去重处理添加到漏组记录
Set<String> processedBillCodes = new HashSet<>(); Set<String> processedBillCodes = new HashSet<>();
if (CollectionUtil.isNotEmpty(missRecords)) { if (missRecords == null) {
for (EmisWaybillBatchStatus batchStatus : batchStatusList) { missRecords = new ArrayList<>();
if (filteredBillCodes.contains(batchStatus.getBillCode()) }
&& processedBillCodes.add(batchStatus.getBillCode())) { for (EmisWaybillBatchStatus batchStatus : batchStatusList) {
// 创建漏组记录 if (filteredBillCodes.contains(batchStatus.getBillCode())
EmisTmsSiteBatchMiss missRecord = new EmisTmsSiteBatchMiss(); && processedBillCodes.add(batchStatus.getBillCode())) {
missRecord.setBillCode(batchStatus.getBillCode()); // 查询运单对应的批次号
missRecord.setMissReason("运单分批后未组完"); List<String> batchNos = filteredBatchDtls.stream().filter(i -> batchStatus.getBillCode().equals(i.getBillCode())).map(EmisTmsSiteBatchDtl::getBatchNo).distinct().collect(Collectors.toList());
missRecord.setMissType("4"); String batchNoStr = CollectionUtil.isNotEmpty(batchNos) ? String.join(",", batchNos) : "";
missRecord.setCreateBy("system");
missRecord.setCreateTime(new Date());
missRecord.setCreateSite("88888");
// 添加到漏组记录列表 // 创建漏组记录
missRecords.add(missRecord); EmisTmsSiteBatchMiss missRecord = new EmisTmsSiteBatchMiss();
} missRecord.setBillCode(batchStatus.getBillCode());
missRecord.setMissReason("运单分批后未组完,批次号:" + batchNoStr);
missRecord.setMissType("4");
missRecord.setCreateBy("system");
missRecord.setCreateTime(new Date());
missRecord.setCreateSite("88888");
// 添加到漏组记录列表
missRecords.add(missRecord);
} }
} }
// 从batchStatusList中剔除waybill_batch_status=1的运单 // 从batchStatusList中剔除waybill_batch_status=1的运单
batchStatusList.removeIf(batchStatus -> filteredBillCodes.contains(batchStatus.getBillCode())); batchStatusList.removeIf(batchStatus -> filteredBillCodes.contains(batchStatus.getBillCode()));
if (CollectionUtil.isNotEmpty(filteredBillCodes)) {
emisWaybillBatchStatusMapper.deleteByBillCodes(new ArrayList<>(filteredBillCodes));
}
} }
public void saveRecord(int totalProcessed, int successCount, int failCount, long processTime, public void saveRecord(int totalProcessed, int successCount, int failCount, long processTime,

View File

@ -34,4 +34,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach> </foreach>
</insert> </insert>
<!-- 根据运单号列表批量删除批次状态 -->
<delete id="deleteByBillCodes" parameterType="java.util.List">
delete from emis_waybill_batch_status
where bill_code in
<foreach collection="billCodes" item="billCode" open="(" separator="," close=")">
#{billCode}
</foreach>
</delete>
</mapper> </mapper>