feature:每次同步時device .deviceItem判斷與來源niagara的full_name不同則覆蓋

This commit is contained in:
史萬澤 2023-02-08 15:17:03 +08:00
parent 0db40ce635
commit da2c265dd0
3 changed files with 89 additions and 0 deletions

View File

@ -82,6 +82,7 @@ namespace Backend.Controllers
var building = ds.FirstOrDefault().building; var building = ds.FirstOrDefault().building;
await niagaraDataSynchronizeRepository.InsertNiagaraTagList(ds, building); await niagaraDataSynchronizeRepository.InsertNiagaraTagList(ds, building);
await niagaraDataSynchronizeRepository.DeviceComparison(); await niagaraDataSynchronizeRepository.DeviceComparison();
await niagaraDataSynchronizeRepository.CheckDiffFullNameAndCover();
await niagaraDataSynchronizeRepository.CheckFullNameEmptyReplaceByDeviceName(); await niagaraDataSynchronizeRepository.CheckFullNameEmptyReplaceByDeviceName();
await niagaraDataSynchronizeRepository.InsertBuildingMenu(); await niagaraDataSynchronizeRepository.InsertBuildingMenu();
await niagaraDataSynchronizeRepository.InsertSubSystemFloor(); await niagaraDataSynchronizeRepository.InsertSubSystemFloor();
@ -146,6 +147,7 @@ namespace Backend.Controllers
var building = ds.FirstOrDefault().device_building_tag; var building = ds.FirstOrDefault().device_building_tag;
await niagaraDataSynchronizeRepository.InsertItemFromNiagara(ds, building); await niagaraDataSynchronizeRepository.InsertItemFromNiagara(ds, building);
await niagaraDataSynchronizeRepository.DeviceItemComparison(); await niagaraDataSynchronizeRepository.DeviceItemComparison();
await niagaraDataSynchronizeRepository.CheckItemDiffFullNameAndCover();
await niagaraDataSynchronizeRepository.ItemCheckFullNameEmptyReplaceByDeviceName(); await niagaraDataSynchronizeRepository.ItemCheckFullNameEmptyReplaceByDeviceName();
result = true; result = true;

View File

@ -512,6 +512,8 @@ namespace Repository.BackendRepository.Implement
/// <returns></returns> /// <returns></returns>
public async Task CheckFullNameEmptyReplaceByDeviceName() public async Task CheckFullNameEmptyReplaceByDeviceName()
{ {
using (IDbConnection conn = GetDbConnection()) using (IDbConnection conn = GetDbConnection())
{ {
conn.Open(); conn.Open();
@ -542,6 +544,8 @@ namespace Repository.BackendRepository.Implement
/// <returns></returns> /// <returns></returns>
public async Task ItemCheckFullNameEmptyReplaceByDeviceName() public async Task ItemCheckFullNameEmptyReplaceByDeviceName()
{ {
//檢查是否有空值
using (IDbConnection conn = GetDbConnection()) using (IDbConnection conn = GetDbConnection())
{ {
conn.Open(); conn.Open();
@ -565,5 +569,76 @@ namespace Repository.BackendRepository.Implement
} }
} }
/// <summary>
/// 檢查device的full_name與niagara device_full_name不同者 覆蓋
/// </summary>
/// <returns></returns>
public async Task CheckDiffFullNameAndCover()
{
using (IDbConnection conn = GetDbConnection())
{
conn.Open();
using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
try
{
StringBuilder sb = new StringBuilder();
sb.Append("update device d inner JOIN import_niagara_tag m ON m.niagara_tags = d.device_number " +
"set d.full_name=m.device_full_name " +
"where m.device_full_name<>d.full_name;");
await conn.ExecuteAsync(sb.ToString());
}
catch (Exception exception)
{
throw exception;
}
finally
{
conn.Close();
}
}
}
}
/// <summary>
/// 比對 device_item full_name 與 import_niagara_item full_name是否相同
/// 不同則覆蓋
/// </summary>
/// <returns></returns>
public async Task CheckItemDiffFullNameAndCover()
{
//檢查
using (IDbConnection conn = GetDbConnection())
{
conn.Open();
using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
{
try
{
StringBuilder sb = new StringBuilder();
sb.Append("update device_item d " +
"inner JOIN import_niagara_item m ON " +
"m.device_system_tag = d.device_system_tag and " +
"m.device_name_tag = d.device_name_tag and " +
"m.device_point_name = d.points " +
"set d.full_name=m.full_name " +
"where d.full_name<>m.full_name;");
await conn.ExecuteAsync(sb.ToString());
}
catch (Exception exception)
{
throw exception;
}
finally
{
conn.Close();
}
}
}
}
} }
} }

View File

@ -25,6 +25,12 @@ namespace Repository.BackendRepository.Interface
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task DeviceComparison(); Task DeviceComparison();
/// <summary>
///檢查Device與import_niagara_tag 的Full_Name是否相同 不同則Full_Name從import_niagara_tag 覆蓋至device
/// </summary>
/// <returns></returns>
Task CheckDiffFullNameAndCover();
/// <summary> /// <summary>
/// 比對 device的FullName若為空則以DeviceName取代 /// 比對 device的FullName若為空則以DeviceName取代
@ -36,6 +42,12 @@ namespace Repository.BackendRepository.Interface
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task DeviceItemComparison(); Task DeviceItemComparison();
/// <summary>
/// 比對 device_item full_name 與 import_niagara_item是否相同
/// 不同則覆蓋
/// </summary>
/// <returns></returns>
Task CheckItemDiffFullNameAndCover();
Task ItemCheckFullNameEmptyReplaceByDeviceName(); Task ItemCheckFullNameEmptyReplaceByDeviceName();
/// <summary> /// <summary>