feat - MES同步开发测试完毕 工位识别业务debug

master
SoulStar 2 months ago
parent b65c38f34f
commit e8e474719b

@ -173,9 +173,9 @@ namespace HighWayIot.Plc
{ {
switch (type) switch (type)
{ {
//case DataTypeEnum.Bool: case DataTypeEnum.Bool:
// result = MelsecInstance2.Write(address, Convert.ToBoolean(value)); result = MelsecInstance2.Write(address, Convert.ToBoolean(value));
// break; break;
//case DataTypeEnum.Byte: //case DataTypeEnum.Byte:
// result = Instance.Write(address, Convert.ToByte(value)); // result = Instance.Write(address, Convert.ToByte(value));
// break; // break;

@ -18,7 +18,7 @@ namespace HighWayIot.Plc.PlcHelper
{ {
Dictionary<int, bool> result = new Dictionary<int, bool>(); Dictionary<int, bool> result = new Dictionary<int, bool>();
OperateResult<byte[]> operateResult = PlcConnect.MelsecInstance1.Read("B991", 8); OperateResult<byte[]> operateResult = PlcConnect.MelsecInstance2.Read("B991", 8);
if (!operateResult.IsSuccess) if (!operateResult.IsSuccess)
{ {

@ -27,7 +27,7 @@ namespace HighWayIot.Plc.PlcHelper
point += (deviceNo - 1) * 32; point += (deviceNo - 1) * 32;
//选择是小车的哪个点位 //选择是小车的哪个点位
point += rgvStationNo; point += rgvStationNo - 1;
bool result = PlcConnect.PlcWrite2($"B{point.ToString("X")}", true, DataTypeEnum.Bool).IsSuccess; bool result = PlcConnect.PlcWrite2($"B{point.ToString("X")}", true, DataTypeEnum.Bool).IsSuccess;
@ -41,7 +41,7 @@ namespace HighWayIot.Plc.PlcHelper
{ {
bool[] result = new bool[17]; bool[] result = new bool[17];
OperateResult<byte[]> PlcResult = PlcConnect.MelsecInstance1.Read("B230", 2); OperateResult<byte[]> PlcResult = PlcConnect.MelsecInstance2.Read("B230", 2);
byte[] data = PlcResult.Content; byte[] data = PlcResult.Content;

@ -66,7 +66,7 @@ namespace HighWayIot.Repository.domain
/// 默认值: /// 默认值:
///</summary> ///</summary>
[SugarColumn(ColumnName = "tire_weight")] [SugarColumn(ColumnName = "tire_weight")]
public double? TireWeight { get; set; } public float? TireWeight { get; set; }
/// <summary> /// <summary>
/// 备 注:物料名称1基部胶 /// 备 注:物料名称1基部胶

@ -14,6 +14,9 @@ using Timer = System.Threading.Timer;
namespace HighWayIot.Winform.Business namespace HighWayIot.Winform.Business
{ {
/// <summary>
/// 排程信号业务类
/// </summary>
public class RecipeSendBusiness public class RecipeSendBusiness
{ {
Timer GetSchedulingTimer; Timer GetSchedulingTimer;
@ -30,7 +33,7 @@ namespace HighWayIot.Winform.Business
public RecipeSendBusiness() public RecipeSendBusiness()
{ {
GetSchedulingTimer = new Timer(new System.Threading.TimerCallback(ReadSignal), null, 0, 1000); //GetSchedulingTimer = new Timer(new System.Threading.TimerCallback(ReadSignal), null, 0, 1000);
} }
/// <summary> /// <summary>
@ -46,11 +49,6 @@ namespace HighWayIot.Winform.Business
return; return;
} }
if (a == null)
{
LogHelper.Instance.Error("排程信号读取失败");
}
foreach (var item in a) foreach (var item in a)
{ {
if (item.Value) if (item.Value)

@ -200,7 +200,7 @@ namespace HighWayIot.Winform.Business
try try
{ {
///写入对应的PLC信号 ///写入对应的PLC信号
//_workStationHelper.WriteStationSingal(int.Parse(workstationNo), int.Parse(deviceNo)); _workStationHelper.WriteStationSingal(int.Parse(workstationNo), int.Parse(deviceNo));
LogHelper.Instance.Info($"{workstationNo}工位, {deviceNo}号车"); LogHelper.Instance.Info($"{workstationNo}工位, {deviceNo}号车");
} }
catch (Exception ex) catch (Exception ex)

@ -7,6 +7,7 @@ using HighWayIot.Winform.Business;
using HighWayIot.Winform.MainForm; using HighWayIot.Winform.MainForm;
using HighWayIot.Winform.UserControlPages.RecipeConfigPages; using HighWayIot.Winform.UserControlPages.RecipeConfigPages;
using HighWayIot.Winform.UserControlPages.SysConfigPages; using HighWayIot.Winform.UserControlPages.SysConfigPages;
using HslCommunication.Profinet.Siemens.S7PlusHelper;
using Models; using Models;
using System; using System;
using System.Collections; using System.Collections;
@ -139,6 +140,68 @@ namespace HighWayIot.Winform.UserControlPages
#region 配方信息 #region 配方信息
/// <summary>
/// 所选配方内容更改事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void RecipeDataGridView_SelectionChanged(object sender, EventArgs e)
{
int a = RecipeDataGridView.CurrentRow.Index;
NowRecipeCode = RecipeDataGridView.Rows[a].Cells["RecipeCode"].Value.ToString();
SpecNoLabel.Text = RecipeDataGridView.Rows[a].Cells["RecipeSpecCode"].Value.ToString();
SpecNameLabel.Text = RecipeDataGridView.Rows[a].Cells["RecipeSpecName"].Value.ToString();
//初始化工位参数类
InitPositionEntities();
WeightLists = zxWeightService.GetWeightInfos(NowRecipeCode);
//WeightToDataSource();
WeightDataGridView.DataSource = null;
WeightDataGridView.DataSource = WeightLists;
//设置参数
var paraData = zxRecipeParaService.GetRecipeParaInfoByRecipeCode(NowRecipeCode);
int flag = GetSelectIndex();
var positionParaData = zxRecipePositionParaService.GetRecipePositionParaInfos(x => x.RecipeCode == NowRecipeCode);
//没有就全0
if (paraData.Count == 0)
{
SetPublicParaValue(new ZxRecipeParaEntity());
zxRecipeParaEntity = new ZxRecipeParaEntity();
}
//有就显示
else if (paraData.Count == 1)
{
SetPublicParaValue(paraData[0]);
zxRecipeParaEntity = paraData[0];
}
//有多条设为第一条
else
{
MessageBox.Show("存在多条未删除的相同公共配方字段信息!将设置为第一条。点击清除脏数据");
SetPublicParaValue(paraData[0]);
zxRecipeParaEntity = paraData[0];
}
//没有就全0
if (positionParaData.Count == 0)
{
SetPrivateParaValue(new ZxRecipePositionParaEntity());
}
else
{
foreach (var item in positionParaData)
{
ChangePositionEntities(item);
}
SetPrivateParaValue(zxRecipePositionParaEntity.Where(x => x.Position == flag).FirstOrDefault());
}
}
/// <summary> /// <summary>
/// 添加配方信息 /// 添加配方信息
/// </summary> /// </summary>
@ -459,68 +522,6 @@ namespace HighWayIot.Winform.UserControlPages
#endregion #endregion
/// <summary>
/// 所选配方内容更改事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void RecipeDataGridView_SelectionChanged(object sender, EventArgs e)
{
int a = RecipeDataGridView.CurrentRow.Index;
NowRecipeCode = RecipeDataGridView.Rows[a].Cells["RecipeCode"].Value.ToString();
SpecNoLabel.Text = RecipeDataGridView.Rows[a].Cells["RecipeSpecCode"].Value.ToString();
SpecNameLabel.Text = RecipeDataGridView.Rows[a].Cells["RecipeSpecName"].Value.ToString();
//初始化工位参数类
InitPositionEntities();
WeightLists = zxWeightService.GetWeightInfos(NowRecipeCode);
//WeightToDataSource();
WeightDataGridView.DataSource = null;
WeightDataGridView.DataSource = WeightLists;
//设置参数
var paraData = zxRecipeParaService.GetRecipeParaInfoByRecipeCode(NowRecipeCode);
int flag = GetSelectIndex();
var positionParaData = zxRecipePositionParaService.GetRecipePositionParaInfos(x => x.RecipeCode == NowRecipeCode);
//没有就全0
if (paraData.Count == 0)
{
SetPublicParaValue(new ZxRecipeParaEntity());
zxRecipeParaEntity = new ZxRecipeParaEntity();
}
//有就显示
else if (paraData.Count == 1)
{
SetPublicParaValue(paraData[0]);
zxRecipeParaEntity = paraData[0];
}
//有多条设为第一条
else
{
MessageBox.Show("存在多条未删除的相同公共配方字段信息!将设置为第一条。点击清除脏数据");
SetPublicParaValue(paraData[0]);
zxRecipeParaEntity = paraData[0];
}
//没有就全0
if (positionParaData.Count == 0)
{
SetPrivateParaValue(new ZxRecipePositionParaEntity());
}
else
{
foreach (var item in positionParaData)
{
ChangePositionEntities(item);
}
SetPrivateParaValue(zxRecipePositionParaEntity.Where(x => x.Position == flag).FirstOrDefault());
}
}
#region 参数设置 #region 参数设置
/// <summary> /// <summary>
@ -1012,38 +1013,47 @@ namespace HighWayIot.Winform.UserControlPages
#endregion #endregion
#region 配方数据同步
/// <summary> /// <summary>
/// 同步数据按钮 /// 同步数据按钮
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void SyncDataButton_Click(object sender, EventArgs e) private void SyncDataButton_Click(object sender, EventArgs e)
{
if (zxMesPlanTransferService.GetFlagState())
{
MessageBox.Show("正在同步数据,请稍后");
return;
}
if (zxMesPlanTransferService.SetFlagTrue())
{
Task.Run(() => {
while (true)
{
if (!zxMesPlanTransferService.GetFlagState())
{ {
RecipeDataSync(zxMesPlanTransferService.GetRecipeInfos(x => x.Uuid != "syncsignal")); RecipeDataSync(zxMesPlanTransferService.GetRecipeInfos(x => x.Uuid != "syncsignal"));
} //if (zxMesPlanTransferService.GetFlagState())
Task.Delay(1000); //{
} // MessageBox.Show("正在同步数据,请稍后");
}); // return;
} //}
//if (zxMesPlanTransferService.SetFlagTrue())
//{
// Task.Run(() =>
// {
// while (true)
// {
// if (!zxMesPlanTransferService.GetFlagState())
// {
// RecipeDataSync(zxMesPlanTransferService.GetRecipeInfos(x => x.Uuid != "syncsignal"));
// MessageBox.Show("同步完成");
// return;
// }
// Task.Delay(1000);
// }
// });
//}
} }
/// <summary> /// <summary>
/// 配方数据同步类 /// 配方数据同步方法
/// </summary> /// </summary>
private void RecipeDataSync(List<ZxMesPlanTransferEntity> sourceEntity) private void RecipeDataSync(List<ZxMesPlanTransferEntity> sourceEntity)
{ {
ZxOpenMixMaterialService zxOpenMixMaterialService = new ZxOpenMixMaterialService();
var openMixConfig = zxOpenMixMaterialService.GetInfos();
foreach (var newRecipes in sourceEntity) foreach (var newRecipes in sourceEntity)
{ {
//////////////////////////////更新配方表///////////////////////////////// //////////////////////////////更新配方表/////////////////////////////////
@ -1082,7 +1092,7 @@ namespace HighWayIot.Winform.UserControlPages
var material2 = zxMaterialService.GetMaterialInfoByMaterialName(newRecipes.MaterialName2); var material2 = zxMaterialService.GetMaterialInfoByMaterialName(newRecipes.MaterialName2);
var material3 = zxMaterialService.GetMaterialInfoByMaterialName(newRecipes.MaterialName3); var material3 = zxMaterialService.GetMaterialInfoByMaterialName(newRecipes.MaterialName3);
//物料1 //物料1
if (string.IsNullOrEmpty(newRecipes.MaterialName1)) if (!string.IsNullOrEmpty(newRecipes.MaterialName1))
{ {
if (material1 != null) //有这个物料 if (material1 != null) //有这个物料
{ {
@ -1090,7 +1100,7 @@ namespace HighWayIot.Winform.UserControlPages
var weightInfo = zxWeightService.GetWeightInfos(recipeCode, material1.MaterialCode, "基部胶"); var weightInfo = zxWeightService.GetWeightInfos(recipeCode, material1.MaterialCode, "基部胶");
if (weightInfo == null) if (weightInfo == null)
{ {
zxWeightService.InsertWeightInfo(new ZxWeightEntity() bool a = zxWeightService.InsertWeightInfo(new ZxWeightEntity()
{ {
RecipeCode = recipeCode, RecipeCode = recipeCode,
MaterialCode = material1.MaterialCode, MaterialCode = material1.MaterialCode,
@ -1114,7 +1124,7 @@ namespace HighWayIot.Winform.UserControlPages
else //没这个物料 else //没这个物料
{ {
//先添加物料 //先添加物料
ZxMaterialEntity newMaterialEntity = new ZxMaterialEntity() material1 = new ZxMaterialEntity()
{ {
MaterialCode = DateTime.Now.ToString("yyyyMMddHHmmssffff"), MaterialCode = DateTime.Now.ToString("yyyyMMddHHmmssffff"),
MaterialName = newRecipes.MaterialName1, MaterialName = newRecipes.MaterialName1,
@ -1122,16 +1132,16 @@ namespace HighWayIot.Winform.UserControlPages
IsDeleted = false, IsDeleted = false,
IsUse = true IsUse = true
}; };
zxMaterialService.InsertMaterialInfo(newMaterialEntity); zxMaterialService.InsertMaterialInfo(material1);
//查询是否有这个配方这个物料的称量 有更改 没有添加 //查询是否有这个配方这个物料的称量 有更改 没有添加
var weightInfo = zxWeightService.GetWeightInfos(recipeCode, newMaterialEntity.MaterialCode, "基部胶"); var weightInfo = zxWeightService.GetWeightInfos(recipeCode, material1.MaterialCode, "基部胶");
if (weightInfo == null) //没有配方数据 if (weightInfo == null) //没有配方数据
{ {
zxWeightService.InsertWeightInfo(new ZxWeightEntity() zxWeightService.InsertWeightInfo(new ZxWeightEntity()
{ {
RecipeCode = recipeCode, RecipeCode = recipeCode,
MaterialCode = newMaterialEntity.MaterialCode, MaterialCode = material1.MaterialCode,
MaterialName = newMaterialEntity.MaterialName, MaterialName = material1.MaterialName,
MaterialType = "基部胶", MaterialType = "基部胶",
SetWidth = (decimal?)newRecipes.MaterialWidth1, SetWidth = (decimal?)newRecipes.MaterialWidth1,
SetWeight = (decimal?)newRecipes.MaterialWeight1, SetWeight = (decimal?)newRecipes.MaterialWeight1,
@ -1150,20 +1160,20 @@ namespace HighWayIot.Winform.UserControlPages
} }
} }
//物料2 //物料2
if (string.IsNullOrEmpty(newRecipes.MaterialName2)) if (!string.IsNullOrEmpty(newRecipes.MaterialName2))
{ {
if (material2 != null) //有这个物料 if (material2 != null) //有这个物料
{ {
//查询是否有这个配方这个物料的称量 有更改 没有添加 //查询是否有这个配方这个物料的称量 有更改 没有添加
var weightInfo = zxWeightService.GetWeightInfos(recipeCode, material2.MaterialCode, "基部胶"); var weightInfo = zxWeightService.GetWeightInfos(recipeCode, material2.MaterialCode, "缓冲胶");
if (weightInfo == null) if (weightInfo == null)
{ {
zxWeightService.InsertWeightInfo(new ZxWeightEntity() bool a = zxWeightService.InsertWeightInfo(new ZxWeightEntity()
{ {
RecipeCode = recipeCode, RecipeCode = recipeCode,
MaterialCode = material1.MaterialCode, MaterialCode = material1.MaterialCode,
MaterialName = material1.MaterialName, MaterialName = material1.MaterialName,
MaterialType = "基部胶", MaterialType = "缓冲胶",
SetWidth = (decimal?)newRecipes.MaterialWidth2, SetWidth = (decimal?)newRecipes.MaterialWidth2,
SetWeight = (decimal?)newRecipes.MaterialWeight2, SetWeight = (decimal?)newRecipes.MaterialWeight2,
SetLayer = newRecipes.MaterialLayers2, SetLayer = newRecipes.MaterialLayers2,
@ -1182,7 +1192,7 @@ namespace HighWayIot.Winform.UserControlPages
else //没这个物料 else //没这个物料
{ {
//先添加物料 //先添加物料
ZxMaterialEntity newMaterialEntity = new ZxMaterialEntity() material2 = new ZxMaterialEntity()
{ {
MaterialCode = DateTime.Now.ToString("yyyyMMddHHmmssffff"), MaterialCode = DateTime.Now.ToString("yyyyMMddHHmmssffff"),
MaterialName = newRecipes.MaterialName2, MaterialName = newRecipes.MaterialName2,
@ -1190,17 +1200,17 @@ namespace HighWayIot.Winform.UserControlPages
IsDeleted = false, IsDeleted = false,
IsUse = true IsUse = true
}; };
zxMaterialService.InsertMaterialInfo(newMaterialEntity); zxMaterialService.InsertMaterialInfo(material2);
//查询是否有这个配方这个物料的称量 有更改 没有添加 //查询是否有这个配方这个物料的称量 有更改 没有添加
var weightInfo = zxWeightService.GetWeightInfos(recipeCode, newMaterialEntity.MaterialCode, "基部胶"); var weightInfo = zxWeightService.GetWeightInfos(recipeCode, material2.MaterialCode, "缓冲胶");
if (weightInfo == null) //没有配方数据 if (weightInfo == null) //没有配方数据
{ {
zxWeightService.InsertWeightInfo(new ZxWeightEntity() zxWeightService.InsertWeightInfo(new ZxWeightEntity()
{ {
RecipeCode = recipeCode, RecipeCode = recipeCode,
MaterialCode = newMaterialEntity.MaterialCode, MaterialCode = material2.MaterialCode,
MaterialName = newMaterialEntity.MaterialName, MaterialName = material2.MaterialName,
MaterialType = "基部胶", MaterialType = "缓冲胶",
SetWidth = (decimal?)newRecipes.MaterialWidth2, SetWidth = (decimal?)newRecipes.MaterialWidth2,
SetWeight = (decimal?)newRecipes.MaterialWeight2, SetWeight = (decimal?)newRecipes.MaterialWeight2,
SetLayer = newRecipes.MaterialLayers2, SetLayer = newRecipes.MaterialLayers2,
@ -1219,20 +1229,20 @@ namespace HighWayIot.Winform.UserControlPages
} }
//物料3 //物料3
if (string.IsNullOrEmpty(newRecipes.MaterialName3)) if (!string.IsNullOrEmpty(newRecipes.MaterialName3))
{ {
if (material3 != null) //有这个物料 if (material3 != null) //有这个物料
{ {
//查询是否有这个配方这个物料的称量 有更改 没有添加 //查询是否有这个配方这个物料的称量 有更改 没有添加
var weightInfo = zxWeightService.GetWeightInfos(recipeCode, material3.MaterialCode, "基部胶"); var weightInfo = zxWeightService.GetWeightInfos(recipeCode, material3.MaterialCode, "胎面胶");
if (weightInfo == null) if (weightInfo == null)
{ {
zxWeightService.InsertWeightInfo(new ZxWeightEntity() bool a = zxWeightService.InsertWeightInfo(new ZxWeightEntity()
{ {
RecipeCode = recipeCode, RecipeCode = recipeCode,
MaterialCode = material3.MaterialCode, MaterialCode = material3.MaterialCode,
MaterialName = material3.MaterialName, MaterialName = material3.MaterialName,
MaterialType = "基部胶", MaterialType = "胎面胶",
SetWidth = (decimal?)newRecipes.MaterialWidth3, SetWidth = (decimal?)newRecipes.MaterialWidth3,
SetWeight = (decimal?)newRecipes.MaterialWeight3, SetWeight = (decimal?)newRecipes.MaterialWeight3,
SetLayer = newRecipes.MaterialLayers3, SetLayer = newRecipes.MaterialLayers3,
@ -1251,7 +1261,7 @@ namespace HighWayIot.Winform.UserControlPages
else //没这个物料 else //没这个物料
{ {
//先添加物料 //先添加物料
ZxMaterialEntity newMaterialEntity = new ZxMaterialEntity() material3 = new ZxMaterialEntity()
{ {
MaterialCode = DateTime.Now.ToString("yyyyMMddHHmmssffff"), MaterialCode = DateTime.Now.ToString("yyyyMMddHHmmssffff"),
MaterialName = newRecipes.MaterialName3, MaterialName = newRecipes.MaterialName3,
@ -1259,17 +1269,17 @@ namespace HighWayIot.Winform.UserControlPages
IsDeleted = false, IsDeleted = false,
IsUse = true IsUse = true
}; };
zxMaterialService.InsertMaterialInfo(newMaterialEntity); zxMaterialService.InsertMaterialInfo(material3);
//查询是否有这个配方这个物料的称量 有更改 没有添加 //查询是否有这个配方这个物料的称量 有更改 没有添加
var weightInfo = zxWeightService.GetWeightInfos(recipeCode, newMaterialEntity.MaterialCode, "基部胶"); var weightInfo = zxWeightService.GetWeightInfos(recipeCode, material3.MaterialCode, "胎面胶");
if (weightInfo == null) //没有配方数据 if (weightInfo == null) //没有配方数据
{ {
zxWeightService.InsertWeightInfo(new ZxWeightEntity() zxWeightService.InsertWeightInfo(new ZxWeightEntity()
{ {
RecipeCode = recipeCode, RecipeCode = recipeCode,
MaterialCode = newMaterialEntity.MaterialCode, MaterialCode = material3.MaterialCode,
MaterialName = newMaterialEntity.MaterialName, MaterialName = material3.MaterialName,
MaterialType = "基部胶", MaterialType = "胎面胶",
SetWidth = (decimal?)newRecipes.MaterialWidth3, SetWidth = (decimal?)newRecipes.MaterialWidth3,
SetWeight = (decimal?)newRecipes.MaterialWeight3, SetWeight = (decimal?)newRecipes.MaterialWeight3,
SetLayer = newRecipes.MaterialLayers3, SetLayer = newRecipes.MaterialLayers3,
@ -1286,7 +1296,157 @@ namespace HighWayIot.Winform.UserControlPages
} }
} }
} }
/////////////////////////////////////更新配方参数//////////////////////////////////////
ZxRecipeParaEntity recipePara = zxRecipeParaService.GetRecipeParaInfoByRecipeCode(recipeCode).FirstOrDefault();
if (recipePara == null) //不存早
{
recipePara = new ZxRecipeParaEntity()
{
SpecName = newRecipes.SpecName,
SpecCode = newRecipes.SpecCode,
RimInch = newRecipes.RimInch,
LightWidth = newRecipes.FixRubWidth,
TireWeight = newRecipes.TireWeight,
RecipeCode = recipeCode
};
foreach (var config in openMixConfig)
{
if (config.MaterialName == material1.MaterialName
|| config.MaterialName == material2.MaterialName
|| config.MaterialName == material3.MaterialName)
{
try
{
var prop = recipePara.GetType().GetProperty($"S{config.StationNo + 1}");
prop.SetValue(recipePara, true);
}
catch
{
return;
}
}
}
zxRecipeParaService.InsertRecipeParaInfo(recipePara);
}
else //存在
{
recipePara.SpecName = newRecipes.SpecName;
recipePara.SpecCode = newRecipes.SpecCode;
recipePara.RimInch = newRecipes.RimInch;
recipePara.LightWidth = newRecipes.FixRubWidth;
recipePara.TireWeight = newRecipes.TireWeight;
foreach (var config in openMixConfig)
{
if (config.MaterialName == material1.MaterialName
|| config.MaterialName == material2.MaterialName
|| config.MaterialName == material3.MaterialName)
{
try
{
var prop = recipePara.GetType().GetProperty($"S{config.StationNo + 1}");
prop.SetValue(recipePara, true);
}
catch
{
return;
}
}
}
zxRecipeParaService.UpdateRecipeParaInfo(recipePara);
}
/////////////////////////////////////更新配方工位参数//////////////////////////////////////
List<ZxRecipePositionParaEntity> positionParaEntities = zxRecipePositionParaService.GetRecipePositionParaInfoByRecipeCode(recipeCode);
int position = 1;
for (int i = 0; i < 5; i++)
{
try
{
var prop = recipePara.GetType().GetProperty($"S{i + 2}");
object value = prop.GetValue(recipePara);
// 处理可空类型的null值情况
if (value == null)
{
continue;
}
bool positionValue;
positionValue = Convert.ToBoolean(value);
if(positionValue == true)
{
ZxRecipePositionParaEntity positionPara = positionParaEntities.Where(x => x.Position == (i + 1)).FirstOrDefault();
if (position == 1)
{
if (positionPara == null)//没工位参数
{
positionPara = new ZxRecipePositionParaEntity()
{
RecipeCode = recipeCode,
Position = i + 1,
E5 = newRecipes.MaterialLayers1
};
zxRecipePositionParaService.InsertRecipePositionParaInfo(positionPara);
}
else//有工位参数
{
positionPara.E5 = newRecipes.MaterialLayers1;
zxRecipePositionParaService.UpdateRecipePositionParaInfo(positionPara);
}
}
else if (position == 2)
{
if (positionPara == null)//没工位参数
{
positionPara = new ZxRecipePositionParaEntity()
{
RecipeCode = recipeCode,
Position = i + 1,
E5 = newRecipes.MaterialLayers2
};
zxRecipePositionParaService.InsertRecipePositionParaInfo(positionPara);
}
else//有工位参数
{
positionPara.E5 = newRecipes.MaterialLayers2;
zxRecipePositionParaService.UpdateRecipePositionParaInfo(positionPara);
}
}
else
{
if (positionPara == null)//没工位参数
{
positionPara = new ZxRecipePositionParaEntity()
{
RecipeCode = recipeCode,
Position = i + 1,
E5 = newRecipes.MaterialLayers3
};
zxRecipePositionParaService.InsertRecipePositionParaInfo(positionPara);
}
else//有工位参数
{
positionPara.E5 = newRecipes.MaterialLayers3;
zxRecipePositionParaService.UpdateRecipePositionParaInfo(positionPara);
}
}
position++;
}
}
catch
{
continue;
} }
} }
} }
} }
#endregion
}
}

Loading…
Cancel
Save