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

导入

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