From e2ba28674fb5a6ab0fe85e2d0f09cd94fa496dff Mon Sep 17 00:00:00 2001
From: Administrator <2856754968@qq.com>
Date: 星期五, 14 十一月 2025 13:54:56 +0800
Subject: [PATCH] 111
---
src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 113 insertions(+), 0 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 3b53c96..6e76e81 100644
--- a/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java
+++ b/src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java
@@ -100,6 +100,27 @@
}
@Override
+ public Object[] callPdaReceiptBtn1(String deliveryNo, String userid) {
+ // 鍒涘缓鐢ㄤ簬鎺ユ敹杈撳嚭鍙傛暟鐨勫彉閲�
+ Integer res = null;
+ String msg = null;
+
+ try {
+ // 璋冪敤瀛樺偍杩囩▼
+ baseMapper.callPdaReceiptBtn1(deliveryNo, userid, res, msg);
+
+ log.info("璋冪敤瀛樺偍杩囩▼PRC_RF_PDA_RECEIPT_BTN_test001鎴愬姛: 閫佽揣鍗曞彿={}, 鐢ㄦ埛ID={}, 缁撴灉鐮�={}, 娑堟伅={}",
+ deliveryNo, userid, res, msg);
+
+ return new Object[]{res, msg};
+ } catch (Exception e) {
+ log.error("璋冪敤瀛樺偍杩囩▼PRC_RF_PDA_RECEIPT_BTN_test001澶辫触: 閫佽揣鍗曞彿={}, 鐢ㄦ埛ID={}, 寮傚父={}",
+ deliveryNo, userid, e.getMessage(), e);
+ throw e;
+ }
+ }
+
+ @Override
public Integer processMesInvItemArnStatus(String factory, String company, String userCode, Long id) {
Integer poResult = 1;
String poText = "";
@@ -154,6 +175,98 @@
log.info("銆恜rocessAsyncBatch銆戝紓姝ュ鐞唟}鏉℃暟鎹畬鎴�", batchItems.size());
}
+ @Override
+ public boolean setDeliveryNotice() {
+ LambdaQueryWrapper<DeliveryNoticeDetail> nullPoErpNoWrapper = new LambdaQueryWrapper<>();
+ nullPoErpNoWrapper.isNull(DeliveryNoticeDetail::getPoErpNo);
+ nullPoErpNoWrapper.orderByAsc(DeliveryNoticeDetail::getPid, DeliveryNoticeDetail::getLineNo);
+
+ List<DeliveryNoticeDetail> nullPoErpNoList = detailService.list(nullPoErpNoWrapper);
+
+ if (CollUtil.isEmpty(nullPoErpNoList)) {
+ log.info("娌℃湁鎵惧埌闇�瑕佹洿鏂扮殑PO_ERP_NO涓簄ull鐨勮褰�");
+ return true;
+ }
+
+ log.info("鎵惧埌{}鏉O_ERP_NO涓簄ull鐨勮褰曢渶瑕佹洿鏂�", nullPoErpNoList.size());
+
+ int updatedCount = 0;
+
+ for (DeliveryNoticeDetail nullRecord : nullPoErpNoList) {
+ Integer currentLineNo;
+ try {
+ currentLineNo = Integer.parseInt(nullRecord.getLineNo());
+
+ // 濡傛灉LINE_NO涓�1锛岃烦杩囪繖鏉¤褰曪紝缁х画澶勭悊涓嬩竴鏉�
+ if (currentLineNo == 1) {
+ log.info("璺宠繃LINE_NO涓�1鐨勮褰�: ID={}, 缁х画澶勭悊鍏朵粬璁板綍", nullRecord.getId());
+ continue;
+ }
+
+ } catch (NumberFormatException e) {
+ log.warn("鏃犳硶瑙f瀽LINE_NO涓烘暟瀛�: {}, 璺宠繃杩欐潯璁板綍", nullRecord.getLineNo());
+ continue;
+ }
+
+ // 鑾峰彇鍚屼竴PID涓嬫墍鏈夎褰�
+ LambdaQueryWrapper<DeliveryNoticeDetail> sameParentWrapper = new LambdaQueryWrapper<>();
+ sameParentWrapper.eq(DeliveryNoticeDetail::getPid, nullRecord.getPid());
+
+ List<DeliveryNoticeDetail> allRecords = detailService.list(sameParentWrapper);
+
+ // 鎸塋INE_NO椤哄簭渚濇鍚戝墠鏌ユ壘绗竴涓狿O_ERP_NO涓嶄负null鐨勮褰�
+ DeliveryNoticeDetail nearestRecord = null;
+
+ // 浠庡綋鍓峀INE_NO-1寮�濮嬪悜鍓嶆煡鎵�
+ for (int searchLineNo = currentLineNo - 1; searchLineNo >= 1; searchLineNo--) {
+ for (DeliveryNoticeDetail candidate : allRecords) {
+ try {
+ Integer candidateLineNo = Integer.parseInt(candidate.getLineNo());
+ if (candidateLineNo.equals(searchLineNo) && StrUtil.isNotEmpty(candidate.getPoErpNo())) {
+ nearestRecord = candidate;
+ break;
+ }
+ } catch (NumberFormatException e) {
+ log.warn("鏃犳硶瑙f瀽鍊欓�夎褰昄INE_NO涓烘暟瀛�: {}", candidate.getLineNo());
+ }
+ }
+ // 濡傛灉鎵惧埌浜嗗氨璺冲嚭澶栧眰寰幆
+ if (nearestRecord != null) {
+ break;
+ }
+ }
+
+ if (nearestRecord != null && StrUtil.isNotEmpty(nearestRecord.getPoErpNo())) {
+ LambdaUpdateWrapper<DeliveryNoticeDetail> updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.eq(DeliveryNoticeDetail::getId, nullRecord.getId())
+ .set(DeliveryNoticeDetail::getPoErpNo, nearestRecord.getPoErpNo())
+ .set(DeliveryNoticeDetail::getPurchaseType, nearestRecord.getPurchaseType())
+ .set(DeliveryNoticeDetail::getPoLineNo, nearestRecord.getPoLineNo());
+
+ boolean updated = detailService.update(updateWrapper);
+ if (updated) {
+ updatedCount++;
+ log.info("鏇存柊璁板綍ID: {}, LINE_NO: {}, 璁剧疆PO_ERP_NO涓�: {} (鏉ユ簮LINE_NO: {})",
+ nullRecord.getId(), nullRecord.getLineNo(), nearestRecord.getPoErpNo(), nearestRecord.getLineNo());
+
+// LambdaQueryWrapper<DeliveryNotice> queryWrapper = new LambdaQueryWrapper<>();
+// queryWrapper.eq(DeliveryNotice::getId, nullRecord.getPid());
+// DeliveryNotice one = getOne(queryWrapper, false);
+//
+// callPdaReceiptBtn1(one.getDeliveryNo(), "PL017");
+ } else {
+ log.error("鏇存柊璁板綍ID: {} 澶辫触", nullRecord.getId());
+ }
+ } else {
+ log.error("璁板綍ID: {}, LINE_NO: {} 鎵句笉鍒板彲鐢ㄧ殑PO_ERP_NO鍊硷紝闇�瑕佷汉宸ュ鐞�",
+ nullRecord.getId(), nullRecord.getLineNo());
+ }
+ }
+
+ log.info("鍏辨洿鏂颁簡{}鏉¤褰�", updatedCount);
+ return updatedCount > 0;
+ }
+
/**
* 鎵归噺澶勭悊MesInvItemArn鏁版嵁
*
--
Gitblit v1.9.3