几行设计规范 概念
对代码 进而进行了优化
using Services; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Common; using MongoDB.Driver; using MongoDB.Driver.Builders; using MongoDB.Bson.Serialization.Attributes; using System.Data.Entity; using Models.SysModels; using Models.UserModels; using Models.Constraints; using System.Data.SqlClient; using System.Diagnostics; using System.IO; using Services.UserServices; using Models.PlanModels; using Models.TaskModels; using IServices.ISysServices; using Services.SysServices; using IServices.IUserServices; using Models.ViewModels; using Services.Infrastructure; using Services.PlanServices; using IServices.IMonitorServices; using Services.MonitorServices; using Models.ViewModels.VMRoutePlan; using DBHelper.MySql; using System.Collections; using System.Reflection; namespace WF_DRs { public partial class Form1 : Form, IForm { private DateTime _lastRun = DateTime.MinValue; private bool _stop = false; public Form1() { InitializeComponent(); //Trace.Listeners.Add(new ShowLogTraceListener(this)); } public void showLog(string title, string message) // 实现 { this.Invoke((EventHandler)delegate { if (listBox1.Items.Count > 1000) listBox1.Items.RemoveAt(listBox1.Items.Count - 1); listBox1.Items.Insert(0, string.Format("{0} {1} {2}", DateTime.Now, title, message)); }); } private void button1_Click(object sender, EventArgs e) { DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value; Summary(st, et); } private void Summary(DateTime st, DateTime et) { showLog("Summary", "Start"); insertShowlog("Summary----Start", st, et); List<Summary> Summlist = new List<Summary>(); //DateTime st = DateTime.Now.Date; //DateTime et = st.AddDays(1); DateTime tmpdtm = st; try { using (var db = new ApplicationDb()) { var projs = db.SysProjects.Where(a => !a.Deleted).ToList(); var linedets = db.LineInfos.Where(a => !a.Deleted && a.TaskTime >= st & a.TaskTime < et).Select(a => new { a.TaskTime, a.ProjectId, a.Id }); int dayint = 1; var dictbo = db.SysDictBos.ToList(); // //var atmbar = db.AtmBarCodes.Where(a => !a.Deleted); var atmbar = db.AtmBarCodes; var Gunssss = db.Guns.Where(a => !a.Deleted).ToList(); var LineLogisticsssss = db.LineLogisticss.Where(a => !a.Deleted); var KeyPasswordssss = db.KeyPasswords.Where(a => !a.Deleted); var AtmPdasssss = db.AtmPdas.Where(a => !a.Deleted).ToList(); var WorkingTELssss = db.WorkingTELs.Where(a => !a.Deleted).ToList(); var AtmTrucksssss = db.AtmTrucks.Where(a => !a.Deleted).ToList(); var GPSNavigatorsss = db.GPSNavigator.Where(a => !a.Deleted).ToList(); var EasyPassTagssss = db.EasyPassTag.Where(a => !a.Deleted).ToList(); var ATMPassCardsssss = db.ATMPassCards.Where(a => !a.Deleted).ToList(); var OtherBarcodessss = db.OtherBarcode.Where(a => !a.Deleted).ToList(); while (tmpdtm < et) // 时间 { var tmpenddtm = tmpdtm.AddDays(1); foreach (var item in projs) //城市 { //Guns var Guns = Gunssss.Where(a => a.ProjectId == item.Id).Select(a => new { a.IsDamage, a.AtmBarCodeId }).ToList(); List<Guid> gunbarcode = Guns.Select(a => a.AtmBarCodeId).ToList(); var gun_barcode = atmbar.Where(a => gunbarcode.Contains(a.Id)).ToList(); Summary sm = new Summary(); sm.Total = gun_barcode.Count(); sm.Date = tmpdtm; sm.Branck = item.Name; sm.Item = "Gun"; //var lineids = linedets.Where(a => a.TaskTime == tmpdtm.Date && a.ProjectId == item.Id).Select(a => a.Id).ToList(); var lineids = linedets.Where(a => a.TaskTime >= tmpdtm.Date && a.TaskTime < tmpenddtm && a.ProjectId == item.Id).Select(a => a.Id).ToList(); int p1 = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId) && a.PState >= 40 && a.LogTag == "191" && !a.Deleted).Count(); int p2 = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm) .Where(a => a.FLG == 10).Where(a => a.LogTag == "191" && !a.Deleted && a.ProjectId == item.Id).Count(); sm.Issued = (p1 + p2); sm.Damaged = (Guns.Count(a => a.IsDamage)); int r1 = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm).Where(a => a.LogTag == "191" && !a.Deleted && a.ProjectId == item.Id).Where(a => a.FLG == 20).Count(); int r2 = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId)).Where(a => a.LogTag == "191" && !a.Deleted).Where(a => a.FLG == 20).Count(); sm.Returned = (r1 + r2); Summlist.Add(sm); //foreach (var goods in guns) // 物品 //{ // //foreach (var taskdate in linedets.where(a => a.projectid == item.projectid )) // 时间 // //{ // //sm.total = gun_barcode.where(a => a.createddate.date <= sm.date).count().tostr(); // int r1 = db.persongoodss.where(a => a.createddate <= sm.date).where(a => a.logtag == "191" && !a.deleted && a.projectid == item.projectid).where(a => a.flg == 20).count(); // int r2 = db.linelogisticss.where(a => a.createddate <= sm.date).where(a => a.logtag == "191" && !a.deleted && a.projectid == item.projectid).where(a => a.flg == 20).count(); // sm.returned = (r1 + r2).tostr(); // } //} //atm key spare key var atmkey = KeyPasswordssss.Where(a => !a.Deleted).Where(a => a.ProjectId == item.Id && a.KeyPasswordType == Models.Constraints.KeyPasswordTypes.KeyPasswordTypes_KEY).Select(a => new { a.AtmBarCodeId, a.keyState }).ToList(); List<Guid> atmkeybarcode = atmkey.Select(a => a.AtmBarCodeId).ToList(); var atmkey_barcode = atmbar.Where(a => atmkeybarcode.Contains(a.Id)).ToList(); Summary atmk2 = new Summary(); atmk2.Total = atmkey_barcode.Count(); atmk2.Date = tmpdtm; atmk2.Branck = item.Name; atmk2.Item = "ATM key"; //var lineids = linedets.Where(a => a.TaskTime == tmpdtm && a.ProjectId == item.Id).Select(a => a.Id).ToList(); int p1atmkey = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId) && a.PState >= 40 && a.LogTag == "181" && !a.Deleted).Count(); int p2atmkey = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm) .Where(a => a.FLG == 10).Where(a => a.LogTag == "181" && !a.Deleted && a.ProjectId == item.Id).Count(); atmk2.Issued = (p1atmkey + p2atmkey); //atmkey.Where(a => a.keyState == Models.Constraints.KeyStates.KeyStates_Out).Count(); // Sum(a => a.keyState); atmk2.Damaged = 0; //(PDA.Count(a => a.IsDamage)).ToStr(); int r1atmkey = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm).Where(a => a.LogTag == "181" && !a.Deleted && a.ProjectId == item.Id).Where(a => a.FLG == 20).Count(); int r2atmkey = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId)).Where(a => a.LogTag == "181" && !a.Deleted).Where(a => a.FLG == 20).Count(); atmk2.Returned = (r1atmkey + r2atmkey);//atmkey.Where(a => a.keyState == Models.Constraints.KeyStates.KeyStates_Returned).Count(); Summlist.Add(atmk2); var atmkeybei = KeyPasswordssss.Where(a => !a.Deleted).Where(a => a.ProjectId == item.Id && a.KeyPasswordType == Models.Constraints.KeyPasswordTypes.KeyByPasswordTypes_KEY).Select(a => new { a.AtmBarCodeId, a.keyState }).ToList(); List<Guid> atmkeybarcodebei = atmkeybei.Select(a => a.AtmBarCodeId).ToList(); var atmkey_barcodebei = atmbar.Where(a => atmkeybarcodebei.Contains(a.Id)).ToList(); Summary atmk2bei = new Summary(); atmk2bei.Total = atmkey_barcodebei.Count(); atmk2bei.Date = tmpdtm; atmk2bei.Branck = item.Name; atmk2bei.Item = "AtmSpareKey"; //var lineids = linedets.Where(a => a.TaskTime == tmpdtm && a.ProjectId == item.Id).Select(a => a.Id).ToList(); int p1atmkeybei = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId) && a.PState >= 40 && a.LogTag == "182" && !a.Deleted).Count(); int p2atmkeybei = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm) .Where(a => a.FLG == 10).Where(a => a.LogTag == "182" && !a.Deleted && a.ProjectId == item.Id).Count(); atmk2bei.Issued = (p1atmkeybei + p2atmkeybei); //atmkey.Where(a => a.keyState == Models.Constraints.KeyStates.KeyStates_Out).Count(); // Sum(a => a.keyState); atmk2bei.Damaged = 0; //(PDA.Count(a => a.IsDamage)).ToStr(); int r1atmkeybei = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm).Where(a => a.LogTag == "182" && !a.Deleted && a.ProjectId == item.Id).Where(a => a.FLG == 20).Count(); int r2atmkeybei = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId)).Where(a => a.LogTag == "182" && !a.Deleted).Where(a => a.FLG == 20).Count(); atmk2bei.Returned = (r1atmkeybei + r2atmkeybei);//atmkey.Where(a => a.keyState == Models.Constraints.KeyStates.KeyStates_Returned).Count(); Summlist.Add(atmk2bei); // //PDA var PDA = AtmPdasssss.Where(a => a.ProjectId == item.Id).Select(a => new { a.AtmBarCodeId }).ToList(); List<Guid> PDAbarcode = PDA.Select(a => a.AtmBarCodeId).ToList(); var PDA_barcode = atmbar.Where(a => PDAbarcode.Contains(a.Id)).ToList(); Summary sm2 = new Summary(); sm2.Total = PDA_barcode.Count(); sm2.Date = tmpdtm; sm2.Branck = item.Name; sm2.Item = "PDA"; //var lineids = linedets.Where(a => a.TaskTime == tmpdtm && a.ProjectId == item.Id).Select(a => a.Id).ToList(); int p1pda = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId) && a.PState >= 40 && a.LogTag == "PDA" && !a.Deleted).Count(); int p2pda = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm) .Where(a => a.FLG == 10).Where(a => a.LogTag == "PDA" && !a.Deleted && a.ProjectId == item.Id).Count(); sm2.Issued = (p1pda + p2pda); sm2.Damaged = 0; //(PDA.Count(a => a.IsDamage)).ToStr(); int r1pda = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm).Where(a => a.LogTag == "PDA" && !a.Deleted && a.ProjectId == item.Id).Where(a => a.FLG == 20).Count(); int r2pda = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId)).Where(a => a.LogTag == "PDA" && !a.Deleted).Where(a => a.FLG == 20).Count(); sm2.Returned = (r1pda + r2pda); Summlist.Add(sm2); //MobilePhone var MobilePhone = WorkingTELssss.Where(a => a.ProjectId == item.Id).Select(a => new { a.IsDamage, a.AtmBarCodeId }).ToList(); List<Guid> MobilePhonebarcode = MobilePhone.Select(a => a.AtmBarCodeId).ToList(); var MobilePhone_barcode = atmbar.Where(a => MobilePhonebarcode.Contains(a.Id)).ToList(); Summary sm3 = new Summary(); sm3.Total = MobilePhone_barcode.Count(); sm3.Date = tmpdtm; sm3.Branck = item.Name; sm3.Item = "MobilePhone"; //var lineids = linedets.Where(a => a.TaskTime == tmpdtm && a.ProjectId == item.Id).Select(a => a.Id).ToList(); int p1MobilePhone = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId) && a.PState >= 40 && a.LogTag == "185" && !a.Deleted).Count(); int p2MobilePhone = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm) .Where(a => a.FLG == 10).Where(a => a.LogTag == "185" && !a.Deleted && a.ProjectId == item.Id).Count(); sm3.Issued = (p1MobilePhone + p2MobilePhone); sm3.Damaged = (MobilePhone.Count(a => a.IsDamage)); int r1MobilePhone = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm).Where(a => a.LogTag == "185" && !a.Deleted && a.ProjectId == item.Id).Where(a => a.FLG == 20).Count(); int r2MobilePhone = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId)).Where(a => a.LogTag == "185" && !a.Deleted).Where(a => a.FLG == 20).Count(); sm3.Returned = (r1MobilePhone + r2MobilePhone); Summlist.Add(sm3); //Vehicle key //Vehicle var AtmTrucks = AtmTrucksssss.Where(a => a.ProjectId == item.Id).Select(a => new { a.AtmBarCodeId }).ToList(); List<Guid> AtmTrucksbarcode = AtmTrucks.Select(a => a.AtmBarCodeId).ToList(); var AtmTrucks_barcode = atmbar.Where(a => AtmTrucksbarcode.Contains(a.Id)).ToList(); Summary sm4 = new Summary(); sm4.Total = AtmTrucks_barcode.Count(); sm4.Date = tmpdtm; sm4.Branck = item.Name; sm4.Item = "Vehicle"; //var lineids = linedets.Where(a => a.TaskTime == tmpdtm && a.ProjectId == item.Id).Select(a => a.Id).ToList(); int p1Vehicle = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId) && a.PState >= 40 && a.LogTag == "186" && !a.Deleted).Count(); int p2Vehicle = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm) .Where(a => a.FLG == 10).Where(a => a.LogTag == "186" && !a.Deleted && a.ProjectId == item.Id).Count(); sm4.Issued = (p1Vehicle + p2Vehicle); sm4.Damaged = 0; //(AtmTrucks.Count(a => a.IsDamage)).ToStr(); int r1Vehicle = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm).Where(a => a.LogTag == "186" && !a.Deleted && a.ProjectId == item.Id).Where(a => a.FLG == 20).Count(); int r2Vehicle = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId)).Where(a => a.LogTag == "186" && !a.Deleted).Where(a => a.FLG == 20).Count(); sm4.Returned = (r1Vehicle + r2Vehicle); Summlist.Add(sm4); // //Navigator var GPSNavigator = GPSNavigatorsss.Where(a => a.ProjectId == item.Id).Select(a => new { a.AtmBarCodeId }).ToList(); List<Guid> GPSNavigatorbarcode = GPSNavigator.Select(a => a.AtmBarCodeId).ToList(); var GPSNavigatorbarcode_barcode = atmbar.Where(a => GPSNavigatorbarcode.Contains(a.Id)).ToList(); Summary sm5 = new Summary(); sm5.Total = GPSNavigatorbarcode_barcode.Count(); sm5.Date = tmpdtm; sm5.Branck = item.Name; sm5.Item = "Navigator"; //var lineids = linedets.Where(a => a.TaskTime == tmpdtm && a.ProjectId == item.Id).Select(a => a.Id).ToList(); int p1Navigator = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId) && a.PState >= 40 && a.LogTag == "195" && !a.Deleted).Count(); int p2Navigator = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm) .Where(a => a.FLG == 10).Where(a => a.LogTag == "195" && !a.Deleted && a.ProjectId == item.Id).Count(); sm5.Issued = (p1Navigator + p2Navigator); sm5.Damaged = 0; //(AtmTrucks.Count(a => a.IsDamage)).ToStr(); int r1Navigator = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm).Where(a => a.LogTag == "195" && !a.Deleted && a.ProjectId == item.Id).Where(a => a.FLG == 20).Count(); int r2Navigator = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId)).Where(a => a.LogTag == "195" && !a.Deleted).Where(a => a.FLG == 20).Count(); sm5.Returned = (r1Navigator + r2Navigator); Summlist.Add(sm5); //EasyPassTag var EasyPassTag = EasyPassTagssss.Where(a => a.ProjectId == item.Id).Select(a => new { a.AtmBarCodeId }).ToList(); List<Guid> EasyPassTagbarcode = EasyPassTag.Select(a => a.AtmBarCodeId).ToList(); var EasyPassTagbarcode_barcode = atmbar.Where(a => EasyPassTagbarcode.Contains(a.Id)).ToList(); Summary sm6 = new Summary(); sm6.Total = EasyPassTagbarcode_barcode.Count(); sm6.Date = tmpdtm; sm6.Branck = item.Name; sm6.Item = "EasyPassTag"; //var lineids = linedets.Where(a => a.TaskTime == tmpdtm && a.ProjectId == item.Id).Select(a => a.Id).ToList(); int p1EasyPassTag = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId) && a.PState >= 40 && a.LogTag == "194" && !a.Deleted).Count(); int p2EasyPassTag = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm) .Where(a => a.FLG == 10).Where(a => a.LogTag == "194" && !a.Deleted && a.ProjectId == item.Id).Count(); sm6.Issued = (p1EasyPassTag + p2EasyPassTag); sm6.Damaged = 0; //(AtmTrucks.Count(a => a.IsDamage)).ToStr(); int r1EasyPassTag = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm).Where(a => a.LogTag == "194" && !a.Deleted && a.ProjectId == item.Id).Where(a => a.FLG == 20).Count(); int r2EasyPassTag = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId)).Where(a => a.LogTag == "194" && !a.Deleted).Where(a => a.FLG == 20).Count(); sm6.Returned = (r1EasyPassTag + r2EasyPassTag); Summlist.Add(sm6); //AdminCard var ATMPassCards = ATMPassCardsssss.Where(a => a.ProjectId == item.Id).Select(a => new { a.BarCodeId }).ToList(); List<Guid> ATMPassCardsbarcode = ATMPassCards.Select(a => a.BarCodeId).ToList(); var ATMPassCardsbarcode_barcode = atmbar.Where(a => ATMPassCardsbarcode.Contains(a.Id)).ToList(); Summary sm7 = new Summary(); sm7.Total = ATMPassCardsbarcode_barcode.Count(); sm7.Date = tmpdtm; sm7.Branck = item.Name; sm7.Item = "AdminCard"; //var lineids = linedets.Where(a => a.TaskTime == tmpdtm && a.ProjectId == item.Id).Select(a => a.Id).ToList(); int p1AdminCard = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId) && a.PState >= 40 && a.LogTag == "99" && !a.Deleted).Count(); int p2AdminCard = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm) .Where(a => a.FLG == 10).Where(a => a.LogTag == "99" && !a.Deleted && a.ProjectId == item.Id).Count(); sm7.Issued = (p1AdminCard + p2AdminCard); sm7.Damaged = 0; //(AtmTrucks.Count(a => a.IsDamage)).ToStr(); int r1AdminCard = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm).Where(a => a.LogTag == "99" && !a.Deleted && a.ProjectId == item.Id).Where(a => a.FLG == 20).Count(); int r2AdminCard = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId)).Where(a => a.LogTag == "99" && !a.Deleted).Where(a => a.FLG == 20).Count(); sm7.Returned = (r1AdminCard + r2AdminCard); Summlist.Add(sm7); //Other var OtherBarcode = OtherBarcodessss.Where(a => a.ProjectId == item.Id).Select(a => new { a.AtmBarCodeId, a.BarCodeType }).ToList(); foreach (var othertype in OtherBarcode.Distinct(a => a.BarCodeType)) { List<Guid> OtherBarcodebarcode = OtherBarcode.Where(a => a.BarCodeType == othertype.BarCodeType) .Select(a => a.AtmBarCodeId).ToList(); var OtherBarcodebarcode_barcode = atmbar.Where(a => OtherBarcodebarcode.Contains(a.Id)).ToList(); Summary ot8 = new Summary(); ot8.Total = OtherBarcodebarcode_barcode.Count(); ot8.Date = tmpdtm; ot8.Branck = item.Name; ot8.Item = othertype.BarCodeType; var dictid = dictbo.FirstOrDefault(a => a.DictName == othertype.BarCodeType) != null ? dictbo.FirstOrDefault(a => a.DictName == othertype.BarCodeType).DictDisplayName : ""; int p1Other = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId) && a.PState >= 40 && a.LogTag == dictid && !a.Deleted).Count(); int p2Other = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm) .Where(a => a.FLG == 10).Where(a => a.LogTag == dictid && !a.Deleted && a.ProjectId == item.Id).Count(); ot8.Issued = (p1Other + p2Other); ot8.Damaged = 0; int r1Other = db.PersonGoodss.Where(a => a.CreatedDate >= tmpdtm && a.CreatedDate < tmpenddtm).Where(a => a.LogTag == dictid && !a.Deleted && a.ProjectId == item.Id).Where(a => a.FLG == 20).Count(); int r2Other = LineLogisticsssss.Where(a => lineids.Contains(a.LineInfoId)).Where(a => a.LogTag == dictid && !a.Deleted).Where(a => a.FLG == 20).Count(); ot8.Returned = (r1Other + r2Other); Summlist.Add(ot8); } //List<Guid> OtherBarcodebarcode = OtherBarcode.Select(a => a.AtmBarCodeId).ToList(); //var OtherBarcodebarcode_barcode = db.AtmBarCodes.Where(a => !a.Deleted).Where(a => OtherBarcodebarcode.Contains(a.Id)).ToList(); //Summary sm8 = new Summary(); //sm8.Total = OtherBarcodebarcode_barcode.Count().ToStr(); //sm8.Date = tmpdtm; //sm8.Branck = item.Name; //sm8.Item = "Other"; ////var lineids = linedets.Where(a => a.TaskTime == tmpdtm && a.ProjectId == item.Id).Select(a => a.Id).ToList(); //int p1Other = db.LineLogisticss.Where(a => lineids.Contains(a.LineInfoId) && a.PState >= 40 && a.LogTag == "100052" && !a.Deleted).Count(); //int p2Other = db.PersonGoodss.Where(a => a.CreatedDate > tmpdtm && a.CreatedDate <= tmpenddtm) // .Where(a => a.FLG == 10).Where(a => a.LogTag == "100052" && !a.Deleted && a.ProjectId == item.ProjectId).Count(); //sm8.Issued = (p1Other + p2Other).ToStr(); //sm8.Damaged = ""; //(AtmTrucks.Count(a => a.IsDamage)).ToStr(); //int r1Other = db.PersonGoodss.Where(a => a.CreatedDate > tmpdtm && a.CreatedDate <= tmpenddtm).Where(a => a.LogTag == "100052" && !a.Deleted && a.ProjectId == item.ProjectId).Where(a => a.FLG == 20).Count(); //int r2Other = db.LineLogisticss.Where(a => lineids.Contains(a.LineInfoId)).Where(a => a.LogTag == "100052" && !a.Deleted).Where(a => a.FLG == 20).Count(); //sm8.Returned = (r1Other + r2Other).ToStr(); //Summlist.Add(sm8); } int cnt = Summlist.Count(); tmpdtm = st.AddDays(dayint); dayint++; } } var cntsd = Summlist.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("Date", st)); list1.Add(Query.LT("Date", et)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<Summary>(query, "table_Summary"); Common.MongodbHelper.Add_List<Summary>("table_Summary", Summlist); showLog("Summary", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("Summary----Count" + cntsd, st, et); } catch (Exception ex) { showLog("Summary", "Error:" + ex.ToString()); insertShowlog("Summary----Error" + ex.ToString(), st, et); } insertShowlog("Summary----End", st, et); } private void button2_Click(object sender, EventArgs e) { DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value; Issuereturn(st, et); } private void Issuereturn(DateTime st, DateTime et) { showLog("Issuereturn", "Start"); insertShowlog("Issuereturn----Start", st, et); List<Issuereturn> Issuereturnlist = new List<Issuereturn>(); //DateTime st = DateTime.Now.Date; //DateTime et = st.AddDays(1); //DateTime st = new DateTime(2018, 7, 1); //DateTime et = new DateTime(2018, 10, 1); DateTime tmpdtm = st; try { using (var db = new ApplicationDb()) { var projs = db.SysProjects.Where(a => !a.Deleted).ToList(); //var lineLogistic = db.LineLogisticss.Where(a => !a.Deleted && a.LineInfoof.TaskTime >= st & a.LineInfoof.TaskTime < et).Select(a => new { a.LineInfoof.TaskTime, a.OutDateTime, a.InDateTime, a.ProjectId, a.LineInfoof.LineName, a.LineInfoof.Driver, a.LineInfoof.CarCaptain, a.LineInfoof.OtherPeople, a.AtmAtmOf.AtmNo, a.AtmAtmOf.ATMName, a.BarCode, a.Id, a.LogTag }).ToList(); //var lineLogistic = (from a in db.LineLogisticss // join abc in db.AtmBarCodes on a.BarCode equals abc.BarCode into joinTemp1 // from tmp1 in joinTemp1.DefaultIfEmpty() // where !a.Deleted && a.LineInfoof.TaskTime >= st && a.LineInfoof.TaskTime < et // select new { a.LineInfoof.TaskTime, a.OutDateTime, a.InDateTime, a.ProjectId, a.LineInfoof.LineName, a.LineInfoof.Driver, a.LineInfoof.CarCaptain, a.LineInfoof.OtherPeople, a.AtmAtmOf.AtmNo, a.AtmAtmOf.ATMName, a.BarCode, a.Id, a.LogTag, barid = (tmp1 == null ? Guid.Empty : tmp1.Id) }).ToList(); var lineLogistic = (from a in db.LineLogisticss.Where(c => c.LineInfoof.TaskTime >= st && c.LineInfoof.TaskTime < et) select new { a.LineInfoof.TaskTime, a.OutDateTime, a.InDateTime, a.ProjectId, a.LineInfoof.LineName, a.LineInfoof.Driver, a.LineInfoof.CarCaptain, a.LineInfoof.OtherPeople, a.AtmAtmOf.AtmNo, a.AtmAtmOf.ATMName, a.BarCode, a.Id, a.LogTag, a.Deleted, a.DepotOutUser, a.DepotInUser }).ToList(); lineLogistic = lineLogistic.Where(a => !a.Deleted).ToList(); // cl cd cm var clcdcm = lineLogistic.Select(a => a.Driver).Union(lineLogistic.Select(a => a.CarCaptain)).Union(lineLogistic.Select(a => a.OtherPeople)).ToList(); var sysusers = db.SysUsers.Where(a => clcdcm.Contains(a.WorkerId)).ToList(); var barcodelist = lineLogistic.Where(a => !string.IsNullOrWhiteSpace(a.BarCode)).Select(a => a.BarCode).Distinct().ToList(); var baridlist = db.AtmBarCodes.Where(a => barcodelist.Contains(a.BarCode)).Select(a => new { a.BarCode, a.Id }).ToList(); List<string> userinfo = new List<string>(); userinfo.AddRange(lineLogistic.Select(a => a.DepotInUser).Union(lineLogistic.Select(a => a.DepotOutUser))); var UserDepot = db.SysUsers.Where(a => userinfo.Contains(a.WorkerId)).ToList(); int dayint = 1; var dictbo = db.SysDictBos.ToList(); SysProject ppr = new SysProject(); //AtmBarCode barcode = new AtmBarCode(); //while (tmpdtm <= et) // 时间 //{ var tmpenddtm = tmpdtm.AddDays(1); SysUser sy = new SysUser(); Gun Gun = new Gun(); var atmtrucks = db.AtmTrucks.ToList(); //Where(a => !string.IsNullOrEmpty(a.BarCode)) SysUser suclcdcm = new SysUser(); foreach (var item in lineLogistic.Where(a => a.LogTag == "191")) //Gun { //取机具不直接显示出来 循环里面 不写db Issuereturn It = new Issuereturn(); It.Item = "Gun"; ppr = projs.FirstOrDefault(a => a.Id == item.ProjectId); It.Branch = ppr.Name; It.Branchcode = ppr.Code; It.JobDate = item.TaskTime; It.IssueTime = item.OutDateTime; It.ReturnTime = item.InDateTime; It.Route = item.LineName; //-- //CarCaptain =cl //Driver=cd //OtherPeople=cm suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.CarCaptain); It.CL = item.CarCaptain + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.Driver); It.CD = item.Driver + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.OtherPeople); It.CM = item.OtherPeople + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); //barcode = db.AtmBarCodes.FirstOrDefault(a => a.BarCode == item.BarCode); //if (barcode != null) var barcode = baridlist.FirstOrDefault(a => a.BarCode == item.BarCode); if (barcode != null) { Gun = db.Guns.FirstOrDefault(a => a.AtmBarCodeId == barcode.Id); } if (Gun != null) { It.Remark = Gun.Remark; It.AssetCode = Gun.GunNo; It.Description = Gun.Remark; It.SerialNumber = Gun.GunNo; } if (!string.IsNullOrEmpty(item.DepotOutUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotOutUser); It.DispatchIssued = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } if (!string.IsNullOrEmpty(item.DepotInUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotInUser); It.DispatchReturned = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } It.Barcode = item.BarCode; Issuereturnlist.Add(It); } KeyPassword kp = new KeyPassword(); foreach (var item in lineLogistic.Where(a => a.LogTag == "181" || a.LogTag == "182")) //atm key spare key {// Issuereturn It = new Issuereturn(); It.Item = "ATM key"; ppr = projs.FirstOrDefault(a => a.Id == item.ProjectId); It.Branch = ppr.Name; It.Branchcode = ppr.Code; It.JobDate = item.TaskTime; It.IssueTime = item.OutDateTime; It.ReturnTime = item.InDateTime; It.Route = item.LineName; //-- suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.CarCaptain); It.CL = item.CarCaptain + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.Driver); It.CD = item.Driver + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.OtherPeople); It.CM = item.OtherPeople + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); It.ATMID = item.AtmNo; It.Name = item.ATMName; //Location name //barcode = db.AtmBarCodes.FirstOrDefault(a => a.BarCode == item.BarCode); //if (barcode != null) //{ // kp = db.KeyPasswords.FirstOrDefault(a => a.AtmBarCodeId == barcode.Id); //} It.Key = item.BarCode; //Barcode //if(kp.KeyPasswordType == Models.Constraints.KeyPasswordTypes.KeyPasswordTypes_KEY) //{ // It.Remark ="Key"; //} // if(kp.KeyPasswordType == Models.Constraints.KeyPasswordTypes.KeyByPasswordTypes_KEY) //{ // It.Remark ="Spare Key"; //} if ((item.BarCode ?? "").Contains("181")) { It.KeySparekey = "Key"; //It.Remark = "Key"; } if ((item.BarCode ?? "").Contains("182")) { It.KeySparekey = "Spare key"; //It.Remark = "Spare Key"; } if (!string.IsNullOrEmpty(item.DepotOutUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotOutUser); It.DispatchIssued = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } if (!string.IsNullOrEmpty(item.DepotInUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotInUser); It.DispatchReturned = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } var barcode = baridlist.FirstOrDefault(a => a.BarCode == item.BarCode); if (barcode != null) { kp = db.KeyPasswords.FirstOrDefault(a => a.AtmBarCodeId == barcode.Id); } if (kp != null) { It.ATMShortcode = kp.AtmAtm != null ? kp.AtmAtm.TerminalNum : ""; It.Customer = kp.AtmCustomer != null ? kp.AtmCustomer.Name : ""; It.Remark = kp.Remark; } Issuereturnlist.Add(It); } ////PDA AtmPda pda = new AtmPda(); foreach (var item in lineLogistic.Where(a => a.LogTag == "PDA")) {// Issuereturn It = new Issuereturn(); It.Item = "PDA"; ppr = projs.FirstOrDefault(a => a.Id == item.ProjectId); It.Branch = ppr.Name; It.Branchcode = ppr.Code; It.JobDate = item.TaskTime; It.IssueTime = item.OutDateTime; It.ReturnTime = item.InDateTime; It.Route = item.LineName; suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.CarCaptain); It.CL = item.CarCaptain + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.Driver); It.CD = item.Driver + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.OtherPeople); It.CM = item.OtherPeople + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); It.ItemBarcode = item.BarCode; var barcode = baridlist.FirstOrDefault(a => a.BarCode == item.BarCode); if (barcode != null) { pda = db.AtmPdas.FirstOrDefault(a => a.AtmBarCodeId == barcode.Id); } if (pda != null) { It.Name = pda.Name; It.Number = pda.IMEI; It.Model = pda.PdaModel; It.Customer = pda.SIM; switch (pda.PdaUseType) { case PdaUsed.Use_ZY: It.Remark = "Replenishment"; break; case PdaUsed.Use_PD: It.Remark = "Dispatch"; break; case PdaUsed.Use_Preload: It.Remark = "Cassette Management"; break; } It.IMEI = pda.IMEI; It.Brand = pda.Brand; } if (!string.IsNullOrEmpty(item.DepotOutUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotOutUser); It.DispatchIssued = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } if (!string.IsNullOrEmpty(item.DepotInUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotInUser); It.DispatchReturned = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } Issuereturnlist.Add(It); } //MobilePhone WorkingTEL MobilePhone = new WorkingTEL(); foreach (var item in lineLogistic.Where(a => a.LogTag == "185")) {// Issuereturn It = new Issuereturn(); It.Item = "MobilePhone"; ppr = projs.FirstOrDefault(a => a.Id == item.ProjectId); It.Branch = ppr.Name; It.Branchcode = ppr.Code; It.JobDate = item.TaskTime; It.IssueTime = item.OutDateTime; It.ReturnTime = item.InDateTime; It.Route = item.LineName; suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.CarCaptain); It.CL = item.CarCaptain + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.Driver); It.CD = item.Driver + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.OtherPeople); It.CM = item.OtherPeople + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); It.ItemBarcode = item.BarCode; var barcode = baridlist.FirstOrDefault(a => a.BarCode == item.BarCode); if (barcode != null) { MobilePhone = db.WorkingTELs.FirstOrDefault(a => a.AtmBarCodeId == barcode.Id); } if (MobilePhone != null) { It.Name = MobilePhone.WorkerId; It.Number = MobilePhone.IMEI; It.Model = MobilePhone.BUType; It.Customer = MobilePhone.SIM; It.Remark = MobilePhone.Remark; It.StaffName = MobilePhone.UserName; It.StaffID = MobilePhone.WorkerId; //MobilePhone.s } if (!string.IsNullOrEmpty(item.DepotOutUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotOutUser); It.DispatchIssued = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } if (!string.IsNullOrEmpty(item.DepotInUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotInUser); It.DispatchReturned = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } Issuereturnlist.Add(It); } //Vehicle //AtmTruck atk = new AtmTruck(); TruckKey atk = new TruckKey(); AtmTruck at = new AtmTruck(); foreach (var item in lineLogistic.Where(a => a.LogTag == "186")) {// Issuereturn It = new Issuereturn(); It.Item = "Vehicle"; ppr = projs.FirstOrDefault(a => a.Id == item.ProjectId); It.Branch = ppr.Name; It.Branchcode = ppr.Code; It.JobDate = item.TaskTime; It.IssueTime = item.OutDateTime; It.ReturnTime = item.InDateTime; It.Route = item.LineName; suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.CarCaptain); It.CL = item.CarCaptain + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.Driver); It.CD = item.Driver + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.OtherPeople); It.CM = item.OtherPeople + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); var barcode = baridlist.FirstOrDefault(a => a.BarCode == item.BarCode); if (barcode != null) { //atk = db.AtmTrucks.FirstOrDefault(a => a.AtmBarCodeId == item.barid); atk = db.TruckKeys.FirstOrDefault(a => a.AtmBarCodeId == barcode.Id); } if (atk != null) { //It.CallSign = atk.Radio; at = atmtrucks.Where(a => a.ATMkeyCodeID == atk.AtmBarCodeId).FirstOrDefault(); if (at != null) { It.CallSign = at.Radio; It.LicensePlate = at.PlateNumber; It.Brand = at.Brand; It.Model = at.BusModel; It.Category = at.TruckCompany == null ? "" : at.TruckCompany.Name; It.Remark = at.Remark; It.TruckType = at.truckType.ToStr(); } } if (!string.IsNullOrEmpty(item.DepotOutUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotOutUser); It.DispatchIssued = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } if (!string.IsNullOrEmpty(item.DepotInUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotInUser); It.DispatchReturned = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } It.BarcodeKey = item.BarCode; Issuereturnlist.Add(It); } // //Navigator GPSNavigator gps = new GPSNavigator(); foreach (var item in lineLogistic.Where(a => a.LogTag == "195")) {// Issuereturn It = new Issuereturn(); It.Item = "Navigator"; ppr = projs.FirstOrDefault(a => a.Id == item.ProjectId); It.Branch = ppr.Name; It.Branchcode = ppr.Code; It.JobDate = item.TaskTime; It.IssueTime = item.OutDateTime; It.ReturnTime = item.InDateTime; It.Route = item.LineName; suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.CarCaptain); It.CL = item.CarCaptain + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.Driver); It.CD = item.Driver + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.OtherPeople); It.CM = item.OtherPeople + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); It.ItemBarcode = item.BarCode; var barcode = baridlist.FirstOrDefault(a => a.BarCode == item.BarCode); if (barcode != null) { gps = db.GPSNavigator.FirstOrDefault(a => a.AtmBarCodeId == barcode.Id); } if (gps != null) { It.Name = gps.Brand; It.Number = ""; It.Model = gps.Type; It.Customer = ""; It.Remark = gps.Remark; } if (!string.IsNullOrEmpty(item.DepotOutUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotOutUser); It.DispatchIssued = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } if (!string.IsNullOrEmpty(item.DepotInUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotInUser); It.DispatchReturned = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } Issuereturnlist.Add(It); } //EasyPassTag EasyPassTag ept = new EasyPassTag(); foreach (var item in lineLogistic.Where(a => a.LogTag == "194")) {// Issuereturn It = new Issuereturn(); It.Item = "EasyPassTag"; ppr = projs.FirstOrDefault(a => a.Id == item.ProjectId); It.Branch = ppr.Name; It.Branchcode = ppr.Code; It.JobDate = item.TaskTime; It.IssueTime = item.OutDateTime; It.ReturnTime = item.InDateTime; It.Route = item.LineName; suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.CarCaptain); It.CL = item.CarCaptain + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.Driver); It.CD = item.Driver + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.OtherPeople); It.CM = item.OtherPeople + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); It.ItemBarcode = item.BarCode; var barcode = baridlist.FirstOrDefault(a => a.BarCode == item.BarCode); if (barcode != null) { ept = db.EasyPassTag.FirstOrDefault(a => a.AtmBarCodeId == barcode.Id); } if (ept != null) { It.Name = ept.RegistrationNo; It.Number = ept.EasypassTagNumber; It.Model = ept.CallsignNo; It.Remark = ept.Remark; It.CardNumber = ept.EasypassCardNumber; It.RegisterProvince = ept.RegisterProvince; } if (!string.IsNullOrEmpty(item.DepotOutUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotOutUser); It.DispatchIssued = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } if (!string.IsNullOrEmpty(item.DepotInUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotInUser); It.DispatchReturned = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } It.Customer = ""; Issuereturnlist.Add(It); } //AdminCard ATMPassCard apc = new ATMPassCard(); foreach (var item in lineLogistic.Where(a => a.LogTag == "99")) {// Issuereturn It = new Issuereturn(); It.Item = "AdminCard"; ppr = projs.FirstOrDefault(a => a.Id == item.ProjectId); It.Branch = ppr.Name; It.Branchcode = ppr.Code; It.JobDate = item.TaskTime; It.IssueTime = item.OutDateTime; It.ReturnTime = item.InDateTime; It.Route = item.LineName; suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.CarCaptain); It.CL = item.CarCaptain + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.Driver); It.CD = item.Driver + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item.OtherPeople); It.CM = item.OtherPeople + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); It.ItemBarcode = item.BarCode; var barcode = baridlist.FirstOrDefault(a => a.BarCode == item.BarCode); if (barcode != null) { apc = db.ATMPassCards.FirstOrDefault(a => a.BarCodeId == barcode.Id); } if (apc != null) { It.Number = apc.Number; switch (apc.AtmTypeID) { case JobTypes.JobTypes_Deposit: It.Model = "CDM"; break; case JobTypes.JobTypes_WithDrawal: It.Model = "ATM"; break; case JobTypes.JobTypes_Recycling: It.Model = "RATM"; break; case JobTypes.JobTypes_AllInOne: It.Model = "3INI"; break; case JobTypes.JobTypes_Other: It.Model = "Other ATMs"; break; } It.Customer = apc.AtmCustomer == null ? "" : apc.AtmCustomer.Name; It.Remark = apc.Remark; It.Password = apc.Password; It.Name = apc.CardId; //apc.CardId } if (!string.IsNullOrEmpty(item.DepotOutUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotOutUser); It.DispatchIssued = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } if (!string.IsNullOrEmpty(item.DepotInUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item.DepotInUser); It.DispatchReturned = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } Issuereturnlist.Add(It); } //Other var OtherBarcode = new OtherBarcode(); var otheres = db.OtherBarcode.Where(a => !a.Deleted).Select(a => new { a.AtmBarCodeId, a.BarCodeType }).ToList(); var otherds = otheres.Distinct(a => a.BarCodeType); //取 物品的类型 LogTag foreach (var item in otherds) { var DictDisplayName = db.SysDictBos.Where(a => a.CustomtypeId == Customtype.OtherBarCode && !a.Deleted).Where(a => a.DictName == item.BarCodeType).FirstOrDefault();//DictDisplayName if (DictDisplayName != null) { foreach (var item2 in lineLogistic.Where(a => a.LogTag == DictDisplayName.DictDisplayName)) { Issuereturn It = new Issuereturn(); //It.Item = "other"; It.Item = item.BarCodeType; ppr = projs.FirstOrDefault(a => a.Id == item2.ProjectId); It.Branch = ppr.Name; It.Branchcode = ppr.Code; It.JobDate = item2.TaskTime; It.IssueTime = item2.OutDateTime; It.ReturnTime = item2.InDateTime; It.Route = item2.LineName; suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item2.CarCaptain); It.CL = item2.CarCaptain + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item2.Driver); It.CD = item2.Driver + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); suclcdcm = sysusers.FirstOrDefault(a => a.WorkerId == item2.OtherPeople); It.CM = item2.OtherPeople + (suclcdcm != null ? "(" + suclcdcm.f_name_TH + " " + suclcdcm.l_name_TH + ")" : ""); It.ItemBarcode = item2.BarCode; var barcode = baridlist.FirstOrDefault(a => a.BarCode == item2.BarCode); if (barcode != null) { OtherBarcode = db.OtherBarcode.FirstOrDefault(a => a.AtmBarCodeId == barcode.Id); } if (OtherBarcode != null) { It.Name = OtherBarcode.ItemName; It.Number = OtherBarcode.Number; It.Model = OtherBarcode.Models; It.Customer = OtherBarcode.AtmCustomer == null ? "" : OtherBarcode.AtmCustomer.Name; It.Remark = OtherBarcode.Remark; } if (!string.IsNullOrEmpty(item2.DepotOutUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item2.DepotOutUser); It.DispatchIssued = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } if (!string.IsNullOrEmpty(item2.DepotInUser)) { sy = UserDepot.FirstOrDefault(a => a.WorkerId == item2.DepotInUser); It.DispatchReturned = sy != null ? (sy.UserName + " (" + sy.WorkerId + ")") : ""; } Issuereturnlist.Add(It); } } } int cnt = Issuereturnlist.Count(); tmpdtm = st.AddDays(dayint); dayint++; } //} var cntsd = Issuereturnlist.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", st)); list1.Add(Query.LT("JobDate", et)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<Issuereturn>(query, "table_Issuereturn"); Common.MongodbHelper.Add_List<Issuereturn>("table_Issuereturn", Issuereturnlist); showLog("Issuereturn", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("Issuereturn----Count" + cntsd, st, et); } catch (Exception ex) { showLog("Issuereturn", "Error:" + ex.ToString()); insertShowlog("Issuereturn----Error" + ex.ToString(), st, et); } insertShowlog("Issuereturn----End", st, et); } private void button3_Click(object sender, EventArgs e) { DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value; summary_total_hours_route(st, et.AddDays(1)); } //summary total hours route private void summary_total_hours_route(DateTime st, DateTime et) { showLog("summary_total_hours_route", "Start"); insertShowlog("summary_total_hours_route----Start", st, et); //DateTime st = DateTime.Now.Date; //DateTime et = st.AddDays(1); //DateTime st = new DateTime(2018, 7, 1); //DateTime et = new DateTime(2018, 10, 1); //DateTime tmpdtm = st; try { using (var db = new ApplicationDb()) { var projs = db.SysProjects.ToList(); //var LineInfos = db.LineInfos.Where(a => !a.Deleted).Where(a => a.TaskTime >= st && a.TaskTime < et).ToList(); var LineInfos = db.LineInfos.Where(a => !a.Deleted).Where(a => a.TaskTime >= st && a.TaskTime < et).Include("AtmTruck").ToList(); List<Guid> AllotGroupIdList = LineInfos.Where(a => a.AllotGroupId != null).Select(a => a.AllotGroupId.Value).ToList(); var WeeklyPlanDetailsID = db.WeeklyPlanDetails.Where(a => AllotGroupIdList.Contains(a.Id)).ToList(); List<Guid> LineIds = LineInfos.Select(a => a.Id).ToList(); var TaskLogs = db.AtmTaskLogs.Where(a => LineIds.Contains(a.LineInfoId.Value)).ToList(); //var BankIds = db.LineGoodss.Where(a => !a.Deleted).Where(a => LineIds.Contains(a.LineInfoId)).Select(a => a.BankOrderOf); //var BankOrders = db.BankOrders; //var Repairs = db.Repairs; //var Inspections = db.Inspections; List<AtmTaskLog> atmtasklogs = new List<AtmTaskLog>(); //LineInfos.FirstOrDefault().AtmTruck List<string> workerids = new List<string>(); workerids = LineInfos.Select(a => a.CarCaptain).Union(LineInfos.Select(a => a.Driver)).Union(LineInfos.Select(a => a.OtherPeople)).ToList(); var users = db.SysUsers.Where(a => workerids.Contains(a.WorkerId)).ToList(); var LineinfoIdIDs = LineInfos.Select(a => a.Id); var linegoods = db.LineGoodss.Where(a => LineinfoIdIDs.Contains(a.LineInfoId)).ToList(); var bankID = linegoods.Select(a => a.BankOrderID).ToList(); var AtmSysLogs = db.AtmSysLogs.Where(a => bankID.Contains(a.SysUserId)).ToList(); List<AtmSysLog> asls = new List<AtmSysLog>(); List<Guid?> LineinfoLinegoods = new List<Guid?>(); SqlConnection conn = new SqlConnection(SiteConst.DisableUser); DataTable dt = new DataTable(); List<StaffWork> stafflist = new List<StaffWork>(); StaffWork sfw = new StaffWork(); List<RouteTotal> RouteTotal = new List<RouteTotal>(); WeeklyPlanDetail wpdsdtmp = new WeeklyPlanDetail(); try { conn.Open(); string sql = "select * from stander_id where sj BETWEEN '" + st + "' and '" + et + "'"; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataAdapter sda = new SqlDataAdapter(cmd); sda.Fill(dt); if (dt.Rows.Count > 0) { stafflist = EntityConvert.GetEntities<StaffWork>(dt); } } catch (Exception e) { showLog("SQLServer", e.Message); insertShowlog("SQLServer----Error " + e.Message, st, et); } finally { conn.Close(); conn.Dispose(); } SysUser user1 = new SysUser(); SysUser user2 = new SysUser(); SysUser user3 = new SysUser(); AtmTaskLog t1 = new AtmTaskLog(); AtmTruck atk = new AtmTruck(); int Crewno = 0; //换人换车 SortByDocument sbd = new SortByDocument(); IMongoQuery queryss = null; List<IMongoQuery> list = new List<IMongoQuery>(); List<IMongoQuery> mq = new List<IMongoQuery>(); List<IMongoQuery> mq3 = new List<IMongoQuery>(); List<Linelog> Linelog = new List<Linelog>(); if (LineInfos.Count > 1) { foreach (var item in LineInfos.Select(A => A.Id)) { mq.Add(Query.Matches("Lineid", item.ToStr())); } mq3.Add(Query.Matches("Content", "Change Vehicle")); mq3.Add(Query.Matches("Content", "Change Crew")); list.Add(Query.Or(mq)); list.Add(Query.Or(mq3)); queryss = Query.And(list); Linelog = Common.MongodbHelper.FindListBy<Linelog>(queryss, sbd, "Log_Line"); } else if (LineInfos.Count == 1) { mq3.Add(Query.Matches("Content", "Change Vehicle")); mq3.Add(Query.Matches("Content", "Change Crew")); list.Add(Query.Matches("Lineid", LineInfos[0].Id.ToStr())); list.Add(Query.Or(mq3)); queryss = Query.And(list); Linelog = Common.MongodbHelper.FindListBy<Linelog>(queryss, sbd, "Log_Line"); } else { } DateTime? temdateas = null; foreach (var item in LineInfos) { RouteTotal rt = new RouteTotal(); rt.JobDate = item.TaskTime; rt.Remark = item.TaskTime.ToShortDateString(); rt.Branch = projs.FirstOrDefault(a => a.Id == item.ProjectId).Name; rt.RouteName = item.LineName; user1 = users.FirstOrDefault(a => a.WorkerId == item.CarCaptain); user2 = users.FirstOrDefault(a => a.WorkerId == item.Driver); user3 = users.FirstOrDefault(a => a.WorkerId == item.OtherPeople); if (user1 != null) rt.CrewLeader = user1.f_name_eng + " " + user1.l_name_eng + "(" + item.CarCaptain + ")"; if (user2 != null) rt.CrewDriver = user2.f_name_eng + " " + user2.l_name_eng + "(" + item.Driver + ")"; if (user3 != null) rt.CrewMember = user3.f_name_eng + " " + user3.l_name_eng + "(" + item.OtherPeople + ")"; //fx=1 表示上班(Finger Scan in) fx=2表示下班(Finger Scan Out) if (!string.IsNullOrEmpty(item.CarCaptain)) {//rt.FingerScanin rt.FingerScanOut sfw = stafflist.Where(a => a.user_no == item.CarCaptain && a.fx == 1).Where(a => a.sj.Date == item.TaskTime.Date).OrderBy(a => a.sj).FirstOrDefault(); if (sfw != null) rt.CrewLeaderScanIn = sfw.sj; sfw = stafflist.Where(a => a.user_no == item.CarCaptain && a.fx == 2).Where(a => a.sj.Date == item.TaskTime.Date).OrderByDescending(a => a.sj).FirstOrDefault(); if (sfw != null) rt.CrewLeaderScanOut = sfw.sj; //var sdsss = stafflist.Where(a => a.user_no == item.CarCaptain && a.fx == 2); } if (!string.IsNullOrEmpty(item.Driver)) {//rt.FingerScanin rt.FingerScanOut sfw = stafflist.Where(a => a.user_no == item.Driver && a.fx == 1).Where(a => a.sj.Date == item.TaskTime.Date).OrderBy(a => a.sj).FirstOrDefault(); if (sfw != null) rt.CrewDriverScanIn = sfw.sj; sfw = stafflist.Where(a => a.user_no == item.Driver && a.fx == 2).Where(a => a.sj.Date == item.TaskTime.Date).OrderByDescending(a => a.sj).FirstOrDefault(); if (sfw != null) rt.CrewDriverScanOut = sfw.sj; //var sdsss = stafflist.Where(a => a.user_no == item.CarCaptain && a.fx == 2); } if (!string.IsNullOrEmpty(item.OtherPeople)) {//rt.FingerScanin rt.FingerScanOut sfw = stafflist.Where(a => a.user_no == item.OtherPeople && a.fx == 1).Where(a => a.sj.Date == item.TaskTime.Date).OrderBy(a => a.sj).FirstOrDefault(); if (sfw != null) rt.CrewMemberScanIn = sfw.sj; sfw = stafflist.Where(a => a.user_no == item.OtherPeople && a.fx == 2).Where(a => a.sj.Date == item.TaskTime.Date).OrderByDescending(a => a.sj).FirstOrDefault(); if (sfw != null) rt.CrewMemberScanOut = sfw.sj; //var sdsss = stafflist.Where(a => a.user_no == item.CarCaptain && a.fx == 2); } wpdsdtmp = WeeklyPlanDetailsID.FirstOrDefault(a => a.Id == item.AllotGroupId); if (wpdsdtmp != null) { rt.Rosteredstart = wpdsdtmp.BeginBanCi; //暂时没有 } atmtasklogs = TaskLogs.Where(a => a.LineInfoId == item.Id).ToList(); //atmtasklogs.Where(a => a.taskType == "Preload_begin").OrderBy(a => a.OperTime).FirstOrDefault(); t1 = atmtasklogs.Where(a => a.taskType == "Preload_begin").OrderBy(a => a.OperTime).FirstOrDefault(); if (t1 != null) rt.Inbaytime = t1.OperTime; t1 = atmtasklogs.Where(a => a.taskType == "Preload_Leave").OrderBy(a => a.OperTime).FirstOrDefault(); if (t1 != null) rt.Outbaytime = t1.OperTime; // Drive time total Loading time total var temp = atmtasklogs.Select(a => new { a.LineInfoId, a.taskType, a.OperTime }).Distinct().ToList(); var tempt1 = temp.FirstOrDefault(); tempt1 = temp.Where(a => a.taskType == "Departure_Out").OrderBy(a => a.OperTime).FirstOrDefault(); if (tempt1 != null) { rt.Trip1_Depart = tempt1.OperTime; temdateas = rt.Trip1_Depart; } tempt1 = temp.Where(a => a.taskType == "Departure_In" && (temdateas != null ? a.OperTime > temdateas : true)).OrderBy(a => a.OperTime).FirstOrDefault(); if (tempt1 != null) { rt.Trip1_Return = tempt1.OperTime; temdateas = rt.Trip1_Return; } tempt1 = temp.Where(a => a.taskType == "Departure_Out" && (temdateas != null ? a.OperTime > temdateas : true)).OrderBy(a => a.OperTime).FirstOrDefault(); if (tempt1 != null) { rt.Trip2_Depart = tempt1.OperTime; temdateas = rt.Trip2_Depart; } tempt1 = temp.Where(a => a.taskType == "Departure_In" && (temdateas != null ? a.OperTime > temdateas : true)).OrderBy(a => a.OperTime).FirstOrDefault(); if (tempt1 != null) { rt.Trip2_Return = tempt1.OperTime; temdateas = rt.Trip2_Return; } tempt1 = temp.Where(a => a.taskType == "Departure_Out" && (temdateas != null ? a.OperTime > temdateas : true)).OrderBy(a => a.OperTime).FirstOrDefault(); if (tempt1 != null) { rt.Trip3_Depart = tempt1.OperTime; temdateas = rt.Trip3_Depart; } tempt1 = temp.Where(a => a.taskType == "Departure_In" && (temdateas != null ? a.OperTime > temdateas : true)).OrderBy(a => a.OperTime).FirstOrDefault(); if (tempt1 != null) { rt.Trip3_Return = tempt1.OperTime; temdateas = rt.Trip3_Return; } tempt1 = temp.Where(a => a.taskType == "Departure_Out" && (temdateas != null ? a.OperTime > temdateas : true)).OrderBy(a => a.OperTime).FirstOrDefault(); if (tempt1 != null) { rt.Trip4_Depart = tempt1.OperTime; temdateas = rt.Trip4_Depart; } tempt1 = temp.Where(a => a.taskType == "Departure_In" && (temdateas != null ? a.OperTime > temdateas : true)).OrderBy(a => a.OperTime).FirstOrDefault(); if (tempt1 != null) { rt.Trip4_Return = tempt1.OperTime; temdateas = rt.Trip4_Return; } //tempt1 = temp.Where(a => a.taskType == "Departure_Out").OrderByDescending(a => a.OperTime).FirstOrDefault(); //if (tempt1 != null) //{ // rt.Trip5_Depart = tempt1.OperTime; // temdateas = rt.Trip5_Depart; //} //tempt1 = temp.Where(a => a.taskType == "Departure_In" && (temdateas != null ? a.OperTime > temdateas : true)).OrderByDescending(a => a.OperTime).FirstOrDefault(); //if (tempt1 != null) // rt.Trip5_Return = tempt1.OperTime; tempt1 = temp.Where(a => a.taskType == "Departure_Out" && (temdateas != null ? a.OperTime > temdateas : true)).OrderBy(a => a.OperTime).FirstOrDefault(); if (tempt1 != null) { rt.Trip5_Depart = tempt1.OperTime; temdateas = rt.Trip5_Depart; } tempt1 = temp.Where(a => a.taskType == "Departure_In" && (temdateas != null ? a.OperTime > temdateas : true)).OrderBy(a => a.OperTime).FirstOrDefault(); if (tempt1 != null) rt.Trip5_Return = tempt1.OperTime; t1 = atmtasklogs.Where(a => a.taskType == "Preload_end").OrderByDescending(a => a.OperTime).FirstOrDefault(); if (t1 != null) rt.Returnbaytime = t1.OperTime; rt.Runfinish = item.TruckBackTime; if (!string.IsNullOrEmpty(item.CarCaptain)) Crewno++; if (!string.IsNullOrEmpty(item.Driver)) Crewno++; if (!string.IsNullOrEmpty(item.OtherPeople)) Crewno++; rt.Crewno = Crewno.ToStr(); LineinfoLinegoods = linegoods.Where(a => a.LineInfoId == item.Id).Select(a => a.BankOrderID).ToList(); asls = AtmSysLogs.Where(a => LineinfoLinegoods.Contains(a.SysUserId)).Where(a => a.AtmSysAction == 11 || a.AtmSysAction == 17 || a.AtmSysAction == 14 || a.AtmSysAction == 18).ToList(); if (asls != null) rt.Jobs_completed = asls.Count().ToStr(); asls = AtmSysLogs.Where(a => LineinfoLinegoods.Contains(a.SysUserId)).Where(a => a.AtmSysAction == 14).ToList(); //rt.Jobsnotcompleted = AtmSysLogs.Where(a => LineinfoLinegoods.Contains(a.SysUserId)).Where(a => a.AtmSysAction == 14).Count().ToStr(); //if (asls != null) // LineinfoLinegoods - rt.Jobs_completed.toint(); //rt.Jobsnotcompleted = asls.Count().ToStr(); rt.Jobsnotcompleted = (LineinfoLinegoods.Count - rt.Jobs_completed.ToInt()).ToStr(); atk = item.AtmTruck; if (atk != null) rt.TruckNumber = atk.Radio + " " + atk.PlateNumber; rt.StartKms = item.Outkilometre.ToStr(); rt.FinishKms = item.Inkilometre.ToStr(); //rt.Comments = item.Remark; //换人换车 string str = ""; Linelog.Where(a => a.Lineid == item.Id.ToStr()).ToList().ForEach(a => str += a.Content + " \n"); rt.Comments = str; RouteTotal.Add(rt); } var cntsd = RouteTotal.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", st)); list1.Add(Query.LT("JobDate", et)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<RouteTotal>(query, "table_RouteTotal"); Common.MongodbHelper.Add_List<RouteTotal>("table_RouteTotal", RouteTotal); showLog("summary_total_hours_route", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("summary_total_hours_route----Count" + cntsd, st, et); } } catch (Exception ex) { showLog("summary_total_hours_route", "Error:" + ex.ToString()); insertShowlog("summary_total_hours_route----Error" + ex.ToString(), st, et); } insertShowlog("summary_total_hours_route----End", st, et); } private void insertShowlog(string text, DateTime st, DateTime et) { List<ShowReportlog> srls = new List<ShowReportlog>(); ShowReportlog srl = new ShowReportlog(); srl.JobDate = DateTime.Now.ToLocalTime().ToString(); srl.Content = st.ToString() + " - " + et.ToString() + " " + text; srls.Add(srl); //Common.MongodbHelper.insert<ShowReportlog>("table_ShowReportlog", new ShowReportlog { JobDate = DateTime.Now.ToLocalTime().ToString(), Content = st.ToString() + " - " + et.ToString() + " " + text }); Common.MongodbHelper.Add_List<ShowReportlog>("table_ShowReportlog", srls); } private bool _running = false; private void timer1_Tick(object sender, EventArgs e) { if (_stop) return; if (_running) return; // 每小时执行一次 _running = true; if (_lastRun.Date != DateTime.Today) { // 日期变化 再算一次昨天的数据 insertShowlog("日期变化 再算一次昨天的数据", DateTime.Now, DateTime.Now); if (chbSummary.Checked) Summary(DateTime.Today.AddDays(-1), DateTime.Today); if (chbIssue.Checked) Issuereturn(DateTime.Today.AddDays(-1), DateTime.Today); if (chbKPI2.Checked) summary_total_hours_route(DateTime.Today.AddDays(-1), DateTime.Today); if (chbKPI.Checked) Atmtask(DateTime.Today.AddDays(-1), DateTime.Today.AddDays(-1)); if (chbCassetle.Checked) CassetteTrackPageReport(DateTime.Today.AddDays(-1), DateTime.Today.AddDays(-1)); // if (chbRMSummary.Checked) SummaryofOrder(DateTime.Today.AddDays(-1), DateTime.Today); if (chbRMResult.Checked) ResultofOrder(DateTime.Today.AddDays(-1), DateTime.Today); if (chbRMOrderbyCustomer.Checked) StatusCustomer(DateTime.Today.AddDays(-1), DateTime.Today); if (chbRMOrderbyRoute.Checked) StatusRoute(DateTime.Today.AddDays(-1), DateTime.Today); if (FSPSummarychk.Checked) FSPSummaryofOrder(DateTime.Today.AddDays(-1), DateTime.Today); if (FSPResultchk.Checked) FSPResultofOrder(DateTime.Today.AddDays(-1), DateTime.Today); if (FSPOrderbyCustomchb.Checked) FSPStatusCustomer(DateTime.Today.AddDays(-1), DateTime.Today); if (FSPOrderbyRoutechb.Checked) FSPStatusRoute(DateTime.Today.AddDays(-1), DateTime.Today); if (ATMSummaryATMOrderCKB.Checked) ATMSummaryATMOrders(DateTime.Today.AddDays(-1), DateTime.Today); if (ATMSummaryATMNumberCHB.Checked) ATMSummaryATMNumber(DateTime.Today, DateTime.Today); insertShowlog("日期变化结束 ", DateTime.Now, DateTime.Now); } if (_lastRun.Hour != DateTime.Now.Hour) { insertShowlog("小时变化 再算一次数据", DateTime.Now, DateTime.Now); if (chbSummary.Checked) Summary(DateTime.Today, DateTime.Today.AddDays(1)); if (chbIssue.Checked) Issuereturn(DateTime.Today, DateTime.Today.AddDays(1)); if (chbKPI2.Checked) summary_total_hours_route(DateTime.Today, DateTime.Today.AddDays(1)); if (chbKPI.Checked) Atmtask(DateTime.Today, DateTime.Today); if (chbCassetle.Checked) CassetteTrackPageReport(DateTime.Today, DateTime.Today); // if (chbRMSummary.Checked) SummaryofOrder(DateTime.Today, DateTime.Today.AddDays(1)); if (chbRMResult.Checked) ResultofOrder(DateTime.Today, DateTime.Today.AddDays(1)); if (chbRMOrderbyCustomer.Checked) StatusCustomer(DateTime.Today, DateTime.Today.AddDays(1)); if (chbRMOrderbyRoute.Checked) StatusRoute(DateTime.Today, DateTime.Today.AddDays(1)); if (FSPResultchk.Checked) FSPResultofOrder(DateTime.Today, DateTime.Today.AddDays(1)); if (FSPSummarychk.Checked) FSPSummaryofOrder(DateTime.Today, DateTime.Today.AddDays(1)); if (FSPResultchk.Checked) FSPResultofOrder(DateTime.Today, DateTime.Today.AddDays(1)); if (FSPOrderbyCustomchb.Checked) FSPStatusCustomer(DateTime.Today, DateTime.Today.AddDays(1)); if (FSPOrderbyRoutechb.Checked) FSPStatusRoute(DateTime.Today, DateTime.Today.AddDays(1)); if (ATMSummaryATMOrderCKB.Checked) ATMSummaryATMOrders(DateTime.Today, DateTime.Today.AddDays(1)); _lastRun = DateTime.Now; insertShowlog("小时变化结束 ", DateTime.Now, DateTime.Now); } _running = false; } private void Form1_Load(object sender, EventArgs e) { this.dateTimePicker1.Value = DateTime.Now.Date; this.dateTimePicker2.Value = this.dateTimePicker1.Value.AddDays(1); this.button7_Click(null, null); Trace.WriteLine("Test"); } private void button4_Click(object sender, EventArgs e) { showLog("Query", string.Format("Query Data. DateTime {0} - {1} .", this.dateTimePicker1.Value.ToShortDateString(), this.dateTimePicker2.Value.ToShortDateString())); SortByDocument sbd = new SortByDocument(); DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value; IMongoQuery query = null; List<IMongoQuery> list = new List<IMongoQuery>(); list.Add(Query.GTE("JobDate", st)); list.Add(Query.LT("JobDate", et)); query = Query.And(list); List<RouteTotal> task = Common.MongodbHelper.FindListBy<RouteTotal>(query, sbd, "table_RouteTotal"); showLog("Query", string.Format("Query Data count {0}.", task.Count)); } private void button5_Click(object sender, EventArgs ea) { DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value; Atmtask(st, et); } private void Atmtask(DateTime st, DateTime et) { insertShowlog("table_text1----Start", st, et); var df = new DatabaseFactory(); var _ilineGoodsService = new LineGoodsService(df, null); IVMDispatchService _ivmdispatchService = new VMDispatchMikeService(null, null, null, null, null, null, null , null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null , _ilineGoodsService, null, null, null, null); try {//10 10 //int days = (int)et.Date.Subtract(st.Date).TotalDays + 1; 1 //for (int i = 0; i <= days; i++) 0 1 //{ // var time = st.AddDays(i); // showLog("Atmtask", string.Format("Info KPI {0} Start.", time.ToShortDateString())); // //DateTime time = times.AddDays(i); // var patch = _ivmdispatchService.Atmtask(time); // var timeTo = time.ToString("yyyy-MM-dd"); // IMongoQuery query = Query.And((Query.EQ("JobDate", DateTime.Parse(timeTo)))); // Common.MongodbHelper.Remove<AtmTaskLogdetail>(query, "table_text"); // bool bln = Common.MongodbHelper.Add_List<AtmTaskLogdetail>("table_text", patch); // Common.MongodbHelper.insert<SysLog>("Log_text", // new SysLog { Level = "Info_KPI", Message = "更新" + timeTo + "的KPI数据" + bln.ToString() }); // showLog("Atmtask", string.Format("Info KPI {0} Ok. Data count {1}", time.ToShortDateString(), patch.Count)); // Application.DoEvents(); //Application.DoEvents(); //} // 10 10 DateTime time = st.AddDays(-1); while (time <= et) { time = time.AddDays(1); showLog("Atmtask", string.Format("Info KPI {0} Start.", time.ToShortDateString())); var patch = _ivmdispatchService.Atmtask(time); var timeTo = time.ToString("yyyy-MM-dd"); DateTime end = time.AddDays(1).Date; //IMongoQuery query = Query.And((Query.EQ("JobDate", DateTime.Parse(timeTo)))); List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", time.Date)); list1.Add(Query.LT("JobDate", end)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<AtmTaskLogdetail>(query, "table_text"); Common.MongodbHelper.Add_List<AtmTaskLogdetail>("table_text", patch); showLog("Atmtask", string.Format("Info KPI {0} Ok. Data count {1}", time.ToShortDateString(), patch.Count)); insertShowlog("table_text1----Count" + patch.Count, time, time); } } catch (Exception e) { showLog("Atmtask", string.Format("Error {0}.", e.ToString())); Common.MongodbHelper.insert<SysLog>("Log_text", new SysLog { Level = "Info_KPIError", Message = e.ToString() }); insertShowlog("table_text1----Error" + e.ToString(), st, et); } insertShowlog("table_text1----End", st, et); } private void button6_Click(object sender, EventArgs ea) { DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value; CassetteTrackPageReport(st, et); } private void CassetteTrackPageReport(DateTime st, DateTime et) { //IVMDispatchService _ivmdispatchService = new VMDispatchMikeService(null, null, null, null, null, null, null // , null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null // , null, null, null, null, null); //try //{ // int pagecnt = 1; // int currentPage = 1; // int showCount = int.MaxValue; // DateTime time = st; // int days = (int)et.Date.Subtract(st.Date).TotalDays + 1; // for (int i = 0; i < days; i++) // { // DateTime enddate = time.AddDays(1); // showLog("CassetteTrack", string.Format("Info Cassette Track {0} Start.", time.ToShortDateString())); // Application.DoEvents(); // var patch = _ivmdispatchService.CassetteTrackPageReport(time.ToString() // , enddate.ToString(), "", "", "", "", out pagecnt, currentPage, showCount); // var timeTo = enddate.ToString("yyyy-MM-dd"); // IMongoQuery query = Query.And((Query.EQ("moneyFiveTen", timeTo))); // Common.MongodbHelper.Remove<VMLineInfoOperation>(query, "table_text"); // bool bln = Common.MongodbHelper.Add_List<VMLineInfoOperation>("table_text", patch); // Common.MongodbHelper.insert<SysLog>("Log_text", // new SysLog { Level = "CassetteReport", Message = "更新" + timeTo + "的Cassette数据" + bln.ToString() }); // showLog("CassetteTrack", string.Format("Info Cassette Track {0} Ok. Data count {1}", time.ToShortDateString(), patch.Count)); // time = time.AddDays(1); // Application.DoEvents(); // Application.DoEvents(); // } //} //catch (Exception e) //{ // showLog("CassetteTrack", string.Format("Error {0}.", e.ToString())); // Common.MongodbHelper.insert<SysLog>("Log_text", new SysLog { Level = "CassetteReportError", Message = e.ToString() }); //} } private void button7_Click(object sender, EventArgs e) { _stop = !_stop; if (_stop) { button7.Text = "start timer"; showLog("Timer", "Timer Stop!"); } else { button7.Text = "stop timer"; showLog("Timer", "Timer Start!"); } } private void button8_Click(object sender, EventArgs e) {//Summary of Order DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value.AddDays(1); SummaryofOrder(st, et); } private void SummaryofOrder(DateTime st, DateTime et) { showLog("SummaryofOrder", "Start"); insertShowlog("SummaryofOrder----Start", st, et); try { using (var db = new ApplicationDb()) { List<SummaryofOrder> SummoOrder = new List<SummaryofOrder>(); var bankdes = db.AtmCustomers.ToList(); var bank = bankdes.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).ToList(); var Banks = bank.Select(a => a.Name).ToList(); DateTime temp = st; var bankorders = db.BankOrders.Where(a => !a.Deleted && a.Release == "1" && a.ImplementTime.Value >= st && a.ImplementTime.Value < et).ToList(); List<Guid> bankatmId = bankorders.Where(a => a.AtmId != null).Select(a => a.AtmId.Value).ToList(); var prolist = db.SysProjects.Where(a => !a.Deleted).ToList(); var atmlist = db.AtmAtms.Where(a => bankatmId.Contains(a.Id)).ToList(); while (temp < et) //每天 { DateTime temped = temp.AddDays(1); foreach (var item in prolist) { var bankorderlist = (from a in bankorders.Where(a => a.ImplementTime.Value >= temp && a.ImplementTime.Value < temped) join b in atmlist.Where(a => a.ProjectId == item.Id) on a.AtmId equals b.Id join c in bankdes on b.CustomerId equals c.Id select new { a.ImplementTime, a.OrderTime, a.IsDropBag, Bank = c.Name }).ToList(); var orderbank = bankorderlist.Select(a => a.Bank).ToList(); SummoOrder.AddRange(bankorderlist.GroupBy(c => c.Bank).Select(g => (new SummaryofOrder { Bank = g.Key, OrderInAdvance = g.Count(item0 => (!item0.OrderTime.Equals((DateTime)item0.ImplementTime) && (item0.IsDropBag == 2 || item0.IsDropBag == 0))), SameDayOrder = g.Count(item0 => (item0.OrderTime.Equals((DateTime)item0.ImplementTime) && (item0.IsDropBag == 2 || item0.IsDropBag == 0))), CassetteDamage = g.Count(item0 => item0.IsDropBag == 4), DropBag = g.Count(item0 => item0.IsDropBag == 1 || item0.IsDropBag == 3), //Totalorder = 0.ToStr(), Branch = item.Name, JobDate = temp.Date }))); //暂时不注释 //foreach (var itembk in Banks) //{ // if (!orderbank.Contains(itembk)) // { // SummoOrder.Add(new SummaryofOrder // { // Bank = itembk, // OrderInAdvance = 0, // SameDayOrder = 0, // CassetteDamage = 0, // DropBag = 0, // //Status = 1 // Branch = item.Name, // JobDate = temp.Date // }); // } //} } temp = temp.AddDays(1); } var cntsd = SummoOrder.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", st)); list1.Add(Query.LT("JobDate", et)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<SummaryofOrder>(query, "table_SummoOrder"); Common.MongodbHelper.Add_List<SummaryofOrder>("table_SummoOrder", SummoOrder); showLog("SummaryofOrder", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("SummaryofOrder----Count" + cntsd, st, et); } } catch (Exception ex) { showLog("SummaryofOrder", "Error:" + ex.Message); insertShowlog("SummaryofOrder----Error" + ex.ToString(), st, et); } insertShowlog("SummaryofOrder----End", st, et); } private void button9_Click(object sender, EventArgs e) {//Result of Order DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value.AddDays(1); ResultofOrder(st, et); } private void ResultofOrder(DateTime st, DateTime et) { showLog("ResultofOrder", "Start"); insertShowlog("ResultofOrder----Start", st, et); try { using (var db = new ApplicationDb()) { List<ResultofOrder> ResultofOrder = new List<ResultofOrder>(); var bankdes = db.AtmCustomers.ToList(); var bank = bankdes.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).ToList(); var Banks = bank.Select(a => a.Name).ToList(); DateTime temp = st; var bankorders = db.BankOrders.Where(a => !a.Deleted && a.Release == "1" && a.ImplementTime.Value >= st && a.ImplementTime.Value < et).ToList(); List<Guid> bankatmId = bankorders.Where(a => a.AtmId != null).Select(a => a.AtmId.Value).ToList(); var prolist = db.SysProjects.Where(a => !a.Deleted).ToList(); var atmlist = db.AtmAtms.Where(a => bankatmId.Contains(a.Id)).ToList(); var ORDERiD = bankorders.Select(a => a.Id).ToList(); // var _iAtmSysLog = db.AtmSysLogs.Where(a => !a.Deleted).Where(a => ORDERiD.Contains(a.SysUserId) && //((a.AtmSysAction >= 11 && a.AtmSysAction < 22) || a.AtmSysAction == 24 || a.AtmSysAction == 25) && a.CreatedDate >= st && a.CreatedDate < et).OrderByDescending(a => a.UpdatedDate).ToList(); var _iAtmSysLog = db.AtmSysLogs.Where(a => !a.Deleted).Where(a => ORDERiD.Contains(a.SysUserId) && ((a.AtmSysAction >= 11 && a.AtmSysAction < 22) || a.AtmSysAction == 24 || a.AtmSysAction == 25 || a.AtmSysAction == 16 || a.AtmSysAction == 13) && a.CreatedDate >= st && a.CreatedDate < et).OrderByDescending(a => a.UpdatedDate).ToList(); while (temp < et) //每天 { DateTime temped = temp.AddDays(1); foreach (var item in prolist) { //var dones = 0; //var drops = 0; //var cassettes = 0; var bankorderlist = (from a in bankorders.Where(a => a.ImplementTime.Value >= temp && a.ImplementTime.Value < temped) join tmp in atmlist.Where(a => a.ProjectId == item.Id) on a.AtmId equals tmp.Id join tmp2 in bankdes on tmp.CustomerId equals tmp2.Id select new { a, Project = tmp.ProjectId, Bank = tmp2.Name }).ToList(); //var orderbank = bankorderlist.Select(a => a.Bank).ToList(); var orderid = bankorderlist.Select(a => a.a.Id).ToList(); var sysatm = _iAtmSysLog.Where(a => a.CreatedDate >= temp && a.CreatedDate < temped).ToList(); var bankorder = bankorderlist.GroupBy(c => new { c.a.ImplementTime, c.a.CustomerId, c.Bank }).ToList(); if (bankorder.Count > 0) { foreach (var itembk in bankorder) { ResultofOrder or = new ResultofOrder(); or.JobDate = itembk.Key.ImplementTime; //or.CustomerId = itembk.Key.CustomerId; or.Bank = itembk.Key.Bank; or.Branch = item.Name; or.Totalorder = itembk.Count(); var orid = itembk.Select(a => new { a.a.Id, a.a.OrderStatus }).ToList(); int done = 0; int drop = 0; int cassette = 0; int Failed = 0; foreach (var items in orid) { //var d = sysatm.Where(a => a.SysUserId == items.Id).FirstOrDefault(); if ((items.OrderStatus >= 11 && items.OrderStatus < 22) || items.OrderStatus == 24 || items.OrderStatus == 25) { done = done + 1; } var dro = sysatm.Where(a => a.SysUserId == items.Id && a.AtmSysAction == 14).FirstOrDefault(); if (dro != null) { drop = drop + 1; } var cass = sysatm.Where(a => a.SysUserId == items.Id && a.AtmSysAction == 18).FirstOrDefault(); if (cass != null) { cassette = cassette + 1; } var Fail = sysatm.Where(a => a.SysUserId == items.Id && (a.AtmSysAction == 16 || a.AtmSysAction == 13)).FirstOrDefault(); if (Fail != null) { Failed = Failed + 1; } } or.Failed = Failed; or.Done = done; or.DropBag = drop; or.BadCassette = cassette; ResultofOrder.Add(or); //dones = dones + done; //drops = drops + drop; //cassettes = cassettes + cassette; } } //ResultofOrder.Add(new ResultofOrder //{ // Bank = "Total", // TotalOrder = bankorderlist.Count(), // Done = dones, // DropBag = drops, // CassetteDamage = cassettes, // Status = 1, //}); //ResultofOrder.AddRange(bankorderlist.GroupBy(c => c.Bank).Select(g => (new SummaryofOrder //{ // Bank = g.Key, // OrderInAdvance = g.Count(item0 => (!item0.OrderTime.Equals((DateTime)item0.ImplementTime) && (item0.IsDropBag == 2 || item0.IsDropBag == 0))), // SameDayOrder = g.Count(item0 => (item0.OrderTime.Equals((DateTime)item0.ImplementTime) && (item0.IsDropBag == 2 || item0.IsDropBag == 0))), // CassetteDamage = g.Count(item0 => item0.IsDropBag == 4), // DropBag = g.Count(item0 => item0.IsDropBag == 1 || item0.IsDropBag == 3), // //Totalorder = 0.ToStr(), // Branch = item.Name, // JobDate = temp.Date //}))); //foreach (var itembk in Banks) //{ // if (!orderbank.Contains(itembk)) // { // SummoOrder.Add(new SummaryofOrder // { // Bank = itembk, // OrderInAdvance = 0, // SameDayOrder = 0, // CassetteDamage = 0, // DropBag = 0, // //Status = 1 // Branch = item.Name, // JobDate = temp.Date // }); // } //} } temp = temp.AddDays(1); } var cntsd = ResultofOrder.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", st)); list1.Add(Query.LT("JobDate", et)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<ResultofOrder>(query, "table_ResultofOrder"); Common.MongodbHelper.Add_List<ResultofOrder>("table_ResultofOrder", ResultofOrder); showLog("ResultofOrder", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("ResultofOrder----Count" + cntsd, st, et); } } catch (Exception ex) { showLog("ResultofOrder", "Error:" + ex.Message); insertShowlog("ResultofOrder----Error" + ex.ToString(), st, et); } insertShowlog("ResultofOrder----End", st, et); } private void button10_Click(object sender, EventArgs e) {//Order Status by Customer DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value.AddDays(1); StatusCustomer(st, et); } private void StatusCustomer(DateTime st, DateTime et) {//--OrderStatusbyCustomer showLog("OrderStatusbyCustomer", "Start"); insertShowlog("OrderStatusbyCustomer----Start", st, et); try { using (var db = new ApplicationDb()) { List<OrderStatusbyCustomer> OrderStatusbyCustomer = new List<OrderStatusbyCustomer>(); var bankdes = db.AtmCustomers.ToList(); var bank = bankdes.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).ToList(); var Banks = bank.Select(a => a.Name).ToList(); DateTime temp = st; var bankorders = db.BankOrders.Where(a => !a.Deleted && a.Release == "1" && a.ImplementTime.Value >= st && a.ImplementTime.Value < et).ToList(); List<Guid> bankatmId = bankorders.Where(a => a.AtmId != null).Select(a => a.AtmId.Value).ToList(); var prolist = db.SysProjects.Where(a => !a.Deleted).ToList(); var atmlist = db.AtmAtms.Where(a => bankatmId.Contains(a.Id)).ToList(); List<Guid> bankIdS = bankorders.Select(a => a.Id).ToList(); var atmnolists = db.AtmNoLists.Where(a => bankIdS.Contains(a.BankOrderId)) .Select(a => new { a.BankOrderId, a.LineInfom.LineName }).ToList(); while (temp < et) //每天 { DateTime temped = temp.AddDays(1); foreach (var item in prolist) { var bankorderlist = (from a in bankorders.Where(a => a.ImplementTime.Value >= temp && a.ImplementTime.Value < temped) join tmp in atmlist.Where(a => a.ProjectId == item.Id) on a.AtmId equals tmp.Id join tmp4 in bankdes on a.CustomerId equals tmp4.Id orderby a.ImplementTime, a.CreatedDate, a.UpdatedDate descending select new { orderid = a.Id, a.PubTime, Project = tmp.ProjectId, CustomerId = a.CustomerId, ATMID = tmp.AtmNo, Location = tmp.ATMName, Customer = tmp4.Name, Area = a.OrderStatus, JobDate = a.ImplementTime }).ToList(); var orderids = bankorderlist.Select(a => a.orderid).ToList(); var ordernoList = atmnolists.Where(a => orderids.Contains(a.BankOrderId)) .Select(a => new { a.BankOrderId, a.LineName }).ToList(); foreach (var item2 in bankorderlist) { OrderStatusbyCustomer or = new OrderStatusbyCustomer(); or.Branch = item.Name; or.Customer = item2.Customer; or.JobDate = item2.JobDate; or.ATMID = item2.ATMID; or.Location = item2.Location; or.Customer = item2.Customer; or.RouteName = ""; var ordernost = ordernoList.Where(a => a.BankOrderId == item2.orderid).FirstOrDefault(); if (ordernost != null) { or.RouteName = ordernost.LineName; } or.OrderStatus = ((item2.Area >= 11 && item2.Area < 22) || item2.Area == 24 || item2.Area == 25 ? "DONE" : "Pending"); OrderStatusbyCustomer.Add(or); } } temp = temp.AddDays(1); } var cntsd = OrderStatusbyCustomer.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", st)); list1.Add(Query.LT("JobDate", et)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<OrderStatusbyCustomer>(query, "table_OrderStatusbyCustomer"); Common.MongodbHelper.Add_List<OrderStatusbyCustomer>("table_OrderStatusbyCustomer", OrderStatusbyCustomer); showLog("OrderStatusbyCustomer", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("OrderStatusbyCustomer----Count" + cntsd, st, et); } } catch (Exception ex) { showLog("OrderStatusbyCustomer", "Error:" + ex.Message); insertShowlog("OrderStatusbyCustomer----Error" + ex.ToString(), st, et); } insertShowlog("OrderStatusbyCustomer----End", st, et); } private void button11_Click(object sender, EventArgs e) {//Order Status by Route OrderStatusbyRoute DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value.AddDays(1); StatusRoute(st, et); } private void StatusRoute(DateTime st, DateTime et) {//--OrderStatusbyRoute showLog("OrderStatusbyRoute", "Start"); insertShowlog("OrderStatusbyRoute----Start", st, et); try { using (var db = new ApplicationDb()) { List<OrderStatusbyRoute> OrderStatusbyRoutes = new List<OrderStatusbyRoute>(); // var bankdes = db.AtmCustomers.ToList(); // var bank = bankdes.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).ToList(); // var Banks = bank.Select(a => a.Name).ToList(); DateTime temp = st; // var bankorders = db.BankOrders.Where(a => !a.Deleted && a.Release == "1" // && a.ImplementTime.Value >= st && a.ImplementTime.Value < et).ToList(); // List<Guid> bankatmId = bankorders.Where(a => a.AtmId != null).Select(a => a.AtmId.Value).ToList(); var prolist = db.SysProjects.Where(a => !a.Deleted).ToList(); // var atmlist = db.AtmAtms.Where(a => bankatmId.Contains(a.Id)).ToList(); // List<Guid> bankIdS = bankorders.Select(a => a.Id).ToList(); // var atmnolists = db.AtmNoLists.Where(a => bankIdS.Contains(a.BankOrderId)) //.Select(a => new { a.BankOrderId, a.LineInfom.LineName }).ToList(); // var linetmplist = db.LineInfos.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).Where(a => a.TaskTime >= st && a.TaskTime < et && a.TaskLineType == 0 && !a.Deleted) .Select(a => new { a.Id, a.ProjectId, a.TruckOutTime, a.TruckBackTime, a.LineName, a.TaskTime }).ToList(); // List<Guid> linegidsS = linetmplist.Select(a => a.Id).ToList(); var linelistS = db.AtmNoLists.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).Where(a => linegidsS.Contains(a.LineInfoId)).ToList(); var orderidS = linelistS.Select(a => a.BankOrderId).ToArray(); var sysatmS = db.AtmSysLogs.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).Where(a => orderidS.Contains(a.SysUserId)).ToList(); //&& (a.AtmSysAction == 11 || a.AtmSysAction == 17) && a.CreatedDate >= st //&& a.CreatedDate < et).ToList(); // var linelists = linelist.GroupBy(c => new { c.LineInfoId }).ToList(); while (temp < et) //每天 { foreach (var item in prolist) { //OrderStatusbyRoute or = new OrderStatusbyRoute(); var linstlist = linetmplist.Where(a => a.TaskTime == temp && a.ProjectId == item.Id).ToList(); List<Guid> linegids = linstlist.Select(a => a.Id).ToList(); var linelist = linelistS.Where(a => linegids.Contains(a.LineInfoId)).ToList(); var orderid = linelist.Select(a => a.BankOrderId).ToArray(); var sysatm = sysatmS.Where(a => orderid.Contains(a.SysUserId) && (a.AtmSysAction == 11 || a.AtmSysAction == 17) && a.CreatedDate >= temp && a.CreatedDate < temp.AddDays(1)).ToList(); var linelists = linelist.GroupBy(c => new { c.LineInfoId }).ToList(); if (linelists.Count > 0) { foreach (var item2 in linelists) { OrderStatusbyRoute or = new OrderStatusbyRoute(); //or.RouteId = item.Key.LineInfoId; or.JobDate = temp; or.Branch = item.Name; or.RouteName = ""; var linobj = linstlist.Where(a => a.Id == item2.Key.LineInfoId).FirstOrDefault(); if (linobj != null) { if (linobj.TruckBackTime.HasValue) { //or.ReturnTime = linobj.TruckBackTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); or.ReturnTime = linobj.TruckBackTime.Value; } if (linobj.TruckOutTime.HasValue) { //or.Location = linobj.TruckOutTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); or.DepatureTime = linobj.TruckOutTime.Value; } or.RouteName = linobj.LineName; } or.JobAssigned = item2.Count(); var orid = item2.Select(a => a.BankOrderId).ToArray(); int done = 0; foreach (var items in orid) { var d = sysatm.Where(a => a.SysUserId == items).FirstOrDefault(); if (d != null) { done = done + 1; } } or.JobDone = done; OrderStatusbyRoutes.Add(or); } } } temp = temp.AddDays(1); } var cntsd = OrderStatusbyRoutes.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", st)); list1.Add(Query.LT("JobDate", et)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<OrderStatusbyRoute>(query, "table_OrderStatusbyRoutes"); Common.MongodbHelper.Add_List<OrderStatusbyRoute>("table_OrderStatusbyRoutes", OrderStatusbyRoutes); showLog("OrderStatusbyRoute", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("OrderStatusbyRoute----Count" + cntsd, st, et); } } catch (Exception ex) { showLog("OrderStatusbyRoute", "Error:" + ex.Message); insertShowlog("OrderStatusbyRoute----Error" + ex.ToString(), st, et); } insertShowlog("OrderStatusbyRoute----End", st, et); } private void listBox1_DoubleClick(object sender, EventArgs e) { if (listBox1.SelectedItems.Count > 0) { textBox1.Text = listBox1.SelectedItems[0].ToString(); } } //Employee assigned private void button12_Click(object sender, EventArgs e) { DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value; Employeeassigned(st, et); } private void Employeeassigned(DateTime st, DateTime et) { insertShowlog("Employeeassigned----Start", st, et); try { var df = new DatabaseFactory(); SysProjectService sp = new SysProjectService(df, null); LineInfoService ls = new LineInfoService(df, null); SysUserService ss = new SysUserService(df, null); IRosterPlanService _iRosterPlanService = new RosterPlanService(null, null, null, null, null, null, null, sp , ls, null, null, null, null, null, ss, null, null, null, null, null, null, null, null, null, null , null, null, null, null); var EmployeeAssigneds = _iRosterPlanService.SetLineSetListIsPr(st, et); List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", st.Date)); list1.Add(Query.LT("JobDate", et.AddDays(1).Date)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<EmployeeAssigned>(query, "table_EmployeeAssigneds"); Common.MongodbHelper.Add_List<EmployeeAssigned>("table_EmployeeAssigneds", EmployeeAssigneds); showLog("Employeeassigned", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), EmployeeAssigneds.Count)); insertShowlog("Employeeassigned----Count" + EmployeeAssigneds.Count, st, et); } catch (Exception e) { showLog("Employeeassigned", string.Format("Error {0}.", e.ToString())); //Common.MongodbHelper.insert<SysLog>("Log_text", new SysLog { Level = "Info_KPIError", Message = e.ToString() }); insertShowlog("Employeeassigned----Error" + e.ToString(), st, et); } insertShowlog("Employeeassigned----End", st, et); } private void button13_Click(object sender, EventArgs e) { DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value.AddDays(1); FSPSummaryofOrder(st, et); } private void FSPSummaryofOrder(DateTime st, DateTime et) {//Order in Sameday 同一天 Order in advance 不同天 showLog("FSPSummaryofOrder", "Start"); insertShowlog("FSPSummaryofOrder----Start", st, et); try { using (var db = new ApplicationDb()) { List<FSPSummaryofOrder> SummoOrder = new List<FSPSummaryofOrder>(); var bankdes = db.AtmCustomers.ToList(); var bank = bankdes.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).ToList(); var Banks = bank.Select(a => a.Name).ToList(); DateTime temp = st; //db.BankOrders //var bankorders = db.BankOrders.Where(a => !a.Deleted && a.Release == "1" // && a.ImplementTime.Value >= st && a.ImplementTime.Value < et).ToList(); var bankorders = db.Repairs.Where(a => !a.Deleted && a.Release == "1" && a.FaultTime >= st && a.FaultTime < et).Select(a => new { Id = a.Id, AtmId = a.AtmId, ImplementTime = a.FaultTime, CustomerId = a.CustomerId, OrderStatus = a.OrderStatus, OrderTime = a.NoticeTime }).ToList().Union(db.Inspections.Where(a => !a.Deleted && a.Release == "1" && a.ImplementTime.Value >= st && a.ImplementTime.Value < et).Select(a => new { Id = a.Id, AtmId = a.AtmId, ImplementTime = a.ImplementTime.Value, CustomerId = a.CustomerId, OrderStatus = a.OrderStatus, OrderTime = a.OrderTime }).ToList()); List<Guid> bankatmId = bankorders.Where(a => a.AtmId != null).Select(a => a.AtmId.Value).ToList(); var prolist = db.SysProjects.Where(a => !a.Deleted).ToList(); var atmlist = db.AtmAtms.Where(a => bankatmId.Contains(a.Id)).ToList(); while (temp < et) //每天 { DateTime temped = temp.AddDays(1); foreach (var item in prolist) { var bankorderlist = (from a in bankorders.Where(a => a.ImplementTime >= temp && a.ImplementTime < temped) join b in atmlist.Where(a => a.ProjectId == item.Id) on a.AtmId equals b.Id join c in bankdes on b.CustomerId equals c.Id select new { a.ImplementTime, a.OrderTime, //a.IsDropBag, Bank = c.Name }).ToList(); var orderbank = bankorderlist.Select(a => a.Bank).ToList(); SummoOrder.AddRange(bankorderlist.GroupBy(c => c.Bank).Select(g => (new FSPSummaryofOrder { Bank = g.Key, OrderInAdvance = g.Count(item0 => (!item0.OrderTime.Date.Equals((DateTime)item0.ImplementTime.Date))), SameDayOrder = g.Count(item0 => (item0.OrderTime.Date.Equals((DateTime)item0.ImplementTime.Date))), //CassetteDamage = g.Count(item0 => item0.IsDropBag == 4), //DropBag = g.Count(item0 => item0.IsDropBag == 1 || item0.IsDropBag == 3), //Totalorder = 0.ToStr(), Branch = item.Name, JobDate = temp.Date }))); //暂时不注释 //foreach (var itembk in Banks) //{ // if (!orderbank.Contains(itembk)) // { // SummoOrder.Add(new SummaryofOrder // { // Bank = itembk, // OrderInAdvance = 0, // SameDayOrder = 0, // CassetteDamage = 0, // DropBag = 0, // //Status = 1 // Branch = item.Name, // JobDate = temp.Date // }); // } //} } temp = temp.AddDays(1); } var cntsd = SummoOrder.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", st)); list1.Add(Query.LT("JobDate", et)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<FSPSummaryofOrder>(query, "table_FSPSummoOrder"); Common.MongodbHelper.Add_List<FSPSummaryofOrder>("table_FSPSummoOrder", SummoOrder); showLog("FSPSummaryofOrder", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("FSPSummaryofOrder----Count" + cntsd, st, et); } } catch (Exception ex) { showLog("FSPSummaryofOrder", "Error:" + ex.Message); insertShowlog("FSPSummaryofOrder----Error" + ex.ToString(), st, et); } insertShowlog("FSPSummaryofOrder----End", st, et); } private void button14_Click(object sender, EventArgs e) {//FSP Result of Order DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value.AddDays(1); FSPResultofOrder(st, et); } private void FSPResultofOrder(DateTime st, DateTime et) { showLog("FSPResultofOrder", "Start"); insertShowlog("FSPResultofOrder----Start", st, et); try { using (var db = new ApplicationDb()) { List<FSPResultofOrder> ResultofOrder = new List<FSPResultofOrder>(); var bankdes = db.AtmCustomers.ToList(); var bank = bankdes.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).ToList(); var Banks = bank.Select(a => a.Name).ToList(); DateTime temp = st; //var bankorders = db.Repairs.Where(a => !a.Deleted && (a.OrderFlg == 10 || a.OrderFlg == 20) && a.Release == "1" // && a.FaultTime >= st && a.FaultTime < et).Select(a => new { Id = a.Id, AtmId = a.AtmId, ImplementTime = a.FaultTime, CustomerId = a.CustomerId, OrderStatus = a.OrderStatus }).ToList().Union(db.Inspections.Where(a => !a.Deleted && a.OrderFlg == 30 && a.Release == "1" && a.ImplementTime.Value >= st && a.ImplementTime.Value < et).Select(a => new { Id = a.Id, AtmId = a.AtmId, ImplementTime = a.ImplementTime.Value, CustomerId = a.CustomerId, OrderStatus = a.OrderStatus }).ToList()); var bankorders = db.Repairs.Where(a => !a.Deleted && a.Release == "1" && a.FaultTime >= st && a.FaultTime < et).Select(a => new { Id = a.Id, AtmId = a.AtmId, ImplementTime = a.FaultTime, CustomerId = a.CustomerId, OrderStatus = a.OrderStatus }).ToList().Union(db.Inspections.Where(a => !a.Deleted && a.Release == "1" && a.ImplementTime.Value >= st && a.ImplementTime.Value < et).Select(a => new { Id = a.Id, AtmId = a.AtmId, ImplementTime = a.ImplementTime.Value, CustomerId = a.CustomerId, OrderStatus = a.OrderStatus }).ToList()); List<Guid> bankatmId = bankorders.Where(a => a.AtmId != null).Select(a => a.AtmId.Value).ToList(); var prolist = db.SysProjects.Where(a => !a.Deleted).ToList(); var atmlist = db.AtmAtms.Where(a => bankatmId.Contains(a.Id)).ToList(); var ORDERiD = bankorders.Select(a => a.Id).ToList(); //var _iAtmSysLog = db.AtmSysLogs.Where(a => !a.Deleted).Where(a => ORDERiD.Contains(a.SysUserId) && //((a.AtmSysAction >= 11 && a.AtmSysAction < 22) || a.AtmSysAction == 24 || a.AtmSysAction == 25) && a.CreatedDate >= st && a.CreatedDate < et).OrderByDescending(a => a.UpdatedDate).ToList(); var _iAtmSysLog = db.AtmSysLogs.Where(a => !a.Deleted).Where(a => ORDERiD.Contains(a.SysUserId) && ((a.AtmSysAction >= 11 && a.AtmSysAction < 22) || a.AtmSysAction == 24 || a.AtmSysAction == 25 || a.AtmSysAction == 16 || a.AtmSysAction == 13) && a.CreatedDate >= st && a.CreatedDate < et).OrderByDescending(a => a.UpdatedDate).ToList(); while (temp < et) //每天 { DateTime temped = temp.AddDays(1); foreach (var item in prolist) { //var dones = 0; //var drops = 0; //var cassettes = 0; var bankorderlist = (from a in bankorders.Where(a => a.ImplementTime >= temp && a.ImplementTime < temped) join tmp in atmlist.Where(a => a.ProjectId == item.Id) on a.AtmId equals tmp.Id join tmp2 in bankdes on tmp.CustomerId equals tmp2.Id select new { a, Project = tmp.ProjectId, Bank = tmp2.Name }).ToList(); //var orderbank = bankorderlist.Select(a => a.Bank).ToList(); var orderid = bankorderlist.Select(a => a.a.Id).ToList(); var sysatm = _iAtmSysLog.Where(a => a.CreatedDate >= temp && a.CreatedDate < temped).ToList(); var bankorder = bankorderlist.GroupBy(c => new { c.a.ImplementTime, c.a.CustomerId, c.Bank }).ToList(); if (bankorder.Count > 0) { foreach (var itembk in bankorder) { FSPResultofOrder or = new FSPResultofOrder(); or.JobDate = itembk.Key.ImplementTime; //or.CustomerId = itembk.Key.CustomerId; or.Bank = itembk.Key.Bank; or.Branch = item.Name; //or.Totalorder = itembk.Count(); var orid = itembk.Select(a => new { a.a.Id, a.a.OrderStatus }).ToList(); int done = 0; //int drop = 0; //int cassette = 0; int Failed = 0; foreach (var items in orid) { //var d = sysatm.Where(a => a.SysUserId == items.Id).FirstOrDefault(); if ((items.OrderStatus >= 11 && items.OrderStatus < 22) || items.OrderStatus == 24 || items.OrderStatus == 25) { done = done + 1; } //var dro = sysatm.Where(a => a.SysUserId == items.Id && a.AtmSysAction == 14).FirstOrDefault(); //if (dro != null) //{ // drop = drop + 1; //} //var cass = sysatm.Where(a => a.SysUserId == items.Id && a.AtmSysAction == 18).FirstOrDefault(); //if (cass != null) //{ // cassette = cassette + 1; //} var Fail = sysatm.Where(a => a.SysUserId == items.Id && (a.AtmSysAction == 16 || a.AtmSysAction == 13)).FirstOrDefault(); if (Fail != null) { Failed = Failed + 1; } } or.Failed = Failed; or.Done = done; //or.DropBag = drop; //or.BadCassette = cassette; ResultofOrder.Add(or); //dones = dones + done; //drops = drops + drop; //cassettes = cassettes + cassette; } } //ResultofOrder.Add(new ResultofOrder //{ // Bank = "Total", // TotalOrder = bankorderlist.Count(), // Done = dones, // DropBag = drops, // CassetteDamage = cassettes, // Status = 1, //}); //ResultofOrder.AddRange(bankorderlist.GroupBy(c => c.Bank).Select(g => (new SummaryofOrder //{ // Bank = g.Key, // OrderInAdvance = g.Count(item0 => (!item0.OrderTime.Equals((DateTime)item0.ImplementTime) && (item0.IsDropBag == 2 || item0.IsDropBag == 0))), // SameDayOrder = g.Count(item0 => (item0.OrderTime.Equals((DateTime)item0.ImplementTime) && (item0.IsDropBag == 2 || item0.IsDropBag == 0))), // CassetteDamage = g.Count(item0 => item0.IsDropBag == 4), // DropBag = g.Count(item0 => item0.IsDropBag == 1 || item0.IsDropBag == 3), // //Totalorder = 0.ToStr(), // Branch = item.Name, // JobDate = temp.Date //}))); //foreach (var itembk in Banks) //{ // if (!orderbank.Contains(itembk)) // { // SummoOrder.Add(new SummaryofOrder // { // Bank = itembk, // OrderInAdvance = 0, // SameDayOrder = 0, // CassetteDamage = 0, // DropBag = 0, // //Status = 1 // Branch = item.Name, // JobDate = temp.Date // }); // } //} } temp = temp.AddDays(1); } var cntsd = ResultofOrder.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", st)); list1.Add(Query.LT("JobDate", et)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<FSPResultofOrder>(query, "table_FSPResultofOrder"); Common.MongodbHelper.Add_List<FSPResultofOrder>("table_FSPResultofOrder", ResultofOrder); showLog("FSPResultofOrder", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("FSPResultofOrder----Count" + cntsd, st, et); } } catch (Exception ex) { showLog("FSPResultofOrder", "Error:" + ex.Message); insertShowlog("FSPResultofOrder----Error" + ex.ToString(), st, et); } insertShowlog("FSPResultofOrder----End", st, et); } private void button16_Click(object sender, EventArgs e) { DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value.AddDays(1); FSPStatusRoute(st, et); } private void FSPStatusRoute(DateTime st, DateTime et) {//--OrderStatusbyRoute showLog("FSPOrderStatusbyRoute", "Start"); insertShowlog("FSPOrderStatusbyRoute----Start", st, et); try { using (var db = new ApplicationDb()) { List<FSPOrderStatusbyRoute> OrderStatusbyRoutes = new List<FSPOrderStatusbyRoute>(); DateTime temp = st; var prolist = db.SysProjects.Where(a => !a.Deleted).ToList(); // var linetmplist = db.LineInfos.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).Where(a => a.TaskTime >= st && a.TaskTime < et //&& a.TaskLineType == 0 && !a.Deleted) //.Select(a => new { a.Id, a.ProjectId, a.TruckOutTime, a.TruckBackTime, a.LineName, a.TaskTime }).ToList(); var linetmplist = db.LineInfos.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).Where(a => a.TaskTime >= st && a.TaskTime < et && (a.TaskLineType == TaskLineTypes.TaskLineTypes_Xj || a.TaskLineType == TaskLineTypes.TaskLineTypes_Wx) && !a.Deleted) .Select(a => new { a.Id, a.ProjectId, a.TruckOutTime, a.TruckBackTime, a.LineName, a.TaskTime }).ToList(); List<Guid> linegidsS = linetmplist.Select(a => a.Id).ToList(); var linelistS = db.AtmNoLists.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).Where(a => linegidsS.Contains(a.LineInfoId)).ToList(); var orderidS = linelistS.Select(a => a.BankOrderId).ToArray(); var sysatmS = db.AtmSysLogs.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).Where(a => orderidS.Contains(a.SysUserId)).ToList(); //&& (a.AtmSysAction == 11 || a.AtmSysAction == 17) && a.CreatedDate >= st //&& a.CreatedDate < et).ToList(); // var linelists = linelist.GroupBy(c => new { c.LineInfoId }).ToList(); while (temp < et) //每天 { foreach (var item in prolist) { //OrderStatusbyRoute or = new OrderStatusbyRoute(); var linstlist = linetmplist.Where(a => a.TaskTime == temp && a.ProjectId == item.Id).ToList(); List<Guid> linegids = linstlist.Select(a => a.Id).ToList(); var linelist = linelistS.Where(a => linegids.Contains(a.LineInfoId)).ToList(); var orderid = linelist.Select(a => a.BankOrderId).ToArray(); var sysatm = sysatmS.Where(a => orderid.Contains(a.SysUserId) && (a.AtmSysAction == 11 || a.AtmSysAction == 17) && a.CreatedDate >= temp && a.CreatedDate < temp.AddDays(1)).ToList(); var linelists = linelist.GroupBy(c => new { c.LineInfoId }).ToList(); if (linelists.Count > 0) { foreach (var item2 in linelists) { FSPOrderStatusbyRoute or = new FSPOrderStatusbyRoute(); //or.RouteId = item.Key.LineInfoId; or.JobDate = temp; or.Branch = item.Name; or.RouteName = ""; var linobj = linstlist.Where(a => a.Id == item2.Key.LineInfoId).FirstOrDefault(); if (linobj != null) { if (linobj.TruckBackTime.HasValue) { //or.ReturnTime = linobj.TruckBackTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); or.ReturnTime = linobj.TruckBackTime.Value; } if (linobj.TruckOutTime.HasValue) { //or.Location = linobj.TruckOutTime.Value.ToString("yyyy-MM-dd HH:mm:ss"); or.DepatureTime = linobj.TruckOutTime.Value; } or.RouteName = linobj.LineName; } or.JobAssigned = item2.Count(); var orid = item2.Select(a => a.BankOrderId).ToArray(); int done = 0; foreach (var items in orid) { var d = sysatm.Where(a => a.SysUserId == items).FirstOrDefault(); if (d != null) { done = done + 1; } } or.JobDone = done; OrderStatusbyRoutes.Add(or); } } } temp = temp.AddDays(1); } var cntsd = OrderStatusbyRoutes.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", st)); list1.Add(Query.LT("JobDate", et)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<FSPOrderStatusbyRoute>(query, "table_FSPOrderStatusbyRoutes"); Common.MongodbHelper.Add_List<FSPOrderStatusbyRoute>("table_FSPOrderStatusbyRoutes", OrderStatusbyRoutes); showLog("FSPOrderStatusbyRoute", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("FSPOrderStatusbyRoute----Count" + cntsd, st, et); } } catch (Exception ex) { showLog("FSPOrderStatusbyRoute", "Error:" + ex.Message); insertShowlog("FSPOrderStatusbyRoute----Error" + ex.ToString(), st, et); } insertShowlog("FSPOrderStatusbyRoute----End", st, et); } private void button15_Click(object sender, EventArgs e) { DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value.AddDays(1); FSPStatusCustomer(st, et); } private void FSPStatusCustomer(DateTime st, DateTime et) {//--OrderStatusbyCustomer showLog("FSPOrderStatusbyCustomer", "Start"); insertShowlog("FSPOrderStatusbyCustomer----Start", st, et); try { using (var db = new ApplicationDb()) { List<FSPOrderStatusbyCustomer> OrderStatusbyCustomer = new List<FSPOrderStatusbyCustomer>(); var bankdes = db.AtmCustomers.ToList(); var bank = bankdes.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).ToList(); var Banks = bank.Select(a => a.Name).ToList(); DateTime temp = st; //var bankorders = db.BankOrders.Where(a => !a.Deleted && a.Release == "1" //&& a.ImplementTime.Value >= st && a.ImplementTime.Value < et).ToList(); var bankorders = db.Repairs.Where(a => !a.Deleted && a.Release == "1" && a.FaultTime >= st && a.FaultTime < et).Select(a => new { Id = a.Id, AtmId = a.AtmId, ImplementTime = a.FaultTime, CustomerId = a.CustomerId, OrderStatus = a.OrderStatus, CreatedDate = a.CreatedDate, UpdatedDate = a.UpdatedDate, PubTime = a.PubTime }).ToList(). Union(db.Inspections.Where(a => !a.Deleted && a.Release == "1" && a.ImplementTime.Value >= st && a.ImplementTime.Value < et). Select(a => new { Id = a.Id, AtmId = a.AtmId, ImplementTime = a.ImplementTime.Value, CustomerId = a.CustomerId, OrderStatus = a.OrderStatus, CreatedDate = a.CreatedDate, UpdatedDate = a.UpdatedDate, PubTime = a.PubTime }).ToList()); List<Guid> bankatmId = bankorders.Where(a => a.AtmId != null).Select(a => a.AtmId.Value).ToList(); var prolist = db.SysProjects.Where(a => !a.Deleted).ToList(); var atmlist = db.AtmAtms.Where(a => bankatmId.Contains(a.Id)).ToList(); List<Guid> bankIdS = bankorders.Select(a => a.Id).ToList(); var atmnolists = db.AtmNoLists.Where(a => bankIdS.Contains(a.BankOrderId)) .Select(a => new { a.BankOrderId, a.LineInfom.LineName }).ToList(); while (temp < et) //每天 { DateTime temped = temp.AddDays(1); foreach (var item in prolist) { var bankorderlist = (from a in bankorders.Where(a => a.ImplementTime >= temp && a.ImplementTime < temped) join tmp in atmlist.Where(a => a.ProjectId == item.Id) on a.AtmId equals tmp.Id join tmp4 in bankdes on a.CustomerId equals tmp4.Id orderby a.ImplementTime, a.CreatedDate, a.UpdatedDate descending select new { orderid = a.Id, a.PubTime, Project = tmp.ProjectId, CustomerId = a.CustomerId, ATMID = tmp.AtmNo, Location = tmp.ATMName, Customer = tmp4.Name, Area = a.OrderStatus, JobDate = a.ImplementTime }).ToList(); var orderids = bankorderlist.Select(a => a.orderid).ToList(); var ordernoList = atmnolists.Where(a => orderids.Contains(a.BankOrderId)) .Select(a => new { a.BankOrderId, a.LineName }).ToList(); foreach (var item2 in bankorderlist) { FSPOrderStatusbyCustomer or = new FSPOrderStatusbyCustomer(); or.Branch = item.Name; or.Customer = item2.Customer; or.JobDate = item2.JobDate; or.ATMID = item2.ATMID; or.Location = item2.Location; or.Customer = item2.Customer; or.RouteName = ""; var ordernost = ordernoList.Where(a => a.BankOrderId == item2.orderid).FirstOrDefault(); if (ordernost != null) { or.RouteName = ordernost.LineName; } or.OrderStatus = ((item2.Area >= 11 && item2.Area < 22) || item2.Area == 24 || item2.Area == 25 ? "DONE" : "Pending"); OrderStatusbyCustomer.Add(or); } } temp = temp.AddDays(1); } var cntsd = OrderStatusbyCustomer.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", st)); list1.Add(Query.LT("JobDate", et)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<FSPOrderStatusbyCustomer>(query, "table_FSPOrderStatusbyCustomer"); Common.MongodbHelper.Add_List<FSPOrderStatusbyCustomer>("table_FSPOrderStatusbyCustomer", OrderStatusbyCustomer); showLog("FSPOrderStatusbyCustomer", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("FSPOrderStatusbyCustomer----Count" + cntsd, st, et); } } catch (Exception ex) { showLog("FSPOrderStatusbyCustomer", "Error:" + ex.Message); insertShowlog("FSPOrderStatusbyCustomer----Error" + ex.ToString(), st, et); } insertShowlog("FSPOrderStatusbyCustomer----End", st, et); } private void button17_Click(object sender, EventArgs e) { DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value.AddDays(1); ATMSummaryATMOrders(st, et); } private void ATMSummaryATMOrders(DateTime st, DateTime et) { showLog("ATMSummaryATMOrder", "Start"); insertShowlog("ATMSummaryATMOrder----Start", st, et); try { using (var db = new ApplicationDb()) { List<ATMSummaryATMOrder> atmsumorders = new List<ATMSummaryATMOrder>(); var bankdes = db.AtmCustomers.ToList(); var bank = bankdes.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).ToList(); var Banks = bank.Select(a => a.Name).ToList(); DateTime temp = st; var _bankorder = db.BankOrders.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).Where(a => a.ImplementTime.HasValue).Where(a => a.ImplementTime.Value >= st && a.ImplementTime.Value < et).Include(a => a.AtmAtm).Include(a => a.AtmCustomer).ToList(); var _inspection = db.Inspections.Where(a => a.ImplementTime.HasValue && a.AtmId.HasValue && !a.Deleted).Where(a => a.ImplementTime.Value >= st && a.ImplementTime.Value < et).Include(a => a.AtmAtm).Include(a => a.AtmCustomer).ToList(); var _repair = db.Repairs.Where(a => !a.Deleted).OrderByDescending(a => a.UpdatedDate).Where(a => a.FaultTime >= st && a.FaultTime < et).Include(a => a.AtmAtm).Include(a => a.AtmCustomer).ToList(); // var prolist = db.SysProjects.Where(a => !a.Deleted).ToList(); //var atmlist = db.AtmAtms.Where(a => bankatmId.Contains(a.Id)).ToList(); while (temp < et) //每天 { // 每天下 也可以不根据时间分 在后面直接根据时间date ProjectId 客户分组 DateTime temped = temp.AddDays(1); foreach (var item in prolist) { // 每个城市下 -- 之前是每个城市 都要显示出来 没有的显示0 最后不用后 就 可以不根据城市分 //RM var bankorderlist = _bankorder.Where(a => a.ImplementTime >= temp && a.ImplementTime < temped && a.AtmAtm.ProjectId == item.Id).Select(a => new { a.ImplementTime.Value.Date, a.AtmAtm.ProjectId, a.AtmCustomer.Name }).GroupBy(a => new { a.Date, a.ProjectId, a.Name }) //分组求总 .Select(a => new { Type = "Replenishment", a.Key.Date, a.Key.ProjectId, a.Key.Name, Count = a.Count(), }).ToList(); var inspectionlist = _inspection.Where(a => a.ImplementTime >= temp && a.ImplementTime < temped && a.AtmAtm.ProjectId == item.Id).Select(a => new { a.ImplementTime.Value.Date, a.AtmAtm.ProjectId, a.AtmCustomer.Name }).GroupBy(a => new { a.Date, a.ProjectId, a.Name }) .Select(a => new { Type = "FLM/SLM/PM", a.Key.Date, a.Key.ProjectId, a.Key.Name, Count = a.Count() }).ToList(); var repairlist = _repair.Where(a => a.FaultTime >= temp && a.FaultTime < temped && a.AtmAtm.ProjectId == item.Id).Select(a => new { a.FaultTime.Date, a.AtmAtm.ProjectId, a.AtmCustomer.Name }).GroupBy(a => new { a.Date, a.ProjectId, a.Name }) .Select(a => new { Type = "FLM/SLM/PM", a.Key.Date, a.Key.ProjectId, a.Key.Name, Count = a.Count() }).ToList(); inspectionlist.AddRange(repairlist); var Flmslmpmorder = inspectionlist.GroupBy(a => new { a.Date, a.ProjectId, a.Name }).Select(a => new { Type = "FLM/SLM/PM", a.Key.Date, a.Key.ProjectId, a.Key.Name, Count = a.Sum(i => i.Count) }).ToList(); bankorderlist.AddRange(Flmslmpmorder); //FLM/SLM/PM foreach (var itemor in bankorderlist) { ATMSummaryATMOrder asaOrder = new ATMSummaryATMOrder(); asaOrder.Branch = item.Name; asaOrder.Bank = itemor.Name; asaOrder.JobDate = itemor.Date; asaOrder.Number = itemor.Count; asaOrder.JobType = itemor.Type; atmsumorders.Add(asaOrder); } } temp = temp.AddDays(1); } var cntsd = atmsumorders.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.GTE("JobDate", st)); list1.Add(Query.LT("JobDate", et)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<ATMSummaryATMOrder>(query, "table_ATMSummaryATMOrder"); Common.MongodbHelper.Add_List<ATMSummaryATMOrder>("table_ATMSummaryATMOrder", atmsumorders); showLog("ATMSummaryATMOrder", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("ATMSummaryATMOrder----Count" + cntsd, st, et); } } catch (Exception ex) { showLog("ATMSummaryATMOrder", "Error:" + ex.Message); insertShowlog("ATMSummaryATMOrder----Error" + ex.ToString(), st, et); } insertShowlog("ATMSummaryATMOrder----End", st, et); } private void button18_Click(object sender, EventArgs e) {//ATM Summary ATM Number DateTime st = this.dateTimePicker1.Value; DateTime et = this.dateTimePicker2.Value.AddDays(1); ATMSummaryATMNumber(st, et); } private void ATMSummaryATMNumber(DateTime st, DateTime et) { showLog("ATMSummaryATMNumber", "Start"); insertShowlog("ATMSummaryATMNumber----Start", st, et); try { using (var db = new ApplicationDb()) { List<ATMSummaryATMNumber> atmsum = new List<ATMSummaryATMNumber>(); var bankdes = db.AtmCustomers.ToList(); var prolist = db.SysProjects.ToList(); var Provinces = db.BaseDataMgrs.ToList(); //var atmCount = db.AtmAtms.Where(a => !a.Deleted && a.province != null && a.province != Guid.Empty).GroupBy(a => new { a.ProjectId, a.province, a.CustomerId, a.IsNon, a.JobType }).ToList(); //var atmCount = db.AtmAtms.Where(a => !a.Deleted).GroupBy(a => new { a.ProjectId, a.province, a.CustomerId, a.IsNon } //).ToList(); DataTable dtlall = new MySqlHelper().ExecuteDataTable(@"SELECT ProjectId,`province`,CustomerID,IsNon,jobtype,COUNT(1) cnt FROM t_atm_atm WHERE `jobtype` IN(1,2,3) GROUP BY ProjectId,`province`,CustomerID,IsNon,jobtype "); List<tmpATMCount> CountATMAll = new List<tmpATMCount>(); if (dtlall.Rows.Count > 0) CountATMAll = EntityConvert.GetEntities<tmpATMCount>(dtlall); //存列 var Cloall = CountATMAll.Distinct(a => new { a.CustomerID, a.IsNon, a.jobtype }).OrderBy(a => a.CustomerID).ThenBy(a => a.IsNon).ThenBy(a => a.jobtype); List<ATMSummaryATMNumberClo> atmclos = new List<ATMSummaryATMNumberClo>(); foreach (var item in Cloall) { ATMSummaryATMNumberClo aclo = new ATMSummaryATMNumberClo(); aclo.JobMonth = st.Month; aclo.Bank = bankdes.FirstOrDefault(a => a.Id == item.CustomerID).Name; aclo.CustomerID = item.CustomerID.ToStr(); aclo.IsNon = item.IsNon; aclo.JobType = item.jobtype; atmclos.Add(aclo); } var closd = atmclos.Count; List<IMongoQuery> listclo = new List<IMongoQuery>(); listclo.Add(Query.EQ("JobMonth", st.Month)); IMongoQuery queryclo = Query.And(listclo); Common.MongodbHelper.Remove<ATMSummaryATMNumberClo>(queryclo, "table_ATMSummaryATMNumberClo"); Common.MongodbHelper.Add_List<ATMSummaryATMNumberClo>("table_ATMSummaryATMNumberClo", atmclos); var rowsall = CountATMAll.Distinct(a => new { a.ProjectId, a.province }).OrderBy(a => a.ProjectId).ThenBy(a => a.province); foreach (var item in rowsall) { foreach (var item2 in atmclos) { ATMSummaryATMNumber asan = new ATMSummaryATMNumber(); asan.Branch = prolist.FirstOrDefault(a => a.Id == item.ProjectId).Name; asan.Province = Provinces.FirstOrDefault(a => a.Id == item.province) != null ? Provinces.FirstOrDefault(a => a.Id == item.province).GroupName : ""; asan.Bank = item2.Bank; asan.IsNon = item2.IsNon; asan.JobMonth = st.Month; asan.JobType = item2.JobType; var num = CountATMAll.Where(a => a.ProjectId == item.ProjectId && a.province == item.province && a.CustomerID == (item2.CustomerID.TogGuid()) && a.IsNon == item2.IsNon && a.jobtype == item2.JobType); asan.Number = num != null ? num.Sum(a => a.cnt) : 0; atmsum.Add(asan); } } var cntsd = atmsum.Count; List<IMongoQuery> list1 = new List<IMongoQuery>(); list1.Add(Query.EQ("JobMonth", st.Month)); IMongoQuery query = Query.And(list1); Common.MongodbHelper.Remove<ATMSummaryATMNumber>(query, "table_ATMSummaryATMNumber"); Common.MongodbHelper.Add_List<ATMSummaryATMNumber>("table_ATMSummaryATMNumber", atmsum); showLog("ATMSummaryATMNumber", string.Format("{0} - {1} Ok . Data Count : {2} ." , st.ToShortDateString(), et.ToShortDateString(), cntsd)); insertShowlog("ATMSummaryATMNumber----Count" + cntsd, st, et); } } catch (Exception ex) { showLog("ATMSummaryATMNumber", "Error:" + ex.Message); insertShowlog("ATMSummaryATMNumber----Error" + ex.ToString(), st, et); } insertShowlog("ATMSummaryATMNumber----End", st, et); } } public class tmpATMCount { public Guid ProjectId { get; set; } public Guid? province { get; set; } public Guid CustomerID { get; set; } public bool IsNon { get; set; } public int jobtype { get; set; } public int cnt { get; set; } } public class ShowLogTraceListener : TraceListener { //private Form1 frm; private IForm frm; // 不继承 自定义为变量接收也可以 public ShowLogTraceListener(IForm frm) { this.frm = frm; } //public ShowLogTraceListener(Form1 frm) //{ // this.frm = frm; //} /// <summary> /// Write /// </summary> public override void Write(string message) { message = Format(message, ""); frm.showLog("Trace", message); } /// <summary> /// Write /// </summary> public override void Write(object obj) { string message = Format(obj, ""); frm.showLog("Trace", message); } /// <summary> /// WriteLine /// </summary> public override void WriteLine(object obj) { string message = Format(obj, ""); frm.showLog("Trace", message); } /// <summary> /// WriteLine /// </summary> public override void WriteLine(string message) { message = Format(message, ""); frm.showLog("Trace", message); } /// <summary> /// WriteLine /// </summary> public override void WriteLine(object obj, string category) { string message = Format(obj, category); frm.showLog("Trace", message); } /// <summary> /// WriteLine /// </summary> public override void WriteLine(string message, string category) { message = Format(message, category); frm.showLog("Trace", message); } /// <summary> /// Format /// </summary> private string Format(object obj, string category) { StringBuilder builder = new StringBuilder(); if (!string.IsNullOrEmpty(category)) builder.AppendFormat("[{0}] ", category); if (obj is Exception) { var ex = (Exception)obj; builder.Append(ex.Message + "\r\n"); builder.Append(ex.StackTrace + "\r\n"); } else { builder.Append(obj.ToString() + "\r\n"); } return builder.ToString(); } } public interface IForm // 转成单一用途接口 { void showLog(string title, string message); } public class Summary : BaseEntity { public string Branck { get; set; } public string Item { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Date { get; set; } public int Total { get; set; } public int Issued { get; set; } public int Returned { get; set; } public int Damaged { get; set; } } public class Issuereturn : BaseEntity { public string Barcode { get; set; } public string SerialNumber { get; set; } public string Item { get; set; } public string Branch { get; set; } public string Branchcode { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? JobDate { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? IssueTime { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? ReturnTime { get; set; } public string Route { get; set; } public string Description { get; set; } public string CL { get; set; } public string CD { get; set; } public string CM { get; set; } public string ATMID { get; set; } public string Name { get; set; } // Mobile Phone issue Staff ID public string Key { get; set; } public string Password { get; set; } public string Remark { get; set; } public string IMEI { get; set; } public string TruckType { get; set; } public string CallSign { get; set; } public string LicensePlate { get; set; } public string Brand { get; set; } public string Category { get; set; } public string BarcodeKey { get; set; } public string ItemBarcode { get; set; } public string Number { get; set; } // IMEI pad -excel上的 public string Model { get; set; } // pad -excel上的 Brand public string Customer { get; set; } public string AssetCode { get; set; } public string DispatchIssued { get; set; } public string DispatchReturned { get; set; } public string ATMShortcode { get; set; } public string PdaModel { get; set; } //pad -excel上的model public string StaffName { get; set; } public string StaffID { get; set; } public string KeySparekey { get; set; } public string CardNumber { get; set; } public string RegisterProvince { get; set; } } public class RouteTotal : BaseEntity { [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? JobDate { get; set; } public string Branch { get; set; } public string RouteName { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? CrewLeaderScanIn { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? CrewLeaderScanOut { get; set; } public string CrewLeader { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? CrewDriverScanIn { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? CrewDriverScanOut { get; set; } public string CrewDriver { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? CrewMemberScanIn { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? CrewMemberScanOut { get; set; } public string CrewMember { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? FingerScanin { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? FingerScanOut { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Rosteredstart { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Inbaytime { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Outbaytime { get; set; } public string Drivetimetotal { get; set; } public string Loadingtimetotal { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Trip1_Depart { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Trip1_Return { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Trip2_Depart { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Trip2_Return { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Trip3_Depart { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Trip3_Return { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Trip4_Depart { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Trip4_Return { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Trip5_Depart { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Trip5_Return { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Returnbaytime { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? Runfinish { get; set; } public string Runduration { get; set; } public string GatetoGate { get; set; } public string Unloadtimetotal { get; set; } public string Lunch_mins { get; set; } public string Jobs_completed { get; set; } public string Jobsnotcompleted { get; set; } public string Totaljob { get; set; } public string Hrsworked { get; set; } public string HrsworkedincludingLunch { get; set; } public string KPIHrs_hr { get; set; } public string KPIJob_hr { get; set; } public string TruckNumber { get; set; } public string StartKms { get; set; } public string FinishKms { get; set; } public string Routedkms { get; set; } public string Comments { get; set; } public string Crewno { get; set; } public string Remark { set; get; } } public class SummaryofOrder : BaseEntity { [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? JobDate { get; set; } public string Branch { get; set; } public string Bank { get; set; } public int OrderInAdvance { get; set; } public int SameDayOrder { get; set; } public int CassetteDamage { get; set; } public int DropBag { get; set; } public int TotalOrder { get { return OrderInAdvance + SameDayOrder + CassetteDamage + DropBag; } } } public class ResultofOrder : BaseEntity { [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? JobDate { get; set; } public string Branch { get; set; } public string Bank { get; set; } public int Done { get; set; } public int DropBag { get; set; } public int BadCassette { get; set; } public int Failed { get; set; } public int Totalorder { get; set; } } public class OrderStatusbyCustomer : BaseEntity { [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? JobDate { get; set; } public string Branch { get; set; } public string ATMID { get; set; } public string Location { get; set; } public string Customer { get; set; } public string RouteName { get; set; } public string OrderStatus { get; set; } } public class OrderStatusbyRoute : BaseEntity { [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? JobDate { get; set; } public string Branch { get; set; } public string RouteName { get; set; } public int JobAssigned { get; set; } public int JobDone { get; set; } public int Pending { get { return JobAssigned - JobDone; } } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? DepatureTime { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? ReturnTime { get; set; } } //只供查看异常状态 public class ShowReportlog : BaseEntity { public string JobDate { get; set; } public string Content { get; set; } } public class FSPResultofOrder : BaseEntity { [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? JobDate { get; set; } public string Branch { get; set; } public string Bank { get; set; } public int Done { get; set; } public int Failed { get; set; } //public int Totalorder { get; set; } public int Totalorder { get { return Done + Failed; } } } public class FSPSummaryofOrder : BaseEntity { [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? JobDate { get; set; } public string Branch { get; set; } public string Bank { get; set; } public int OrderInAdvance { get; set; } public int SameDayOrder { get; set; } //public int CassetteDamage { get; set; } //public int DropBag { get; set; } //public int TotalOrder { get { return OrderInAdvance + SameDayOrder + CassetteDamage + DropBag; } } public int TotalOrder { get { return OrderInAdvance + SameDayOrder; } } } public class FSPOrderStatusbyRoute : BaseEntity { [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? JobDate { get; set; } public string Branch { get; set; } public string RouteName { get; set; } public int JobAssigned { get; set; } public int JobDone { get; set; } public int Pending { get { return JobAssigned - JobDone; } } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? DepatureTime { get; set; } [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? ReturnTime { get; set; } } public class FSPOrderStatusbyCustomer : BaseEntity { [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? JobDate { get; set; } public string Branch { get; set; } public string ATMID { get; set; } public string Location { get; set; } public string Customer { get; set; } public string RouteName { get; set; } public string OrderStatus { get; set; } } public class ATMSummaryATMOrder : BaseEntity { [BsonDateTimeOptions(Kind = DateTimeKind.Local)] public DateTime? JobDate { get; set; } public string Branch { get; set; } public string Bank { get; set; } public string JobType { get; set; } //RM - FLM/SLM/PM public int Number { get; set; } } public class ATMSummaryATMNumber : BaseEntity { public int JobMonth { get; set; } //月份 public string Branch { get; set; } //城市 public string Bank { get; set; } //客户 public string Province { get; set; } //片区 public bool IsNon { get; set; } //是否包车 DV public int JobType { get; set; } //ATM/RATM public int Number { get; set; } } public class ATMSummaryATMNumberClo : BaseEntity { public int JobMonth { get; set; } //月份 public string Bank { get; set; } //客户 public string CustomerID { get; set; } public bool IsNon { get; set; } //是否包车 DV public int JobType { get; set; } //ATM/RATM } }