From a5e75aabaef8ff2dffea466f750c17a486d50cfb Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期五, 30 五月 2025 09:33:07 +0800 Subject: [PATCH] 添加srm与U9订单数据的对比 --- src/main/java/com/gs/xky/service/XkyService.java | 160 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 112 insertions(+), 48 deletions(-) diff --git a/src/main/java/com/gs/xky/service/XkyService.java b/src/main/java/com/gs/xky/service/XkyService.java index 732e6b3..0ec06d5 100644 --- a/src/main/java/com/gs/xky/service/XkyService.java +++ b/src/main/java/com/gs/xky/service/XkyService.java @@ -1,6 +1,9 @@ package com.gs.xky.service; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.gs.xky.config.ApiResponse; import com.gs.xky.config.BodyParam; @@ -9,10 +12,10 @@ import com.gs.xky.dto.BarcodeDeliveryNo; import com.gs.xky.dto.XkyDetail; import com.gs.xky.dto.XkyEntity; -import com.gs.xky.entity.DeliveryNotice; -import com.gs.xky.entity.DeliveryNoticeDetail; -import com.gs.xky.entity.TblBarcodeInformation; +import com.gs.xky.entity.*; import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -24,81 +27,98 @@ @RequiredArgsConstructor public class XkyService { + private static final Logger log = LoggerFactory.getLogger(XkyService.class); private final ApiService apiService; - - private final DeliveryNoticeService deliveryNoticeService; private final TblBarcodeInformationService barcodeInformationService; private final DeliveryNoticeDetailService deliveryNoticeDetailService; + private final MesInvItemArnService mesInvItemArnService; + private final MesInvItemArnDetailService mesInvItemArnDetailService; + private final MesInvItemBarcodesService mesInvItemBarcodesService; + + private final MesQaItemsDetect01Service mesQaItemsDetect01Service; + public void GetSaveDetail() throws IOException { long currentTimeMillis = System.currentTimeMillis(); + long startDate = currentTimeMillis - (20 * 60 * 1000); // 璁$畻 20 鍒嗛挓鍓嶇殑鏃堕棿鎴� - XkyCommonParam param = XkyCommonParam.GetInit(); - - // 璁$畻浜斿垎閽熷墠鐨勬椂闂存埑 - long startDate = currentTimeMillis - (65 * 60 * 1000); // 5 鍒嗛挓 = 5 * 60 * 1000 姣 - - // 鍒涘缓 BodyParam 瀵硅薄骞惰祴鍊� + XkyCommonParam<BodyParam> param = XkyCommonParam.GetInit(); BodyParam bodyParam = new BodyParam(); bodyParam.setStartDate(startDate); bodyParam.setEndDate(currentTimeMillis); bodyParam.setErpCode(DataAcquisitionConfiguration.TEST_ERP_CODE); - bodyParam.setStatus(new int[]{1}); - bodyParam.setLogisticsStatus(2); - + bodyParam.setStatus(new int[]{1, 6}); param.setBody(bodyParam); + + // 璁板綍璇锋眰鍙傛暟鏃ュ織 + log.info("銆怗etSaveDetail 璇锋眰鍙傛暟銆戞椂闂�: {}, 鍙傛暟: {}", currentTimeMillis, JSONUtil.toJsonStr(param)); ApiResponse<XkyEntity> noList = apiService.sendListRequest(param, XkyEntity.class, "https://openapi.xiekeyun.com/delivery/getNoList.json"); -// List<String> deliveryNoList = noList.getDataList().stream().map(XkyEntity::getDeliveryNo).collect(Collectors.toList()); + // 璁板綍杩斿洖鏁版嵁鏃ュ織 + log.info("銆怗etSaveDetail 鍝嶅簲鏁版嵁銆戞椂闂�: {}, 杩斿洖: {}", currentTimeMillis, JSONUtil.toJsonStr(noList)); List<XkyEntity> deliveryNoList = noList.getDataList(); - - LambdaUpdateWrapper<DeliveryNotice> deliveryNoticeWrapper = new LambdaUpdateWrapper<>(); - - LambdaUpdateWrapper<DeliveryNoticeDetail> updateWrapper = new LambdaUpdateWrapper<>(); - - LambdaUpdateWrapper<TblBarcodeInformation> updateWrapper1 = new LambdaUpdateWrapper<>(); + if (CollUtil.isEmpty(deliveryNoList)) { + log.info("銆怗etSaveDetail銆戣繑鍥炲垪琛ㄤ负绌猴紝璺宠繃澶勭悊"); + return; + } deliveryNoList.forEach(deliveryNo -> { try { - - if ("4".equals(deliveryNo.getStatus()) || "8".equals(deliveryNo.getStatus())) { - deliveryNoticeWrapper.clear(); - updateWrapper.clear(); - updateWrapper1.clear(); - deliveryNoticeWrapper.eq(DeliveryNotice::getDeliveryNo, deliveryNo.getDeliveryNo()); - - DeliveryNotice one = deliveryNoticeService.getOne(deliveryNoticeWrapper, false); - - if (deliveryNoticeService.remove(deliveryNoticeWrapper)) { - - updateWrapper.eq(DeliveryNoticeDetail::getPid, one.getId()); - deliveryNoticeDetailService.remove(updateWrapper); - - updateWrapper1.eq(TblBarcodeInformation::getDeliveryNo, deliveryNo.getDeliveryNo()); - barcodeInformationService.remove(updateWrapper1); + if ("6".equals(deliveryNo.getStatus()) || "0".equals(deliveryNo.getLogisticsStatus())) { + log.info("銆怗etSaveDetail銆戠Щ闄ら�佽揣鍗�: {}", deliveryNo.getDeliveryNo()); + remove1(deliveryNo); + } else if ("1".equals(deliveryNo.getStatus()) && ("2".equals(deliveryNo.getLogisticsStatus()) || "1".equals(deliveryNo.getLogisticsStatus()))) { + XkyDetail detail = getDetail(deliveryNo.getDeliveryNo()); + deliveryNoticeService.saveDeliveryNotice(detail); + List<BarcodeDeliveryNo> barcodeDeliveryNos = GetBarcodeInformation(deliveryNo.getDeliveryNo()); + barcodeInformationService.SaveBarcodeInformation(barcodeDeliveryNos, deliveryNo.getDeliveryNo()); + //宸查�佽揪鐨勬墠鑷姩杞崲涓篗ES鍒拌揣鍗� + if ("2".equals(deliveryNo.getLogisticsStatus())) { + deliveryNoticeService.callPdaReceiptBtn("閫佽揣鍗曠鏀禰BTNOK[PL017[" + deliveryNo.getDeliveryNo(), ""); } - - } - - XkyDetail detail = getDetail(deliveryNo.getDeliveryNo()); - deliveryNoticeService.saveDeliveryNotice(detail); - List<BarcodeDeliveryNo> barcodeDeliveryNos = GetBarcodeInformation(deliveryNo.getDeliveryNo()); - barcodeInformationService.SaveBarcodeInformation(barcodeDeliveryNos, deliveryNo.getDeliveryNo()); - - deliveryNoticeService.callPdaReceiptBtn("閫佽揣鍗曠鏀禰BTNOK[PL017[" + deliveryNo.getDeliveryNo(), ""); } catch (IOException e) { + log.error("銆怗etSaveDetail 澶勭悊寮傚父銆戦�佽揣鍗�: {}, 寮傚父: {}", deliveryNo.getDeliveryNo(), e.getMessage(), e); throw new RuntimeException(e); } }); } + public void remove1(XkyEntity deliveryNo) { + + //MesQaItemsDetect01涓嶮esInvItemArnDetail鐨勫叧鑱斿叧绯绘槸 + //MesQaItemsDetect01.lotNo=MesInvItemArnDetail.billNo + //and MesQaItemsDetect01.item_id=MesInvItemArnDetail.item_id + + //鎴戠幇鍦ㄥ笇鏈涗笉娓呯┖DeliveryNotice锛孌eliveryNoticeDetail锛孴blBarcodeInformation琛ㄧ殑鏁版嵁浜� + //杩樻湁MesInvItemArn锛孧esInvItemArnDetail锛孧esInvItemBarcodes琛ㄧ殑鏁版嵁 + //鍙垹闄esQaItemsDetect01琛ㄧ殑鏁版嵁 + + LambdaQueryWrapper<MesInvItemArn> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MesInvItemArn::getPaperBillNo, deliveryNo.getDeliveryNo()); + MesInvItemArn mesInvItemArn = mesInvItemArnService.getOne(wrapper, false); + + // 鍙湁褰撴壘鍒板搴旂殑MesInvItemArn璁板綍鏃舵墠鍒犻櫎MesQaItemsDetect01琛ㄧ殑鏁版嵁 + if (mesInvItemArn != null) { + // 鏇存柊MesInvItemArn琛紝璁剧疆syncFlag=1锛宻yncMsg="SRM鎵嬪姩鍒犻櫎閫佽揣鍗�" + LambdaUpdateWrapper<MesInvItemArn> updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(MesInvItemArn::getId, mesInvItemArn.getId()) + .set(MesInvItemArn::getSyncFlag, 1) + .set(MesInvItemArn::getStatus, 1) + .set(MesInvItemArn::getSyncMsg, "SRM鎵嬪姩鍒犻櫎閫佽揣鍗�"); + mesInvItemArnService.update(updateWrapper); + + // 鍒犻櫎MesQaItemsDetect01琛ㄧ殑鏁版嵁 + mesQaItemsDetect01Service.removeQa(mesInvItemArn.getBillNo()); + } + } + private XkyDetail getDetail(String deliveryNo) throws IOException { - XkyCommonParam param = XkyCommonParam.GetInit(); + XkyCommonParam<BodyParam> param = XkyCommonParam.GetInit(); // 鍒涘缓 BodyParam 瀵硅薄骞惰祴鍊� BodyParam bodyParam = new BodyParam(); @@ -115,7 +135,7 @@ } private List<BarcodeDeliveryNo> GetBarcodeInformation(String deliveryNo) throws IOException { - XkyCommonParam param = XkyCommonParam.GetInit(); + XkyCommonParam<BodyParam> param = XkyCommonParam.GetInit(); // 鍒涘缓 BodyParam 瀵硅薄骞惰祴鍊� BodyParam bodyParam = new BodyParam(); @@ -130,4 +150,48 @@ return noList.getDataList(); } + + private void remove(XkyEntity deliveryNo) { + LambdaUpdateWrapper<DeliveryNotice> deliveryNoticeWrapper = new LambdaUpdateWrapper<>(); + + deliveryNoticeWrapper.eq(DeliveryNotice::getDeliveryNo, deliveryNo.getDeliveryNo()); + + DeliveryNotice one = deliveryNoticeService.getOne(deliveryNoticeWrapper, false); + + if (deliveryNoticeService.remove(deliveryNoticeWrapper)) { + + LambdaUpdateWrapper<DeliveryNoticeDetail> updateWrapper = new LambdaUpdateWrapper<>(); + + updateWrapper.eq(DeliveryNoticeDetail::getPid, one.getId()); + + deliveryNoticeDetailService.remove(updateWrapper); + + LambdaUpdateWrapper<TblBarcodeInformation> updateWrapper1 = new LambdaUpdateWrapper<>(); + + updateWrapper1.eq(TblBarcodeInformation::getDeliveryNo, deliveryNo.getDeliveryNo()); + + barcodeInformationService.remove(updateWrapper1); + + LambdaQueryWrapper<MesInvItemArn> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(MesInvItemArn::getPaperBillNo, deliveryNo.getDeliveryNo()); + + MesInvItemArn mesInvItemArn = mesInvItemArnService.getOne(wrapper, false); + + mesInvItemArnService.remove(wrapper); + + if (mesInvItemArn != null) { + LambdaUpdateWrapper<MesInvItemArnDetail> updateWrapper2 = new LambdaUpdateWrapper<>(); + + updateWrapper2.eq(MesInvItemArnDetail::getMid, mesInvItemArn.getId()); + mesInvItemArnDetailService.remove(updateWrapper2); + + LambdaUpdateWrapper<MesInvItemBarcodes> updateWrapper3 = new LambdaUpdateWrapper<>(); + + updateWrapper3.eq(MesInvItemBarcodes::getBillNo, mesInvItemArn.getBillNo()); + mesInvItemBarcodesService.remove(updateWrapper3); + + mesQaItemsDetect01Service.removeQa(mesInvItemArn.getBillNo()); + } + } + } } -- Gitblit v1.9.3