修改产前检测内容

main
liulb@mesnac.com 1 year ago
parent 4b839ee6b1
commit e386ed9dca

@ -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<LR_weigh>(lrWeigh).ExecuteAffrows();
//判断是否插入成功
if (affrows < 1)
throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Insert<LR_plan>(lrPlan).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!");//抛出异常,回滚事务,事务退出
affrows = fsql.Update<Pmt_Bin>(bin.Bin_Serial).Set(a => a.BinWeight, bin.BinWeight).ExecuteAffrows();
if (affrows < 1)
throw new Exception("更新仓库库存容量数据失败!");//抛出异常,回滚事务,事务退出
affrows = fsql.Insert<Hw_BinAlarm>(alarm).ExecuteAffrows();
if (affrows < 1)
throw new Exception("物料出库存盘数据失败!");//抛出异常,回滚事务,事务退出
});
if (key == 1)
{
fsql.Transaction(() =>
{
var affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
//判断是否插入成功
if (affrows < 1)
throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Insert<LR_plan>(lrPlan).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!");//抛出异常,回滚事务,事务退出
});
}
else
{
fsql.Transaction(() =>
{
var affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘物料详细数据失败!");//抛出异常,回滚事务,事务退出
});
}
}
else
{
if (key == 1)
{
fsql.Transaction(() =>
{
var affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
//判断是否插入成功
if (affrows < 1)
throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Insert<LR_plan>(lrPlan).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!");//抛出异常,回滚事务,事务退出
});
}
else
{
fsql.Transaction(() =>
{
var affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
//判断是否插入成功
if (affrows < 1)
throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Update<Pmt_Bin>(bin.Bin_Serial).Set(a => a.BinWeight, bin.BinWeight).ExecuteAffrows();
});
}
}
return true;
}
}

@ -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
/// 是否产前检查
/// </summary>
public int IsPrenatalTest { get; set; }
/// <summary>
/// 是否产前检查执行计数
/// </summary>
public int FlagNum { get; set; }
}
}

@ -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
/// </summary>
public int Retransmission_Num { get; set; }
public int IF_FLAG { get; set; }
public int FlagNum { get; set; }
}
}

@ -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; }

@ -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

@ -107,7 +107,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
return;
}
//获取选中计划、获取选中物料、//获取选中工位
List<Xl_DowLoadPlan> materialList = XlPlan.PlanHelper.GetXlPlan2(selectedPlanId);
List<Xl_DowLoadPlan> 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<PlcPlanHelper>.Debug(String.Format("[{0}]计划信息下传完毕...", selectedPlanId));
}
@ -130,11 +146,12 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
ICSharpCode.Core.LoggingService<PlcPlanHelper>.Debug(String.Format("[{0}]计划信息下传失败...", selectedPlanId));
}
IsFirstRun = false;
this.DoWork(isPrenatalTest);
}
#endregion
this.DoWork();
}
#endregion
@ -143,7 +160,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
/// <summary>
/// 刷新计划
/// </summary>
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
}

@ -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
/// </summary>
/// <param name="planID">要更新的计划号</param>
/// <param name="planState">新的计划状态</param>
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
/// <param name="recipeId"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static List<Xl_DowLoadPlan> GetXlPlan2(string planId)
public static List<Xl_DowLoadPlan> 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<Xl_DowLoadPlan>()
.WithSql(strSql)
.Where(d => d.Plan_Id.Equals(planId))
.ToList<Xl_DowLoadPlan>("*");
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<Xl_DowLoadPlan>()
.WithSql(strSql)
.Where(d => d.Plan_Serial.Equals(serial))
.Where(d => d.Plan_Serial.Equals(serial)).OrderBy(d => d.Station)
.ToList<Xl_DowLoadPlan>("*");
return list;
//DataTable table = dbHelper.ToDataTable();
@ -3398,7 +3414,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
/// <param name="planId">计划号</param>
/// <param name="quantity">完成数量</param>
/// <returns></returns>
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;
}

@ -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<object>().WithSql(sql).ToDataTable("*");
lock (String.Empty)

