demand: 根据批次号实时扫描漏组批次接口扫描过滤组批次完成的运单。 分批运单扫描bug修复
committer: heyu
This commit is contained in:
parent
b8cac48372
commit
d4eb88264f
@ -4540,47 +4540,50 @@ public class EmisBaseService {
|
||||
List<EmisTmsSiteBatchDtl> filteredBatchDtls = emisTmsSiteBatchDtlMapper
|
||||
.selectEmisTmsSiteBatchDtlList(queryCondition);
|
||||
|
||||
// 获取已分批的运单号集合
|
||||
Set<String> filteredBillCodes = filteredBatchDtls.stream()
|
||||
.map(EmisTmsSiteBatchDtl::getBillCode)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
if (CollectionUtil.isEmpty(filteredBillCodes)) {
|
||||
if (CollectionUtil.isEmpty(filteredBatchDtls)) {
|
||||
return;
|
||||
}
|
||||
// 将waybill_batch_status=1的运单进行去重处理添加到漏组记录
|
||||
Set<String> processedBillCodes = new HashSet<>();
|
||||
|
||||
// 根据运单号分组,收集每个运单对应的批次号
|
||||
Map<String, List<String>> billCodeToBatchNos = filteredBatchDtls.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
EmisTmsSiteBatchDtl::getBillCode,
|
||||
Collectors.mapping(EmisTmsSiteBatchDtl::getBatchNo, Collectors.toList())));
|
||||
|
||||
// 初始化漏组记录列表
|
||||
if (missRecords == null) {
|
||||
missRecords = new ArrayList<>();
|
||||
}
|
||||
for (EmisWaybillBatchStatus batchStatus : batchStatusList) {
|
||||
if (filteredBillCodes.contains(batchStatus.getBillCode())
|
||||
&& processedBillCodes.add(batchStatus.getBillCode())) {
|
||||
// 查询运单对应的批次号
|
||||
List<String> batchNos = filteredBatchDtls.stream().filter(i -> batchStatus.getBillCode().equals(i.getBillCode())).map(EmisTmsSiteBatchDtl::getBatchNo).distinct().collect(Collectors.toList());
|
||||
String batchNoStr = CollectionUtil.isNotEmpty(batchNos) ? String.join(",", batchNos) : "";
|
||||
|
||||
// 创建漏组记录
|
||||
EmisTmsSiteBatchMiss missRecord = new EmisTmsSiteBatchMiss();
|
||||
missRecord.setBillCode(batchStatus.getBillCode());
|
||||
missRecord.setMissReason("运单分批后未组完,批次号:" + batchNoStr);
|
||||
missRecord.setMissType("4");
|
||||
missRecord.setCreateBy("system");
|
||||
missRecord.setCreateTime(new Date());
|
||||
missRecord.setCreateSite("88888");
|
||||
// 为每个已分批的运单创建漏组记录
|
||||
for (Map.Entry<String, List<String>> entry : billCodeToBatchNos.entrySet()) {
|
||||
String billCode = entry.getKey();
|
||||
List<String> batchNos = entry.getValue();
|
||||
String batchNoStr = String.join(",", batchNos);
|
||||
|
||||
// 添加到漏组记录列表
|
||||
missRecords.add(missRecord);
|
||||
}
|
||||
// 创建漏组记录
|
||||
EmisTmsSiteBatchMiss missRecord = new EmisTmsSiteBatchMiss();
|
||||
missRecord.setBillCode(billCode);
|
||||
missRecord.setMissReason("运单分批后未组完,批次号:" + batchNoStr);
|
||||
missRecord.setMissType("4");
|
||||
missRecord.setCreateBy("system");
|
||||
missRecord.setCreateTime(new Date());
|
||||
missRecord.setCreateSite("88888");
|
||||
|
||||
// 添加到漏组记录列表
|
||||
missRecords.add(missRecord);
|
||||
}
|
||||
|
||||
// 从batchStatusList中剔除waybill_batch_status=1的运单
|
||||
// 获取已分批的运单号集合
|
||||
Set<String> filteredBillCodes = billCodeToBatchNos.keySet();
|
||||
|
||||
// 从batchStatusList中移除已分批的运单
|
||||
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,
|
||||
|
||||
@ -232,10 +232,12 @@
|
||||
select a.id, a.bill_code,a.trans_line_type, a.product_type,a.start_site_code,a.send_site_code
|
||||
from emis_waybill a
|
||||
left join emis_tms_site_batch_dtl b on a.bill_code = b.bill_code and b.del_flag = '0'
|
||||
inner join emis_waybill_batch_status c on a.bill_code = c.bill_code and c.site_batch_status = '1' and c.del_flag = '0'
|
||||
where b.batch_no = #{batchNo}
|
||||
and a.del_flag = '0'
|
||||
and a.send_date <![CDATA[ > ]]> '2025-01-01 00:00:00'
|
||||
and not exists (
|
||||
select 1 from emis_waybill_batch_status b where a.bill_code = b.bill_code and b.site_batch_status = '1' and b.del_flag = '0'
|
||||
)
|
||||
</select>
|
||||
|
||||
<update id="updateDelFlagByBatchNo" parameterType="String">
|
||||
@ -274,4 +276,4 @@
|
||||
and del_flag = '0'
|
||||
limit 1
|
||||
</select>
|
||||
</mapper>
|
||||
</mapper>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user