|
|
@ -33,10 +33,20 @@ public class SyncVerificationMain { |
|
|
|
//update
|
|
|
|
private final String tbs_activity = "tbs_activity"; |
|
|
|
|
|
|
|
private static Long vtbId = 0L; |
|
|
|
private static Long vtbSubId = 0L; |
|
|
|
private static Long payMaxId = 0L; |
|
|
|
|
|
|
|
private static List<VtbVerification> batchVtbVerificationList = new ArrayList<>(); |
|
|
|
private static List<VtbVerificationSubject> batchVtbVerificationSubjectList = new ArrayList<>(); |
|
|
|
private static List<JslVtbFundFlow> batchVtbFlowList = new ArrayList<>(); |
|
|
|
private static List<JslTbsBudgetLog> batchBudgetLogList = new ArrayList<>(); |
|
|
|
private static List<PayPayment> payPaymentList = new ArrayList<>(); |
|
|
|
private static List<PayPaymentItem> payPaymentItemList = new ArrayList<>(); |
|
|
|
|
|
|
|
@Test |
|
|
|
@SneakyThrows |
|
|
|
public void removeCostCode(){ |
|
|
|
public void removeCostCode() { |
|
|
|
String[] arr = new String[]{ |
|
|
|
"6445", |
|
|
|
"10236", |
|
|
@ -60,12 +70,12 @@ public class SyncVerificationMain { |
|
|
|
} |
|
|
|
|
|
|
|
@SneakyThrows |
|
|
|
public void removeCostIds(List<String> jslCostIds){ |
|
|
|
public void removeCostIds(List<String> jslCostIds) { |
|
|
|
DbContext jslContext = TbsMapper.getJslDbContext(); |
|
|
|
//删除同步异常的数据
|
|
|
|
if (jslCostIds.size() > 0) { |
|
|
|
String rmIdsString = "(" + jslCostIds.stream().map(id -> "'" + id + "'").collect(Collectors.joining(",")) + ")"; |
|
|
|
System.out.println("移除历史数据:"+rmIdsString); |
|
|
|
System.out.println("移除历史数据:" + rmIdsString); |
|
|
|
jslContext.sql("delete from vtb_fund_flow where cost_apply_id in " + rmIdsString).execute(); |
|
|
|
//opt_type : 4-费用释放
|
|
|
|
jslContext.sql("delete from tbs_budget_log where opt_type = 4 and cost_apply_id in " + rmIdsString).execute(); |
|
|
@ -77,43 +87,105 @@ public class SyncVerificationMain { |
|
|
|
} |
|
|
|
|
|
|
|
@SneakyThrows |
|
|
|
public void testMain(){ |
|
|
|
private void getMaxVtbId() { |
|
|
|
DbContext jslDbContext = TbsMapper.getJslDbContext(); |
|
|
|
|
|
|
|
String sql = "select max(id) as maxid from vtb_verification where id < 10450001 "; |
|
|
|
Long maxid = (Long) jslDbContext.sql(sql).getMap().get("maxid"); |
|
|
|
this.vtbId = maxid; |
|
|
|
} |
|
|
|
|
|
|
|
@SneakyThrows |
|
|
|
private void getMaxVtbSubId() { |
|
|
|
DbContext jslDbContext = TbsMapper.getJslDbContext(); |
|
|
|
|
|
|
|
String sql = "select max(id) as maxid from vtb_verification_subject where id < 10455001 "; |
|
|
|
Long maxid = (Long) jslDbContext.sql(sql).getMap().get("maxid"); |
|
|
|
this.vtbSubId = maxid; |
|
|
|
} |
|
|
|
|
|
|
|
@SneakyThrows |
|
|
|
private void getMaxPayId() { |
|
|
|
DbContext jslDbContext = TbsMapper.getJslDbContext(); |
|
|
|
|
|
|
|
String sql = "select max(id) as maxid from pay_payment where id < 11339001 "; |
|
|
|
Long maxid = (Long) jslDbContext.sql(sql).getMap().get("maxid"); |
|
|
|
this.payMaxId = maxid; |
|
|
|
} |
|
|
|
|
|
|
|
@SneakyThrows |
|
|
|
public void formain() { |
|
|
|
DbContext jslDbContext = TbsMapper.getJslDbContext(); |
|
|
|
|
|
|
|
getMaxVtbId(); |
|
|
|
getMaxVtbSubId(); |
|
|
|
getMaxPayId(); |
|
|
|
if (vtbId == 0L || vtbId == 10450000L) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (vtbSubId == 0L || vtbSubId == 10455000L) { |
|
|
|
return; |
|
|
|
} |
|
|
|
if (payMaxId == 0L || payMaxId == 11339000L) { |
|
|
|
return; |
|
|
|
} |
|
|
|
Integer count = 1; |
|
|
|
while (count > 0) { |
|
|
|
|
|
|
|
String sql_cost_list = "select * from tbs_cost_apply where xlt_sync = 2 and budget_sync = 1 and vtb_sync !=2 order by id desc limit 300"; |
|
|
|
List<JslTbsCostApply> costList = jslDbContext.sql(sql_cost_list).getList(JslTbsCostApply.class); |
|
|
|
if (costList.size() > 0) { |
|
|
|
try{ |
|
|
|
testMain(); |
|
|
|
}catch (Exception e){ |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
} |
|
|
|
count = costList.size(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
@SneakyThrows |
|
|
|
public void testMain() { |
|
|
|
DbContext jslDbContext = TbsMapper.getJslDbContext(); |
|
|
|
DbContext xltDbContext = TbsMapper.getXltDbContext(); |
|
|
|
|
|
|
|
// xlt_sync = 2 同步申请预算完成
|
|
|
|
// 获取已同步的费用ID(未完成的)
|
|
|
|
// budget_sync=1 代表命中预算
|
|
|
|
// vtb_sync 0 未开始,1未完成 2->成功 4无核销
|
|
|
|
//String sql_cost_list ="select * from tbs_cost_apply where code = '202212301485' "; //测试
|
|
|
|
//String sql_cost_list ="select * from tbs_cost_apply where xlt_sync = 2 and budget_sync = 1 and (vtb_sync =0 or vtb_sync = 1)";
|
|
|
|
String sql_cost_list ="select * from tbs_cost_apply where xlt_sync = 2 and budget_sync = 1 and vtb_sync !=2 order by id desc"; |
|
|
|
if(SetData.startId!=null){ |
|
|
|
int startId = SetData.startId; |
|
|
|
int endId = startId+1000; |
|
|
|
sql_cost_list = "select * from tbs_cost_apply where xlt_sync = 2 and budget_sync = 1 and vtb_sync !=2 and id>="+startId+" and id <"+endId; |
|
|
|
} |
|
|
|
System.out.println("执行命令:"+ sql_cost_list); |
|
|
|
String sql_cost_list = "select * from tbs_cost_apply where xlt_sync = 2 and budget_sync = 1 and vtb_sync !=2 order by id desc limit 300"; |
|
|
|
// if(SetData.startId!=null){
|
|
|
|
// int startId = SetData.startId;
|
|
|
|
// int endId = startId+1000;
|
|
|
|
// sql_cost_list = "select * from tbs_cost_apply where xlt_sync = 2 and budget_sync = 1 and vtb_sync !=2 and id>="+startId+" and id <"+endId;
|
|
|
|
// }
|
|
|
|
System.out.println("执行命令:" + sql_cost_list); |
|
|
|
List<JslTbsCostApply> costList = jslDbContext.sql(sql_cost_list).getList(JslTbsCostApply.class); |
|
|
|
System.out.println("未完成数量:"+costList.size()); |
|
|
|
System.out.println("未完成数量:" + costList.size()); |
|
|
|
//移除历史同步失败的
|
|
|
|
List<String> errorCostIds = new ArrayList<>(); |
|
|
|
for (JslTbsCostApply costApply : costList) { |
|
|
|
if(!costApply.getVtbSync().equals(0)){ |
|
|
|
errorCostIds.add(costApply.getId()+""); |
|
|
|
} |
|
|
|
// if (!costApply.getVtbSync().equals(0)) {
|
|
|
|
errorCostIds.add(costApply.getId() + ""); |
|
|
|
// }
|
|
|
|
} |
|
|
|
this.removeCostIds(errorCostIds); |
|
|
|
|
|
|
|
int count = 1; |
|
|
|
|
|
|
|
//------------------------------------------------------------------//
|
|
|
|
List<String> costApplyCodes = costList.stream().map(a->a.getId().toString()).collect(Collectors.toList()); |
|
|
|
String sql_activity_list ="select * from tbs_activity where cost_apply_id in ("+costApplyCodes.stream().collect(Collectors.joining(","))+")"; |
|
|
|
List<String> costApplyCodes = costList.stream().map(a -> a.getId().toString()).collect(Collectors.toList()); |
|
|
|
String sql_activity_list = "select * from tbs_activity where cost_apply_id in (" + costApplyCodes.stream().collect(Collectors.joining(",")) + ")"; |
|
|
|
List<JslTbsActivity> tbsActivitiesAll = jslDbContext.sql(sql_activity_list).getList(JslTbsActivity.class); |
|
|
|
|
|
|
|
Map<Long,List<JslTbsActivity>> tbsActivitiesMap = tbsActivitiesAll.stream().collect(Collectors.groupingBy(JslTbsActivity::getCostApplyId)); |
|
|
|
Map<Long, List<JslTbsActivity>> tbsActivitiesMap = tbsActivitiesAll.stream().collect(Collectors.groupingBy(JslTbsActivity::getCostApplyId)); |
|
|
|
|
|
|
|
List<String> tbsActivitiesCodes = tbsActivitiesAll.stream().map(a->a.getActivityCode()).collect(Collectors.toList()); |
|
|
|
List<String> tbsActivitiesCodes = tbsActivitiesAll.stream().map(a -> a.getActivityCode()).collect(Collectors.toList()); |
|
|
|
|
|
|
|
String sql_xlt_check_cost = |
|
|
|
" SELECT oldlistnumber as activity_code," + |
|
|
@ -130,12 +202,12 @@ public class SyncVerificationMain { |
|
|
|
" WHERE " + |
|
|
|
" cmain.state = '120' " + |
|
|
|
" and clist.iscancel = '0' " + |
|
|
|
" and clist.iszuofei != 1 "+ |
|
|
|
" AND oldlistnumber in ('"+tbsActivitiesCodes.stream().collect(Collectors.joining("','")) +"')";//活动id
|
|
|
|
" and clist.iszuofei != 1 " + |
|
|
|
" AND oldlistnumber in ('" + tbsActivitiesCodes.stream().collect(Collectors.joining("','")) + "')";//活动id
|
|
|
|
|
|
|
|
List<XltCheckCostItem> checkCostItemListAll = xltDbContext.sql(sql_xlt_check_cost).getList(XltCheckCostItem.class); |
|
|
|
|
|
|
|
Map<String,List<XltCheckCostItem>> checkCostItemListMap = checkCostItemListAll.stream().collect(Collectors.groupingBy(XltCheckCostItem::getActivityCode)); |
|
|
|
Map<String, List<XltCheckCostItem>> checkCostItemListMap = checkCostItemListAll.stream().collect(Collectors.groupingBy(XltCheckCostItem::getActivityCode)); |
|
|
|
|
|
|
|
|
|
|
|
String sql_xlt_check_cost_cancel = |
|
|
@ -152,19 +224,23 @@ public class SyncVerificationMain { |
|
|
|
" ON clist.mainID = cmain.id " + |
|
|
|
" WHERE " + |
|
|
|
" cmain.state = '120' " + |
|
|
|
" and clist.iscancel = '0' " + |
|
|
|
" and clist.iszuofei != 1 "+ |
|
|
|
" AND oldlistnumber in ('"+tbsActivitiesCodes.stream().collect(Collectors.joining("','")) +"')";//活动id
|
|
|
|
" and clist.iscancel = '1' " + |
|
|
|
" and clist.iszuofei != 1 " + |
|
|
|
" AND oldlistnumber in ('" + tbsActivitiesCodes.stream().collect(Collectors.joining("','")) + "')";//活动id
|
|
|
|
|
|
|
|
List<XltCheckCostItem> checkCostItemListAllCancel = xltDbContext.sql(sql_xlt_check_cost_cancel).getList(XltCheckCostItem.class); |
|
|
|
|
|
|
|
Map<String,List<XltCheckCostItem>> checkCostItemListCancelMap = checkCostItemListAllCancel.stream().collect(Collectors.groupingBy(XltCheckCostItem::getActivityCode)); |
|
|
|
Map<String, List<XltCheckCostItem>> checkCostItemListCancelMap = checkCostItemListAllCancel.stream().collect(Collectors.groupingBy(XltCheckCostItem::getActivityCode)); |
|
|
|
|
|
|
|
// 获取活动列表(未释放,以及未完成的)
|
|
|
|
|
|
|
|
for (JslTbsCostApply costApply : costList) { |
|
|
|
// List<String> errorCostIdRemove = new ArrayList<>();
|
|
|
|
// errorCostIdRemove.add(costApply.getId().toString());
|
|
|
|
//
|
|
|
|
// this.removeCostIds(errorCostIdRemove);
|
|
|
|
|
|
|
|
System.out.println(count+"/"+costList.size()+" ["+costApply.getId()+"]"); |
|
|
|
System.out.println(count + "/" + costList.size() + " [" + costApply.getId() + "]"); |
|
|
|
count++; |
|
|
|
|
|
|
|
//标记状态
|
|
|
@ -175,72 +251,51 @@ public class SyncVerificationMain { |
|
|
|
// List<JslTbsActivity> tbsActivities = jslDbContext.sql(sql_activity_list,costApply.getId().toString()).getList(JslTbsActivity.class);
|
|
|
|
List<JslTbsActivity> tbsActivities = tbsActivitiesMap.get(costApply.getId()); |
|
|
|
|
|
|
|
boolean isOk = buildActivity(jslDbContext, xltDbContext, costApply, tbsActivities,checkCostItemListMap,checkCostItemListCancelMap); |
|
|
|
boolean isOk = buildActivity(jslDbContext, xltDbContext, costApply, tbsActivities, checkCostItemListMap, checkCostItemListCancelMap); |
|
|
|
|
|
|
|
//完成标记状态
|
|
|
|
if(isOk){ |
|
|
|
if (isOk) { |
|
|
|
|
|
|
|
|
|
|
|
insertBatchVtbVerification(batchVtbVerificationList); |
|
|
|
insertBatchVtbVerificationSubject(batchVtbVerificationSubjectList); |
|
|
|
insertBatchVtbFlow(batchVtbFlowList); |
|
|
|
insertBatchBudgetLog(batchBudgetLogList); |
|
|
|
insertBatchPayment(payPaymentList); |
|
|
|
insertBatchPaymentItem(payPaymentItemList); |
|
|
|
|
|
|
|
String sql_cost_sync_success = "update tbs_cost_apply set vtb_sync = 2 where id = "; |
|
|
|
jslDbContext.sql(sql_cost_sync_success + costApply.getId()).execute(); |
|
|
|
} |
|
|
|
|
|
|
|
batchVtbVerificationList = new ArrayList<>(); |
|
|
|
batchVtbVerificationSubjectList = new ArrayList<>(); |
|
|
|
batchVtbFlowList = new ArrayList<>(); |
|
|
|
batchBudgetLogList = new ArrayList<>(); |
|
|
|
payPaymentList = new ArrayList<>(); |
|
|
|
payPaymentItemList = new ArrayList<>(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
private boolean buildActivity(DbContext jslDbContext, DbContext xltDbContext, JslTbsCostApply costApply, List<JslTbsActivity> tbsActivities, |
|
|
|
Map<String,List<XltCheckCostItem>> checkCostItemListMap, |
|
|
|
Map<String,List<XltCheckCostItem>> checkCostItemListCancelMap) throws SQLException { |
|
|
|
Map<String, List<XltCheckCostItem>> checkCostItemListMap, |
|
|
|
Map<String, List<XltCheckCostItem>> checkCostItemListCancelMap) throws SQLException { |
|
|
|
for (JslTbsActivity tbsActivity : tbsActivities) { |
|
|
|
if(tbsActivity.getTotalAmount().compareTo(BigDecimal.ZERO)==0){ |
|
|
|
if (tbsActivity.getTotalAmount().compareTo(BigDecimal.ZERO) == 0) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
String activityCode = tbsActivity.getActivityCode(); |
|
|
|
// 获取销路通核销明细
|
|
|
|
// String sql_xlt_check_cost =
|
|
|
|
// " SELECT oldlistnumber as activity_code," +
|
|
|
|
// " cmain.number_ AS main_number, " +
|
|
|
|
// " clist.listNumber as list_number, " +
|
|
|
|
// " clist.isYuEBuYuHeXiao not_allow_flag, " +
|
|
|
|
// " clist.pifumoney as apply_amt, " +
|
|
|
|
// " (cList.hexiaomoney + cList.shuiJin) check_pass_amt, " +
|
|
|
|
// " cList.exedate " +
|
|
|
|
// " FROM " +
|
|
|
|
// " costreimbursementList clist " +
|
|
|
|
// " LEFT JOIN costreimbursement cmain " +
|
|
|
|
// " ON clist.mainID = cmain.id " +
|
|
|
|
// " WHERE " +
|
|
|
|
// " cmain.state = '120' " +
|
|
|
|
// " and clist.iscancel = '0' " +
|
|
|
|
// " and clist.iszuofei != 1 "+
|
|
|
|
// " AND oldlistnumber = '"+activityCode+"'";//活动id
|
|
|
|
//
|
|
|
|
// List<XltCheckCostItem> checkCostItemList = xltDbContext.sql(sql_xlt_check_cost).getList(XltCheckCostItem.class);
|
|
|
|
|
|
|
|
List<XltCheckCostItem> checkCostItemList = checkCostItemListMap.get(activityCode); |
|
|
|
//申请人取消标识
|
|
|
|
Boolean applyRealse = false; |
|
|
|
|
|
|
|
if(checkCostItemList ==null || checkCostItemList.size()==0){ |
|
|
|
//申请人放弃核销 没有iscancel=0,只有iscancel=1
|
|
|
|
// String sql_xlt_release_cost =
|
|
|
|
// " SELECT " +
|
|
|
|
// " cmain.number_ AS main_number, " +
|
|
|
|
// " clist.listNumber as list_number, " +
|
|
|
|
// " clist.isYuEBuYuHeXiao not_allow_flag, " +
|
|
|
|
// " clist.pifumoney as apply_amt, " +
|
|
|
|
// " (cList.hexiaomoney + cList.shuiJin) check_pass_amt, " +
|
|
|
|
// " cList.exedate " +
|
|
|
|
// " FROM " +
|
|
|
|
// " costreimbursementList clist " +
|
|
|
|
// " LEFT JOIN costreimbursement cmain " +
|
|
|
|
// " ON clist.mainID = cmain.id " +
|
|
|
|
// " WHERE " +
|
|
|
|
// " cmain.state = '120' " +
|
|
|
|
// " and clist.iscancel = '1' " +
|
|
|
|
// " and clist.iszuofei != 1 "+
|
|
|
|
// " AND oldlistnumber = '"+activityCode+"'";//活动id
|
|
|
|
// List<XltCheckCostItem> checkCostReleaseItemList = xltDbContext.sql(sql_xlt_release_cost).getList(XltCheckCostItem.class);
|
|
|
|
if (checkCostItemList == null || checkCostItemList.size() == 0) { |
|
|
|
List<XltCheckCostItem> checkCostReleaseItemList = checkCostItemListCancelMap.get(activityCode); |
|
|
|
if(checkCostReleaseItemList == null || checkCostReleaseItemList.size()==0) { |
|
|
|
if (checkCostReleaseItemList == null || checkCostReleaseItemList.size() == 0) { |
|
|
|
System.out.println("无相关核销,活动编码:" + activityCode); |
|
|
|
continue; |
|
|
|
}else{ |
|
|
|
} else { |
|
|
|
applyRealse = true; |
|
|
|
checkCostItemList = checkCostReleaseItemList; |
|
|
|
} |
|
|
@ -248,8 +303,8 @@ public class SyncVerificationMain { |
|
|
|
|
|
|
|
String sql_budget_cost_item = "select * from tbs_budget_cost_item where activity_id = ?"; |
|
|
|
JslTbsBudgetCostItem currCostItem = jslDbContext.sql(sql_budget_cost_item, tbsActivity.getId()).getItem(JslTbsBudgetCostItem.class); |
|
|
|
if(currCostItem==null||currCostItem.getId()==null){ |
|
|
|
System.out.println("没有命中核销的费用id:"+ costApply.getId()); |
|
|
|
if (currCostItem == null || currCostItem.getId() == null) { |
|
|
|
System.out.println("没有命中核销的费用id:" + costApply.getId() + " 活动id:"+tbsActivity.getId()); |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
@ -258,7 +313,7 @@ public class SyncVerificationMain { |
|
|
|
BigDecimal totalPassAmt = BigDecimal.ZERO; |
|
|
|
for (int i = 0; i < checkCostItemList.size(); i++) { |
|
|
|
XltCheckCostItem checkCostItem = checkCostItemList.get(i); |
|
|
|
if(!applyRealse) { |
|
|
|
if (!applyRealse) { |
|
|
|
//申请人取消的话要跳过核销插入,直接释放
|
|
|
|
this.saveVerification(i, jslDbContext, currCostItem, tbsActivity, checkCostItem); |
|
|
|
} |
|
|
@ -267,15 +322,15 @@ public class SyncVerificationMain { |
|
|
|
} |
|
|
|
|
|
|
|
// 不再支付
|
|
|
|
boolean isNotAllow = checkCostItemList.stream().anyMatch(a->a.getNotAllowFlag().equals(1)); |
|
|
|
boolean isNotAllow = checkCostItemList.stream().anyMatch(a -> a.getNotAllowFlag().equals(1)); |
|
|
|
//更新主表dto
|
|
|
|
JslTbsActivity updAct = new JslTbsActivity(); |
|
|
|
//updAct.setId(tbsActivity.getId());
|
|
|
|
// 释放金额
|
|
|
|
if(isNotAllow || applyRealse){ |
|
|
|
if (isNotAllow || applyRealse) { |
|
|
|
// 不再支付返回预算到预算池
|
|
|
|
BigDecimal totalReleaseAmt = totalApplyAmt.subtract(totalPassAmt); |
|
|
|
if(totalReleaseAmt.compareTo(BigDecimal.ZERO)>0){ |
|
|
|
BigDecimal totalReleaseAmt = totalApplyAmt.subtract(totalPassAmt); |
|
|
|
if (totalReleaseAmt.compareTo(BigDecimal.ZERO) > 0) { |
|
|
|
updAct.setActivityState(4); |
|
|
|
updAct.setReleaseFlag(1); |
|
|
|
updAct.setFinishedFlag(1); |
|
|
@ -283,21 +338,20 @@ public class SyncVerificationMain { |
|
|
|
updAct.setReleaseUserName("系统导入"); |
|
|
|
updAct.setReleaseTime(checkCostItemList.get(0).getExedate()); |
|
|
|
updAct.setReleaseAmount(totalReleaseAmt); |
|
|
|
this.doNotAllowCost(currCostItem,totalReleaseAmt, jslDbContext, costApply, tbsActivity, totalApplyAmt); |
|
|
|
this.doNotAllowCost(currCostItem, totalReleaseAmt, jslDbContext, costApply, tbsActivity, totalApplyAmt); |
|
|
|
} |
|
|
|
} |
|
|
|
updAct.setUsedAmount(totalPassAmt); |
|
|
|
if(totalApplyAmt.compareTo(totalPassAmt)==0){ |
|
|
|
if (totalApplyAmt.compareTo(totalPassAmt) == 0) { |
|
|
|
updAct.setFinishedFlag(1); |
|
|
|
} |
|
|
|
String sql_update_act_info = SqlCreateUtil.buildUpdateSql(updAct,tbs_activity)+" where id = "+tbsActivity.getId(); |
|
|
|
String sql_update_act_info = SqlCreateUtil.buildUpdateSql(updAct, tbs_activity) + " where id = " + tbsActivity.getId(); |
|
|
|
jslDbContext.sql(sql_update_act_info).execute(); |
|
|
|
} |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* @param totalReleaseAmt |
|
|
|
* @param jslDbContext |
|
|
|
* @param costApply |
|
|
@ -305,12 +359,12 @@ public class SyncVerificationMain { |
|
|
|
* @param totalApplyAmt |
|
|
|
* @throws SQLException |
|
|
|
*/ |
|
|
|
private void doNotAllowCost(JslTbsBudgetCostItem currCostItem,BigDecimal totalReleaseAmt ,DbContext jslDbContext, JslTbsCostApply costApply, JslTbsActivity tbsActivity, BigDecimal totalApplyAmt) throws SQLException { |
|
|
|
private void doNotAllowCost(JslTbsBudgetCostItem currCostItem, BigDecimal totalReleaseAmt, DbContext jslDbContext, JslTbsCostApply costApply, JslTbsActivity tbsActivity, BigDecimal totalApplyAmt) throws SQLException { |
|
|
|
//插入日志流水
|
|
|
|
JslVtbFundFlow fundFlow = new JslVtbFundFlow(); |
|
|
|
fundFlow.setFundType("release"); |
|
|
|
fundFlow.setVerificationId(0L); |
|
|
|
fundFlow.setCenterGoodsCode(tbsActivity.getActivityCode()+"_00"); |
|
|
|
fundFlow.setCenterGoodsCode(tbsActivity.getActivityCode() + "_00"); |
|
|
|
fundFlow.setCostApplyId(tbsActivity.getCostApplyId()); |
|
|
|
fundFlow.setActivityId(tbsActivity.getId()); |
|
|
|
fundFlow.setUsedAmount(totalReleaseAmt); |
|
|
@ -340,11 +394,12 @@ public class SyncVerificationMain { |
|
|
|
fundFlow.setSupplierCode(tbsActivity.getSupplierCode()); |
|
|
|
fundFlow.setSupplierName(tbsActivity.getSupplierName()); |
|
|
|
|
|
|
|
jslDbContext.table(vtb_fund_flow).setEntity(fundFlow).insert(); |
|
|
|
batchVtbFlowList.add(fundFlow); |
|
|
|
|
|
|
|
// jslDbContext.table(vtb_fund_flow).setEntity(fundFlow).insert();
|
|
|
|
|
|
|
|
|
|
|
|
String sql_budget_by_ids = "select * from tbs_budget where id = "+ currCostItem.getBudgetId(); |
|
|
|
String sql_budget_by_ids = "select * from tbs_budget where id = " + currCostItem.getBudgetId(); |
|
|
|
JslTbsBudget currentBudget = jslDbContext.sql(sql_budget_by_ids).getItem(JslTbsBudget.class); |
|
|
|
|
|
|
|
JslUser jslUser = new JslUser(); |
|
|
@ -352,14 +407,16 @@ public class SyncVerificationMain { |
|
|
|
jslUser.setCode("0"); |
|
|
|
jslUser.setName("系统导入"); |
|
|
|
|
|
|
|
JslTbsBudgetLog budgetLog = this.buildTbsBudgetLog(4,jslUser, costApply,currCostItem,currentBudget,totalReleaseAmt, tbsActivity); |
|
|
|
JslTbsBudgetLog budgetLog = this.buildTbsBudgetLog(4, jslUser, costApply, currCostItem, currentBudget, totalReleaseAmt, tbsActivity); |
|
|
|
budgetLog.setTenantId("001"); |
|
|
|
jslDbContext.table(tbs_budget_log).setEntity(budgetLog).insert(); |
|
|
|
// jslDbContext.table(tbs_budget_log).setEntity(budgetLog).insert();
|
|
|
|
|
|
|
|
batchBudgetLogList.add(budgetLog); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 费用申请相关 |
|
|
|
* |
|
|
|
* @param optType |
|
|
|
* @param sysUser |
|
|
|
* @param costApply |
|
|
@ -370,9 +427,9 @@ public class SyncVerificationMain { |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public JslTbsBudgetLog buildTbsBudgetLog(Integer optType, JslUser sysUser, JslTbsCostApply costApply, |
|
|
|
JslTbsBudgetCostItem item, JslTbsBudget budget, BigDecimal amount, JslTbsActivity activity) { |
|
|
|
JslTbsBudgetCostItem item, JslTbsBudget budget, BigDecimal amount, JslTbsActivity activity) { |
|
|
|
BigDecimal amountAmt = amount; |
|
|
|
if(amountAmt.compareTo(BigDecimal.ZERO)<=0){ |
|
|
|
if (amountAmt.compareTo(BigDecimal.ZERO) <= 0) { |
|
|
|
amountAmt = amountAmt.negate(); |
|
|
|
} |
|
|
|
JslTbsBudgetLog budgetLog = new JslTbsBudgetLog(); |
|
|
@ -415,12 +472,12 @@ public class SyncVerificationMain { |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void saveVerification(Integer idx , DbContext jslDbContext, JslTbsBudgetCostItem currCostItem,JslTbsActivity tbsActivity, XltCheckCostItem checkCostItem) throws SQLException { |
|
|
|
private void saveVerification(Integer idx, DbContext jslDbContext, JslTbsBudgetCostItem currCostItem, JslTbsActivity tbsActivity, XltCheckCostItem checkCostItem) throws SQLException { |
|
|
|
//查询活动科目
|
|
|
|
String sql_activity_subject = "select * from tbs_activity_subject where activity_id = ?"; |
|
|
|
JslTbsActivitySubject activitySubject = jslDbContext.sql(sql_activity_subject,tbsActivity.getId()).getItem(JslTbsActivitySubject.class); |
|
|
|
JslTbsActivitySubject activitySubject = jslDbContext.sql(sql_activity_subject, tbsActivity.getId()).getItem(JslTbsActivitySubject.class); |
|
|
|
//核销金额
|
|
|
|
BigDecimal checkCostAmt = checkCostItem.getCheckPassAmt(); |
|
|
|
BigDecimal checkCostAmt = checkCostItem.getCheckPassAmt(); |
|
|
|
//申请核销金额
|
|
|
|
BigDecimal checkApplyCostAmt = checkCostItem.getApplyAmt(); |
|
|
|
|
|
|
@ -440,14 +497,19 @@ public class SyncVerificationMain { |
|
|
|
verification.setUserId("0"); |
|
|
|
verification.setUserCode("0"); |
|
|
|
verification.setUserName("数据导入"); |
|
|
|
vtbId++; |
|
|
|
|
|
|
|
verification.setId(vtbId); |
|
|
|
|
|
|
|
Long varifId = jslDbContext.table(vtb_verification).setEntity(verification).insert(); |
|
|
|
Long varifId = vtbId; |
|
|
|
// jslDbContext.table(vtb_verification).setEntity(verification).insert();
|
|
|
|
batchVtbVerificationList.add(verification); |
|
|
|
|
|
|
|
//流水记录
|
|
|
|
JslVtbFundFlow fundFlow = new JslVtbFundFlow(); |
|
|
|
fundFlow.setFundType("verification"); |
|
|
|
fundFlow.setVerificationId(varifId); |
|
|
|
fundFlow.setCenterGoodsCode(tbsActivity.getActivityCode()+"_00"); |
|
|
|
fundFlow.setCenterGoodsCode(tbsActivity.getActivityCode() + "_00"); |
|
|
|
fundFlow.setCostApplyId(tbsActivity.getCostApplyId()); |
|
|
|
fundFlow.setActivityId(tbsActivity.getId()); |
|
|
|
fundFlow.setUsedAmount(checkCostAmt); |
|
|
@ -476,7 +538,9 @@ public class SyncVerificationMain { |
|
|
|
fundFlow.setSupplierId(tbsActivity.getSupplierId()); |
|
|
|
fundFlow.setSupplierCode(tbsActivity.getSupplierCode()); |
|
|
|
fundFlow.setSupplierName(tbsActivity.getSupplierName()); |
|
|
|
jslDbContext.table(vtb_fund_flow).setEntity(fundFlow).insert(); |
|
|
|
// jslDbContext.table(vtb_fund_flow).setEntity(fundFlow).insert();
|
|
|
|
batchVtbFlowList.add(fundFlow); |
|
|
|
|
|
|
|
|
|
|
|
VtbVerificationSubject verificationSubject = new VtbVerificationSubject(); |
|
|
|
verificationSubject.setVerificationId(varifId); |
|
|
@ -495,8 +559,13 @@ public class SyncVerificationMain { |
|
|
|
verificationSubject.setCountPerson(0); |
|
|
|
verificationSubject.setCountSession(0); |
|
|
|
verificationSubject.setTenantId("001"); |
|
|
|
vtbSubId++; |
|
|
|
verificationSubject.setId(vtbSubId); |
|
|
|
batchVtbVerificationSubjectList.add(verificationSubject); |
|
|
|
// 104565
|
|
|
|
|
|
|
|
Long varifSubjectId = jslDbContext.table(vtb_verification_subject).setEntity(verificationSubject).insert(); |
|
|
|
Long varifSubjectId = vtbSubId; |
|
|
|
// jslDbContext.table(vtb_verification_subject).setEntity(verificationSubject).insert();
|
|
|
|
|
|
|
|
PayPayment payPayment = new PayPayment(); |
|
|
|
payPayment.setPayCode(checkCostItem.getMainNumber()); |
|
|
@ -513,7 +582,10 @@ public class SyncVerificationMain { |
|
|
|
payPayment.setBillNumber(""); |
|
|
|
payPayment.setPayTime(checkCostItem.getExedate()); |
|
|
|
payPayment.setTenantId("001"); |
|
|
|
Long payId = jslDbContext.table(pay_payment).setEntity(payPayment).insert(); |
|
|
|
payMaxId++; |
|
|
|
Long payId = payMaxId; |
|
|
|
// jslDbContext.table(pay_payment).setEntity(payPayment).insert();
|
|
|
|
payPaymentList.add(payPayment); |
|
|
|
|
|
|
|
PayPaymentItem payPaymentItem = new PayPaymentItem(); |
|
|
|
payPaymentItem.setPayType("pay"); |
|
|
@ -531,9 +603,207 @@ public class SyncVerificationMain { |
|
|
|
payPaymentItem.setActivityCode(tbsActivity.getActivityCode()); |
|
|
|
payPaymentItem.setVerificationId(varifId); |
|
|
|
payPaymentItem.setVerificationSubjectId(varifSubjectId); |
|
|
|
jslDbContext.table(pay_payment_item).setEntity(payPaymentItem).insert(); |
|
|
|
// jslDbContext.table(pay_payment_item).setEntity(payPaymentItem).insert();
|
|
|
|
payPaymentItemList.add(payPaymentItem); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void insertBatchVtbVerification(List<VtbVerification> list) throws Exception { |
|
|
|
DbContext jslDbContext = TbsMapper.getJslDbContext(); |
|
|
|
jslDbContext.table(vtb_verification).insertList(list, (d, m) -> { |
|
|
|
m.set("id", d.getId()); |
|
|
|
m.set("verification_code", d.getVerificationCode()); |
|
|
|
m.set("cost_apply_id", d.getCostApplyId()); |
|
|
|
m.set("activity_id", d.getActivityId()); |
|
|
|
m.set("policy_item_id", d.getPolicyItemId()); |
|
|
|
m.set("policy_item_code", d.getPolicyItemCode()); |
|
|
|
m.set("verification_state", d.getVerificationState()); |
|
|
|
m.set("finished_time", d.getFinishedTime()); |
|
|
|
m.set("payment_state", d.getPaymentState()); |
|
|
|
m.set("amount", d.getAmount()); |
|
|
|
m.set("amount_record", d.getAmountRecord()); |
|
|
|
m.set("sy_form_id", d.getSyFormId()); |
|
|
|
m.set("sy_flow_id", d.getSyFlowId()); |
|
|
|
m.set("supplier_id", d.getSupplierId()); |
|
|
|
m.set("supplier_code", d.getSupplierCode()); |
|
|
|
m.set("supplier_name", d.getSupplierName()); |
|
|
|
m.set("remark", d.getRemark()); |
|
|
|
m.set("create_time", d.getCreateTime()); |
|
|
|
m.set("tenant_id", d.getTenantId()); |
|
|
|
m.set("user_id", d.getUserId()); |
|
|
|
m.set("user_code", d.getUserCode()); |
|
|
|
m.set("user_name", d.getUserName()); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
private void insertBatchVtbVerificationSubject(List<VtbVerificationSubject> list) throws Exception { |
|
|
|
DbContext jslDbContext = TbsMapper.getJslDbContext(); |
|
|
|
jslDbContext.table(vtb_verification_subject).insertList(list, (d, m) -> { |
|
|
|
m.set("id", d.getId()); |
|
|
|
m.set("verification_sub_code", d.getVerificationSubCode()); |
|
|
|
m.set("verification_id", d.getVerificationId()); |
|
|
|
m.set("cost_apply_id", d.getCostApplyId()); |
|
|
|
m.set("activity_id", d.getActivityId()); |
|
|
|
m.set("policy_item_id", d.getPolicyItemId()); |
|
|
|
m.set("policy_item_code", d.getPolicyItemCode()); |
|
|
|
m.set("subject_id", d.getSubjectId()); |
|
|
|
m.set("subject_code", d.getSubjectCode()); |
|
|
|
m.set("subject_name", d.getSubjectName()); |
|
|
|
m.set("supplier_id", d.getSupplierId()); |
|
|
|
m.set("supplier_code", d.getSupplierCode()); |
|
|
|
m.set("supplier_name", d.getSupplierName()); |
|
|
|
m.set("used_amount", d.getUsedAmount()); |
|
|
|
m.set("used_amount_record", d.getUsedAmountRecord()); |
|
|
|
m.set("pay_amount", d.getPayAmount()); |
|
|
|
// m.set("pay_finished_flag", d.getPayFinishedFlag());
|
|
|
|
m.set("count_session", d.getCountSession()); |
|
|
|
m.set("count_person", d.getCountPerson()); |
|
|
|
m.set("remark", d.getRemark()); |
|
|
|
m.set("tenant_id", d.getTenantId()); |
|
|
|
// m.set("effective_flag", d.getEffectiveFlag());
|
|
|
|
m.set("form_id", d.getFormId()); |
|
|
|
m.set("form_title", d.getFormTitle()); |
|
|
|
m.set("form_version", d.getFormVersion()); |
|
|
|
m.set("form_context", d.getFormContext()); |
|
|
|
m.set("form_context_value", d.getFormContextValue()); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
private void insertBatchVtbFlow(List<JslVtbFundFlow> list) throws Exception { |
|
|
|
DbContext jslDbContext = TbsMapper.getJslDbContext(); |
|
|
|
jslDbContext.table(vtb_fund_flow).insertList(list, (d, m) -> { |
|
|
|
m.set("id", d.getId()); |
|
|
|
m.set("fund_type", d.getFundType()); |
|
|
|
m.set("verification_id", d.getVerificationId()); |
|
|
|
m.set("center_goods_code", d.getCenterGoodsCode()); |
|
|
|
m.set("cost_apply_id", d.getCostApplyId()); |
|
|
|
m.set("activity_id", d.getActivityId()); |
|
|
|
m.set("subject_id", d.getSubjectId()); |
|
|
|
m.set("subject_code", d.getSubjectCode()); |
|
|
|
m.set("subject_name", d.getSubjectName()); |
|
|
|
m.set("center_type", d.getCenterType()); |
|
|
|
m.set("center_id", d.getCenterId()); |
|
|
|
m.set("center_code", d.getCenterCode()); |
|
|
|
m.set("center_name", d.getCenterName()); |
|
|
|
m.set("used_amount", d.getUsedAmount()); |
|
|
|
m.set("target_type", d.getTargetType()); |
|
|
|
m.set("target_id", d.getTargetId()); |
|
|
|
m.set("target_code", d.getTargetCode()); |
|
|
|
m.set("target_name", d.getTargetName()); |
|
|
|
m.set("target_level_path_ids", d.getTargetLevelPathIds()); |
|
|
|
m.set("target_level_path_names", d.getTargetLevelPathNames()); |
|
|
|
m.set("remark", d.getRemark()); |
|
|
|
m.set("tenant_id", d.getTenantId()); |
|
|
|
m.set("center_good_item_id", d.getCenterGoodItemId()); |
|
|
|
m.set("supplier_id", d.getSupplierId()); |
|
|
|
m.set("supplier_code", d.getSupplierCode()); |
|
|
|
m.set("supplier_name", d.getSupplierName()); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
private void insertBatchBudgetLog(List<JslTbsBudgetLog> list) throws Exception { |
|
|
|
DbContext jslDbContext = TbsMapper.getJslDbContext(); |
|
|
|
jslDbContext.table(tbs_budget_log).insertList(list, (d, m) -> { |
|
|
|
m.set("id", d.getId()); |
|
|
|
m.set("budget_id", d.getBudgetId()); |
|
|
|
m.set("budget_code", d.getBudgetCode()); |
|
|
|
m.set("opt_type", d.getOptType()); |
|
|
|
m.set("opt_user_id", d.getOptUserId()); |
|
|
|
m.set("opt_user_name", d.getOptUserName()); |
|
|
|
m.set("opt_user_code", d.getOptUserCode()); |
|
|
|
m.set("amount", d.getAmount()); |
|
|
|
m.set("schedule_id", d.getScheduleId()); |
|
|
|
m.set("schedule_item_id", d.getScheduleItemId()); |
|
|
|
m.set("schedule_item_budget_id", d.getScheduleItemBudgetId()); |
|
|
|
m.set("schedule_org_id", d.getScheduleOrgId()); |
|
|
|
m.set("schedule_item_org_id", d.getScheduleItemOrgId()); |
|
|
|
m.set("schedule_item_budget_org_id", d.getScheduleItemBudgetOrgId()); |
|
|
|
m.set("item_name", d.getItemName()); |
|
|
|
m.set("start_date", d.getStartDate()); |
|
|
|
m.set("end_date", d.getEndDate()); |
|
|
|
m.set("subject_id", d.getSubjectId()); |
|
|
|
m.set("subject_code", d.getSubjectCode()); |
|
|
|
m.set("subject_name", d.getSubjectName()); |
|
|
|
m.set("center_type", d.getCenterType()); |
|
|
|
m.set("center_id", d.getCenterId()); |
|
|
|
m.set("center_code", d.getCenterCode()); |
|
|
|
m.set("center_name", d.getCenterName()); |
|
|
|
m.set("center_org_id", d.getCenterOrgId()); |
|
|
|
m.set("center_org_code", d.getCenterOrgCode()); |
|
|
|
m.set("center_org_name", d.getCenterOrgName()); |
|
|
|
m.set("supplier_id", d.getSupplierId()); |
|
|
|
m.set("supplier_code", d.getSupplierCode()); |
|
|
|
m.set("supplier_name", d.getSupplierName()); |
|
|
|
m.set("activity_id", d.getActivityId()); |
|
|
|
m.set("activity_code", d.getActivityCode()); |
|
|
|
m.set("activity_theme", d.getActivityTheme()); |
|
|
|
m.set("policy_id", d.getPolicyId()); |
|
|
|
m.set("policy_code", d.getPolicyCode()); |
|
|
|
m.set("policy_title", d.getPolicyTitle()); |
|
|
|
m.set("policy_item_id", d.getPolicyItemId()); |
|
|
|
m.set("policy_item_code", d.getPolicyItemCode()); |
|
|
|
m.set("cost_apply_id", d.getCostApplyId()); |
|
|
|
m.set("cost_apply_code", d.getCostApplyCode()); |
|
|
|
m.set("cost_apply_theme", d.getCostApplyTheme()); |
|
|
|
m.set("remark", d.getRemark()); |
|
|
|
// m.set("rollback_flag", d.getRollbackFlag());
|
|
|
|
// m.set("migrate_flag", d.getMigrateFlag());
|
|
|
|
m.set("migrate_time", d.getMigrateTime()); |
|
|
|
m.set("tenant_id", d.getTenantId()); |
|
|
|
m.set("target_type", d.getTargetType()); |
|
|
|
m.set("target_id", d.getTargetId()); |
|
|
|
m.set("target_code", d.getTargetCode()); |
|
|
|
m.set("target_name", d.getTargetName()); |
|
|
|
m.set("target_level_path_ids", d.getTargetLevelPathIds()); |
|
|
|
m.set("target_level_path_names", d.getTargetLevelPathNames()); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
private void insertBatchPayment(List<PayPayment> list) throws Exception { |
|
|
|
DbContext jslDbContext = TbsMapper.getJslDbContext(); |
|
|
|
jslDbContext.table(pay_payment).insertList(list, (d, m) -> { |
|
|
|
m.set("id", d.getId()); |
|
|
|
m.set("pay_type", d.getPayType()); |
|
|
|
m.set("pay_code", d.getPayCode()); |
|
|
|
m.set("supplier_id", d.getSupplierId()); |
|
|
|
m.set("supplier_code", d.getSupplierCode()); |
|
|
|
m.set("supplier_name", d.getSupplierName()); |
|
|
|
m.set("pay_amount", d.getPayAmount()); |
|
|
|
m.set("erp_code", d.getErpCode()); |
|
|
|
m.set("bill_number", d.getBillNumber()); |
|
|
|
m.set("user_id", d.getUserId()); |
|
|
|
m.set("user_code", d.getUserCode()); |
|
|
|
m.set("user_name", d.getUserName()); |
|
|
|
m.set("pay_time", d.getPayTime()); |
|
|
|
m.set("cost_apply_id", d.getCostApplyId()); |
|
|
|
// m.set("cancel_flag", d.getCancelFlag());
|
|
|
|
m.set("cancel_time", d.getCancelTime()); |
|
|
|
m.set("remark", d.getRemark()); |
|
|
|
m.set("tenant_id", d.getTenantId()); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
private void insertBatchPaymentItem(List<PayPaymentItem> list) throws Exception { |
|
|
|
DbContext jslDbContext = TbsMapper.getJslDbContext(); |
|
|
|
jslDbContext.table(pay_payment_item).insertList(list, (d, m) -> { |
|
|
|
m.set("id", d.getId()); |
|
|
|
m.set("pay_type", d.getPayType()); |
|
|
|
m.set("payment_id", d.getPaymentId()); |
|
|
|
m.set("supplier_id", d.getSupplierId()); |
|
|
|
m.set("item_pay_amount", d.getItemPayAmount()); |
|
|
|
m.set("verification_id", d.getVerificationId()); |
|
|
|
m.set("verification_subject_id", d.getVerificationSubjectId()); |
|
|
|
m.set("cost_apply_id", d.getCostApplyId()); |
|
|
|
m.set("activity_id", d.getActivityId()); |
|
|
|
m.set("activity_code", d.getActivityCode()); |
|
|
|
m.set("policy_item_id", d.getPolicyItemId()); |
|
|
|
m.set("policy_item_code", d.getPolicyItemCode()); |
|
|
|
m.set("subject_id", d.getSubjectId()); |
|
|
|
m.set("subject_code", d.getSubjectCode()); |
|
|
|
m.set("subject_name", d.getSubjectName()); |
|
|
|
m.set("remark", d.getRemark()); |
|
|
|
m.set("tenant_id", d.getTenantId()); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|