diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/BinManage/BinHelper.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/BinManage/BinHelper.cs index e7e99d2..0bcf3d6 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/BinManage/BinHelper.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/BinManage/BinHelper.cs @@ -3,6 +3,7 @@ using FreeSql.Internal.ObjectPool; using Mesnac.Action.ChemicalWeighing.DBHelper; using Mesnac.Action.ChemicalWeighing.Entity; using Mesnac.Action.ChemicalWeighing.Entity.material; +using Mesnac.Action.ChemicalWeighing.Entity.PptPlan; using Mesnac.Action.ChemicalWeighing.Entity.station; using Mesnac.Action.ChemicalWeighing.Product.PptPlan; using Mesnac.Codd.Session; @@ -263,29 +264,67 @@ namespace Mesnac.Action.ChemicalWeighing.BinManage #endregion #region 根据料仓号实时更新料仓物料重量 - public static bool SaveDataToBDb(LR_weigh lrWeigh, LR_plan lrPlan, Pmt_Bin bin, Hw_BinAlarm alarm) + public static bool SaveDataToBDb(Xl_DowLoadPlan item, LR_weigh lrWeigh, LR_plan lrPlan, Pmt_Bin bin, Hw_BinAlarm alarm,int key) { try { IFreeSql fsql = FreeHelper.Instance; { - fsql.Transaction(() => + if (item.IsPrenatalTest==1) { - - var affrows = fsql.Insert(lrWeigh).ExecuteAffrows(); - //判断是否插入成功 - if (affrows < 1) - throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出 - affrows = fsql.Insert(lrPlan).ExecuteAffrows(); - if (affrows < 1) - throw new Exception("存盘计划详细数据失败!");//抛出异常,回滚事务,事务退出 - affrows = fsql.Update(bin.Bin_Serial).Set(a => a.BinWeight, bin.BinWeight).ExecuteAffrows(); - if (affrows < 1) - throw new Exception("更新仓库库存容量数据失败!");//抛出异常,回滚事务,事务退出 - affrows = fsql.Insert(alarm).ExecuteAffrows(); - if (affrows < 1) - throw new Exception("物料出库存盘数据失败!");//抛出异常,回滚事务,事务退出 - }); + if (key == 1) + { + fsql.Transaction(() => + { + var affrows = fsql.Insert(lrWeigh).ExecuteAffrows(); + //判断是否插入成功 + if (affrows < 1) + throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出 + affrows = fsql.Insert(lrPlan).ExecuteAffrows(); + if (affrows < 1) + throw new Exception("存盘计划详细数据失败!");//抛出异常,回滚事务,事务退出 + }); + } + else + { + fsql.Transaction(() => + { + var affrows = fsql.Insert(lrWeigh).ExecuteAffrows(); + if (affrows < 1) + throw new Exception("存盘物料详细数据失败!");//抛出异常,回滚事务,事务退出 + }); + } + + } + else + { + if (key == 1) + { + fsql.Transaction(() => + { + var affrows = fsql.Insert(lrWeigh).ExecuteAffrows(); + //判断是否插入成功 + if (affrows < 1) + throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出 + affrows = fsql.Insert(lrPlan).ExecuteAffrows(); + if (affrows < 1) + throw new Exception("存盘计划详细数据失败!");//抛出异常,回滚事务,事务退出 + }); + } + else + { + fsql.Transaction(() => + { + var affrows = fsql.Insert(lrWeigh).ExecuteAffrows(); + //判断是否插入成功 + if (affrows < 1) + throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出 + affrows = fsql.Update(bin.Bin_Serial).Set(a => a.BinWeight, bin.BinWeight).ExecuteAffrows(); + + }); + } + } + return true; } } diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Entity/PptPlan/Xl_DowLoadPlan.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Entity/PptPlan/Xl_DowLoadPlan.cs index 2777f42..4601785 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Entity/PptPlan/Xl_DowLoadPlan.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Entity/PptPlan/Xl_DowLoadPlan.cs @@ -8,6 +8,7 @@ namespace Mesnac.Action.ChemicalWeighing.Entity.PptPlan { public class Xl_DowLoadPlan { + public int Id { get; set; } public string Dosing_Id { get; set; } public string Plan_Id { get; set; } public int Plan_Serial { get; set; } @@ -67,5 +68,9 @@ namespace Mesnac.Action.ChemicalWeighing.Entity.PptPlan /// Ƿǰ /// public int IsPrenatalTest { get; set; } + /// + /// Ƿǰִм + /// + public int FlagNum { get; set; } } } diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Entity/Report/LR_plan.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Entity/Report/LR_plan.cs index e772ab4..20acc46 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Entity/Report/LR_plan.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Entity/Report/LR_plan.cs @@ -1,4 +1,5 @@ -using System; +using FreeSql.DataAnnotations; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -8,6 +9,7 @@ namespace Mesnac.Action.ChemicalWeighing.Entity { public class LR_plan { + [Column(IsPrimary =true, IsIdentity =true)] public int ID { get; set; } public string Dosing_Id { get; set; } @@ -23,7 +25,7 @@ namespace Mesnac.Action.ChemicalWeighing.Entity public int Version { get; set; } - public string Mixer_Line { get; set; } + //public string Mixer_Line { get; set; } public int Recipe_Type { get; set; } @@ -58,6 +60,6 @@ namespace Mesnac.Action.ChemicalWeighing.Entity /// public int Retransmission_Num { get; set; } public int IF_FLAG { get; set; } - + public int FlagNum { get; set; } } } diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Entity/Report/LR_weigh.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Entity/Report/LR_weigh.cs index b82b1fb..08365dd 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Entity/Report/LR_weigh.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Entity/Report/LR_weigh.cs @@ -1,4 +1,5 @@ -using System; +using FreeSql.DataAnnotations; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -12,6 +13,7 @@ namespace Mesnac.Action.ChemicalWeighing.Entity [Serializable] public class LR_weigh { + [Column(IsIdentity =true,IsPrimary =true)] public int ID { get; set; } public string Dosing_ID { get; set; } public string Plan_ID { get; set; } diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/PptPlan/PlanHelper.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/PptPlan/PlanHelper.cs index ff721c7..10b1445 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/PptPlan/PlanHelper.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/PptPlan/PlanHelper.cs @@ -1893,7 +1893,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.PptPlan dbHelper.AddParameter("@Recipe_Code", lrPlan.Recipe_Code); //配方编码 dbHelper.AddParameter("@Recipe_Name", lrPlan.Recipe_Name); //配方别名 dbHelper.AddParameter("@Version", lrPlan.Version); //配方版本号 - dbHelper.AddParameter("@Mixer_Line", lrPlan.Mixer_Line); //配方版本号 +/* dbHelper.AddParameter("@Mixer_Line", lrPlan.Mixer_Line);*/ //配方版本号 dbHelper.AddParameter("@Recipe_Type", lrPlan.Recipe_Type); //配方类型 dbHelper.AddParameter("@Shift_Id", lrPlan.Shift_Id); //班次ID dbHelper.AddParameter("@Shift_Class", 0); //班组ID diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/ManualRefreshAction.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/ManualRefreshAction.cs index 776cf92..63e9a74 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/ManualRefreshAction.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/ManualRefreshAction.cs @@ -107,7 +107,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan return; } //获取选中计划、获取选中物料、//获取选中工位 - List materialList = XlPlan.PlanHelper.GetXlPlan2(selectedPlanId); + List materialList = XlPlan.PlanHelper.GetXlPlan2(selectedPlanId, isPrenatalTest); if (materialList.Count() == 0 || materialList == null) { @@ -118,9 +118,25 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan bool IsSucess = PlcPlanHelper.ManualXlPlanToPlc(materialList); if (IsSucess) { - //Pmt_Shiftime shiftTime = PlanHelper.GetShiftClass(); + //回写计划任务状态 3:任务执行中 - PlanHelper.UpdateStartPlanState(selectedPlanId, 3); + Xl_DowLoadPlan plan = materialList.FirstOrDefault(); + if (isPrenatalTest == 1) + { + if (plan.FlagNum == 0) + { + plan.FlagNum = 1; + } + else + { + plan.FlagNum = plan.FlagNum + 1; + } + } + else + { + plan.FlagNum = 0; + } + PlanHelper.UpdateStartPlanState(selectedPlanId, 3, plan.FlagNum); MessageBox.Show("计划任务下发成功!"); ICSharpCode.Core.LoggingService.Debug(String.Format("[{0}]计划信息下传完毕...", selectedPlanId)); } @@ -130,11 +146,12 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan ICSharpCode.Core.LoggingService.Debug(String.Format("[{0}]计划信息下传失败...", selectedPlanId)); } IsFirstRun = false; + this.DoWork(isPrenatalTest); } #endregion - this.DoWork(); + } #endregion @@ -143,7 +160,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan /// /// 刷新计划 /// - protected void DoWork() + protected void DoWork(int isPrenatalTest) { #region 业务实现 @@ -171,14 +188,15 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan #endregion #region 触发事件, 刷新客户端计划 - - Global.PublicVar.Instance.LocalPlanIsRefresh = true; //更新机台计划刷新标志 - - if (OnRefreshPlan != null) + if (isPrenatalTest != 1) { - OnRefreshPlan(this._runtime.BaseControl.MCRoot, System.EventArgs.Empty); - } + Global.PublicVar.Instance.LocalPlanIsRefresh = true; //更新机台计划刷新标志 + if (OnRefreshPlan != null) + { + OnRefreshPlan(this._runtime.BaseControl.MCRoot, System.EventArgs.Empty); + } + } #endregion } diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/PlanHelper.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/PlanHelper.cs index 14b5ebc..96545d5 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/PlanHelper.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/PlanHelper.cs @@ -1812,7 +1812,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan dbHelper.AddParameter("@Recipe_Code", lrPlan.Recipe_Code); //配方编码 dbHelper.AddParameter("@Recipe_Name", lrPlan.Recipe_Name); //配方别名 dbHelper.AddParameter("@Version", lrPlan.Version); //配方版本号 - dbHelper.AddParameter("@Mixer_Line", lrPlan.Mixer_Line); //配方版本号 + /* dbHelper.AddParameter("@Mixer_Line", lrPlan.Mixer_Line); */ //配方版本号 dbHelper.AddParameter("@Recipe_Type", lrPlan.Recipe_Type); //配方类型 dbHelper.AddParameter("@Shift_Id", lrPlan.Shift_Id); //班次ID dbHelper.AddParameter("@Shift_Class", 0); //班组ID @@ -2007,7 +2007,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan /// /// 要更新的计划号 /// 新的计划状态 - public static void UpdateStartPlanState(string planID, int planState) + public static void UpdateStartPlanState(string planID, int planState,int flagNum) { try { @@ -2018,13 +2018,14 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; - string strSql = "update xl_plan set Plan_State = @PlanState, Plan_StateText = @Plan_StateText,Start_Date=@Start_Date,IF_FLAG = @IfFlag where Plan_Id = @PlanID"; + string strSql = "update xl_plan set Plan_State = @PlanState, Plan_StateText = @Plan_StateText,Start_Date=@Start_Date,IF_FLAG = @IfFlag,FlagNum=@flagNum where Plan_Id = @PlanID"; dbHelper.CommandText = strSql; dbHelper.AddParameter("@PlanState", planState); dbHelper.AddParameter("@Plan_StateText", StateToShow(planState)); dbHelper.AddParameter("@IfFlag", 1); dbHelper.AddParameter("@PlanID", planID); dbHelper.AddParameter("@Start_Date", DateTime.Now.ToString()); + dbHelper.AddParameter("@flagNum", flagNum); dbHelper.ExecuteNonQuery(); } @@ -2612,21 +2613,36 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan /// /// /// - public static List GetXlPlan2(string planId) + public static List GetXlPlan2(string planId,int isPrenatalTest) { - string strSql = @"select pp.Plan_Id,pp.Plan_Serial,pp.Recipe_ID,pp.Recipe_Name,pp.Version,pp.Plan_Num,pp.Real_Num,pp.Shift_Id,pp.Shift_Class,pp.Plan_State,pp.Plan_StateText,pp.Plan_TotalWeight,pp.Plan_TotalError, - pp.Total_Weight,pp.Total_Error,pp.MaterialID,pp.Material_name,b.Bin_Serial as Station,b.Bin_Name as StationName,pp.Set_Weight,pp.Set_Error,pp.IsRetransmission,pp.Retransmission_Num,pp.IsPrenatalTest - from Pmt_Bin b inner join( + string strSql = string.Empty; + if (isPrenatalTest==1) + { + strSql = $@"select ROW_NUMBER() Over(order by b.Bin_Serial) Id, pp.Plan_Id,pp.Plan_Serial,pp.Recipe_ID,pp.Recipe_Name,pp.Version,pp.Plan_Num,pp.Real_Num,pp.Shift_Id,pp.Shift_Class,pp.Plan_State,pp.Plan_StateText,ISNULL(pp.Plan_TotalWeight,0) Plan_TotalWeight,ISNULL(pp.Plan_TotalError,0) Plan_TotalError, + pp.Total_Weight,pp.Total_Error,pp.MaterialID,pp.Material_name,b.Bin_Serial as Station,b.Bin_Name as StationName,pp.Set_Weight,pp.Set_Error,pp.IsRetransmission,pp.Retransmission_Num,pp.IsPrenatalTest,pp.FlagNum + from Pmt_Bin b left join( + select p.Dosing_Id, p.Plan_Id, p.Plan_Serial, p.Recipe_ID, p.Recipe_Name, p.Version, p.Plan_Num, p.Real_Num, p.Shift_Id, p.Shift_Class, p.Plan_State, p.Plan_StateText, p.Plan_TotalWeight, p.Plan_TotalError, + r.Total_Weight, r.Total_Error, m.Material_ID as MaterialID,m.Material_name,m.Bin_Serial as Station,w.Set_Weight,w.Set_Error,p.IsRetransmission,p.Retransmission_Num,p.IsPrenatalTest,ISNULL(p.FlagNum,0) as FlagNum + from xl_plan p inner join xl_recipe r on p.Recipe_ID = r.ID inner join xl_weigh w on r.ID = w.Recipe_ID + left join(select b.Bin_Serial, b.Bin_Name, b.Bin_Code, b.Material_ID, m.Material_name from Pmt_Bin b left join xl_material m on m.ID= b.Material_ID) m on w.Bin_Serial=m.Bin_Serial + where p.Plan_Id ='{planId}' ) pp on b.Bin_Serial = pp.Station"; + } + else + { + strSql = $@"select ROW_NUMBER() Over(order by b.Bin_Serial) Id, pp.Plan_Id,pp.Plan_Serial,pp.Recipe_ID,pp.Recipe_Name,pp.Version,pp.Plan_Num,pp.Real_Num,pp.Shift_Id,pp.Shift_Class,pp.Plan_State,pp.Plan_StateText,ISNULL(pp.Plan_TotalWeight,0) Plan_TotalWeight,ISNULL(pp.Plan_TotalError,0) Plan_TotalError, + pp.Total_Weight,pp.Total_Error,pp.MaterialID,pp.Material_name,b.Bin_Serial as Station,b.Bin_Name as StationName,pp.Set_Weight,pp.Set_Error,pp.IsRetransmission,pp.Retransmission_Num,pp.IsPrenatalTest,pp.FlagNum + from Pmt_Bin b left join( select p.Dosing_Id, p.Plan_Id, p.Plan_Serial, p.Recipe_ID, p.Recipe_Name, p.Version, p.Plan_Num, p.Real_Num, p.Shift_Id, p.Shift_Class, p.Plan_State, p.Plan_StateText, p.Plan_TotalWeight, p.Plan_TotalError, - r.Total_Weight, r.Total_Error, m.Material_ID as MaterialID,m.Material_name,m.Bin_Serial as Station,w.Set_Weight,w.Set_Error,p.IsRetransmission,p.Retransmission_Num,p.IsPrenatalTest + r.Total_Weight, r.Total_Error, m.Material_ID as MaterialID,m.Material_name,m.Bin_Serial as Station,w.Set_Weight,w.Set_Error,p.IsRetransmission,p.Retransmission_Num,p.IsPrenatalTest,p.FlagNum from xl_plan p inner join xl_recipe r on p.Recipe_ID = r.ID inner join xl_weigh w on r.ID = w.Recipe_ID left join(select b.Bin_Serial, b.Bin_Name, b.Bin_Code, b.Material_ID, m.Material_name from Pmt_Bin b left join xl_material m on m.ID= b.Material_ID) m on w.Bin_Serial=m.Bin_Serial - where p.Plan_State = 5) pp on b.Bin_Serial = pp.Station ORDER BY Station"; + where p.Plan_State = 5 and p.Plan_Id ='{planId}') pp on b.Bin_Serial = pp.Station"; + } + IFreeSql fsql = FreeHelper.Instance; var list = fsql.Select() .WithSql(strSql) - .Where(d => d.Plan_Id.Equals(planId)) .ToList("*"); return list; @@ -2874,10 +2890,10 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan if (GetPlanInfo().Count()>0) { strSql = @"select p.Dosing_Id,p.Plan_Id,p.Plan_Serial,p.Recipe_ID,p.Recipe_Name,p.Version,p.Plan_Num,p.Real_Num,p.Shift_Id,p.Shift_Class,p.Plan_State,p.Plan_StateText,p.Plan_TotalWeight,p.Plan_TotalError, - r.Total_Weight,r.Total_Error,m.Material_ID as MaterialID,m.Material_name,m.Bin_Serial as Station,m.Bin_Name as StationName,w.Set_Weight,w.Set_Error,p.IsRetransmission,p.Retransmission_Num,p.IsPrenatalTest + r.Total_Weight,r.Total_Error,m.Material_ID as MaterialID,m.Material_name,m.Bin_Serial as Station,m.Bin_Name as StationName,w.Set_Weight,w.Set_Error,p.IsRetransmission,p.Retransmission_Num,p.IsPrenatalTest,ISNULL(p.FlagNum,0) as FlagNum from xl_plan p left join xl_recipe r on p.Recipe_ID=r.ID left join xl_weigh w on r.ID=w.Recipe_ID left join (select b.Bin_Serial,b.Bin_Name,b.Bin_Code,b.Material_ID,m.Material_name from Pmt_Bin b left join xl_material m on m.ID=b.Material_ID) m on w.Bin_Serial=m.Bin_Serial - where p.Plan_State=3 and w.Station is not null ORDER BY p.Plan_Serial"; + where p.Plan_State=3 and w.Station is not null "; //dbHelper.CommandText = strSql; //dbHelper.ClearParameter(); //dbHelper.AddParameter("@Plan_Serial", serial); @@ -2888,10 +2904,10 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan { strSql = @"select p.Dosing_Id,p.Plan_Id,p.Plan_Serial,p.Recipe_ID,p.Recipe_Name,p.Version,p.Plan_Num,p.Real_Num,p.Shift_Id,p.Shift_Class,p.Plan_State,p.Plan_StateText,p.Plan_TotalWeight,p.Plan_TotalError, - r.Total_Weight,r.Total_Error,m.Material_ID as MaterialID,m.Material_name,m.Bin_Serial as Station,m.Bin_Name as StationName,w.Set_Weight,w.Set_Error,p.IsRetransmission,p.Retransmission_Num,p.IsPrenatalTest + r.Total_Weight,r.Total_Error,m.Material_ID as MaterialID,m.Material_name,m.Bin_Serial as Station,m.Bin_Name as StationName,w.Set_Weight,w.Set_Error,p.IsRetransmission,p.Retransmission_Num,p.IsPrenatalTest,ISNULL(p.FlagNum,0) as FlagNum from (select * from xl_plan where Plan_State=7 and Start_Date=(select Max(Start_Date) from xl_plan where Plan_State=7) ) p left join xl_recipe r on p.Recipe_ID=r.ID left join xl_weigh w on r.ID=w.Recipe_ID left join (select b.Bin_Serial,b.Bin_Name,b.Bin_Code,b.Material_ID,m.Material_name from Pmt_Bin b left join xl_material m on m.ID=b.Material_ID) m on w.Bin_Serial=m.Bin_Serial - where w.Station is not null ORDER BY p.Plan_Serial"; + where w.Station is not null "; } //dbHelper.CommandText = strSql; //dbHelper.ClearParameter(); @@ -2899,7 +2915,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan IFreeSql fsql = FreeHelper.Instance; var list = fsql.Select() .WithSql(strSql) - .Where(d => d.Plan_Serial.Equals(serial)) + .Where(d => d.Plan_Serial.Equals(serial)).OrderBy(d => d.Station) .ToList("*"); return list; //DataTable table = dbHelper.ToDataTable(); @@ -3398,7 +3414,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan /// 计划号 /// 完成数量 /// - public static bool UpdateCheckPlanCompletedQuantity(string planId,int tcheckBatch,DateTime endTime, double totalWeight) + public static bool UpdateCheckPlanCompletedQuantity(Xl_DowLoadPlan dp,int tcheckBatch,int state,DateTime endTime, double totalWeight) { try { @@ -3409,12 +3425,15 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan } dbHelper.ClearParameter(); dbHelper.CommandType = CommandType.Text; - string strSql = "update xl_plan set Real_Num = @Real_Num,Plan_TotalWeight=@Plan_TotalWeight,End_Date=@End_Date where Plan_Id = @Plan_Id"; + string strSql = "update xl_plan set Real_Num = @Real_Num,Plan_State=@PlanState,Plan_StateText=@Plan_StateText,Plan_TotalWeight=@Plan_TotalWeight,End_Date=@End_Date where Plan_Id = @Plan_Id"; dbHelper.CommandText = strSql; dbHelper.AddParameter("@Real_Num", tcheckBatch); - dbHelper.AddParameter("@Plan_Id", planId); + dbHelper.AddParameter("@Plan_Id", dp.Plan_Id); dbHelper.AddParameter("@Plan_TotalWeight", totalWeight); + dbHelper.AddParameter("@PlanState", state); + dbHelper.AddParameter("@Plan_StateText", StateToShow(state)); dbHelper.AddParameter("@End_Date", endTime.ToString("yyyy-MM-dd HH:mm:ss")); + dbHelper.ExecuteNonQuery(); return true; } diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/RefreshAction.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/RefreshAction.cs index bfca894..94993ff 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/RefreshAction.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/RefreshAction.cs @@ -148,7 +148,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan //DataTable table = PlanHelper.GetPlanData(); IFreeSql fsql = FreeHelper.Instance; string sql = @"SELECT Plan_Serial,Recipe_ID,Recipe_Name,Equip_Code,Version,Plan_Id,Plan_Num,Real_Num,Plan_State,Plan_StateText,Start_Date,End_Date,Plan_Date,IsPrenatalTest FROM xl_plan - where IsPrenatalTest=0 or IsPrenatalTest IS NULL ORDER BY Plan_State,left(Plan_Id,8),Plan_Serial"; + where IsPrenatalTest=0 or IsPrenatalTest IS NULL "; DataTable table = fsql.Select().WithSql(sql).ToDataTable("*"); lock (String.Empty) diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/ReloadAction.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/ReloadAction.cs index 1520add..805062a 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/ReloadAction.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Product/XlPlan/ReloadAction.cs @@ -108,7 +108,8 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan //下传计划给PLC // int planNum = Convert.ToInt32(clientGridView.SelectedRows[0].Cells["Plan_Num"].Value as string); - List materialList = XlPlan.PlanHelper.GetXlPlan2(selectedPlanId); + + List materialList = XlPlan.PlanHelper.GetXlPlan2(selectedPlanId,0); bool IsSucess = PlcPlanHelper.ManualXlPlanToPlc(materialList); if (IsSucess) { diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/ReportHelper.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/ReportHelper.cs index c849ec6..efaf32a 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/ReportHelper.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/ReportHelper.cs @@ -403,7 +403,7 @@ namespace Mesnac.Action.ChemicalWeighing.Report dbHelper.AddParameter("@Recipe_Code", lrPlan.Recipe_Code); //配方编码 dbHelper.AddParameter("@Recipe_Name", lrPlan.Recipe_Name); //配方别名 dbHelper.AddParameter("@Version", lrPlan.Version); //配方版本号 - dbHelper.AddParameter("@Mixer_Line", lrPlan.Mixer_Line); //配方版本号 +/* dbHelper.AddParameter("@Mixer_Line", lrPlan.Mixer_Line);*/ //配方版本号 dbHelper.AddParameter("@Recipe_Type", lrPlan.Recipe_Type); //配方类型 dbHelper.AddParameter("@Shift_Id", lrPlan.Shift_Id); //班次ID dbHelper.AddParameter("@Shift_Class", 0); //班组ID diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/XlDbHelper.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/XlDbHelper.cs index a24e138..c94fd13 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/XlDbHelper.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/Report/XlDbHelper.cs @@ -1,5 +1,7 @@ -using Mesnac.Action.ChemicalWeighing.DBHelper; +using DevExpress.Charts.Native; +using Mesnac.Action.ChemicalWeighing.DBHelper; using Mesnac.Action.ChemicalWeighing.Entity; +using Mesnac.Action.ChemicalWeighing.Entity.PptPlan; using Mesnac.Codd.Session; using Steema.TeeChart.Functions; using System; @@ -58,7 +60,7 @@ namespace Mesnac.Action.ChemicalWeighing.Report /// /// 计划号 /// 返回符合条件List - public static LR_plan GetLrPlan(string planID, int realNum) + public static LR_plan GetLrPlan(string planID, int realNum,int flagNum) { LR_plan entity=null; @@ -68,11 +70,12 @@ namespace Mesnac.Action.ChemicalWeighing.Report throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError); } dbHelper.CommandType = CommandType.Text; - string strSql = "SELECT top 1 * FROM LR_plan where Plan_Id = @Plan_Id and Real_Num=@Real_Num"; + string strSql = "SELECT top 1 * FROM LR_plan where Plan_Id = @Plan_Id and Real_Num=@Real_Num and FlagNum=@flagNum"; dbHelper.CommandText = strSql; dbHelper.ClearParameter(); dbHelper.AddParameter("@Plan_Id", planID); dbHelper.AddParameter("@Real_Num", realNum); + dbHelper.AddParameter("@flagNum", flagNum); DataTable table = dbHelper.ToDataTable(); if (table != null && table.Rows.Count > 0) { @@ -488,24 +491,75 @@ namespace Mesnac.Action.ChemicalWeighing.Report } #endregion - public static bool UpdatePlanDetail(LR_plan lrPlan, LR_weigh lrWeigh, Hw_BinAlarm alarm) + public static bool UpdatePlanDetail(Xl_DowLoadPlan item,LR_plan lrPlan, LR_weigh lrWeigh, Hw_BinAlarm alarm,int key ) { try { IFreeSql fsql = FreeHelper.Instance; - fsql.Transaction(() => { - - var affrows = fsql.Insert(lrPlan).ExecuteAffrows(); - //判断是否插入成功 - if (affrows < 1) - throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出 - affrows = fsql.Insert(lrWeigh).ExecuteAffrows(); - if (affrows < 1) - throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出 - affrows = fsql.Insert(alarm).ExecuteAffrows(); - if (affrows < 1) - throw new Exception("物料出库存盘数据失败!");//抛出异常,回滚事务,事务退出 - }); + if (item.IsPrenatalTest==1) + { + if (key == 1) + { + fsql.Transaction(() => + { + var affrows = fsql.Insert(lrPlan).ExecuteAffrows(); + //判断是否插入成功 + if (affrows < 1) + throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出 + affrows = fsql.Insert(lrWeigh).ExecuteAffrows(); + if (affrows < 1) + throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出 + }); + } + else + { + if (lrPlan == null) + { + fsql.Transaction(() => + { + var affrows = fsql.Insert(lrPlan).ExecuteAffrows(); + //判断是否插入成功 + if (affrows < 1) + throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出 + affrows = fsql.Insert(lrWeigh).ExecuteAffrows(); + if (affrows < 1) + throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出 + }); + } + } + } + else + { + if (lrPlan == null) + { + fsql.Transaction(() => { + + var affrows = fsql.Insert(lrPlan).ExecuteAffrows(); + //判断是否插入成功 + if (affrows < 1) + throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出 + affrows = fsql.Insert(lrWeigh).ExecuteAffrows(); + if (affrows < 1) + throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出 + affrows = fsql.Insert(alarm).ExecuteAffrows(); + if (affrows < 1) + throw new Exception("物料出库存盘数据失败!");//抛出异常,回滚事务,事务退出 + }); + }else + { + fsql.Transaction(() => { + var affrows = fsql.Insert(lrWeigh).ExecuteAffrows(); + if (affrows < 1) + throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出 + affrows = fsql.Insert(alarm).ExecuteAffrows(); + if (affrows < 1) + throw new Exception("物料出库存盘数据失败!");//抛出异常,回滚事务,事务退出 + }); + + } + + } + return true; } catch (Exception ex) diff --git a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/XlPlcHelper/PlcPlanHelper.cs b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/XlPlcHelper/PlcPlanHelper.cs index f61db3f..4ec2cdf 100644 --- a/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/XlPlcHelper/PlcPlanHelper.cs +++ b/Actions/ChemicalWeighing/Mesnac.Action.ChemicalWeighing/XlPlcHelper/PlcPlanHelper.cs @@ -3,13 +3,15 @@ using Mesnac.Action.ChemicalWeighing.Entity; using Mesnac.Action.ChemicalWeighing.Entity.PptPlan; using Mesnac.Action.ChemicalWeighing.Product.XlPlan; using Mesnac.Action.ChemicalWeighing.Report; +using Steema.TeeChart.Functions; using System; using System.Collections.Generic; using System.Linq; +using System.Security.Claims; namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper { - public class PlcPlanHelper + public class PlcPlanHelper { public static object sender = null; public static event EventHandler AutoDownloadPlan; @@ -24,9 +26,9 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper public static bool AutoDownloadPlanData() { bool result = true; - string planNo ;//计划号 - int batch=0; - + string planNo;//计划号 + int batch = 0; + #region 获取当前计划号,判断当前计划状态 //读取配方编码获取配方物料所在的工位,根据工位查询状态 //当PLC将状态位置"1"时计划完成 @@ -37,7 +39,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper planNo = BasePlcHelper.Instance.plt_Set_PlanNo.NowValue.ToString();//执行序号 batch = BasePlcHelper.Instance.plt_Batch.NowValue.ToInt();//计划执行册数 - + bool IsExec = Product.XlPlan.PlanHelper.GetXlPlanState(planNo, batch);//检查当前任务是否还处于执行中 if (!IsExec) return true; @@ -120,7 +122,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper double total = 0; decimal set_station_weight = 0; decimal set_station_error = 0; - + try { planId = item.Plan_Id; @@ -129,9 +131,9 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper total = item.Total_Weight; //setWeight = item.Station_SetWeight; //setError = item.Station_SetError; - set_station_weight = item.Set_Weight*100; + set_station_weight = item.Set_Weight * 100; set_station_error = item.Set_Error * 100; - + if (i == 0) { //BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_PlanNo, new object[] { item.Plan_Id }); //计划号 @@ -143,142 +145,142 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper switch (item.Station.ToString()) { case "1": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station1_Weight1, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station1_Error1, new object[] { set_station_error }); break; case "2": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station1_Weight2, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station1_Error2, new object[] { set_station_error }); break; case "3": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station2_Weight3, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station2_Error3, new object[] { set_station_error }); break; case "4": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station2_Weight4, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station2_Error4, new object[] { set_station_error }); break; case "5": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station3_Weight5, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station3_Error5, new object[] { set_station_error }); break; case "6": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station3_Weight6, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station3_Error6, new object[] { set_station_error }); break; case "7": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station4_Weight7, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station4_Error7, new object[] { set_station_error }); break; case "8": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station4_Weight8, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station4_Error8, new object[] { set_station_error }); break; case "9": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station5_Weight9, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station5_Error9, new object[] { set_station_error }); break; case "10": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station5_Weight10, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station5_Error10, new object[] { set_station_error }); break; case "11": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station6_Weight11, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station6_Error11, new object[] { set_station_error }); break; case "12": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station6_Weight12, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station6_Error12, new object[] { set_station_error }); break; case "13": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station7_Weight13, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station7_Error13, new object[] { set_station_error }); break; case "14": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station7_Weight14, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station7_Error14, new object[] { set_station_error }); break; case "15": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station8_Weight15, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station8_Error15, new object[] { set_station_error }); break; case "16": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station8_Weight16, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station8_Error16, new object[] { set_station_error }); break; case "17": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station9_Weight17, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station9_Error17, new object[] { set_station_error }); break; case "18": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station9_Weight18, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station9_Error18, new object[] { set_station_error }); break; case "19": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station10_Weight19, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station10_Error19, new object[] { set_station_error }); break; case "20": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station10_Weight20, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station10_Error20, new object[] { set_station_error }); break; case "21": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station11_Weight21, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station11_Error21, new object[] { set_station_error }); break; case "22": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station11_Weight22, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station11_Error22, new object[] { set_station_error }); break; case "23": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station12_Weight23, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station12_Error23, new object[] { set_station_error }); break; case "24": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station12_Weight24, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station12_Error24, new object[] { set_station_error }); break; case "25": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station13_Weight25, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station13_Error25, new object[] { set_station_error }); break; case "26": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station13_Weight26, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station13_Error26, new object[] { set_station_error }); break; case "27": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station14_Weight27, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station14_Error27, new object[] { set_station_error }); break; case "28": - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station14_Weight28, new object[] { set_station_weight }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station14_Error28, new object[] { set_station_error }); break; @@ -323,10 +325,10 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper try { planId = item.Plan_Id; - if (item.Station==0) continue; + if (item.Station == 0) continue; - set_station_weight =Convert.ToInt32(item.Set_Weight * 100); - set_station_error = Convert.ToInt32(item.Set_Error* 100); + set_station_weight = Convert.ToInt32(item.Set_Weight * 100); + set_station_error = Convert.ToInt32(item.Set_Error * 100); if (!string.IsNullOrEmpty(item.Plan_Id)) { @@ -335,7 +337,15 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper //BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_RecipeName, new object[] { item.Recipe_Name }); //配方名称 BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Batch, new object[] { item.Plan_Num });//设定执行数量 BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Plan_Serial, new object[] { item.Plan_Serial }); //计划号 - BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_plc_Spare7, new object[] { item.IsPrenatalTest });//是否产前检查表标识 + if (item.IsPrenatalTest == 1) + { + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_plc_Spare7, new object[] { 2 });//产前检查表标识 + } + else + { + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_plc_Spare7, new object[] { 0 }); + } + } switch (item.Station) { @@ -346,7 +356,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper break; case 2: BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station1_Weight2, new object[] { set_station_weight }); - BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station1_Error2, new object[] { set_station_error }); + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Station1_Error2, new object[] { set_station_error }); j++; break; case 3: @@ -516,10 +526,10 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper ICSharpCode.Core.LoggingService.Debug(String.Format("[{0}]计划信息下传失败...", item.Plan_Id)); } } - + BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_plc_Start, new object[] { 1 });//设定启动信号 - + return true; } catch (Exception ex) @@ -571,8 +581,8 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper { int plt_Set_Plan_Serial = BasePlcHelper.Instance.plt_Set_Plan_Serial.NowValue.ToInt();//执行序号 Plan_Serial List materialList = PlanHelper.GetExecPlan(plt_Set_Plan_Serial);//正在执行的任务 - if (materialList == null|| materialList.Count==0) { return ; } - + if (materialList == null || materialList.Count == 0) { return; } + materialList.OrderBy(d => d.Station); foreach (var item in materialList) { switch (item.Station) @@ -581,7 +591,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper if (BasePlcHelper.Instance.plt_Read11_PlcState.NowValue.ToInt() == 1)//1工位A { int batch = BasePlcHelper.Instance.plt_Station1_Batch.NowValue.ToInt();//工位批次 - decimal real_Weight =Convert.ToDecimal(BasePlcHelper.Instance.plt_Station1_Weight.NowValue.ToInt()) / 100;//实际重量 + decimal real_Weight = Convert.ToDecimal(BasePlcHelper.Instance.plt_Station1_Weight.NowValue.ToInt()) / 100;//实际重量 bool result = SaveToData(item, batch, real_Weight); @@ -596,7 +606,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper if (BasePlcHelper.Instance.plt_Read12_PlcState.NowValue.ToInt() == 1)//1工位B { int batch = BasePlcHelper.Instance.plt_Station1_Batch.NowValue.ToInt();//工位批次 - decimal weight =Convert.ToDecimal(BasePlcHelper.Instance.plt_Station1_Weight.NowValue.ToInt()) / 100;//实际重量 + decimal weight = Convert.ToDecimal(BasePlcHelper.Instance.plt_Station1_Weight.NowValue.ToInt()) / 100;//实际重量 bool result = SaveToData(item, batch, weight); if (result) @@ -710,7 +720,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper int batch = BasePlcHelper.Instance.plt_Station5_Batch.NowValue.ToInt();//工位批次 int i = BasePlcHelper.Instance.plt_Station5_Weight.NowValue.ToInt(); string i2 = BasePlcHelper.Instance.plt_Station5_Weight.NowValue.ToString(); - + decimal weight = Convert.ToDecimal(BasePlcHelper.Instance.plt_Station5_Weight.NowValue.ToInt()) / 100;//实际重量 bool result = SaveToData(item, batch, weight); @@ -739,7 +749,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper break; case 11: //if (BasePlcHelper.Instance.plt_Station6_WorkState.NowValue.ToInt() == 200) break;//称量中返回 - + if (BasePlcHelper.Instance.plt_Read61_PlcState.NowValue.ToInt() == 1)//6工位A { int batch = BasePlcHelper.Instance.plt_Station6_Batch.NowValue.ToInt();//工位批次 @@ -772,7 +782,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper break; case 13: //if (BasePlcHelper.Instance.plt_Station7_WorkState.NowValue.ToInt() == 100) break;//称量中返回 - // var t = BasePlcHelper.Instance.plt_Read71_PlcState.NowValue.ToString(); + // var t = BasePlcHelper.Instance.plt_Read71_PlcState.NowValue.ToString(); if (BasePlcHelper.Instance.plt_Read71_PlcState.NowValue.ToInt() == 1)//7工位A { int batch = BasePlcHelper.Instance.plt_Station7_Batch.NowValue.ToInt();//工位批次 @@ -852,7 +862,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper break; case 18: //if (BasePlcHelper.Instance.plt_Station9_WorkState.NowValue.ToInt() == 200) break;//称量中返回 - + if (BasePlcHelper.Instance.plt_Read92_PlcState.NowValue.ToInt() == 1)//9工位B { int batch = BasePlcHelper.Instance.plt_Station9_Batch.NowValue.ToInt();//工位批次 @@ -937,7 +947,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper if (BasePlcHelper.Instance.plt_Read121_PlcState.NowValue.ToInt() == 1)//12工位A { - // int batch = BasePlcHelper.Instance.plt_Station12_Batch.NowValue.ToInt();//工位批次 + // int batch = BasePlcHelper.Instance.plt_Station12_Batch.NowValue.ToInt();//工位批次 string b = BasePlcHelper.Instance.plt_Station11_Batch.NowValue.ToString();//工位批次 int batch = Convert.ToInt16(b); int batch2 = Convert.ToInt32(b); @@ -973,7 +983,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper if (BasePlcHelper.Instance.plt_Read131_PlcState.NowValue.ToInt() == 1)//13工位A { int batch = BasePlcHelper.Instance.plt_Station13_Batch.NowValue.ToInt();//工位批次 - + decimal weight = Convert.ToDecimal(BasePlcHelper.Instance.plt_Station13_Weight.NowValue.ToInt()) / 100;//实际重量 bool result = SaveToData(item, batch, weight); @@ -1021,7 +1031,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper if (BasePlcHelper.Instance.plt_Read142_PlcState.NowValue.ToInt() == 1)//14工位B { int batch = BasePlcHelper.Instance.plt_Station14_Batch.NowValue.ToInt();//工位批次 - decimal weight =Convert.ToDecimal(BasePlcHelper.Instance.plt_Station14_Weight.NowValue.ToInt()) / 100;//实际重量 + decimal weight = Convert.ToDecimal(BasePlcHelper.Instance.plt_Station14_Weight.NowValue.ToInt()) / 100;//实际重量 bool result = SaveToData(item, batch, weight); if (result) @@ -1031,7 +1041,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper } } break; - + default: break; } @@ -1040,16 +1050,16 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper //检量秤检查结束信息 Xl_DowLoadPlan down = materialList.FirstOrDefault(); if (down == null) return; - - if (down.IsPrenatalTest==1) + + if (down.IsPrenatalTest == 1) { if (BasePlcHelper.Instance.plt_Read1Jc.NowValue.ToInt() == 1) { double tcheckWeight = BasePlcHelper.Instance.plt_TCheck_Weight.NowValue.ToInt();//检量秤重量 int tcheckBatch = BasePlcHelper.Instance.plt_Batch.NowValue.ToInt();//当前执行的批次 - if (tcheckBatch ==1) + if (tcheckBatch == down.Plan_Num) { - PlanHelper.UpdateCheckPlanCompletedQuantity(down.Plan_Id, tcheckBatch,DateTime.Now, tcheckWeight); + PlanHelper.UpdateCheckPlanCompletedQuantity(down, tcheckBatch, 8, DateTime.Now, tcheckWeight); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Read1Jc, new object[] { 2 }); } } @@ -1104,11 +1114,11 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper // BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Read1Jc, new object[] { 6 }); // } //} - + } catch (Exception ex) { - + } } @@ -2383,7 +2393,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper } } - + #endregion @@ -2625,8 +2635,8 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper { try { - LR_plan lrPlan = XlDbHelper.GetLrPlan(item.Plan_Id, batch); - if (lrPlan.Plan_Id != null) + LR_plan lrPlan = XlDbHelper.GetLrPlan(item.Plan_Id, batch, item.FlagNum); + if (lrPlan != null) { decimal totalWeight = lrPlan.Total_Weight + real_Weight; decimal totalError = lrPlan.Total_Error + error; @@ -2658,7 +2668,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper alarm.MaterialName = item.Material_name; alarm.Weights = real_Weight; alarm.TypeName = "出库"; - bool result = XlDbHelper.UpdatePlanDetail(lrPlan, weigh, alarm); + bool result = XlDbHelper.UpdatePlanDetail(item, lrPlan, weigh, alarm, 0); if (result) { return true; @@ -2712,7 +2722,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper alarm.MaterialName = item.Material_name; alarm.Weights = real_Weight; alarm.TypeName = "出库"; - bool result = BinHelper.SaveDataToBDb(weigh, plan, binInfo, alarm); + bool result = BinHelper.SaveDataToBDb(item, weigh, plan, binInfo, alarm,1); if (result) { @@ -2737,60 +2747,92 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper /// /// /// - public static bool SaveCHeckData(Xl_DowLoadPlan item, int batch, decimal real_Weight,decimal error) + public static bool SaveCHeckData(Xl_DowLoadPlan item, int batch, decimal real_Weight, decimal error) { - //保存计划 - LR_plan plan = new LR_plan(); - plan.Plan_Id = item.Plan_Id; - plan.Plan_Serial = item.Plan_Serial; - plan.Recipe_ID = item.Recipe_ID; - plan.Recipe_Name = item.Recipe_Name; - plan.Version = item.Version; - plan.Plan_Num = item.Plan_Num; - plan.Real_Num = batch; - plan.Shift_Id = item.Shift_Id; - plan.Shift_Class = item.Shift_Class; - plan.Total_Weight = real_Weight; - plan.Total_Error = error; - plan.IsRetransmission = item.IsRetransmission; - plan.Retransmission_Num = item.Retransmission_Num; - - //保存物料 - LR_weigh weigh = new LR_weigh(); - weigh.Dosing_ID = batch.ToString(); - weigh.Plan_ID = item.Plan_Id; - weigh.Recipe_ID = item.Recipe_ID; - weigh.Bin_Serial = item.Station; - weigh.Material_ID = item.MaterialID; - weigh.Material_Name = item.Material_name; - weigh.Set_Weight = item.Set_Weight; - weigh.Set_Error = item.Set_Error; - weigh.Real_Weight = real_Weight; - weigh.Real_Error = error; - - //addPlan = XlDbHelper.LRAddPlan(plan);//报表主表 - //addWeigh = XlDbHelper.LRAddWeigh(weigh);//报表物料详细表 - //更新料仓数据 - var binInfo = BinHelper.GetFristBinInfo(item.Station); - binInfo.BinWeight = binInfo.BinWeight - real_Weight; - - Hw_BinAlarm alarm = new Hw_BinAlarm(); - alarm.BinId = binInfo.Bin_Serial; - alarm.BinName = binInfo.Bin_Name; - alarm.MaterialCode = binInfo.Material_ID; - alarm.MaterialName = item.Material_name; - alarm.Weights = real_Weight; - alarm.TypeName = "出库"; - bool result = BinHelper.SaveDataToBDb(weigh, plan, binInfo, alarm); - - if (result) + LR_plan lrPlan = XlDbHelper.GetLrPlan(item.Plan_Id, batch, item.FlagNum); + if (lrPlan != null) { - return true; + //保存物料 + LR_weigh weigh = new LR_weigh(); + weigh.Dosing_ID = batch.ToString(); + weigh.Plan_ID = item.Plan_Id; + weigh.Recipe_ID = item.Recipe_ID; + weigh.Bin_Serial = item.Station; + weigh.Material_ID = item.MaterialID; + weigh.Material_Name = item.Material_name; + weigh.Set_Weight = item.Set_Weight; + weigh.Set_Error = item.Set_Error; + weigh.Real_Weight = real_Weight; + weigh.Real_Error = error; + weigh.EndTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + //更新料仓数据 + var binInfo = BinHelper.GetFristBinInfo(item.Station); + binInfo.BinWeight = binInfo.BinWeight - real_Weight; + + Hw_BinAlarm alarm = new Hw_BinAlarm(); + alarm.BinId = binInfo.Bin_Serial; + alarm.BinName = binInfo.Bin_Name; + alarm.MaterialCode = binInfo.Material_ID; + alarm.MaterialName = item.Material_name; + alarm.Weights = real_Weight; + alarm.TypeName = "出库"; + + return BinHelper.SaveDataToBDb(item, weigh, lrPlan, binInfo, alarm,0); } else { - return false; + //保存计划 + LR_plan plan = new LR_plan(); + plan.Plan_Id = item.Plan_Id; + plan.Plan_Serial = item.Plan_Serial; + plan.Recipe_ID = item.Recipe_ID; + plan.Recipe_Name = item.Recipe_Name; + plan.Version = item.Version; + plan.Plan_Num = item.Plan_Num; + plan.Real_Num = batch; + plan.Shift_Id = item.Shift_Id; + plan.Shift_Class = item.Shift_Class; + plan.Total_Weight = real_Weight; + plan.Total_Error = error; + plan.IsRetransmission = item.IsRetransmission; + plan.Retransmission_Num = item.Retransmission_Num; + plan.FlagNum= item.FlagNum; + //保存物料 + LR_weigh weigh = new LR_weigh(); + weigh.Dosing_ID = batch.ToString(); + weigh.Plan_ID = item.Plan_Id; + weigh.Recipe_ID = item.Recipe_ID; + weigh.Bin_Serial = item.Station; + weigh.Material_ID = item.MaterialID; + weigh.Material_Name = item.Material_name; + weigh.Set_Weight = item.Set_Weight; + weigh.Set_Error = item.Set_Error; + weigh.Real_Weight = real_Weight; + weigh.Real_Error = error; + weigh.EndTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + //更新料仓数据 + var binInfo = BinHelper.GetFristBinInfo(item.Station); + binInfo.BinWeight = binInfo.BinWeight - real_Weight; + + Hw_BinAlarm alarm = new Hw_BinAlarm(); + alarm.BinId = binInfo.Bin_Serial; + alarm.BinName = binInfo.Bin_Name; + alarm.MaterialCode = binInfo.Material_ID; + alarm.MaterialName = item.Material_name; + alarm.Weights = real_Weight; + alarm.TypeName = "出库"; + bool result = BinHelper.SaveDataToBDb(item, weigh, plan, binInfo, alarm,1); + + if (result) + { + return true; + } + else + { + return false; + } } + } } } diff --git a/Main/MCEdit/Data/MCProject/nodeForm/PrenatalTest.xml b/Main/MCEdit/Data/MCProject/nodeForm/PrenatalTest.xml index ac013ed..d8f5ac1 100644 --- a/Main/MCEdit/Data/MCProject/nodeForm/PrenatalTest.xml +++ b/Main/MCEdit/Data/MCProject/nodeForm/PrenatalTest.xml @@ -31,7 +31,7 @@ Fill 0, 65 MCDataGridView3 - 1433, 846 + 1284, 636 37 @@ -59,7 +59,7 @@ 宋体, 14.25pt, style=Bold 0, 30 MCButton3 - 1433, 35 + 1284, 35 36 @@ -92,25 +92,25 @@ Top 0, 0 Panel1 - 1433, 30 + 1284, 30 - AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAACAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw== + AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAEAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw== - AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAACAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw== + AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAEAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw== - AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAACAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw== + AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAEAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw== - AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAACAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw== + AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAEAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw== False False False Control - 1449, 950 + 1300, 740 WindowsDefaultLocation 小料产前检测 Normal