2022-10-14 16:08:54 +08:00
using Backend.Models ;
using Microsoft.AspNetCore.Mvc ;
using Microsoft.Extensions.Logging ;
using Repository.BackendRepository.Interface ;
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Text.Json ;
using System.Threading.Tasks ;
namespace Backend.Controllers
{
public class BuildMenuController : MybaseController < BuildMenuController >
{
private readonly IBackendRepository backendRepository ;
public BuildMenuController ( IBackendRepository backendRepository )
{
this . backendRepository = backendRepository ;
}
public IActionResult Index ( )
{
return View ( ) ;
}
[HttpPost]
public async Task < ApiResult < List < KeyValue > > > BuildInfoList ( )
{
ApiResult < List < KeyValue > > apiResult = new ApiResult < List < KeyValue > > ( ) ;
List < KeyValue > KeyValue = new List < KeyValue > ( ) ;
try
{
2022-10-17 17:45:27 +08:00
var sqlString = @ $"select building_guid as Value, full_name as Name from building a where a.deleted = 0 and a.status = 0 ORDER BY a.priority ASC, a.created_at DESC" ;
2022-10-14 16:08:54 +08:00
KeyValue = await backendRepository . GetAllAsync < KeyValue > ( sqlString ) ;
apiResult . Code = "0000" ;
apiResult . Data = KeyValue ;
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
return apiResult ;
}
[HttpPost]
public async Task < ApiResult < List < KeyValue > > > MainListBybuild ( string build )
{
ApiResult < List < KeyValue > > apiResult = new ApiResult < List < KeyValue > > ( ) ;
List < KeyValue > KeyValue = new List < KeyValue > ( ) ;
try
{
var sqlString = @ $"select ms.main_system_guid value, ms.full_name name from (select main_system_guid from building_menu bm where bm.building_guid = '{build}' group by bm.main_system_guid ) bm left join main_system ms on ms.main_system_guid = bm.main_system_guid ORDER BY ms.priority ASC" ;
KeyValue = await backendRepository . GetAllAsync < KeyValue > ( sqlString ) ;
apiResult . Code = "0000" ;
apiResult . Data = KeyValue ;
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
return apiResult ;
}
[HttpPost]
public async Task < ApiResult < List < KeyValue > > > MainList ( )
{
ApiResult < List < KeyValue > > apiResult = new ApiResult < List < KeyValue > > ( ) ;
List < KeyValue > KeyValue = new List < KeyValue > ( ) ;
try
{
var sqlString = @ $"select ms.full_name Name,ms.main_system_guid Value from main_system ms where ms.deleted = 0 and ms.status = 0 ORDER BY ms.priority ASC" ;
KeyValue = await backendRepository . GetAllAsync < KeyValue > ( sqlString ) ;
apiResult . Code = "0000" ;
apiResult . Data = KeyValue ;
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
return apiResult ;
}
[HttpPost]
public async Task < ApiResult < List < KeyValue > > > SubListNotAdd ( SubListIn post )
{
ApiResult < List < KeyValue > > apiResult = new ApiResult < List < KeyValue > > ( ) ;
List < KeyValue > KeyValue = new List < KeyValue > ( ) ;
try
{
var sqlString = @ $ "select
ss . sub_system_guid value , ss . full_name name
from sub_system ss
left join (
select * from building_menu bm where bm . building_guid = ' { post . build } ' ) bm
on ss . sub_system_guid = bm . sub_system_guid
where bm . sub_system_guid is null and ss . deleted = 0 and ss . status = 0 and ss . main_system_guid = @guid ORDER BY ss . priority ASC , ss . created_at DESC ";
KeyValue = await backendRepository . GetAllAsync < KeyValue > ( sqlString , new { guid = post . main } ) ;
apiResult . Code = "0000" ;
apiResult . Data = KeyValue ;
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
string json = System . Text . Json . JsonSerializer . Serialize ( post ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + json ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
return apiResult ;
}
[HttpPost]
public async Task < ApiResult < string > > SavebuildMenuModal ( BuildMenu buildMenu )
{
ApiResult < string > apiResult = new ApiResult < string > ( ) ;
try
{
var get = await backendRepository . GetOneAsync < BuildMenu > ( "building_menu" , $"building_guid = '{buildMenu.building_guid}' and main_system_guid = '{buildMenu.main_system_guid}' and sub_system_guid = '{buildMenu.sub_system_guid}'" ) ;
if ( get = = null )
{
var dictionary = new Dictionary < string , object > ( )
{
{ "@building_guid" , buildMenu . building_guid } ,
{ "@main_system_guid" , buildMenu . main_system_guid } ,
{ "@sub_system_guid" , buildMenu . sub_system_guid } ,
{ "@drawing" , buildMenu . drawing } ,
{ "@created_by" , myUserInfo . Userinfo_guid } ,
{ "@planimetric_click" , buildMenu . planimetric_click }
} ;
if ( buildMenu . drawing = = 2 )
{
if ( buildMenu . system_url ! = null & & buildMenu . system_url . CompareTo ( "http://" ) < 0 & & buildMenu . system_url . CompareTo ( "https://" ) < 0 )
{
//未包含http || https 抓該棟ip + port
var building_where = @"deleted = 0 AND building_guid = @Building_guid" ;
var building = await backendRepository . GetOneAsync < BuildInfo > ( "building" , building_where , new { Building_guid = buildMenu . building_guid } ) ;
buildMenu . system_url = string . Format ( "http://{0}:{1}{2}" , building . Ip_address , building . Ip_port , buildMenu . system_url ) ;
}
dictionary . Add ( "@system_url" , buildMenu . system_url ) ;
}
else if ( buildMenu . drawing = = 4 )
{
if ( buildMenu . system_url ! = null & & buildMenu . system_url . CompareTo ( "http://" ) < 0 & & buildMenu . system_url . CompareTo ( "https://" ) < 0 )
{
//未包含http || https 抓該棟ip + port
var building_where = @"deleted = 0 AND building_guid = @Building_guid" ;
var building = await backendRepository . GetOneAsync < BuildInfo > ( "building" , building_where , new { Building_guid = buildMenu . building_guid } ) ;
buildMenu . system_url = string . Format ( "http://{0}:{1}{2}" , building . Ip_address , building . Ip_port , buildMenu . system_url ) ;
}
dictionary . Add ( "@riser_diagram_url" , buildMenu . riser_diagram_url ) ;
dictionary . Add ( "@icon_click" , buildMenu . icon_click ) ;
dictionary . Add ( "@icon_click_url" , buildMenu . icon_click_url ) ;
dictionary . Add ( "@icon_click_url_width" , buildMenu . icon_click_url_width ) ;
dictionary . Add ( "@icon_click_url_height" , buildMenu . icon_click_url_height ) ;
}
else if ( buildMenu . drawing = = 1 )
{
dictionary . Add ( "@planimetric_floor_guid" , buildMenu . planimetric_floor_guid ) ;
}
await backendRepository . AddOneByCustomTable ( dictionary , "building_menu" ) ;
var max = await backendRepository . GetOneAsync < int > ( "select Max(CONVERT(int,SUBSTRING(AuthCode,2,5))) AuthCode from auth_page ap where ap.AuthCode like 'F%'" ) ;
var page = await backendRepository . GetOneAsync < Auth_page > ( $"select ss.full_name SubName,ms.full_name MainName from sub_system ss left join main_system ms on ms.main_system_guid = ss.main_system_guid where ss.sub_system_guid = '{buildMenu.sub_system_guid}' and ms.main_system_guid = '{buildMenu.main_system_guid}'" ) ;
var pagedictionary = new Dictionary < string , object > ( )
{
{ "@AuthCode" , "F" + ( max + 1 ) . ToString ( ) } ,
{ "@AuthType" , 1 } ,
{ "@MainName" , page . MainName } ,
{ "@SubName" , page . SubName } ,
{ "@building_guid" , buildMenu . building_guid } ,
{ "@ShowView" , buildMenu . sub_system_guid }
} ;
await backendRepository . AddOneByCustomTable ( pagedictionary , "auth_page" ) ;
await backendRepository . ExecuteSql ( @ "DELETE FROM auth_page
WHERE auth_page . AuthCode like ' F % ' ;
INSERT INTO auth_page ( AuthCode , AuthType , MainName , SubName , building_guid , ShowView )
SELECT 'F' + CONVERT ( varchar , ROW_NUMBER ( ) OVER ( ORDER BY bm . building_guid ASC ) ) AuthCode , '1' AuthType , ms . full_name MainName , ss . full_name SubName , bm . building_guid , bm . sub_system_guid ShowView FROM building_menu bm
left join main_system ms on ms . main_system_guid = bm . main_system_guid
left join sub_system ss on ss . sub_system_guid = bm . sub_system_guid ");
await backendRepository . ExecuteSql ( @ "delete a from role_auth a join role b on a.role_guid = b.role_guid where b.layer = 0;
INSERT INTO role_auth ( role_guid , AuthCode , created_by )
SELECT r . role_guid , ap . AuthCode , '0' created_by FROM auth_page ap , role r
WHERE r . layer = 0 ; ");
#region 新 增 至 派 送 資 料 表
var sql = $@"SELECT ra.* FROM role_auth ra join role r on ra.role_guid = r.role_guid where r.layer = 0" ;
var role_auths = await backendRepository . GetAllAsync < RoleAuthList > ( sql ) ;
List < Dictionary < string , object > > role_auth_dicts = new List < Dictionary < string , object > > ( ) ;
foreach ( var role_auth in role_auths )
{
Dictionary < string , object > role_auth_dict = new Dictionary < string , object > ( )
{
{ "role_guid" , role_auth . Role_guid } ,
{ "@AuthCode" , role_auth . AuthCode } ,
} ;
role_auth_dicts . Add ( role_auth_dict ) ;
}
await backendRepository . ManualInsertBackgroundServiceTask ( "" , "" , "role_auth" , "purge_specify_insert" , role_auth_dicts ) ;
#endregion
apiResult . Code = "0000" ;
apiResult . Msg = "儲存成功" ;
}
else
{
var dictionary = new Dictionary < string , object > ( )
{
{ "@drawing" , buildMenu . drawing } ,
{ "@updated_by" , myUserInfo . Userinfo_guid } ,
{ "@updated_at" , DateTime . Now } ,
{ "@planimetric_click" , buildMenu . planimetric_click }
} ;
if ( buildMenu . drawing = = 2 )
{
if ( buildMenu . system_url ! = null & & buildMenu . system_url . CompareTo ( "http://" ) < 0 & & buildMenu . system_url . CompareTo ( "https://" ) < 0 )
{
//未包含http || https 抓該棟ip + port
var building_where = @"deleted = 0 AND building_guid = @Building_guid" ;
var building = await backendRepository . GetOneAsync < BuildInfo > ( "building" , building_where , new { Building_guid = buildMenu . building_guid } ) ;
buildMenu . system_url = string . Format ( "http://{0}:{1}{2}" , building . Ip_address , building . Ip_port , buildMenu . system_url ) ;
}
dictionary . Add ( "@system_url" , buildMenu . system_url ) ;
}
else if ( buildMenu . drawing = = 4 )
{
if ( buildMenu . system_url ! = null & & buildMenu . system_url . CompareTo ( "http://" ) < 0 & & buildMenu . system_url . CompareTo ( "https://" ) < 0 )
{
//未包含http || https 抓該棟ip + port
var building_where = @"deleted = 0 AND building_guid = @Building_guid" ;
var building = await backendRepository . GetOneAsync < BuildInfo > ( "building" , building_where , new { Building_guid = buildMenu . building_guid } ) ;
buildMenu . system_url = string . Format ( "http://{0}:{1}{2}" , building . Ip_address , building . Ip_port , buildMenu . system_url ) ;
}
dictionary . Add ( "@riser_diagram_url" , buildMenu . riser_diagram_url ) ;
dictionary . Add ( "@icon_click" , buildMenu . icon_click ) ;
dictionary . Add ( "@icon_click_url" , buildMenu . icon_click_url ) ;
dictionary . Add ( "@icon_click_url_width" , buildMenu . icon_click_url_width ) ;
dictionary . Add ( "@icon_click_url_height" , buildMenu . icon_click_url_height ) ;
}
else if ( buildMenu . drawing = = 1 )
{
dictionary . Add ( "@planimetric_floor_guid" , buildMenu . planimetric_floor_guid ) ;
}
await backendRepository . UpdateOneByCustomTable ( dictionary , "building_menu" , $"building_guid = '{buildMenu.building_guid}' and main_system_guid = '{buildMenu.main_system_guid}' and sub_system_guid = '{buildMenu.sub_system_guid}'" ) ;
apiResult . Code = "0000" ;
apiResult . Msg = "儲存成功" ;
}
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
string json = System . Text . Json . JsonSerializer . Serialize ( buildMenu ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + json ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
return apiResult ;
}
[HttpPost]
public async Task < ActionResult > BuildMenuTable ( BuildMenuTablePost post )
{
List < BuildMenuTable > buildMenuTables = new List < BuildMenuTable > ( ) ;
ApiResult < List < BuildMenuTable > > apiResult = new ApiResult < List < BuildMenuTable > > ( ) ;
try
{
buildMenuTables = await backendRepository . GetAllAsync < BuildMenuTable > ( $ @ "select bm.*,
case drawing when 1 then ' 樓 層 平 面 圖 ' when 2 then ' 系 統 圖 ' when 4 then ' 昇 位 圖 ' end drawing_name ,
case icon_click when 1 then '開' when 0 then '關' end icon_click_name ,
case planimetric_click when 1 then '開' when 0 then '關' end planimetric_click_name ,
ms . full_name main_system_guid_name , ss . full_name sub_system_guid_name , ff . full_name floor_guid_name
from building_menu bm
left join main_system ms on ms . main_system_guid = bm . main_system_guid
left join sub_system ss on ss . sub_system_guid = bm . sub_system_guid
left join floor ff on ff . floor_guid = bm . planimetric_floor_guid
where bm . building_guid = ' { post . build } ' and bm . main_system_guid in @MainList ORDER BY ms . priority ASC , ss . priority ASC , ss . created_at DESC ", new { MainList = post.MainList });
apiResult . Code = "0000" ;
apiResult . Data = buildMenuTables ;
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
var result = Json ( new
{
data = apiResult
} ) ;
return result ;
}
[HttpPost]
public async Task < ApiResult < BuildMenuAddSub > > GetBuildMenu ( MenuIn post )
{
ApiResult < BuildMenuAddSub > apiResult = new ApiResult < BuildMenuAddSub > ( ) ;
try
{
var BuildMenu = await backendRepository . GetOneAsync < BuildMenuAddSub > (
$ @ "select *,ss.full_name sub_system_guid_name from building_menu bm
left join sub_system ss on bm . sub_system_guid = ss . sub_system_guid
where bm . building_guid = @bg and bm . main_system_guid = @msg and bm . sub_system_guid = @ssg ", new { bg = post.build, msg = post.main, ssg = post.sub });
apiResult . Code = "0000" ;
apiResult . Data = BuildMenu ;
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
string json = System . Text . Json . JsonSerializer . Serialize ( post ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + json ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
return apiResult ;
}
[HttpPost]
public async Task < ApiResult < string > > DeleteBuildMenu ( MenuIn post )
{
ApiResult < string > apiResult = new ApiResult < string > ( ) ;
try
{
await backendRepository . PurgeOneByGuidWithCustomDBNameAndTable ( "building_menu" , $"building_guid = '{post.build}' and main_system_guid = '{post.main}' and sub_system_guid = '{post.sub}'" ) ;
var authcode = await backendRepository . GetOneAsync < string > ( @ $"select AuthCode from auth_page where building_guid = '{post.build}' and ShowView = '{post.sub}'" ) ;
if ( authcode ! = null )
{
await backendRepository . PurgeOneByGuidWithCustomDBNameAndTable ( "role_auth" , $" AuthCode = '{authcode}'" ) ;
await backendRepository . PurgeOneByGuidWithCustomDBNameAndTable ( "auth_page" , $" AuthCode = '{authcode}'" ) ;
await backendRepository . ExecuteSql ( @ "delete a from role_auth a join role b on a.role_guid = b.role_guid where b.layer = 0;
INSERT INTO role_auth ( role_guid , AuthCode , created_by )
SELECT r . role_guid , ap . AuthCode , '0' created_by FROM auth_page ap , role r
WHERE r . layer = 0 ; ");
#region 新 增 至 派 送 資 料 表
var sql = $@"SELECT ra.* FROM role_auth ra join role r on ra.role_guid = r.role_guid where r.layer = 0" ;
var role_auths = await backendRepository . GetAllAsync < RoleAuthList > ( sql ) ;
List < Dictionary < string , object > > role_auth_dicts = new List < Dictionary < string , object > > ( ) ;
foreach ( var role_auth in role_auths )
{
Dictionary < string , object > role_auth_dict = new Dictionary < string , object > ( )
{
{ "role_guid" , role_auth . Role_guid } ,
{ "@AuthCode" , role_auth . AuthCode } ,
} ;
role_auth_dicts . Add ( role_auth_dict ) ;
}
await backendRepository . ManualInsertBackgroundServiceTask ( "" , "" , "role_auth" , "purge_specify_insert" , role_auth_dicts ) ;
#endregion
}
apiResult . Code = "0000" ;
apiResult . Msg = "刪除成功" ;
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
string json = System . Text . Json . JsonSerializer . Serialize ( post ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + json ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
return apiResult ;
}
[HttpPost]
public async Task < ActionResult > BuildMenuFloorTable ( MenuIn post )
{
List < BuildMenuFloorTable > buildMenuFloorTables = new List < BuildMenuFloorTable > ( ) ;
ApiResult < List < BuildMenuFloorTable > > apiResult = new ApiResult < List < BuildMenuFloorTable > > ( ) ;
try
{
buildMenuFloorTables = await backendRepository . GetAllAsync < BuildMenuFloorTable > ( $ @ "
select f . full_name floor_guid_name , sf . * , ms . full_name main_system_guid_name , ss . full_name sub_system_guid_name
from ( select * from sub_system_floor ssf where ssf . building_guid = ' { post . build } ' and ssf . main_system_guid = ' { post . main } ' and ssf . sub_system_guid = ' { post . sub } ' and deleted = 0 and status = 0 ) sf
left join floor f on sf . floor_guid = f . floor_guid
left join main_system ms on ms . main_system_guid = sf . main_system_guid
left join sub_system ss on ss . sub_system_guid = sf . sub_system_guid
ORDER BY ms . priority , ss . priority , f . priority ");
apiResult . Code = "0000" ;
apiResult . Data = buildMenuFloorTables ;
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
var result = Json ( new
{
data = apiResult
} ) ;
return result ;
}
[HttpPost]
public async Task < ApiResult < List < KeyValue > > > GetNotUsefloor ( MenuIn post )
{
ApiResult < List < KeyValue > > apiResult = new ApiResult < List < KeyValue > > ( ) ;
List < KeyValue > KeyValue = new List < KeyValue > ( ) ;
try
{
var sqlString = @ $ "select fg.floor_guid value, fg.full_name name from
( select * from floor fg where fg . building_guid = ' { post . build } ' and fg . deleted = 0 and fg . status = 0 ) fg
left join ( select * from sub_system_floor where building_guid = ' { post . build } ' and main_system_guid = ' { post . main } ' and sub_system_guid = ' { post . sub } ' and deleted = 0 and status = 0 ) ssf
on ssf . floor_guid = fg . floor_guid
where ssf . floor_guid is null ORDER BY fg . priority ";
KeyValue = await backendRepository . GetAllAsync < KeyValue > ( sqlString ) ;
apiResult . Code = "0000" ;
apiResult . Data = KeyValue ;
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
return apiResult ;
}
[HttpPost]
public async Task < ApiResult < string > > SaveAddsubfloor ( MenuInfloor menuInfloor )
{
ApiResult < string > apiResult = new ApiResult < string > ( ) ;
try
{
var listdictionary = new List < Dictionary < string , object > > ( ) ;
foreach ( var a in menuInfloor . floorlist )
{
var dictionary = new Dictionary < string , object > ( )
{
{ "@sub_system_floor_guid" , Guid . NewGuid ( ) } ,
{ "@building_guid" , menuInfloor . build } ,
{ "@main_system_guid" , menuInfloor . main } ,
{ "@sub_system_guid" , menuInfloor . sub } ,
{ "@floor_guid" , a } ,
{ "@created_by" , myUserInfo . Userinfo_guid }
} ;
listdictionary . Add ( dictionary ) ;
}
await backendRepository . AddMutiByCustomTable ( listdictionary , "sub_system_floor" ) ;
apiResult . Code = "0000" ;
apiResult . Msg = "儲存成功" ;
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
string json = System . Text . Json . JsonSerializer . Serialize ( menuInfloor ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + json ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
return apiResult ;
}
[HttpPost]
public async Task < ApiResult < string > > DeleteBuildFloorMenu ( string subfloorguid )
{
ApiResult < string > apiResult = new ApiResult < string > ( ) ;
try
{
//檢查該樓層底下是否有設備
var sql = $ @ "
SELECT
CONCAT ( b . full_name , ' - ' , ms . full_name , ' - ' , ss . full_name , ' - ' , f . full_name )
FROM device d
LEFT JOIN (
SELECT *
FROM sub_system_floor ssf
WHERE ssf . deleted = 0 AND ssf . sub_system_floor_guid = @Guid ) ssf
ON d . deleted = 0
AND d . building_guid = ssf . building_guid
AND d . main_system_guid = ssf . main_system_guid
AND d . sub_system_guid = ssf . sub_system_guid
AND d . floor_guid = ssf . floor_guid
LEFT JOIN building b ON b . deleted = 0 AND d . building_guid = b . building_guid
LEFT JOIN main_system ms ON ms . deleted = 0 AND d . main_system_guid = ms . main_system_guid
LEFT JOIN sub_system ss ON ss . deleted = 0 AND d . sub_system_guid = ss . sub_system_guid
LEFT JOIN floor f ON f . deleted = 0 AND d . floor_guid = f . floor_guid
WHERE ssf . sub_system_floor_guid = @Guid ";
var sub_system_floors = await backendRepository . GetAllAsync < string > ( sql , new { Guid = subfloorguid } ) ;
if ( sub_system_floors . Count > 0 )
{
apiResult . Code = "9997" ;
apiResult . Msg = "設備管理中尚有設備正在使用該選單樓層,故無法刪除" ;
return apiResult ;
}
await backendRepository . DeleteOne ( subfloorguid , "sub_system_floor" , "sub_system_floor_guid" ) ;
apiResult . Code = "0000" ;
apiResult . Msg = "刪除成功" ;
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
string json = System . Text . Json . JsonSerializer . Serialize ( subfloorguid ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + json ) ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
return apiResult ;
}
[HttpPost]
public async Task < ApiResult < List < KeyValue > > > GetFloorInSubSystem ( MenuIn post )
{
ApiResult < List < KeyValue > > apiResult = new ApiResult < List < KeyValue > > ( ) ;
List < KeyValue > KeyValue = new List < KeyValue > ( ) ;
try
{
var sqlString = @ $ "select floor.floor_guid Value,floor.full_name Name from sub_system_floor sf left join floor on sf.floor_guid = floor.floor_guid
where sf . deleted = 0 and sf . status = 0 and sf . building_guid = ' { post . build } ' and sf . main_system_guid = ' { post . main } ' and sf . sub_system_guid = ' { post . sub } '
ORDER BY floor . priority , floor . created_at ";
KeyValue = await backendRepository . GetAllAsync < KeyValue > ( sqlString ) ;
apiResult . Code = "0000" ;
apiResult . Data = KeyValue ;
}
catch ( Exception exception )
{
apiResult . Code = "9999" ;
apiResult . Msg = "系統內部錯誤,請聯絡管理者。" ;
Logger . LogError ( "【" + controllerName + "/" + actionName + "】" + exception . Message ) ;
}
return apiResult ;
}
}
}