/// <summary> /// NeededVolume of Processing rotations /// </summary> /// <param name="list"></param> public void NeededVolumeofProcessingRotations(ref List <ReagentAndSuppliesConfiguration> list) { ReagentsAndSuppliesConsumptionController consumptionController = new ReagentsAndSuppliesConsumptionController(); List <ReagentsAndSuppliesConsumption> consumptions = consumptionController.GetProcessingRotationsVolume(); ReagentAndSuppliesController reagentController = new ReagentAndSuppliesController(); List <ReagentAndSupply> reagents = reagentController.GetAll(SessionInfo.ExperimentID); foreach (ReagentAndSuppliesConfiguration config in list) { double neededVolume = 0; List <ReagentAndSupply> listReagent = reagents.Where(P => P.ConfigurationItemID == config.ItemID).ToList(); if (listReagent != null && listReagent.Count > 0) { foreach (ReagentAndSupply reagent in listReagent) { ReagentsAndSuppliesConsumption consumption = consumptions.FirstOrDefault(P => P.ReagentAndSupplieID == reagent.ItemID); if (consumption != null && consumption.Volume != null) { neededVolume += (double)consumption.Volume; } } config.NeedVolume = neededVolume; } } }
/// <summary> /// Volume of one rotation /// </summary> /// <param name="list">0 need,1 consumption,2 add,3 firstAdd</param> public List <ReagentAndSuppliesConfiguration> GetRotationVolume(Guid experimentID, Guid rotationID, short[] volumeType, string volumeFiled) { ReagentsAndSuppliesConsumptionController consumptionController = new ReagentsAndSuppliesConsumptionController(); List <ReagentsAndSuppliesConsumption> consumptions = consumptionController.GetRotationVolume(rotationID, volumeType); ReagentAndSuppliesController reagentController = new ReagentAndSuppliesController(); List <ReagentAndSupply> reagents = reagentController.GetAll(experimentID); ReagentSuppliesConfigurationController configurationController = new ReagentSuppliesConfigurationController(); List <ReagentAndSuppliesConfiguration> list = configurationController.GetAllActived(); foreach (ReagentAndSuppliesConfiguration config in list) { double volume = 0; List <ReagentAndSupply> listReagent = reagents.Where(P => P.ConfigurationItemID == config.ItemID).ToList(); if (listReagent != null && listReagent.Count > 0) { foreach (ReagentAndSupply reagent in listReagent) { ReagentsAndSuppliesConsumption consumption = consumptions.FirstOrDefault(P => P.ReagentAndSupplieID == reagent.ItemID); if (consumption != null && consumption.Volume != null) { volume += (double)consumption.Volume; } } } Type type = typeof(ReagentAndSuppliesConfiguration); FieldInfo fieldInfo = type.GetField(volumeFiled, BindingFlags.NonPublic | BindingFlags.Instance); if (fieldInfo != null) { fieldInfo.SetValue(config, volume); } } return(list); }
public void AddConsumption(DataTable dt, short volumeType) { try { using (WanTaiEntities entities = new WanTaiEntities()) { for (int i = 0; i < dt.Rows.Count; i++) { if (((double)dt.Rows[i]["AddVolume"]) > 0) { ReagentsAndSuppliesConsumption consumption = new ReagentsAndSuppliesConsumption(); consumption.ItemID = WanTaiObjectService.NewSequentialGuid(); consumption.Volume = (double)dt.Rows[i]["AddVolume"]; consumption.UpdateTime = DateTime.Now; consumption.ReagentAndSupplieID = Guid.Parse(dt.Rows[i]["ReagentAndSuppolieID"].ToString()); consumption.ExperimentID = SessionInfo.ExperimentID; consumption.RotationID = SessionInfo.PraperRotation.RotationID; consumption.VolumeType = volumeType; entities.ReagentsAndSuppliesConsumptions.AddObject(consumption); } } entities.SaveChanges(); } } catch (Exception ex) { string errorMessage = ex.Message + System.Environment.NewLine + ex.StackTrace; LogInfoController.AddLogInfo(LogInfoLevelEnum.Error, errorMessage, SessionInfo.LoginName, this.GetType().Name, SessionInfo.ExperimentID); } }
/// <summary> /// volume of experiment /// </summary> /// <param name="list"></param> /// <param name="list">0 need,1 consumption,2 add,3 firstAdd</param> /// <param name="volumeFiled">the filed to update</param> public void UpdateExperimentTotalNeedConsumptionVolume(Guid experimentID, ref List <ReagentAndSuppliesConfiguration> list) { ReagentsAndSuppliesConsumptionController consumptionController = new ReagentsAndSuppliesConsumptionController(); List <ReagentsAndSuppliesConsumption> consumptions = consumptionController.GetExperimentVolume(experimentID, new short[] { ConsumptionType.Need, ConsumptionType.consume }); ReagentAndSuppliesController reagentController = new ReagentAndSuppliesController(); List <ReagentAndSupply> reagents = reagentController.GetAll(experimentID); foreach (ReagentAndSuppliesConfiguration config in list) { double volume = 0; List <ReagentAndSupply> listReagent = reagents.Where(P => P.ConfigurationItemID == config.ItemID).ToList(); if (listReagent != null && listReagent.Count > 0) { foreach (ReagentAndSupply reagent in listReagent) { ReagentsAndSuppliesConsumption consumption = consumptions.FirstOrDefault(P => P.ReagentAndSupplieID == reagent.ItemID); if (consumption != null && consumption.Volume != null) { volume += (double)consumption.Volume; } } if (config.ItemType == DiTiType.DiTi200 || config.ItemType == DiTiType.DiTi1000) { volume = volume / 96; volume = Math.Ceiling(volume * 10) / 10; } config.TotalNeedValueAndConsumption = volume; } } }
public void UpdateConsumption(ReagentsAndSuppliesConsumption consumption) { using (WanTaiEntities entities = new WanTaiEntities()) { ReagentsAndSuppliesConsumption Result = entities.ReagentsAndSuppliesConsumptions.Where(Reagent => Reagent.VolumeType == 1 && Reagent.RotationID == consumption.RotationID && Reagent.ReagentAndSupplieID == consumption.ReagentAndSupplieID).FirstOrDefault(); if (Result == null) { entities.ReagentsAndSuppliesConsumptions.AddObject(consumption); } else { Result.Volume = consumption.Volume; Result.UpdateTime = DateTime.Now; } entities.SaveChanges(); } }
/// <summary> /// volume of experiment /// </summary> /// <param name="list"></param> /// <param name="list">0 need,1 consumption,2 add,3 firstAdd</param> /// <param name="volumeFiled">the filed to update</param> public void UpdateExperimentVolume(Guid experimentID, ref List <ReagentAndSuppliesConfiguration> list, short[] volumeType, string volumeFiled) { ReagentsAndSuppliesConsumptionController consumptionController = new ReagentsAndSuppliesConsumptionController(); List <ReagentsAndSuppliesConsumption> consumptions = consumptionController.GetExperimentVolume(experimentID, volumeType); ReagentAndSuppliesController reagentController = new ReagentAndSuppliesController(); List <ReagentAndSupply> reagents = reagentController.GetAll(experimentID); foreach (ReagentAndSuppliesConfiguration config in list) { double volume = 0; List <ReagentAndSupply> listReagent = reagents.Where(P => P.ConfigurationItemID == config.ItemID).ToList(); if (listReagent != null && listReagent.Count > 0) { foreach (ReagentAndSupply reagent in listReagent) { ReagentsAndSuppliesConsumption consumption = consumptions.FirstOrDefault(P => P.ReagentAndSupplieID == reagent.ItemID); if (consumption != null && consumption.Volume != null) { volume += (double)consumption.Volume; } } if (config.ItemType == DiTiType.DiTi200 || config.ItemType == DiTiType.DiTi1000) { config.CurrentActualVolume = volume; volume = volume / 96; volume = Math.Ceiling(volume * 10) / 10; } //if (volume < 0) // volume = 0.0; Type type = typeof(ReagentAndSuppliesConfiguration); FieldInfo filedInfo = type.GetField(volumeFiled, BindingFlags.NonPublic | BindingFlags.Instance); if (filedInfo != null) { filedInfo.SetValue(config, volume); } } } }
public void AddConsumption(Guid rotationID, Guid reagentAndSupplieID, double volume, short volumeType) { try { using (WanTaiEntities entities = new WanTaiEntities()) { ReagentsAndSuppliesConsumption consumption = new ReagentsAndSuppliesConsumption(); consumption.ItemID = WanTaiObjectService.NewSequentialGuid(); consumption.Volume = volume; consumption.UpdateTime = DateTime.Now; consumption.ReagentAndSupplieID = reagentAndSupplieID; consumption.ExperimentID = SessionInfo.ExperimentID; consumption.RotationID = rotationID; consumption.VolumeType = volumeType; entities.ReagentsAndSuppliesConsumptions.AddObject(consumption); entities.SaveChanges(); } } catch (Exception ex) { string errorMessage = ex.Message + System.Environment.NewLine + ex.StackTrace; LogInfoController.AddLogInfo(LogInfoLevelEnum.Error, errorMessage, SessionInfo.LoginName, this.GetType().Name, SessionInfo.ExperimentID); } }
private void btnSave_Click(object sender, RoutedEventArgs e) { //MessageBoxResult msResult = MessageBox.Show("确认保存么", "系统提示", MessageBoxButton.YesNo, MessageBoxImage.Information); //if (msResult == MessageBoxResult.No) //{ // return; //} ReagentsAndSuppliesConsumptionController consumptionController = new ReagentsAndSuppliesConsumptionController(); ReagentAndSuppliesController reagentController = new ReagentAndSuppliesController(); PlateController plateController = new PlateController(); foreach (PlateBase plate in ViewPlates) { if (plate.ItemType == 101 && (plate.DisplayName.EndsWith("1") || plate.DisplayName.EndsWith("2"))) { string plateName = ""; if (plate.DisplayName.EndsWith("1")) { plateName = PlateName.DWPlate1; } if (plate.DisplayName.EndsWith("2")) { plateName = PlateName.DWPlate2; } plateController.UpdateBarcode(plateName, 0, SessionInfo.PraperRotation.RotationID, plate.Barcode); } ReagentAndSupply reagent = new ReagentAndSupply(); if ((isFirstRotation) || (!isFirstRotation && (plate.ItemType >= 100 && plate.ItemType < 200))) { reagent.ItemID = WanTaiObjectService.NewSequentialGuid(); reagent.BarCode = plate.Barcode; reagent.ItemType = plate.ItemType; reagent.ExperimentID = SessionInfo.ExperimentID; reagent.ConfigurationItemID = plate.ConfigurationItemID; reagentController.AddReagentAndSupplies(reagent); } else { reagent.ItemID = new ReagentAndSuppliesController().GetReagentID(SessionInfo.ExperimentID, plate.BarcodePrefix); if (reagent.ItemID == Guid.Empty) { reagent.ItemID = WanTaiObjectService.NewSequentialGuid(); reagent.BarCode = plate.Barcode; reagent.ItemType = plate.ItemType; reagent.ExperimentID = SessionInfo.ExperimentID; reagent.ConfigurationItemID = plate.ConfigurationItemID; reagentController.AddReagentAndSupplies(reagent); } } ReagentsAndSuppliesConsumption calcReagentConsumption = new ReagentsAndSuppliesConsumption(); calcReagentConsumption.ItemID = WanTaiObjectService.NewSequentialGuid(); if (plate.ActualSavedVolume > 0) { calcReagentConsumption.Volume = plate.ActualSavedVolume; } else { calcReagentConsumption.Volume = plate.NeedVolume; } calcReagentConsumption.UpdateTime = DateTime.Now; calcReagentConsumption.ExperimentID = SessionInfo.ExperimentID; calcReagentConsumption.RotationID = SessionInfo.PraperRotation.RotationID; calcReagentConsumption.VolumeType = ConsumptionType.Need; calcReagentConsumption.ReagentAndSupplieID = reagent.ItemID; consumptionController.AddConsumption(calcReagentConsumption); ReagentsAndSuppliesConsumption scanReagentConsumption = new ReagentsAndSuppliesConsumption(); scanReagentConsumption.ItemID = WanTaiObjectService.NewSequentialGuid(); scanReagentConsumption.UpdateTime = DateTime.Now; scanReagentConsumption.ExperimentID = SessionInfo.ExperimentID; scanReagentConsumption.RotationID = SessionInfo.PraperRotation.RotationID; scanReagentConsumption.VolumeType = ConsumptionType.FirstAdd; if (reagent.ItemType == DiTiType.DiTi200 || reagent.ItemType == DiTiType.DiTi1000) { scanReagentConsumption.Volume = plate.FirstAddVolume * 96; } else { scanReagentConsumption.Volume = plate.FirstAddVolume; } scanReagentConsumption.ReagentAndSupplieID = reagent.ItemID; consumptionController.AddConsumption(scanReagentConsumption); } btnScan.IsEnabled = false; btnManual.IsEnabled = false; btnSave.IsEnabled = false; btnNext.IsEnabled = true; btnSupplies.IsEnabled = false; btnReagent.IsEnabled = false; btnTestItem.IsEnabled = false; SessionInfo.NextButIndex = 3; ////MessageBox.Show("保存成功!", "系统提示"); }
public void AddConsumption(ReagentsAndSuppliesConsumption consumption) { using (WanTaiEntities entities = new WanTaiEntities()) { //if (consumption.VolumeType == ConsumptionType.FirstAdd && entities.ReagentsAndSuppliesConsumptions.Where(P => P.VolumeType == ConsumptionType.FirstAdd && P.ReagentAndSupplieID == consumption.ReagentAndSupplieID).Count() != 0) //{ // //int list = entities.ReagentsAndSuppliesConsumptions.Where(P => P.VolumeType == ConsumptionType.FirstAdd && P.ReagentAndSupplieID == consumption.ReagentAndSupplieID).Count(); // double volume = 0; // List<ReagentsAndSuppliesConsumption> consumptions = entities.ReagentsAndSuppliesConsumptions.Where(P => P.ReagentAndSupplieID == consumption.ReagentAndSupplieID).ToList(); // foreach (ReagentsAndSuppliesConsumption c in consumptions) // { // if (c.VolumeType != ConsumptionType.Need) // { // volume += (double)c.Volume; // } // } // consumption.Volume -= volume; // if (consumption.Volume < 0) // return; // consumption.VolumeType = ConsumptionType.Add; //} //else if (consumption.VolumeType == ConsumptionType.FirstAdd) //{ // double volume = 0; // ReagentAndSupply _reagent = entities.ReagentAndSupplies.Where(c => c.ItemID == consumption.ReagentAndSupplieID).FirstOrDefault(); // if (_reagent != null && _reagent.ItemType >= 100 && _reagent.ItemType < 200) // { // var allreagent = entities.ReagentAndSupplies.Where(c => c.ItemType == _reagent.ItemType && c.ExperimentID == consumption.ExperimentID); // if (allreagent.Count() > 0) // { // List<Guid> ReagentAndSuppliesIdList = new List<Guid>(); // foreach (ReagentAndSupply reg in allreagent) // { // ReagentAndSuppliesIdList.Add(reg.ItemID); // } // if (entities.ReagentsAndSuppliesConsumptions.Where(P => ReagentAndSuppliesIdList.Contains<Guid>((Guid)P.ReagentAndSupplieID) && P.VolumeType == ConsumptionType.FirstAdd).Count() > 0) // { // List<ReagentsAndSuppliesConsumption> consumptions = entities.ReagentsAndSuppliesConsumptions.Where(P => ReagentAndSuppliesIdList.Contains<Guid>((Guid)P.ReagentAndSupplieID)).ToList(); // if (consumptions.Count > 0) // { // foreach (ReagentsAndSuppliesConsumption c in consumptions) // { // if (c.VolumeType != ConsumptionType.Need) // { // volume += (double)c.Volume; // } // } // consumption.Volume -= volume; // if (consumption.Volume < 0) // return; // consumption.VolumeType = ConsumptionType.Add; // } // } // } // } //} entities.ReagentsAndSuppliesConsumptions.AddObject(consumption); entities.SaveChanges(); } }