Browse Source

1.修改生产看板增加异常工时按月,日呈现数据

PTD
Marvin 2 years ago
parent
commit
c9dca73098
  1. 368
      AMESCoreStudio.Web/Controllers/RPTController.cs
  2. 14
      AMESCoreStudio.Web/HttpApis/AMES/IRPT.cs
  3. 2
      AMESCoreStudio.Web/Views/RPT/RPT001.cshtml
  4. 114
      AMESCoreStudio.Web/Views/RPT/RPT001C.cshtml
  5. 163
      AMESCoreStudio.Web/Views/RPT/RPT001D.cshtml
  6. 62
      AMESCoreStudio.WebApi/Controllers/AMES/ExceptionWorktimesController.cs

368
AMESCoreStudio.Web/Controllers/RPTController.cs

@ -197,6 +197,66 @@ namespace AMESCoreStudio.Web.Controllers
return View(); return View();
} }
public async Task<IActionResult> RPT001C(string id)
{
ViewData["ParamList"] = id;
string[] param = id.Split("_");
string type = param[0];
string data = param[1];
string title = "";
switch (type)
{
case "11":
title = data.Substring(0, 4) + "異常工時";
break;
}
ViewBag.Title = title;
string MonthDataList = "<table border='1' cellpadding='2'><tr class='TR_Item_Sstyle'><td>月份</td><td>01</td><td >02</td><td>03</td><td>04</td><td>05</td><td>06</td><td>07</td><td>08</td><td>09</td><td>10</td><td>11</td><td>12</td></tr><tr><td class='TD_Data_Sstyle'>數值</td>";
for (int m = 1; m <= 12; m++)
{
var Data = DateTime.Parse(data.Substring(0, 4) + "/" + m.ToString().PadLeft(2, '0'));
var sDate = new DateTime(Data.Year, Data.Month, 1).ToString("yyyy/MM/dd");
var eDate = new DateTime(Data.Year, Data.Month, DateTime.DaysInMonth(Data.Year, Data.Month)).ToString("yyyy/MM/dd");
var pi = await _rptApi.GetExceptionWorktime4RPT001(sDate, eDate);
if (pi.DataTotal > 0)
{
double sum_time = 0.00;
double sum_hour = 0.00;
foreach (var item in pi.Data)
{
JObject jo = JObject.Parse(item.ToString());
double time = 0.00;
time = double.Parse(jo["time"].ToString());
sum_time = sum_time + time;
}
if (sum_time > 0)
{
sum_hour = sum_time / 60.0;
}
MonthDataList = MonthDataList + "<td class='TD_Data_Rate_Sstyle'>" + "<a href =\"javascript:hg.open('按日期統計資料','/RPT/RPT001D/" + type + "_" + Data.ToString("yyyyMM") + "',800,720);\">" + sum_hour.ToString("0.00") + "</a></td>";
}
else
{
MonthDataList = MonthDataList + "<td class='TD_Data_Rate_Sstyle'>0.00</td>";
}
}
MonthDataList = MonthDataList + "</tr></table>";
ViewData["MonthDataList"] = MonthDataList;
return View();
}
[HttpPost] [HttpPost]
public async Task<JsonResult> GetMonthData4RPT001AAsync(string id) public async Task<JsonResult> GetMonthData4RPT001AAsync(string id)
{ {
@ -318,6 +378,65 @@ namespace AMESCoreStudio.Web.Controllers
return Json(query.Datas); return Json(query.Datas);
} }
[HttpPost]
public async Task<JsonResult> GetMonthData4RPT001CAsync(string id)
{
string[] param = id.Split("_");
string type = param[0];
string data = param[1];
string title = "";
switch (type)
{
case "11":
title = data.Substring(0, 4) + "異常工時";
break;
}
ViewBag.Title = title;
ViewBag.Title2 = data.Substring(0, 4);
var query = new RPT001AViewModel();
for (int m = 1; m <= 12; m++)
{
var Data = DateTime.Parse(data.Substring(0, 4) + "/" + m.ToString().PadLeft(2, '0'));
var sDate = new DateTime(Data.Year, Data.Month, 1).ToString("yyyy/MM/dd");
var eDate = new DateTime(Data.Year, Data.Month, DateTime.DaysInMonth(Data.Year, Data.Month)).ToString("yyyy/MM/dd");
var pi = await _rptApi.GetExceptionWorktime4RPT001(sDate, eDate);
if (pi.DataTotal > 0)
{
double sum_time = 0.00;
foreach (var item in pi.Data)
{
JObject jo = JObject.Parse(item.ToString());
double time = 0.00;
time = double.Parse(jo["time"].ToString());
sum_time = sum_time + time;
}
query.Datas.Add(new MonthGroup
{
Month = Data.ToString("yyyyMM"),
Yield = double.Parse(sum_time.ToString("0.00"))
});
}
else
{
query.Datas.Add(new MonthGroup
{
Month = Data.ToString("yyyyMM"),
Yield = 0.00
});
}
}
return Json(query.Datas);
}
[HttpPost] [HttpPost]
public async Task<JsonResult> GetDayData4RPT001BAsync(string id) public async Task<JsonResult> GetDayData4RPT001BAsync(string id)
{ {
@ -362,7 +481,7 @@ namespace AMESCoreStudio.Web.Controllers
switch (type) switch (type)
{ {
case "01": case "01":
fieldName = "productionDate"; fieldName = "productivity";
break; break;
case "02": case "02":
fieldName = "efficiency"; fieldName = "efficiency";
@ -397,6 +516,103 @@ namespace AMESCoreStudio.Web.Controllers
return Json(query.Datas); return Json(query.Datas);
} }
[HttpPost]
public async Task<JsonResult> GetExceptionTime4RPT001DAsync(string id)
{
string[] param = id.Split("_");
string type = param[0];
string data = param[1];
string title = "";
ViewBag.Title = title;
ViewBag.Title2 = data;
switch (type)
{
case "11":
title = data + "異常代碼統計";
break;
}
var Data = DateTime.Parse(data.Substring(0, 4) + "/" + data.Substring(4));
var sDate = new DateTime(Data.Year, Data.Month, 1).ToString("yyyy/MM/dd");
var eDate = new DateTime(Data.Year, Data.Month, DateTime.DaysInMonth(Data.Year, Data.Month)).ToString("yyyy/MM/dd");
var result = await _rptApi.GetExceptionWorktime4RPT001D(sDate, eDate);
return Json(result.Data);
//return Json(new { data = result.Data });
}
[HttpPost]
public async Task<JsonResult> GetDayData4RPT001DAsync(string id)
{
string[] param = id.Split("_");
string type = param[0];
string data = param[1];
string title = "";
switch (type)
{
case "11":
title = data + "異常工時";
break;
}
ViewBag.Title = title;
ViewBag.Title2 = data;
var query = new RPT001BViewModel();
var Data = DateTime.Parse(data.Substring(0, 4) + "/" + data.Substring(4));
var sDate = new DateTime(Data.Year, Data.Month, 1).ToString("yyyy/MM/dd");
var eDate = new DateTime(Data.Year, Data.Month, DateTime.DaysInMonth(Data.Year, Data.Month)).ToString("yyyy/MM/dd");
var pi = await _rptApi.GetExceptionWorktime4RPT001(sDate, eDate);
string fieldName = "time";
DataTable dt = new DataTable();
dt.Columns.Add("Day");
dt.Columns.Add("Time");
dt.PrimaryKey = new DataColumn[] { dt.Columns[0] };
dt.AcceptChanges();
foreach (var item in pi.Data)
{
JObject jo = JObject.Parse(item.ToString());
DateTime date = DateTime.Parse(jo["exceptionDate"].ToString());
DataRow dr = dt.NewRow();
dr[0] = date.ToString("yyyyMMdd");
dr[1] = double.Parse(jo[fieldName].ToString());
try
{
dt.Rows.Add(dr);
dt.AcceptChanges();
}
catch
{
DataRow drFind = dt.Rows.Find(date.ToString("yyyyMMdd"));
drFind[1] = double.Parse(drFind[1].ToString()) + double.Parse(jo[fieldName].ToString());
dt.AcceptChanges();
}
}
for (int i = 0; i < dt.Rows.Count; i++)
{
query.Datas.Add(new DayGroup
{
Day = dt.Rows[i]["Day"].ToString(),
Yield = double.Parse(dt.Rows[i]["Time"].ToString())
});
}
return Json(query.Datas);
}
public async Task<IActionResult> RPT001B(string id) public async Task<IActionResult> RPT001B(string id)
{ {
ViewData["ParamList"] = id; ViewData["ParamList"] = id;
@ -443,7 +659,7 @@ namespace AMESCoreStudio.Web.Controllers
switch (type) switch (type)
{ {
case "01": case "01":
fieldName = "productionDate"; fieldName = "productivity";
break; break;
case "02": case "02":
@ -581,5 +797,153 @@ namespace AMESCoreStudio.Web.Controllers
return View(); return View();
} }
public async Task<IActionResult> RPT001D(string id)
{
ViewData["ParamList"] = id;
string[] param = id.Split("_");
string type = param[0];
string data = param[1];
string title = "";
switch (type)
{
case "11":
title = data + "異常工時";
break;
}
ViewBag.Title = title;
var Data = DateTime.Parse(data.Substring(0, 4) + "/" + data.Substring(4));
var sDate = new DateTime(Data.Year, Data.Month, 1).ToString("yyyy/MM/dd");
var eDate = new DateTime(Data.Year, Data.Month, DateTime.DaysInMonth(Data.Year, Data.Month)).ToString("yyyy/MM/dd");
var pi = await _rptApi.GetExceptionWorktime4RPT001(sDate, eDate);
double day01 = 0.00, day02 = 0.00, day03 = 0.00, day04 = 0.00, day05 = 0.00, day06 = 0.00, day07 = 0.00, day08 = 0.00, day09 = 0.00, day10 = 0.00;
double day11 = 0.00, day12 = 0.00, day13 = 0.00, day14 = 0.00, day15 = 0.00, day16 = 0.00, day17 = 0.00, day18 = 0.00, day19 = 0.00, day20 = 0.00;
double day21 = 0.00, day22 = 0.00, day23 = 0.00, day24 = 0.00, day25 = 0.00, day26 = 0.00, day27 = 0.00, day28 = 0.00, day29 = 0.00, day30 = 0.00;
double day31 = 0.00;
string fieldName = "time";
foreach (var item in pi.Data)
{
JObject jo = JObject.Parse(item.ToString());
DateTime date = DateTime.Parse(jo["exceptionDate"].ToString());
switch (date.Day)
{
case 1:
day01 = day01 + double.Parse(jo[fieldName].ToString());
break;
case 2:
day02 = day02 + double.Parse(jo[fieldName].ToString());
break;
case 3:
day03 = day03 + double.Parse(jo[fieldName].ToString());
break;
case 4:
day04 = day04 + double.Parse(jo[fieldName].ToString());
break;
case 5:
day05 = day05 + double.Parse(jo[fieldName].ToString());
break;
case 6:
day06 = day06 + double.Parse(jo[fieldName].ToString());
break;
case 7:
day07 = day07 + double.Parse(jo[fieldName].ToString());
break;
case 8:
day08 = day08 + double.Parse(jo[fieldName].ToString());
break;
case 9:
day09 = day09 + double.Parse(jo[fieldName].ToString());
break;
case 10:
day10 = day10 + double.Parse(jo[fieldName].ToString());
break;
case 11:
day11 = day11 + double.Parse(jo[fieldName].ToString());
break;
case 12:
day12 = day12 + double.Parse(jo[fieldName].ToString());
break;
case 13:
day13 = day13 + double.Parse(jo[fieldName].ToString());
break;
case 14:
day14 = day14 + double.Parse(jo[fieldName].ToString());
break;
case 15:
day15 = day15 + double.Parse(jo[fieldName].ToString());
break;
case 16:
day16 = day16 + double.Parse(jo[fieldName].ToString());
break;
case 17:
day17 = day17 + double.Parse(jo[fieldName].ToString());
break;
case 18:
day18 = day18 + double.Parse(jo[fieldName].ToString());
break;
case 19:
day19 = day19 + double.Parse(jo[fieldName].ToString());
break;
case 20:
day20 = day20 + double.Parse(jo[fieldName].ToString());
break;
case 21:
day21 = day21 + double.Parse(jo[fieldName].ToString());
break;
case 22:
day22 = day22 + double.Parse(jo[fieldName].ToString());
break;
case 23:
day23 = day23 + double.Parse(jo[fieldName].ToString());
break;
case 24:
day24 = day24 + double.Parse(jo[fieldName].ToString());
break;
case 25:
day25 = day25 + double.Parse(jo[fieldName].ToString());
break;
case 26:
day26 = day26 + double.Parse(jo[fieldName].ToString());
break;
case 27:
day27 = day27 + double.Parse(jo[fieldName].ToString());
break;
case 28:
day28 = day28 + double.Parse(jo[fieldName].ToString());
break;
case 29:
day29 = day29 + double.Parse(jo[fieldName].ToString());
break;
case 30:
day30 = day30 + double.Parse(jo[fieldName].ToString());
break;
case 31:
day31 = day31 + double.Parse(jo[fieldName].ToString());
break;
}
}
string DayDataList = "<table border='1' cellpadding='2'>";
DayDataList = DayDataList + "<tr class='TR_Item_Sstyle'><td>日期</td><td>01</td><td>02</td><td>03</td><td>04</td><td>05</td><td>06</td><td>07</td><td>08</td><td>09</td><td>10</td></tr>";
DayDataList = DayDataList + "<tr><td class='TD_Data_Sstyle'>數值</td><td class='TD_Data_Rate_Sstyle''>" + day01 + "</td><td class='TD_Data_Rate_Sstyle''>" + day02 + "</td><td class='TD_Data_Rate_Sstyle''>" + day03 + "</td><td class='TD_Data_Rate_Sstyle''>" + day04 + "</td><td class='TD_Data_Rate_Sstyle''>" + day05 + "</td><td class='TD_Data_Rate_Sstyle''>" + day06 + "</td><td class='TD_Data_Rate_Sstyle''>" + day07 + "</td><td class='TD_Data_Rate_Sstyle''>" + day08 + "</td><td class='TD_Data_Rate_Sstyle''>" + day09 + "</td><td class='TD_Data_Rate_Sstyle''>" + day10 + "</td></tr>";
DayDataList = DayDataList + "<tr class='TR_Item_Sstyle'><td>日期</td><td>11</td><td>12</td><td>13</td><td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td></tr>";
DayDataList = DayDataList + "<tr><td class='TD_Data_Sstyle'>數值</td><td class='TD_Data_Rate_Sstyle''>" + day11 + "</td><td class='TD_Data_Rate_Sstyle''>" + day12 + "</td><td class='TD_Data_Rate_Sstyle''>" + day13 + "</td><td class='TD_Data_Rate_Sstyle''>" + day14 + "</td><td class='TD_Data_Rate_Sstyle''>" + day15 + "</td><td class='TD_Data_Rate_Sstyle''>" + day16 + "</td><td class='TD_Data_Rate_Sstyle''>" + day17 + "</td><td class='TD_Data_Rate_Sstyle''>" + day18 + "</td><td class='TD_Data_Rate_Sstyle''>" + day19 + "</td><td class='TD_Data_Rate_Sstyle''>" + day20 + "</td></tr>";
DayDataList = DayDataList + "<tr class='TR_Item_Sstyle'><td>日期</td><td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td><td>29</td><td>30</td></tr>";
DayDataList = DayDataList + "<tr><td class='TD_Data_Sstyle'>數值</td><td class='TD_Data_Rate_Sstyle''>" + day21 + "</td><td class='TD_Data_Rate_Sstyle''>" + day22 + "</td><td class='TD_Data_Rate_Sstyle''>" + day23 + "</td><td class='TD_Data_Rate_Sstyle''>" + day24 + "</td><td class='TD_Data_Rate_Sstyle''>" + day25 + "</td><td class='TD_Data_Rate_Sstyle''>" + day26 + "</td><td class='TD_Data_Rate_Sstyle''>" + day27 + "</td><td class='TD_Data_Rate_Sstyle''>" + day28 + "</td><td class='TD_Data_Rate_Sstyle''>" + day29 + "</td><td class='TD_Data_Rate_Sstyle''>" + day30 + "</td></tr>";
DayDataList = DayDataList + "<tr class='TR_Item_Sstyle'><td>日期</td><td>31</td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>";
DayDataList = DayDataList + "<tr><td class='TD_Data_Sstyle'>數值</td><td class='TD_Data_Rate_Sstyle''>" + day31 + "</td><td class='TD_Data_Rate_Sstyle''>" + "" + "</td><td class='TD_Data_Rate_Sstyle''>" + "" + "</td><td class='TD_Data_Rate_Sstyle''>" + "" + "</td><td class='TD_Data_Rate_Sstyle''>" + "" + "</td><td class='TD_Data_Rate_Sstyle''>" + "" + "</td><td class='TD_Data_Rate_Sstyle''>" + "" + "</td><td class='TD_Data_Rate_Sstyle''>" + "" + "</td><td class='TD_Data_Rate_Sstyle''>" + "" + "</td><td class='TD_Data_Rate_Sstyle''>" + "" + "</td></tr>";
DayDataList = DayDataList + "</table>";
ViewData["DayDataList"] = DayDataList;
return View();
}
} }
} }

