From d4daa1188cd2dbc41af5f2c12ac619d254e7dbff Mon Sep 17 00:00:00 2001 From: dev02 Date: Tue, 15 Nov 2022 19:00:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=B3=BB=E7=B5=B1=E7=9B=A3?= =?UTF-8?q?=E6=8E=A7=E4=BD=9C=E6=A5=AD,=20=E4=BF=AE=E6=94=B9=E9=81=8B?= =?UTF-8?q?=E7=B6=AD=E6=96=B0=E5=A2=9E=E7=B7=A8=E8=BC=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ApiControllers/DeviceManageController.cs | 86 ++++++++++++------- .../ApiControllers/OperationController.cs | 4 +- FrontendWebApi/Models/Device.cs | 53 +++++++++++- 3 files changed, 111 insertions(+), 32 deletions(-) diff --git a/FrontendWebApi/ApiControllers/DeviceManageController.cs b/FrontendWebApi/ApiControllers/DeviceManageController.cs index 318182d..93a4c9a 100644 --- a/FrontendWebApi/ApiControllers/DeviceManageController.cs +++ b/FrontendWebApi/ApiControllers/DeviceManageController.cs @@ -175,7 +175,7 @@ namespace FrontendWebApi.ApiControllers try { - var sqlString = $@"select floor_tag, full_name from floor where deleted = 0 and building_tag = @building_tag and full_name = ifnull(@floor_tag, full_name)"; + var sqlString = $@"select floor_tag, full_name, InitMapName as map_name, floor_map_name + '.svg' as floor_map_name from floor where deleted = 0 and building_tag = @building_tag and full_name = ifnull(@floor_tag, full_name)"; var param = new { @building_tag = fd.building_tag, @floor_tag = fd.floor_tag }; var fl = await backendRepository.GetAllAsync(sqlString, param); @@ -200,41 +200,67 @@ namespace FrontendWebApi.ApiControllers return Ok(apiResult); } + /// + /// 獲取設備資料 + /// + /// + /// [HttpPost] - [Route("api/Device/GetOneDevice")] - public async Task>> GetOneDevice(string device_number) + [Route("api/Device/GetBaseDevice")] + public async Task>> GetBaseDevice([FromBody] FindDevice fd) { - ApiResult apiResult = new ApiResult(jwt_str); - if (!jwtlife) - { - apiResult.Code = "5000"; - return BadRequest(apiResult); - } + ApiResult apiResult = new ApiResult(); try { - string sql = $@"SELECT - d.*, - d.full_name AS Device_full_name, - b.full_name AS Building_full_name, - ms.full_name AS Main_system_full_name, - ss.full_name AS Sub_system_full_name, - f.full_name AS Floor_full_name - FROM ( - SELECT * - FROM device d - WHERE - d.device_number = @Device_number - AND d.deleted = @Deleted - ) d - JOIN building b ON d.building_guid = b.building_guid - JOIN main_system ms ON d.main_system_guid = ms.main_system_guid - JOIN sub_system ss ON d.sub_system_guid = ss.sub_system_guid - JOIN floor f ON d.floor_guid = f.floor_guid - "; + string sql = $@"select device_number, full_name, device_coordinate, device_coordinate_3d from device where deleted = 0 and device_guid = @device_guid"; + object param = new { @device_guid = fd.device_guid }; + var device = await backendRepository.GetOneAsync(sql, param); - object param = new { Deleted = 0, Device_number = device_number }; + if(device == null) + { + apiResult.Msg = "查無次設備"; + apiResult.Code = "0001"; + return apiResult; + } - var device = await backendRepository.GetOneAsync(sql, param); + apiResult.Data = device; + apiResult.Code = "0000"; + } + catch (Exception exception) + { + apiResult.Code = "9999"; + Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message); + return Ok(apiResult); + } + return Ok(apiResult); + } + + /// + /// 獲取設備運維資料 + /// + /// + /// + [HttpPost] + [Route("api/Device/GetOpeDevice")] + public async Task>>> GetOpeDevice([FromBody] FindDevice fd) + { + ApiResult> apiResult = new ApiResult>(); + try + { + string sql = $@"select orr.work_type, orr.fix_do, ui.full_name as work_person_name, finish_time, created_at + from device d + join operation_record orr on d.device_number = orr.fix_do_code and orr.deleted = 0 + left join userinfo ui on orr.work_person_id = ui.userinfo_guid + where d.deleted = 0 and d.device_guid = @device_guid"; + object param = new { @device_guid = fd.device_guid }; + var device = await backendRepository.GetAllAsync(sql, param); + + if (device.Count == 0) + { + apiResult.Msg = "查無次設備"; + apiResult.Code = "0001"; + return apiResult; + } apiResult.Data = device; apiResult.Code = "0000"; diff --git a/FrontendWebApi/ApiControllers/OperationController.cs b/FrontendWebApi/ApiControllers/OperationController.cs index 0c81caa..e3815d1 100644 --- a/FrontendWebApi/ApiControllers/OperationController.cs +++ b/FrontendWebApi/ApiControllers/OperationController.cs @@ -1021,7 +1021,7 @@ namespace FrontendWebApi.ApiControllers sqlString = $@"select formId from operation_record where convert(created_at, DATE) = convert(NOW(), DATE) order by id desc limit 1"; var formId = await backendRepository.GetOneAsync(sqlString); - formId = formId != null ? "op" + DateTime.Now.ToString("yyyyMMdd") + (Int32.Parse(formId.Substring(10)) + 1) : "op" + DateTime.Now.ToString("yyyyMMdd") + "001"; + formId = formId != null ? "op" + DateTime.Now.ToString("yyyyMMdd") + (Int32.Parse(formId.Substring(10)) + 1).ToString().PadLeft(3, '0') : "op" + DateTime.Now.ToString("yyyyMMdd") + "001"; if (ori == null) //create { @@ -1036,6 +1036,7 @@ namespace FrontendWebApi.ApiControllers { "@device_system_category_layer3", or.device_system_category_layer3}, { "@work_type", or.work_type}, { "@error_code", or.work_type == 2 ? new_guid.ToString() : null}, + { "@fix_do", or.fix_do}, { "@fix_do_code", or.fix_do_code }, { "@fix_firm", or.fix_firm}, { "@status", or.status}, @@ -1096,6 +1097,7 @@ namespace FrontendWebApi.ApiControllers { "@location_code", or.location_code}, { "@device_system_category_layer2", or.device_system_category_layer2}, { "@device_system_category_layer3", or.device_system_category_layer3}, + { "@fix_do", or.fix_do}, { "@fix_do_code", or.fix_do_code }, { "@fix_firm", or.fix_firm}, { "@status", or.status}, diff --git a/FrontendWebApi/Models/Device.cs b/FrontendWebApi/Models/Device.cs index b7d2cea..8e10668 100644 --- a/FrontendWebApi/Models/Device.cs +++ b/FrontendWebApi/Models/Device.cs @@ -1,4 +1,6 @@ -using System.Collections.Generic; +using iTextSharp.xmp.impl; +using System; +using System.Collections.Generic; namespace FrontendWebApi.Models { @@ -7,6 +9,7 @@ namespace FrontendWebApi.Models public string main_system_tag { get; set; } public string building_tag { get; set; } public string floor_tag { get; set; } + public string device_guid { get; set; } } public class BuildList @@ -19,6 +22,8 @@ namespace FrontendWebApi.Models { public string full_name { get; set; } public string floor_tag { get; set; } + public string map_name { get; set; } + public string floor_map_name { get; set; } public List device_list {get; set;} } @@ -27,6 +32,7 @@ namespace FrontendWebApi.Models public string device_guid { get; set; } public string full_name { get; set; } public string device_coordinate { get; set; } + public string device_coordinate_3d { get; set; } public string status { get; set; } public string device_status { @@ -42,4 +48,49 @@ namespace FrontendWebApi.Models } } } + + public class DeviceBaseInfo + { + public string device_number { get; set; } + public string device_coordinate { get; set; } + public string device_coordinate_3d { get; set; } + public string full_name { get; set; } + public string device_ip { get; set; } + } + + public class DeviceOpeRecord + { + public string fix_do { get; set; } + public byte work_type { get; set; } + public string work_type_name + { + get + { + Dictionary name = new Dictionary() + { + { 1 , "保養" }, + { 2 , "維修" } + }; + return name[work_type]; + } + } + public string work_person_name { get; set; } + public DateTime finish_time { get; set; } + public DateTime created_at { get; set; } + public string Created_at + { + get + { + return Convert.ToDateTime(created_at).ToString("yyyy-MM-dd HH:mm:ss"); + } + } //創建時間 + + public string Finish_time + { + get + { + return Convert.ToDateTime(finish_time).ToString("yyyy-MM-dd HH:mm:ss"); + } + } //結束時間 + } }