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/task/ScheduledTasks.java | 16 ++++-
src/main/java/com/gs/xky/mapper/MesInvItemArnDetailMapper.java | 4 +
src/main/java/com/gs/xky/mapper/MesInvItemArnMapper.java | 3 +
src/main/java/com/gs/xky/mapper/DeliveryNoticeMapper.java | 8 ++
src/main/java/com/gs/xky/service/Impl/MesInvItemArnServiceImpl.java | 7 ++
src/main/java/com/gs/xky/service/Impl/DeliveryNoticeServiceImpl.java | 36 +++++++++++-
src/test/java/com/gs/xky/XkyApplicationTests.java | 28 +++++----
src/main/resources/mapper/DeliveryNoticeMapper.xml | 12 ++++
src/main/java/com/gs/xky/service/DeliveryNoticeService.java | 7 ++
src/main/resources/mapper/MesInvItemArnMapper.xml | 13 ++++
src/main/java/com/gs/xky/service/MesInvItemArnService.java | 3 +
src/main/resources/mapper/MesInvItemArnDetailMapper.xml | 6 ++
src/main/resources/application.yml | 2
13 files changed, 126 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/gs/xky/mapper/DeliveryNoticeMapper.java b/src/main/java/com/gs/xky/mapper/DeliveryNoticeMapper.java
index 0028e2a..6d6a002 100644
--- a/src/main/java/com/gs/xky/mapper/DeliveryNoticeMapper.java
+++ b/src/main/java/com/gs/xky/mapper/DeliveryNoticeMapper.java
@@ -21,6 +21,14 @@
* @param result 杈撳嚭鍙傛暟
*/
void callPdaReceiptBtn(@Param("C_IN_STR") String inStr, @Param("C_RESULT") String result);
+
+ //PRC_MES_INV_ITEM_ARN_STATUS22
+ void callPrcMesInvItemArnStatus22(@Param("PI_FACTORY") String factory,
+ @Param("PI_COMPANY") String company,
+ @Param("P_USERCODE") String userCode,
+ @Param("P_ID") Long id,
+ @Param("PO_RESULT") Integer poResult,
+ @Param("PO_TEXT") String poText);
}
diff --git a/src/main/java/com/gs/xky/mapper/MesInvItemArnDetailMapper.java b/src/main/java/com/gs/xky/mapper/MesInvItemArnDetailMapper.java
index fa58444..09a6676 100644
--- a/src/main/java/com/gs/xky/mapper/MesInvItemArnDetailMapper.java
+++ b/src/main/java/com/gs/xky/mapper/MesInvItemArnDetailMapper.java
@@ -2,6 +2,9 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gs.xky.entity.MesInvItemArnDetail;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* @author 28567
@@ -11,6 +14,7 @@
*/
public interface MesInvItemArnDetailMapper extends BaseMapper<MesInvItemArnDetail> {
+ List<MesInvItemArnDetail> selectListByMid(@Param("mid") String mid);
}
diff --git a/src/main/java/com/gs/xky/mapper/MesInvItemArnMapper.java b/src/main/java/com/gs/xky/mapper/MesInvItemArnMapper.java
index 14cd385..a75e635 100644
--- a/src/main/java/com/gs/xky/mapper/MesInvItemArnMapper.java
+++ b/src/main/java/com/gs/xky/mapper/MesInvItemArnMapper.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gs.xky.entity.MesInvItemArn;
+import java.util.List;
+
/**
* @author 28567
* @description 閽堝琛ㄣ�怣ES_INV_ITEM_ARN(鐗╂枡鍏ュ簱涓昏〃)銆戠殑鏁版嵁搴撴搷浣淢apper
@@ -11,6 +13,7 @@
*/
public interface MesInvItemArnMapper extends BaseMapper<MesInvItemArn> {
+ List<MesInvItemArn> selectItemArnMinus();
}
diff --git a/src/main/java/com/gs/xky/service/DeliveryNoticeService.java b/src/main/java/com/gs/xky/service/DeliveryNoticeService.java
index e123ddc..e14b875 100644
--- a/src/main/java/com/gs/xky/service/DeliveryNoticeService.java
+++ b/src/main/java/com/gs/xky/service/DeliveryNoticeService.java
@@ -3,6 +3,9 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.gs.xky.dto.XkyDetail;
import com.gs.xky.entity.DeliveryNotice;
+import com.gs.xky.entity.MesInvItemArn;
+
+import java.util.List;
/**
* @author 28567
@@ -15,4 +18,8 @@
void callPdaReceiptBtn(String inStr, String result);
+
+ Integer processMesInvItemArnStatus(String factory, String company, String userCode, Long id);
+
+ void processMesInvItemArnStatusAsync(List<MesInvItemArn> itemArnMinus);
}
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 22fd36d..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,9 +10,11 @@
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;
@@ -33,6 +35,8 @@
implements DeliveryNoticeService {
private final DeliveryNoticeDetailService detailService;
+
+ private final MesInvItemArnService invItemArnService;
@Override
@@ -92,8 +96,34 @@
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
diff --git a/src/main/java/com/gs/xky/service/Impl/MesInvItemArnServiceImpl.java b/src/main/java/com/gs/xky/service/Impl/MesInvItemArnServiceImpl.java
index f323c3f..bb0b0c0 100644
--- a/src/main/java/com/gs/xky/service/Impl/MesInvItemArnServiceImpl.java
+++ b/src/main/java/com/gs/xky/service/Impl/MesInvItemArnServiceImpl.java
@@ -6,6 +6,8 @@
import com.gs.xky.service.MesInvItemArnService;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
* @author 28567
* @description 閽堝琛ㄣ�怣ES_INV_ITEM_ARN(鐗╂枡鍏ュ簱涓昏〃)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
@@ -15,6 +17,11 @@
public class MesInvItemArnServiceImpl extends ServiceImpl<MesInvItemArnMapper, MesInvItemArn>
implements MesInvItemArnService {
+
+ @Override
+ public List<MesInvItemArn> getItemArnMinus() {
+ return baseMapper.selectItemArnMinus();
+ }
}
diff --git a/src/main/java/com/gs/xky/service/MesInvItemArnService.java b/src/main/java/com/gs/xky/service/MesInvItemArnService.java
index e0f2b64..71fa207 100644
--- a/src/main/java/com/gs/xky/service/MesInvItemArnService.java
+++ b/src/main/java/com/gs/xky/service/MesInvItemArnService.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.gs.xky.entity.MesInvItemArn;
+import java.util.List;
+
/**
* @author 28567
* @description 閽堝琛ㄣ�怣ES_INV_ITEM_ARN(鐗╂枡鍏ュ簱涓昏〃)銆戠殑鏁版嵁搴撴搷浣淪ervice
@@ -10,4 +12,5 @@
*/
public interface MesInvItemArnService extends IService<MesInvItemArn> {
+ List<MesInvItemArn> getItemArnMinus();
}
diff --git a/src/main/java/com/gs/xky/task/ScheduledTasks.java b/src/main/java/com/gs/xky/task/ScheduledTasks.java
index 410dee3..60e53f9 100644
--- a/src/main/java/com/gs/xky/task/ScheduledTasks.java
+++ b/src/main/java/com/gs/xky/task/ScheduledTasks.java
@@ -5,9 +5,8 @@
import com.gs.xky.config.DingTalkParam;
import com.gs.xky.config.DingTalkResponse;
import com.gs.xky.dto.EmployeeInfo;
-import com.gs.xky.service.ApiService;
-import com.gs.xky.service.MesStaffService;
-import com.gs.xky.service.XkyService;
+import com.gs.xky.entity.MesInvItemArn;
+import com.gs.xky.service.*;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -26,6 +25,10 @@
private final MesStaffService staffService;
+ private final DeliveryNoticeService deliveryNoticeService;
+
+ private final MesInvItemArnService invItemArnService;
+
/**
* 姣忎簲鍒嗛挓鎵ц涓�娆�
* 鑾峰彇璁惧鏈�杩戠殑涓�鏉¤褰�
@@ -40,6 +43,13 @@
xkyService.GetSaveDetail();
}
+ @Scheduled(cron = "10 3,8,13,18,23,28,33,38,43,48,53,58 * * * ?")
+ public void compensateMethod() throws IOException {
+ // 琛ュ伩閫昏緫
+ List<MesInvItemArn> itemArnMinus = invItemArnService.getItemArnMinus();
+ deliveryNoticeService.processMesInvItemArnStatusAsync(itemArnMinus);
+ }
+
@Scheduled(cron = "0 0/53 * * * ?")
public void getDinTalkData() throws IOException {
DingTalkParam dingTalkParam = new DingTalkParam(1);
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 23d7f85..25dad16 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -5,7 +5,7 @@
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: oracle.jdbc.OracleDriver
- url: jdbc:oracle:thin:@122.226.249.238:5936/ORCL
+ url: jdbc:oracle:thin:@192.168.1.104:1521/ORCL
username: zmz_prd
password: zmzprd
druid:
diff --git a/src/main/resources/mapper/DeliveryNoticeMapper.xml b/src/main/resources/mapper/DeliveryNoticeMapper.xml
index a4c2215..9628047 100644
--- a/src/main/resources/mapper/DeliveryNoticeMapper.xml
+++ b/src/main/resources/mapper/DeliveryNoticeMapper.xml
@@ -4,6 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gs.xky.mapper.DeliveryNoticeMapper">
+
<select id="getNextVal" resultType="java.lang.Long">
SELECT SEQ_XKY.NEXTVAL
FROM DUAL
@@ -16,4 +17,15 @@
#{C_RESULT, mode=OUT, jdbcType=VARCHAR}
)}
</select>
+
+ <select id="callPrcMesInvItemArnStatus22" statementType="CALLABLE" resultType="java.lang.String">
+ {call PRC_MES_INV_ITEM_ARN_STATUS22(
+ #{PI_FACTORY, mode=IN, jdbcType=VARCHAR},
+ #{PI_COMPANY, mode=IN, jdbcType=VARCHAR},
+ #{P_USERCODE, mode=IN, jdbcType=VARCHAR},
+ #{P_ID, mode=IN, jdbcType=NUMERIC},
+ #{PO_RESULT, mode=OUT, jdbcType=NUMERIC},
+ #{PO_TEXT, mode=OUT, jdbcType=VARCHAR}
+ )}
+ </select>
</mapper>
diff --git a/src/main/resources/mapper/MesInvItemArnDetailMapper.xml b/src/main/resources/mapper/MesInvItemArnDetailMapper.xml
index bad7565..48ea5e1 100644
--- a/src/main/resources/mapper/MesInvItemArnDetailMapper.xml
+++ b/src/main/resources/mapper/MesInvItemArnDetailMapper.xml
@@ -4,4 +4,10 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gs.xky.mapper.MesInvItemArnDetailMapper">
+ <select id="selectListByMid" resultType="com.gs.xky.entity.MesInvItemArnDetail">
+ SELECT EBELN, WORK_LINE, ITEM_NO, ITEM_ID, ID
+ FROM mes_inv_item_arn_detail
+ WHERE MID = #{mid}
+ GROUP BY EBELN, WORK_LINE, ITEM_NO, ITEM_ID, ID
+ </select>
</mapper>
diff --git a/src/main/resources/mapper/MesInvItemArnMapper.xml b/src/main/resources/mapper/MesInvItemArnMapper.xml
index 43a618c..5c29da2 100644
--- a/src/main/resources/mapper/MesInvItemArnMapper.xml
+++ b/src/main/resources/mapper/MesInvItemArnMapper.xml
@@ -4,4 +4,17 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gs.xky.mapper.MesInvItemArnMapper">
+ <select id="selectItemArnMinus" resultType="com.gs.xky.entity.MesInvItemArn">
+ select *
+ from mes_inv_item_arn
+ where BILL_NO in (select BILL_NO
+ from (select b.BILL_NO
+ from mes_inv_item_arn_detail a
+ left join mes_inv_item_arn b on a.mid = b.id
+ where a.check_states = '寰呮')
+ minus
+ select LOT_NO
+ from MES_QA_ITEMS_DETECT_01)
+ and FSTATUS = 1
+ </select>
</mapper>
diff --git a/src/test/java/com/gs/xky/XkyApplicationTests.java b/src/test/java/com/gs/xky/XkyApplicationTests.java
index 5b77922..35d4455 100644
--- a/src/test/java/com/gs/xky/XkyApplicationTests.java
+++ b/src/test/java/com/gs/xky/XkyApplicationTests.java
@@ -1,13 +1,12 @@
package com.gs.xky;
-import com.alibaba.fastjson2.JSON;
import com.gs.xky.config.ApiResponse;
import com.gs.xky.config.BodyParam;
import com.gs.xky.config.DataAcquisitionConfiguration;
import com.gs.xky.config.XkyCommonParam;
import com.gs.xky.dto.BarcodeDeliveryNo;
-import com.gs.xky.dto.LineList;
import com.gs.xky.dto.XkyDetail;
+import com.gs.xky.entity.MesInvItemArn;
import com.gs.xky.service.*;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -15,7 +14,6 @@
import java.io.IOException;
import java.util.List;
-import java.util.stream.Collectors;
@SpringBootTest
class XkyApplicationTests {
@@ -36,10 +34,16 @@
@Autowired
private TblBarcodeInformationService barcodeInformationService;
+ @Autowired
+ private MesInvItemArnService invItemArnService;
+
@Test
void contextLoads() throws IOException {
-// xkyService.GetSaveDetail();
+ List<MesInvItemArn> itemArnMinus = invItemArnService.getItemArnMinus();
+
+ deliveryNoticeService.processMesInvItemArnStatusAsync(itemArnMinus);
+
}
@Test
@@ -50,7 +54,7 @@
BodyParam bodyParam = new BodyParam();
bodyParam.setErpCode(DataAcquisitionConfiguration.TEST_ERP_CODE);
- bodyParam.setDeliveryNo("222504146397");
+ bodyParam.setDeliveryNo("222504279H65");
bodyParam.setStatus(new int[]{1, 6});
param.setBody(bodyParam);
@@ -58,13 +62,13 @@
ApiResponse<XkyDetail> detail = apiService.sendListRequest(param, XkyDetail.class, "https://openapi.xiekeyun.com/delivery/getDetail.json");
XkyDetail deliveryNo = detail.getData();
- List<LineList> collect = deliveryNo.getLineList().stream().filter(s -> "1".equals(s.getStatus())).collect(Collectors.toList());
- System.out.println(JSON.toJSONString(collect));
-// deliveryNoticeService.saveDeliveryNotice(deliveryNo);
-// List<BarcodeDeliveryNo> barcodeDeliveryNos = GetBarcodeInformation(deliveryNo.getDeliveryNo());
-// barcodeInformationService.SaveBarcodeInformation(barcodeDeliveryNos, deliveryNo.getDeliveryNo());
-//
-// deliveryNoticeService.callPdaReceiptBtn("閫佽揣鍗曠鏀禰BTNOK[PL017[" + deliveryNo.getDeliveryNo(), "");
+// List<LineList> collect = deliveryNo.getLineList().stream().filter(s -> "1".equals(s.getStatus())).collect(Collectors.toList());
+// System.out.println(JSON.toJSONString(collect));
+ deliveryNoticeService.saveDeliveryNotice(deliveryNo);
+ List<BarcodeDeliveryNo> barcodeDeliveryNos = GetBarcodeInformation(deliveryNo.getDeliveryNo());
+ barcodeInformationService.SaveBarcodeInformation(barcodeDeliveryNos, deliveryNo.getDeliveryNo());
+
+ deliveryNoticeService.callPdaReceiptBtn("閫佽揣鍗曠鏀禰BTNOK[PL017[" + deliveryNo.getDeliveryNo(), "");
}
private List<BarcodeDeliveryNo> GetBarcodeInformation(String deliveryNo) throws IOException {
--
Gitblit v1.9.3