14
AMESCoreStudio.Web/HttpApis/AMES/IRPT.cs

@ -33,5 +33,19 @@ namespace AMESCoreStudio.Web
/// <returns></returns> /// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/ProductionIndexes/GetProductionIndex4RPT001")] [WebApiClient.Attributes.HttpGet("api/ProductionIndexes/GetProductionIndex4RPT001")]
ITask<ResultModel<dynamic>> GetProductionIndex4RPT001(string sdate, string edate); ITask<ResultModel<dynamic>> GetProductionIndex4RPT001(string sdate, string edate);
/// <summary>
/// 生產看板-異常工時
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/ExceptionWorktimes/GetExceptionWorktime4RPT001")]
ITask<ResultModel<dynamic>> GetExceptionWorktime4RPT001(string sdate, string edate);
/// <summary>
/// 生產看板-異常工時代碼統計
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/ExceptionWorktimes/GetExceptionWorktime4RPT001D")]
ITask<ResultModel<dynamic>> GetExceptionWorktime4RPT001D(string sdate, string edate);
} }
} }

2
AMESCoreStudio.Web/Views/RPT/RPT001.cshtml

@ -207,7 +207,7 @@
</div> </div>
</div> </div>
<div class="layui-col-md4"> <div class="layui-col-md4">
<div class="layui-col-md12 spanDetailTitleClass ColTitle">異常工時</div> <div class="layui-col-md12 spanDetailTitleClass ColTitle"><a style="color:white" href="javascript:hg.open('按月份統計資料','/RPT/RPT001C/11_@ViewBag.QueryDate2',900,810)">異常工時</a></div>
<div class="layui-col-md12 spanDetailNumberClass" style="color: #92D050"> <div class="layui-col-md12 spanDetailNumberClass" style="color: #92D050">
@Model.abnormalTime @Model.abnormalTime
<p class="spanUnitClass">H</p> <p class="spanUnitClass">H</p>