@ -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<Xl_DowLoadPlan> materialList = XlPlan.PlanHelper.GetXlPlan2(selectedPlanId);
List<Xl_DowLoadPlan> materialList = XlPlan.PlanHelper.GetXlPlan2(selectedPlanId,0);
bool IsSucess = PlcPlanHelper.ManualXlPlanToPlc(materialList);
if (IsSucess)
{

@ -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

@ -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
/// </summary>
/// <param name="planID">计划号</param>
/// <returns>返回符合条件List<LR_weigh></returns>
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<LR_plan>(lrPlan).ExecuteAffrows();
//判断是否插入成功
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出
affrows = fsql.Insert<Hw_BinAlarm>(alarm).ExecuteAffrows();
if (affrows < 1)
throw new Exception("物料出库存盘数据失败!");//抛出异常,回滚事务,事务退出
});
if (item.IsPrenatalTest==1)
{
if (key == 1)
{
fsql.Transaction(() =>
{
var affrows = fsql.Insert<LR_plan>(lrPlan).ExecuteAffrows();
//判断是否插入成功
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出
});
}
else
{
if (lrPlan == null)
{
fsql.Transaction(() =>
{
var affrows = fsql.Insert<LR_plan>(lrPlan).ExecuteAffrows();
//判断是否插入成功
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出
});
}
}
}
else
{
if (lrPlan == null)
{
fsql.Transaction(() => {
var affrows = fsql.Insert<LR_plan>(lrPlan).ExecuteAffrows();
//判断是否插入成功
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出
affrows = fsql.Insert<Hw_BinAlarm>(alarm).ExecuteAffrows();
if (affrows < 1)
throw new Exception("物料出库存盘数据失败!");//抛出异常,回滚事务,事务退出
});
}else
{
fsql.Transaction(() => {
var affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出
affrows = fsql.Insert<Hw_BinAlarm>(alarm).ExecuteAffrows();
if (affrows < 1)
throw new Exception("物料出库存盘数据失败!");//抛出异常,回滚事务,事务退出
});
}
}
return true;
}
catch (Exception ex)

@ -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<PlcPlanHelper>.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<Xl_DowLoadPlan> 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
/// <param name="real_Weight"></param>
/// <param name="error"></param>
/// <returns></returns>
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;
}
}
}
}
}

@ -31,7 +31,7 @@
<Property name="Dock">Fill</Property>
<Property name="Location">0, 65</Property>
<Property name="Name">MCDataGridView3</Property>
<Property name="Size">1433, 846</Property>
<Property name="Size">1284, 636</Property>
<Property name="TabIndex">37</Property>
</Object>
<Object type="Mesnac.Controls.Default.MCButton, Mesnac.Controls.Default, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" name="MCButton3" children="Controls">
@ -59,7 +59,7 @@
<Property name="Font">宋体, 14.25pt, style=Bold</Property>
<Property name="Location">0, 30</Property>
<Property name="Name">MCButton3</Property>
<Property name="Size">1433, 35</Property>
<Property name="Size">1284, 35</Property>
<Property name="TabIndex">36</Property>
</Object>
<Object type="System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="Panel1" children="Controls">
@ -92,25 +92,25 @@
<Property name="Dock">Top</Property>
<Property name="Location">0, 0</Property>
<Property name="Name">Panel1</Property>
<Property name="Size">1433, 30</Property>
<Property name="Size">1284, 30</Property>
</Object>
<Property name="LoadActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAACAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw==</Binary>
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAEAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw==</Binary>
</Property>
<Property name="ActivatedActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAACAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw==</Binary>
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAEAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw==</Binary>
</Property>
<Property name="ReloadActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAACAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw==</Binary>
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAEAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw==</Binary>
</Property>
<Property name="RefreshDataActionList">
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAACAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw==</Binary>
<Binary>AAEAAAD/////AQAAAAAAAAAMAgAAAEtNZXNuYWMuQ29udHJvbHMuQmFzZSwgVmVyc2lvbj0xLjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPW51bGwEAQAAAJMBU3lzdGVtLkNvbGxlY3Rpb25zLkdlbmVyaWMuTGlzdGAxW1tNZXNuYWMuQ29udHJvbHMuQmFzZS5EZXNpZ25BY3Rpb24sIE1lc25hYy5Db250cm9scy5CYXNlLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbF1dAwAAAAZfaXRlbXMFX3NpemUIX3ZlcnNpb24EAAAjTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uW10CAAAACAgJAwAAAAEAAAAEAAAABwMAAAAAAQAAAAQAAAAEIU1lc25hYy5Db250cm9scy5CYXNlLkRlc2lnbkFjdGlvbgIAAAAJBAAAAA0DBQQAAAAhTWVzbmFjLkNvbnRyb2xzLkJhc2UuRGVzaWduQWN0aW9uAwAAABU8R1VJRD5rX19CYWNraW5nRmllbGQVPE5hbWU+a19fQmFja2luZ0ZpZWxkFzxSZW1hcms+a19fQmFja2luZ0ZpZWxkAQEBAgAAAAYFAAAAIDhCRjI0NjhCREM2NzM3Nzg5NDUwQ0M2OTdGRjc2N0QxBgYAAAAM5Lqn5YmN5qOA5p+lBgcAAAAM5Lqn5YmN5qOA5p+lCw==</Binary>
</Property>
<Property name="BHaveAction">False</Property>
<Property name="MCPurview">False</Property>
<Property name="AllowOriginalSizeShow">False</Property>
<Property name="BackColor">Control</Property>
<Property name="Size">1449, 950</Property>
<Property name="Size">1300, 740</Property>
<Property name="StartPosition">WindowsDefaultLocation</Property>
<Property name="Text">小料产前检测</Property>
<Property name="WindowState">Normal</Property>

Loading…
Cancel
Save