83 lines
3.1 KiB
Java
83 lines
3.1 KiB
Java
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)+"重复。");
|
||
}
|
||
}
|
||
}
|