diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/BBACSeSyncAppService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/BBACSeSyncAppService.cs
index 052e73c0..0b8e48ec 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/BBACSeSyncAppService.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/BBACSeSyncAppService.cs
@@ -51,47 +51,44 @@ public class BBACSeSyncAppService : ApplicationService, IInvocable
[HttpPost]
public async Task Invoke()
{
- await SyncJitRecord();
- //await SyncJisRecord();
+ await SyncJitRecordAsync();
+ await SyncJisRecordAsync();
}
///
/// 同步JitRecord
///
- ///
- private async Task SyncJitRecord()
+ private async Task SyncJitRecordAsync()
{
//同步表名称
- var syncTableName = "TM_BJBMPT_JIT_RECORD";
+ var syncTableName = "JisBBACSeSync_Jit";
//BBAC类型集合
var EnumDeliverSubBillTypes = new List
{
EnumDeliverSubBillType.保险杠BBAC,
EnumDeliverSubBillType.买单件保险杠BBAC,
EnumDeliverSubBillType.买单件小件BBAC,
- EnumDeliverSubBillType.小件BBAC,
- EnumDeliverSubBillType.JIT直供件BBAC
+ EnumDeliverSubBillType.小件BBAC
};
Expression> predicate = (t) => t.DeliverBillType == EnumDeliverBjBmpBillType.JIS件 && EnumDeliverSubBillTypes.Contains(t.DeliverSubBillType);
var syncPositionFlag = await _syncPositionFlagRepository.FindAsync(t => t.TableName == syncTableName);
if (syncPositionFlag != null)
{
- Expression> expression = (t) => t.UID > int.Parse(syncPositionFlag.Position);
- var body = expression.Body;
- predicate = Expression.Lambda>(Expression.And(predicate.Body, body), predicate.Parameters);
+ predicate = (t) => t.UID > int.Parse(syncPositionFlag.Position) && t.DeliverBillType == EnumDeliverBjBmpBillType.JIS件 && EnumDeliverSubBillTypes.Contains(t.DeliverSubBillType);
}
- var jitRecords = _wmsBJBMPTContext.TM_BJBMPT_JIT_RECORD.Where(predicate).OrderBy(b => b.UID).ToList();
+ //WMS发运记录
+ var wmsSeRecords = _wmsBJBMPTContext.TM_BJBMPT_JIT_RECORD.Where(predicate).OrderBy(b => b.UID).ToList();
- var bbacSeDetails = ObjectMapper.Map, List>(jitRecords);
+ var bbacSeDetails = ObjectMapper.Map, List>(wmsSeRecords);
if (bbacSeDetails.Any())
{
await _bbacSeDetailRepository.InsertManyAsync(bbacSeDetails);
if (syncPositionFlag != null)
{
- syncPositionFlag.Position = jitRecords.Last().UID.ToString();
+ syncPositionFlag.Position = wmsSeRecords.Last().UID.ToString();
await _syncPositionFlagRepository.UpdateAsync(syncPositionFlag);
}
else
@@ -99,34 +96,46 @@ public class BBACSeSyncAppService : ApplicationService, IInvocable
syncPositionFlag = new SyncPositionFlag()
{
TableName = syncTableName,
- Position = jitRecords.Last().UID.ToString()
+ Position = wmsSeRecords.Last().UID.ToString()
};
await _syncPositionFlagRepository.InsertAsync(syncPositionFlag);
}
}
}
- private async Task SyncJisRecord()
+ ///
+ /// 同步JisRecord
+ ///
+ private async Task SyncJisRecordAsync()
{
//同步表名称
- var syncTableName = "TM_BJBMPT_JIS_RECORD";
- Expression> predicate = (t) => true;
+ var syncTableName = "JisBBACSeSync_Jis";
+ //BBAC类型集合
+ var EnumDeliverSubBillTypes = new List
+ {
+ EnumDeliverSubBillType.保险杠BBAC,
+ EnumDeliverSubBillType.买单件保险杠BBAC,
+ EnumDeliverSubBillType.买单件小件BBAC,
+ EnumDeliverSubBillType.小件BBAC
+ };
+ Expression> predicate = (t) => t.DeliverBillType == EnumDeliverBjBmpBillType.JIS件 && EnumDeliverSubBillTypes.Contains(t.DeliverSubBillType);
var syncPositionFlag = await _syncPositionFlagRepository.FindAsync(t => t.TableName == syncTableName);
if (syncPositionFlag != null)
{
- predicate = (t) => t.UID > int.Parse(syncPositionFlag.Position);
+ predicate = (t) => t.UID > int.Parse(syncPositionFlag.Position) && t.DeliverBillType == EnumDeliverBjBmpBillType.JIS件 && EnumDeliverSubBillTypes.Contains(t.DeliverSubBillType);
}
- var jisRecords = _wmsBJBMPTContext.TM_BJBMPT_JIS_RECORD.Where(predicate).OrderBy(b => b.UID).ToList();
+ //WMS发运数据
+ var wmsRecords = _wmsBJBMPTContext.TM_BJBMPT_JIS_RECORD.Where(predicate).OrderBy(b => b.UID).ToList();
- var bbacSeDetails = ObjectMapper.Map, List>(jisRecords);
+ var bbacSeDetails = ObjectMapper.Map, List>(wmsRecords);
if (bbacSeDetails.Any())
{
await _bbacSeDetailRepository.InsertManyAsync(bbacSeDetails);
if (syncPositionFlag != null)
{
- syncPositionFlag.Position = jisRecords.Last().UID.ToString();
+ syncPositionFlag.Position = wmsRecords.Last().UID.ToString();
await _syncPositionFlagRepository.UpdateAsync(syncPositionFlag);
}
else
@@ -134,7 +143,7 @@ public class BBACSeSyncAppService : ApplicationService, IInvocable
syncPositionFlag = new SyncPositionFlag()
{
TableName = syncTableName,
- Position = jisRecords.Last().UID.ToString()
+ Position = wmsRecords.Last().UID.ToString()
};
await _syncPositionFlagRepository.InsertAsync(syncPositionFlag);
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/HBPOSeSyncAppService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/HBPOSeSyncAppService.cs
index 9d0192e0..1fc69a16 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/HBPOSeSyncAppService.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/HBPOSeSyncAppService.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Linq.Dynamic.Core;
using System.Linq.Expressions;
using System.Threading.Tasks;
using Coravel.Invocable;
@@ -48,117 +49,46 @@ public class HBPOSeSyncAppService : ApplicationService, IInvocable //IJobService
_hbpoSeDetailRepository = hbpoSeDetailRepository;
}
- //private readonly IRepository _TMBJBMPTJITRECORDRepository;
-
- //public HBPOSeSyncAppService(IRepository TMBJBMPTJITRECORDRepository)
- //{
- // _TMBJBMPTJITRECORDRepository = TMBJBMPTJITRECORDRepository;
- //}
-
[HttpPost]
public async Task Invoke()
{
- await SyncJitRecord();
- //await SyncJisRecord();
- //if (!dbContext.GetService().Exists() && dbContext.Database.EnsureCreated())
- //{
- // this._balanceRepository.AsNoTracking().ForEachAsync(o =>
- // {
- // dbContext.Set().Add(o);
- // });
- // dbContext.SaveChanges();
- // var snapshot = new VmiSnapshot { Name = date, Path = connectionString };
- // this._snapshotRepository.InsertAsync(snapshot).Wait();
- //}
-
-
- //using (var context = new HouseDbContext(optionsBuilder.Options))
- //{
- // var one = context.Notices.FirstOrDefault(n => n.Id == notice.Id);
- // // 当然你也可以直接初始化其他的Service
- // var nService = new NoticeService(context, null);
- // var one = nService.FindOne(notice.Id);
- //}
-
-
-
- //var TM_BJBMPT_JIT_RECORDs = _wmsBJBMPTContext.TM_BJBMPT_JIT_RECORD
- // .Where(b => b.UID > 3)
- // .OrderBy(b => b.BillTime)
- // .ToList();
- //foreach (var TM_BJBMPT_JIT_RECORD in TM_BJBMPT_JIT_RECORDs)
- //{
- // Console.WriteLine($"{TM_BJBMPT_JIT_RECORD.UID}");
- //}
-
- //using (var db = new WMSBJBMPTDbContext())
- //{
- // var blogs = db.TM_BJBMPT_JIT_RECORD
- // .Where(b => b.UID > 3)
- // .OrderBy(b => b.BillTime)
- // .ToList();
-
- // foreach (var blog in blogs)
- // {
- // Console.WriteLine($"{blog.UID}");
- // }
- //}
- Console.WriteLine($"{GetType().FullName}执行了");
+ await SyncJitRecordAsync();
+ await SyncJisRecordAsync();
}
///
/// 同步JitRecord
///
- ///
- private async Task SyncJitRecord()
+ private async Task SyncJitRecordAsync()
{
//同步表名称
- var syncTableName = "TM_BJBMPT_JIT_RECORD";
+ var syncTableName = "JisHBPOSeSync_Jit";
//HBPO类型集合
var EnumDeliverSubBillTypes = new List
{
EnumDeliverSubBillType.保险杠HBPO,
EnumDeliverSubBillType.买单件保险杠HBPO,
EnumDeliverSubBillType.买单件小件HBPO,
- EnumDeliverSubBillType.小件HBPO,
- EnumDeliverSubBillType.JIT直供件HBPO
+ EnumDeliverSubBillType.小件HBPO
};
-
Expression> predicate = (t) => t.DeliverBillType == EnumDeliverBjBmpBillType.JIS件 && EnumDeliverSubBillTypes.Contains(t.DeliverSubBillType);
var syncPositionFlag = await _syncPositionFlagRepository.FindAsync(t => t.TableName == syncTableName);
if (syncPositionFlag != null)
{
- //var inv = Expression.Invoke(t=>t.UID > int.Parse(syncPositionFlag.Position), predicate.Parameters);
- //return Expression.Lambda>(Expression.And(exp.Body, inv), exp.Parameters);
-
- //predicate.And(t => t.UID > int.Parse(syncPositionFlag.Position));
-
- Expression> expression = (t) => t.UID > int.Parse(syncPositionFlag.Position);
- var body = expression.Body;
-
- //var inv = Expression.Invoke(condition, exp.Parameters);
- predicate = Expression.Lambda>(Expression.And(predicate.Body, body), predicate.Parameters);
-
- //Expression.Lambda>(Expression.Equal(member, constant), parameter);
- //var expression = predicate.And(t => t.UID > int.Parse(syncPositionFlag.Position));
-
+ predicate = (t) => t.UID > int.Parse(syncPositionFlag.Position) && t.DeliverBillType == EnumDeliverBjBmpBillType.JIS件 && EnumDeliverSubBillTypes.Contains(t.DeliverSubBillType);
}
- Console.WriteLine($"表达式:{predicate}");
-
- var jitRecords = _wmsBJBMPTContext.TM_BJBMPT_JIT_RECORD
- .Where(predicate)
- .OrderBy(b => b.UID)
- .ToList();
+ //WMS发运数据
+ var wmsRecords = _wmsBJBMPTContext.TM_BJBMPT_JIT_RECORD.Where(predicate).OrderBy(b => b.UID).ToList();
- var hbpoSeDetails = ObjectMapper.Map, List>(jitRecords);
+ var hbpoSeDetails = ObjectMapper.Map, List>(wmsRecords);
if (hbpoSeDetails.Any())
{
await _hbpoSeDetailRepository.InsertManyAsync(hbpoSeDetails);
if (syncPositionFlag != null)
{
- syncPositionFlag.Position = jitRecords.Last().UID.ToString();
+ syncPositionFlag.Position = wmsRecords.Last().UID.ToString();
await _syncPositionFlagRepository.UpdateAsync(syncPositionFlag);
}
else
@@ -166,37 +96,46 @@ public class HBPOSeSyncAppService : ApplicationService, IInvocable //IJobService
syncPositionFlag = new SyncPositionFlag()
{
TableName = syncTableName,
- Position = jitRecords.Last().UID.ToString()
+ Position = wmsRecords.Last().UID.ToString()
};
await _syncPositionFlagRepository.InsertAsync(syncPositionFlag);
}
}
}
- private async Task SyncJisRecord()
+ ///
+ /// 同步JisRecord
+ ///
+ private async Task SyncJisRecordAsync()
{
//同步表名称
- var syncTableName = "TM_BJBMPT_JIS_RECORD";
- Expression> predicate = (t) => true;
+ var syncTableName = "JisHBPOSeSync_Jis";
+ //BBAC类型集合
+ var EnumDeliverSubBillTypes = new List
+ {
+ EnumDeliverSubBillType.保险杠BBAC,
+ EnumDeliverSubBillType.买单件保险杠BBAC,
+ EnumDeliverSubBillType.买单件小件BBAC,
+ EnumDeliverSubBillType.小件BBAC
+ };
+ Expression> predicate = (t) => t.DeliverBillType == EnumDeliverBjBmpBillType.JIS件 && EnumDeliverSubBillTypes.Contains(t.DeliverSubBillType);
var syncPositionFlag = await _syncPositionFlagRepository.FindAsync(t => t.TableName == syncTableName);
if (syncPositionFlag != null)
{
- predicate = (t) => t.UID > int.Parse(syncPositionFlag.Position);
+ predicate = (t) => t.UID > int.Parse(syncPositionFlag.Position) && t.DeliverBillType == EnumDeliverBjBmpBillType.JIS件 && EnumDeliverSubBillTypes.Contains(t.DeliverSubBillType);
}
- var jisRecords = _wmsBJBMPTContext.TM_BJBMPT_JIS_RECORD
- .Where(predicate)
- .OrderBy(b => b.UID)
- .ToList();
+ //WMS发运数据
+ var wmsRecords = _wmsBJBMPTContext.TM_BJBMPT_JIS_RECORD.Where(predicate).OrderBy(b => b.UID).ToList();
- var hbpoSeDetails = ObjectMapper.Map, List>(jisRecords);
+ var hbpoSeDetails = ObjectMapper.Map, List>(wmsRecords);
if (hbpoSeDetails.Any())
{
await _hbpoSeDetailRepository.InsertManyAsync(hbpoSeDetails);
if (syncPositionFlag != null)
{
- syncPositionFlag.Position = jisRecords.Last().UID.ToString();
+ syncPositionFlag.Position = wmsRecords.Last().UID.ToString();
await _syncPositionFlagRepository.UpdateAsync(syncPositionFlag);
}
else
@@ -204,7 +143,7 @@ public class HBPOSeSyncAppService : ApplicationService, IInvocable //IJobService
syncPositionFlag = new SyncPositionFlag()
{
TableName = syncTableName,
- Position = jisRecords.Last().UID.ToString()
+ Position = wmsRecords.Last().UID.ToString()
};
await _syncPositionFlagRepository.InsertAsync(syncPositionFlag);
}
diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/Prices/PriceListManager.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/Prices/PriceListManager.cs
index 137fa67e..3c02807e 100644
--- a/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/Prices/PriceListManager.cs
+++ b/code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/Prices/PriceListManager.cs
@@ -96,6 +96,13 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
where item1.Price != item2.Price && item1.BeginTime == item2.BeginTime && item1.EndTime == item1.EndTime
select new PriceList(item2.Id, item2.LU, item1.Price, item2.BeginTime, item2.EndTime, item2.ClientCode, item2.Date, item2.ContractNo);
+ //新日期
+ var updateNewDate = from item1 in entities
+ join item2 in pricelist
+ on new { item1.LU, item1.ClientCode } equals new { item2.LU, item2.ClientCode }
+ where item1.BeginTime != item2.BeginTime || item1.EndTime != item2.EndTime
+ select item1;
+ update = update.Concat(updateNewDate);
if (update.Any())
{
await _repository.GetDbContext().BulkUpdateAsync(update.ToList());
@@ -109,17 +116,10 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
from item3 in temp.DefaultIfEmpty()
where item3 == null
select item1;
- //新日期
- var addNewDate = from item1 in entities
- join item2 in pricelist
- on new { item1.LU, item1.ClientCode } equals new { item2.LU, item2.ClientCode }
- where item1.BeginTime != item2.BeginTime || item1.EndTime != item2.EndTime
- select item1;
- var add = addNewLu.Concat(addNewDate);
- if (add.Any())
+ if (addNewLu.Any())
{
- await _repository.GetDbContext().BulkInsertAsync(add.ToList());
+ await _repository.GetDbContext().BulkInsertAsync(addNewLu.ToList());
}
return _errorList;