feature:每次同步時device .deviceItem判斷與來源niagara的full_name不同則覆蓋
This commit is contained in:
parent
0db40ce635
commit
da2c265dd0
@ -82,6 +82,7 @@ namespace Backend.Controllers
|
||||
var building = ds.FirstOrDefault().building;
|
||||
await niagaraDataSynchronizeRepository.InsertNiagaraTagList(ds, building);
|
||||
await niagaraDataSynchronizeRepository.DeviceComparison();
|
||||
await niagaraDataSynchronizeRepository.CheckDiffFullNameAndCover();
|
||||
await niagaraDataSynchronizeRepository.CheckFullNameEmptyReplaceByDeviceName();
|
||||
await niagaraDataSynchronizeRepository.InsertBuildingMenu();
|
||||
await niagaraDataSynchronizeRepository.InsertSubSystemFloor();
|
||||
@ -146,6 +147,7 @@ namespace Backend.Controllers
|
||||
var building = ds.FirstOrDefault().device_building_tag;
|
||||
await niagaraDataSynchronizeRepository.InsertItemFromNiagara(ds, building);
|
||||
await niagaraDataSynchronizeRepository.DeviceItemComparison();
|
||||
await niagaraDataSynchronizeRepository.CheckItemDiffFullNameAndCover();
|
||||
await niagaraDataSynchronizeRepository.ItemCheckFullNameEmptyReplaceByDeviceName();
|
||||
result = true;
|
||||
|
||||
|
@ -512,6 +512,8 @@ namespace Repository.BackendRepository.Implement
|
||||
/// <returns></returns>
|
||||
public async Task CheckFullNameEmptyReplaceByDeviceName()
|
||||
{
|
||||
|
||||
|
||||
using (IDbConnection conn = GetDbConnection())
|
||||
{
|
||||
conn.Open();
|
||||
@ -542,6 +544,8 @@ namespace Repository.BackendRepository.Implement
|
||||
/// <returns></returns>
|
||||
public async Task ItemCheckFullNameEmptyReplaceByDeviceName()
|
||||
{
|
||||
|
||||
//檢查是否有空值
|
||||
using (IDbConnection conn = GetDbConnection())
|
||||
{
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,12 @@ namespace Repository.BackendRepository.Interface
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task DeviceComparison();
|
||||
/// <summary>
|
||||
///檢查Device與import_niagara_tag 的Full_Name是否相同 不同則Full_Name從import_niagara_tag 覆蓋至device
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task CheckDiffFullNameAndCover();
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 比對 device的FullName,若為空則以DeviceName取代
|
||||
@ -36,6 +42,12 @@ namespace Repository.BackendRepository.Interface
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task DeviceItemComparison();
|
||||
/// <summary>
|
||||
/// 比對 device_item full_name 與 import_niagara_item是否相同
|
||||
/// 不同則覆蓋
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task CheckItemDiffFullNameAndCover();
|
||||
|
||||
Task ItemCheckFullNameEmptyReplaceByDeviceName();
|
||||
/// <summary>
|
||||
|
Loading…
Reference in New Issue
Block a user