Browse Source

防重复

java8
han\hanst 1 month ago
parent
commit
98a4dd2eec
  1. 3
      src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java
  2. 26
      src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java
  3. 7
      src/main/resources/mapper/ecss/CoDelMapper.xml

3
src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java

@ -25,6 +25,9 @@ public interface CoDelMapper {
List<EcssCoDelNotifyHeaderData> checkEcssCoDelNotifyHeaderByDelNo( @Param("site") String site,@Param("delNo") String delNo);
List<EcssCoDelNotifyHeaderData> checkEcssDeclarationHeaderByDelNo( @Param("site") String site,@Param("delNo") String delNo);
List<EcssCoDelNotifyDetailData> searchEcssCoDelNotifyDetail(EcssCoDelNotifyHeaderData data);
List<EcssCoDelNotifyDetailData> getEcssCoDelNotifyDetail(EcssCoDelNotifyDetailData data);

26
src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java

@ -1355,11 +1355,11 @@ public class CoDelServiceImpl implements CoDelService {
hasPnDeleted = true;
}
}
// 检查是否有PN或Qty的修改
boolean hasPnOrQtyModified = excelList.stream()
.anyMatch(item -> item.getModifyQtyFlag() != null && item.getModifyQtyFlag());
coDelMapper.batchSaveEcssCoDelNotifyDetail(excelList);
headerData.setModifyFlag(true);
// 更新头表字段包括ReadyDateShippingModeDestination
@ -1551,7 +1551,7 @@ public class CoDelServiceImpl implements CoDelService {
boolean qtyChanged = !oldDetail.getQty().equals(newDetail.getQty());
boolean currencyChanged = !Objects.equals(oldDetail.getCurrency(), newDetail.getCurrency());
boolean tpChanged = !Objects.equals(oldDetail.getTp(), newDetail.getTp());
// 构建变更说明
List<String> changes = new ArrayList<>();
if (pnChanged) changes.add("换料");
@ -1559,14 +1559,14 @@ public class CoDelServiceImpl implements CoDelService {
if (currencyChanged) changes.add("Currency变更");
if (tpChanged) changes.add("TP变更");
String changeDesc = changes.isEmpty() ? "-" : String.join("、", changes);
// PN列
if (pnChanged) {
table.append("<td>").append(oldDetail.getPn()).append(" → <span class='changed'>").append(newDetail.getPn()).append("</span></td>");
} else {
table.append("<td>").append(newDetail.getPn()).append("</td>");
}
// 数量列
table.append("<td>").append(oldDetail.getQty().setScale(0, RoundingMode.HALF_UP)).append("</td>");
if (qtyChanged) {
@ -1574,7 +1574,7 @@ public class CoDelServiceImpl implements CoDelService {
} else {
table.append("<td>").append(newDetail.getQty().setScale(0, RoundingMode.HALF_UP)).append("</td>");
}
// Currency列
String oldCurrency = oldDetail.getCurrency() != null ? oldDetail.getCurrency() : "-";
String newCurrency = newDetail.getCurrency() != null ? newDetail.getCurrency() : "-";
@ -1584,7 +1584,7 @@ public class CoDelServiceImpl implements CoDelService {
} else {
table.append("<td>").append(newCurrency).append("</td>");
}
// TP列
String oldTp = oldDetail.getTp() != null ? oldDetail.getTp().setScale(2, RoundingMode.HALF_UP).toString() : "-";
String newTp = newDetail.getTp() != null ? newDetail.getTp().setScale(2, RoundingMode.HALF_UP).toString() : "-";
@ -1594,7 +1594,7 @@ public class CoDelServiceImpl implements CoDelService {
} else {
table.append("<td>").append(newTp).append("</td>");
}
// 变更说明列
if (!changes.isEmpty()) {
table.append("<td class='changed'>").append(changeDesc).append("</td>");
@ -2255,6 +2255,10 @@ public class CoDelServiceImpl implements CoDelService {
} else {
notifyHeaderData = getCoDelNotifyHeaderData.get(0);
}
List<EcssCoDelNotifyHeaderData> headerData = coDelMapper.checkEcssDeclarationHeaderByDelNo(inData.getSite(), inData.getDelNo());
if (!headerData.isEmpty()) {
throw new RuntimeException("报关单已经存在,请刷新界面!");
}
//获取重量
EcssCoDelPalletHeader getAllWeight = coDelMapper.getAllWeight(inData.getSite(), inData.getDelNo(),inData.getBuNo());
if (getAllWeight == null) {
@ -2343,6 +2347,10 @@ public class CoDelServiceImpl implements CoDelService {
@Override
@Transactional
public void saveDeclaration(EcssDeclarationHeaderData inData) {
List<EcssCoDelNotifyHeaderData> getCoDelNotifyHeaderData = coDelMapper.checkEcssDeclarationHeaderByDelNo(inData.getSite(), inData.getDelNo());
if (!getCoDelNotifyHeaderData.isEmpty()) {
throw new RuntimeException("报关单已经存在,请刷新界面!");
}
String transNo;
coDelMapper.updateTransNo(inData.getSite(), "BG");
transNo = coDelMapper.getTransNo(inData.getSite(), "BG");
@ -5237,7 +5245,7 @@ public class CoDelServiceImpl implements CoDelService {
/**
* 改单导入后处理通知单状态
*
*
* <p><b>处理逻辑</b></p>
* <ul>
* <li>如果当前状态是已报关删除对应的报关单</li>

7
src/main/resources/mapper/ecss/CoDelMapper.xml

@ -124,6 +124,13 @@
AND a.delNo = #{delNo}
</select>
<select id="checkEcssDeclarationHeaderByDelNo" resultType="EcssCoDelNotifyHeaderData">
select a.site,a.delNo
from ecss_declaration_header a
where a.site = #{site}
AND a.delNo = #{delNo}
</select>
<select id="searchEcssCoDelNotifyDetail" resultType="EcssCoDelNotifyDetailData">
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,

Loading…
Cancel
Save