// // GET: /EnvironmentManagement/AvailabilityDataEdit/ public ActionResult Index(string environmentDate = "", Constants.EnvMode envMode = Constants.EnvMode.ControlLine, string machine = "") { ViewBag.ListLocation = _environmentBaseDomain.GetLocationItemByType("2").Select(x => new SelectListItem { Text = x.F80_Name, Value = string.Format("{0}~{1}", x.F80_Id.ToString(), x.F80_Name.Trim()), Selected = string.Format("{0}~{1}", x.F80_Id.ToString(), x.F80_Name.Trim()).Equals(machine.Trim()) }); DateTime dt1; if (DateTime.TryParseExact(environmentDate, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt1)) { var model = new AvailabilityDataEditViewModel() { EnvironmentDate = dt1.ToString("dd/MM/yyyy"), EnvMode = envMode, //Machine = machine }; return(View(model)); } else { var model = new AvailabilityDataEditViewModel() { EnvironmentDate = DateTime.Now.ToString("dd/MM/yyyy"), EnvMode = envMode }; return(View(model)); } }
// // GET: /EnvironmentManagement/EnvironmentDataOneDay/ public ActionResult Index(string environmentDate = "", Constants.EnvMode envMode = Constants.EnvMode.ControlLine, string location = "") { ViewBag.ListLocation = _environmentBaseDomain.GetLocationItemByType("1").Select(x => new SelectListItem { Text = x.F80_Name, Selected = x.F80_Name == location, Value = x.F80_Id.ToString() }); DateTime dt1; if (DateTime.TryParseExact(environmentDate, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt1)) { var model = new EnvironmentDataOneDayViewModel() { EnvironmentDate = dt1.ToString("dd/MM/yyyy"), EnvMode = envMode }; return(View(model)); } else { var model = new EnvironmentDataOneDayViewModel() { EnvironmentDate = DateTime.Now.ToString("dd/MM/yyyy"), EnvMode = envMode }; return(View(model)); } }
// // GET: /EnvironmentManagement/CreepingAndRollSpeedDataEdit/ public ActionResult Index(string environmentDate = "", Constants.EnvMode envMode = Constants.EnvMode.ControlLine, string machine = "") { DateTime dt1; var ListName = new List <SelectListItem>(); ListName.Add(new SelectListItem { Text = "12 Inch Mixing Roll Machine", Selected = machine.Equals("Roll_MC_12"), Value = "Roll_MC_12" }); ListName.Add(new SelectListItem { Text = "18 Inch Mixing Roll Machine", Selected = machine.Equals("Roll_MC_18"), Value = "Roll_MC_18" }); ViewBag.ListName = ListName; if (DateTime.TryParseExact(environmentDate, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt1)) { var model = new CreepingAndRollSpeedDataEditViewModel() { EnvironmentDate = dt1.ToString("dd/MM/yyyy"), EnvMode = envMode, Machine = machine }; return(View(model)); } else { var model = new CreepingAndRollSpeedDataEditViewModel() { EnvironmentDate = DateTime.Now.ToString("dd/MM/yyyy"), EnvMode = envMode }; return(View(model)); } }
public ActionResult Search(string startDate, string endDate, string type, int id, string name, Constants.EnvMode envMode) { var dt1 = DateTime.ParseExact(startDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); var dt2 = DateTime.ParseExact(endDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); //if (dt2 > DateTime.Now) //{ // return Json(new // { // Success = false, // ErrorCode = -2, // Message = "The End Date is invalid." // }, JsonRequestBehavior.AllowGet); //} //if ((dt2 - dt1).Days >= 90) //{ // return Json(new // { // Success = false, // ErrorCode = -2, // Message = "The different of dates is more than 90 days!" // }, JsonRequestBehavior.AllowGet); //} //if (dt2 < dt1) //{ // return Json(new // { // Success = false, // ErrorCode = -2, // Message = "The Start date is larger than the End date!" // }, JsonRequestBehavior.AllowGet); //} if (ModelState.IsValid) { var data = new List <Graphtbl>(); var item = _environmentBaseDomain.GetLocationItemByName(type, id, name); var b_DispHumidity = false; var dtm1 = dt1.AddHours(8); var dtm2 = dt2.AddDays(1).AddHours(8); if (item.F80_Humidity == "0") { b_DispHumidity = false; } else { b_DispHumidity = true; } var envMespData = _environmentBaseDomain.GetMespVal(Constants.EnvType.TYPE_RM, item.F80_Id, envMode); if (!envMespData.Item1) { return(Json(new { Success = false, ErrorCode = -2, Message = envMespData.Item2 }, JsonRequestBehavior.AllowGet)); } var b_TEMPUSL_NULL = false; var b_HUMIDUSL_NULL = false; if (envMespData.Item3.F80_T_Usl == null) { envMespData.Item3.F80_T_Usl = envMespData.Item3.F80_T_Ucl; b_TEMPUSL_NULL = true; } if (envMespData.Item3.F80_H_Usl == null) { envMespData.Item3.F80_H_Usl = envMespData.Item3.F80_H_Ucl; b_HUMIDUSL_NULL = true; } if (envMespData.Item1) { double t_ucl; double t_lcl; double t_usl; double t_lsl; double t_dis_up; double h_dis_up; double t_dis_lo; double h_dis_lo; double h_ucl; double h_lcl; double h_usl; double h_lsl; double t_cal_up; double t_cal_lo; double h_cal_up; double h_cal_lo; double rl_upper; double rl_lower; double rl_max; double rl_min; double rl_range; _environmentBaseDomain.SetValueConfigFromTe80(envMespData.Item3, out t_ucl, out t_lcl, out t_usl, out t_lsl, out t_dis_up, out h_dis_up, out t_dis_lo, out h_dis_lo, out h_ucl, out h_lcl, out h_usl, out h_lsl, out t_cal_up, out t_cal_lo, out h_cal_up, out h_cal_lo); var check = true; var dateTime = dt1; do { var calcData = _environmentBaseDomain.CalcData(Constants.EnvType.TYPE_RM, item.F80_Id, null, dateTime, Constants.TypeOfTable.CALC_MGMT_LIMIT, 1, envMode, t_ucl, t_lcl, t_usl, t_lsl, t_dis_up, h_dis_up, t_dis_lo, h_dis_lo, h_ucl, h_lcl, h_usl, h_lsl, t_cal_up, t_cal_lo, h_cal_up, h_cal_lo, b_DispHumidity, data); if (!calcData) { check = false; break; } dateTime = dateTime.AddDays(1); } while (dateTime <= dt2); if (check) { var tcalcMean = _environmentBaseDomain.CalcMean(Constants.TypeOfTable.CALC_MGMT_LIMIT, Constants.TypeOfTable.CALC_MGMT_LIMIT_TEMP, item.F80_Id, dtm1, dtm2, t_cal_up, t_cal_lo, h_cal_up, h_cal_lo, data); if (tcalcMean.Item1) { item.F80_T_Mean = Math.Round(tcalcMean.Item2, 4); } var tsigma = _environmentBaseDomain.CalcSigma(Constants.TypeOfTable.CALC_MGMT_LIMIT, Constants.TypeOfTable.CALC_MGMT_LIMIT_TEMP, item.F80_Id, dtm1, dtm2, t_cal_up, t_cal_lo, h_cal_up, h_cal_lo, data); if (tsigma.Item1) { item.F80_T_Sigma = Math.Round(tsigma.Item2, 4); } rl_max = _environmentBaseDomain.GetMax(Constants.EnvType.TYPE_RM, Constants.TypeOfTable.CALC_MGMT_LIMIT, Constants.TypeOfTable.CALC_MGMT_LIMIT_TEMP, item.F80_Id, dtm1, dtm2, t_dis_up, h_dis_up, data); rl_min = _environmentBaseDomain.GetMin(Constants.EnvType.TYPE_RM, Constants.TypeOfTable.CALC_MGMT_LIMIT, Constants.TypeOfTable.CALC_MGMT_LIMIT_TEMP, item.F80_Id, dtm1, dtm2, t_dis_lo, h_dis_lo, data); rl_range = rl_max - rl_min; item.F80_T_Range = Math.Round(rl_range, 4); double rl_ucl; double rl_lcl; double rl_cp = 0; double rl_cpk = 0; _environmentBaseDomain.CallLimit(tcalcMean.Item2, tsigma.Item2, out rl_ucl, out rl_lcl); item.F80_T_Ucl = Math.Round(rl_ucl, 4); item.F80_T_Lcl = Math.Round(rl_lcl, 4); _environmentBaseDomain.CalcCp(Constants.TypeOfTable.CALC_TETMP_TEMP90, tcalcMean.Item2, tsigma.Item2, rl_range, t_usl, t_lsl, ref rl_cp, ref rl_cpk, b_TEMPUSL_NULL, b_HUMIDUSL_NULL, 0.0, 0.0); item.F80_T_Cp = Math.Round(rl_cp, 4); item.F80_T_Cpk = Math.Round(rl_cpk, 4); if (b_DispHumidity) { var hcalcMean = _environmentBaseDomain.CalcMean(Constants.TypeOfTable.CALC_MGMT_LIMIT, Constants.TypeOfTable.CALC_MGMT_LIMIT_HUMID, item.F80_Id, dtm1, dtm2, t_cal_up, t_cal_lo, h_cal_up, h_cal_lo, data); if (hcalcMean.Item1) { item.F80_H_Mean = Math.Round(hcalcMean.Item2, 4); } var hsigma = _environmentBaseDomain.CalcSigma(Constants.TypeOfTable.CALC_MGMT_LIMIT, Constants.TypeOfTable.CALC_MGMT_LIMIT_HUMID, item.F80_Id, dtm1, dtm2, t_cal_up, t_cal_lo, h_cal_up, h_cal_lo, data); if (hsigma.Item1) { item.F80_H_Sigma = Math.Round(hsigma.Item2, 4); } rl_max = _environmentBaseDomain.GetMax(Constants.EnvType.TYPE_RM, Constants.TypeOfTable.CALC_MGMT_LIMIT, Constants.TypeOfTable.CALC_MGMT_LIMIT_HUMID, item.F80_Id, dtm1, dtm2, t_dis_up, h_dis_up, data); rl_min = _environmentBaseDomain.GetMin(Constants.EnvType.TYPE_RM, Constants.TypeOfTable.CALC_MGMT_LIMIT, Constants.TypeOfTable.CALC_MGMT_LIMIT_HUMID, item.F80_Id, dtm1, dtm2, t_dis_lo, h_dis_lo, data); rl_range = rl_max - rl_min; item.F80_H_Range = Math.Round(rl_range, 4); _environmentBaseDomain.CallLimit(hcalcMean.Item2, hsigma.Item2, out rl_ucl, out rl_lcl); item.F80_H_Ucl = Math.Round(rl_ucl, 4); item.F80_H_Lcl = Math.Round(rl_lcl, 4); _environmentBaseDomain.CalcCp(Constants.TypeOfTable.CALC_TETMP_TEMP90, hcalcMean.Item2, hsigma.Item2, rl_range, t_usl, t_lsl, ref rl_cp, ref rl_cpk, b_TEMPUSL_NULL, b_HUMIDUSL_NULL, 0.0, 0.0); item.F80_H_Cp = Math.Round(rl_cp, 4); item.F80_H_Cpk = Math.Round(rl_cpk, 4); _environmentBaseDomain.UpdateTe80(item); } } else { return(Json(new { Success = false, ErrorCode = -1,//Nothing and continue for in grid }, JsonRequestBehavior.AllowGet)); } } } return(Json(new { Success = true, Message = "Update Success" }, JsonRequestBehavior.AllowGet)); }
public ResponseResult <LotdataSamplingItem> Search(string productCode, DateTime date, Constants.EnvMode mode, string lotNo) { var lstTable = new List <Graphtbl>(); var lstTe85 = _unitOfWork.EnvProdRepository.GetMany(i => i.F85_Code.Trim().Equals(productCode.Trim())).Select(i => i.F85_Id); var te80 = _unitOfWork.EnvMespRepository.GetMany(i => lstTe85.Contains(i.F80_Id) && i.F80_Type == "1").FirstOrDefault(); if (te80 == null) { return(new ResponseResult <LotdataSamplingItem>(null, false)); } var dt1 = date.AddHours(8); var dt2 = date.AddDays(1).AddHours(8); var res = GetMespVal(Constants.EnvType.TYPE_RM, te80.F80_Id, mode); if (!res.Item1) { return(new ResponseResult <LotdataSamplingItem>(null, false, res.Item2)); } te80 = res.Item3; if (!CalcData(Constants.EnvType.TYPE_RM, te80.F80_Id, null, date, Constants.TypeOfTable.CALC_TE81_TEMP, 1, mode, te80.F80_T_Ucl ?? 0, te80.F80_T_Lcl ?? 0, te80.F80_T_Usl ?? 0, te80.F80_T_Lsl ?? 0, te80.F80_T_Dis_Up ?? 0, te80.F80_H_Dis_Up ?? 0, te80.F80_T_Dis_Lo ?? 0, te80.F80_H_Dis_Lo ?? 0, te80.F80_H_Ucl ?? 0, te80.F80_H_Lcl ?? 0, te80.F80_H_Usl ?? 0, te80.F80_H_Lsl ?? 0, te80.F80_T_Cal_Up ?? 0, te80.F80_T_Cal_Lo ?? 0, te80.F80_H_Cal_Up ?? 0, te80.F80_H_Cal_Lo ?? 0, false, lstTable)) { return(new ResponseResult <LotdataSamplingItem>(null, false, res.Item2)); } var result = CalcMean(Constants.TypeOfTable.CALC_BUFFER, Constants.TypeOfTable.CALC_TE81_TEMP, (int)Constants.TypeOfTable.CALC_TE81_TEMP, dt1, dt2, te80.F80_T_Cal_Up ?? 0, te80.F80_T_Cal_Lo ?? 0, te80.F80_H_Cal_Up ?? 0, te80.F80_H_Cal_Lo ?? 0, lstTable); if (result.Item1) { UpdateBuffer(Constants.EnvActionBuffer.UPDATE_DB, Constants.TypeOfTable.CALC_TE81_TEMP, dt1, result.Item2, Constants.EnvFieldNo.FLD_MEAN, lstTable); } else { return(new ResponseResult <LotdataSamplingItem>(null, false)); } var sigma = CalcSigma(Constants.TypeOfTable.CALC_BUFFER, Constants.TypeOfTable.CALC_TE81_TEMP, (int)Constants.TypeOfTable.CALC_TE81_TEMP, dt1, dt2, te80.F80_T_Cal_Up ?? 0, te80.F80_T_Cal_Lo ?? 0, te80.F80_H_Cal_Up ?? 0, te80.F80_H_Cal_Lo ?? 0, lstTable).Item2; var max = GetMax(Constants.EnvType.TYPE_RM, Constants.TypeOfTable.CALC_BUFFER, Constants.TypeOfTable.CALC_TE81_TEMP, (int)Constants.TypeOfTable.CALC_TE81_TEMP, dt1, dt2, te80.F80_T_Dis_Up ?? 0, te80.F80_H_Dis_Up ?? 0, lstTable); var min = GetMin(Constants.EnvType.TYPE_RM, Constants.TypeOfTable.CALC_BUFFER, Constants.TypeOfTable.CALC_TE81_TEMP, (int)Constants.TypeOfTable.CALC_TE81_TEMP, dt1, dt2, te80.F80_T_Dis_Lo ?? 0, te80.F80_H_Dis_Lo ?? 0, lstTable); if (mode == Constants.EnvMode.ControlLine) { UpdateBuffer(Constants.EnvActionBuffer.UPDATE_DB, Constants.TypeOfTable.CALC_TE81_TEMP, dt1, te80.F80_T_Ucl ?? 0, Constants.EnvFieldNo.FLD_MEAN, lstTable); UpdateBuffer(Constants.EnvActionBuffer.UPDATE_DB, Constants.TypeOfTable.CALC_TE81_TEMP, dt1, te80.F80_T_Lcl ?? 0, Constants.EnvFieldNo.FLD_MEAN, lstTable); } else { UpdateBuffer(Constants.EnvActionBuffer.UPDATE_DB, Constants.TypeOfTable.CALC_TE81_TEMP, dt1, te80.F80_T_Usl ?? 0, Constants.EnvFieldNo.FLD_MEAN, lstTable); UpdateBuffer(Constants.EnvActionBuffer.UPDATE_DB, Constants.TypeOfTable.CALC_TE81_TEMP, dt1, te80.F80_T_Lsl ?? 0, Constants.EnvFieldNo.FLD_MEAN, lstTable); } var dataChart = GrapData(Constants.TypeOfTable.CALC_TE81_TEMP, lstTable); var item = new LotdataSamplingItem { ChartName = te80.F80_Name, HighTemp = Math.Round(max, 2), LowTemp = Math.Round(min, 2), RangeTemp = Math.Round(max - min, 2), SigmaTemp = Math.Round(sigma, 2), MeanTemp = Math.Round(result.Item2, 2), Dec_data = dataChart.Item1, Dec_lower = dataChart.Item2, Dec_mean = dataChart.Item3, Dec_upper = dataChart.Item4, dt_dtm = dataChart.Item5, }; return(new ResponseResult <LotdataSamplingItem>(item, true)); }
public ResponseResult <XRTemperatureItem> Search(string productCode, Constants.EnvMode envMode, DateTime startDate, DateTime endDate) { var th85 = _unitOfWork.EnvProdRepository.GetMany(i => i.F85_Code.Trim().Equals(productCode.Trim())) .FirstOrDefault(); var dt1 = DateTime.Now; var dt2 = new DateTime(); var rl_avg = 0.0; var total_rec_cnt = 0; var rl_cp = 0.0; var rl_cpk = 0.0; var lstTable = new List <Graphtbl>(); var res = CalcProdlot(productCode, Constants.TypeOfTable.CALC_LOT_AVG, ref dt1, ref dt2, ref lstTable); if (res == -1) { return(new ResponseResult <XRTemperatureItem>(null, true)); } var ttlt = res; rl_avg = CalcMean(Constants.TypeOfTable.CALC_LOT_AVG, Constants.TypeOfTable.CALC_LOT_AVG, (int)Constants.TypeOfTable.CALC_LOT_AVG, dt1, dt2, 0.0, 0.0, 0.0, 0.0, lstTable).Item2; var resSigma = CalcSigma(Constants.TypeOfTable.CALC_LOT_AVG, Constants.TypeOfTable.CALC_LOT_AVG, (int)Constants.TypeOfTable.CALC_LOT_AVG, dt1, dt2, 0.0, 0.0, 0.0, 0.0, lstTable); var rl_sigma = resSigma.Item2; var max = GetMax(Constants.EnvType.TYPE_LT, Constants.TypeOfTable.CALC_LOT_AVG, Constants.TypeOfTable.CALC_LOT_AVG, (int)Constants.TypeOfTable.CALC_LOT_AVG, dt1, dt2, 0.0, 0.0, lstTable); var min = GetMin(Constants.EnvType.TYPE_LT, Constants.TypeOfTable.CALC_LOT_AVG, Constants.TypeOfTable.CALC_LOT_AVG, (int)Constants.TypeOfTable.CALC_LOT_AVG, dt1, dt2, 0.0, 0.0, lstTable); CalcCp(Constants.TypeOfTable.CALC_LOT_AVG, rl_avg, rl_sigma, max - min, th85.F85_M_Usl ?? 0, th85.F85_M_Lsl ?? 0, ref rl_cp, ref rl_cpk, false, false, 0.0, 0.0); var repone = new XRTemperatureItem(); var data = GrapData(Constants.TypeOfTable.CALC_LOT_AVG, lstTable); repone.tblTemp = data.Item1; repone.TimeTemp = data.Item5; repone.HighTemp = max.ToString("f"); repone.LowTemp = min.ToString("f"); repone.MeanTemp = rl_avg.ToString("f"); repone.SigmaTemp = rl_sigma.ToString("f"); repone.RangeTemp = (max - min).ToString("f"); repone.UCLTemp = (rl_avg + 3 * rl_sigma).ToString("f"); repone.LCLTemp = (rl_avg - 3 * rl_sigma).ToString("f"); repone.CpTemp = rl_cp.ToString("f"); repone.CpkTemp = rl_cpk.ToString("f"); var lbl = 0; if (ttlt > 150) { lbl = 20; } if (ttlt > 100) { lbl = 10; } if (ttlt > 50) { lbl = 5; } if (ttlt > 10) { lbl = 2; } else { lbl = 1; } var d_min = min - 1; if (d_min < 0) { d_min = 0; } // Update Values var lt_range = Math.Round(max - min, 3); var a_ucl = Math.Round(rl_avg + 3 * rl_sigma, 3); var a_lcl = Math.Round(rl_avg - 3 * rl_sigma, 3); var te85 = _unitOfWork.EnvProdRepository.Get(i => i.F85_Code == productCode); if (te85 != null) { te85.F85_T_High = max; te85.F85_T_Low = min; te85.F85_T_Ucl = a_ucl; te85.F85_T_Lcl = a_lcl; te85.F85_T_Cpk = rl_cpk; te85.F85_T_Cp = rl_cp; te85.F85_T_Range = lt_range; te85.F85_T_Mean = rl_avg; te85.F85_T_Sigma = rl_sigma; te85.F85_No_Lot = ConvertHelper.ToInteger(ttlt); _unitOfWork.EnvProdRepository.Update(te85); } rl_avg = CalcMean(Constants.TypeOfTable.CALC_LOT_RANGE, Constants.TypeOfTable.CALC_LOT_AVG, (int)Constants.TypeOfTable.CALC_LOT_RANGE, dt1, dt2, 0.0, 0.0, 0.0, 0.0, lstTable).Item2; resSigma = CalcSigma(Constants.TypeOfTable.CALC_LOT_RANGE, Constants.TypeOfTable.CALC_LOT_AVG, (int)Constants.TypeOfTable.CALC_LOT_AVG, dt1, dt2, 0.0, 0.0, 0.0, 0.0, lstTable); rl_sigma = resSigma.Item2; // Draw for Range max = GetMax(Constants.EnvType.TYPE_LT, Constants.TypeOfTable.CALC_LOT_RANGE, Constants.TypeOfTable.CALC_LOT_AVG, (int)Constants.TypeOfTable.CALC_LOT_AVG, dt1, dt2, 0.0, 0.0, lstTable); min = GetMin(Constants.EnvType.TYPE_LT, Constants.TypeOfTable.CALC_LOT_RANGE, Constants.TypeOfTable.CALC_LOT_AVG, (int)Constants.TypeOfTable.CALC_LOT_AVG, dt1, dt2, 0.0, 0.0, lstTable); CalcCp(Constants.TypeOfTable.CALC_LOT_RANGE, rl_avg, rl_sigma, max - min, th85.F85_M_Usl ?? 0, th85.F85_M_Lsl ?? 0, ref rl_cp, ref rl_cpk, false, false, 0.0, 0.0); foreach (var item in lstTable) { item.buf_type = Constants.TypeOfTable.CALC_LOT_RANGE; } data = GrapData(Constants.TypeOfTable.CALC_LOT_RANGE, lstTable); repone.HighHumid = max.ToString("F"); repone.LowHumid = min.ToString("f"); repone.MeanHumid = rl_avg.ToString("F"); repone.SigmaHumid = rl_sigma.ToString("f"); repone.RangeHumid = (max - min).ToString("f"); repone.UCLHumid = (rl_avg + 3 * rl_sigma).ToString("f"); repone.LCLHumid = (rl_avg - 3 * rl_sigma).ToString("F"); repone.CpHumid = rl_cp.ToString("F"); repone.CpkHumid = rl_cpk.ToString("F"); repone.tblHumid = data.Item1; repone.TimeHumid = data.Item5; // Draw graph for average temperature d_min = min - 1; if (d_min < 0) { d_min = 0; } lt_range = Math.Round(max - min, 3); a_ucl = Math.Round(rl_avg + 3 * rl_sigma, 3); a_lcl = Math.Round(rl_avg - 3 * rl_sigma, 3); te85 = _unitOfWork.EnvProdRepository.Get(i => i.F85_Code == productCode); if (te85 != null) { te85.F85_R_High = max; te85.F85_R_Low = min; te85.F85_R_Ucl = a_ucl; te85.F85_R_Lcl = a_lcl; te85.F85_R_Cpk = rl_cpk; te85.F85_R_Cp = rl_cp; te85.F85_R_Range = lt_range; te85.F85_R_Mean = rl_avg; te85.F85_R_Sigma = rl_sigma; _unitOfWork.EnvProdRepository.Update(te85); } _unitOfWork.Commit(); return(new ResponseResult <XRTemperatureItem>(repone, true)); }
public ResponseResult <CreepingAndRollSpeedDurationItem> Search(DateTime startDate, DateTime endDate, Constants.RollMachine machine, Constants.EnvMode mode) { var nlbl = 0; if ((endDate - startDate).TotalDays < 10) { nlbl = 0; } else if ((endDate - startDate).TotalDays < 20) { nlbl = 4; } else { nlbl = (endDate - startDate).TotalDays < 50 ? 8 : 10; } var item = new CreepingAndRollSpeedDurationItem(); for (int i = 1; i <= 3; i++) { var id = 0; if (machine == Constants.RollMachine.Roll_MC_18 && i != 3) { id = i; } else if (machine == Constants.RollMachine.Roll_MC_12 && i != 3) { id = i + 2; } else if (machine == Constants.RollMachine.Roll_MC_18 && i == 3) { id = 5; } else { id = 6; } var res = GetMespVal(Constants.EnvType.TYPE_RS, id, mode); if (!res.Item1) { return(new ResponseResult <CreepingAndRollSpeedDurationItem>(null, false)); } var b_TEMPUSL_NULL = false; var b_HUMIDUSL_NULL = false; if (res.Item3.F80_T_Usl == null) { res.Item3.F80_T_Usl = res.Item3.F80_T_Ucl; b_TEMPUSL_NULL = true; } if (res.Item3.F80_H_Usl == null) { res.Item3.F80_H_Usl = res.Item3.F80_H_Ucl; b_HUMIDUSL_NULL = true; } var te80EnvMesp = res.Item3; var lstTable = new List <Graphtbl>(); var termDate = startDate; do { var result = CalcData(Constants.EnvType.TYPE_RS, id, null, termDate, Constants.TypeOfTable.CALC_TE83_90, 1, mode, te80EnvMesp.F80_T_Ucl ?? 0, te80EnvMesp.F80_T_Lcl ?? 0, te80EnvMesp.F80_T_Usl ?? 0, te80EnvMesp.F80_T_Lsl ?? 0, te80EnvMesp.F80_T_Dis_Up ?? 0, te80EnvMesp.F80_H_Dis_Up ?? 0, te80EnvMesp.F80_T_Dis_Lo ?? 0, te80EnvMesp.F80_H_Dis_Lo ?? 0, te80EnvMesp.F80_H_Ucl ?? 0, te80EnvMesp.F80_H_Lcl ?? 0, te80EnvMesp.F80_H_Usl ?? 0, te80EnvMesp.F80_H_Lsl ?? 0, te80EnvMesp.F80_T_Cal_Up ?? 0, te80EnvMesp.F80_T_Cal_Lo ?? 0, te80EnvMesp.F80_H_Cal_Up ?? 0, te80EnvMesp.F80_H_Cal_Lo ?? 0, true, lstTable); if (!result) { break; } termDate = termDate.AddDays(1); } while (termDate <= endDate); termDate = endDate.AddDays(1); var resultEndDate = CalcData(Constants.EnvType.TYPE_RS, id, Constants.TypeOfTable.CALC_TETMP_RLSPD, startDate, Constants.TypeOfTable.CALC_TETMP_RLSPD, (termDate - startDate).Days, mode, te80EnvMesp.F80_T_Ucl ?? 0, te80EnvMesp.F80_T_Lcl ?? 0, te80EnvMesp.F80_T_Usl ?? 0, te80EnvMesp.F80_T_Lsl ?? 0, te80EnvMesp.F80_T_Dis_Up ?? 0, te80EnvMesp.F80_H_Dis_Up ?? 0, te80EnvMesp.F80_T_Dis_Lo ?? 0, te80EnvMesp.F80_H_Dis_Lo ?? 0, te80EnvMesp.F80_H_Ucl ?? 0, te80EnvMesp.F80_H_Lcl ?? 0, te80EnvMesp.F80_H_Usl ?? 0, te80EnvMesp.F80_H_Lsl ?? 0, te80EnvMesp.F80_T_Cal_Up ?? 0, te80EnvMesp.F80_T_Cal_Lo ?? 0, te80EnvMesp.F80_H_Cal_Up ?? 0, te80EnvMesp.F80_H_Cal_Lo ?? 0, true, lstTable); if (!resultEndDate) { continue; } var dt1 = startDate.AddHours(8); var dt2 = endDate.AddHours(8); var mean = CalcMean(Constants.TypeOfTable.CALC_BUFFER, Constants.TypeOfTable.CALC_TETMP_RLSPD90, id, dt1, dt2, te80EnvMesp.F80_T_Cal_Up ?? 0, te80EnvMesp.F80_T_Cal_Lo ?? 0, te80EnvMesp.F80_H_Cal_Up ?? 0, te80EnvMesp.F80_H_Cal_Lo ?? 0, lstTable); if (mean.Item1) { UpdateBuffer(Constants.EnvActionBuffer.UPDATE_DB, Constants.TypeOfTable.CALC_TETMP_RLSPD90 , dt1, mean.Item2, Constants.EnvFieldNo.FLD_MEAN, lstTable); } else { return(new ResponseResult <CreepingAndRollSpeedDurationItem>(null, false)); } var sigma = CalcSigma(Constants.TypeOfTable.CALC_BUFFER, Constants.TypeOfTable.CALC_BUFFER, (int)Constants.TypeOfTable.CALC_TETMP_RLSPD90, dt1, dt2, te80EnvMesp.F80_T_Cal_Up ?? 0, te80EnvMesp.F80_T_Cal_Lo ?? 0, te80EnvMesp.F80_H_Cal_Up ?? 0, te80EnvMesp.F80_H_Cal_Lo ?? 0, lstTable); var max = GetMax(Constants.EnvType.TYPE_RS, Constants.TypeOfTable.CALC_BUFFER, Constants.TypeOfTable.CALC_TETMP_RLSPD90, id, dt1, dt2, te80EnvMesp.F80_T_Dis_Up ?? 0, te80EnvMesp.F80_H_Dis_Up ?? 0, lstTable); var min = GetMin(Constants.EnvType.TYPE_RS, Constants.TypeOfTable.CALC_BUFFER, Constants.TypeOfTable.CALC_TETMP_RLSPD90, id, dt1, dt2, te80EnvMesp.F80_T_Dis_Lo ?? 0, te80EnvMesp.F80_H_Dis_Lo ?? 0, lstTable); double?rl_upper; double?rl_lower; if (mode == Constants.EnvMode.ControlLine) { rl_upper = te80EnvMesp.F80_T_Ucl; rl_lower = te80EnvMesp.F80_T_Lcl; } else { rl_upper = te80EnvMesp.F80_T_Usl; rl_lower = te80EnvMesp.F80_T_Lsl; } UpdateBuffer(Constants.EnvActionBuffer.UPDATE_DB, Constants.TypeOfTable.CALC_TETMP_RLSPD90 , dt1, rl_lower ?? 0, Constants.EnvFieldNo.FLD_LOWER, lstTable); UpdateBuffer(Constants.EnvActionBuffer.UPDATE_DB, Constants.TypeOfTable.CALC_TETMP_RLSPD90 , dt1, rl_upper ?? 0, Constants.EnvFieldNo.FLD_UPPER, lstTable); double r_cp = 0; double r_cpk = 0; CalcCp(Constants.TypeOfTable.CALC_TETMP_RLSPD, mean.Item2, sigma.Item2, max - min, te80EnvMesp.F80_T_Usl ?? 0, te80EnvMesp.F80_T_Lsl ?? 0, ref r_cp, ref r_cpk, b_TEMPUSL_NULL, b_HUMIDUSL_NULL, te80EnvMesp.F80_T_Lcl ?? 0, te80EnvMesp.F80_T_Ucl ?? 0, te80EnvMesp.F80_H_Lcl ?? 0, te80EnvMesp.F80_H_Ucl ?? 0); var dataChart = GrapData(Constants.TypeOfTable.CALC_TETMP_RLSPD90, lstTable); switch (id) { case 1: case 3: item.LeftModel = new ChartModel() { ChartName = machine.ToString() + ": Left Creeping", Cp = r_cp.ToString("f"), Cpk = r_cpk.ToString("F"), Data1 = dataChart.Item1, Data2 = dataChart.Item2, Data3 = dataChart.Item3, Data4 = dataChart.Item4, lstTime = dataChart.Item5, High = max.ToString("f"), Low = min.ToString("f"), Range = (max - min).ToString("f"), LCL = rl_lower.Value.ToString("f"), Mean = mean.Item2.ToString("f"), Sigma = sigma.Item2.ToString("f"), UCL = rl_upper.Value.ToString("f") }; break; case 2: case 4: item.RightModel = new ChartModel() { ChartName = machine.ToString() + ": Right Creeping", Cp = r_cp.ToString("f"), Cpk = r_cpk.ToString("F"), Data1 = dataChart.Item1, Data2 = dataChart.Item2, Data3 = dataChart.Item3, Data4 = dataChart.Item4, lstTime = dataChart.Item5, High = max.ToString("f"), Low = min.ToString("f"), Range = (max - min).ToString("f"), LCL = rl_lower.Value.ToString("f"), Mean = mean.Item2.ToString("f"), Sigma = sigma.Item2.ToString("f"), UCL = rl_upper.Value.ToString("f") }; break; case 5: case 6: item.RollModel = new ChartModel() { ChartName = machine.ToString() + ": Roll Speed", Cp = r_cp.ToString("f"), Cpk = r_cpk.ToString("F"), Data1 = dataChart.Item1, Data2 = dataChart.Item2, Data3 = dataChart.Item3, Data4 = dataChart.Item4, lstTime = dataChart.Item5, High = max.ToString("f"), Low = min.ToString("f"), Range = (max - min).ToString("f"), LCL = rl_lower.Value.ToString("f"), Mean = mean.Item2.ToString("f"), Sigma = sigma.Item2.ToString("f"), UCL = rl_upper.Value.ToString("f") }; break; } } return(new ResponseResult <CreepingAndRollSpeedDurationItem>(item, true)); }