Commit 255e1fc6 authored by 吴琼's avatar 吴琼

导入

parent 237b5dd8
......@@ -273,6 +273,10 @@
<artifactId>jsch</artifactId>
<version>0.1.54</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
</dependencies>
</project>
......@@ -9,14 +9,19 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Maps;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.entity.ContentType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
......@@ -57,9 +62,13 @@ public class TransactionReceiptRecordRest {
*/
@RequestMapping("/orderQuery/importTransactionReceiptRecord")
@ResponseBody
public JsonResult importTransactionReceiptRecord(MultipartFile file) {
public JsonResult importTransactionReceiptRecord(MultipartFile multipartFile) {
try{
return transactionReceiptRecordService.importTransactionReceiptRecord(file);
/* File excelFile =new File("D://交易凭证.xlsx");
FileInputStream inputStream =new FileInputStream(excelFile);
MultipartFile multipartFile = new MockMultipartFile(excelFile.getName(), excelFile.getName(),
ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream);*/
return transactionReceiptRecordService.importTransactionReceiptRecord(multipartFile);
}catch(IOException e){
e.printStackTrace();
return JsonResult.buildErrorStateResult("上传文件出现错误");
......
......@@ -26,8 +26,8 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.formula.functions.T;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
......@@ -40,17 +40,11 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.persistence.criteria.Predicate;
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@Slf4j
@Service("transactionReceiptRecordService")
......@@ -132,6 +126,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
if(maxBatchNo == null || maxBatchNo.longValue() ==0l){
maxBatchNo = 1l;
}
//读取所有数据
List<TransactionReceiptRecord> readList = read(file.getOriginalFilename(), file.getInputStream());
//0代表初始状态,1代表导入成功,2代表导入失败
......@@ -194,44 +189,15 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
continue;
}
/** 循环Excel的列 */
TransactionReceiptRecord record = new TransactionReceiptRecord();
for (int c = 0; c < totalCols; c++) {
Cell cell = row.getCell(c);
String cellValue = "";
if (null != cell) {
// 以下是判断数据的类型
switch (cell.getCellType()) {
case 0: // 数字
cellValue = cell.getNumericCellValue() + "";
break;
case 1: // 字符串
cellValue = cell.getStringCellValue();
break;
case 4: // Boolean
cellValue = cell.getBooleanCellValue() + "";
break;
case 2: // 公式
cellValue = cell.getCellFormula() + "";
break;
case 3: // 空值
cellValue = "";
break;
case 5: // 故障
cellValue = "非法字符";
break;
default:
cellValue = "未知类型";
break;
}
}
if(r == 1){
continue;
}
cell.setCellType(cell.CELL_TYPE_STRING);
String cellValue = cell.getStringCellValue();
if (org.springframework.util.StringUtils.isEmpty(cellValue)) {
continue;
}
TransactionReceiptRecord record = new TransactionReceiptRecord();
if(c == 1){
record.setSerialNo(cellValue);
}else if(c == 2){
......@@ -241,8 +207,8 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
}else if(c == 4){
record.setOrderNo(cellValue);
}
recordList.add(record);
}
recordList.add(record);
}
return recordList;
}
......@@ -379,6 +345,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
for(List<TransactionReceiptRecord> recordList : splitNList){
//调用金融用户中心校验userId是否一致
String userIds ="";
HashMap<String,TransactionReceiptRecord> map =new HashMap();
//循环获取userid进行拼接
for(int i= 0;i < recordList.size();i++){
TransactionReceiptRecord record =recordList.get(i);
......@@ -387,12 +354,14 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
}else{
userIds += record.getUserId()+"";
}
map.put(record.getUserId()+record.getUserName(),record);
}
Map<String, String> header = Maps.newHashMap();
header.put("Content-type", "application/x-www-form-urlencoded");
Map param = Maps.newHashMap();
param.put("userIds",userIds);
String userUrl = userSysUrl + "/api/sync/listByUserIds";
//String userUrl = userSysUrl + "/api/sync/listByUserIds";
String userUrl = "http://passportapi-qa2.liangkebang.net/api/sync/listByUserIds";
String userResult = httpService.get(userUrl, param);
if (StringUtils.isEmpty(userResult)) {
return JsonResult.buildErrorStateResult("批量查询userId报错");
......@@ -401,16 +370,14 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
JSONObject userJsonObject = JSONObject.parseObject(userResult);
String dataStr = userJsonObject.getString("data");
JSONArray userArray = JSONArray.parseArray(dataStr);
//未查询到信息的userid
List list =new ArrayList();
for(int i=0;i<userArray.size();i++){
JSONObject object= (JSONObject) userArray.get(i);
Integer userId =object.getInteger("userId");
String userId =object.getString("userId");
String userName = object.getString("name");
TransactionReceiptRecord record =recordList.get(i);
if(record.getUserId().intValue() != userId.intValue() || userName.equals(record.getUserName())){
failList.add(record);
}
}
}
//调用kdsp接口校验userId和交易单号是否一致
String kUrl = kdspOperationUrl + "/api/kdsp/op/fa-cui/transaction-proof/check";
//得到json字符串
......@@ -430,10 +397,10 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
transactionReceiptRecordRepo.updateTransactionStatusByImportStatus(2,record.getOrderNo());
}
for(TransactionReceiptRecord record :sucessList){
transactionReceiptRecordRepo.updateTransactionStatusByImportStatus(2,record.getOrderNo());
transactionReceiptRecordRepo.updateTransactionStatusByImportStatus(1,record.getOrderNo());
}
}
return JsonResult.buildSuccessResult("数据全部导入成功",null);
return JsonResult.buildSuccessResult("数据状态更新成功",null);
}
@Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment