From 8cf6f6c327dc4258c7dc265765552eced8296815 Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期三, 26 四月 2023 14:28:10 +0800 Subject: [PATCH] 对账 --- src/main/java/com/boying/job/ReadFileScheduled.java | 121 ++++++++++++++++++++++++++++++ src/main/java/com/boying/controller/phone/EticketController.java | 2 src/main/java/com/boying/mapper/ErrorLogMapper.java | 17 ++++ src/main/java/com/boying/service/impl/ErrorLogServiceImpl.java | 23 +++++ src/main/java/com/boying/controller/phone/YCPayController.java | 4 + src/main/java/com/boying/service/ErrorLogService.java | 15 +++ src/main/java/com/boying/entity/ErrorLog.java | 38 +++++++++ 7 files changed, 218 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/boying/controller/phone/EticketController.java b/src/main/java/com/boying/controller/phone/EticketController.java index 07451d6..8c98762 100644 --- a/src/main/java/com/boying/controller/phone/EticketController.java +++ b/src/main/java/com/boying/controller/phone/EticketController.java @@ -96,12 +96,10 @@ map1.put("randomnumber",""); map1.put("billfiletype",1); SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss"); - String txt = sdf3.format(new Date())+"鐢宠绁ㄦ嵁鏂囦欢锛�"+map1+",\n"; RestTemplate restTemplate = new RestTemplate(); ResponseEntity<ReturnData> entity = restTemplate.postForEntity("http://10.255.200.204:7991/geteinvoicebybizcode", HTTPEntityUtil.setEntity(map1), ReturnData.class); if(entity.getBody().getCode() == 1){ System.out.println(entity.getBody()); - txt += entity.getBody()+",\n"; Object o1 = entity.getBody().getData().get(0); String s1 = JSON.toJSONString(o1); EticketFile eticketFile = JSONObject.parseObject(s1, EticketFile.class); diff --git a/src/main/java/com/boying/controller/phone/YCPayController.java b/src/main/java/com/boying/controller/phone/YCPayController.java index ac244ab..6eb5003 100644 --- a/src/main/java/com/boying/controller/phone/YCPayController.java +++ b/src/main/java/com/boying/controller/phone/YCPayController.java @@ -299,6 +299,10 @@ Path path = Paths.get("E:\\ycCheckBill\\Bank_PSBC_20350421.txt"); try { List<String> lines = Files.readAllLines(path); + String s = lines.get(0); + String[] split = s.split("\\|"); + + for (String line : lines) { System.out.println(line); } diff --git a/src/main/java/com/boying/entity/ErrorLog.java b/src/main/java/com/boying/entity/ErrorLog.java new file mode 100644 index 0000000..09cc814 --- /dev/null +++ b/src/main/java/com/boying/entity/ErrorLog.java @@ -0,0 +1,38 @@ +package com.boying.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.boying.common.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.persistence.Column; +import javax.persistence.Entity; + +/** + * @author kdq + * @version 1.0.0 + * @ClassName ErrorLog.java + * @Description TODO + * @createTime 2023骞�04鏈�24鏃� 09:28:00 + */ +@Data +@TableName("error_log") +@javax.persistence.Table(name = "error_log") +@Entity +@org.hibernate.annotations.Table(appliesTo = "error_log", comment = "瀵硅处閿欒鏃ュ織琛�") +@ApiModel(value = "瀵硅处閿欒鏃ュ織琛�") +public class ErrorLog extends BaseEntity<ErrorLog> { + + @ApiModelProperty(value = "鍑哄仠杞﹀満id鎴栫綒鍗昳d") + @Column(columnDefinition = "int comment '鍑哄仠杞﹀満id鎴栫綒鍗昳d'") + private Integer queryId; + + @ApiModelProperty(value = "閲戦") + @Column(columnDefinition = "double(10,2) default '0.00' comment '閲戦'") + private double money; + + @ApiModelProperty(value = "澶囨敞锛氱即璐规垚鍔�/缂存澶辫触") + @Column(columnDefinition = "varchar(200) comment '澶囨敞锛氬簲缂存湭缂�/缂存澶辫触'") + private String remark; +} diff --git a/src/main/java/com/boying/job/ReadFileScheduled.java b/src/main/java/com/boying/job/ReadFileScheduled.java new file mode 100644 index 0000000..ea25c48 --- /dev/null +++ b/src/main/java/com/boying/job/ReadFileScheduled.java @@ -0,0 +1,121 @@ +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 ReadFileScheduled { + + @Autowired + private OrderRecordService orderRecordService; + @Autowired + private ErrorLogService errorLogService; + + //@Scheduled(cron = "0 30 14 * * ?") + public void execute() throws Exception { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + String format = sdf.format(new Date()); + Path path = Paths.get("E:\\ycCheckBill\\Bank_PSBC_"+format+".txt"); + + Calendar cal= Calendar.getInstance(); + cal.add(Calendar.DATE,-1); + Date d=cal.getTime(); + SimpleDateFormat sp=new SimpleDateFormat("yyyy-MM-dd"); + String ZUOTIAN=sp.format(d);//鑾峰彇鏄ㄥぉ鏃ユ湡 + String JINTIAN=sp.format(new Date());//鑾峰彇浠婂ぉ鏃ユ湡 + DateTime start = DateUtil.parse(ZUOTIAN + " 22:30:00"); + DateTime end = DateUtil.parse(JINTIAN + " 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); + } + } +} diff --git a/src/main/java/com/boying/mapper/ErrorLogMapper.java b/src/main/java/com/boying/mapper/ErrorLogMapper.java new file mode 100644 index 0000000..ed0f05a --- /dev/null +++ b/src/main/java/com/boying/mapper/ErrorLogMapper.java @@ -0,0 +1,17 @@ +package com.boying.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.boying.entity.EnterPark; +import com.boying.entity.ErrorLog; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author kdq + * @version 1.0.0 + * @ClassName ErrorLogMapper.java + * @Description TODO + * @createTime 2023骞�04鏈�24鏃� 15:51:00 + */ +@Mapper +public interface ErrorLogMapper extends BaseMapper<ErrorLog> { +} diff --git a/src/main/java/com/boying/service/ErrorLogService.java b/src/main/java/com/boying/service/ErrorLogService.java new file mode 100644 index 0000000..0ceaff3 --- /dev/null +++ b/src/main/java/com/boying/service/ErrorLogService.java @@ -0,0 +1,15 @@ +package com.boying.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.boying.entity.ErrorLog; +import com.boying.entity.FileInfo; + +/** + * @author kdq + * @version 1.0.0 + * @ClassName ErrorLogService.java + * @Description TODO + * @createTime 2023骞�04鏈�24鏃� 15:49:00 + */ +public interface ErrorLogService extends IService<ErrorLog> { +} diff --git a/src/main/java/com/boying/service/impl/ErrorLogServiceImpl.java b/src/main/java/com/boying/service/impl/ErrorLogServiceImpl.java new file mode 100644 index 0000000..b7877c1 --- /dev/null +++ b/src/main/java/com/boying/service/impl/ErrorLogServiceImpl.java @@ -0,0 +1,23 @@ +package com.boying.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.boying.entity.EnterPark; +import com.boying.entity.ErrorLog; +import com.boying.mapper.EnterParkMapper; +import com.boying.mapper.ErrorLogMapper; +import com.boying.service.EnterParkService; +import com.boying.service.ErrorLogService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * @author kdq + * @version 1.0.0 + * @ClassName ErrorLogServiceImpl.java + * @Description TODO + * @createTime 2023骞�04鏈�24鏃� 15:50:00 + */ +@Service +@AllArgsConstructor +public class ErrorLogServiceImpl extends ServiceImpl<ErrorLogMapper, ErrorLog> implements ErrorLogService { +} -- Gitblit v1.9.1