增加对账功能异常捕获和处理
This commit is contained in:
parent
5f5a4c377e
commit
e0aaee803e
@ -1,6 +1,8 @@
|
|||||||
package com.xhpc.activity.controller;
|
package com.xhpc.activity.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.xhpc.activity.domain.XhpcTradebillUploadRecordDomain;
|
||||||
|
import com.xhpc.activity.service.CommonService;
|
||||||
import com.xhpc.common.core.utils.SecurityUtils;
|
import com.xhpc.common.core.utils.SecurityUtils;
|
||||||
import com.xhpc.common.core.web.controller.BaseController;
|
import com.xhpc.common.core.web.controller.BaseController;
|
||||||
import com.xhpc.common.core.web.domain.AjaxResult;
|
import com.xhpc.common.core.web.domain.AjaxResult;
|
||||||
@ -8,8 +10,6 @@ import com.xhpc.common.log.annotation.Log;
|
|||||||
import com.xhpc.common.log.enums.BusinessType;
|
import com.xhpc.common.log.enums.BusinessType;
|
||||||
import com.xhpc.common.util.LogUserUtils;
|
import com.xhpc.common.util.LogUserUtils;
|
||||||
import com.xhpc.system.api.model.LoginUser;
|
import com.xhpc.system.api.model.LoginUser;
|
||||||
import com.xhpc.activity.domain.XhpcTradebillUploadRecordDomain;
|
|
||||||
import com.xhpc.activity.service.CommonService;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/common")
|
@RequestMapping("/common")
|
||||||
public class CommonController extends BaseController {
|
public class XhpcTradebillCommonController extends BaseController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
CommonService commonService;
|
CommonService commonService;
|
||||||
@ -1,13 +1,13 @@
|
|||||||
package com.xhpc.activity.controller;
|
package com.xhpc.activity.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.xhpc.activity.domain.XhpcTradebillInternetCheckRecordDomain;
|
||||||
|
import com.xhpc.activity.service.InternetBillService;
|
||||||
import com.xhpc.common.core.web.controller.BaseController;
|
import com.xhpc.common.core.web.controller.BaseController;
|
||||||
import com.xhpc.common.core.web.domain.AjaxResult;
|
import com.xhpc.common.core.web.domain.AjaxResult;
|
||||||
import com.xhpc.common.core.web.page.TableDataInfo;
|
import com.xhpc.common.core.web.page.TableDataInfo;
|
||||||
import com.xhpc.common.log.annotation.Log;
|
import com.xhpc.common.log.annotation.Log;
|
||||||
import com.xhpc.common.log.enums.BusinessType;
|
import com.xhpc.common.log.enums.BusinessType;
|
||||||
import com.xhpc.activity.domain.XhpcTradebillInternetCheckRecordDomain;
|
|
||||||
import com.xhpc.activity.service.InternetBillService;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@ -17,7 +17,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/internet")
|
@RequestMapping("/internet")
|
||||||
public class InternetBillController extends BaseController {
|
public class XhpcTradebillInternetBillController extends BaseController {
|
||||||
|
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
@ -1,13 +1,13 @@
|
|||||||
package com.xhpc.activity.controller;
|
package com.xhpc.activity.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.xhpc.activity.domain.XhpcTradebillPaymentCheckRecordDomain;
|
||||||
|
import com.xhpc.activity.service.PaymentBillService;
|
||||||
import com.xhpc.common.core.web.controller.BaseController;
|
import com.xhpc.common.core.web.controller.BaseController;
|
||||||
import com.xhpc.common.core.web.domain.AjaxResult;
|
import com.xhpc.common.core.web.domain.AjaxResult;
|
||||||
import com.xhpc.common.core.web.page.TableDataInfo;
|
import com.xhpc.common.core.web.page.TableDataInfo;
|
||||||
import com.xhpc.common.log.annotation.Log;
|
import com.xhpc.common.log.annotation.Log;
|
||||||
import com.xhpc.common.log.enums.BusinessType;
|
import com.xhpc.common.log.enums.BusinessType;
|
||||||
import com.xhpc.activity.domain.XhpcTradebillPaymentCheckRecordDomain;
|
|
||||||
import com.xhpc.activity.service.PaymentBillService;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@ -17,7 +17,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/payment")
|
@RequestMapping("/payment")
|
||||||
public class PaymentBillController extends BaseController {
|
public class XhpcTradebillPaymentBillController extends BaseController {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
PaymentBillService paymentBillService;
|
PaymentBillService paymentBillService;
|
||||||
@ -1,6 +1,7 @@
|
|||||||
package com.xhpc.activity.service.impl;
|
package com.xhpc.activity.service.impl;
|
||||||
|
|
||||||
import com.aliyun.oss.OSSClient;
|
import com.aliyun.oss.OSSClient;
|
||||||
|
import com.xhpc.common.core.exception.CustomException;
|
||||||
import com.xhpc.common.core.utils.SecurityUtils;
|
import com.xhpc.common.core.utils.SecurityUtils;
|
||||||
import com.xhpc.activity.config.AliOSSProperties;
|
import com.xhpc.activity.config.AliOSSProperties;
|
||||||
import com.xhpc.activity.domain.XhpcTradebillInternetCheckRecordDomain;
|
import com.xhpc.activity.domain.XhpcTradebillInternetCheckRecordDomain;
|
||||||
@ -19,6 +20,7 @@ import java.io.File;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -59,60 +61,66 @@ public class CommonServiceImpl implements CommonService {
|
|||||||
Map<String, Integer> totalMap = new HashMap<>();
|
Map<String, Integer> totalMap = new HashMap<>();
|
||||||
int insertCount = 0;
|
int insertCount = 0;
|
||||||
resDomain.setStatus(2);
|
resDomain.setStatus(2);
|
||||||
switch (domain.getType()) {
|
try {
|
||||||
case 1:
|
switch (domain.getType()) {
|
||||||
case 2:
|
case 1:
|
||||||
// 微信支付
|
case 2:
|
||||||
paymentCheckRecordDomainList = paymentBillService.getWechatDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
// 微信支付
|
||||||
insertCount = paymentBillService.insertPaymentCheckList(resDomain.getId(), paymentCheckRecordDomainList);
|
paymentCheckRecordDomainList = paymentBillService.getWechatDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||||
totalMap = computePaymentRecord(paymentCheckRecordDomainList);
|
insertCount = paymentBillService.insertPaymentCheckList(resDomain.getId(), paymentCheckRecordDomainList);
|
||||||
break;
|
totalMap = computePaymentRecord(paymentCheckRecordDomainList);
|
||||||
case 3:
|
break;
|
||||||
case 4:
|
case 3:
|
||||||
// 支付宝支付
|
case 4:
|
||||||
paymentCheckRecordDomainList = paymentBillService.getAliPayDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
// 支付宝支付
|
||||||
insertCount = paymentBillService.insertPaymentCheckList(resDomain.getId(), paymentCheckRecordDomainList);
|
paymentCheckRecordDomainList = paymentBillService.getAliPayDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||||
totalMap = computePaymentRecord(paymentCheckRecordDomainList);
|
insertCount = paymentBillService.insertPaymentCheckList(resDomain.getId(), paymentCheckRecordDomainList);
|
||||||
break;
|
totalMap = computePaymentRecord(paymentCheckRecordDomainList);
|
||||||
case 5:
|
break;
|
||||||
// 恒大
|
case 5:
|
||||||
recordDomainList = internetBillService.getHdInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
// 恒大
|
||||||
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
recordDomainList = internetBillService.getHdInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||||
totalMap = computeInternetRecord(recordDomainList);
|
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
||||||
break;
|
totalMap = computeInternetRecord(recordDomainList);
|
||||||
case 6:
|
break;
|
||||||
// 小桔
|
case 6:
|
||||||
recordDomainList = internetBillService.getXjInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
// 小桔
|
||||||
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
recordDomainList = internetBillService.getXjInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||||
totalMap = computeInternetRecord(recordDomainList);
|
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
||||||
break;
|
totalMap = computeInternetRecord(recordDomainList);
|
||||||
case 7:
|
break;
|
||||||
// 新电途
|
case 7:
|
||||||
recordDomainList = internetBillService.getXDTInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
// 新电途
|
||||||
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
recordDomainList = internetBillService.getXDTInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||||
totalMap = computeInternetRecord(recordDomainList);
|
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
||||||
break;
|
totalMap = computeInternetRecord(recordDomainList);
|
||||||
case 8:
|
break;
|
||||||
// 快电
|
case 8:
|
||||||
recordDomainList = internetBillService.getKDInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
// 快电
|
||||||
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
recordDomainList = internetBillService.getKDInternetDataList(domain.getUrl(), domain.getStartTime(), domain.getEndTime(), domain.getTenantId());
|
||||||
totalMap = computeInternetRecord(recordDomainList);
|
insertCount = internetBillService.insertInternetCheckList(resDomain.getId(), recordDomainList);
|
||||||
break;
|
totalMap = computeInternetRecord(recordDomainList);
|
||||||
default:
|
break;
|
||||||
resDomain.setStatus(1);
|
default:
|
||||||
totalMap.put("successCount", 0);
|
resDomain.setStatus(1);
|
||||||
totalMap.put("failCount", 0);
|
totalMap.put("successCount", 0);
|
||||||
totalMap.put("checkCount", 0);
|
totalMap.put("failCount", 0);
|
||||||
totalMap.put("uncheckCount", 0);
|
totalMap.put("checkCount", 0);
|
||||||
break;
|
totalMap.put("uncheckCount", 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
resDomain.setStatus(1);
|
||||||
|
resDomain.setSuccessCount(totalMap.get("successCount"));
|
||||||
|
resDomain.setFailCount(totalMap.get("failCount"));
|
||||||
|
resDomain.setCheckedCount(totalMap.get("checkCount"));
|
||||||
|
resDomain.setUncheckCount(totalMap.get("uncheckCount"));
|
||||||
|
uploadRecordMapper.updateByPrimaryKey(resDomain);
|
||||||
|
return resDomain;
|
||||||
|
} catch (Exception exception){
|
||||||
|
exception.printStackTrace();
|
||||||
|
throw new CustomException("内部错误");
|
||||||
}
|
}
|
||||||
resDomain.setStatus(1);
|
|
||||||
resDomain.setSuccessCount(totalMap.get("successCount"));
|
|
||||||
resDomain.setFailCount(totalMap.get("failCount"));
|
|
||||||
resDomain.setCheckedCount(totalMap.get("checkCount"));
|
|
||||||
resDomain.setUncheckCount(totalMap.get("uncheckCount"));
|
|
||||||
uploadRecordMapper.updateByPrimaryKey(resDomain);
|
|
||||||
return resDomain;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -121,25 +129,28 @@ public class CommonServiceImpl implements CommonService {
|
|||||||
|
|
||||||
XhpcTradebillUploadRecordDomain domain = new XhpcTradebillUploadRecordDomain();
|
XhpcTradebillUploadRecordDomain domain = new XhpcTradebillUploadRecordDomain();
|
||||||
// 创建OSSClient实例
|
// 创建OSSClient实例
|
||||||
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
|
String suffix = Objects.requireNonNull(file.getOriginalFilename()).substring(file.getOriginalFilename().lastIndexOf(".") + 1);
|
||||||
File dataFile = File.createTempFile("temp_", suffix);
|
File dataFile = File.createTempFile("temp_", suffix);
|
||||||
|
|
||||||
file.transferTo(dataFile);
|
try{
|
||||||
|
file.transferTo(dataFile);
|
||||||
|
|
||||||
String ossPath = "bill/" + file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf(".")) + "_" + System.currentTimeMillis() + "." + suffix;
|
String ossPath = "bill/" + file.getOriginalFilename().substring(0, file.getOriginalFilename().lastIndexOf(".")) + "_" + System.currentTimeMillis() + "." + suffix;
|
||||||
OSSClient ossClient = new OSSClient(ossProperties.getEndpoint(), ossProperties.getAccessKey(), ossProperties.getSecretKey());
|
OSSClient ossClient = new OSSClient(ossProperties.getEndpoint(), ossProperties.getAccessKey(), ossProperties.getSecretKey());
|
||||||
// 上传文件流
|
// 上传文件流
|
||||||
ossClient.putObject(ossProperties.getBucketName(), ossPath, dataFile);
|
ossClient.putObject(ossProperties.getBucketName(), ossPath, dataFile);
|
||||||
ossClient.shutdown();
|
ossClient.shutdown();
|
||||||
|
|
||||||
domain.setFileName(file.getOriginalFilename());
|
domain.setFileName(file.getOriginalFilename());
|
||||||
domain.setUrl(ossProperties.getDomain() + ossPath);
|
domain.setUrl(ossProperties.getDomain() + ossPath);
|
||||||
domain.setStartTime(startTime);
|
domain.setStartTime(startTime);
|
||||||
domain.setEndTime(endTime);
|
domain.setEndTime(endTime);
|
||||||
domain.setType(type);
|
domain.setType(type);
|
||||||
domain.setTenantId(tenantId);
|
domain.setTenantId(tenantId);
|
||||||
|
return ossUpload(domain);
|
||||||
return ossUpload(domain);
|
} catch (Exception exception){
|
||||||
|
throw new CustomException("服务错误");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import cn.hutool.core.text.csv.CsvReader;
|
|||||||
import cn.hutool.core.text.csv.CsvUtil;
|
import cn.hutool.core.text.csv.CsvUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.poi.excel.ExcelWriter;
|
import cn.hutool.poi.excel.ExcelWriter;
|
||||||
|
import com.xhpc.common.core.exception.CustomException;
|
||||||
import com.xhpc.common.core.utils.SecurityUtils;
|
import com.xhpc.common.core.utils.SecurityUtils;
|
||||||
import com.xhpc.common.core.utils.poi.ExcelUtil;
|
import com.xhpc.common.core.utils.poi.ExcelUtil;
|
||||||
import com.xhpc.activity.domain.XhpcHistoryOrderDomain;
|
import com.xhpc.activity.domain.XhpcHistoryOrderDomain;
|
||||||
@ -182,19 +183,24 @@ public class InternetBillServiceImpl implements InternetBillService {
|
|||||||
List<HDTradebillVo> hdTradebillVoList = new ArrayList<>();
|
List<HDTradebillVo> hdTradebillVoList = new ArrayList<>();
|
||||||
|
|
||||||
List<String> serialNumberList = new ArrayList<>();
|
List<String> serialNumberList = new ArrayList<>();
|
||||||
switch (suffix.toUpperCase()) {
|
try {
|
||||||
case "XLS":
|
switch (suffix.toUpperCase()) {
|
||||||
case "XLSX":
|
case "XLS":
|
||||||
ExcelUtil<HDTradebillVo> util = new ExcelUtil<HDTradebillVo>(HDTradebillVo.class);
|
case "XLSX":
|
||||||
hdTradebillVoList = util.importExcel(new FileInputStream(dataFile));
|
ExcelUtil<HDTradebillVo> util = new ExcelUtil<HDTradebillVo>(HDTradebillVo.class);
|
||||||
break;
|
hdTradebillVoList = util.importExcel(new FileInputStream(dataFile));
|
||||||
case "CSV":
|
break;
|
||||||
CsvReader reader = CsvUtil.getReader();
|
case "CSV":
|
||||||
FileReader fileReader = new FileReader(dataFile.getAbsolutePath(), Charset.forName("GBK"));
|
CsvReader reader = CsvUtil.getReader();
|
||||||
hdTradebillVoList = reader.read(fileReader.readString(), HDTradebillVo.class);
|
FileReader fileReader = new FileReader(dataFile.getAbsolutePath(), Charset.forName("GBK"));
|
||||||
break;
|
hdTradebillVoList = reader.read(fileReader.readString(), HDTradebillVo.class);
|
||||||
default:
|
break;
|
||||||
break;
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new CustomException("文件数据不合规,请检查");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (HDTradebillVo vo : hdTradebillVoList) {
|
for (HDTradebillVo vo : hdTradebillVoList) {
|
||||||
@ -245,19 +251,24 @@ public class InternetBillServiceImpl implements InternetBillService {
|
|||||||
List<XJTradeBillVo> xjTradeBillVoList = new ArrayList<>();
|
List<XJTradeBillVo> xjTradeBillVoList = new ArrayList<>();
|
||||||
|
|
||||||
List<String> serialNumberList = new ArrayList<>();
|
List<String> serialNumberList = new ArrayList<>();
|
||||||
switch (suffix.toUpperCase()) {
|
try {
|
||||||
case "XLS":
|
switch (suffix.toUpperCase()) {
|
||||||
case "XLSX":
|
case "XLS":
|
||||||
ExcelUtil<XJTradeBillVo> util = new ExcelUtil<XJTradeBillVo>(XJTradeBillVo.class);
|
case "XLSX":
|
||||||
xjTradeBillVoList = util.importExcel(new FileInputStream(dataFile));
|
ExcelUtil<XJTradeBillVo> util = new ExcelUtil<XJTradeBillVo>(XJTradeBillVo.class);
|
||||||
break;
|
xjTradeBillVoList = util.importExcel(new FileInputStream(dataFile));
|
||||||
case "CSV":
|
break;
|
||||||
CsvReader reader = CsvUtil.getReader();
|
case "CSV":
|
||||||
FileReader fileReader = new FileReader(dataFile.getAbsolutePath(), Charset.forName("GBK"));
|
CsvReader reader = CsvUtil.getReader();
|
||||||
xjTradeBillVoList = reader.read(fileReader.readString(), XJTradeBillVo.class);
|
FileReader fileReader = new FileReader(dataFile.getAbsolutePath(), Charset.forName("GBK"));
|
||||||
break;
|
xjTradeBillVoList = reader.read(fileReader.readString(), XJTradeBillVo.class);
|
||||||
default:
|
break;
|
||||||
break;
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new CustomException("文件数据不合规,请检查");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (XJTradeBillVo vo : xjTradeBillVoList) {
|
for (XJTradeBillVo vo : xjTradeBillVoList) {
|
||||||
@ -312,19 +323,24 @@ public class InternetBillServiceImpl implements InternetBillService {
|
|||||||
List<XDTTradebillVo> xdtTradebillVoList = new ArrayList<>();
|
List<XDTTradebillVo> xdtTradebillVoList = new ArrayList<>();
|
||||||
|
|
||||||
List<String> serialNumberList = new ArrayList<>();
|
List<String> serialNumberList = new ArrayList<>();
|
||||||
switch (suffix.toUpperCase()) {
|
try {
|
||||||
case "XLS":
|
switch (suffix.toUpperCase()) {
|
||||||
case "XLSX":
|
case "XLS":
|
||||||
ExcelUtil<XDTTradebillVo> util = new ExcelUtil<XDTTradebillVo>(XDTTradebillVo.class);
|
case "XLSX":
|
||||||
xdtTradebillVoList = util.importExcel(new FileInputStream(dataFile));
|
ExcelUtil<XDTTradebillVo> util = new ExcelUtil<XDTTradebillVo>(XDTTradebillVo.class);
|
||||||
break;
|
xdtTradebillVoList = util.importExcel(new FileInputStream(dataFile));
|
||||||
case "CSV":
|
break;
|
||||||
CsvReader reader = CsvUtil.getReader();
|
case "CSV":
|
||||||
FileReader fileReader = new FileReader(dataFile.getAbsolutePath(), Charset.forName("GBK"));
|
CsvReader reader = CsvUtil.getReader();
|
||||||
xdtTradebillVoList = reader.read(fileReader.readString(), XDTTradebillVo.class);
|
FileReader fileReader = new FileReader(dataFile.getAbsolutePath(), Charset.forName("GBK"));
|
||||||
break;
|
xdtTradebillVoList = reader.read(fileReader.readString(), XDTTradebillVo.class);
|
||||||
default:
|
break;
|
||||||
break;
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new CustomException("文件数据不合规,请检查");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (XDTTradebillVo vo : xdtTradebillVoList) {
|
for (XDTTradebillVo vo : xdtTradebillVoList) {
|
||||||
@ -374,18 +390,22 @@ public class InternetBillServiceImpl implements InternetBillService {
|
|||||||
List<Map<String, Object>> dataList = new ArrayList<>();
|
List<Map<String, Object>> dataList = new ArrayList<>();
|
||||||
|
|
||||||
List<String> serialNumberList = new ArrayList<>();
|
List<String> serialNumberList = new ArrayList<>();
|
||||||
switch (suffix.toUpperCase()) {
|
try {
|
||||||
case "XLS":
|
switch (suffix.toUpperCase()) {
|
||||||
case "XLSX":
|
case "XLS":
|
||||||
ExcelUtil<KDTradebillVo> util = new ExcelUtil<KDTradebillVo>(KDTradebillVo.class);
|
case "XLSX":
|
||||||
kdTradebillVoList = util.importExcel(new FileInputStream(dataFile), 1);
|
ExcelUtil<KDTradebillVo> util = new ExcelUtil<KDTradebillVo>(KDTradebillVo.class);
|
||||||
|
kdTradebillVoList = util.importExcel(new FileInputStream(dataFile), 1);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
} catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
throw new CustomException("文件数据不合规,请检查");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (KDTradebillVo vo : kdTradebillVoList) {
|
for (KDTradebillVo vo : kdTradebillVoList) {
|
||||||
if (vo.getOrderNo().equals("交易订单号") || StrUtil.hasBlank(vo.getOrderNo())) {
|
if (vo.getOrderNo().equals("交易订单号") || StrUtil.hasBlank(vo.getOrderNo())) {
|
||||||
continue;
|
continue;
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import cn.hutool.core.text.csv.CsvUtil;
|
|||||||
import cn.hutool.core.util.CharsetUtil;
|
import cn.hutool.core.util.CharsetUtil;
|
||||||
import cn.hutool.poi.excel.ExcelUtil;
|
import cn.hutool.poi.excel.ExcelUtil;
|
||||||
import cn.hutool.poi.excel.ExcelWriter;
|
import cn.hutool.poi.excel.ExcelWriter;
|
||||||
|
import com.xhpc.common.core.exception.CustomException;
|
||||||
import com.xhpc.common.core.utils.SecurityUtils;
|
import com.xhpc.common.core.utils.SecurityUtils;
|
||||||
import com.xhpc.activity.domain.XhpcTradebillPaymentCheckRecordDomain;
|
import com.xhpc.activity.domain.XhpcTradebillPaymentCheckRecordDomain;
|
||||||
import com.xhpc.activity.mapper.XhpcRechargeOrderMapper;
|
import com.xhpc.activity.mapper.XhpcRechargeOrderMapper;
|
||||||
@ -139,88 +140,93 @@ public class PaymentBillServiceImpl implements PaymentBillService {
|
|||||||
List<XhpcTradebillPaymentCheckRecordDomain> paymentCheckRecordDomainList = new ArrayList<>();
|
List<XhpcTradebillPaymentCheckRecordDomain> paymentCheckRecordDomainList = new ArrayList<>();
|
||||||
String suffix = dataFile.getName().substring(dataFile.getName().lastIndexOf(".") + 1);
|
String suffix = dataFile.getName().substring(dataFile.getName().lastIndexOf(".") + 1);
|
||||||
System.out.println(dataFile.getAbsolutePath());
|
System.out.println(dataFile.getAbsolutePath());
|
||||||
switch (suffix.toUpperCase()) {
|
try {
|
||||||
case "CSV":
|
switch (suffix.toUpperCase()) {
|
||||||
CsvReader csvReader = CsvUtil.getReader();
|
case "CSV":
|
||||||
CsvData data = csvReader.read(dataFile, CharsetUtil.CHARSET_GBK);
|
CsvReader csvReader = CsvUtil.getReader();
|
||||||
List<CsvRow> rows = data.getRows();
|
CsvData data = csvReader.read(dataFile, CharsetUtil.CHARSET_GBK);
|
||||||
|
List<CsvRow> rows = data.getRows();
|
||||||
|
|
||||||
List<String> serialNumberList = new ArrayList<>();
|
List<String> serialNumberList = new ArrayList<>();
|
||||||
int orderType = 0;
|
int orderType = 0;
|
||||||
|
|
||||||
for (CsvRow row : rows) {
|
for (CsvRow row : rows) {
|
||||||
// 列数是22,则是正文内容
|
// 列数是22,则是正文内容
|
||||||
if (row.getRawList().size() != 22) {
|
if (row.getRawList().size() != 22) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
// 判断内容是否是中文,如果是中文就认为是标题,则跳过
|
||||||
|
if (row.get(0).getBytes(StandardCharsets.UTF_8).length != row.get(0).length()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
XhpcTradebillPaymentCheckRecordDomain domain = new XhpcTradebillPaymentCheckRecordDomain();
|
||||||
|
domain.setCreateBy(userId);
|
||||||
|
domain.setUpdateBy(userId);
|
||||||
|
domain.setPaymentChannel(2);
|
||||||
|
domain.setPaymentUserId(row.get(12));
|
||||||
|
domain.setPaymentPayTime(DateUtil.parse(row.get(1)));
|
||||||
|
|
||||||
|
BigDecimal paymentAmount = BigDecimal.ZERO;
|
||||||
|
String serialNumber = "";
|
||||||
|
|
||||||
|
if (row.get(5).equals("在线支付")) {
|
||||||
|
// 充值订单
|
||||||
|
serialNumber = row.get(4).trim().replaceAll("`", "").replaceAll("'", "");
|
||||||
|
orderType = 1;
|
||||||
|
domain.setPaymentPayNumber(serialNumber);
|
||||||
|
domain.setOrderType(orderType);
|
||||||
|
System.out.println(row);
|
||||||
|
paymentAmount = row.get(6) != null && !"".equals(row.get(6).trim()) ? new BigDecimal(row.get(6)) : BigDecimal.ZERO;
|
||||||
|
domain.setPaymentAmount(paymentAmount);
|
||||||
|
|
||||||
|
serialNumberList.add(serialNumber);
|
||||||
|
} else if (row.get(5).equals("转账")) {
|
||||||
|
// 退款订单
|
||||||
|
serialNumber = row.get(16).trim().replaceAll("`", "").replaceAll("'", "").replaceAll("单笔转账--", "");
|
||||||
|
domain.setPaymentPayNumber(serialNumber);
|
||||||
|
orderType = 2;
|
||||||
|
domain.setOrderType(orderType);
|
||||||
|
|
||||||
|
paymentAmount = row.get(7) != null && !"".equals(row.get(7).trim()) ? new BigDecimal(row.get(7)) : BigDecimal.ZERO;
|
||||||
|
domain.setPaymentAmount(paymentAmount);
|
||||||
|
|
||||||
|
serialNumberList.add(serialNumber);
|
||||||
|
}
|
||||||
|
paymentCheckRecordDomainList.add(domain);
|
||||||
}
|
}
|
||||||
// 判断内容是否是中文,如果是中文就认为是标题,则跳过
|
getPlatOrderData(paymentCheckRecordDomainList, orderType, serialNumberList, startTime, endTime, tenantId);
|
||||||
if (row.get(0).getBytes(StandardCharsets.UTF_8).length != row.get(0).length()) {
|
|
||||||
continue;
|
break;
|
||||||
|
case "ZIP":
|
||||||
|
ZipFile zip = new ZipFile(dataFile);
|
||||||
|
File file = null;
|
||||||
|
for (Enumeration<ZipEntry> enumeration = zip.getEntries(); enumeration.hasMoreElements(); ) {
|
||||||
|
ZipEntry entry = enumeration.nextElement();
|
||||||
|
InputStream in = zip.getInputStream(entry);
|
||||||
|
if (entry.isDirectory()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
file = File.createTempFile("alipay_", entry.getName().substring(entry.getName().lastIndexOf(".")));
|
||||||
|
OutputStream outputStream = new FileOutputStream(file);
|
||||||
|
byte[] buff = new byte[1024];
|
||||||
|
int len;
|
||||||
|
while ((len = in.read(buff)) > 0) {
|
||||||
|
outputStream.write(buff, 0, len);
|
||||||
|
}
|
||||||
|
in.close();
|
||||||
|
outputStream.close();
|
||||||
}
|
}
|
||||||
XhpcTradebillPaymentCheckRecordDomain domain = new XhpcTradebillPaymentCheckRecordDomain();
|
if (file != null) {
|
||||||
domain.setCreateBy(userId);
|
paymentCheckRecordDomainList = getAliPayDataList(file, startTime, endTime, tenantId);
|
||||||
domain.setUpdateBy(userId);
|
|
||||||
domain.setPaymentChannel(2);
|
|
||||||
domain.setPaymentUserId(row.get(12));
|
|
||||||
domain.setPaymentPayTime(DateUtil.parse(row.get(1)));
|
|
||||||
|
|
||||||
BigDecimal paymentAmount = BigDecimal.ZERO;
|
|
||||||
String serialNumber = "";
|
|
||||||
|
|
||||||
if (row.get(5).equals("在线支付")) {
|
|
||||||
// 充值订单
|
|
||||||
serialNumber = row.get(4).trim().replaceAll("`", "").replaceAll("'", "");
|
|
||||||
orderType = 1;
|
|
||||||
domain.setPaymentPayNumber(serialNumber);
|
|
||||||
domain.setOrderType(orderType);
|
|
||||||
System.out.println(row);
|
|
||||||
paymentAmount = row.get(6) != null && !"".equals(row.get(6).trim()) ? new BigDecimal(row.get(6)) : BigDecimal.ZERO;
|
|
||||||
domain.setPaymentAmount(paymentAmount);
|
|
||||||
|
|
||||||
serialNumberList.add(serialNumber);
|
|
||||||
} else if (row.get(5).equals("转账")) {
|
|
||||||
// 退款订单
|
|
||||||
serialNumber = row.get(16).trim().replaceAll("`", "").replaceAll("'", "").replaceAll("单笔转账--", "");
|
|
||||||
domain.setPaymentPayNumber(serialNumber);
|
|
||||||
orderType = 2;
|
|
||||||
domain.setOrderType(orderType);
|
|
||||||
|
|
||||||
paymentAmount = row.get(7) != null && !"".equals(row.get(7).trim()) ? new BigDecimal(row.get(7)) : BigDecimal.ZERO;
|
|
||||||
domain.setPaymentAmount(paymentAmount);
|
|
||||||
|
|
||||||
serialNumberList.add(serialNumber);
|
|
||||||
}
|
}
|
||||||
paymentCheckRecordDomainList.add(domain);
|
|
||||||
}
|
|
||||||
getPlatOrderData(paymentCheckRecordDomainList, orderType, serialNumberList, startTime, endTime, tenantId);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "ZIP":
|
default:
|
||||||
ZipFile zip = new ZipFile(dataFile);
|
throw new Exception("暂不支持的文件格式");
|
||||||
File file = null;
|
}
|
||||||
for (Enumeration<ZipEntry> enumeration = zip.getEntries(); enumeration.hasMoreElements(); ) {
|
} catch (Exception e){
|
||||||
ZipEntry entry = enumeration.nextElement();
|
e.printStackTrace();
|
||||||
InputStream in = zip.getInputStream(entry);
|
throw new CustomException("文件数据不合规,请检查");
|
||||||
if (entry.isDirectory()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
file = File.createTempFile("alipay_", entry.getName().substring(entry.getName().lastIndexOf(".")));
|
|
||||||
OutputStream outputStream = new FileOutputStream(file);
|
|
||||||
byte[] buff = new byte[1024];
|
|
||||||
int len;
|
|
||||||
while ((len = in.read(buff)) > 0) {
|
|
||||||
outputStream.write(buff, 0, len);
|
|
||||||
}
|
|
||||||
in.close();
|
|
||||||
outputStream.close();
|
|
||||||
}
|
|
||||||
if (file != null) {
|
|
||||||
paymentCheckRecordDomainList = getAliPayDataList(file, startTime, endTime, tenantId);
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw new Exception("暂不支持的文件格式");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
paymentCheckRecordDomainList.sort(Comparator.comparing(XhpcTradebillPaymentCheckRecordDomain::getStatus));
|
paymentCheckRecordDomainList.sort(Comparator.comparing(XhpcTradebillPaymentCheckRecordDomain::getStatus));
|
||||||
@ -252,68 +258,74 @@ public class PaymentBillServiceImpl implements PaymentBillService {
|
|||||||
List<XhpcTradebillPaymentCheckRecordDomain> paymentCheckRecordDomainList = new ArrayList<>();
|
List<XhpcTradebillPaymentCheckRecordDomain> paymentCheckRecordDomainList = new ArrayList<>();
|
||||||
String suffix = dataFile.getName().substring(dataFile.getName().lastIndexOf(".") + 1);
|
String suffix = dataFile.getName().substring(dataFile.getName().lastIndexOf(".") + 1);
|
||||||
|
|
||||||
if ("CSV".equalsIgnoreCase(suffix)) {// 微信充值订单格式
|
try {
|
||||||
CsvReader csvReader = CsvUtil.getReader();
|
if ("CSV".equalsIgnoreCase(suffix)) {// 微信充值订单格式
|
||||||
CsvData data = csvReader.read(dataFile);
|
CsvReader csvReader = CsvUtil.getReader();
|
||||||
List<CsvRow> rows = data.getRows();
|
CsvData data = csvReader.read(dataFile);
|
||||||
|
List<CsvRow> rows = data.getRows();
|
||||||
|
|
||||||
List<String> serialNumberList = new ArrayList<>();
|
List<String> serialNumberList = new ArrayList<>();
|
||||||
int orderType = 0;
|
int orderType = 0;
|
||||||
for (CsvRow row : rows) {
|
for (CsvRow row : rows) {
|
||||||
// 列数是6,则是充值订单
|
// 列数是6,则是充值订单
|
||||||
// 列数是13,则是退款订单
|
// 列数是13,则是退款订单
|
||||||
if (row.getRawList().size() != 6 && row.getRawList().size() != 13) {
|
if (row.getRawList().size() != 6 && row.getRawList().size() != 13) {
|
||||||
continue;
|
|
||||||
}
|
|
||||||
XhpcTradebillPaymentCheckRecordDomain domain = new XhpcTradebillPaymentCheckRecordDomain();
|
|
||||||
domain.setPaymentChannel(1);
|
|
||||||
domain.setCreateBy(userId);
|
|
||||||
domain.setUpdateBy(userId);
|
|
||||||
|
|
||||||
String serialNumber = "";
|
|
||||||
if (row.getRawList().size() == 6) {
|
|
||||||
if (row.get(0).getBytes(StandardCharsets.UTF_8).length != row.get(0).length()) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
orderType = 1;
|
XhpcTradebillPaymentCheckRecordDomain domain = new XhpcTradebillPaymentCheckRecordDomain();
|
||||||
serialNumber = StringFormat(row.get(2));
|
domain.setPaymentChannel(1);
|
||||||
domain.setOrderType(orderType);
|
domain.setCreateBy(userId);
|
||||||
domain.setPaymentPayNumber(serialNumber);
|
domain.setUpdateBy(userId);
|
||||||
|
|
||||||
BigDecimal paymentAmount = row.get(5) != null && !"".equals(row.get(5).trim()) ? new BigDecimal(StringFormat(row.get(5))) : BigDecimal.ZERO;
|
String serialNumber = "";
|
||||||
|
if (row.getRawList().size() == 6) {
|
||||||
|
if (row.get(0).getBytes(StandardCharsets.UTF_8).length != row.get(0).length()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
orderType = 1;
|
||||||
|
serialNumber = StringFormat(row.get(2));
|
||||||
|
domain.setOrderType(orderType);
|
||||||
|
domain.setPaymentPayNumber(serialNumber);
|
||||||
|
|
||||||
domain.setPaymentAmount(paymentAmount);
|
BigDecimal paymentAmount = row.get(5) != null && !"".equals(row.get(5).trim()) ? new BigDecimal(StringFormat(row.get(5))) : BigDecimal.ZERO;
|
||||||
domain.setPaymentPayTime(DateUtil.parse(row.get(0)));
|
|
||||||
|
|
||||||
serialNumberList.add(serialNumber);
|
domain.setPaymentAmount(paymentAmount);
|
||||||
} else if (row.getRawList().size() == 13) {
|
domain.setPaymentPayTime(DateUtil.parse(row.get(0)));
|
||||||
// 微信退款订单
|
|
||||||
if (row.get(0).getBytes(StandardCharsets.UTF_8).length != row.get(0).length()) {
|
serialNumberList.add(serialNumber);
|
||||||
continue;
|
} else if (row.getRawList().size() == 13) {
|
||||||
|
// 微信退款订单
|
||||||
|
if (row.get(0).getBytes(StandardCharsets.UTF_8).length != row.get(0).length()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
orderType = 2;
|
||||||
|
serialNumber = StringFormat(row.get(2));
|
||||||
|
domain.setOrderType(orderType);
|
||||||
|
domain.setPaymentPayNumber(serialNumber);
|
||||||
|
|
||||||
|
BigDecimal paymentAmount = row.get(10) != null && !"".equals(row.get(10).trim()) ?
|
||||||
|
new BigDecimal(StringFormat(row.get(10)))
|
||||||
|
: BigDecimal.ZERO;
|
||||||
|
|
||||||
|
domain.setPaymentAmount(paymentAmount);
|
||||||
|
domain.setPaymentUserId(StringFormat(row.get(4)));
|
||||||
|
domain.setPaymentPayTime(DateUtil.parse(row.get(6)));
|
||||||
|
|
||||||
|
serialNumberList.add(serialNumber);
|
||||||
}
|
}
|
||||||
orderType = 2;
|
|
||||||
serialNumber = StringFormat(row.get(2));
|
|
||||||
domain.setOrderType(orderType);
|
|
||||||
domain.setPaymentPayNumber(serialNumber);
|
|
||||||
|
|
||||||
BigDecimal paymentAmount = row.get(10) != null && !"".equals(row.get(10).trim()) ?
|
paymentCheckRecordDomainList.add(computeTradebillData(domain));
|
||||||
new BigDecimal(StringFormat(row.get(10)))
|
|
||||||
: BigDecimal.ZERO;
|
|
||||||
|
|
||||||
domain.setPaymentAmount(paymentAmount);
|
|
||||||
domain.setPaymentUserId(StringFormat(row.get(4)));
|
|
||||||
domain.setPaymentPayTime(DateUtil.parse(row.get(6)));
|
|
||||||
|
|
||||||
serialNumberList.add(serialNumber);
|
|
||||||
}
|
}
|
||||||
|
getPlatOrderData(paymentCheckRecordDomainList, orderType, serialNumberList, startTime, endTime, tenantId);
|
||||||
|
|
||||||
paymentCheckRecordDomainList.add(computeTradebillData(domain));
|
} else {
|
||||||
|
throw new Exception("暂不支持的文件格式");
|
||||||
}
|
}
|
||||||
getPlatOrderData(paymentCheckRecordDomainList, orderType, serialNumberList, startTime, endTime, tenantId);
|
} catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
} else {
|
throw new CustomException("文件数据不合规,请检查");
|
||||||
throw new Exception("暂不支持的文件格式");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
paymentCheckRecordDomainList.sort(Comparator.comparing(XhpcTradebillPaymentCheckRecordDomain::getStatus));
|
paymentCheckRecordDomainList.sort(Comparator.comparing(XhpcTradebillPaymentCheckRecordDomain::getStatus));
|
||||||
return paymentCheckRecordDomainList;
|
return paymentCheckRecordDomainList;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user