Commit 68854abf by 陶然

优化

parent 6180ebee
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
using Kivii; using Kivii;
using Kivii.Finances.Entities; using Kivii.Finances.Entities;
using Kivii.Linq; using Kivii.Linq;
using Njzj.Finances.Bocoms.Extensions;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data; using System.Data;
...@@ -68,16 +69,12 @@ namespace Njzj.Bocoms.Openapis ...@@ -68,16 +69,12 @@ namespace Njzj.Bocoms.Openapis
{ {
if (!preSettlements.Exists(o => o.Kvid == kvid)) notMatchBizKvids.Add(kvid); if (!preSettlements.Exists(o => o.Kvid == kvid)) notMatchBizKvids.Add(kvid);
} }
if (!notMatchBizKvids.IsNullOrEmpty())
{
var updateWriteOffs = connE.From<WriteOffResultNotify>();
updateWriteOffs = updateWriteOffs.Update(o => o.Status);
updateWriteOffs = updateWriteOffs.Where(o => Sql.In(o.BizKvid, notMatchBizKvids));
connE.UpdateOnly(new WriteOffResultNotify { Status = int.MaxValue }, updateWriteOffs);
}
writeOffs.RemoveAll(o => Sql.In(o.BizKvid, notMatchBizKvids)); writeOffs.RemoveAll(o => Sql.In(o.BizKvid, notMatchBizKvids));
var matchWriteOffs = new List<WriteOffResultNotify>(); var matchWriteOffs = new List<WriteOffResultNotify>();
var breakWriteOffs = new List<WriteOffResultNotify>();//错误消息队列 要移除的
var payments = new List<Payment>(); var payments = new List<Payment>();
List<string> serialNumbers = new List<string>();
foreach (var item in writeOffs) foreach (var item in writeOffs)
{ {
if (item.biz_content.bill_wo_state != "03") if (item.biz_content.bill_wo_state != "03")
...@@ -88,6 +85,12 @@ namespace Njzj.Bocoms.Openapis ...@@ -88,6 +85,12 @@ namespace Njzj.Bocoms.Openapis
bool matched = false; bool matched = false;
foreach (var pay in item.biz_content.pay_detail_list) foreach (var pay in item.biz_content.pay_detail_list)
{ {
if (pay.jnl_write_off_amt.IsNullOrEmpty() || pay.jnl_write_off_amt.ToLower() == "null")
{
if (!notMatchBizKvids.Exists(o => o == item.BizKvid)) notMatchBizKvids.Add(item.BizKvid);
matched = false;
break;
}
var split = pay.vch_no.Split('-'); var split = pay.vch_no.Split('-');
if (split.Length != 3) if (split.Length != 3)
{ {
...@@ -102,6 +105,7 @@ namespace Njzj.Bocoms.Openapis ...@@ -102,6 +105,7 @@ namespace Njzj.Bocoms.Openapis
TaskContext.Message = $"Error:10003,[{item.BillId}]vch_no截取的流水号是空!"; TaskContext.Message = $"Error:10003,[{item.BillId}]vch_no截取的流水号是空!";
continue; continue;
} }
serialNumbers.Add(serialNumber);
var payment = connF.Single<Payment>(o => o.SerialNumber == serialNumber && o.OffsetKvid == Guid.Empty && o.Type == PaymentType.Bank); var payment = connF.Single<Payment>(o => o.SerialNumber == serialNumber && o.OffsetKvid == Guid.Empty && o.Type == PaymentType.Bank);
if (payment == null) if (payment == null)
{ {
...@@ -111,13 +115,25 @@ namespace Njzj.Bocoms.Openapis ...@@ -111,13 +115,25 @@ namespace Njzj.Bocoms.Openapis
payments.Add(payment); payments.Add(payment);
matched = true; matched = true;
} }
if (matched) matchWriteOffs.Add(item); if (matched)
{
matchWriteOffs.Add(item);
}
}
if (!notMatchBizKvids.IsNullOrEmpty())
{
var updateWriteOffs = connE.From<WriteOffResultNotify>();
updateWriteOffs = updateWriteOffs.Update(o => o.Status);
updateWriteOffs = updateWriteOffs.Where(o => Sql.In(o.BizKvid, notMatchBizKvids));
connE.UpdateOnly(new WriteOffResultNotify { Status = int.MaxValue }, updateWriteOffs);
} }
if (matchWriteOffs.IsNullOrEmpty()) if (matchWriteOffs.IsNullOrEmpty())
{ {
TaskContext.Message = $"{writeOffs.Count}条待处理通知,尚未匹配到流水信息!"; TaskContext.Message = $"{writeOffs.Count}条待处理通知,尚未匹配到流水信息!";
return true; return true;
} }
#endregion #endregion
#region 合并数据库连接,并启用事务 #region 合并数据库连接,并启用事务
IDbTransaction tranE = null, tranF = null; IDbTransaction tranE = null, tranF = null;
...@@ -240,6 +256,17 @@ namespace Njzj.Bocoms.Openapis ...@@ -240,6 +256,17 @@ namespace Njzj.Bocoms.Openapis
tranF?.Rollback(); tranF?.Rollback();
throw ex; throw ex;
} }
finally
{
if (!serialNumbers.IsNullOrEmpty())
{
var th = KiviiContext.NewThread(() =>
{
serialNumbers.AutoBizMark(50, "智慧记账自动标记");
});
th.Start();
}
}
return true; return true;
} }
......
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