apzl_leasing/src_tenwa/com/tenwa/apzl/comm/TheTradeOrderImport.java
2020-03-23 21:28:15 +08:00

83 lines
3.1 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.tenwa.apzl.comm;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.amarsoft.are.jbo.BizObject;
import com.amarsoft.are.jbo.JBOTransaction;
import com.amarsoft.awe.util.SqlObject;
import com.amarsoft.awe.util.Transaction;
import com.amarsoft.context.ASUser;
import com.amarsoft.dict.als.cache.CacheLoaderFactory;
import com.tenwa.comm.exception.BusinessException;
import com.tenwa.comm.util.jboutil.DataOperatorUtil;
import com.tenwa.officetempalte.importcallback.impl.BaseImportExcelCallBack;
public class TheTradeOrderImport extends BaseImportExcelCallBack{
@Override
public void run(ASUser CurUser, BizObject importObject,Map<String, String> model, Integer rowIndex, JBOTransaction tx,Transaction Sqlca) throws Exception {
}
@Override
public void runBefore(ASUser CurUser, Map<String, String> model, List<BizObject> importObjects, JBOTransaction tx,Transaction Sqlca) throws Exception {
Transaction Sqlca1 = Transaction.createTransaction(CacheLoaderFactory.getDataSource());
/**
* 定义全局变量
*/
String error=""; // 错误描述
boolean flag=false; // 错误描述
String Ebank_order_number=null; // 导入的网银订单号
String merchants_order_number=null; // 导入的商户订单号
String System_serial_number=null; // 导入的系统流水号
String sql1=""; // 原有的数据
/**
* 校验本次Excel是否有重复的
*/
/**
* 校验本次导入数据在导入表是否已有
*/
List<Map<String, String>> list = new ArrayList<Map<String,String>>();
Map<String, String> map = new HashMap<String, String>();
List<String> arrayList = new ArrayList<String>();
for(BizObject bo:importObjects){
Ebank_order_number=bo.getAttribute("Ebank_order_number").getString();
merchants_order_number=bo.getAttribute("merchants_order_number").getString();
System_serial_number=bo.getAttribute("System_serial_number").getString();
arrayList.add(Ebank_order_number);
// 通过本次excel中的数据查询导入的表, 判断是否重复
sql1="SELECT Ebank_order_number FROM sz_trade_order WHERE Ebank_order_number='"+Ebank_order_number+"' AND merchants_order_number='"+merchants_order_number+"' AND System_serial_number='"+System_serial_number+"'";
List<Map<String, String>> dataList = DataOperatorUtil.getDataBySql(Sqlca, sql1, null);
// 有结果集, 说明重复
if(dataList.size()>0){
error=",【网银订单号: "+Ebank_order_number+", 商户订单号: "+merchants_order_number+", 系统流水号 : "+System_serial_number+"";
flag=true;
}
}
if(flag) {
error = error.substring(1);
throw new BusinessException(error+"已存在 ");
}
long count = arrayList.stream().distinct().count();
boolean isRepeat = count < arrayList.size();
if(isRepeat){
Set<String> set = new HashSet<>();
Set<String> exist = new HashSet<>();
for (String s : arrayList) {
if (set.contains(s)) {
exist.add(s);
} else {
set.add(s);
}
}
throw new BusinessException("excl中的网银订单号:"+String.join(", ", exist)+"重复。");
}
}
}