From e012a72a5660566d698c93ca4f29b6e5ffe997b0 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 29 十月 2025 16:47:35 +0800
Subject: [PATCH] 3077,3106只有合格能出,2041 只有待判能出
---
src/main/java/com/zy/asrs/importexcle/ImportReviewListener.java | 102 +++++++++++++++++++++++++++++----------------------
1 files changed, 58 insertions(+), 44 deletions(-)
diff --git a/src/main/java/com/zy/asrs/importexcle/ImportReviewListener.java b/src/main/java/com/zy/asrs/importexcle/ImportReviewListener.java
index 43991df..1ce2a78 100644
--- a/src/main/java/com/zy/asrs/importexcle/ImportReviewListener.java
+++ b/src/main/java/com/zy/asrs/importexcle/ImportReviewListener.java
@@ -3,13 +3,19 @@
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
+import com.core.common.DateUtils;
import com.core.common.SnowflakeIdWorker;
-import com.zy.asrs.entity.OrderDetl;
+import com.core.exception.CoolException;
+import com.zy.asrs.entity.Review;
+import com.zy.asrs.entity.ReviewDetl;
import com.zy.asrs.service.ReviewDetlService;
import com.zy.asrs.service.ReviewService;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.TransactionStatus;
import java.util.*;
@@ -23,29 +29,32 @@
/**
* 姣忛殧1000鏉″瓨鍌ㄦ暟鎹簱锛屽疄闄呬娇鐢ㄤ腑鍙互3000鏉★紝鐒跺悗娓呯悊list 锛屾柟渚垮唴瀛樺洖鏀�
*/
- private static final int BATCH_COUNT = 400;
+ private static final int BATCH_COUNT = 2000;
private int count = 0;
- private String orderNo;
private long orderId;
- private long docTypeId;
List<ImportReviewDto> list = new ArrayList<>();
/**
* 鍋囪杩欎釜鏄竴涓狣AO锛屽綋鐒舵湁涓氬姟閫昏緫杩欎釜涔熷彲浠ユ槸涓�涓猻ervice銆傚綋鐒跺鏋滀笉鐢ㄥ瓨鍌ㄨ繖涓璞℃病鐢ㄣ��
*/
+ private final PlatformTransactionManager transactionManager;
private ReviewService reviewService;
private ReviewDetlService reviewDetlService;
private final SnowflakeIdWorker snowflakeIdWorker;
private final Long userId;
+ private TransactionStatus transactionStatus;
/**
* 濡傛灉浣跨敤浜唖pring,璇蜂娇鐢ㄨ繖涓瀯閫犳柟娉曘�傛瘡娆″垱寤篖istener鐨勬椂鍊欓渶瑕佹妸spring绠$悊鐨勭被浼犺繘鏉�
*/
- public ImportReviewListener(SnowflakeIdWorker snowflakeIdWorker, Long userId) {
+ public ImportReviewListener(PlatformTransactionManager transactionManager, ReviewService reviewService, ReviewDetlService reviewDetlService, SnowflakeIdWorker snowflakeIdWorker, Long userId) {
+ this.transactionManager = transactionManager;
+ this.reviewService = reviewService;
+ this.reviewDetlService = reviewDetlService;
this.snowflakeIdWorker = snowflakeIdWorker;
this.userId = userId;
}
@@ -57,28 +66,39 @@
public void invoke(ImportReviewDto data, AnalysisContext context) {
log.info("瑙f瀽鍒扮 {} 鏉℃暟鎹�:{}", ++count, JSON.toJSONString(data));
- // 鑾峰彇鍖呰缁勫彿锛坈olumn1锛�
- String packNo = data.getColumn1();
- if (Cools.isEmpty(packNo)) {
- log.warn("鍖呰缁勫彿涓虹┖锛岃烦杩囪琛岋紒");
+ if (Cools.isEmpty(data.getColumn1())) {
+ log.warn("瑙勬牸鍨嬪彿锛岃烦杩囪琛岋紒");
return;
}
- // 濡傛灉宸茬粡澶勭悊杩囪鍖呰缁勫彿锛屽垯璺宠繃
- if (uniquePackNos.contains(packNo)) {
- log.info("閲嶅鐨勫寘瑁呯粍鍙凤細{}锛岃烦杩�", packNo);
+ if (Cools.isEmpty(data.getColumn2())) {
+ log.info("閲嶅鐨勫寘瑁呯粍鍙凤細{}锛岃烦杩�", data.getColumn5());
return;
}
-
+ if (Cools.isEmpty(data.getColumn3())) {
+ log.info("閲嶅鐨勫寘瑁呯粍鍙凤細{}锛岃烦杩�", data.getColumn7());
+ return;
+ }
// 棣栨鍑虹幇锛岃褰曞苟澶勭悊
- uniquePackNos.add(packNo);
- list.add(data);
+ uniquePackNos.add(data.getColumn1());
- if (context.getCurrentRowNum() == 3) {
+ String time = DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F);
+ Review review = reviewService.selectOne(new EntityWrapper<Review>().eq("order_no", data.getColumn1()));
+ if (review == null) {
+ review = new Review();
+ review.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
+ review.setOrderNo(data.getColumn1());
+ review.setOrderTime(time);
+ review.setSettle(1L);
+ review.setStatus(1);
+ review.setCreateBy(userId);
+ review.setCreateTime(new Date());
- return;
+ reviewService.insert(review);
+ review = reviewService.selectOne(new EntityWrapper<Review>().eq("order_no", data.getColumn1()));
}
-
+ data.setOrderId(review.getId());
+ list.add(data);
if (list.size() >= BATCH_COUNT) {
saveData();
list.clear();
@@ -106,47 +126,41 @@
*/
private void saveData() {
log.info("{}鏉℃暟鎹紝寮�濮嬪瓨鍌ㄦ暟鎹簱锛�", list.size());
- log.info("鍗曟嵁鍙凤細{}锛屾暟鎹細{},", orderNo, JSON.toJSONString(list));
+ log.info("鏁版嵁锛歿},", JSON.toJSONString(list));
- List<OrderDetl> orderDetlList = new ArrayList<>();
+ List<ReviewDetl> orderDetlList = new ArrayList<>();
for (ImportReviewDto importOrderDto : list) {
- OrderDetl orderDetl = new OrderDetl();
-
- if (docTypeId == 24) {
- orderDetl.setSpecs(String.format("%07d", Integer.parseInt(importOrderDto.getColumn1()))); // 婧愬簱浣�
- if (importOrderDto.getColumn2() != null) {
- orderDetl.setModel(String.format("%07d", Integer.parseInt(importOrderDto.getColumn2()))); // 鐩爣搴撲綅
- }
- if (importOrderDto.getColumn3() != null) {
- orderDetl.setBeBatch(Integer.parseInt(importOrderDto.getColumn3())); // 宸烽亾
- }
- } else {
- orderDetl.setBrand(importOrderDto.getColumn1());
- orderDetl.setSupp(importOrderDto.getColumn3());
- orderDetl.setMemo(importOrderDto.getColumn4());
+ List<ReviewDetl> reviewDetls = reviewDetlService.selectList(new EntityWrapper<ReviewDetl>().eq("order_no", importOrderDto.getColumn1()).eq("specs", importOrderDto.getColumn2()).eq("anfme", importOrderDto.getColumn4()).eq("batch", importOrderDto.getColumn3()));
+ if (reviewDetls != null && reviewDetls.size() > 0) {
+ throw new CoolException(importOrderDto.getColumn1() + "=鎵规锛�" + importOrderDto.getColumn7() + "瑙勬牸锛�" + importOrderDto.getColumn4() + "璇ユ槑缁嗗凡瀛樺湪锛�");
}
+ ReviewDetl orderDetl = new ReviewDetl();
+ orderDetl.setOrderNo(importOrderDto.getColumn1());
+ orderDetl.setSpecs(importOrderDto.getColumn2());
+ orderDetl.setBatch(importOrderDto.getColumn3());
+ orderDetl.setAnfme(importOrderDto.getColumn4());
- orderDetl.setBatch("");
- orderDetl.setOrderId(orderId);
- orderDetl.setOrderNo(orderNo);
+ orderDetl.setMatnr(importOrderDto.getColumn5());
+ orderDetl.setMaktx(importOrderDto.getColumn6());
+ orderDetl.setUnit(importOrderDto.getColumn7());
+ //orderDetl.set(importOrderDto.getColumn6());
+ orderDetl.setModel(importOrderDto.getColumn9());
+ orderDetl.setDeadTime(importOrderDto.getColumn10());
+
+ orderDetl.setOrderId(importOrderDto.getOrderId());
orderDetl.setCreateBy(9527L);
orderDetl.setCreateTime(new Date());
orderDetl.setUpdateBy(9527L);
orderDetl.setUpdateTime(new Date());
orderDetl.setStatus(1);
- orderDetl.setQty(0.0D);
- orderDetl.setAnfme(1.0);
orderDetlList.add(orderDetl);
}
// 鉁� 鍏抽敭鐐癸細鍒嗘壒鎻愪氦
- for (int i = 0; i < orderDetlList.size(); i += MAX_BATCH_SIZE) {
- int end = Math.min(i + MAX_BATCH_SIZE, orderDetlList.size());
- List<OrderDetl> batch = orderDetlList.subList(i, end);
- //reviewDetlService.batchDetls(batch);
+ for (ReviewDetl d : orderDetlList) {
+ reviewDetlService.insert(d);
}
-
log.info("瀛樺偍鏁版嵁搴撴垚鍔燂紒");
}
--
Gitblit v1.9.1