/// <summary> /// 月度数据导入 /// </summary> /// <param name="pw"></param> private void InsertPredictionWages(PredictionWages pw) { using (WorkDataClassesDataContext db = new WorkDataClassesDataContext()) { int preCnt = db.PredictionWages.Where(n => n.WorkMon == pw.WorkMon && n.WorkYear == pw.WorkYear && n.WorkerId == pw.WorkerId && n.WorkSiteId == pw.WorkSiteId && n.WholePart == pw.WholePart).Count(); if (preCnt == 0) { db.PredictionWages.InsertOnSubmit(pw); db.SubmitChanges(); } } }
public HttpResponseMessage MonGenerate(string year, string mon) { using (WorkDataClassesDataContext db = new WorkDataClassesDataContext()) { var data = from s in db.Attendance where s.WorkDate.Value.Year == Convert.ToInt32(year) && s.WorkDate.Value.Month == Convert.ToInt32(mon) select new { s.WorkId, s.Worker.Sex, WorkDate = Convert.ToString(s.WorkDate.Value), s.Worker.WorkType, s.WorkTime, s.WorkMore, s.WorkSite.WorkManage, s.WorkSiteId }; string[] workers = data.Select(n => n.WorkId).Distinct().ToArray(); try { //分工地月度 for (int i = 0; i < workers.Length; i++) { var limitData = data.Where(n => n.WorkId == workers[i]); int[] workSites = limitData.Select(n => n.WorkSiteId).Distinct().ToArray(); for (int j = 0; j < workSites.Length; j++) { PredictionWages pw = new PredictionWages { WorkerId = workers[i], WorkMon = mon, WorkYear = year, WorkSiteId = workSites[j], WholePart = 0, WorkMoreMon = Math.Round((double)limitData.Where(n => n.WorkSiteId == workSites[j]).Sum(n => n.WorkMore), 4), WorkTimeMon = Math.Round((double)limitData.Where(n => n.WorkSiteId == workSites[j]).Sum(n => n.WorkTime), 4) }; InsertPredictionWages(pw); } } //整体月度 for (int i = 0; i < workers.Length; i++) { var limitData = data.Where(n => n.WorkId == workers[i]); int[] workSites = limitData.Select(n => n.WorkSiteId).Distinct().ToArray(); PredictionWages pw = new PredictionWages { WorkerId = workers[i], WorkMon = mon, WorkYear = year, WholePart = 1, WorkSiteId = 4, //整体月度汇总 WorkMoreMon = Math.Round((double)limitData.Where(n => n.WorkId == workers[i]).Sum(n => n.WorkMore), 4), WorkTimeMon = Math.Round((double)limitData.Where(n => n.WorkId == workers[i]).Sum(n => n.WorkTime), 4) }; InsertPredictionWages(pw); } string json = "ok"; json = JsonConvert.SerializeObject(json); return(HttpResponseMessageToJson.ToJson(json)); } catch (Exception e) { string json = "error"; json = JsonConvert.SerializeObject(json); return(HttpResponseMessageToJson.ToJson(json)); } } }