/// <summary> /// 根据时间段和类型获取事故损失工时 /// </summary> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="accidentType"></param> /// <param name="projectId"></param> /// <returns></returns> public static decimal GetSumLoseWorkTimeByAccidentTimeAndAccidentType(DateTime startTime, DateTime endTime, string accidentType, string projectId) { decimal loseTime = 0; var q = from x in Funs.DB.Accident_AccidentReportOther where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.AccidentTypeId == accidentType && x.ProjectId == projectId && x.States == BLL.Const.State_2 select x.WorkingHoursLoss; foreach (var item in q) { if (item != null) { loseTime += Funs.GetNewDecimalOrZero(item.ToString()); } } return(loseTime); //return (from x in Funs.DB.Accident_AccidentReportOther where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.AccidentTypeId == accidentType && x.ProjectId == projectId select x.WorkingHoursLoss ?? 0).Sum(); }
/// <summary> /// 根据时间段和类型获取事故损失工时 /// </summary> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="accidentType"></param> /// <param name="projectId"></param> /// <returns></returns> public static decimal GetSumLoseWorkTimeByAccidentTimeAndAccidentType(DateTime startTime, DateTime endTime, string accidentType, string projectId) { decimal loseTime = 0; var q = from x in Funs.DB.Accident_AccidentReport where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.AccidentTypeId == accidentType && x.ProjectId == projectId && x.States == BLL.Const.State_2 select x.WorkingHoursLoss; foreach (var item in q) { if (item != null) { loseTime += Funs.GetNewDecimalOrZero(item.ToString()); } } //if (accidentType == "1" || accidentType == "2" || accidentType == "3") //轻重死事故按审批完成时间 //{ // var a = from x in Funs.DB.Accident_AccidentReport // join y in Funs.DB.Sys_FlowOperate // on x.AccidentReportId equals y.DataId // where x.AccidentTypeId == accidentType && x.ProjectId == projectId && x.States == BLL.Const.State_2 // && y.State == BLL.Const.State_2 && y.OperaterTime >= startTime && y.OperaterTime < endTime // select x.WorkingHoursLoss; // foreach (var item in a) // { // if (item != null) // { // loseTime += Funs.GetNewDecimal(item.ToString()); // } // } //} //else //{ // var q = from x in Funs.DB.Accident_AccidentReport where x.AccidentDate >= startTime && x.AccidentDate < endTime && x.AccidentTypeId == accidentType && x.ProjectId == projectId && x.States == BLL.Const.State_2 select x.WorkingHoursLoss; // foreach (var item in q) // { // if (item != null) // { // loseTime += Funs.GetNewDecimal(item.ToString()); // } // } //} return(loseTime); }
/// <summary> /// 根据单位和时间及费用类型获取当期费用 /// </summary> /// <param name="unitId"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="costType"></param> /// <returns></returns> public static decimal GetCostDetailsByUnitIdAndCostType(string unitId, DateTime startTime, DateTime endTime, string costType) { decimal cost = 0; var q = from x in Funs.DB.CostGoods_ExpenseDetail join y in Funs.DB.CostGoods_Expense on x.ExpenseId equals y.ExpenseId join z in Funs.DB.Sys_FlowOperate on y.ExpenseId equals z.DataId where y.UnitId == unitId && y.States == BLL.Const.State_2 && z.State == BLL.Const.State_2 && z.OperaterTime >= startTime && z.OperaterTime < endTime && x.CostType.Contains(costType) select x.CostMoney; foreach (var item in q) { if (item != null) { cost += Funs.GetNewDecimalOrZero(item.ToString()); } } return(cost); //return (from x in Funs.DB.CostGoods_ExpenseDetail // join y in Funs.DB.CostGoods_Expense on x.ExpenseId equals y.ExpenseId // where y.UnitId == unitId && y.States == BLL.Const.State_2 && y.ApproveDate >= startTime && y.ApproveDate < endTime && x.CostType.Contains(costType) // select x.CostMoney ?? 0).Sum(); }
/// <summary> /// 根据费用类型获取所有费用 /// </summary> /// <param name="unitId"></param> /// <param name="startTime"></param> /// <param name="endTime"></param> /// <param name="costType"></param> /// <returns></returns> public static decimal GetTotalCostDetailsByCostType(string projectId, string costType) { decimal cost = 0; var q = from x in Funs.DB.CostGoods_CostSmallDetailItem join y in Funs.DB.CostGoods_CostSmallDetail on x.CostSmallDetailId equals y.CostSmallDetailId join z in Funs.DB.Sys_FlowOperate on y.CostSmallDetailId equals z.DataId where y.ProjectId == projectId && y.States == BLL.Const.State_2 && z.State == BLL.Const.State_2 && x.CostType.Contains(costType) select x.CostMoney; foreach (var item in q) { if (item != null) { cost += Funs.GetNewDecimalOrZero(item.ToString()); } } return(cost); //return (from x in Funs.DB.CostGoods_CostSmallDetailItem // join y in Funs.DB.CostGoods_CostSmallDetail on x.CostSmallDetailId equals y.CostSmallDetailId // where y.UnitId == unitId && y.States == BLL.Const.State_2 && y.ApproveDate >= startTime && y.ApproveDate < endTime && x.CostType.Contains(costType) // select x.CostMoney ?? 0).Sum(); }
/// <summary> /// 插入培训记录 2 /// </summary> /// <param name="projectId"></param> /// <param name="arr"></param> public static bool AddTrainRecord(string projectId, JArray arr, Model.Sys_User user) { Model.SUBHSSEDB db = Funs.DB; bool isOk = true; try { foreach (var item in arr) { string fromRecordId = item["ID"].ToString(); string trainTypeId = null; ////培训类型 var getTrainType = db.Base_TrainType.FirstOrDefault(x => x.TrainTypeName == item["TrainType"].ToString()); if (getTrainType != null) { trainTypeId = getTrainType.TrainTypeId; } string unitId = null; if (!string.IsNullOrEmpty(item["TrainDepart"].ToString())) { var lists = Funs.GetStrListByStr(item["TrainDepart"].ToString(), ','); if (lists.Count() > 0) { foreach (var itemList in lists) { var getUnit = db.Base_Unit.FirstOrDefault(x => x.UnitName == itemList); if (getUnit != null) { if (string.IsNullOrEmpty(unitId)) { unitId = getUnit.UnitId; } else { unitId += ("," + getUnit.UnitId); } } } } } if (!string.IsNullOrEmpty(unitId) && !string.IsNullOrEmpty(fromRecordId)) { Model.EduTrain_TrainRecord newTrainRecord = new Model.EduTrain_TrainRecord { FromRecordId = fromRecordId, ProjectId = projectId, TrainTitle = item["RecordName"].ToString(), TrainContent = item["TrainContent"].ToString(), TrainStartDate = Funs.GetNewDateTime(item["TrainStartDate"].ToString()), TrainEndDate = Funs.GetNewDateTime(item["TrainEndDate"].ToString()), TeachHour = Funs.GetNewDecimalOrZero(item["TrainPeriod"].ToString()), TeachMan = item["TrainPrincipal"].ToString(), Remark = item["TrainDescript"].ToString(), TrainTypeId = trainTypeId, UnitIds = unitId, States = Const.State_0, CompileMan = item["CreateUser"].ToString(), TrainPersonNum = Funs.GetNewInt(item["PersonCount"].ToString()), }; newTrainRecord.TrainingCode = Funs.GetNewFileName(newTrainRecord.TrainStartDate); var getTrainRecord = Funs.DB.EduTrain_TrainRecord.FirstOrDefault(x => x.FromRecordId == fromRecordId); if (getTrainRecord == null) { newTrainRecord.TrainingId = SQLHelper.GetNewID(typeof(Model.EduTrain_TrainRecord)); EduTrain_TrainRecordService.AddTraining(newTrainRecord); BLL.LogService.AddSys_Log(user, newTrainRecord.TrainingCode, newTrainRecord.TrainingId, BLL.Const.ProjectTrainRecordMenuId, BLL.Const.BtnAdd); } else { getTrainRecord.TrainingCode = newTrainRecord.TrainingCode; getTrainRecord.TrainTitle = newTrainRecord.TrainTitle; getTrainRecord.TrainContent = newTrainRecord.TrainContent; getTrainRecord.UnitIds = newTrainRecord.UnitIds; getTrainRecord.TrainStartDate = newTrainRecord.TrainStartDate; if (newTrainRecord.TrainEndDate.HasValue) { getTrainRecord.TrainEndDate = newTrainRecord.TrainEndDate; } else { getTrainRecord.TrainEndDate = newTrainRecord.TrainStartDate; } getTrainRecord.TeachHour = newTrainRecord.TeachHour; getTrainRecord.TeachMan = newTrainRecord.TeachMan; getTrainRecord.TeachAddress = newTrainRecord.TeachAddress; getTrainRecord.Remark = newTrainRecord.Remark; EduTrain_TrainRecordService.UpdateTraining(getTrainRecord); BLL.LogService.AddSys_Log(user, getTrainRecord.TrainingCode, getTrainRecord.TrainingId, BLL.Const.ProjectTrainRecordMenuId, BLL.Const.BtnModify); } } else { isOk = false; } } } catch (Exception ex) { isOk = false; ErrLogInfo.WriteLog(string.Empty, ex); } return(isOk); }