114
AMESCoreStudio.Web/Views/RPT/RPT001C.cshtml

@ -0,0 +1,114 @@
@{
Layout = "~/Views/Shared/_AMESLayout.cshtml";
}
<style>
.TR_Item_Sstyle {
width: 60px;
text-align: center;
font-weight: bold;
color: #FFFFF2;
background-color: #2B2B2B;
}
.TD_Data_Sstyle {
width: 60px;
text-align: center;
font-weight: bold;
}
.TD_Data_Rate_Sstyle {
width: 60px;
text-align: right;
font-weight: bold;
padding: 5px 5px 5px 5px
}
</style>
<script src="~/Highcharts-7.1.2/highcharts.js"></script>
<script src="~/Highcharts-7.1.2/modules/exporting.js"></script>
<script src="~/Highcharts-7.1.2/modules/export-data.js"></script>
<div class="layui-card">
<div class="layui-card-header">
<div class="layui-form">
<div class="layui-form-item ">
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div>
</div>
</div>
</div>
<div class="layui-card-body">
<div id="divChart" style="width: 100%; height: 300px; margin: 0 auto"></div>
<input type="hidden" id="param_list" value="@ViewData["ParamList"]" />
@Html.Raw(ViewData["MonthDataList"])
</div>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial");
await Html.RenderPartialAsync("_FileinputScriptsPartial"); }
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "Post",
url: '/RPT/GetMonthData4RPT001C?id=' + param_list.value,
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (response) {
var idx = 0;
var xAxisData = new Array();
var yieldData = new Array();
$.each(response, function (i, item) {
yieldData[idx] = item["yield"];
xAxisData[idx] = item["month"];
idx = idx + 1;
});
Highcharts.chart('divChart', {
title: {
text: '@ViewBag.Title2'
},
subtitle: {
text: ''
},
xAxis: {
categories: xAxisData
},
yAxis: {
title: {
text: '@ViewBag.Title2'
}
},
plotOptions: {
line: {
dataLabels: {
enabled: true
},
enableMouseTracking: false
}
},
series: [{
type: 'column',
name: '月份',
data: yieldData
},
{
type: 'line',
name: '數值',
data: yieldData
}]
});
},
error: function () {
alert("查無資料!");
$("#divChart").empty();
}
});
});
</script>
}

