Merge branch 'master' of https://github.com/shanghohui-Company/SolarPower
This commit is contained in:
commit
bcb2669957
@ -8,6 +8,7 @@ using SolarPower.Models.PowerStation;
|
|||||||
using SolarPower.Repository.Interface;
|
using SolarPower.Repository.Interface;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -870,40 +871,83 @@ namespace SolarPower.Quartz.Jobs
|
|||||||
|
|
||||||
#region 寄送日月報
|
#region 寄送日月報
|
||||||
var users = userRepository.GetAllAsync();
|
var users = userRepository.GetAllAsync();
|
||||||
|
var ttt = new List<string>() {
|
||||||
|
"s506488@gmail.com",
|
||||||
|
"cesarliuc@gmail.com"
|
||||||
|
};
|
||||||
|
|
||||||
foreach (var user in users.Result)
|
foreach (var user in users.Result)
|
||||||
{
|
{
|
||||||
List<OperationPersonnel> powerstations = new List<OperationPersonnel>();
|
try
|
||||||
powerstations = await noticeScheduleRepository.GetPowerStationOperationPersonnel(user.Id);
|
|
||||||
if (powerstations.Count == 0)
|
|
||||||
{
|
{
|
||||||
continue;
|
logger.LogInformation("【CalcAvgPowerStationJob】【開始產生使用者[{0}({1})]的日月報】", user.Account, user.Name);
|
||||||
}
|
|
||||||
List<Excelpowerstation> sentdaypowerstations = powerstations.Where(x => x.EmailDayReport == 1).Select(a => new Excelpowerstation { Name = a.Name, Value = a.PowerStationId.ToString() }).ToList();
|
|
||||||
List<Excelpowerstation> sentMaxpowerstations = powerstations.Where(x => x.EmailComplexReport == 1).Select(a => new Excelpowerstation { Name = a.Name, Value = a.PowerStationId.ToString() }).ToList();
|
|
||||||
|
|
||||||
Controllers.StationReportController stationReportController = new Controllers.StationReportController(powerStationRepository, stationReportRepository);
|
List<OperationPersonnel> powerstations = new List<OperationPersonnel>();
|
||||||
//日報表
|
powerstations = await noticeScheduleRepository.GetPowerStationOperationPersonnel(user.Id);
|
||||||
if (sentdaypowerstations.Count != 0)
|
if (powerstations.Count == 0)
|
||||||
{
|
|
||||||
Excel dayexcel = new Excel()
|
|
||||||
{
|
{
|
||||||
FormType = 0,
|
continue;
|
||||||
PowerStation = sentdaypowerstations,
|
}
|
||||||
SearchType = 0,
|
List<Excelpowerstation> sentdaypowerstations = powerstations.Where(x => x.EmailDayReport == 1).Select(a => new Excelpowerstation { Name = a.Name, Value = a.PowerStationId.ToString() }).ToList();
|
||||||
Time = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"),
|
List<Excelpowerstation> sentMaxpowerstations = powerstations.Where(x => x.EmailComplexReport == 1).Select(a => new Excelpowerstation { Name = a.Name, Value = a.PowerStationId.ToString() }).ToList();
|
||||||
Userid = user.Id
|
|
||||||
};
|
Controllers.StationReportController stationReportController = new Controllers.StationReportController(powerStationRepository, stationReportRepository);
|
||||||
var stationReportName = stationReportController.ExportExcelBackDownload(JsonConvert.SerializeObject(dayexcel, Formatting.Indented));
|
//日報表
|
||||||
if (stationReportName != "")
|
if (sentdaypowerstations.Count != 0)
|
||||||
{
|
{
|
||||||
NoticeSchedule DaySchedule = new NoticeSchedule()
|
Excel dayexcel = new Excel()
|
||||||
|
{
|
||||||
|
FormType = 0,
|
||||||
|
PowerStation = sentdaypowerstations,
|
||||||
|
SearchType = 0,
|
||||||
|
Time = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"),
|
||||||
|
Userid = user.Id
|
||||||
|
};
|
||||||
|
var stationReportName = stationReportController.ExportExcelBackDownload(JsonConvert.SerializeObject(dayexcel, Formatting.Indented));
|
||||||
|
if (stationReportName != "")
|
||||||
|
{
|
||||||
|
NoticeSchedule DaySchedule = new NoticeSchedule()
|
||||||
|
{
|
||||||
|
UserId = user.Id,
|
||||||
|
EmailType = 0,
|
||||||
|
RecipientEmail = user.Email,
|
||||||
|
Subject = "日報表",
|
||||||
|
Attachment = stationReportName,
|
||||||
|
RecipientName = user.Name,
|
||||||
|
Type = 1
|
||||||
|
};
|
||||||
|
List<string> properties = new List<string>()
|
||||||
|
{
|
||||||
|
"UserId",
|
||||||
|
"EmailType",
|
||||||
|
"RecipientEmail",
|
||||||
|
"Subject",
|
||||||
|
"Attachment",
|
||||||
|
"RecipientName",
|
||||||
|
"Type"
|
||||||
|
};
|
||||||
|
await noticeScheduleRepository.AddOneAsync(DaySchedule, properties);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//綜合報表 每日
|
||||||
|
if (sentMaxpowerstations.Count != 0)
|
||||||
|
{
|
||||||
|
Select_table2 maxdayexcel = new Select_table2()
|
||||||
|
{
|
||||||
|
FormType = 0,
|
||||||
|
PowerStation = sentMaxpowerstations,
|
||||||
|
SearchType = 0,
|
||||||
|
Time = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"),
|
||||||
|
Userid = user.Id
|
||||||
|
};
|
||||||
|
var stationMaxReportName = stationReportController.ExportExcelmaxtableBackDownload(JsonConvert.SerializeObject(maxdayexcel, Formatting.Indented));
|
||||||
|
NoticeSchedule MaxSchedule = new NoticeSchedule()
|
||||||
{
|
{
|
||||||
UserId = user.Id,
|
UserId = user.Id,
|
||||||
EmailType = 0,
|
EmailType = 2,
|
||||||
RecipientEmail = user.Email,
|
RecipientEmail = user.Email,
|
||||||
Subject = "日報表",
|
Subject = "綜合報表",
|
||||||
Attachment = stationReportName,
|
Attachment = stationMaxReportName,
|
||||||
RecipientName = user.Name,
|
RecipientName = user.Name,
|
||||||
Type = 1
|
Type = 1
|
||||||
};
|
};
|
||||||
@ -917,120 +961,100 @@ namespace SolarPower.Quartz.Jobs
|
|||||||
"RecipientName",
|
"RecipientName",
|
||||||
"Type"
|
"Type"
|
||||||
};
|
};
|
||||||
await noticeScheduleRepository.AddOneAsync(DaySchedule, properties);
|
await noticeScheduleRepository.AddOneAsync(MaxSchedule, properties);
|
||||||
|
|
||||||
|
if (DateTime.Now.ToString("dd") == "01")
|
||||||
|
{
|
||||||
|
Select_table2 maxmonthexcel = new Select_table2()
|
||||||
|
{
|
||||||
|
FormType = 0,
|
||||||
|
PowerStation = sentMaxpowerstations,
|
||||||
|
SearchType = 0,
|
||||||
|
Time = DateTime.Now.AddDays(-1).ToString("yyyy-MM"),
|
||||||
|
Userid = user.Id
|
||||||
|
};
|
||||||
|
var stationReportmaxmonthName = stationReportController.ExportExcelBackDownload(JsonConvert.SerializeObject(maxmonthexcel, Formatting.Indented));
|
||||||
|
NoticeSchedule MaxmonthSchedule = new NoticeSchedule()
|
||||||
|
{
|
||||||
|
RecipientEmail = user.Email,
|
||||||
|
Subject = "綜合報表",
|
||||||
|
Attachment = stationReportmaxmonthName,
|
||||||
|
RecipientName = user.Name,
|
||||||
|
Type = 1,
|
||||||
|
UserId = user.Id,
|
||||||
|
EmailType = 2
|
||||||
|
};
|
||||||
|
List<string> properties2 = new List<string>()
|
||||||
|
{
|
||||||
|
"UserId",
|
||||||
|
"EmailType",
|
||||||
|
"RecipientEmail",
|
||||||
|
"Subject",
|
||||||
|
"Attachment",
|
||||||
|
"RecipientName",
|
||||||
|
"Type"
|
||||||
|
};
|
||||||
|
await noticeScheduleRepository.AddOneAsync(MaxmonthSchedule, properties2);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
//綜合報表 每日
|
|
||||||
if (sentMaxpowerstations.Count != 0)
|
|
||||||
{
|
|
||||||
Select_table2 maxdayexcel = new Select_table2()
|
|
||||||
{
|
|
||||||
FormType = 0,
|
|
||||||
PowerStation = sentMaxpowerstations,
|
|
||||||
SearchType = 0,
|
|
||||||
Time = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"),
|
|
||||||
Userid = user.Id
|
|
||||||
};
|
|
||||||
var stationMaxReportName = stationReportController.ExportExcelmaxtableBackDownload(JsonConvert.SerializeObject(maxdayexcel, Formatting.Indented));
|
|
||||||
NoticeSchedule MaxSchedule = new NoticeSchedule()
|
|
||||||
{
|
|
||||||
UserId = user.Id,
|
|
||||||
EmailType = 2,
|
|
||||||
RecipientEmail = user.Email,
|
|
||||||
Subject = "綜合報表",
|
|
||||||
Attachment = stationMaxReportName,
|
|
||||||
RecipientName = user.Name,
|
|
||||||
Type = 1
|
|
||||||
};
|
|
||||||
List<string> properties = new List<string>()
|
|
||||||
{
|
|
||||||
"UserId",
|
|
||||||
"EmailType",
|
|
||||||
"RecipientEmail",
|
|
||||||
"Subject",
|
|
||||||
"Attachment",
|
|
||||||
"RecipientName",
|
|
||||||
"Type"
|
|
||||||
};
|
|
||||||
await noticeScheduleRepository.AddOneAsync(MaxSchedule, properties);
|
|
||||||
|
|
||||||
if (DateTime.Now.ToString("dd") == "01")
|
if (DateTime.Now.ToString("dd") == "01")
|
||||||
{
|
{
|
||||||
Select_table2 maxmonthexcel = new Select_table2()
|
List<Excelpowerstation> sentmonthpowerstations = powerstations.Where(x => x.EmailMonthReport == 1).Select(a => new Excelpowerstation { Name = a.Name, Value = a.PowerStationId.ToString() }).ToList();
|
||||||
|
if (sentmonthpowerstations.Count == 0)
|
||||||
{
|
{
|
||||||
FormType = 0,
|
break;
|
||||||
PowerStation = sentMaxpowerstations,
|
}
|
||||||
SearchType = 0,
|
Excel monthexcel = new Excel()
|
||||||
|
{
|
||||||
|
FormType = 1,
|
||||||
|
PowerStation = sentmonthpowerstations,
|
||||||
|
SearchType = 2,
|
||||||
Time = DateTime.Now.AddDays(-1).ToString("yyyy-MM"),
|
Time = DateTime.Now.AddDays(-1).ToString("yyyy-MM"),
|
||||||
Userid = user.Id
|
Userid = user.Id
|
||||||
};
|
};
|
||||||
var stationReportmaxmonthName = stationReportController.ExportExcelBackDownload(JsonConvert.SerializeObject(maxmonthexcel, Formatting.Indented));
|
var stationReportmonthName = stationReportController.ExportExcelBackDownload(JsonConvert.SerializeObject(monthexcel, Formatting.Indented));
|
||||||
NoticeSchedule MaxmonthSchedule = new NoticeSchedule()
|
if (stationReportmonthName != "")
|
||||||
{
|
{
|
||||||
RecipientEmail = user.Email,
|
NoticeSchedule MonthSchedule = new NoticeSchedule()
|
||||||
Subject = "綜合報表",
|
{
|
||||||
Attachment = stationReportmaxmonthName,
|
RecipientEmail = user.Email,
|
||||||
RecipientName = user.Name,
|
Subject = "月報表",
|
||||||
Type = 1,
|
Attachment = stationReportmonthName,
|
||||||
UserId = user.Id,
|
RecipientName = user.Name,
|
||||||
EmailType = 2
|
Type = 1,
|
||||||
};
|
UserId = user.Id,
|
||||||
List<string> properties2 = new List<string>()
|
EmailType = 1
|
||||||
{
|
};
|
||||||
"UserId",
|
List<string> properties2 = new List<string>()
|
||||||
"EmailType",
|
{
|
||||||
"RecipientEmail",
|
"UserId",
|
||||||
"Subject",
|
"EmailType",
|
||||||
"Attachment",
|
"RecipientEmail",
|
||||||
"RecipientName",
|
"Subject",
|
||||||
"Type"
|
"Attachment",
|
||||||
};
|
"RecipientName",
|
||||||
await noticeScheduleRepository.AddOneAsync(MaxmonthSchedule, properties2);
|
"Type"
|
||||||
|
};
|
||||||
|
await noticeScheduleRepository.AddOneAsync(MonthSchedule, properties2);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logger.LogInformation("【CalcAvgPowerStationJob】【產生完成使用者[{0}({1})]的日月報】", user.Account, user.Name);
|
||||||
}
|
}
|
||||||
|
catch (Exception exception)
|
||||||
if (DateTime.Now.ToString("dd") == "01")
|
|
||||||
{
|
{
|
||||||
List<Excelpowerstation> sentmonthpowerstations = powerstations.Where(x => x.EmailMonthReport == 1).Select(a => new Excelpowerstation { Name = a.Name, Value = a.PowerStationId.ToString() }).ToList();
|
logger.LogError("【CalcAvgPowerStationJob】【產生失敗使用者[{0}({1})]的日月報】", user.Account, user.Name);
|
||||||
if (sentmonthpowerstations.Count == 0)
|
logger.LogError("【CalcAvgPowerStationJob】[Exception] - {0}", exception.Message);
|
||||||
|
if (exception.InnerException != null)
|
||||||
{
|
{
|
||||||
break;
|
logger.LogError("【CalcAvgPowerStationJob】[InnerException] - {0}", exception.InnerException.Message);
|
||||||
}
|
|
||||||
Excel monthexcel = new Excel()
|
|
||||||
{
|
|
||||||
FormType = 1,
|
|
||||||
PowerStation = sentmonthpowerstations,
|
|
||||||
SearchType = 2,
|
|
||||||
Time = DateTime.Now.AddDays(-1).ToString("yyyy-MM"),
|
|
||||||
Userid = user.Id
|
|
||||||
};
|
|
||||||
var stationReportmonthName = stationReportController.ExportExcelBackDownload(JsonConvert.SerializeObject(monthexcel, Formatting.Indented));
|
|
||||||
if (stationReportmonthName != "")
|
|
||||||
{
|
|
||||||
NoticeSchedule MonthSchedule = new NoticeSchedule()
|
|
||||||
{
|
|
||||||
RecipientEmail = user.Email,
|
|
||||||
Subject = "月報表",
|
|
||||||
Attachment = stationReportmonthName,
|
|
||||||
RecipientName = user.Name,
|
|
||||||
Type = 1,
|
|
||||||
UserId = user.Id,
|
|
||||||
EmailType = 1
|
|
||||||
};
|
|
||||||
List<string> properties2 = new List<string>()
|
|
||||||
{
|
|
||||||
"UserId",
|
|
||||||
"EmailType",
|
|
||||||
"RecipientEmail",
|
|
||||||
"Subject",
|
|
||||||
"Attachment",
|
|
||||||
"RecipientName",
|
|
||||||
"Type"
|
|
||||||
};
|
|
||||||
await noticeScheduleRepository.AddOneAsync(MonthSchedule, properties2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var line = new StackTrace(exception, true).GetFrame(0).GetFileLineNumber();
|
||||||
|
logger.LogError("【CalcAvgPowerStationJob】[錯誤行數] - {0}", line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -2744,9 +2744,15 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$("#Invertercard-Name").html(rel.data.name);
|
$("#Invertercard-Name").html(rel.data.name);
|
||||||
$("#Invertercard-kwh").html(rel.data.kwh);
|
$("#Invertercard-kwh").html(rel.data.kwh.toFixed(2));
|
||||||
$("#Invertercard-money").html(rel.data.today_Money.toFixed());
|
@if (ViewBag.myUser.Role.Auths.Contains("ShowMoney"))
|
||||||
$("#Invertercard-pr").html(rel.data.today_PR);
|
{
|
||||||
|
<text>
|
||||||
|
$("#Invertercard-money").html(rel.data.today_Money.toFixed());
|
||||||
|
</text>
|
||||||
|
}
|
||||||
|
$("#Invertercard-Capacity").html(rel.data.generatingCapacity.toFixed(3));
|
||||||
|
$("#Invertercard-pr").html(rel.data.today_PR.toFixed(2));
|
||||||
var str = "<div class='progress progress-sm ' id='prbar'>" +
|
var str = "<div class='progress progress-sm ' id='prbar'>" +
|
||||||
"<div class='progress-bar bg-info' role = 'progressbar' style = 'width: " + rel.data.today_PR + "%;' aria - valuenow='" + rel.data.today_PR + "' aria - valuemin='0' aria - valuemax='100' ></div > </div >"
|
"<div class='progress-bar bg-info' role = 'progressbar' style = 'width: " + rel.data.today_PR + "%;' aria - valuenow='" + rel.data.today_PR + "' aria - valuemin='0' aria - valuemax='100' ></div > </div >"
|
||||||
$('#prbar').remove();
|
$('#prbar').remove();
|
||||||
@ -2764,9 +2770,9 @@
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$("#Invertercard-type").html(TypeName);
|
$("#Invertercard-type").html(TypeName);
|
||||||
var time = new Date(rel.data.createdAt);
|
@*var time = new Date(rel.data.createdAt);
|
||||||
$("#Invertercard-date").html(time.getMonth() + "/" + time.getDate() + " " + time.getHours() + ":" + time.getMinutes());
|
$("#Invertercard-date").html(time.getMonth() + "/" + time.getDate() + " " + time.getHours() + ":" + time.getMinutes());*@
|
||||||
|
$("#Invertercard-date").html(rel.data.electricityMeterAt);
|
||||||
|
|
||||||
var urlPath = "../upload/power_station/" + rel.data.id + "/" + rel.data.mainDisplay;
|
var urlPath = "../upload/power_station/" + rel.data.id + "/" + rel.data.mainDisplay;
|
||||||
var xmlhttp;
|
var xmlhttp;
|
||||||
|
|||||||
@ -6,25 +6,43 @@
|
|||||||
<div class="card border m-auto m-lg-0" id="Invertercard">
|
<div class="card border m-auto m-lg-0" id="Invertercard">
|
||||||
<div> <img src="img/card-backgrounds/cover-3-lg.png" class="card-img-top" alt="..."> </div>
|
<div> <img src="img/card-backgrounds/cover-3-lg.png" class="card-img-top" alt="..."> </div>
|
||||||
<div class="card-body d-flex justify-content-between pb-0 px-2">
|
<div class="card-body d-flex justify-content-between pb-0 px-2">
|
||||||
<h4 class="font-weight-bold" style="line-height: 27px;" id="Invertercard-Name"> <a href="javascript:void(0);" class="btn btn-success btn-sm btn-icon rounded-circle waves-effect waves-themed"> <i class="fal fa-check"></i> </a> 新竹巨城站</h4>
|
<h4 class="font-weight-bold" style="line-height: 27px;" id="Invertercard-Name">新竹巨城站</h4>
|
||||||
<p class="card-text"><i class="fal fa-cloud-sun-rain fa-2x" id="Invertercard-weathericon"></i></p>
|
<div class="d-flex">
|
||||||
|
<p id="Temp" class="mr-2">27°C</p><i class="fal fa-cloud-sun-rain fa-2x" id="weathericon"></i>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="list-group list-group-flush">
|
<div class="list-group list-group-flush">
|
||||||
<div class="list-group-item px-2">
|
<div class="list-group-item px-2">
|
||||||
<div class=" d-flex justify-content-between">
|
<div class=" d-flex justify-content-between">
|
||||||
<p>發電量</p>
|
<div class="d-flex justify-content-between" style="width:60%">
|
||||||
<p><span class="color-info-700 font-weight-bold" id="Invertercard-kwh">185</span> kWh</p>
|
<p>發電量</p>
|
||||||
<p id="Invertercard-Temp">27°C</p>
|
<p><span class="color-info-700 font-weight-bold" id="Invertercard-kwh">0.00</span> kWh</p>
|
||||||
|
</div>
|
||||||
|
@if (ViewBag.myUser.Role.Auths.Contains("ShowMoney"))
|
||||||
|
{
|
||||||
|
<div class="d-flex justify-content-end" style="width:40%">
|
||||||
|
@*<p>發電金額</p>*@
|
||||||
|
<p><span class="color-info-700 font-weight-bold" id="Invertercard-money">0</span> NT</p>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class=" d-flex justify-content-between">
|
<div class=" d-flex justify-content-between">
|
||||||
<p>發電金額</p>
|
<div class="d-flex justify-content-between" style="width:60%">
|
||||||
<p><span class="color-info-700 font-weight-bold" id="Invertercard-money">2,5840</span> NT</p>
|
<p>裝置容量</p>
|
||||||
<p class="color-info-700 font-weight-bold" id="Invertercard-type">自建躉售</p>
|
<p><span class="color-info-700 font-weight-bold" id="Invertercard-Capacity">0.00</span> kWp</p>
|
||||||
|
</div>
|
||||||
|
<div class="d-flex justify-content-end" style="width:40%">
|
||||||
|
<p><span class="color-info-700 font-weight-bold" id="Invertercard-type">自建躉售</span></p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class=" d-flex justify-content-between">
|
<div class=" d-flex justify-content-between">
|
||||||
<p>PR值</p>
|
<div class="d-flex justify-content-between" style="width:60%">
|
||||||
<p><span class="color-info-700 font-weight-bold" id="Invertercard-pr">90</span> %</p>
|
<p>PR值</p>
|
||||||
<p class="small" id="Invertercard-date">17:50:36</p>
|
<p><span class="color-info-700 font-weight-bold" id="Invertercard-pr">0</span> %</p>
|
||||||
|
</div>
|
||||||
|
<div class="d-flex justify-content-end" style="width:40%">
|
||||||
|
<p class="small" id="Invertercard-date">06-30 17:50</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -32,7 +50,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ul id="ullist">
|
<ul id="ullist">
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user