Merge branch 'Willy'

This commit is contained in:
b110212000 2021-06-24 09:46:19 +08:00
commit 111e901aef
14 changed files with 403 additions and 91 deletions

1
.gitignore vendored
View File

@ -338,3 +338,4 @@ ASALocalRun/
# BeatPulse healthcheck temp database # BeatPulse healthcheck temp database
healthchecksdb healthchecksdb
/SolarPower/wwwroot/js/bower_components

View File

@ -179,14 +179,14 @@ namespace SolarPower.Controllers
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ActionResult> OperationPlanTable(List<int> id) public async Task<ActionResult> OperationPlanTable(List<int> id,int type)
{ {
List<OperationPlanTable> OperationPlanTable = new List<OperationPlanTable>(); List<OperationPlanTable> OperationPlanTable = new List<OperationPlanTable>();
ApiResult<List<OperationPlanTable>> apiResult = new ApiResult<List<OperationPlanTable>>(); ApiResult<List<OperationPlanTable>> apiResult = new ApiResult<List<OperationPlanTable>>();
try try
{ {
apiResult.Code = "0000"; apiResult.Code = "0000";
OperationPlanTable = await operationRepository.OperationPlanTable(id); OperationPlanTable = await operationRepository.OperationPlanTable(id,type);
foreach (OperationPlanTable a in OperationPlanTable) foreach (OperationPlanTable a in OperationPlanTable)
{ {
if(a.Type == 0) if(a.Type == 0)

View File

@ -936,12 +936,13 @@ namespace SolarPower.Controllers
{ {
ApiResult<string> apiResult = new ApiResult<string>(); ApiResult<string> apiResult = new ApiResult<string>();
try try
{
if (Device.Id == 0)
{ {
PowerStation powerStation = null; PowerStation powerStation = null;
powerStation = await powerStationRepository.GetOneAsync(Device.PowerStationId); powerStation = await powerStationRepository.GetOneAsync(Device.PowerStationId);
string Number = await powerStationRepository.GetFinalSerialNumber(Device.PowerStationId, Device.Type); if (Device.Id == 0)
{
string Number = await powerStationRepository.GetFinalSerialNumber(Device.PowerStationId, Device.Type,powerStation.SiteDB);
var tempSerialNumber = 0; var tempSerialNumber = 0;
if (!string.IsNullOrEmpty(Number)) if (!string.IsNullOrEmpty(Number))
{ {
@ -985,7 +986,7 @@ namespace SolarPower.Controllers
"TypeName", "TypeName",
"SerialNumber" "SerialNumber"
}; };
await powerStationRepository.AddDevice(DeviceInfo, properties); await powerStationRepository.AddDevice(DeviceInfo, properties, powerStation.SiteDB);
apiResult.Code = "0000"; apiResult.Code = "0000";
apiResult.Msg = "新增成功"; apiResult.Msg = "新增成功";
@ -1018,7 +1019,7 @@ namespace SolarPower.Controllers
"CreatedBy", "CreatedBy",
"TypeName" "TypeName"
}; };
await powerStationRepository.UpdateDevice(DeviceInfo, properties); await powerStationRepository.UpdateDevice(DeviceInfo, properties, powerStation.SiteDB);
apiResult.Code = "0000"; apiResult.Code = "0000";
apiResult.Msg = "儲存成功"; apiResult.Msg = "儲存成功";
} }
@ -1028,6 +1029,8 @@ namespace SolarPower.Controllers
{ {
apiResult.Code = "9999"; apiResult.Code = "9999";
apiResult.Msg = exception.ToString(); apiResult.Msg = exception.ToString();
Logger.LogError("【" + controllerName + "/" + actionName + "】" + "Device=" + Device);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
} }
return apiResult; return apiResult;
} }
@ -1042,8 +1045,10 @@ namespace SolarPower.Controllers
ApiResult<List<DeviceTable>> apiResult = new ApiResult<List<DeviceTable>>(); ApiResult<List<DeviceTable>> apiResult = new ApiResult<List<DeviceTable>>();
try try
{ {
PowerStation powerStation = null;
powerStation = await powerStationRepository.GetOneAsync(stationId);
apiResult.Code = "0000"; apiResult.Code = "0000";
deviceTables = await powerStationRepository.DeviceTable(stationId); deviceTables = await powerStationRepository.DeviceTable(stationId, powerStation.SiteDB);
foreach (DeviceTable a in deviceTables) foreach (DeviceTable a in deviceTables)
{ {
a.Function = @" a.Function = @"
@ -1056,6 +1061,8 @@ namespace SolarPower.Controllers
{ {
apiResult.Code = "9999"; apiResult.Code = "9999";
apiResult.Msg = exception.ToString(); apiResult.Msg = exception.ToString();
Logger.LogError("【" + controllerName + "/" + actionName + "】" + "stationId=" + stationId);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
} }
var result = Json(new var result = Json(new
{ {
@ -1112,20 +1119,24 @@ namespace SolarPower.Controllers
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ApiResult<DeviceInfo>> GetOneDevice(int id) public async Task<ApiResult<DeviceInfo>> GetOneDevice(PostPowerStationIdAndSelectedId id)
{ {
DeviceInfo Device = new DeviceInfo(); DeviceInfo Device = new DeviceInfo();
ApiResult<DeviceInfo> apiResult = new ApiResult<DeviceInfo>(); ApiResult<DeviceInfo> apiResult = new ApiResult<DeviceInfo>();
try try
{ {
PowerStation powerStation = null;
powerStation = await powerStationRepository.GetOneAsync(id.PowerStationId);
apiResult.Code = "0000"; apiResult.Code = "0000";
Device = await powerStationRepository.OneDeviceInfo(id); Device = await powerStationRepository.OneDeviceInfo(id.SelectedId, powerStation.SiteDB);
apiResult.Data = Device; apiResult.Data = Device;
} }
catch (Exception exception) catch (Exception exception)
{ {
apiResult.Code = "9999"; apiResult.Code = "9999";
apiResult.Msg = exception.ToString(); apiResult.Msg = exception.ToString();
Logger.LogError("【" + controllerName + "/" + actionName + "】" + "id=" + id);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
} }
return apiResult; return apiResult;
@ -1136,13 +1147,15 @@ namespace SolarPower.Controllers
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ApiResult<string>> DeleteOneDevice(int id) public async Task<ApiResult<string>> DeleteOneDevice(PostPowerStationIdAndSelectedId id)
{ {
ApiResult<string> apiResult = new ApiResult<string>(); ApiResult<string> apiResult = new ApiResult<string>();
DeviceInfo Device = new DeviceInfo(); DeviceInfo Device = new DeviceInfo();
try try
{ {
Device = await powerStationRepository.OneDeviceInfo(id); PowerStation powerStation = null;
powerStation = await powerStationRepository.GetOneAsync(id.PowerStationId);
Device = await powerStationRepository.OneDeviceInfo(id.SelectedId, powerStation.SiteDB);
if (Device == null) if (Device == null)
{ {
@ -1178,8 +1191,11 @@ namespace SolarPower.Controllers
ApiResult<string> apiResult = new ApiResult<string>(); ApiResult<string> apiResult = new ApiResult<string>();
try try
{ {
PowerStation powerStation = null;
powerStation = await powerStationRepository.GetOneAsync(exceptionModal.PowerStationId);
if (exceptionModal.Id == 0) if (exceptionModal.Id == 0)
{ {
ExceptionModal Exception = new ExceptionModal() ExceptionModal Exception = new ExceptionModal()
{ {
Alarm = exceptionModal.Alarm, Alarm = exceptionModal.Alarm,
@ -1200,7 +1216,7 @@ namespace SolarPower.Controllers
"Type", "Type",
"UpperLimit", "UpperLimit",
}; };
await powerStationRepository.AddException(Exception, properties); await powerStationRepository.AddException(Exception, properties,powerStation.SiteDB);
apiResult.Code = "0000"; apiResult.Code = "0000";
apiResult.Msg = "新增成功"; apiResult.Msg = "新增成功";
@ -1227,7 +1243,7 @@ namespace SolarPower.Controllers
"Type", "Type",
"UpperLimit", "UpperLimit",
}; };
await powerStationRepository.UpdateException(Exception, properties); await powerStationRepository.UpdateException(Exception, properties,powerStation.SiteDB);
apiResult.Code = "0000"; apiResult.Code = "0000";
apiResult.Msg = "儲存成功"; apiResult.Msg = "儲存成功";
} }
@ -1237,6 +1253,8 @@ namespace SolarPower.Controllers
{ {
apiResult.Code = "9999"; apiResult.Code = "9999";
apiResult.Msg = exception.ToString(); apiResult.Msg = exception.ToString();
Logger.LogError("【" + controllerName + "/" + actionName + "】" + "ExceptionModal=" + exceptionModal);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
} }
return apiResult; return apiResult;
} }
@ -1251,8 +1269,10 @@ namespace SolarPower.Controllers
ApiResult<List<ExceptionTable>> apiResult = new ApiResult<List<ExceptionTable>>(); ApiResult<List<ExceptionTable>> apiResult = new ApiResult<List<ExceptionTable>>();
try try
{ {
PowerStation powerStation = null;
powerStation = await powerStationRepository.GetOneAsync(stationId);
apiResult.Code = "0000"; apiResult.Code = "0000";
exceptionTable = await powerStationRepository.ExceptionTable(stationId); exceptionTable = await powerStationRepository.ExceptionTable(stationId,powerStation.SiteDB);
foreach (ExceptionTable a in exceptionTable) foreach (ExceptionTable a in exceptionTable)
{ {
a.Function = @" a.Function = @"
@ -1273,6 +1293,8 @@ namespace SolarPower.Controllers
{ {
apiResult.Code = "9999"; apiResult.Code = "9999";
apiResult.Msg = exception.ToString(); apiResult.Msg = exception.ToString();
Logger.LogError("【" + controllerName + "/" + actionName + "】" + "stationId=" + stationId);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
} }
var result = Json(new var result = Json(new
{ {
@ -1285,20 +1307,24 @@ namespace SolarPower.Controllers
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ApiResult<ExceptionModal>> GetOneException(int id) public async Task<ApiResult<ExceptionModal>> GetOneException(PostPowerStationIdAndSelectedId id)
{ {
ExceptionModal Exception = new ExceptionModal(); ExceptionModal Exception = new ExceptionModal();
ApiResult<ExceptionModal> apiResult = new ApiResult<ExceptionModal>(); ApiResult<ExceptionModal> apiResult = new ApiResult<ExceptionModal>();
try try
{ {
PowerStation powerStation = null;
powerStation = await powerStationRepository.GetOneAsync(id.PowerStationId);
apiResult.Code = "0000"; apiResult.Code = "0000";
Exception = await powerStationRepository.OneException(id); Exception = await powerStationRepository.OneException(id.SelectedId,powerStation.SiteDB);
apiResult.Data = Exception; apiResult.Data = Exception;
} }
catch (Exception exception) catch (Exception exception)
{ {
apiResult.Code = "9999"; apiResult.Code = "9999";
apiResult.Msg = exception.ToString(); apiResult.Msg = exception.ToString();
Logger.LogError("【" + controllerName + "/" + actionName + "】" + "id=" + id);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
} }
return apiResult; return apiResult;
@ -1309,17 +1335,19 @@ namespace SolarPower.Controllers
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ApiResult<string>> DeleteOneException(int id) public async Task<ApiResult<string>> DeleteOneException(PostPowerStationIdAndSelectedId id)
{ {
ApiResult<string> apiResult = new ApiResult<string>(); ApiResult<string> apiResult = new ApiResult<string>();
ExceptionModal Exception = new ExceptionModal(); ExceptionModal Exception = new ExceptionModal();
try try
{ {
Exception = await powerStationRepository.OneException(id); PowerStation powerStation = null;
powerStation = await powerStationRepository.GetOneAsync(id.PowerStationId);
Exception = await powerStationRepository.OneException(id.SelectedId,powerStation.SiteDB);
if (Exception == null) if (Exception == null)
{ {
apiResult.Code = "9996"; apiResult.Code = "9999";
apiResult.Msg = errorCode.GetString(apiResult.Code); apiResult.Msg = errorCode.GetString(apiResult.Code);
return apiResult; return apiResult;
} }
@ -1334,7 +1362,7 @@ namespace SolarPower.Controllers
{ {
apiResult.Code = "9999"; apiResult.Code = "9999";
apiResult.Msg = errorCode.GetString(apiResult.Code); apiResult.Msg = errorCode.GetString(apiResult.Code);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + "Id=" + id); Logger.LogError("【" + controllerName + "/" + actionName + "】" + "id=" + id);
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message); Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
} }

View File

@ -37,7 +37,7 @@ namespace SolarPower.Helper
var passwordStr = ed.AESDecrypt(dbConfig.Password); var passwordStr = ed.AESDecrypt(dbConfig.Password);
//var connStr = $"server={serverStr};database={databaseStr};user={rootStr};password={passwordStr};charset=utf8;"; //var connStr = $"server={serverStr};database={databaseStr};user={rootStr};password={passwordStr};charset=utf8;";
var connStr = @"server=127.0.0.1;database=solar_power;user=root;password=000000;charset=utf8;"; var connStr = @"server=210.61.91.43;port=10068;database=solar_power_test;user=idafenweb;password=P@ssw0rd;charset=utf8;";
this._connectionString = connStr; this._connectionString = connStr;
} }

View File

@ -26,6 +26,10 @@ namespace SolarPower.Models
public string Text { get; set; } public string Text { get; set; }
public string Value { get; set; } public string Value { get; set; }
} }
public class SendData
{
public List<int> id { get; set; }
}
public class OperationCreatePlanModal : Created public class OperationCreatePlanModal : Created
{ {
private string startTime = "", endTime = ""; private string startTime = "", endTime = "";

View File

@ -58,7 +58,7 @@ namespace SolarPower.Repository.Implement
} }
} }
public async Task<List<OperationPlanTable>> OperationPlanTable(List<int> id) public async Task<List<OperationPlanTable>> OperationPlanTable(List<int> id,int Type)
{ {
List<OperationPlanTable> result; List<OperationPlanTable> result;
var count = 0; var count = 0;
@ -80,11 +80,25 @@ namespace SolarPower.Repository.Implement
{ {
try try
{ {
var sql = @$"SELECT oc.Id,oc.PlanId,oc.PowerStationId,oc.Type, var sql = "";
if (Type != 9)
{
sql = @$"SELECT oc.Id,oc.PlanId,oc.PowerStationId,oc.Type,
oc.ScheduleNum,oc.ScheduleType,oc.WorkDay,oc.StartTime, oc.ScheduleNum,oc.ScheduleType,oc.WorkDay,oc.StartTime,
oc.EmailType,oc.Description,oc.CreatedAt,ps.Name AS PowerStationName ,us.Name AS CreatedPerson FROM operation_plan_create oc LEFT JOIN power_station ps oc.EmailType,oc.Description,oc.CreatedAt,ps.Name AS PowerStationName ,us.Name AS CreatedPerson FROM operation_plan_create oc LEFT JOIN power_station ps
ON oc.PowerStationId = ps.Id LEFT JOIN user us ON oc.PowerStationId = ps.Id LEFT JOIN user us
ON us.Id = oc.CreatedBy WHERE {Wheresql} AND oc.Deleted = 0"; ON us.Id = oc.CreatedBy WHERE ({Wheresql}) AND oc.Deleted = 0 AND oc.Type = {Type}";
}
else
{
sql = @$"SELECT oc.Id,oc.PlanId,oc.PowerStationId,oc.Type,
oc.ScheduleNum,oc.ScheduleType,oc.WorkDay,oc.StartTime,
oc.EmailType,oc.Description,oc.CreatedAt,ps.Name AS PowerStationName ,us.Name AS CreatedPerson FROM operation_plan_create oc LEFT JOIN power_station ps
ON oc.PowerStationId = ps.Id LEFT JOIN user us
ON us.Id = oc.CreatedBy WHERE ({Wheresql}) AND oc.Deleted = 0";
}
result = (await conn.QueryAsync<OperationPlanTable>(sql)).ToList(); result = (await conn.QueryAsync<OperationPlanTable>(sql)).ToList();
} }
catch (Exception exception) catch (Exception exception)

View File

@ -651,16 +651,17 @@ namespace SolarPower.Repository.Implement
/// <param name="DeviceInfo"></param> /// <param name="DeviceInfo"></param>
/// <param name="properties"></param> /// <param name="properties"></param>
/// <returns></returns> /// <returns></returns>
public async Task AddDevice(Device DeviceInfo, List<string> properties) public async Task AddDevice(Device DeviceInfo, List<string> properties, string db_name)
{ {
using IDbConnection conn = _databaseHelper.GetConnection(); using IDbConnection conn = _databaseHelper.GetConnection();
var trans = conn.BeginTransaction();
conn.Open(); conn.Open();
try try
{ {
string sql = GenerateInsertQueryWithCustomTable(properties, "device"); string sql = GenerateUpdateQueryWithCustomDBNameAndTable(properties,db_name, "device");
await conn.ExecuteAsync(sql, DeviceInfo); await conn.ExecuteAsync(sql, DeviceInfo);
trans.Commit();
} }
catch (Exception exception) catch (Exception exception)
{ {
@ -668,6 +669,7 @@ namespace SolarPower.Repository.Implement
} }
finally finally
{ {
trans.Rollback();
conn.Close(); conn.Close();
} }
@ -678,14 +680,14 @@ namespace SolarPower.Repository.Implement
/// <param name="DeviceInfo"></param> /// <param name="DeviceInfo"></param>
/// <param name="properties"></param> /// <param name="properties"></param>
/// <returns></returns> /// <returns></returns>
public async Task UpdateDevice(Device DeviceInfo, List<string> properties) public async Task UpdateDevice(Device DeviceInfo, List<string> properties, string db_name)
{ {
using IDbConnection conn = _databaseHelper.GetConnection(); using IDbConnection conn = _databaseHelper.GetConnection();
conn.Open(); conn.Open();
var trans = conn.BeginTransaction(); var trans = conn.BeginTransaction();
try try
{ {
var updateQuery = GenerateUpdateQueryWithCustomTable(properties, "device"); var updateQuery = GenerateUpdateQueryWithCustomDBNameAndTable(properties,db_name, "device");
await conn.ExecuteAsync(updateQuery.ToString(), DeviceInfo, trans); await conn.ExecuteAsync(updateQuery.ToString(), DeviceInfo, trans);
trans.Commit(); trans.Commit();
} }
@ -704,14 +706,14 @@ namespace SolarPower.Repository.Implement
/// </summary> /// </summary>
/// <param name="stationId"></param> /// <param name="stationId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<List<DeviceTable>> DeviceTable(int stationId) public async Task<List<DeviceTable>> DeviceTable(int stationId, string db_name)
{ {
using IDbConnection conn = _databaseHelper.GetConnection(); using IDbConnection conn = _databaseHelper.GetConnection();
conn.Open(); conn.Open();
List<DeviceTable> Device = new List<DeviceTable>(); List<DeviceTable> Device = new List<DeviceTable>();
try try
{ {
string sql = @$"SELECT * FROM device WHERE Deleted = 0 AND PowerStationId = @StationId"; string sql = @$"SELECT * FROM {db_name}.device WHERE Deleted = 0 AND PowerStationId = @StationId";
Device = (await conn.QueryAsync<DeviceTable>(sql, new { StationId = stationId })).ToList(); Device = (await conn.QueryAsync<DeviceTable>(sql, new { StationId = stationId })).ToList();
} }
catch (Exception exception) catch (Exception exception)
@ -729,7 +731,7 @@ namespace SolarPower.Repository.Implement
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
public async Task<DeviceInfo> OneDeviceInfo(int id) public async Task<DeviceInfo> OneDeviceInfo(int id, string db_name)
{ {
using (IDbConnection conn = _databaseHelper.GetConnection()) using (IDbConnection conn = _databaseHelper.GetConnection())
{ {
@ -737,7 +739,7 @@ namespace SolarPower.Repository.Implement
conn.Open(); conn.Open();
try try
{ {
string sql = @$"SELECT * FROM device WHERE Id = @Id"; string sql = @$"SELECT * FROM {db_name}.device WHERE Id = @Id";
Device = await conn.QueryFirstOrDefaultAsync<DeviceInfo>(sql, new { Id = id }); Device = await conn.QueryFirstOrDefaultAsync<DeviceInfo>(sql, new { Id = id });
} }
catch (Exception exception) catch (Exception exception)
@ -757,13 +759,13 @@ namespace SolarPower.Repository.Implement
/// <param name="Exception"></param> /// <param name="Exception"></param>
/// <param name="properties"></param> /// <param name="properties"></param>
/// <returns></returns> /// <returns></returns>
public async Task AddException(ExceptionModal Exception, List<string> properties) public async Task AddException(ExceptionModal Exception, List<string> properties, string db_name)
{ {
using IDbConnection conn = _databaseHelper.GetConnection(); using IDbConnection conn = _databaseHelper.GetConnection();
conn.Open(); conn.Open();
try try
{ {
string sql = GenerateInsertQueryWithCustomTable(properties, "power_station_exception"); string sql = GenerateUpdateQueryWithCustomDBNameAndTable(properties,db_name,"power_station_exception");
await conn.ExecuteAsync(sql, Exception); await conn.ExecuteAsync(sql, Exception);
@ -783,7 +785,7 @@ namespace SolarPower.Repository.Implement
/// </summary> /// </summary>
/// <param name="stationId"></param> /// <param name="stationId"></param>
/// <returns></returns> /// <returns></returns>
public async Task<List<ExceptionTable>> ExceptionTable(int stationId) public async Task<List<ExceptionTable>> ExceptionTable(int stationId, string db_name)
{ {
using IDbConnection conn = _databaseHelper.GetConnection(); using IDbConnection conn = _databaseHelper.GetConnection();
conn.Open(); conn.Open();
@ -791,8 +793,8 @@ namespace SolarPower.Repository.Implement
try try
{ {
string sql = @$"SELECT pe.Type,pe.UpperLimit,pe.LowerLimit,pe.Alarm,ps.Code AS PowerStationCode ,ps.Name AS PowerStationName,pe.CreatedAt,pe.Id string sql = @$"SELECT pe.Type,pe.UpperLimit,pe.LowerLimit,pe.Alarm,ps.Code AS PowerStationCode ,ps.Name AS PowerStationName,pe.CreatedAt,pe.Id
FROM power_station_exception pe FROM {db_name}.power_station_exception pe
LEFT JOIN power_station ps ON pe.PowerStationId = ps.Id LEFT JOIN {db_name}.power_station ps ON pe.PowerStationId = ps.Id
WHERE pe.Deleted = 0 AND pe.PowerStationId = @StationId"; WHERE pe.Deleted = 0 AND pe.PowerStationId = @StationId";
Exception = (await conn.QueryAsync<ExceptionTable>(sql, new { StationId = stationId })).ToList(); Exception = (await conn.QueryAsync<ExceptionTable>(sql, new { StationId = stationId })).ToList();
} }
@ -811,7 +813,7 @@ namespace SolarPower.Repository.Implement
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
public async Task<ExceptionModal> OneException(int id) public async Task<ExceptionModal> OneException(int id, string db_name)
{ {
using (IDbConnection conn = _databaseHelper.GetConnection()) using (IDbConnection conn = _databaseHelper.GetConnection())
{ {
@ -819,7 +821,7 @@ namespace SolarPower.Repository.Implement
conn.Open(); conn.Open();
try try
{ {
string sql = @$"SELECT * FROM power_station_exception WHERE Id = @Id"; string sql = @$"SELECT * FROM {db_name}.power_station_exception WHERE Id = @Id";
Exception = await conn.QueryFirstOrDefaultAsync<ExceptionModal>(sql, new { Id = id }); Exception = await conn.QueryFirstOrDefaultAsync<ExceptionModal>(sql, new { Id = id });
} }
catch (Exception exception) catch (Exception exception)
@ -839,14 +841,14 @@ namespace SolarPower.Repository.Implement
/// <param name="Exception"></param> /// <param name="Exception"></param>
/// <param name="properties"></param> /// <param name="properties"></param>
/// <returns></returns> /// <returns></returns>
public async Task UpdateException(ExceptionModal Exception, List<string> properties) public async Task UpdateException(ExceptionModal Exception, List<string> properties, string db_name)
{ {
using IDbConnection conn = _databaseHelper.GetConnection(); using IDbConnection conn = _databaseHelper.GetConnection();
conn.Open(); conn.Open();
var trans = conn.BeginTransaction(); var trans = conn.BeginTransaction();
try try
{ {
var updateQuery = GenerateUpdateQueryWithCustomTable(properties, "power_station_exception"); var updateQuery = GenerateUpdateQueryWithCustomDBNameAndTable(properties,db_name,"power_station_exception");
await conn.ExecuteAsync(updateQuery.ToString(), Exception, trans); await conn.ExecuteAsync(updateQuery.ToString(), Exception, trans);
trans.Commit(); trans.Commit();
} }
@ -860,7 +862,7 @@ namespace SolarPower.Repository.Implement
conn.Close(); conn.Close();
} }
} }
public async Task<string> GetFinalSerialNumber(int PowerStationId, string Type) public async Task<string> GetFinalSerialNumber(int PowerStationId, string Type, string db_name)
{ {
string Num; string Num;
using IDbConnection conn = _databaseHelper.GetConnection(); using IDbConnection conn = _databaseHelper.GetConnection();
@ -868,7 +870,7 @@ namespace SolarPower.Repository.Implement
var trans = conn.BeginTransaction(); var trans = conn.BeginTransaction();
try try
{ {
var sql = "SELECT SerialNumber FROM device WHERE PowerStationId = @PowerStationId AND Type = @Type ORDER BY SerialNumber DESC"; var sql = $"SELECT SerialNumber FROM {db_name}.device WHERE PowerStationId = @PowerStationId AND Type = @Type ORDER BY SerialNumber DESC";
Num = await conn.QueryFirstOrDefaultAsync<string>(sql, new { PowerStationId = PowerStationId, Type = Type }); Num = await conn.QueryFirstOrDefaultAsync<string>(sql, new { PowerStationId = PowerStationId, Type = Type });
trans.Commit(); trans.Commit();
} }

View File

@ -10,7 +10,7 @@ namespace SolarPower.Repository.Interface
{ {
Task<List<PowerStationIdList>> GetPowerStationIdList(int UserId); Task<List<PowerStationIdList>> GetPowerStationIdList(int UserId);
Task AddOperationPlan(OperationCreatePlan OperationPlan, List<string> properties); Task AddOperationPlan(OperationCreatePlan OperationPlan, List<string> properties);
Task<List<OperationPlanTable>> OperationPlanTable(List<int> id); Task<List<OperationPlanTable>> OperationPlanTable(List<int> id,int Type);
Task<OperationCreatePlan> GetOneOperation(int id); Task<OperationCreatePlan> GetOneOperation(int id);
Task UpdateOperationPlan(OperationCreatePlan OperationPlan, List<string> properties); Task UpdateOperationPlan(OperationCreatePlan OperationPlan, List<string> properties);
Task AddToRecord(PlanToRecord record, List<string> properties2); Task AddToRecord(PlanToRecord record, List<string> properties2);

View File

@ -159,34 +159,34 @@ namespace SolarPower.Repository.Interface
/// </summary> /// </summary>
/// <param name=""></param> /// <param name=""></param>
/// <returns></returns> /// <returns></returns>
Task AddDevice(Device DeviceInfo, List<string> properties); Task AddDevice(Device DeviceInfo, List<string> properties, string db_name);
/// <summary> /// <summary>
/// 修改 裝置 /// 修改 裝置
/// </summary> /// </summary>
/// <param name="DeviceInfo"></param> /// <param name="DeviceInfo"></param>
/// <param name="properties"></param> /// <param name="properties"></param>
/// <returns></returns> /// <returns></returns>
Task UpdateDevice(Device DeviceInfo, List<string> properties); Task UpdateDevice(Device DeviceInfo, List<string> properties, string db_name);
/// <summary> /// <summary>
/// 設備datatable /// 設備datatable
/// </summary> /// </summary>
/// <param name="stationId"></param> /// <param name="stationId"></param>
/// <returns></returns> /// <returns></returns>
Task<List<DeviceTable>> DeviceTable(int stationId); Task<List<DeviceTable>> DeviceTable(int stationId, string db_name);
/// <summary> /// <summary>
/// 異常datatable /// 異常datatable
/// </summary> /// </summary>
/// <param name="stationId"></param> /// <param name="stationId"></param>
/// <returns></returns> /// <returns></returns>
Task<List<ExceptionTable>> ExceptionTable(int stationId); Task<List<ExceptionTable>> ExceptionTable(int stationId, string db_name);
/// <summary> /// <summary>
/// 取單一筆DeviceInfo /// 取單一筆DeviceInfo
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
Task<DeviceInfo> OneDeviceInfo(int id); Task<DeviceInfo> OneDeviceInfo(int id, string db_name);
/// <summary> /// <summary>
/// 新增 異常設定 /// 新增 異常設定
@ -194,14 +194,14 @@ namespace SolarPower.Repository.Interface
/// <param name="Exception"></param> /// <param name="Exception"></param>
/// <param name="properties"></param> /// <param name="properties"></param>
/// <returns></returns> /// <returns></returns>
Task AddException(ExceptionModal Exception, List<string> properties); Task AddException(ExceptionModal Exception, List<string> properties, string db_name);
/// <summary> /// <summary>
/// 取一筆異常設定 /// 取一筆異常設定
/// </summary> /// </summary>
/// <param name="id"></param> /// <param name="id"></param>
/// <returns></returns> /// <returns></returns>
Task<ExceptionModal> OneException(int id); Task<ExceptionModal> OneException(int id, string db_name);
/// <summary> /// <summary>
/// 更新異常設定 /// 更新異常設定
@ -209,7 +209,7 @@ namespace SolarPower.Repository.Interface
/// <param name="Exception"></param> /// <param name="Exception"></param>
/// <param name="properties"></param> /// <param name="properties"></param>
/// <returns></returns> /// <returns></returns>
Task UpdateException(ExceptionModal Exception, List<string> properties); Task UpdateException(ExceptionModal Exception, List<string> properties, string db_name);
/// <summary> /// <summary>
/// 取最後一個設備流水號 /// 取最後一個設備流水號
@ -217,7 +217,7 @@ namespace SolarPower.Repository.Interface
/// <param name="PowerStationId"></param> /// <param name="PowerStationId"></param>
/// <param name="Type"></param> /// <param name="Type"></param>
/// <returns></returns> /// <returns></returns>
Task<string> GetFinalSerialNumber(int PowerStationId, string Type); Task<string> GetFinalSerialNumber(int PowerStationId, string Type, string db_name);
/// <summary> /// <summary>
/// 透過電站編號,取得該電站的運維人員編號 /// 透過電站編號,取得該電站的運維人員編號

View File

@ -23,6 +23,20 @@
<Content Remove="Views\Operation\_OperationPlanCreate.cshtml" /> <Content Remove="Views\Operation\_OperationPlanCreate.cshtml" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Content Include="wwwroot\js\bower_components\jquery-table2excel\.bower.json" />
<Content Include="wwwroot\js\bower_components\jquery-table2excel\bower.json" />
<Content Include="wwwroot\js\bower_components\jquery-table2excel\demo\index.html" />
<Content Include="wwwroot\js\bower_components\jquery-table2excel\package.json" />
<Content Include="wwwroot\js\bower_components\jquery-table2excel\serve.json" />
<Content Include="wwwroot\js\bower_components\jquery-table2excel\table2excel.jquery.json" />
<Content Include="wwwroot\js\bower_components\jquery\.bower.json" />
<Content Include="wwwroot\js\bower_components\jquery\AUTHORS.txt" />
<Content Include="wwwroot\js\bower_components\jquery\bower.json" />
<Content Include="wwwroot\js\bower_components\jquery\external\sizzle\LICENSE.txt" />
<Content Include="wwwroot\js\bower_components\jquery\LICENSE.txt" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Dapper" Version="2.0.78" /> <PackageReference Include="Dapper" Version="2.0.78" />
<PackageReference Include="MySql.Data" Version="8.0.24" /> <PackageReference Include="MySql.Data" Version="8.0.24" />
@ -101,6 +115,124 @@
<None Include="wwwroot\img\svg\pattern-3.svg" /> <None Include="wwwroot\img\svg\pattern-3.svg" />
<None Include="wwwroot\img\svg\pattern-4.svg" /> <None Include="wwwroot\img\svg\pattern-4.svg" />
<None Include="wwwroot\js\app.bundle.js" /> <None Include="wwwroot\js\app.bundle.js" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\.editorconfig" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\.gitignore" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\.gitpod.yml" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\.jshintrc" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\.travis.yml" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\CHANGELOG.md" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\CONTRIBUTING.md" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\demo\download.xls" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\dist\jquery.table2excel.js" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\dist\jquery.table2excel.min.js" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\Gruntfile.js" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\README.md" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\src\jquery.table2excel.js" />
<None Include="wwwroot\js\bower_components\jquery-table2excel\yarn.lock" />
<None Include="wwwroot\js\bower_components\jquery\dist\jquery.js" />
<None Include="wwwroot\js\bower_components\jquery\dist\jquery.min.js" />
<None Include="wwwroot\js\bower_components\jquery\dist\jquery.min.map" />
<None Include="wwwroot\js\bower_components\jquery\external\sizzle\dist\sizzle.js" />
<None Include="wwwroot\js\bower_components\jquery\external\sizzle\dist\sizzle.min.js" />
<None Include="wwwroot\js\bower_components\jquery\external\sizzle\dist\sizzle.min.map" />
<None Include="wwwroot\js\bower_components\jquery\README.md" />
<None Include="wwwroot\js\bower_components\jquery\src\.jshintrc" />
<None Include="wwwroot\js\bower_components\jquery\src\ajax.js" />
<None Include="wwwroot\js\bower_components\jquery\src\ajax\jsonp.js" />
<None Include="wwwroot\js\bower_components\jquery\src\ajax\load.js" />
<None Include="wwwroot\js\bower_components\jquery\src\ajax\parseJSON.js" />
<None Include="wwwroot\js\bower_components\jquery\src\ajax\parseXML.js" />
<None Include="wwwroot\js\bower_components\jquery\src\ajax\script.js" />
<None Include="wwwroot\js\bower_components\jquery\src\ajax\var\location.js" />
<None Include="wwwroot\js\bower_components\jquery\src\ajax\var\nonce.js" />
<None Include="wwwroot\js\bower_components\jquery\src\ajax\var\rquery.js" />
<None Include="wwwroot\js\bower_components\jquery\src\ajax\xhr.js" />
<None Include="wwwroot\js\bower_components\jquery\src\attributes.js" />
<None Include="wwwroot\js\bower_components\jquery\src\attributes\attr.js" />
<None Include="wwwroot\js\bower_components\jquery\src\attributes\classes.js" />
<None Include="wwwroot\js\bower_components\jquery\src\attributes\prop.js" />
<None Include="wwwroot\js\bower_components\jquery\src\attributes\support.js" />
<None Include="wwwroot\js\bower_components\jquery\src\attributes\val.js" />
<None Include="wwwroot\js\bower_components\jquery\src\callbacks.js" />
<None Include="wwwroot\js\bower_components\jquery\src\core.js" />
<None Include="wwwroot\js\bower_components\jquery\src\core\access.js" />
<None Include="wwwroot\js\bower_components\jquery\src\core\init.js" />
<None Include="wwwroot\js\bower_components\jquery\src\core\parseHTML.js" />
<None Include="wwwroot\js\bower_components\jquery\src\core\ready.js" />
<None Include="wwwroot\js\bower_components\jquery\src\core\var\rsingleTag.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\addGetHookIf.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\adjustCSS.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\curCSS.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\defaultDisplay.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\hiddenVisibleSelectors.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\showHide.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\support.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\var\cssExpand.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\var\getStyles.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\var\isHidden.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\var\rmargin.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\var\rnumnonpx.js" />
<None Include="wwwroot\js\bower_components\jquery\src\css\var\swap.js" />
<None Include="wwwroot\js\bower_components\jquery\src\data.js" />
<None Include="wwwroot\js\bower_components\jquery\src\data\Data.js" />
<None Include="wwwroot\js\bower_components\jquery\src\data\var\acceptData.js" />
<None Include="wwwroot\js\bower_components\jquery\src\data\var\dataPriv.js" />
<None Include="wwwroot\js\bower_components\jquery\src\data\var\dataUser.js" />
<None Include="wwwroot\js\bower_components\jquery\src\deferred.js" />
<None Include="wwwroot\js\bower_components\jquery\src\deprecated.js" />
<None Include="wwwroot\js\bower_components\jquery\src\dimensions.js" />
<None Include="wwwroot\js\bower_components\jquery\src\effects.js" />
<None Include="wwwroot\js\bower_components\jquery\src\effects\animatedSelector.js" />
<None Include="wwwroot\js\bower_components\jquery\src\effects\Tween.js" />
<None Include="wwwroot\js\bower_components\jquery\src\event.js" />
<None Include="wwwroot\js\bower_components\jquery\src\event\ajax.js" />
<None Include="wwwroot\js\bower_components\jquery\src\event\alias.js" />
<None Include="wwwroot\js\bower_components\jquery\src\event\focusin.js" />
<None Include="wwwroot\js\bower_components\jquery\src\event\support.js" />
<None Include="wwwroot\js\bower_components\jquery\src\event\trigger.js" />
<None Include="wwwroot\js\bower_components\jquery\src\exports\amd.js" />
<None Include="wwwroot\js\bower_components\jquery\src\exports\global.js" />
<None Include="wwwroot\js\bower_components\jquery\src\intro.js" />
<None Include="wwwroot\js\bower_components\jquery\src\jquery.js" />
<None Include="wwwroot\js\bower_components\jquery\src\manipulation.js" />
<None Include="wwwroot\js\bower_components\jquery\src\manipulation\buildFragment.js" />
<None Include="wwwroot\js\bower_components\jquery\src\manipulation\getAll.js" />
<None Include="wwwroot\js\bower_components\jquery\src\manipulation\setGlobalEval.js" />
<None Include="wwwroot\js\bower_components\jquery\src\manipulation\support.js" />
<None Include="wwwroot\js\bower_components\jquery\src\manipulation\var\rcheckableType.js" />
<None Include="wwwroot\js\bower_components\jquery\src\manipulation\var\rscriptType.js" />
<None Include="wwwroot\js\bower_components\jquery\src\manipulation\var\rtagName.js" />
<None Include="wwwroot\js\bower_components\jquery\src\manipulation\wrapMap.js" />
<None Include="wwwroot\js\bower_components\jquery\src\manipulation\_evalUrl.js" />
<None Include="wwwroot\js\bower_components\jquery\src\offset.js" />
<None Include="wwwroot\js\bower_components\jquery\src\outro.js" />
<None Include="wwwroot\js\bower_components\jquery\src\queue.js" />
<None Include="wwwroot\js\bower_components\jquery\src\queue\delay.js" />
<None Include="wwwroot\js\bower_components\jquery\src\selector-native.js" />
<None Include="wwwroot\js\bower_components\jquery\src\selector-sizzle.js" />
<None Include="wwwroot\js\bower_components\jquery\src\selector.js" />
<None Include="wwwroot\js\bower_components\jquery\src\serialize.js" />
<None Include="wwwroot\js\bower_components\jquery\src\traversing.js" />
<None Include="wwwroot\js\bower_components\jquery\src\traversing\findFilter.js" />
<None Include="wwwroot\js\bower_components\jquery\src\traversing\var\dir.js" />
<None Include="wwwroot\js\bower_components\jquery\src\traversing\var\rneedsContext.js" />
<None Include="wwwroot\js\bower_components\jquery\src\traversing\var\siblings.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\arr.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\class2type.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\concat.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\document.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\documentElement.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\hasOwn.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\indexOf.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\pnum.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\push.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\rcssNum.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\rnotwhite.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\slice.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\support.js" />
<None Include="wwwroot\js\bower_components\jquery\src\var\toString.js" />
<None Include="wwwroot\js\bower_components\jquery\src\wrap.js" />
<None Include="wwwroot\js\datagrid\datatables\datatables.bundle.js" /> <None Include="wwwroot\js\datagrid\datatables\datatables.bundle.js" />
<None Include="wwwroot\js\datagrid\datatables\datatables.export.js" /> <None Include="wwwroot\js\datagrid\datatables\datatables.export.js" />
<None Include="wwwroot\js\dependency\moment\moment.js" /> <None Include="wwwroot\js\dependency\moment\moment.js" />

View File

@ -6,6 +6,7 @@
@using SolarPower.Models.Role @using SolarPower.Models.Role
@model RoleLayerEnum @model RoleLayerEnum
<ol class="breadcrumb page-breadcrumb"> <ol class="breadcrumb page-breadcrumb">
<li class="breadcrumb-item"><a href="javascript:void(0);">系統管理</a></li> <li class="breadcrumb-item"><a href="javascript:void(0);">系統管理</a></li>
<li class="breadcrumb-item active">定期計畫建立</li> <li class="breadcrumb-item active">定期計畫建立</li>
@ -26,9 +27,9 @@
<div class="row mb-3 px-3"> <div class="row mb-3 px-3">
<div class="pr-3"> <div class="pr-3">
<div class="btn-group btn-group-md"> <div class="btn-group btn-group-md">
<button type="button" class="btn btn-success waves-effect waves-themed">全部</button> <button type="button" class="btn btn-success waves-effect waves-themed" onclick="ChangeType(9)" id="button9">全部</button>
<button type="button" class="btn btn-secondary waves-effect waves-themed">巡檢</button> <button type="button" class="btn btn-secondary waves-effect waves-themed" onclick="ChangeType(1)" id="button1">巡檢</button>
<button type="button" class="btn btn-secondary waves-effect waves-themed">清洗</button> <button type="button" class="btn btn-secondary waves-effect waves-themed" onclick="ChangeType(0)" id="button0">清洗</button>
</div> </div>
</div> </div>
</div> </div>
@ -38,12 +39,12 @@
<button type="button" class="btn btn-secondary waves-effect waves-themed">全部縣市</button> <button type="button" class="btn btn-secondary waves-effect waves-themed">全部縣市</button>
</div> </div>
<div class="pr-3"> <div class="pr-3">
<div class="frame-wrap"> <div class="frame-wrap" id="citytest" style="display:none">
<button type="button" class="btn btn-outline-success waves-effect waves-themed"> <button type="button" class="btn btn-outline-success waves-effect waves-themed">
新北市 新北市
<span class="badge bg-success-700 ml-2">4</span> <span class="badge bg-success-700 ml-2">4</span>
</button> </button>
<button type="button" class="btn btn-outline-success waves-effect waves-themed"> @*<button type="button" class="btn btn-outline-success waves-effect waves-themed">
台北市 台北市
<span class="badge bg-success-700 ml-2">4</span> <span class="badge bg-success-700 ml-2">4</span>
</button> </button>
@ -58,7 +59,10 @@
<button type="button" class="btn btn-outline-success waves-effect waves-themed"> <button type="button" class="btn btn-outline-success waves-effect waves-themed">
台中市 台中市
<span class="badge bg-success-700 ml-2">4</span> <span class="badge bg-success-700 ml-2">4</span>
</button> </button>*@
</div>
<div class="frame-wrap" id="city">
</div> </div>
</div> </div>
</div> </div>
@ -98,7 +102,7 @@
</div> </div>
<div class="row d-flex justify-content-end px-3"> <div class="row d-flex justify-content-end px-3">
<button type="button" class="btn btn-info waves-effect waves-themed mb-3 mr-2"> <button type="button" class="btn btn-info waves-effect waves-themed mb-3 mr-2" onClick="saveToExcel();">
<span class="fal fa-file-excel mr-1"></span> <span class="fal fa-file-excel mr-1"></span>
匯出 匯出
</button> </button>
@ -126,6 +130,34 @@
<tbody> <tbody>
</tbody> </tbody>
</table> </table>
<table id="NoView">
<thead class="thead-themed">
<tr>
<th>計劃單號</th>
<th>項目</th>
<th>電站</th>
<th>排程週期</th>
<th>每次預期/天</th>
<th>開始時間</th>
<th>email 通知</th>
<th>建立人</th>
<th>建立時間</th>
</tr>
</thead>
<tbody id="NoViewbody">
<tr>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</tbody>
</table>
</div> </div>
</div> </div>
</div> </div>
@ -236,8 +268,11 @@
@section Scripts{ @section Scripts{
<script> <script>
var selected_id = 0; var selected_id = 0;
var type = 9;
$(function () { $(function () {
//#region 電站下拉式選單select_option //#region 電站下拉式選單select_option
var url_operation_select_option = "/Operation/GetPowerStationSelectOption"; var url_operation_select_option = "/Operation/GetPowerStationSelectOption";
@ -321,7 +356,8 @@
"url": "/Operation/OperationPlanTable", "url": "/Operation/OperationPlanTable",
"type": "POST", "type": "POST",
"data": function (d) { "data": function (d) {
d.id = [1,2]; d.id = [1, 2],
d.type = type
}, },
"dataSrc": function (rel) { "dataSrc": function (rel) {
if (rel.data.code == "9999") { if (rel.data.code == "9999") {
@ -337,7 +373,61 @@
} }
}); });
//#endregion //#endregion
var Nurl = "/PowerStation/GetSolarCitySummary";
var ids = new Array(0);
$.post(Nurl, function (rel)
{
if (rel.code != "0000") {
toast_error(rel.msg);
return;
}
$.each(rel.data, function (index, val) {
ids.push(val.cityId);
$('#citytest').find('button').attr('id', 'cityID' + val.cityId).clone().appendTo($('#city'));
var name = 'cityID' + val.cityId;
document.getElementById(name).innerHTML = val.city;
/* $('#cityID1').text = val.city;*/
$('#cityID' + val.cityId).find('span').attr('id', 'cityspan' + val.cityId);
document.getElementById('cityspan' + String(val.cityId)).innerHTML = val.amount;
});
//for (var i = 0; i < rel.data.length; i++)
//{
// $('#city').append(h[i]);
// //$('#city').append("<button type='button' class='btn btn-outline-success waves-effect waves-themed ' style='margin - right: 40px;' >" +
// // rel.data[i].city +
// // "<span class= 'badge bg-success-700 ml-2' >" + rel.data[i].amount + "</span >" +
// // "</button >");
//}
}) })
})
function ChangeType(Num) {
type = Num;
OperationPlanTable.ajax.reload();
if (Num == 9)
{
document.getElementById("button9").setAttribute("class", "btn btn-success waves-effect waves-themed");
document.getElementById("button1").setAttribute("class", "btn btn-secondary waves-effect waves-themed");
document.getElementById("button0").setAttribute("class", "btn btn-secondary waves-effect waves-themed");
}
else if (Num == 1)
{
document.getElementById("button1").setAttribute("class", "btn btn-success waves-effect waves-themed");
document.getElementById("button9").setAttribute("class", "btn btn-secondary waves-effect waves-themed");
document.getElementById("button0").setAttribute("class", "btn btn-secondary waves-effect waves-themed");
}
else if(Num == 0)
{
document.getElementById("button0").setAttribute("class", "btn btn-success waves-effect waves-themed");
document.getElementById("button1").setAttribute("class", "btn btn-secondary waves-effect waves-themed");
document.getElementById("button9").setAttribute("class", "btn btn-secondary waves-effect waves-themed");
}
}
//#region 新增計畫基本資料 //#region 新增計畫基本資料
function AddOperationPlan() { function AddOperationPlan() {
@ -453,5 +543,43 @@
}); });
//#endregion //#endregion
</script>
function saveToExcel() {
var url = "/Operation/OperationPlanTable";
var send_data = {
id: [1, 2]
};
$.post(url, send_data, function (rel) {
if (rel.data.code != "0000") {
toast_error(rel.msg);
return;
}
for (var i = 0; i < rel.data.data.length; i++)
{
$('#NoViewbody').append("<tr>");
$('#NoViewbody').append("<td>" + rel.data.data[i].planId + "</td>");
$('#NoViewbody').append("<td>" + rel.data.data[i].typeName + "</td>");
$('#NoViewbody').append("<td>" + rel.data.data[i].powerStationName + "</td>");
$('#NoViewbody').append("<td>" + rel.data.data[i].schedule + "</td>");
$('#NoViewbody').append("<td>" + rel.data.data[i].workDay + "</td>");
$('#NoViewbody').append("<td>" + rel.data.data[i].startTimeString + "</td>");
$('#NoViewbody').append("<td>" + rel.data.data[i].emailTypeName + "</td>");
$('#NoViewbody').append("<td>" + rel.data.data[i].createdPerson + "</td>");
$('#NoViewbody').append("<td>" + rel.data.data[i].createTimeString + "</td>");
$('#NoViewbody').append("</tr>");
}
}, 'json');
$("#NoView").table2excel({
// 匯出的Excel文件的名稱
name: "Excel Document Name",
// Excel檔案的名稱
filename: "test",
//檔案字尾名
fileext: ".xls",
});
}
</script>
} }

View File

@ -1541,7 +1541,8 @@
var url = "/PowerStation/GetOneDevice/"; var url = "/PowerStation/GetOneDevice/";
var send_data = { var send_data = {
id: selected_id SelectedId: selected_id,
PowerStationId: stationId,
} }
@ -1581,7 +1582,8 @@
if (result.value) { if (result.value) {
var url = "/PowerStation/DeleteOneDevice/"; var url = "/PowerStation/DeleteOneDevice/";
var send_data = { var send_data = {
Id: selected_id SelectedId: selected_id,
PowerStationId: stationId
} }
$.post(url, send_data, function (rel) { $.post(url, send_data, function (rel) {
if (rel.code != "0000") { if (rel.code != "0000") {
@ -1645,7 +1647,8 @@
var url = "/PowerStation/GetOneException/"; var url = "/PowerStation/GetOneException/";
var send_data = { var send_data = {
id: selected_id SelectedId: selected_id,
PowerStationId: stationId,
} }
@ -1683,7 +1686,8 @@
if (result.value) { if (result.value) {
var url = "/PowerStation/DeleteOneException/"; var url = "/PowerStation/DeleteOneException/";
var send_data = { var send_data = {
Id: selected_id SelectedId: selected_id,
PowerStationId: stationId,
} }
$.post(url, send_data, function (rel) { $.post(url, send_data, function (rel) {
if (rel.code == "9999") { if (rel.code == "9999") {

View File

@ -1134,7 +1134,6 @@
<script src="~/js/notifications/toastr/toastr.js"></script> <script src="~/js/notifications/toastr/toastr.js"></script>
<!--Toast--> <!--Toast-->
<script src="~/js/toast.js"></script> <script src="~/js/toast.js"></script>
<!-- Select2 JS --> <!-- Select2 JS -->
@*<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>*@ @*<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>*@
<script src="~/js/formplugins/select2/select2.bundle.js"></script> <script src="~/js/formplugins/select2/select2.bundle.js"></script>
@ -1142,7 +1141,7 @@
<script src="~/js/formplugins/dropzone/dropzone.js"></script> <script src="~/js/formplugins/dropzone/dropzone.js"></script>
<!-- Custome JS --> <!-- Custome JS -->
<script src="~/js/site.js" asp-append-version="true"></script> <script src="~/js/site.js" asp-append-version="true"></script>
<script src="~/js/bower_components/jquery-table2excel/dist/jquery.table2excel.min.js"></script>
@*各頁面的JavaScript*@ @*各頁面的JavaScript*@

View File

@ -1,5 +1,5 @@
@{ @{
ViewData["MainNum"] = "6"; ViewData["MainNum"] = "7";
ViewData["SubNum"] = "3"; ViewData["SubNum"] = "3";
ViewData["Title"] = "帳號管理"; ViewData["Title"] = "帳號管理";
} }