| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808 |
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Threading.Tasks;
- using MadRunFabric.Common;
- using MadRunFabric.Model.PLCAutomationApi;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.Extensions.Logging;
- using MongoDB.Driver;
- using PLCAutomationApi.IRepositories;
- namespace PLCAutomationApi.Controllers
- {
- /// <summary>
- /// plc数据
- /// </summary>
- [ApiVersion("6.0")]
- [Produces("application/json")]
- [Route("api/[controller]")]
- public class PLCDataController : BaseController
- {
- public IActionResult Index()
- {
- return View();
- }
- private readonly ILogger<PLCDataController> _logger;
- private readonly IPLC_InputDataRepository _plc_inputdataRepository;
- private readonly IPLC_MonthDataRepository _plc_monthdataRepository;
- public PLCDataController(ILogger<PLCDataController> logger, IPLC_InputDataRepository plc_inputdataRepository, IPLC_MonthDataRepository plc_monthdataRepository)
- {
- _logger = logger;
- _plc_inputdataRepository = plc_inputdataRepository;
- _plc_monthdataRepository = plc_monthdataRepository;
- }
- /// <summary>
- /// 用电量信息
- /// </summary>
- /// <param name="projectid"></param>
- /// <returns></returns>
- [HttpGet("getelectricdatalisto")]
- public IActionResult GetElectricDataListO(string projectid, int datetype = 4)
- {
- DataTable dt = new DataTable();
- dt.Columns.Add("TimeValue");
- dt.Columns.Add("DataValue");
- if (datetype == 0)//天
- {
- int[] test = { 11, 24, 58, 32, 65, 74, 18, 15, 24, 23 };
- DateTime dt1 = DateTime.Now.AddDays(-10);
- for (int i = 1; i <= 10; i++)
- {
- DateTime dt2 = dt1.AddDays(i);
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dt2.Day;
- dr["DataValue"] = 200 - test[i - 1];
- dt.Rows.Add(dr);
- }
- //int h = DateTime.Now.Hour;
- //for (int i = 0; i <= h; i++)
- //{
- // //Random rd = new Random();
- // //int j = rd.Next(1, 20);
- // DataRow dr = dt.NewRow();
- // dr["TimeValue"] = i;
- // if (i % 2 == 0)
- // {
- // dr["DataValue"] = 200 - (i*2);
- // }
- // else
- // {
- // dr["DataValue"] = 150 + (i * 2);
- // }
- // dt.Rows.Add(dr);
- //}
- }
- else if (datetype == 1)//本周
- {
- }
- if (datetype == 2)//月
- {
- int[] test = { 11, 24, 58, 32, 65, 74, 18, 15, 24, 23 };
- DateTime dt1 = DateTime.Now.AddMonths(-10);
- for (int i = 1; i <= 10; i++)
- {
- DateTime dt2 = dt1.AddMonths(i);
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dt2.Month;
- dr["DataValue"] = 1000 + test[i - 1];
- dt.Rows.Add(dr);
- }
- }
- if (datetype == 3)//年
- {
- for (int i = 2016; i <= 2018; i++)
- {
- //Random rd = new Random();
- //int j = rd.Next(1, 20);
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = i;
- dr["DataValue"] = 1500 + (i / 4);
- dt.Rows.Add(dr);
- }
- }
- //string start = string.Empty;
- //string end = string.Empty;
- //GetStartEndTime(datetype, out start, out end);
- //var result = _runningchartRepository.GetRunningList(projectid, start, end, userinfo);
- return Success("获取成功", dt);
- }
- /// <summary>
- /// 用电量信息
- /// </summary>
- /// <param name="projectid"></param>
- /// <returns></returns>
- [HttpGet("getelectricdatalist")]
- public async Task<IActionResult> GetElectricDataList(string projectname, int datetype = 4)
- {
- DataTable dt = new DataTable();
- dt.Columns.Add("TimeValue");
- dt.Columns.Add("DataValue");
- if (datetype == 0)//天
- {
- #region
- for (int i = -10; i < 0; i++)
- {
- string starttime = DateTime.Now.AddDays(i).ToString("yyyy-MM-dd");
- string endtime = DateTime.Now.AddDays(i + 1).ToString("yyyy-MM-dd");
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 1 & s.inputtime == starttime & s.deleteflag == 0&s.projectname ==projectname ));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 1 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname & s.projectname == projectname, null);
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddDays(i + 1).Day;//starttime;
- dr["DataValue"] = totalnum * 1500;
- dt.Rows.Add(dr);
- }
- }
- #endregion
- }
- else if (datetype == 1)//本周
- {
- }
- if (datetype == 2)//月
- {
- #region 新修改
- for (int i = -9; i <= 0; i++)
- {
- DateTime dtime = DateTime.Now.AddMonths(i);
- string starttime = dtime.ToString("yyyy-MM-dd");
- //var aModel = await _plc_monthdataRepository.GetSingle(s => s.datayear == dtime.Year .ToString () & (int)s.datamonth == dtime.Month & s.datakind == 1, null);
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_MonthData>>();
- list.Add(Builders<PLC_MonthData>.Filter.Where(s => s.datayear == dtime.Year.ToString() & (int)s.datamonth == dtime.Month & s.datakind == 1 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_MonthData>.Filter.And(list);
- var dlist = await _plc_monthdataRepository.Get(filter);
- if (dlist == null)
- {
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dtime.Month;
- dr["DataValue"] = 0;
- dt.Rows.Add(dr);
- }
- else
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- decimal x = decimal.Parse(item.endvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dtime.Month;
- dr["DataValue"] = totalnum * 1500;
- dt.Rows.Add(dr);
- }
- }
- #endregion
- #region
- /*for (int i = -9; i <= 0; i++)
- {
- DateTime dtime = DateTime.Now.AddMonths(i);
- string starttime = dtime.AddDays(1 - dtime.Day).ToString("yyyy-MM-dd");
- string endtime = dtime.AddDays(1 - dtime.Day).AddMonths(1).ToString("yyyy-MM-dd");
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 1 & s.inputtime == starttime & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist == null)
- {
- for (int j = 1; j < 30; j++)
- {
- var list1 = new List<FilterDefinition<PLC_InputData>>();
- list1.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 1 & s.inputtime == dtime.AddDays(1 - dtime.Day + j).ToString("yyyy-MM-dd") & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter1 = Builders<PLC_InputData>.Filter.And(list1);
- dlist = await _plc_inputdataRepository.Get(filter1);
- if (dlist != null)
- break;
- }
- }
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 1 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel == null)
- {
- for (int j = 1; j < 30; j++)
- {
- dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 1 & s.inputtime == dtime.AddDays(1 - dtime.Day + j).AddMonths(1).ToString("yyyy-MM-dd") & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel != null)
- break;
- }
- }
- if (dModel == null)
- {
- for (int j = 1; j < 30; j++)
- {
- dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 1 & s.inputtime == dtime.AddDays(-j).ToString("yyyy-MM-dd") & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel != null)
- break;
- }
- }
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dtime.Month;
- dr["DataValue"] = totalnum * 1500;
- dt.Rows.Add(dr);
- }
- }*/
- #endregion
- }
- if (datetype == 3)//年
- {
- #region 新修改
- for (int i = -2; i <= 0; i++)
- {
- DateTime dtime = DateTime.Now.AddYears(i);
- string starttime = dtime.ToString("yyyy-MM-dd");
- //var aModel = await _plc_monthdataRepository.GetSingle(s => s.datayear == dtime.Year .ToString () & (int)s.datamonth == dtime.Month & s.datakind == 1, null);
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_MonthData>>();
- list.Add(Builders<PLC_MonthData>.Filter.Where(s => s.datayear == dtime.Year.ToString() & s.datakind == 1 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_MonthData>.Filter.And(list);
- var dlist = await _plc_monthdataRepository.Get(filter);
- if (dlist == null)
- {
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddYears(i).Year;
- dr["DataValue"] = 0;
- dt.Rows.Add(dr);
- }
- else
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- decimal x = decimal.Parse(item.endvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddYears(i).Year;
- dr["DataValue"] = totalnum * 1500;
- dt.Rows.Add(dr);
- }
- }
- #endregion
- #region
- /*for (int i = 2 ; i >= 0; i--)
- {
- DateTime dt1= DateTime.Parse(DateTime.Now.AddYears(-i).Year + "-01-01 00:00:00");
- DateTime dt2 = DateTime.Parse(DateTime.Now.AddYears(-i + 1).Year + "-01-01 00:00:00");
- string starttime = DateTime.Now.AddYears(-i).Year + "-01-01"; //DateTime.Parse (DateTime.Now.AddYears(-3).Year+"01-01 00:00:00" );
- string endtime = DateTime.Now.AddYears(-i+1).Year + "-01-01";
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 1 & s.inputtime == starttime & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist == null)
- {
- for (int j = 1; j < 365; j++)
- {
- var list1 = new List<FilterDefinition<PLC_InputData>>();
- list1.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 1 & s.inputtime == dt1.AddDays(j).ToString("yyyy-MM-dd") & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter1 = Builders<PLC_InputData>.Filter.And(list1);
- dlist = await _plc_inputdataRepository.Get(filter1);
- if (dlist != null)
- break;
- }
- }
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 1 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel == null)
- {
- for (int j = 1; j < 365; j++)
- {
- dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 1 & s.inputtime == dt2.AddDays(j).AddMonths(1).ToString("yyyy-MM-dd") & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel != null)
- break;
- }
- }
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddYears(-i).Year;
- dr["DataValue"] = totalnum * 1500;
- dt.Rows.Add(dr);
- }
- //Random rd = new Random();
- //int j = rd.Next(1, 20);
-
- }*/
- #endregion
- }
- //string start = string.Empty;
- //string end = string.Empty;
- //GetStartEndTime(datetype, out start, out end);
- //var result = _runningchartRepository.GetRunningList(projectid, start, end, userinfo);
- return Success("获取成功", dt);
- }
- /// <summary>
- /// 用水量信息
- /// </summary>
- /// <param name="projectid"></param>
- /// <returns></returns>
- [HttpGet("getwaterdatalist")]
- public async Task<IActionResult> GetWaterDataList(string projectname, int datetype = 4)
- {
- DataTable dt = new DataTable();
- dt.Columns.Add("TimeValue");
- dt.Columns.Add("DataValue");
- if (datetype == 0)//天
- {
- #region
- for (int i = -10; i < 0; i++)
- {
- string starttime = DateTime.Now.AddDays(i).ToString("yyyy-MM-dd");
- string endtime = DateTime.Now.AddDays(i + 1).ToString("yyyy-MM-dd");
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 0 & s.inputtime == starttime & s.deleteflag == 0 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 0 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname & s.projectname == projectname, null);
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddDays(i + 1).Day; //starttime;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }
- #endregion
- }
- else if (datetype == 1)//本周
- {
- }
- if (datetype == 2)//月
- {
- #region 新修改
- for (int i = -9; i <= 0; i++)
- {
- DateTime dtime = DateTime.Now.AddMonths(i);
- string starttime = dtime.ToString("yyyy-MM-dd");
- //var aModel = await _plc_monthdataRepository.GetSingle(s => s.datayear == dtime.Year .ToString () & (int)s.datamonth == dtime.Month & s.datakind == 1, null);
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_MonthData>>();
- list.Add(Builders<PLC_MonthData>.Filter.Where(s => s.datayear == dtime.Year.ToString() & (int)s.datamonth == dtime.Month & s.datakind == 0 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_MonthData>.Filter.And(list);
- var dlist = await _plc_monthdataRepository.Get(filter);
- if (dlist == null)
- {
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dtime.Month;
- dr["DataValue"] = 0;
- dt.Rows.Add(dr);
- }
- else
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- decimal x = decimal.Parse(item.endvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dtime.Month;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }
- #endregion
- #region
- /*for (int i = -9; i <= 0; i++)
- {
- DateTime dtime = DateTime.Now.AddMonths(i);
- string starttime = dtime.AddDays(1 - dtime.Day).ToString("yyyy-MM-dd");
- string endtime = dtime.AddDays(1 - dtime.Day).AddMonths(1).ToString("yyyy-MM-dd");
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 0 & s.inputtime == starttime & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist == null)
- {
- for (int j = 1; j < 30; j++)
- {
- var list1 = new List<FilterDefinition<PLC_InputData>>();
- list1.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 0 & s.inputtime == dtime.AddDays(1 - dtime.Day + j).ToString("yyyy-MM-dd") & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter1 = Builders<PLC_InputData>.Filter.And(list1);
- dlist = await _plc_inputdataRepository.Get(filter1);
- if (dlist != null)
- break;
- }
- }
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 0 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel == null)
- {
- for (int j = 1; j < 30; j++)
- {
- dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 0 & s.inputtime == dtime.AddDays(1 - dtime.Day + j).AddMonths(1).ToString("yyyy-MM-dd") & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel != null)
- break;
- }
- }
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dtime.Month;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }*/
- #endregion
- }
- if (datetype == 3)//年
- {
- #region 新修改
- for (int i = -2; i <= 0; i++)
- {
- DateTime dtime = DateTime.Now.AddYears(i);
- string starttime = dtime.ToString("yyyy-MM-dd");
- //var aModel = await _plc_monthdataRepository.GetSingle(s => s.datayear == dtime.Year .ToString () & (int)s.datamonth == dtime.Month & s.datakind == 1, null);
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_MonthData>>();
- list.Add(Builders<PLC_MonthData>.Filter.Where(s => s.datayear == dtime.Year.ToString() & s.datakind == 0 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_MonthData>.Filter.And(list);
- var dlist = await _plc_monthdataRepository.Get(filter);
- if (dlist == null)
- {
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddYears(i).Year;
- dr["DataValue"] = 0;
- dt.Rows.Add(dr);
- }
- else
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- decimal x = decimal.Parse(item.endvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddYears(i).Year;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }
- #endregion
- #region
- /*for (int i = 2; i >= 0; i--)
- {
- DateTime dt1 = DateTime.Parse(DateTime.Now.AddYears(-i).Year + "-01-01 00:00:00");
- DateTime dt2 = DateTime.Parse(DateTime.Now.AddYears(-i + 1).Year + "-01-01 00:00:00");
- string starttime = DateTime.Now.AddYears(-i).Year + "-01-01"; //DateTime.Parse (DateTime.Now.AddYears(-3).Year+"01-01 00:00:00" );
- string endtime = DateTime.Now.AddYears(-i + 1).Year + "-01-01";
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 0 & s.inputtime == starttime & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist == null)
- {
- for (int j = 1; j < 365; j++)
- {
- var list1 = new List<FilterDefinition<PLC_InputData>>();
- list1.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 0 & s.inputtime == dt1.AddDays(j).ToString("yyyy-MM-dd") & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter1 = Builders<PLC_InputData>.Filter.And(list1);
- dlist = await _plc_inputdataRepository.Get(filter1);
- if (dlist != null)
- break;
- }
- }
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 1 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel == null)
- {
- for (int j = 1; j < 365; j++)
- {
- dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 1 & s.inputtime == dt2.AddDays(j).AddMonths(1).ToString("yyyy-MM-dd") & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel != null)
- break;
- }
- }
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddYears(-i).Year;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
-
- }*/
- #endregion
- }
- return Success("获取成功", dt);
- }
- /// <summary>
- /// 用气量信息
- /// </summary>
- /// <param name="projectid"></param>
- /// <returns></returns>
- [HttpGet("getgasdatalist")]
- public async Task<IActionResult> GetGasDataList(string projectname, int datetype = 4)
- {
- DataTable dt = new DataTable();
- dt.Columns.Add("TimeValue");
- dt.Columns.Add("DataValue");
- if (datetype == 0)//天
- {
- #region
- for (int i = -10; i < 0; i++)
- {
- string starttime = DateTime.Now.AddDays(i).ToString("yyyy-MM-dd");
- string endtime = DateTime.Now.AddDays(i + 1).ToString("yyyy-MM-dd");
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 2 & s.inputtime == starttime & s.deleteflag == 0 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 2 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname & s.projectname == projectname, null);
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddDays(i + 1).Day; //starttime;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }
- #endregion
- }
- else if (datetype == 1)//本周
- {
- }
- if (datetype == 2)//月
- {
- #region 新修改
- for (int i = -9; i <= 0; i++)
- {
- DateTime dtime = DateTime.Now.AddMonths(i);
- string starttime = dtime.ToString("yyyy-MM-dd");
- //var aModel = await _plc_monthdataRepository.GetSingle(s => s.datayear == dtime.Year .ToString () & (int)s.datamonth == dtime.Month & s.datakind == 1, null);
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_MonthData>>();
- list.Add(Builders<PLC_MonthData>.Filter.Where(s => s.datayear == dtime.Year.ToString() & (int)s.datamonth == dtime.Month & s.datakind == 2 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_MonthData>.Filter.And(list);
- var dlist = await _plc_monthdataRepository.Get(filter);
- if (dlist == null)
- {
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dtime.Month;
- dr["DataValue"] = 0;
- dt.Rows.Add(dr);
- }
- else
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- decimal x = decimal.Parse(item.endvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dtime.Month;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }
- #endregion
- #region
- /*for (int i = -9; i <= 0; i++)
- {
- DateTime dtime = DateTime.Now.AddMonths(i);
- string starttime = dtime.AddDays(1 - dtime.Day).ToString("yyyy-MM-dd");
- string endtime = dtime.AddDays(1 - dtime.Day).AddMonths(1).ToString("yyyy-MM-dd");
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 2 & s.inputtime == starttime & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist == null)
- {
- for (int j = 1; j < 10; j++)
- {
- var list1 = new List<FilterDefinition<PLC_InputData>>();
- list1.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 2 & s.inputtime == dtime.AddDays(1 - dtime.Day + j).ToString("yyyy-MM-dd") & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter1 = Builders<PLC_InputData>.Filter.And(list1);
- dlist = await _plc_inputdataRepository.Get(filter1);
- if (dlist != null)
- break;
- }
- }
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 2 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel == null)
- {
- for (int j = 1; j < 10; j++)
- {
- dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 2 & s.inputtime == dtime.AddDays(1 - dtime.Day + j).AddMonths(1).ToString("yyyy-MM-dd") & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel != null)
- break;
- }
- }
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dtime.Month;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }*/
- #endregion
- }
- if (datetype == 3)//年
- {
- #region 新修改
- for (int i = -2; i <= 0; i++)
- {
- DateTime dtime = DateTime.Now.AddYears(i);
- string starttime = dtime.ToString("yyyy-MM-dd");
- //var aModel = await _plc_monthdataRepository.GetSingle(s => s.datayear == dtime.Year .ToString () & (int)s.datamonth == dtime.Month & s.datakind == 1, null);
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_MonthData>>();
- list.Add(Builders<PLC_MonthData>.Filter.Where(s => s.datayear == dtime.Year.ToString() & s.datakind == 2 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_MonthData>.Filter.And(list);
- var dlist = await _plc_monthdataRepository.Get(filter);
- if (dlist == null)
- {
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddYears(i).Year;
- dr["DataValue"] = 0;
- dt.Rows.Add(dr);
- }
- else
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- decimal x = decimal.Parse(item.endvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddYears(i).Year;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }
- #endregion
- #region
- /*for (int i = 2; i >= 0; i--)
- {
- DateTime dt1 = DateTime.Parse(DateTime.Now.AddYears(-i).Year + "-01-01 00:00:00");
- DateTime dt2 = DateTime.Parse(DateTime.Now.AddYears(-i + 1).Year + "-01-01 00:00:00");
- string starttime = DateTime.Now.AddYears(-i).Year + "-01-01"; //DateTime.Parse (DateTime.Now.AddYears(-3).Year+"01-01 00:00:00" );
- string endtime = DateTime.Now.AddYears(-i + 1).Year + "-01-01";
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 2 & s.inputtime == starttime & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist == null)
- {
- for (int j = 1; j < 365; j++)
- {
- var list1 = new List<FilterDefinition<PLC_InputData>>();
- list1.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 2 & s.inputtime == dt1.AddDays(j).ToString("yyyy-MM-dd") & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter1 = Builders<PLC_InputData>.Filter.And(list1);
- dlist = await _plc_inputdataRepository.Get(filter1);
- if (dlist != null)
- break;
- }
- }
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 2 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel == null)
- {
- for (int j = 1; j < 365; j++)
- {
- dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 2 & s.inputtime == dt2.AddDays(j).AddMonths(1).ToString("yyyy-MM-dd") & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel != null)
- break;
- }
- }
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddYears(-i).Year;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }*/
- #endregion
- }
- return Success("获取成功", dt);
- }
- /// <summary>
- /// 用氧量信息
- /// </summary>
- /// <param name="projectid"></param>
- /// <returns></returns>
- [HttpGet("getoxygendatalist")]
- public async Task<IActionResult> GetOxygenDataList(string projectname, int datetype = 4)
- {
- DataTable dt = new DataTable();
- dt.Columns.Add("TimeValue");
- dt.Columns.Add("DataValue");
- if (datetype == 0)//天
- {
- #region
- for (int i = -10; i < 0; i++)
- {
- string starttime = DateTime.Now.AddDays(i).ToString("yyyy-MM-dd");
- string endtime = DateTime.Now.AddDays(i + 1).ToString("yyyy-MM-dd");
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 3 & s.inputtime == starttime & s.deleteflag == 0 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 3 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname & s.projectname == projectname, null);
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddDays(i + 1).Day;// starttime;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }
- #endregion
- }
- else if (datetype == 1)//本周
- {
- }
- if (datetype == 2)//月
- {
- #region 新修改
- for (int i = -9; i <= 0; i++)
- {
- DateTime dtime = DateTime.Now.AddMonths(i);
- string starttime = dtime.ToString("yyyy-MM-dd");
- //var aModel = await _plc_monthdataRepository.GetSingle(s => s.datayear == dtime.Year .ToString () & (int)s.datamonth == dtime.Month & s.datakind == 1, null);
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_MonthData>>();
- list.Add(Builders<PLC_MonthData>.Filter.Where(s => s.datayear == dtime.Year.ToString() & (int)s.datamonth == dtime.Month & s.datakind == 3 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_MonthData>.Filter.And(list);
- var dlist = await _plc_monthdataRepository.Get(filter);
- if (dlist == null)
- {
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dtime.Month;
- dr["DataValue"] = 0;
- dt.Rows.Add(dr);
- }
- else
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- decimal x = decimal.Parse(item.endvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dtime.Month;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }
- #endregion
- #region
- /*for (int i = -9; i <= 0; i++)
- {
- DateTime dtime = DateTime.Now.AddMonths(i);
- string starttime = dtime.AddDays(1 - dtime.Day).ToString("yyyy-MM-dd");
- string endtime = dtime.AddDays(1 - dtime.Day).AddMonths(1).ToString("yyyy-MM-dd");
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 3 & s.inputtime == starttime & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist == null)
- {
- for (int j = 1; j < 10; j++)
- {
- var list1 = new List<FilterDefinition<PLC_InputData>>();
- list1.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 3 & s.inputtime == dtime.AddDays(1 - dtime.Day + j).ToString("yyyy-MM-dd") & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter1 = Builders<PLC_InputData>.Filter.And(list1);
- dlist = await _plc_inputdataRepository.Get(filter1);
- if (dlist != null)
- break;
- }
- }
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 3 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel == null)
- {
- for (int j = 1; j < 10; j++)
- {
- dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 3 & s.inputtime == dtime.AddDays(1 - dtime.Day + j).AddMonths(1).ToString("yyyy-MM-dd") & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel != null)
- break;
- }
- }
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dtime.Month;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }*/
- #endregion
- }
- if (datetype == 3)//年
- {
- #region 新修改
- for (int i = -2; i <= 0; i++)
- {
- DateTime dtime = DateTime.Now.AddYears(i);
- string starttime = dtime.ToString("yyyy-MM-dd");
- //var aModel = await _plc_monthdataRepository.GetSingle(s => s.datayear == dtime.Year .ToString () & (int)s.datamonth == dtime.Month & s.datakind == 1, null);
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_MonthData>>();
- list.Add(Builders<PLC_MonthData>.Filter.Where(s => s.datayear == dtime.Year.ToString() & s.datakind == 3 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_MonthData>.Filter.And(list);
- var dlist = await _plc_monthdataRepository.Get(filter);
- if (dlist == null)
- {
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddYears(i).Year;
- dr["DataValue"] = 0;
- dt.Rows.Add(dr);
- }
- else
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- decimal x = decimal.Parse(item.endvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddYears(i).Year;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }
- #endregion
- #region
- /*for (int i = 2; i >= 0; i--)
- {
- DateTime dt1 = DateTime.Parse(DateTime.Now.AddYears(-i).Year + "-01-01 00:00:00");
- DateTime dt2 = DateTime.Parse(DateTime.Now.AddYears(-i + 1).Year + "-01-01 00:00:00");
- string starttime = DateTime.Now.AddYears(-i).Year + "-01-01"; //DateTime.Parse (DateTime.Now.AddYears(-3).Year+"01-01 00:00:00" );
- string endtime = DateTime.Now.AddYears(-i + 1).Year + "-01-01";
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 3 & s.inputtime == starttime & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist == null)
- {
- for (int j = 1; j < 365; j++)
- {
- var list1 = new List<FilterDefinition<PLC_InputData>>();
- list1.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 3 & s.inputtime == dt1.AddDays(j).ToString("yyyy-MM-dd") & s.deleteflag == 0));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter1 = Builders<PLC_InputData>.Filter.And(list1);
- dlist = await _plc_inputdataRepository.Get(filter1);
- if (dlist != null)
- break;
- }
- }
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 3 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel == null)
- {
- for (int j = 1; j < 365; j++)
- {
- dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 3 & s.inputtime == dt2.AddDays(j).AddMonths(1).ToString("yyyy-MM-dd") & s.deleteflag == 0 & s.dataname == item.dataname, null);
- if (dModel != null)
- break;
- }
- }
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = DateTime.Now.AddYears(-i).Year;
- dr["DataValue"] = totalnum;
- dt.Rows.Add(dr);
- }
- }*/
- #endregion
- }
- return Success("获取成功", dt);
- }
- /// <summary>
- /// 用水量信息
- /// </summary>
- /// <param name="projectid"></param>
- /// <returns></returns>
- [HttpGet("getwaterdatalisto")]
- public IActionResult GetWaterDataListo(string projectid, int datetype = 4)
- {
- DataTable dt = new DataTable();
- dt.Columns.Add("TimeValue");
- dt.Columns.Add("DataValue");
- if (datetype == 0)//天
- {
- int[] test = { 11, 24, 58, 32, 65, 74, 18, 15, 24, 23 };
- DateTime dt1 = DateTime.Now.AddDays(-10);
- for (int i = 1; i <= 10; i++)
- {
- DateTime dt2 = dt1.AddDays(i);
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dt2.Day;
- dr["DataValue"] = 100 + test[i - 1];
- dt.Rows.Add(dr);
- }
- //int h = DateTime.Now.Hour;
- //for (int i = 0; i <= h; i++)
- //{
- // //Random rd = new Random();
- // //int j = rd.Next(1, 20);
- // DataRow dr = dt.NewRow();
- // dr["TimeValue"] = i;
- // if (i % 2 == 0)
- // {
- // dr["DataValue"] = 200 - (i*2);
- // }
- // else
- // {
- // dr["DataValue"] = 150 + (i * 2);
- // }
- // dt.Rows.Add(dr);
- //}
- }
- else if (datetype == 1)//本周
- {
- }
- if (datetype == 2)//月
- {
- int[] test = { 11, 24, 58, 32, 65, 74, 18, 15, 24, 23 };
- DateTime dt1 = DateTime.Now.AddMonths(-10);
- for (int i = 1; i <= 10; i++)
- {
- DateTime dt2 = dt1.AddMonths(i);
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dt2.Month;
- dr["DataValue"] = 2000 - test[i - 1];
- dt.Rows.Add(dr);
- }
- }
- if (datetype == 3)//年
- {
- for (int i = 2016; i <= 2018; i++)
- {
- //Random rd = new Random();
- //int j = rd.Next(1, 20);
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = i;
- dr["DataValue"] = 1000 + (i / 4);
- dt.Rows.Add(dr);
- }
- }
- //string start = string.Empty;
- //string end = string.Empty;
- //GetStartEndTime(datetype, out start, out end);
- //var result = _runningchartRepository.GetRunningList(projectid, start, end, userinfo);
- return Success("获取成功", dt);
- }
- /// <summary>
- /// 用气量信息
- /// </summary>
- /// <param name="projectid"></param>
- /// <returns></returns>
- [HttpGet("getgasdatalisto")]
- public IActionResult GetGasDataListo(string projectid, int datetype = 4)
- {
- DataTable dt = new DataTable();
- dt.Columns.Add("TimeValue");
- dt.Columns.Add("DataValue");
- if (datetype == 0)//天
- {
- int[] test = { 11, 24, 58, 32, 65, 74, 18, 15, 24, 23 };
- DateTime dt1 = DateTime.Now.AddDays(-10);
- for (int i = 1; i <= 10; i++)
- {
- DateTime dt2 = dt1.AddDays(i);
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dt2.Day;
- dr["DataValue"] = 150 - test[i - 1];
- dt.Rows.Add(dr);
- }
- //int h = DateTime.Now.Hour;
- //for (int i = 0; i <= h; i++)
- //{
- // //Random rd = new Random();
- // //int j = rd.Next(1, 20);
- // DataRow dr = dt.NewRow();
- // dr["TimeValue"] = i;
- // if (i % 2 == 0)
- // {
- // dr["DataValue"] = 200 - (i*2);
- // }
- // else
- // {
- // dr["DataValue"] = 150 + (i * 2);
- // }
- // dt.Rows.Add(dr);
- //}
- }
- else if (datetype == 1)//本周
- {
- }
- if (datetype == 2)//月
- {
- int[] test = { 11, 24, 58, 32, 65, 74, 18, 15, 24, 23 };
- DateTime dt1 = DateTime.Now.AddMonths(-10);
- for (int i = 1; i <= 10; i++)
- {
- DateTime dt2 = dt1.AddMonths(i);
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dt2.Month;
- dr["DataValue"] = 1200 + test[i - 1];
- dt.Rows.Add(dr);
- }
- }
- if (datetype == 3)//年
- {
- for (int i = 2016; i <= 2018; i++)
- {
- //Random rd = new Random();
- //int j = rd.Next(1, 20);
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = i;
- dr["DataValue"] = 1100 + (i / 4);
- dt.Rows.Add(dr);
- }
- }
- //string start = string.Empty;
- //string end = string.Empty;
- //GetStartEndTime(datetype, out start, out end);
- //var result = _runningchartRepository.GetRunningList(projectid, start, end, userinfo);
- return Success("获取成功", dt);
- }
- /// <summary>
- /// 用氧量信息
- /// </summary>
- /// <param name="projectid"></param>
- /// <returns></returns>
- [HttpGet("getoxygendatalisto")]
- public IActionResult GetOxygenDataListo(string projectid, int datetype = 3)
- {
- DataTable dt = new DataTable();
- dt.Columns.Add("TimeValue");
- dt.Columns.Add("DataValue");
- if (datetype == 0)//天
- {
- int[] test = { 11, 24, 58, 32, 65, 74, 18, 15, 24, 23 };
- DateTime dt1 = DateTime.Now.AddDays(-10);
- for (int i = 1; i <= 10; i++)
- {
- DateTime dt2 = dt1.AddDays(i);
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dt2.Day;
- dr["DataValue"] = 170 - test[i - 1];
- dt.Rows.Add(dr);
- }
- //int h = DateTime.Now.Hour;
- //for (int i = 0; i <= h; i++)
- //{
- // //Random rd = new Random();
- // //int j = rd.Next(1, 20);
- // DataRow dr = dt.NewRow();
- // dr["TimeValue"] = i;
- // if (i % 2 == 0)
- // {
- // dr["DataValue"] = 200 - (i*2);
- // }
- // else
- // {
- // dr["DataValue"] = 150 + (i * 2);
- // }
- // dt.Rows.Add(dr);
- //}
- }
- else if (datetype == 1)//本周
- {
- }
- if (datetype == 2)//月
- {
- int[] test = { 11, 24, 58, 32, 65, 74, 18, 15, 24, 23 };
- DateTime dt1 = DateTime.Now.AddMonths(-10);
- for (int i = 1; i <= 10; i++)
- {
- DateTime dt2 = dt1.AddMonths(i);
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = dt2.Month;
- dr["DataValue"] = 1700 + test[i - 1];
- dt.Rows.Add(dr);
- }
- }
- if (datetype == 3)//年
- {
- for (int i = 2016; i <= 2018; i++)
- {
- //Random rd = new Random();
- //int j = rd.Next(1, 20);
- DataRow dr = dt.NewRow();
- dr["TimeValue"] = i;
- dr["DataValue"] = 1000 + (i / 2);
- dt.Rows.Add(dr);
- }
- }
- //string start = string.Empty;
- //string end = string.Empty;
- //GetStartEndTime(datetype, out start, out end);
- //var result = _runningchartRepository.GetRunningList(projectid, start, end, userinfo);
- return Success("获取成功", dt);
- }
- /// <summary>
- /// 获取当天、本周、本月、本年、累计时间
- /// </summary>
- /// <param name="datetype"></param>
- /// <param name="start"></param>
- /// <param name="end"></param>
- public void GetStartEndTime(int datetype, out string start, out string end)
- {
- start = string.Empty;
- end = string.Empty;
- var datenow = DateTime.Now;
- var datestart = datenow;
- var dateend = datenow;
- switch (datetype)
- {
- case 0://当天
- break;
- case 1://本周
- int n = (int)datenow.DayOfWeek == 0 ? 7 : (int)datenow.DayOfWeek;
- datestart = datenow.AddDays(1 - n);//本周周一
- dateend = datestart.AddDays(6);//本周周日
- break;
- case 2://本月
- datestart = datenow.AddDays(1 - datenow.Day); //本月月初
- dateend = datestart.AddMonths(1).AddDays(-1); //本月月末
- break;
- case 3://本年
- datestart = new DateTime(datenow.Year, 1, 1); //本年年初
- dateend = new DateTime(datenow.Year, 12, 31); //本年年末
- break;
- case 4://全部
- break;
- default:
- break;
- }
- if (datetype != 4)
- {
- start = datestart.ToString("yyyy-MM-dd") + " 00:00:00";
- end = dateend.ToString("yyyy-MM-dd") + " 23:59:59";
- }
- }
- #region 报表
- //获取数据
- [HttpGet("getdatalist")]
- public async Task<IActionResult> GetDataList(string projectname,string checkyear, string checkmonth)
- {
- DataTable dtNew = new DataTable();
- dtNew = GetData(projectname,checkyear, checkmonth).Result;
- if (dtNew != null)
- {
- return Success("获取能耗报表数据成功", dtNew);
- }
- else
- {
- return Error("获取能耗报表数据失败");
- }
- }
- //获取数据源
- [HttpGet("getdata")]
- private async Task<DataTable> GetData(string projectname,string checkyear, string checkmonth)
- {
- DataTable dtNew = new DataTable();
- #region 编辑表头
- DataColumn dc1 = new DataColumn("日期", Type.GetType("System.String"));
- DataColumn dc2 = new DataColumn("水", Type.GetType("System.String"));
- DataColumn dc3 = new DataColumn("电", Type.GetType("System.String"));
- DataColumn dc4 = new DataColumn("气", Type.GetType("System.String"));
- DataColumn dc5 = new DataColumn("氧", Type.GetType("System.String"));
- dtNew.Columns.Add(dc1);
- dtNew.Columns.Add(dc2);
- dtNew.Columns.Add(dc3);
- dtNew.Columns.Add(dc4);
- dtNew.Columns.Add(dc5);
- decimal totals = 0;//水合计
- decimal totald = 0;//电合计
- decimal totalq = 0;//气合计
- decimal totaly = 0;//氧合计
- #endregion
- if (!String.IsNullOrEmpty(checkyear))
- {
- if (String.IsNullOrEmpty(checkmonth))//查询年报表(按年的每个月统计)
- {
- for (int i = 1; i <= 12; i++)
- {
- DataRow dr = dtNew.NewRow();
- //查询水
- #region
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_MonthData>>();
- list.Add(Builders<PLC_MonthData>.Filter.Where(s => s.datayear == checkyear & (int)s.datamonth == i & s.datakind == 0 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_MonthData>.Filter.And(list);
- var dlist = await _plc_monthdataRepository.Get(filter);
- if (dlist == null)
- {
- dr["水"] = 0;
- }
- else
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- if (!String.IsNullOrEmpty(item.endvalue))
- {
- decimal x = decimal.Parse(item.endvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- dr["水"] = totalnum;
- totals += totalnum;
- }
- #endregion
- //查询电
- #region
- decimal totalnum1 = 0;
- var list1 = new List<FilterDefinition<PLC_MonthData>>();
- list1.Add(Builders<PLC_MonthData>.Filter.Where(s => s.datayear == checkyear & (int)s.datamonth == i & s.datakind == 1&s.projectname== projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter1 = Builders<PLC_MonthData>.Filter.And(list1);
- var dlist1 = await _plc_monthdataRepository.Get(filter1);
- if (dlist1 == null)
- {
- dr["电"] = 0;
- }
- else
- {
- var lis = dlist1.ToList();
- foreach (var item in lis)
- {
- if (!String.IsNullOrEmpty(item.endvalue))
- {
- decimal x = decimal.Parse(item.endvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum1 += x; }
- }
- }
- dr["电"] = totalnum1*1500;
- totald += totalnum1 * 1500;
- }
- #endregion
- //查询气
- #region
- decimal totalnum2 = 0;
- var list2 = new List<FilterDefinition<PLC_MonthData>>();
- list2.Add(Builders<PLC_MonthData>.Filter.Where(s => s.datayear == checkyear & (int)s.datamonth == i & s.datakind == 2 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter2 = Builders<PLC_MonthData>.Filter.And(list2);
- var dlist2 = await _plc_monthdataRepository.Get(filter2);
- if (dlist2 == null)
- {
- dr["气"] = 0;
- }
- else
- {
- var lis = dlist2.ToList();
- foreach (var item in lis)
- {
- if (!String.IsNullOrEmpty(item.endvalue))
- {
- decimal x = decimal.Parse(item.endvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum2 += x; }
- }
- }
- dr["气"] = totalnum2 ;
- totalq += totalnum2;
- }
- #endregion
- //查询氧
- #region
- decimal totalnum3 = 0;
- var list3 = new List<FilterDefinition<PLC_MonthData>>();
- list3.Add(Builders<PLC_MonthData>.Filter.Where(s => s.datayear == checkyear & (int)s.datamonth == i & s.datakind == 3 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter3 = Builders<PLC_MonthData>.Filter.And(list3);
- var dlist3 = await _plc_monthdataRepository.Get(filter3);
- if (dlist3 == null)
- {
- dr["氧"] = 0;
- }
- else
- {
- var lis = dlist3.ToList();
- foreach (var item in lis)
- {
- if (!String.IsNullOrEmpty(item.endvalue))
- {
- decimal x = decimal.Parse(item.endvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum3 += x; }
- }
- }
- dr["氧"] = totalnum3;
- totaly += totalnum3;
- }
- #endregion
- dr["日期"] = checkyear + "年" + i.ToString() + "月";
- dtNew.Rows.Add(dr);
- }
- #region 合计行
- DataRow dr1 = dtNew.NewRow();
- dr1["日期"] = "合计";
- dr1["水"] = totals;
- dr1["电"] = totald;
- dr1["气"] = totalq;
- dr1["氧"] = totaly;
- dtNew.Rows.Add(dr1);
- #endregion
- }
- else//查询月报表
- {
- DateTime datecheck = DateTime.Parse (checkyear + "-" + checkmonth + "-01 12:00:00");
- DateTime datestart = datecheck.AddDays(1 - datecheck.Day); //月初
- DateTime dateend = datestart.AddMonths(1).AddDays(-1); //月末
- for (int i = 0; i < dateend.Day; i++)
- {
- DataRow dr = dtNew.NewRow();
- string starttime = datestart.AddDays(i).ToString("yyyy-MM-dd");
- string endtime = datestart.AddDays(i+1).ToString("yyyy-MM-dd");
- #region 水
- decimal totalnum = 0;
- var list = new List<FilterDefinition<PLC_InputData>>();
- list.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 0 & s.inputtime == starttime & s.deleteflag == 0 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter = Builders<PLC_InputData>.Filter.And(list);
- var dlist = await _plc_inputdataRepository.Get(filter);
- if (dlist != null)
- {
- var lis = dlist.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 0 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname & s.projectname == projectname, null);
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum += x; }
- }
- }
- dr["水"] = totalnum;
- totals += totalnum;
- }
- #endregion
- #region 电
- decimal totalnum1 = 0;
- var list1 = new List<FilterDefinition<PLC_InputData>>();
- list1.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 1 & s.inputtime == starttime & s.deleteflag == 0 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter1 = Builders<PLC_InputData>.Filter.And(list1);
- var dlist1 = await _plc_inputdataRepository.Get(filter1);
- if (dlist1 != null)
- {
- var lis = dlist1.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 1 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname & s.projectname == projectname, null);
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum1 += x; }
- }
- }
- dr["电"] = totalnum1*1500;
- totald += totalnum1 * 1500;
- }
- #endregion
- #region 气
- decimal totalnum2 = 0;
- var list2 = new List<FilterDefinition<PLC_InputData>>();
- list2.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 2 & s.inputtime == starttime & s.deleteflag == 0 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter2 = Builders<PLC_InputData>.Filter.And(list2);
- var dlist2 = await _plc_inputdataRepository.Get(filter2);
- if (dlist2 != null)
- {
- var lis = dlist2.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 2 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname & s.projectname == projectname, null);
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum2 += x; }
- }
- }
- dr["气"] = totalnum2;
- totalq += totalnum2;
- }
- #endregion
- #region 氧
- decimal totalnum3 = 0;
- var list3 = new List<FilterDefinition<PLC_InputData>>();
- list3.Add(Builders<PLC_InputData>.Filter.Where(s => s.datakind == 3 & s.inputtime == starttime & s.deleteflag == 0 & s.projectname == projectname));// || s.dealtype.Equals(2) || s.dealtype.Equals(3) || s.dealtype.Equals(4) || s.dealtype.Equals(5) || s.dealtype.Equals(6)
- var filter3 = Builders<PLC_InputData>.Filter.And(list3);
- var dlist3 = await _plc_inputdataRepository.Get(filter3);
- if (dlist3 != null)
- {
- var lis = dlist3.ToList();
- foreach (var item in lis)
- {
- var dModel = await _plc_inputdataRepository.GetSingle(s => s.datakind == 3 & s.inputtime == endtime & s.deleteflag == 0 & s.dataname == item.dataname & s.projectname == projectname, null);
- if (dModel != null)
- {
- decimal x = decimal.Parse(dModel.startvalue) - decimal.Parse(item.startvalue);
- if (x > 0)
- { totalnum3 += x; }
- }
- }
- dr["氧"] = totalnum3;
- totaly += totalnum3;
- }
- #endregion
- dr["日期"] = datestart.AddDays(i).ToString("yyyy年MM月dd日");
- dtNew.Rows.Add(dr);
- }
- #region 合计行
- DataRow dr1 = dtNew.NewRow();
- dr1["日期"] = "合计";
- dr1["水"] = totals ;
- dr1["电"] = totald ;
- dr1["气"] = totalq;
- dr1["氧"] = totaly;
- dtNew.Rows.Add(dr1);
- #endregion
- }
- }
- return dtNew;
- }
- //导出
-
- [HttpGet("exportexcel")]
- public async Task<IActionResult> ExportExcelAsync(string projectname, string checkyear, string checkmonth)
- {
- try
- {
- DataTable dtNew = new DataTable();
- dtNew = GetData(projectname, checkyear, checkmonth).Result;
- if (dtNew != null)
- {
- //导出dtnew
- NPOIHelper npoi = new NPOIHelper();
- string[] cols = { "日期", "水", "电", "气", "氧" };
- byte[] sm = npoi.ExportToExcel1(dtNew, cols);
- if (sm != null)
- {
- if (!String.IsNullOrEmpty(checkyear))
- {
- if (String.IsNullOrEmpty(checkmonth))//查询年报表(按年的每个月统计)
- {
- return File(sm, "application/vnd.ms-excel", projectname +"能耗年报.xlsx");
- }
- else
- {
- return File(sm, "application/vnd.ms-excel", projectname + "能耗月报.xlsx");
- }
- }
- }
- else
- {
- return Error("导出失败");
- }
- }
- return Error("导出失败");
- //return Success("根据条件获取数据成功", tasklist);
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "导出异常");
- return Error("导出失败");
- }
- //return Success("导出成功");
- }
- #endregion
- }
- }
|