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 | 64 +++++++++++++++++++++++++++++---
1 files changed, 58 insertions(+), 6 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 dbe82a4..01c0d13 100644
--- a/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java
+++ b/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java
@@ -2,6 +2,7 @@
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -9,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
@@ -32,6 +36,8 @@
private final DeliveryNoticeDetailService detailService;
+ private final MesInvItemArnService invItemArnService;
+
@Override
public boolean saveDeliveryNotice(XkyDetail xkyDetail) {
@@ -40,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);
@@ -61,17 +73,57 @@
}
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);
+
+ 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