163
AMESCoreStudio.Web/Views/RPT/RPT001D.cshtml

@ -0,0 +1,163 @@
@{
Layout = "~/Views/Shared/_AMESLayout.cshtml";
}
<style>
.TR_Item_Sstyle {
width: 60px;
text-align: center;
font-weight: bold;
color: #FFFFF2;
background-color: #2B2B2B;
}
.TD_Data_Sstyle {
width: 60px;
text-align: center;
font-weight: bold;
}
.TD_Data_Rate_Sstyle {
width: 60px;
text-align: right;
font-weight: bold;
padding: 5px 5px 5px 5px
}
</style>
<script src="~/Highcharts-7.1.2/highcharts.js"></script>
<script src="~/Highcharts-7.1.2/modules/exporting.js"></script>
<script src="~/Highcharts-7.1.2/modules/export-data.js"></script>
<div class="layui-card">
<div class="layui-card-header">
<div class="layui-form">
<div class="layui-form-item ">
<div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div>
</div>
</div>
</div>
<div class="layui-card-body">
<div id="pieChart" style="width: 100%; height: 300px; margin: 0 auto"></div>
<div id="divChart" style="width: 100%; height: 300px; margin: 0 auto"></div>
<input type="hidden" id="param_list" value="@ViewData["ParamList"]" />
@Html.Raw(ViewData["DayDataList"])
</div>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial");
await Html.RenderPartialAsync("_FileinputScriptsPartial"); }
<script type="text/javascript">
$(document).ready(function () {
$.ajax({
type: "Post",
url: '/RPT/GetExceptionTime4RPT001D?id=' + param_list.value,
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (response) {
var errorData = new Array();
var idx = 0;
$.each(response, function (i, item) {
errorData[idx] = new Array();
errorData[idx][0] = item["exceptionNo"];
errorData[idx][1] = item["exceptionTime"];
idx = idx + 1;
});
Highcharts.chart('pieChart', {
chart: {
type: 'pie'
},
title: {
text: '@ViewBag.Title2'
},
subtitle: {
text: ''
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
dataLabels: {
enabled: false
},
showInLegend: true
}
},
series: [{
type: 'pie',
name: '數值',
data: errorData
}]
});
},
error: function () {
alert("查無異常工時統計資料!");
$("#pieChart").empty();
}
});
$.ajax({
type: "Post",
url: '/RPT/GetDayData4RPT001D?id=' + param_list.value,
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (response) {
var idx = 0;
var xAxisData = new Array();
var yieldData = new Array();
$.each(response, function (i, item) {
yieldData[idx] = item["yield"];
xAxisData[idx] = item["day"];
idx = idx + 1;
});
Highcharts.chart('divChart', {
title: {
text: '@ViewBag.Title2'
},
subtitle: {
text: ''
},
xAxis: {
categories: xAxisData
},
yAxis: {
title: {
text: '@ViewBag.Title2'
}
},
plotOptions: {
line: {
dataLabels: {
enabled: true
},
enableMouseTracking: false
}
},
series: [{
type: 'column',
name: '日期',
data: yieldData
},
{
type: 'line',
name: '數值',
data: yieldData
}]
});
},
error: function () {
alert("查無資料!");
$("#divChart").empty();
}
});
});
</script>
}

