From 059b0640b8d479376baa66161ca56a3b1f187789 Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Wed, 9 Jul 2025 17:00:46 +0800 Subject: [PATCH 1/3] =?UTF-8?q?demand:=20=20=E7=BB=84=E6=89=B9=E6=AC=A1?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=93=8D=E4=BD=9C=E7=9B=91=E6=8E=A7=EF=BC=8C?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=89=AB=E6=8F=8F=E6=BC=8F=E7=BB=84=E6=89=B9?= =?UTF-8?q?=E6=AC=A1=E6=94=B9=E4=B8=BA=E7=A1=AC=E5=88=A0=E9=99=A4=20commit?= =?UTF-8?q?ter:=20heyu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/emis/domain/EmisTmsSiteBatch.java | 20 +++++++++++++++++++ .../erp/emis/domain/EmisTmsSiteBatchDtl.java | 4 ++++ .../mapper/EmisTmsSiteBatchMissMapper.java | 2 ++ .../impl/EmisTmsSiteBatchMissServiceImpl.java | 2 +- .../mapper/EmisTmsSiteBatchMissMapper.xml | 8 +++++++- 5 files changed, 34 insertions(+), 2 deletions(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatch.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatch.java index 8c4d3740a..59e24c334 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatch.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatch.java @@ -11,8 +11,10 @@ package com.xdadan.erp.emis.domain; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; +import com.xdadan.erp.common.annotation.audit.DataAuditField; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.xdadan.erp.common.annotation.Excel; @@ -48,6 +50,8 @@ public class EmisTmsSiteBatch extends BaseEntity @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date batchDate; /* 供应商代码 */ + @TableField + @DataAuditField(fieldComment = "供应商编码") private String supplierCode; /* 供应商名称 */ private String supplierName; @@ -56,24 +60,36 @@ public class EmisTmsSiteBatch extends BaseEntity /* 所属产品 */ private String productType; /* 批次类型 1-网点组批次 2-总部组批 */ + @TableField + @DataAuditField(fieldComment = "批次类型") private String batchType; /* 运输方式: 空运 陆运 海运 */ + @TableField + @DataAuditField(fieldComment = "运输方式") private String transType; /* 起始网点 */ + @TableField + @DataAuditField(fieldComment = "起始网点") private String startSiteCode; /* 发件国家 */ private String sendCountry; /* 下一网点 */ + @TableField + @DataAuditField(fieldComment = "下一网点") private String nextSiteCode; /* 航空单号 */ private String airBilllNo; /* 预计出发时间 */ @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8") + @TableField + @DataAuditField(fieldComment = "预计出发时间") private Date etd; /* 预计到达时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private Date eta; /* 车牌号 */ + @TableField + @DataAuditField(fieldComment = "运输号") private String carNo; /* 船次号 */ private String shipNo; @@ -86,8 +102,12 @@ public class EmisTmsSiteBatch extends BaseEntity /* 目的国家名称 */ private String destCountryName; /* 运输重量 */ + @TableField + @DataAuditField(fieldComment = "运输重量") private BigDecimal transWeight; /* 包裹数 */ + @TableField + @DataAuditField(fieldComment = "包裹数") private Integer packNum; /* 总票数 */ private Integer totalParcelQty; 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 5a512f521..ece69780d 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 @@ -11,8 +11,10 @@ package com.xdadan.erp.emis.domain; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; +import com.xdadan.erp.common.annotation.audit.DataAuditField; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.xdadan.erp.common.annotation.Excel; @@ -39,6 +41,8 @@ public class EmisTmsSiteBatchDtl extends BaseEntity @TableId(value = "id", type = IdType.AUTO) private Long id; /* 运单号 */ + @TableField + @DataAuditField(fieldComment = "组批次运单号") private String billCode; /* 批次代码 */ private String batchNo; diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMissMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMissMapper.java index d5c03bcb1..5dcf45f1a 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMissMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMissMapper.java @@ -85,4 +85,6 @@ public interface EmisTmsSiteBatchMissMapper { * @param billCodes */ void deleteByBillCodes(@Param("billCodes") List billCodes); + + void deleteReally(String lineCode); } \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java index a0b36c258..1a8f8a4f0 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java @@ -146,7 +146,7 @@ public class EmisTmsSiteBatchMissServiceImpl extends EmisBaseService implements @Override public void autoScanSiteBatch(String lineCode) { try { - emisTmsSiteBatchMissMapper.deleteAll(lineCode); + emisTmsSiteBatchMissMapper.deleteReally(lineCode); long startTime = System.currentTimeMillis(); int pageSize = 1000; int offset = 0; diff --git a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMissMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMissMapper.xml index 4055f7c67..d0804c1b3 100644 --- a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMissMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMissMapper.xml @@ -140,7 +140,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" w.send_country, c1.name as send_country_name, w.destination_code, n.dest_name as destination_name, w.bl_is_question, l.line_name as line_name, w.receive_country, c2.name as receive_country_name, w.send_date, w.bl_sign, w.sign_date, - w.product_type, w.payment_type, w.parcel_qty, w.bill_weight, w.total_volume, w.volume_weight, w.settlement_weight, w.freight, w.remark as waybill_remark, w.fee_remark, null as manager, null as trans_manager, @@ -358,6 +357,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + delete from emis_tms_site_batch_miss + + where line_code = #{lineCode} + + + update emis_tms_site_batch_miss set del_flag = '1' where bill_code in From 07781bd3609e5fa5717c3cee37626fabaae0892c Mon Sep 17 00:00:00 2001 From: aike <17730485278@139.com> Date: Thu, 10 Jul 2025 09:01:59 +0800 Subject: [PATCH 2/3] =?UTF-8?q?demand:=20=20=E6=96=B0=E5=A2=9E=E7=BB=84?= =?UTF-8?q?=E6=89=B9=E6=AC=A1=E6=88=90=E5=8A=9F=E8=BF=90=E5=8D=95=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E9=87=8D=E5=A4=8D=E8=BF=90=E5=8D=95=EF=BC=8C=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=BC=8F=E7=BB=84=E6=89=B9=E6=AC=A1=E8=BF=90=E5=8D=95?= =?UTF-8?q?=E8=BF=87=E6=BB=A4=E5=87=BA=E5=8F=A3=E8=99=9A=E6=8B=9F=E5=8D=95?= =?UTF-8?q?=E7=9A=84=E4=B8=BB=E5=8D=95=20committer:=20heyu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/emis/domain/EmisTmsSiteBatchMiss.java | 2 + .../mapper/EmisTmsSiteBatchMissMapper.java | 6 + .../impl/EmisTmsSiteBatchMissServiceImpl.java | 105 ++++++++++++------ .../mapper/EmisTmsSiteBatchMissMapper.xml | 15 ++- .../resources/mapper/EmisWaybillMapper.xml | 6 +- .../emis/EmisWaybillBatchStatusMapper.xml | 2 +- 6 files changed, 97 insertions(+), 39 deletions(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatchMiss.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatchMiss.java index 6dbc41beb..226b86b3e 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatchMiss.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTmsSiteBatchMiss.java @@ -126,4 +126,6 @@ public class EmisTmsSiteBatchMiss extends BaseEntity { /* 是否问题件 1-是 0-否 */ private String blIsQuestion; + private String virtualRemark; + private Integer problemType; } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMissMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMissMapper.java index 5dcf45f1a..27b563971 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMissMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTmsSiteBatchMissMapper.java @@ -2,6 +2,7 @@ package com.xdadan.erp.emis.mapper; import java.util.List; import com.xdadan.erp.emis.domain.EmisTmsSiteBatchMiss; +import com.xdadan.erp.emis.domain.EmisWaybill; import org.apache.ibatis.annotations.Param; /** @@ -87,4 +88,9 @@ public interface EmisTmsSiteBatchMissMapper { void deleteByBillCodes(@Param("billCodes") List billCodes); void deleteReally(String lineCode); + + /** + * 根据运单号批量查询TMS漏组批次信息 + */ + List selectByBillCodes(@Param("billCodes") List billCodes); } \ No newline at end of file diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java index 1a8f8a4f0..3afbb6a44 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsSiteBatchMissServiceImpl.java @@ -73,16 +73,54 @@ public class EmisTmsSiteBatchMissServiceImpl extends EmisBaseService implements log.info("Selecting TMS site batch miss list with params: {}", emisTmsSiteBatchMiss); List list = null; // 如果单号不为空,则去除其他参数 - if(!StringUtils.isEmpty(emisTmsSiteBatchMiss.getBillCode())){ + if (!StringUtils.isEmpty(emisTmsSiteBatchMiss.getBillCode())) { emisTmsSiteBatchMiss.setBillCode(WaybillHelper.formatQueryValue(emisTmsSiteBatchMiss.getBillCode())); String[] billCodeSortList = emisTmsSiteBatchMiss.getBillCode().split(","); - if(billCodeSortList.length>1){ - emisTmsSiteBatchMiss.getParams().put("billCodeSortList",Arrays.asList(billCodeSortList)); + if (billCodeSortList.length > 1) { + emisTmsSiteBatchMiss.getParams().put("billCodeSortList", Arrays.asList(billCodeSortList)); } list = emisTmsSiteBatchMissMapper.selectEmisTmsSiteBatchMissList(emisTmsSiteBatchMiss); - }else{ + } else { list = emisTmsSiteBatchMissMapper.selectEmisTmsSiteBatchMissList(emisTmsSiteBatchMiss); } + + // 收集所有virtualRemark中的单号 + Set relatedBillCodes = new HashSet<>(); + for (EmisTmsSiteBatchMiss miss : list) { + String virtualRemark = miss.getVirtualRemark(); + if (virtualRemark != null && !virtualRemark.trim().isEmpty()) { + String[] codes = virtualRemark.split(","); + for (String code : codes) { + relatedBillCodes.add(code.trim()); + } + } + } + if (CollectionUtil.isEmpty(relatedBillCodes)) { + return list; + } + // 批量查找相关单号 + List relatedList = relatedBillCodes.isEmpty() ? Collections.emptyList() + : emisTmsSiteBatchMissMapper.selectByBillCodes(new ArrayList<>(relatedBillCodes)); + Map relatedMap = relatedList.stream() + .collect(Collectors.toMap(EmisWaybill::getBillCode, Function.identity(), (a, b) -> a)); + // 过滤逻辑 + list = list.stream() + .filter(wb -> { + String virtualRemark = wb.getVirtualRemark(); + if (virtualRemark == null || virtualRemark.trim().isEmpty()) { + return true; + } + String[] relatedNos = virtualRemark.split(","); + for (String no : relatedNos) { + EmisWaybill related = relatedMap.get(no.trim()); + if (related != null && Integer.valueOf(173).equals(related.getProblemType())) { + return false; + } + } + return true; + }) + .collect(Collectors.toList()); + return list; } @@ -190,7 +228,7 @@ public class EmisTmsSiteBatchMissServiceImpl extends EmisBaseService implements try { List waybills = future.get(); allWaybills.addAll(waybills); -// totalProcessed += waybills.size(); + totalProcessed += waybills.size(); } catch (Exception e) { log.error("Error getting waybill results", e); } @@ -199,34 +237,35 @@ public class EmisTmsSiteBatchMissServiceImpl extends EmisBaseService implements // 关闭线程池 executorService.shutdown(); - // 构建运单号到EmisWaybill的映射 - Map waybillMap = allWaybills.stream() - .collect(Collectors.toMap(EmisWaybill::getBillCode, Function.identity(), (a, b) -> a)); - - allWaybills = allWaybills.stream() - .filter(wb -> { - String virtualRemark = wb.getVirtualRemark(); - if (StringUtils.isBlank(virtualRemark)) { - return true; - } - // 解析virtualRemark中的运单号 - String[] relatedNos = virtualRemark.split(","); - for (String no : relatedNos) { - EmisWaybill related = waybillMap.get(no.trim()); - if (related != null && Objects.equals(related.getProblemType(), 173)) { - return false; // 只要有一个关联运单problemType=173,则过滤掉 - } - } - return true; - }) - .collect(Collectors.toList()); - - allWaybills = allWaybills.stream() - .filter(wb -> !Objects.equals(wb.getProblemType(), 170)) - .filter(wb -> !Objects.equals(wb.getSiteBatchStatus(), "1")) - .collect(Collectors.toList()); - - totalProcessed = allWaybills.size(); + // // 构建运单号到EmisWaybill的映射 + // Map waybillMap = allWaybills.stream() + // .collect(Collectors.toMap(EmisWaybill::getBillCode, Function.identity(), (a, + // b) -> a)); + // + // allWaybills = allWaybills.stream() + // .filter(wb -> { + // String virtualRemark = wb.getVirtualRemark(); + // if (StringUtils.isBlank(virtualRemark)) { + // return true; + // } + // // 解析virtualRemark中的运单号 + // String[] relatedNos = virtualRemark.split(","); + // for (String no : relatedNos) { + // EmisWaybill related = waybillMap.get(no.trim()); + // if (related != null && Objects.equals(related.getProblemType(), 173)) { + // return false; // 只要有一个关联运单problemType=173,则过滤掉 + // } + // } + // return true; + // }) + // .collect(Collectors.toList()); + // + // allWaybills = allWaybills.stream() + // .filter(wb -> !Objects.equals(wb.getProblemType(), 170)) + //// .filter(wb -> !Objects.equals(wb.getSiteBatchStatus(), "1")) + // .collect(Collectors.toList()); + // + // totalProcessed = allWaybills.size(); // 按1000条数据分组处理 List> batches = new ArrayList<>(); diff --git a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMissMapper.xml b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMissMapper.xml index d0804c1b3..3b9dba3b4 100644 --- a/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMissMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisTmsSiteBatchMissMapper.xml @@ -44,16 +44,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + select - m.id, m.bill_code, m.miss_reason, m.create_by, m.create_time, m.update_by, m.update_time, m.remark, m.del_flag, + m.id, m.bill_code, m.miss_reason, m.create_time, m.update_time, m.remark, m.del_flag, m.line_code, m.product_type, m.start_site_code, m.next_site_code, m.supplier_code, m.start_date, m.end_date,m.miss_type, w.send_site_code, s1.site_name as send_site_name,s2.site_name as start_site_name,s3.site_name as next_site_name, w.send_country, c1.name as send_country_name, w.destination_code, n.dest_name as destination_name,w.bl_is_question, l.line_name as line_name, w.receive_country, c2.name as receive_country_name, w.send_date, w.bl_sign, w.sign_date, - w.product_type, + w.product_type,w.problem_type,w.virtual_remark, w.payment_type, w.parcel_qty, w.bill_weight, w.total_volume, w.volume_weight, w.settlement_weight, w.freight, w.remark as waybill_remark, w.fee_remark, m.manager, k.trans_manager, (SELECT GROUP_CONCAT(s.name) @@ -414,4 +416,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" HAVING COUNT(*) = #{count} ) + \ No newline at end of file diff --git a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml index 27ff552a9..0fc52b139 100644 --- a/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisWaybillMapper.xml @@ -3814,17 +3814,17 @@