public void UpdateFacilityMaintainPlan(FacilityMaintainPlan facilityMaintainPlan, bool isCalc) { FacilityMaintainPlan oldFacilityMaintainPlan = this.LoadFacilityMaintainPlan(facilityMaintainPlan.Id); if (isCalc) { string type = oldFacilityMaintainPlan.MaintainPlan.Type; int interval = oldFacilityMaintainPlan.MaintainPlan.TypePeriod.HasValue ? oldFacilityMaintainPlan.MaintainPlan.TypePeriod.Value : 0; int leadTime = oldFacilityMaintainPlan.MaintainPlan.LeadTime.HasValue ? oldFacilityMaintainPlan.MaintainPlan.LeadTime.Value : 0; if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_FREQUENCY) { oldFacilityMaintainPlan.StartQty = facilityMaintainPlan.StartQty; oldFacilityMaintainPlan.NextMaintainQty = oldFacilityMaintainPlan.StartQty + interval; oldFacilityMaintainPlan.NextWarnQty = oldFacilityMaintainPlan.NextMaintainQty - leadTime; } else { #region 计算下次保养时间和下次提醒时间 oldFacilityMaintainPlan.StartDate = facilityMaintainPlan.StartDate; DateTime startDate = oldFacilityMaintainPlan.StartDate.Value; if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_MINUTE) { oldFacilityMaintainPlan.NextMaintainDate = startDate.AddMinutes(interval); } else if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_HOUR) { oldFacilityMaintainPlan.NextMaintainDate = startDate.AddHours(interval); } else if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_DAY) { oldFacilityMaintainPlan.NextMaintainDate = startDate.AddDays(interval); } else if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_WEEK) { oldFacilityMaintainPlan.NextMaintainDate = startDate.AddDays(7 * interval); } else if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_MONTH) { oldFacilityMaintainPlan.NextMaintainDate = startDate.AddMonths(interval); } else if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_YEAR) { oldFacilityMaintainPlan.NextMaintainDate = startDate.AddYears(interval); } else { oldFacilityMaintainPlan.NextMaintainDate = startDate; } oldFacilityMaintainPlan.NextWarnDate = oldFacilityMaintainPlan.NextMaintainDate.Value.AddDays(-leadTime); #endregion } } base.UpdateFacilityMaintainPlan(oldFacilityMaintainPlan); }
public override void CreateFacilityMaintainPlan(FacilityMaintainPlan facilityMaintainPlan) { string type = facilityMaintainPlan.MaintainPlan.Type; int interval = facilityMaintainPlan.MaintainPlan.TypePeriod.HasValue ? facilityMaintainPlan.MaintainPlan.TypePeriod.Value : 0; int leadTime = facilityMaintainPlan.MaintainPlan.LeadTime.HasValue ? facilityMaintainPlan.MaintainPlan.LeadTime.Value : 0; if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_FREQUENCY) { facilityMaintainPlan.NextMaintainQty = facilityMaintainPlan.StartQty + interval; facilityMaintainPlan.NextWarnQty = facilityMaintainPlan.NextMaintainQty - leadTime; } else { #region 按周期的计算下次保养时间和下次提醒时间 DateTime startDate = facilityMaintainPlan.StartDate.Value; if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_MINUTE) { facilityMaintainPlan.NextMaintainDate = startDate.AddMinutes(interval); } else if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_HOUR) { facilityMaintainPlan.NextMaintainDate = startDate.AddHours(interval); } else if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_DAY) { facilityMaintainPlan.NextMaintainDate = startDate.AddDays(interval); } else if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_WEEK) { facilityMaintainPlan.NextMaintainDate = startDate.AddDays(7 * interval); } else if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_MONTH) { facilityMaintainPlan.NextMaintainDate = startDate.AddMonths(interval); } else if (type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_YEAR) { facilityMaintainPlan.NextMaintainDate = startDate.AddYears(interval); } else { facilityMaintainPlan.NextMaintainDate = startDate; } facilityMaintainPlan.NextWarnDate = facilityMaintainPlan.NextMaintainDate.Value.AddDays(-leadTime); #endregion } base.CreateFacilityMaintainPlan(facilityMaintainPlan); }
public override void UpdateFacilityMaintainPlan(FacilityMaintainPlan facilityMaintainPlan) { UpdateFacilityMaintainPlan(facilityMaintainPlan, true); }
public IList<FacilityMaintainPlan> ReadFacilityMaintainPlanFromxls(Stream inputStream, User user) { if (inputStream.Length == 0) { throw new BusinessErrorException("Import.Stream.Empty"); } IWorkbook workbook = new HSSFWorkbook(inputStream); ISheet sheet = workbook.GetSheetAt(0); IEnumerator rows = sheet.GetRowEnumerator(); ImportHelper.JumpRows(rows, 11); #region 列定义 int colFCID = 1;//设施代码 int colAssetNo = 3; //固定资产代码 int colMaintainPlanCode = 4;//预防策略代码 int colStartDate = 5;//日期 #endregion #region 把数据都查出来 IList<FacilityMaster> facilityMasterList = criteriaMgrE.FindAll<FacilityMaster>(); IList<MaintainPlan> maintainPlanList = criteriaMgrE.FindAll<MaintainPlan>(); IList<FacilityMaintainPlan> facilityMaintainPlanList = new List<FacilityMaintainPlan>(); #endregion DateTime dateTimeNow = DateTime.Now; while (rows.MoveNext()) { IRow row = (HSSFRow)rows.Current; if (!this.CheckValidDataRow(row, 1, 4)) { break;//边界 } #region 读取数据 #region 读取设施代码 string fcId = GetCellStringValue(row.GetCell(colFCID)) == null ? string.Empty : GetCellStringValue(row.GetCell(colFCID)); #endregion #region 读取资产编号 string assetNo = GetCellStringValue(row.GetCell(colAssetNo)) == null ? string.Empty : GetCellStringValue(row.GetCell(colAssetNo)); #endregion #region 判断 if (string.IsNullOrEmpty(fcId) && string.IsNullOrEmpty(assetNo)) { throw new BusinessErrorException("Facility.Import.FCIDOrAssetNoEmpty", (row.RowNum + 1).ToString()); } FacilityMaster facilityMaster = null; if (!string.IsNullOrEmpty(assetNo)) { facilityMaster = facilityMasterList.Where(p => p.AssetNo == assetNo).FirstOrDefault(); } if (facilityMaster == null) { facilityMaster = facilityMasterList.Where(p => p.FCID == fcId).FirstOrDefault(); } if (facilityMaster == null) { throw new BusinessErrorException("Facility.Import.FacilityMasterNotExists", (row.RowNum + 1).ToString(), fcId.ToString(), assetNo.ToString()); } #endregion #region 读取预防策略代码 string maintainPlanCode = row.GetCell(colMaintainPlanCode) != null ? row.GetCell(colMaintainPlanCode).StringCellValue : string.Empty; if (string.IsNullOrEmpty(maintainPlanCode)) { throw new BusinessErrorException("Import.Read.Error.Empty", (row.RowNum + 1).ToString(), colMaintainPlanCode.ToString()); } #endregion #region 判断 MaintainPlan maintainPlan = maintainPlanList.Where(p => p.Code == maintainPlanCode && p.Type == FacilityConstants.CODE_MASTER_FACILITY_MAINTAIN_TYPE_ONCE).FirstOrDefault(); if (maintainPlan == null) { throw new BusinessErrorException("Facility.Import.MaintainPlanNotExists", (row.RowNum + 1).ToString(), fcId.ToString(), assetNo.ToString()); } #endregion #region 读取开始日期 DateTime startDate = row.GetCell(colStartDate) != null ? row.GetCell(colStartDate).DateCellValue : DateTime.Now.Date; #endregion #endregion #region 填充数据 FacilityMaintainPlan facilityMaintainPlan = new FacilityMaintainPlan(); facilityMaintainPlan.FacilityMaster = facilityMaster; facilityMaintainPlan.MaintainPlan = maintainPlan; facilityMaintainPlan.StartDate = startDate; facilityMaintainPlanList.Add(facilityMaintainPlan); #endregion } return facilityMaintainPlanList; }