62
AMESCoreStudio.WebApi/Controllers/AMES/ExceptionWorktimesController.cs

@ -395,6 +395,68 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
return result; return result;
} }
/// <summary>
///
/// </summary>
/// <param name="sdate"></param>
/// <param name="edate"></param>
/// <returns></returns>
[Route("[action]")]
[HttpGet]
public async Task<ResultModel<dynamic>> GetExceptionWorktime4RPT001D(string sdate, string edate)
{
ResultModel<dynamic> result = new ResultModel<dynamic>();
var q = from q1 in _context.ExceptionWorktimes
select new
{
q1.ExceptionID,
q1.ExceptionDate,
q1.ExceptionNo,
q1.Time
};
DateTime dateValue;
if (sdate != "*")
{
if (DateTime.TryParse(sdate, out dateValue))
{
q = q.Where(p => p.ExceptionDate >= DateTime.Parse(sdate));
}
}
if (edate != "*")
{
if (DateTime.TryParse(edate, out dateValue))
{
q = q.Where(p => p.ExceptionDate <= DateTime.Parse(edate));
}
}
var g = q.GroupBy(x => new { x.ExceptionNo }).Select(x => new
{
ExceptionNo = x.Key.ExceptionNo,
ExceptionTime = x.Sum(h => h.Time)
});
//紀錄筆數
result.DataTotal = g.Count();
result.Data = await g.ToListAsync();
if (result == null)
{
result.Msg = "查無資料";
result.Success = false;
return result;
}
result.Success = true;
result.Msg = "OK";
return result;
}
/// <summary> /// <summary>
/// 異常工時查詢QuerybyWHS009 /// 異常工時查詢QuerybyWHS009
/// </summary> /// </summary>

Loading…
Cancel
Save