From 95cdeea70bfee905c8601a8fc11cbba7aa31b85c Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期三, 26 四月 2023 17:16:49 +0800
Subject: [PATCH] 对账

---
 src/main/java/com/boying/job/ReadFileScheduled2.java |  113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 113 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/boying/job/ReadFileScheduled2.java b/src/main/java/com/boying/job/ReadFileScheduled2.java
new file mode 100644
index 0000000..f4e134a
--- /dev/null
+++ b/src/main/java/com/boying/job/ReadFileScheduled2.java
@@ -0,0 +1,113 @@
+package com.boying.job;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.boying.entity.ErrorLog;
+import com.boying.entity.OrderRecord;
+import com.boying.service.ErrorLogService;
+import com.boying.service.OrderRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName ReadFileScheduled.java
+ * @Description TODO
+ * @createTime 2023骞�04鏈�24鏃� 09:07:00
+ */
+@Slf4j
+@Component
+public class ReadFileScheduled2 {
+
+    @Autowired
+    private OrderRecordService orderRecordService;
+    @Autowired
+    private ErrorLogService errorLogService;
+
+    //@Scheduled(cron = "0 30 14 * * ?")
+    public void execute() throws Exception {
+        Path path = Paths.get("E:\\ycCheckBill\\Bank_PSBC_20230422.txt");
+
+        DateTime start = DateUtil.parse(  "2023-04-21 22:30:00");
+        DateTime end = DateUtil.parse("2023-04-22 22:29:59");
+
+        QueryWrapper<OrderRecord> wrapper = new QueryWrapper<>();
+        wrapper.lambda()
+                .isNotNull(OrderRecord::getUpdateTime)
+                .between(OrderRecord::getUpdateTime,start,end)
+                .isNotNull(OrderRecord::getMoney)
+                .eq(OrderRecord::getStatus,1)
+                .eq(OrderRecord::getType,1);
+        List<OrderRecord> list = orderRecordService.list(wrapper);
+
+        try {
+            List<String> lines = Files.readAllLines(path);
+            String s = lines.get(0);
+            String[] split = s.split("\\|");
+            int count = Integer.parseInt(split[0]);
+            //鍒ゆ柇count鏁伴噺鏄惁澶т簬0
+            if(count == 0){
+                if(list.size() >0){
+                    //閭偍娌℃湁鏀跺埌閲戦锛岃鍗曡〃閲屾湁璁板綍
+                    for (OrderRecord orderRecord : list) {
+                        ErrorLog errorLog = new ErrorLog();
+                        errorLog.setMoney(orderRecord.getMoney());
+                        errorLog.setQueryId(orderRecord.getId());
+                        errorLog.setRemark("缂存澶辫触");
+                        errorLogService.save(errorLog);
+                    }
+                }
+            }else {
+                List<OrderRecord> lineList = new ArrayList<>();
+                for (int i = 1; i < lines.size(); i++) {
+                    String s1 = lines.get(i);
+                    String[] split1 = s.split("\\|");
+                    int id = Integer.parseInt(split[1]);
+                    OrderRecord byId = orderRecordService.getById(id);
+                    lineList.add(byId);
+                }
+
+                //list 涓湁鐨勶紝浣嗘槸lineList娌℃湁鐨�
+                Map<OrderRecord, OrderRecord> tempMap = lineList.parallelStream().collect(Collectors.toMap(Function.identity(), Function.identity(), (oldData, newData) -> newData));
+                List<OrderRecord> collect = list.parallelStream().filter(str -> {
+                    return !tempMap.containsKey(str);
+                }).collect(Collectors.toList());
+
+                for (OrderRecord orderRecord : collect) {
+                    ErrorLog errorLog = new ErrorLog();
+                    errorLog.setMoney(orderRecord.getMoney());
+                    errorLog.setQueryId(orderRecord.getId());
+                    errorLog.setRemark("缂存澶辫触");
+                    errorLogService.save(errorLog);
+                }
+                //lineList 涓湁鐨勶紝浣嗘槸List娌℃湁鐨�
+                Map<OrderRecord, OrderRecord> tempMap1 = list.parallelStream().collect(Collectors.toMap(Function.identity(), Function.identity(), (oldData, newData) -> newData));
+                List<OrderRecord> collect1 = lineList.parallelStream().filter(str -> {
+                    return !tempMap1.containsKey(str);
+                }).collect(Collectors.toList());
+
+                for (OrderRecord orderRecord : collect1) {
+                    ErrorLog errorLog = new ErrorLog();
+                    errorLog.setMoney(orderRecord.getMoney());
+                    errorLog.setQueryId(orderRecord.getId());
+                    errorLog.setRemark("缂存鎴愬姛");
+                    errorLogService.save(errorLog);
+                }
+            }
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+}

--
Gitblit v1.9.1