From e9f2a48f3e8df3af26a270341e9ed1e5b79eda68 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期日, 11 五月 2025 18:15:06 +0800
Subject: [PATCH] 添加检验生成失败的补偿机制
---
src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 52 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java b/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java
index 86b8cea..01c0d13 100644
--- a/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java
+++ b/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java
@@ -10,15 +10,18 @@
import com.gs.xky.dto.XkyDetail;
import com.gs.xky.entity.DeliveryNotice;
import com.gs.xky.entity.DeliveryNoticeDetail;
+import com.gs.xky.entity.MesInvItemArn;
import com.gs.xky.mapper.DeliveryNoticeMapper;
import com.gs.xky.service.DeliveryNoticeDetailService;
import com.gs.xky.service.DeliveryNoticeService;
+import com.gs.xky.service.MesInvItemArnService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
/**
* @author 28567
@@ -33,6 +36,8 @@
private final DeliveryNoticeDetailService detailService;
+ private final MesInvItemArnService invItemArnService;
+
@Override
public boolean saveDeliveryNotice(XkyDetail xkyDetail) {
@@ -41,13 +46,19 @@
wrapper.eq(DeliveryNotice::getDeliveryNo, xkyDetail.getDeliveryNo());
- long count = count(wrapper);
+// long count = count(wrapper);
+ DeliveryNotice one = getOne(wrapper, false);
- if (count > 0) {
+ if (one != null) {
LambdaUpdateWrapper<DeliveryNotice> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(DeliveryNotice::getDeliveryNo, xkyDetail.getDeliveryNo());
remove(updateWrapper);
+
+ LambdaUpdateWrapper<DeliveryNoticeDetail> updateWrapper1 = new LambdaUpdateWrapper<>();
+ updateWrapper1.eq(DeliveryNoticeDetail::getPid, one.getId());
+ detailService.remove(updateWrapper1);
}
+
DeliveryNotice deliveryNotice = new DeliveryNotice();
BeanUtil.copyProperties(xkyDetail, deliveryNotice);
@@ -62,7 +73,9 @@
}
List<DeliveryNoticeDetail> noticeDetails = new ArrayList<>();
- for (LineList list : lineList) {
+
+ List<LineList> collect = lineList.stream().filter(s -> "1".equals(s.getStatus())).collect(Collectors.toList());
+ for (LineList list : collect) {
DeliveryNoticeDetail detail = new DeliveryNoticeDetail();
BeanUtil.copyProperties(list, detail);
detail.setPid(id);
@@ -70,15 +83,47 @@
if (StrUtil.isNotEmpty(detail.getPoLineNo())) {
String[] split = detail.getPoLineNo().split("-");
detail.setPoLineNo(split[0]);
+ detail.setPlanLineNo(split[1] + "-" + detail.getDeliveryQty());
}
-
+
noticeDetails.add(detail);
}
return save(deliveryNotice) && detailService.saveBatch(noticeDetails);
}
-}
+
+ @Override
+ public void callPdaReceiptBtn(String inStr, String result) {
+ baseMapper.callPdaReceiptBtn(inStr, result);
+ }
+
+ @Override
+ public Integer processMesInvItemArnStatus(String factory, String company, String userCode, Long id) {
+ Integer poResult = 1;
+ String poText = "";
+
+ // 璋冪敤瀛樺偍杩囩▼
+ baseMapper.callPrcMesInvItemArnStatus22(factory, company, userCode, id, poResult, poText);
+
+ // 杩斿洖缁撴灉
+ return poResult;
+ }
+
+ //
-
-
+ @Override
+ public void processMesInvItemArnStatusAsync(List<MesInvItemArn> itemArnMinus) {
+ // 閬嶅巻姣忎釜 itemArn
+ itemArnMinus.forEach(itemArn -> {
+ try {
+ // 澶勭悊姣忎釜 itemArn
+ processMesInvItemArnStatus("1000", "1000", "PL017", itemArn.getId());
+ } catch (Exception e) {
+ // 澶勭悊寮傚父锛屼緥濡傝褰曟棩蹇�
+ System.err.println("Error processing itemArn: " + itemArn.getId());
+ e.printStackTrace();
+ }
+ });
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.3