BillReconciliationJob.java
8.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
//package com.zteits.pay.job;
//
//import java.math.BigDecimal;
//import java.util.ArrayList;
//import java.util.Date;
//import java.util.List;
//
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//import org.springframework.util.CollectionUtils;
//
//import com.clouds.common.utils.DateUtil;
//import com.xxl.job.core.biz.model.ReturnT;
//
////import com.xxl.job.core.context.XxlJobHelper;
//import com.zteits.pay.dao.TdBPayBlncacDiffDao;
//import com.zteits.pay.domain.TdBPayBlncacDiff;
///**
// * 支付宝/微信 对账定时任务.<br/>
// *
// * Copyright: Copyright (c) 2017 zteits
// *
// * @ClassName: CloudsParkDurationJob.java
// * @Description:
// * @version: v1.0.0
// * @author: wangfs
// * @date: 2017年10月13日 下午4:32:48
// * Modification History:
// * Date Author Version Description
// *---------------------------------------------------------*
// * 2017年10月13日 wangfs v1.0.0 创建
// */
//@XxlJob(value="BillReconciliationJob")
//@Component
//public class BillReconciliationJob {
//
// private static final Logger logger = LoggerFactory.getLogger(BillReconciliationJob.class);
//
// @Autowired
// private TdBPayBlncacDiffDao TdBPayBlncacDiffDao;
//
// /**
// * 每天 11:00 执行对账结果.<br/>
// */
// @Override
// public ReturnT<String> execute(String... params) throws Exception {
// String param = XxlJobHelper.getJobParam();
// if (StringUtils.isNotEmpty(param) && params == null) {
// params = param.split(",");
// }
//
// try{
// this.beginAccounts();
// }catch (Exception e) {
// if (e instanceof InterruptedException) {
// throw e;
// }
// logger.warn("{}", e);
// return ReturnT.FAIL;
// }
// return ReturnT.SUCCESS;
// }
//
// /**
// * 开始对账.<br/>
// * 步骤:
// * 1.插入下载账单 left join 支付单信息数据(不卡支付单支付完成状态).<br/>
// * 3.插入支付单中下载账单中不存在的支付单信息.<br/>
// * 4.更新停车场/车牌号/泊位区间等信息.<br/>
// * 5.金额想减 对账.<br/>
// */
// private void beginAccounts(){
// String yesterday = DateUtil.getDateString(DateUtil.getOffsetDaysDate(new Date(), -1), DateUtil.DATE_FORMAT);
// this.logger("begin对账,对账账期="+yesterday+"...");
// //1.删除昨天帐期数据
// this.logger("开始删除昨天对账差异表数据...");
// int deleteCount = TdBPayBlncacDiffDao.deleteByBillTime(yesterday);
// this.logger("结束删除昨天对账差异表数据...结果(成果删除)="+deleteCount+"条。");
// //2.插入下载账单 left join 支付单信息数据(不卡支付单支付完成状态)
// this.logger("开始插入下载账单数据...");
// int intsetBillCount = TdBPayBlncacDiffDao.insertBillPayOrder(yesterday);
// this.logger("结果插入下载账单数据...结果(成功插入)="+intsetBillCount+"条。");
// //3.插入支付单中下载账单不存在的支付单信息
// this.logger("开始插入支付单中下载账单不存在的支付单信息...");
// int intsetBillNotExistCount = TdBPayBlncacDiffDao.insertPayOrderNotExitsInBill(yesterday);
// this.logger("结果插入支付单中下载账单不存在的支付单信息...结果(成功插入)="+intsetBillNotExistCount+"条。");
//
// //4.更新停车场/车牌号
// this.logger("开始更新停车场/车牌号等信息...");
// int updateCount = TdBPayBlncacDiffDao.updateTdBPayBlncacDiff(yesterday);
// this.logger("结果更新停车场/车牌号等信息...结果(成功更新)="+updateCount+"条。");
// //4.1.更新停车场/车牌号/泊位区间等信息
// this.logger("开始更新泊位区间等信息...");
// int updateCountAreaPark = TdBPayBlncacDiffDao.updateTdBPayBlncacDiffForAreaPark(yesterday);
// this.logger("结果更新泊位区间等信息...结果(成功更新)="+updateCountAreaPark+"条。");
// /**5.对账.*/
// this.beginBillReconciliation(yesterday);
// this.logger("end对账,对账账期="+yesterday+"...");
//
// }
// /**
// * 开始对账
// * 步骤:
// * 1.查询指定时间对账单结果信息.<br/>
// * 2.对账(金额相减法)
// * @param billTime
// */
// private void beginBillReconciliation(String billTime){
// //对账结果list
// List<TdBPayBlncacDiff> listReult = new ArrayList<TdBPayBlncacDiff>();
// List<TdBPayBlncacDiff> list = new ArrayList<TdBPayBlncacDiff>();
// this.logger("开始查询"+billTime+"对账差异表信息");
// list = TdBPayBlncacDiffDao.queryPayBlncacDifForList(billTime);
// this.logger("结果查询"+billTime+"对账差异表信息,结果(list.size)="+list.size());
// if(!CollectionUtils.isEmpty(list)){
// for(TdBPayBlncacDiff str:list){
// TdBPayBlncacDiff resultBlncacDiff = new TdBPayBlncacDiff();
// if(str != null){
// int diffFee= str.getBlncacActFee().subtract(str.getOrderPayedFee()).intValue();
// /** 差异费用=账文件记录费用 - 订单已付费用(单位:分). */
// //this.logger("记录ID="+str.getId()+" 账文件记录费用="+str.getBlncacActFee().toString()+" 订单已付费用="+str.getOrderPayedFee()+" 差异费用="+diffFee);
// /** 对账差异类型:0-无差异 1-金额差异(两侧都有但金额不同) 2-掉单(支付机构侧有,我侧没有) 3-多单(支付机构侧没有,我侧有). */
//
// if(0 == diffFee){
// resultBlncacDiff.setBlncacDiffType(0); //0-无差异
// resultBlncacDiff.setQeualType(1); // 平账类型 0:未平账 1:已平账.
// resultBlncacDiff.setBillRemarks("账文件记录费用-订单已付费用="+diffFee+"对账结果=已平账");
// }else{
// if(0 == str.getBlncacActFee().intValue() && 0 != str.getOrderPayedFee().intValue()){
// resultBlncacDiff.setBlncacDiffType(3); //3-多单(支付机构侧没有,我侧有)
// resultBlncacDiff.setQeualType(0); // 平账类型 0:未平账 1:已平账.
// resultBlncacDiff.setBillRemarks("账文件记录费用-订单已付费用="+diffFee+"对账结果=3多单(支付机构侧没有,我侧有)");
// }
// if(0 != str.getBlncacActFee().intValue() && 0== str.getOrderPayedFee().intValue()){
// resultBlncacDiff.setBlncacDiffType(2); //2-掉单(支付机构侧有,我侧没有)
// resultBlncacDiff.setQeualType(0); // 平账类型 0:未平账 1:已平账.
// resultBlncacDiff.setBillRemarks("账文件记录费用-订单已付费用="+diffFee+"对账结果=2掉单(支付机构侧有,我侧没有");
//
// }
// if(str.getBlncacActFee().intValue() > 0 && str.getOrderPayedFee().intValue() >0 && 0 != diffFee){
// resultBlncacDiff.setBlncacDiffType(1); //1-金额差异(两侧都有但金额不同)
// resultBlncacDiff.setQeualType(0); // 平账类型 0:未平账 1:已平账.
// resultBlncacDiff.setBillRemarks("账文件记录费用-订单已付费用="+diffFee+"对账结果=1金额差异(两侧都有但金额不同)");
// }
// }
// resultBlncacDiff.setId(str.getId());
// resultBlncacDiff.setDiffFee(new BigDecimal(diffFee));
// resultBlncacDiff.setModfiyDate(new Date());
// listReult.add(resultBlncacDiff);
//
// }
// }
// }else{
// this.logger("没有查询到"+billTime+"对账差异表信息");
// }
//
// if(!CollectionUtils.isEmpty(listReult)){
// //更新对账结果
// this.logger("开始更新对账结果到对账差异表");
// int updateCount = TdBPayBlncacDiffDao.updateBillReconciliationById(listReult);
// this.logger("结束更新对账结果到对账差异表,结果(更新条数)="+updateCount+"条。");
// /**更新支付单对账状态.*/
// this.updatePayOrderBlncacDiff();
// }
// }
// /**
// * 更新支付单对账状态.<br/>
// */
// private void updatePayOrderBlncacDiff(){
// this.logger("开始更新支付单对账状态,对账时间...");
// int updateCount = TdBPayBlncacDiffDao.updatePayOrderBlncacDiff();
// this.logger("end更新支付单对账状态,对账时间...,结果(成功更新)="+updateCount);
//
// }
//
// private void logger(String msg){
// XxlJobHelper.log(msg);
// logger.info(msg);
// }
//
//}