[後端] 增加loading顯示, 排程try catch
This commit is contained in:
		
							parent
							
								
									060dc97391
								
							
						
					
					
						commit
						c468efe0fc
					
				@ -762,11 +762,14 @@
 | 
				
			|||||||
                        return;
 | 
					                        return;
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else {
 | 
					                    else {
 | 
				
			||||||
 | 
					                        $('#floor-modal').modal();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        $("#BuildName").html(selected_build_guid_top_name);
 | 
					                        $("#BuildName").html(selected_build_guid_top_name);
 | 
				
			||||||
                        $("#floor_name_modal").val(rel.data.full_name);
 | 
					                        $("#floor_name_modal").val(rel.data.full_name);
 | 
				
			||||||
                        @*$("#map_file_preview_modal").attr("data-original", rel.data.mapUrl);*@
 | 
					                        if (rel.data.mapUrl)
 | 
				
			||||||
 | 
					                            loadURLToInputFiled(rel.data.mapUrl, rel.data.initMapName + ".svg");
 | 
				
			||||||
                        $('#floor-modal').modal();
 | 
					                        else
 | 
				
			||||||
 | 
					                            $('#floor_map_file_modal')[0].value = "";
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }, 'json');
 | 
					                }, 'json');
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
@ -977,6 +980,27 @@
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        //#endregion
 | 
					        //#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        function loadURLToInputFiled(url, filesName){
 | 
				
			||||||
 | 
					            getImgURL(url, (imgBlob)=>{
 | 
				
			||||||
 | 
					                // Load img blob to input
 | 
				
			||||||
 | 
					                // WIP: UTF8 character error
 | 
				
			||||||
 | 
					                let fileName = filesName
 | 
				
			||||||
 | 
					                let file = new File([imgBlob], fileName,{type:"image/svg+xml", lastModified:new Date().getTime()}, 'utf-8');
 | 
				
			||||||
 | 
					                let container = new DataTransfer(); 
 | 
				
			||||||
 | 
					                container.items.add(file);
 | 
				
			||||||
 | 
					                $('#floor_map_file_modal')[0].files = container.files;
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // xmlHTTP return blob respond
 | 
				
			||||||
 | 
					        function getImgURL(url, callback){
 | 
				
			||||||
 | 
					            var xhr = new XMLHttpRequest();
 | 
				
			||||||
 | 
					            xhr.onload = function() {
 | 
				
			||||||
 | 
					                callback(xhr.response);
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					            xhr.open('GET', url);
 | 
				
			||||||
 | 
					            xhr.responseType = 'blob';
 | 
				
			||||||
 | 
					            xhr.send();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    </script>
 | 
					    </script>
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -140,6 +140,7 @@
 | 
				
			|||||||
        //#endregion
 | 
					        //#endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        function SynchronizeData() {
 | 
					        function SynchronizeData() {
 | 
				
			||||||
 | 
					            showSpinner();
 | 
				
			||||||
            document.getElementById('loadDataText').innerText = "同步中...";
 | 
					            document.getElementById('loadDataText').innerText = "同步中...";
 | 
				
			||||||
            if (ds.length > 0) {
 | 
					            if (ds.length > 0) {
 | 
				
			||||||
                //比對資料,有差異的話,再同步到device等資料表
 | 
					                //比對資料,有差異的話,再同步到device等資料表
 | 
				
			||||||
@ -154,12 +155,13 @@
 | 
				
			|||||||
                    url: url_synchronize_data,
 | 
					                    url: url_synchronize_data,
 | 
				
			||||||
                    data: JSON.stringify(ds),
 | 
					                    data: JSON.stringify(ds),
 | 
				
			||||||
                    cache: false,
 | 
					                    cache: false,
 | 
				
			||||||
                    async: false,
 | 
					                    async: true,
 | 
				
			||||||
                    contentType: "application/json; charset=UTF-8",
 | 
					                    contentType: "application/json; charset=UTF-8",
 | 
				
			||||||
                    dataType: 'json',
 | 
					                    dataType: 'json',
 | 
				
			||||||
                    success: function (rel) {
 | 
					                    success: function (rel) {
 | 
				
			||||||
                        if (rel.code != "0000") {
 | 
					                        if (rel.code != "0000") {
 | 
				
			||||||
                            toast_error(rel.msg);
 | 
					                            toast_error(rel.msg);
 | 
				
			||||||
 | 
					                            showSpinner();
 | 
				
			||||||
                            document.getElementById('loadDataText').innerText = "比對資料出錯了!";
 | 
					                            document.getElementById('loadDataText').innerText = "比對資料出錯了!";
 | 
				
			||||||
                            return;
 | 
					                            return;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
@ -208,10 +210,12 @@
 | 
				
			|||||||
                        success: function (rel) {
 | 
					                        success: function (rel) {
 | 
				
			||||||
                            if (rel.code != "0000") {
 | 
					                            if (rel.code != "0000") {
 | 
				
			||||||
                                toast_error(rel.msg);
 | 
					                                toast_error(rel.msg);
 | 
				
			||||||
 | 
					                                showSpinner();
 | 
				
			||||||
                                document.getElementById('loadDataText').innerText = "比對資料出錯了!";
 | 
					                                document.getElementById('loadDataText').innerText = "比對資料出錯了!";
 | 
				
			||||||
                                return;
 | 
					                                return;
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            hideSpinner();
 | 
				
			||||||
                            console.log(rel);
 | 
					                            console.log(rel);
 | 
				
			||||||
                            var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
 | 
					                            var time = today.getHours() + ":" + today.getMinutes() + ":" + today.getSeconds();
 | 
				
			||||||
                            var dateTime = date + ' ' + time;
 | 
					                            var dateTime = date + ' ' + time;
 | 
				
			||||||
 | 
				
			|||||||
@ -27,6 +27,11 @@
 | 
				
			|||||||
</head>
 | 
					</head>
 | 
				
			||||||
<body class="mod-bg-1 mod-nav-link">
 | 
					<body class="mod-bg-1 mod-nav-link">
 | 
				
			||||||
    <!-- BEGIN Page Wrapper -->
 | 
					    <!-- BEGIN Page Wrapper -->
 | 
				
			||||||
 | 
					    <div id="spinner" class="justify-content-center text-center loading hide">
 | 
				
			||||||
 | 
					        <div class="spinner-border" role="status">
 | 
				
			||||||
 | 
					            <span class="sr-only">Loading...</span>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
    <div class="page-wrapper">
 | 
					    <div class="page-wrapper">
 | 
				
			||||||
        <div class="page-inner">
 | 
					        <div class="page-inner">
 | 
				
			||||||
            <!-- BEGIN Left Aside -->
 | 
					            <!-- BEGIN Left Aside -->
 | 
				
			||||||
 | 
				
			|||||||
@ -46,4 +46,35 @@ label.error {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
.t-gray {
 | 
					.t-gray {
 | 
				
			||||||
    color:var(--bims-gray) !important;
 | 
					    color:var(--bims-gray) !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Absolute Center Spinner */
 | 
				
			||||||
 | 
					.loading {
 | 
				
			||||||
 | 
					    position: fixed;
 | 
				
			||||||
 | 
					    z-index: 999;
 | 
				
			||||||
 | 
					    display: block;
 | 
				
			||||||
 | 
					    margin: auto;
 | 
				
			||||||
 | 
					    top: 0;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    bottom: 0;
 | 
				
			||||||
 | 
					    right: 0;
 | 
				
			||||||
 | 
					    width: 50px;
 | 
				
			||||||
 | 
					    height: 50px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Transparent Overlay */
 | 
				
			||||||
 | 
					.loading:before {
 | 
				
			||||||
 | 
					    content: '';
 | 
				
			||||||
 | 
					    display: block;
 | 
				
			||||||
 | 
					    position: fixed;
 | 
				
			||||||
 | 
					    top: 0;
 | 
				
			||||||
 | 
					    left: 0;
 | 
				
			||||||
 | 
					    width: 100%;
 | 
				
			||||||
 | 
					    height: 100%;
 | 
				
			||||||
 | 
					    background: radial-gradient(rgba(0, 0, 0, .5), rgba(0, 0, 0, .5));
 | 
				
			||||||
 | 
					    background: -webkit-radial-gradient(rgba(0, 0, 0, .5), rgba(0, 0, 0, .5));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.loading.hide {
 | 
				
			||||||
 | 
					    display: none;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -222,3 +222,11 @@ function SaveSpinner(status) { //1:Spinner 0:還原儲存
 | 
				
			|||||||
$(document).ready(function () {
 | 
					$(document).ready(function () {
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function showSpinner() {
 | 
				
			||||||
 | 
					    $("#spinner").removeClass("hide");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function hideSpinner() {
 | 
				
			||||||
 | 
					    $("#spinner").addClass("hide");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -786,6 +786,7 @@ namespace BackendWorkerService.Services.Implement
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
            catch (Exception exception)
 | 
					            catch (Exception exception)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
                throw exception;
 | 
					                throw exception;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -795,28 +796,98 @@ namespace BackendWorkerService.Services.Implement
 | 
				
			|||||||
        private List<Dictionary<string, object>> ArrangeRawData(DeviceNumberPoint deviceNumberPoint, JObject jsonResult)
 | 
					        private List<Dictionary<string, object>> ArrangeRawData(DeviceNumberPoint deviceNumberPoint, JObject jsonResult)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            List<Dictionary<string, object>> arrangeRawDatas = new List<Dictionary<string, object>>();
 | 
					            List<Dictionary<string, object>> arrangeRawDatas = new List<Dictionary<string, object>>();
 | 
				
			||||||
            var histories = jsonResult["obj"]["list"];
 | 
					            try
 | 
				
			||||||
            var rawdateCount = Convert.ToInt32(jsonResult["obj"]["int"]["@val"].ToString());
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (rawdateCount == 0)
 | 
					 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                return null;
 | 
					                var histories = jsonResult["obj"]["list"];
 | 
				
			||||||
            }
 | 
					                var rawdateCount = Convert.ToInt32(jsonResult["obj"]["int"]["@val"].ToString());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (histories != null && histories.HasValues)
 | 
					                if (rawdateCount == 0)
 | 
				
			||||||
            {
 | 
					                {
 | 
				
			||||||
                if (rawdateCount > 1)
 | 
					                    return null;
 | 
				
			||||||
                {   //多筆資料
 | 
					                }
 | 
				
			||||||
                    foreach (var history in histories)
 | 
					
 | 
				
			||||||
                    {
 | 
					                if (histories != null && histories.HasValues)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    if (rawdateCount > 1)
 | 
				
			||||||
 | 
					                    {   //多筆資料
 | 
				
			||||||
 | 
					                        foreach (var history in histories)
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                            Dictionary<string, object> arrangeRawData = new Dictionary<string, object>();
 | 
				
			||||||
 | 
					                            arrangeRawData.Add("@device_number", deviceNumberPoint.DeviceNumber);
 | 
				
			||||||
 | 
					                            arrangeRawData.Add("@point", deviceNumberPoint.Point);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            //時間
 | 
				
			||||||
 | 
					                            if (history["abstime"] != null && history["abstime"].HasValues)
 | 
				
			||||||
 | 
					                            {
 | 
				
			||||||
 | 
					                                foreach (var abstime in history["abstime"])
 | 
				
			||||||
 | 
					                                {
 | 
				
			||||||
 | 
					                                    var name = abstime["@name"].ToString();
 | 
				
			||||||
 | 
					                                    switch (name)
 | 
				
			||||||
 | 
					                                    {
 | 
				
			||||||
 | 
					                                        case "start":
 | 
				
			||||||
 | 
					                                            var startTimstamp = Convert.ToDateTime(abstime["@val"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
 | 
				
			||||||
 | 
					                                            arrangeRawData.Add("@start_timestamp", startTimstamp);
 | 
				
			||||||
 | 
					                                            break;
 | 
				
			||||||
 | 
					                                        case "end":
 | 
				
			||||||
 | 
					                                            var endTimstamp = Convert.ToDateTime(abstime["@val"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
 | 
				
			||||||
 | 
					                                            arrangeRawData.Add("@end_timestamp", endTimstamp);
 | 
				
			||||||
 | 
					                                            break;
 | 
				
			||||||
 | 
					                                    }
 | 
				
			||||||
 | 
					                                }
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            //區間內資料筆數
 | 
				
			||||||
 | 
					                            if (history["int"] != null && history["int"].HasValues)
 | 
				
			||||||
 | 
					                            {
 | 
				
			||||||
 | 
					                                var count = Convert.ToInt32(histories["obj"]["int"]["@val"].ToString());
 | 
				
			||||||
 | 
					                                arrangeRawData.Add("@count_rawdata", count);
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            //整合數值(最大、最小、平均、總和)
 | 
				
			||||||
 | 
					                            if (history["real"] != null && history["real"].HasValues)
 | 
				
			||||||
 | 
					                            {
 | 
				
			||||||
 | 
					                                foreach (var real in history["real"])
 | 
				
			||||||
 | 
					                                {
 | 
				
			||||||
 | 
					                                    var name = real["@name"].ToString();
 | 
				
			||||||
 | 
					                                    switch (name)
 | 
				
			||||||
 | 
					                                    {
 | 
				
			||||||
 | 
					                                        case "min":
 | 
				
			||||||
 | 
					                                            var min = Convert.ToDecimal(real["@val"].ToString());
 | 
				
			||||||
 | 
					                                            arrangeRawData.Add("@min_rawdata", min);
 | 
				
			||||||
 | 
					                                            break;
 | 
				
			||||||
 | 
					                                        case "max":
 | 
				
			||||||
 | 
					                                            var max = Convert.ToDecimal(real["@val"].ToString());
 | 
				
			||||||
 | 
					                                            arrangeRawData.Add("@max_rawdata", max);
 | 
				
			||||||
 | 
					                                            break;
 | 
				
			||||||
 | 
					                                        case "avg":
 | 
				
			||||||
 | 
					                                            var avg = Convert.ToDecimal(real["@val"].ToString());
 | 
				
			||||||
 | 
					                                            arrangeRawData.Add("@avg_rawdata", avg);
 | 
				
			||||||
 | 
					                                            break;
 | 
				
			||||||
 | 
					                                        case "sum":
 | 
				
			||||||
 | 
					                                            var sum = Decimal.Parse(real["@val"].ToString(), System.Globalization.NumberStyles.Float);
 | 
				
			||||||
 | 
					                                            arrangeRawData.Add("@sum_rawdata", sum);
 | 
				
			||||||
 | 
					                                            break;
 | 
				
			||||||
 | 
					                                    }
 | 
				
			||||||
 | 
					                                }
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                            arrangeRawData.Add("@is_complete", 1);
 | 
				
			||||||
 | 
					                            arrangeRawData.Add("@repeat_times", 0);
 | 
				
			||||||
 | 
					                            arrangeRawData.Add("@fail_reason", null);
 | 
				
			||||||
 | 
					                            arrangeRawData.Add("@updated_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            arrangeRawDatas.Add(arrangeRawData);
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    else
 | 
				
			||||||
 | 
					                    {   //單筆資料
 | 
				
			||||||
                        Dictionary<string, object> arrangeRawData = new Dictionary<string, object>();
 | 
					                        Dictionary<string, object> arrangeRawData = new Dictionary<string, object>();
 | 
				
			||||||
                        arrangeRawData.Add("@device_number", deviceNumberPoint.DeviceNumber);
 | 
					                        arrangeRawData.Add("@device_number", deviceNumberPoint.DeviceNumber);
 | 
				
			||||||
                        arrangeRawData.Add("@point", deviceNumberPoint.Point);
 | 
					                        arrangeRawData.Add("@point", deviceNumberPoint.Point);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //時間
 | 
					                        //時間
 | 
				
			||||||
                        if (history["abstime"] != null && history["abstime"].HasValues)
 | 
					                        if (histories["obj"]["abstime"] != null && histories["obj"]["abstime"].HasValues)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            foreach (var abstime in history["abstime"])
 | 
					                            foreach (var abstime in histories["obj"]["abstime"])
 | 
				
			||||||
                            {
 | 
					                            {
 | 
				
			||||||
                                var name = abstime["@name"].ToString();
 | 
					                                var name = abstime["@name"].ToString();
 | 
				
			||||||
                                switch (name)
 | 
					                                switch (name)
 | 
				
			||||||
@ -834,16 +905,16 @@ namespace BackendWorkerService.Services.Implement
 | 
				
			|||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //區間內資料筆數
 | 
					                        //區間內資料筆數
 | 
				
			||||||
                        if (history["int"] != null && history["int"].HasValues)
 | 
					                        if (histories["obj"]["int"] != null && histories["obj"]["int"].HasValues)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            var count = Convert.ToInt32(histories["obj"]["int"]["@val"].ToString());
 | 
					                            var count = Convert.ToInt32(histories["obj"]["int"]["@val"].ToString());
 | 
				
			||||||
                            arrangeRawData.Add("@count_rawdata", count);
 | 
					                            arrangeRawData.Add("@count_rawdata", count);
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        //整合數值(最大、最小、平均、總和)
 | 
					                        //整合數值(最大、最小、平均、總和)
 | 
				
			||||||
                        if (history["real"] != null && history["real"].HasValues)
 | 
					                        if (histories["obj"]["real"] != null && histories["obj"]["real"].HasValues)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            foreach (var real in history["real"])
 | 
					                            foreach (var real in histories["obj"]["real"])
 | 
				
			||||||
                            {
 | 
					                            {
 | 
				
			||||||
                                var name = real["@name"].ToString();
 | 
					                                var name = real["@name"].ToString();
 | 
				
			||||||
                                switch (name)
 | 
					                                switch (name)
 | 
				
			||||||
@ -867,6 +938,7 @@ namespace BackendWorkerService.Services.Implement
 | 
				
			|||||||
                                }
 | 
					                                }
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        arrangeRawData.Add("@is_complete", 1);
 | 
					                        arrangeRawData.Add("@is_complete", 1);
 | 
				
			||||||
                        arrangeRawData.Add("@repeat_times", 0);
 | 
					                        arrangeRawData.Add("@repeat_times", 0);
 | 
				
			||||||
                        arrangeRawData.Add("@fail_reason", null);
 | 
					                        arrangeRawData.Add("@fail_reason", null);
 | 
				
			||||||
@ -875,77 +947,13 @@ namespace BackendWorkerService.Services.Implement
 | 
				
			|||||||
                        arrangeRawDatas.Add(arrangeRawData);
 | 
					                        arrangeRawDatas.Add(arrangeRawData);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else
 | 
					 | 
				
			||||||
                {   //單筆資料
 | 
					 | 
				
			||||||
                    Dictionary<string, object> arrangeRawData = new Dictionary<string, object>();
 | 
					 | 
				
			||||||
                    arrangeRawData.Add("@device_number", deviceNumberPoint.DeviceNumber);
 | 
					 | 
				
			||||||
                    arrangeRawData.Add("@point", deviceNumberPoint.Point);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    //時間
 | 
					                return arrangeRawDatas;
 | 
				
			||||||
                    if (histories["obj"]["abstime"] != null && histories["obj"]["abstime"].HasValues)
 | 
					            }
 | 
				
			||||||
                    {
 | 
					            catch (Exception ex)
 | 
				
			||||||
                        foreach (var abstime in histories["obj"]["abstime"])
 | 
					            {
 | 
				
			||||||
                        {
 | 
					                return arrangeRawDatas;
 | 
				
			||||||
                            var name = abstime["@name"].ToString();
 | 
					 | 
				
			||||||
                            switch (name)
 | 
					 | 
				
			||||||
                            {
 | 
					 | 
				
			||||||
                                case "start":
 | 
					 | 
				
			||||||
                                    var startTimstamp = Convert.ToDateTime(abstime["@val"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
 | 
					 | 
				
			||||||
                                    arrangeRawData.Add("@start_timestamp", startTimstamp);
 | 
					 | 
				
			||||||
                                    break;
 | 
					 | 
				
			||||||
                                case "end":
 | 
					 | 
				
			||||||
                                    var endTimstamp = Convert.ToDateTime(abstime["@val"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
 | 
					 | 
				
			||||||
                                    arrangeRawData.Add("@end_timestamp", endTimstamp);
 | 
					 | 
				
			||||||
                                    break;
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    //區間內資料筆數
 | 
					 | 
				
			||||||
                    if (histories["obj"]["int"] != null && histories["obj"]["int"].HasValues)
 | 
					 | 
				
			||||||
                    {
 | 
					 | 
				
			||||||
                        var count = Convert.ToInt32(histories["obj"]["int"]["@val"].ToString());
 | 
					 | 
				
			||||||
                        arrangeRawData.Add("@count_rawdata", count);
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    //整合數值(最大、最小、平均、總和)
 | 
					 | 
				
			||||||
                    if (histories["obj"]["real"] != null && histories["obj"]["real"].HasValues)
 | 
					 | 
				
			||||||
                    {
 | 
					 | 
				
			||||||
                        foreach (var real in histories["obj"]["real"])
 | 
					 | 
				
			||||||
                        {
 | 
					 | 
				
			||||||
                            var name = real["@name"].ToString();
 | 
					 | 
				
			||||||
                            switch (name)
 | 
					 | 
				
			||||||
                            {
 | 
					 | 
				
			||||||
                                case "min":
 | 
					 | 
				
			||||||
                                    var min = Convert.ToDecimal(real["@val"].ToString());
 | 
					 | 
				
			||||||
                                    arrangeRawData.Add("@min_rawdata", min);
 | 
					 | 
				
			||||||
                                    break;
 | 
					 | 
				
			||||||
                                case "max":
 | 
					 | 
				
			||||||
                                    var max = Convert.ToDecimal(real["@val"].ToString());
 | 
					 | 
				
			||||||
                                    arrangeRawData.Add("@max_rawdata", max);
 | 
					 | 
				
			||||||
                                    break;
 | 
					 | 
				
			||||||
                                case "avg":
 | 
					 | 
				
			||||||
                                    var avg = Convert.ToDecimal(real["@val"].ToString());
 | 
					 | 
				
			||||||
                                    arrangeRawData.Add("@avg_rawdata", avg);
 | 
					 | 
				
			||||||
                                    break;
 | 
					 | 
				
			||||||
                                case "sum":
 | 
					 | 
				
			||||||
                                    var sum = Decimal.Parse(real["@val"].ToString(), System.Globalization.NumberStyles.Float);
 | 
					 | 
				
			||||||
                                    arrangeRawData.Add("@sum_rawdata", sum);
 | 
					 | 
				
			||||||
                                    break;
 | 
					 | 
				
			||||||
                            }
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    arrangeRawData.Add("@is_complete", 1);
 | 
					 | 
				
			||||||
                    arrangeRawData.Add("@repeat_times", 0);
 | 
					 | 
				
			||||||
                    arrangeRawData.Add("@fail_reason", null);
 | 
					 | 
				
			||||||
                    arrangeRawData.Add("@updated_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    arrangeRawDatas.Add(arrangeRawData);
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					 | 
				
			||||||
            return arrangeRawDatas;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user