diff --git a/src/main/java/com/xujie/sys/modules/ecss/data/EcssCoDelNotifyData.java b/src/main/java/com/xujie/sys/modules/ecss/data/EcssCoDelNotifyData.java
index 2d001cd0..23f156f8 100644
--- a/src/main/java/com/xujie/sys/modules/ecss/data/EcssCoDelNotifyData.java
+++ b/src/main/java/com/xujie/sys/modules/ecss/data/EcssCoDelNotifyData.java
@@ -25,4 +25,6 @@ public class EcssCoDelNotifyData extends EcssCoDelNotify {
private String buDesc;
private Boolean modifyFlag;
+
+ private Boolean modifyQtyFlag;
}
diff --git a/src/main/java/com/xujie/sys/modules/ecss/data/EcssCoDelNotifyDetailData.java b/src/main/java/com/xujie/sys/modules/ecss/data/EcssCoDelNotifyDetailData.java
index cfeaeff8..3e96dd7a 100644
--- a/src/main/java/com/xujie/sys/modules/ecss/data/EcssCoDelNotifyDetailData.java
+++ b/src/main/java/com/xujie/sys/modules/ecss/data/EcssCoDelNotifyDetailData.java
@@ -19,6 +19,7 @@ public class EcssCoDelNotifyDetailData extends EcssCoDelNotifyDetail {
private String nocartons;
private Integer addFlag;
private Boolean modifyFlag;
+ private Boolean modifyQtyFlag; // 只有数量变化时才为true
private String hsCodeDesc;
private BigDecimal rolls;
private BigDecimal useQty;
diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java
index 9bbbb438..0bd9c89b 100644
--- a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java
+++ b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java
@@ -622,9 +622,19 @@ public class CoDelServiceImpl implements CoDelService {
if (ecssCoDelNotifyDetail.isEmpty()){
throw new RuntimeException("该发货通知单明细不存在");
} else {
- if ((ecssCoDelNotifyDetail.get(0).getQty().compareTo(data.getQty())!=0) ||
- !ecssCoDelNotifyDetail.get(0).getPn().equals(data.getPn())) {
+ // 判断数量是否变化
+ boolean qtyChanged = ecssCoDelNotifyDetail.get(0).getQty().compareTo(data.getQty()) != 0;
+ // 判断PN是否变化
+ boolean pnChanged = !ecssCoDelNotifyDetail.get(0).getPn().equals(data.getPn());
+
+ if (qtyChanged || pnChanged) {
data.setModifyFlag(true);
+
+ // 只有数量变化时才设置 modifyQtyFlag=true
+ if (qtyChanged) {
+ data.setModifyQtyFlag(true);
+ }
+
// 取消订单 通知仓库和单证人员
//设置邮件内容
String text = "" + "
发货通知单" +data.getDelNo()+"【发票:"+ data.getCmcInvoice()+"】改单" + "
"+
@@ -647,6 +657,7 @@ public class CoDelServiceImpl implements CoDelService {
int itemNo = coDelMapper.getEcssDelDetailItemNo(data);
data.setItemNo(itemNo);
data.setModifyFlag(true);
+ data.setModifyQtyFlag(true); // 新增发货也算数量变化
coDelMapper.insertEcssDelDetail(data);
// 取消订单 通知仓库和单证人员
//设置邮件内容
@@ -677,6 +688,7 @@ public class CoDelServiceImpl implements CoDelService {
}
data.setQty(BigDecimal.ZERO);
data.setModifyFlag(true);
+ data.setModifyQtyFlag(true); // 删除发货也算数量变化
data.setStatus("取消发货");
coDelMapper.updateEcssDelDetail(data);
EcssCoDelNotifyHeaderData header = new EcssCoDelNotifyHeaderData();
@@ -769,10 +781,23 @@ public class CoDelServiceImpl implements CoDelService {
// 先删除全部明细,再新建明细
coDelMapper.deleteAllEcssDelDetail(headerData);
+
+ // 构建原数据Map,用于比较数量是否变化
+ Map originalQtyMap = dbData.stream()
+ .collect(Collectors.toMap(EcssCoDelNotifyDetail::getPn, EcssCoDelNotifyDetail::getQty));
+
for (int i = 0; i < excelList.size(); i++) {
excelList.get(i).setDelNo(headerData.getDelNo());
excelList.get(i).setItemNo(i + 1);
excelList.get(i).setModifyFlag(true);
+
+ // 判断数量是否变化:新增物料或数量不同时设置 modifyQtyFlag=true
+ String pn = excelList.get(i).getPn();
+ BigDecimal newQty = excelList.get(i).getQty();
+ if (!originalQtyMap.containsKey(pn) ||
+ !originalQtyMap.get(pn).equals(newQty)) {
+ excelList.get(i).setModifyQtyFlag(true);
+ }
}
coDelMapper.batchSaveEcssCoDelNotifyDetail(excelList);
headerData.setModifyFlag(true);
diff --git a/src/main/resources/mapper/ecss/CoDelMapper.xml b/src/main/resources/mapper/ecss/CoDelMapper.xml
index 7cf541e0..367058d1 100644
--- a/src/main/resources/mapper/ecss/CoDelMapper.xml
+++ b/src/main/resources/mapper/ecss/CoDelMapper.xml
@@ -118,7 +118,7 @@
select a.site,a.bu_no,a.delNo,a.item_no,a.salesOrder,a.salesOrder_item_no,a.customerPO,a.line,a.version,a.status,a.family,
a.part_no,a.part_description,a.qty,a.lt,a.cmc_comment,a.saleType,a.awb_bl,a.shipping_number,a.forwarder_info,isnull(a.surplus_qty,0) surplusQty,
a.currency,a.tp,a.ttl_amount,a.sum_price,a.so,a.upc,a.remark,a.erp_delItemNo,a.pn,CONVERT(DECIMAL(20, 0),a.nocartons) as nocartons,
- c.num_value as boxrolls,d.num_value as rollqty,w.num_value as boxweight,#{cmcInvoice} as cmcInvoice,a.modifyFlag,
+ c.num_value as boxrolls,d.num_value as rollqty,w.num_value as boxweight,#{cmcInvoice} as cmcInvoice,a.modifyFlag,a.modifyQtyFlag,
b.hsCodeDesc,a.vat,a.roll,a.carton,b.packageNo
from ecss_CoDelNotifydetail a
left join part b on a.site=b.site and a.part_no=b.part_no
@@ -139,7 +139,7 @@
select a.site,a.bu_no,a.delNo,a.item_no,a.salesOrder,a.salesOrder_item_no,a.customerPO,a.line,a.version,a.status,a.family,
a.part_no,a.part_description,a.qty,a.lt,a.cmc_comment,a.saleType,a.awb_bl,a.shipping_number,a.forwarder_info,
a.currency,a.tp,a.ttl_amount,a.sum_price,a.so,a.upc,a.remark,a.erp_delItemNo,a.pn,CONVERT(DECIMAL(20, 0),a.nocartons) as nocartons,
- a.modifyFlag
+ a.modifyFlag,a.modifyQtyFlag
from ecss_CoDelNotifydetail a
And a.site = #{site}
@@ -176,13 +176,13 @@
insert into ecss_CoDelNotifyDetail (site,bu_no,delNo,item_no,salesOrder,salesOrder_item_no,customerPO,line,version,
status,family,part_no,part_description,qty,lt,cmc_comment,saleType,
awb_bl,shipping_number,forwarder_info,currency,tp,ttl_amount,sum_price,
- so,upc,remark,pn,surplus_qty,vat,roll,carton,saleslt,manufacturer_name,modifyFlag)
+ so,upc,remark,pn,surplus_qty,vat,roll,carton,saleslt,manufacturer_name,modifyFlag,modifyQtyFlag)
values
(#{item.site},#{item.buNo},#{item.delNo},#{item.itemNo,jdbcType=INTEGER},#{item.salesOrder,jdbcType=NVARCHAR},#{item.salesOrderItemNo},#{item.customerPO,jdbcType=NVARCHAR},#{item.line,jdbcType=NVARCHAR},#{item.version,jdbcType=NVARCHAR},
#{item.status,jdbcType=NVARCHAR},#{item.family,jdbcType=NVARCHAR},#{item.partNo},#{item.partDescription,jdbcType=NVARCHAR},#{item.qty,jdbcType=DECIMAL},#{item.lt,jdbcType=DECIMAL},#{item.cmcComment,jdbcType=NVARCHAR},#{item.saleType,jdbcType=NVARCHAR},
#{item.awbBl,jdbcType=NVARCHAR},#{item.shippingNumber,jdbcType=NVARCHAR},#{item.forwarderInfo,jdbcType=NVARCHAR},#{item.currency,jdbcType=NVARCHAR},#{item.tp,jdbcType=DECIMAL},#{item.ttlAmount,jdbcType=DECIMAL},#{item.sumPrice,jdbcType=DECIMAL},
- #{item.so,jdbcType=NVARCHAR},#{item.upc,jdbcType=NVARCHAR},#{item.remark,jdbcType=NVARCHAR},#{item.pn,jdbcType=NVARCHAR},#{item.qty},#{item.vat},#{item.roll},#{item.carton},#{item.saleslt,jdbcType=NVARCHAR},#{item.manufacturerName,jdbcType=NVARCHAR},#{item.modifyFlag})
+ #{item.so,jdbcType=NVARCHAR},#{item.upc,jdbcType=NVARCHAR},#{item.remark,jdbcType=NVARCHAR},#{item.pn,jdbcType=NVARCHAR},#{item.qty},#{item.vat},#{item.roll},#{item.carton},#{item.saleslt,jdbcType=NVARCHAR},#{item.manufacturerName,jdbcType=NVARCHAR},#{item.modifyFlag},#{item.modifyQtyFlag})
@@ -220,7 +220,7 @@
- update ecss_CoDelNotifyDetail set modifyFlag=#{modifyFlag},surplus_qty=0 where site=#{site} and delNo=#{delNo}
+ update ecss_CoDelNotifyDetail set modifyFlag=#{modifyFlag},modifyQtyFlag=#{modifyFlag},surplus_qty=0 where site=#{site} and delNo=#{delNo}
@@ -249,11 +249,11 @@
insert into ecss_CoDelNotifyDetail(site,bu_no,delNo,item_no,salesOrder,salesOrder_item_no,customerPO,line,version,
status,family,part_no,part_description,qty,lt,cmc_comment,saleType,
awb_bl,shipping_number,forwarder_info,currency,tp,ttl_amount,sum_price,
- so,upc,remark,pn,modifyFlag,surplus_qty,vat,roll,carton)
+ so,upc,remark,pn,modifyFlag,modifyQtyFlag,surplus_qty,vat,roll,carton)
values(#{site},#{buNo},#{delNo},#{itemNo,jdbcType=INTEGER},#{salesOrder},#{salesOrderItemNo},#{customerPO},#{line},#{version},
#{status},#{family},#{partNo},#{partDescription},#{qty,jdbcType=DECIMAL},#{lt,jdbcType=DECIMAL},#{cmcComment},#{saleType},
#{awbBl},#{shippingNumber},#{forwarderInfo},#{currency},#{tp,jdbcType=DECIMAL},#{ttlAmount,jdbcType=DECIMAL},#{sumPrice,jdbcType=DECIMAL},
- #{so},#{upc},#{remark},#{pn},#{modifyFlag},#{qty},#{vat},#{roll},#{carton})
+ #{so},#{upc},#{remark},#{pn},#{modifyFlag},#{modifyQtyFlag},#{qty},#{vat},#{roll},#{carton})
@@ -263,7 +263,7 @@
lt=#{lt,jdbcType=DECIMAL},cmc_comment=#{cmcComment},saleType=#{saleType},pn=#{pn},
awb_bl=#{awbBl},shipping_number=#{shippingNumber},forwarder_info=#{forwarderInfo},currency=#{currency},
tp=#{tp,jdbcType=DECIMAL},ttl_amount=#{ttlAmount,jdbcType=DECIMAL},sum_price=#{sumPrice,jdbcType=DECIMAL},
- so=#{so},upc=#{upc},remark=#{remark},modifyFlag=#{modifyFlag},surplus_qty=#{qty},vat=#{vat},roll=#{roll},carton=#{carton}
+ so=#{so},upc=#{upc},remark=#{remark},modifyFlag=#{modifyFlag},modifyQtyFlag=#{modifyQtyFlag},surplus_qty=#{qty},vat=#{vat},roll=#{roll},carton=#{carton}
where
site=#{site} and delNo=#{delNo} and item_no=#{itemNo}
@@ -547,12 +547,45 @@ create_by,create_date,update_by,update_date