Commit c4934057 authored by 吴琼's avatar 吴琼

修改

parent b5da1bac
...@@ -290,10 +290,6 @@ ...@@ -290,10 +290,6 @@
<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>
<!--<dependency> <!--<dependency>
<groupId>com.querydsl</groupId> <groupId>com.querydsl</groupId>
......
...@@ -36,7 +36,7 @@ public class TransactionReceiptRecord { ...@@ -36,7 +36,7 @@ public class TransactionReceiptRecord {
private String orderNo; private String orderNo;
@Column(name = "batch_no") @Column(name = "batch_no")
private Long batchNo; private Integer batchNo;
@Column(name = "sign_status") @Column(name = "sign_status")
private Long signStatus; private Long signStatus;
......
...@@ -11,15 +11,18 @@ import java.util.List; ...@@ -11,15 +11,18 @@ import java.util.List;
public interface TransactionReceiptRecordRepo extends JpaRepository<TransactionReceiptRecord, Long>, JpaSpecificationExecutor<TransactionReceiptRecord> { public interface TransactionReceiptRecordRepo extends JpaRepository<TransactionReceiptRecord, Long>, JpaSpecificationExecutor<TransactionReceiptRecord> {
@Query(value = "select max(batch_no) from transaction_receipt_record where export_status =?1 ", nativeQuery = true) @Query(value = "select max(batch_no) from transaction_receipt_record where export_status =?1 ", nativeQuery = true)
Long findMaxbatchNo(Integer status); Integer findMaxbatchNo(Integer status);
@Query(value = "select count(1) from transaction_receipt_record where user_id =?1 and user_name =?2 and order_no =?3 ", nativeQuery = true) @Query(value = "select count(1) from transaction_receipt_record where user_id =?1 and user_name =?2 and order_no =?3 ", nativeQuery = true)
Long selectCountByUserIdAndOrderNo(Integer userId,String userName,String orderNo); Integer selectCountByUserIdAndOrderNo(Integer userId,String userName,String orderNo);
@Query(value = "select * from transaction_receipt_record where import_status = ?1", nativeQuery = true) @Query(value = "select * from transaction_receipt_record where import_status = ?1", nativeQuery = true)
List<TransactionReceiptRecord> selectRecordsByImportStatus(Integer status); List<TransactionReceiptRecord> selectRecordsByImportStatus(Integer status);
@Query(value = "select * from transaction_receipt_record where import_status = ?1 and export_status !=2 ", nativeQuery = true) @Query(value = "select * from transaction_receipt_record where order_no = ?1 and user_id =?2 and user_name =?3 and import_status != 2 and export_status = 0 ", nativeQuery = true)
List<TransactionReceiptRecord> selectRecordsByOrderNo(String orderNo,Integer userId,String userName);
@Query(value = "select * from transaction_receipt_record where import_status = ?1 and export_status != 1", nativeQuery = true)
List<TransactionReceiptRecord> selectRecordsByImportStatusAndExportStatus(Integer status); List<TransactionReceiptRecord> selectRecordsByImportStatusAndExportStatus(Integer status);
@Query(value = "select count(1) from transaction_receipt_record where import_status =?1 ", nativeQuery = true) @Query(value = "select count(1) from transaction_receipt_record where import_status =?1 ", nativeQuery = true)
......
...@@ -60,9 +60,8 @@ public class TransactionReceiptRecordRest { ...@@ -60,9 +60,8 @@ public class TransactionReceiptRecordRest {
public JsonResult importTransactionReceiptRecord(@RequestParam("file") MultipartFile file) { public JsonResult importTransactionReceiptRecord(@RequestParam("file") MultipartFile file) {
try{ try{
return transactionReceiptRecordService.importTransactionReceiptRecord(file); return transactionReceiptRecordService.importTransactionReceiptRecord(file);
}catch(IOException e){ }catch(Exception e){
e.printStackTrace(); return JsonResult.buildErrorStateResult(e.getMessage());
return JsonResult.buildErrorStateResult("上传文件出现错误");
} }
} }
/** /**
...@@ -147,12 +146,11 @@ public class TransactionReceiptRecordRest { ...@@ -147,12 +146,11 @@ public class TransactionReceiptRecordRest {
@ResponseBody @ResponseBody
@Synchronized @Synchronized
public JsonResult exportTransactionZipFile(HttpServletRequest request, HttpServletResponse response) throws Exception{ public JsonResult exportTransactionZipFile(HttpServletRequest request, HttpServletResponse response) throws Exception{
//try{ try{
return transactionReceiptRecordService.exportZipFile(request,response); return transactionReceiptRecordService.exportZipFile(request,response);
/* }catch(Exception e){ }catch(Exception e){
e.printStackTrace();
return JsonResult.buildErrorStateResult("导出文件出现错误"); return JsonResult.buildErrorStateResult("导出文件出现错误");
}*/ }
} }
......
...@@ -49,6 +49,7 @@ import sun.misc.IOUtils; ...@@ -49,6 +49,7 @@ import sun.misc.IOUtils;
import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Predicate;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.transaction.Transactional;
import java.io.*; import java.io.*;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.*; import java.util.*;
...@@ -68,9 +69,6 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR ...@@ -68,9 +69,6 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
@Autowired @Autowired
private UserSdkImpl userSdk; private UserSdkImpl userSdk;
@Autowired
private IFileService fileService;
@Value("${kdsp-operation}") @Value("${kdsp-operation}")
private String kdspOperationUrl; private String kdspOperationUrl;
...@@ -142,32 +140,43 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR ...@@ -142,32 +140,43 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
} }
@Override @Override
public JsonResult importTransactionReceiptRecord(MultipartFile file) throws IOException { @Transactional
public JsonResult importTransactionReceiptRecord(MultipartFile file) throws RuntimeException {
log.info("[TransactionReceiptRecordServiceImpl importTransactionReceiptRecord] end,query={} ", file); log.info("[TransactionReceiptRecordServiceImpl importTransactionReceiptRecord] end,query={} ", file);
//查询未导出数据最大批次号 //查询未导出数据最大批次号
Long maxBatchNo = transactionReceiptRecordRepo.findMaxbatchNo(0); Integer maxBatchNo = transactionReceiptRecordRepo.findMaxbatchNo(0);
if(maxBatchNo == null || maxBatchNo.longValue() ==0l){ if(maxBatchNo == null || maxBatchNo ==0 ){
maxBatchNo = 1l; maxBatchNo = 1;
} }
//读取所有数据 //读取所有数据
log.info("TransactionReceiptRecordServiceImpl importTransactionReceiptRecord read begin"); log.info("TransactionReceiptRecordServiceImpl importTransactionReceiptRecord read begin");
long begin = System.currentTimeMillis(); long begin = System.currentTimeMillis();
List<TransactionReceiptRecord> readList = null;
List<TransactionReceiptRecord> readList = read(file.getOriginalFilename(), file.getInputStream()); try {
readList = read(file.getOriginalFilename(), file.getInputStream());
} catch (IOException e) {
throw new RuntimeException("读取数据异常");
}
long end = System.currentTimeMillis(); long end = System.currentTimeMillis();
log.info("TransactionReceiptRecordServiceImpl importTransactionReceiptRecord read end,总耗时:",end-begin); log.info("TransactionReceiptRecordServiceImpl importTransactionReceiptRecord read end,读取数据总耗时:",end-begin);
log.info("TransactionReceiptRecordServiceImpl importTransactionReceiptRecord save begin"); log.info("TransactionReceiptRecordServiceImpl importTransactionReceiptRecord save begin");
if(readList.size()>0){ if(readList.size()>0){
//0代表初始状态,1代表导入成功,2代表导入失败 //0代表初始状态,1代表导入成功,2代表导入失败
for(TransactionReceiptRecord record : readList){ for(TransactionReceiptRecord record : readList){
//保存时如果有其中一项为空则默认为导入失败,其他则默认初始状态 //如果三项同时为空的话则不落库
if((record.getUserId() == null || record.getUserId() == 0) if((record.getUserId() == null || record.getUserId() == 0)
&& StringUtils.isEmpty(record.getUserName()) && StringUtils.isEmpty(record.getOrderNo()) && StringUtils.isEmpty(record.getUserName()) && StringUtils.isEmpty(record.getOrderNo())
&& StringUtils.isEmpty(record.getSerialNo())
){ ){
continue; continue;
} }
//查询是否存在相同单号的数据,如果存在则不能导入
List<TransactionReceiptRecord> records =
transactionReceiptRecordRepo.selectRecordsByOrderNo(record.getOrderNo(),record.getUserId(),record.getUserName());
if(CollectionUtils.isNotEmpty(records)){
throw new RuntimeException("存在userid为"+record.getUserId()+",姓名为"+record.getUserName()+",交易单号为"+record.getOrderNo()+"数据还未导出,不能再次导入");
}
//保存时如果有其中一项为空则默认为导入失败,其他则默认初始状态
if(record.getUserId() ==null || record.getUserId() ==0 if(record.getUserId() ==null || record.getUserId() ==0
|| StringUtils.isEmpty(record.getUserName()) || StringUtils.isEmpty(record.getUserName())
|| StringUtils.isEmpty(record.getOrderNo())){ || StringUtils.isEmpty(record.getOrderNo())){
...@@ -180,7 +189,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR ...@@ -180,7 +189,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
record.setExportStatus(0); record.setExportStatus(0);
} }
//存储批次号 //存储批次号
record.setBatchNo(maxBatchNo); record.setBatchNo(maxBatchNo.intValue()+1);
transactionReceiptRecordRepo.save(record); transactionReceiptRecordRepo.save(record);
} }
log.info("TransactionReceiptRecordServiceImpl importTransactionReceiptRecord save end"); log.info("TransactionReceiptRecordServiceImpl importTransactionReceiptRecord save end");
...@@ -497,7 +506,9 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR ...@@ -497,7 +506,9 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
* @return * @return
*/ */
@Override @Override
public JsonResult updateTransactionRecordsStatus() { @Transactional
public JsonResult updateTransactionRecordsStatus() throws RuntimeException{
log.error("TransactionReceiptRecordServiceImpl updateTransactionRecordsStatus 校验更新数据 begin");
//查询所有初始化的数据 //查询所有初始化的数据
List<TransactionReceiptRecord> transactionReceiptRecordList List<TransactionReceiptRecord> transactionReceiptRecordList
= transactionReceiptRecordRepo.selectRecordsByImportStatus(0); = transactionReceiptRecordRepo.selectRecordsByImportStatus(0);
...@@ -587,15 +598,13 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR ...@@ -587,15 +598,13 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
for(TransactionReceiptRecord record :transactionReceiptRecordList){ for(TransactionReceiptRecord record :transactionReceiptRecordList){
try{ try{
//调用天津自牧用户中心接口 //调用天津自牧用户中心接口
Map<String, String> header = Maps.newHashMap();
header.put("Content-type", "application/x-www-form-urlencoded");
Map param = Maps.newHashMap(); Map param = Maps.newHashMap();
param.put("userIds",record.getUserId()); param.put("userIds",record.getUserId());
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)) {
record.setImportStatus(2); record.setImportStatus(2);
record.setExportStatus(2);
failList.add(record); failList.add(record);
continue; continue;
} }
...@@ -605,28 +614,36 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR ...@@ -605,28 +614,36 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
JSONArray userArray = JSONArray.parseArray(dataStr); JSONArray userArray = JSONArray.parseArray(dataStr);
if(userArray.size()<=0){ if(userArray.size()<=0){
record.setImportStatus(2); record.setImportStatus(2);
record.setExportStatus(2);
failList.add(record); failList.add(record);
continue; continue;
} }
JSONObject object= (JSONObject) userArray.get(0); JSONObject object= (JSONObject) userArray.get(0);
String userName = object.getString("name"); String userName = object.getString("name");
if(StringUtils.isNotBlank(userName) && userName.equals(record.getUserName())){ if(StringUtils.isNotBlank(userName) && userName.equals(record.getUserName())){
Map<String, String> header = Maps.newHashMap();
header.put("Content-type", "application/json");
header.put("qg-tenant-id", "560761");
//调用电商接口 //调用电商接口
String kUrl = kdspOperationUrl + "/api/kdsp/op/fa-cui/transaction-proof/check"; String kUrl = kdspOperationUrl + "/api/kdsp/op/fa-cui/transaction-proof/check";
//得到json字符串 //得到json字符串
String kResult = httpService.post(kUrl, header, param); Map param1 = Maps.newHashMap();
param1.put("userId",record.getUserId());
param1.put("orderNo",record.getOrderNo());
List<Map> paramList =new ArrayList<>();
paramList.add(param1);
String kResult = httpService.post(kUrl, header, paramList);
JSONObject kJson =JSONObject.parseObject(kResult); JSONObject kJson =JSONObject.parseObject(kResult);
String kJsonResult = kJson.getString("data"); String kJsonResult = kJson.getString("data");
String businessCode = kJson.getString("businessCode"); String businessCode = kJson.getString("businessCode");
if(!"0000".equals(businessCode)){ if(!"0000".equals(businessCode)){
record.setImportStatus(2); throw new RuntimeException("调用电商接口报错");
failList.add(record);
continue;
} }
JSONObject kJsonObject = JSONObject.parseObject(kJsonResult); JSONObject kJsonObject = JSONObject.parseObject(kJsonResult);
List<TransactionReceiptRecord> errorList = (List<TransactionReceiptRecord>) kJsonObject.get("verifyErrorList"); List<TransactionReceiptRecord> errorList = (List<TransactionReceiptRecord>) kJsonObject.get("verifyErrorList");
if(errorList.size()>0){ if(errorList.size()>0){
record.setImportStatus(2); record.setImportStatus(2);
record.setExportStatus(2);
failList.add(record); failList.add(record);
continue; continue;
} }
...@@ -634,10 +651,11 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR ...@@ -634,10 +651,11 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
successList.add(record); successList.add(record);
}else{ }else{
record.setImportStatus(2); record.setImportStatus(2);
record.setExportStatus(2);
failList.add(record); failList.add(record);
} }
}catch(Exception e){ }catch(Exception e){
failList.add(record); throw new RuntimeException("调用接口报错");
} }
} }
//校验全部通过则更新状态 //校验全部通过则更新状态
...@@ -647,6 +665,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR ...@@ -647,6 +665,7 @@ public class TransactionReceiptRecordServiceImpl implements ITransactionReceiptR
for(TransactionReceiptRecord record :successList){ for(TransactionReceiptRecord record :successList){
transactionReceiptRecordRepo.updateTransactionStatusByImportStatus(1,record.getOrderNo()); transactionReceiptRecordRepo.updateTransactionStatusByImportStatus(1,record.getOrderNo());
} }
log.error("TransactionReceiptRecordServiceImpl updateTransactionRecordsStatus 校验更新数据 end");
} }
return JsonResult.buildSuccessResult("数据导入成功",null); return JsonResult.buildSuccessResult("数据导入成功",null);
} }
......
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