Browse Source

data

master
wxd 2 weeks ago
parent
commit
ed39e17115
  1. 105
      src/Shentun.Peis.Application/CCTJExportDatas/CCTJLMPAppService.cs

105
src/Shentun.Peis.Application/CCTJExportDatas/CCTJLMPAppService.cs

@ -55,6 +55,7 @@ namespace Shentun.Peis.CCTJExportDatas
private readonly IRepository<CustomerOrg, Guid> _customerOrgRepository; private readonly IRepository<CustomerOrg, Guid> _customerOrgRepository;
private readonly CustomerOrgManager _customerOrgManager; private readonly CustomerOrgManager _customerOrgManager;
private readonly IRepository<UserItemType> _userItemTypeRepository; private readonly IRepository<UserItemType> _userItemTypeRepository;
private readonly IRepository<AsbitemDetail> _asbitemDetailRepository;
public CCTJLMPAppService( public CCTJLMPAppService(
IRepository<Item, Guid> itemRepository, IRepository<Item, Guid> itemRepository,
@ -69,7 +70,8 @@ namespace Shentun.Peis.CCTJExportDatas
IRepository<AsbitemGuide> asbitemGuideRepository, IRepository<AsbitemGuide> asbitemGuideRepository,
IRepository<CustomerOrg, Guid> customerOrgRepository, IRepository<CustomerOrg, Guid> customerOrgRepository,
CustomerOrgManager customerOrgManager, CustomerOrgManager customerOrgManager,
IRepository<UserItemType> userItemTypeRepository)
IRepository<UserItemType> userItemTypeRepository,
IRepository<AsbitemDetail> asbitemDetailRepository)
{ {
_itemRepository = itemRepository; _itemRepository = itemRepository;
_unitOfWorkManager = unitOfWorkManager; _unitOfWorkManager = unitOfWorkManager;
@ -84,6 +86,7 @@ namespace Shentun.Peis.CCTJExportDatas
_customerOrgRepository = customerOrgRepository; _customerOrgRepository = customerOrgRepository;
_customerOrgManager = customerOrgManager; _customerOrgManager = customerOrgManager;
_userItemTypeRepository = userItemTypeRepository; _userItemTypeRepository = userItemTypeRepository;
_asbitemDetailRepository = asbitemDetailRepository;
} }
@ -94,20 +97,32 @@ namespace Shentun.Peis.CCTJExportDatas
/// <param name="ItemIdFrom"></param> /// <param name="ItemIdFrom"></param>
/// <param name="ItemIdTo"></param> /// <param name="ItemIdTo"></param>
/// <returns></returns> /// <returns></returns>
public async Task SyncItem(string ItemIdFrom, string ItemIdTo)
public async Task SyncItem()
{ {
if (string.IsNullOrWhiteSpace(ItemIdFrom) || string.IsNullOrWhiteSpace(ItemIdTo))
var fieldComparisonItemList = await _fieldComparisonRepository.GetListAsync(m => m.TableName == "item");
#region 检测是否有手动增加的项目
var query = (from item in await _itemRepository.GetQueryableAsync()
join fieldComparison in (await _fieldComparisonRepository.GetQueryableAsync()).Where(m => m.TableName == "item") on item.Id.ToString() equals fieldComparison.NewKeyValue into fieldComparisonTemp
from fieldComparisonEmptyHave in fieldComparisonTemp.DefaultIfEmpty()
where fieldComparisonEmptyHave == null
select item.DisplayName).ToList();
if (query.Any())
{ {
_logger.LogInformation($"同步项目数据方法,参数不正确");
throw new UserFriendlyException($"存在手动添加的项目:【{string.Join(",", query)}】");
} }
var oldItemList = await oldDb.Ado.GetDataTableAsync($"select * from item where item_id>'{ItemIdFrom}' and item_id<'{ItemIdTo}' order by display_order ");
#endregion
var oldItemList = await oldDb.Ado.GetDataTableAsync($"select * from item order by display_order ");
if (oldItemList.Rows.Count > 0) if (oldItemList.Rows.Count > 0)
{ {
foreach (DataRow row in oldItemList.Rows) foreach (DataRow row in oldItemList.Rows)
{ {
var isCZ = await _itemRepository.FirstOrDefaultAsync(f => f.DisplayName == row["item_name"].ToString());
var isCZ = fieldComparisonItemList.FirstOrDefault(f => f.OldKeyValue == row["item_id"].ToString());
if (isCZ == null) if (isCZ == null)
{ {
@ -238,12 +253,14 @@ namespace Shentun.Peis.CCTJExportDatas
await _fieldComparisonRepository.InsertAsync(fieldComparison); await _fieldComparisonRepository.InsertAsync(fieldComparison);
await uow.CompleteAsync(); await uow.CompleteAsync();
_logger.LogInformation($"添加项目=>{row["item_name"]}");
} }
} }
else
{
_logger.LogInformation($"项目{row["item_name"]}数据已存在,跳过处理");
}
//else
//{
// _logger.LogInformation($"项目{row["item_name"]}数据已存在,跳过处理");
//}
} }
_logger.LogInformation($"同步项目数据处理完毕,处理数量{oldItemList.Rows.Count}"); _logger.LogInformation($"同步项目数据处理完毕,处理数量{oldItemList.Rows.Count}");
@ -263,19 +280,32 @@ namespace Shentun.Peis.CCTJExportDatas
/// <param name="AsbitemIdFrom"></param> /// <param name="AsbitemIdFrom"></param>
/// <param name="AsbitemIdTo"></param> /// <param name="AsbitemIdTo"></param>
/// <returns></returns> /// <returns></returns>
public async Task SyncAsbitem(string AsbitemIdFrom, string AsbitemIdTo)
public async Task SyncAsbitem()
{ {
if (string.IsNullOrWhiteSpace(AsbitemIdFrom) || string.IsNullOrWhiteSpace(AsbitemIdTo))
var fieldComparisonAsbitemList = await _fieldComparisonRepository.GetListAsync(m => m.TableName == "asbitem");
var fieldComparisonItemList = await _fieldComparisonRepository.GetListAsync(m => m.TableName == "item");
#region 检测是否有手动增加的项目
var query = (from asbitem in await _asbitemRepository.GetQueryableAsync()
join fieldComparison in (await _fieldComparisonRepository.GetQueryableAsync()).Where(m => m.TableName == "asbitem") on asbitem.Id.ToString() equals fieldComparison.NewKeyValue into fieldComparisonTemp
from fieldComparisonEmptyHave in fieldComparisonTemp.DefaultIfEmpty()
where fieldComparisonEmptyHave == null
select asbitem.DisplayName).ToList();
if (query.Any())
{ {
_logger.LogInformation($"同步组合项目数据方法,参数不正确");
throw new UserFriendlyException($"存在手动添加的组合项目:【{string.Join(",", query)}】");
} }
var oldAsbitemList = await oldDb.Ado.GetDataTableAsync($"select * from asbitem where asbitem_id>'{AsbitemIdFrom}' and asbitem_id<'{AsbitemIdTo}' order by display_order ");
#endregion
var oldAsbitemList = await oldDb.Ado.GetDataTableAsync($"select * from asbitem order by display_order ");
if (oldAsbitemList.Rows.Count > 0) if (oldAsbitemList.Rows.Count > 0)
{ {
foreach (DataRow row in oldAsbitemList.Rows) foreach (DataRow row in oldAsbitemList.Rows)
{ {
var isCZ = await _asbitemRepository.FirstOrDefaultAsync(f => f.DisplayName == row["asbitem_name"].ToString());
var isCZ = fieldComparisonAsbitemList.FirstOrDefault(f => f.OldKeyValue == row["asbitem_id"].ToString());
if (isCZ == null) if (isCZ == null)
{ {
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true)) using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
@ -390,6 +420,30 @@ namespace Shentun.Peis.CCTJExportDatas
#endregion #endregion
#region 组合项目明细
var oldAsbitemDetailList = await oldDb.Ado.GetDataTableAsync($"select * from asbitem_detail where asbitem_id={row["asbitem_id"].ToString()}");
if (oldAsbitemDetailList.Rows.Count > 0)
{
foreach (DataRow oldAsbitemDetail in oldAsbitemDetailList.Rows)
{
var oldItem = fieldComparisonItemList.FirstOrDefault(f => f.OldKeyValue == oldAsbitemDetail["item_id"].ToString());
var dataDetail = new AsbitemDetail
{
AsbitemId = asbitemId,
ItemId = Guid.Parse(oldItem.NewKeyValue)
};
await _asbitemDetailRepository.InsertAsync(dataDetail);
}
}
#endregion
var fieldComparison = new FieldComparison var fieldComparison = new FieldComparison
{ {
TableName = "asbitem", TableName = "asbitem",
@ -401,12 +455,14 @@ namespace Shentun.Peis.CCTJExportDatas
await _fieldComparisonRepository.InsertAsync(fieldComparison); await _fieldComparisonRepository.InsertAsync(fieldComparison);
await uow.CompleteAsync(); await uow.CompleteAsync();
_logger.LogInformation($"添加组合项目=>{row["asbitem_name"]}");
} }
} }
else
{
_logger.LogInformation($"组合项目{row["asbitem_name"]}数据已存在,跳过处理");
}
//else
//{
// _logger.LogInformation($"组合项目{row["asbitem_name"]}数据已存在,跳过处理");
//}
} }
@ -445,7 +501,7 @@ namespace Shentun.Peis.CCTJExportDatas
{ {
using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true)) using (var uow = _unitOfWorkManager.Begin(requiresNew: true, isTransactional: true))
{ {
// Guid customerOrgId = GuidGenerator.Create();
// Guid customerOrgId = GuidGenerator.Create();
Guid customerOrgId = StringConvertGuidHelper.GenerateURLUUID(row["org_id"].ToString()); Guid customerOrgId = StringConvertGuidHelper.GenerateURLUUID(row["org_id"].ToString());
if (row["org_id"].ToString() == "00000") if (row["org_id"].ToString() == "00000")
{ {
@ -567,7 +623,7 @@ namespace Shentun.Peis.CCTJExportDatas
var isCZ = await _customerOrgRepository.FirstOrDefaultAsync(f => f.ParentId == parentId && f.DisplayName == row["org_name"].ToString()); var isCZ = await _customerOrgRepository.FirstOrDefaultAsync(f => f.ParentId == parentId && f.DisplayName == row["org_name"].ToString());
if (isCZ == null) if (isCZ == null)
{ {
// Guid customerOrgId = GuidGenerator.Create();
// Guid customerOrgId = GuidGenerator.Create();
Guid customerOrgId = StringConvertGuidHelper.GenerateURLUUID(row["org_id"].ToString()); Guid customerOrgId = StringConvertGuidHelper.GenerateURLUUID(row["org_id"].ToString());
#region 备注 导入联系人姓名、电话 #region 备注 导入联系人姓名、电话
string remark = ""; string remark = "";
@ -685,7 +741,7 @@ namespace Shentun.Peis.CCTJExportDatas
var isCZ = await _customerOrgRepository.FirstOrDefaultAsync(f => f.ParentId == parentId && f.DisplayName == row["org_name"].ToString()); var isCZ = await _customerOrgRepository.FirstOrDefaultAsync(f => f.ParentId == parentId && f.DisplayName == row["org_name"].ToString());
if (isCZ == null) if (isCZ == null)
{ {
// Guid customerOrgId = GuidGenerator.Create();
// Guid customerOrgId = GuidGenerator.Create();
Guid customerOrgId = StringConvertGuidHelper.GenerateURLUUID(row["org_id"].ToString()); Guid customerOrgId = StringConvertGuidHelper.GenerateURLUUID(row["org_id"].ToString());
#region 备注 导入联系人姓名、电话 #region 备注 导入联系人姓名、电话
string remark = ""; string remark = "";
@ -776,11 +832,6 @@ namespace Shentun.Peis.CCTJExportDatas
/// <summary> /// <summary>
/// 处理用户科室存父级的问题 /// 处理用户科室存父级的问题
/// </summary> /// </summary>

Loading…
Cancel
Save