using MaterialTraceability.Business;
using MaterialTraceability.Business.Impl;
using MaterialTraceability.Entity.DAO;
using MaterialTraceability.Entity.DTO;
using MaterialTraceability.SqlSugar;
using MaterialTraceability.SqlSugar.ServiceImpl;
using MaterialTraceability.WebService;
using MaterialTraceability.WebService.MiBatchCompleteSfcAndAdujustQtyServiceService;
using MaterialTraceability.WebService.MiFirstOperationForsfcServiceService;
using MaterialTraceability.WebService.MiSignOffSFCsServiceService;
using MaterialTraceability.WebService.Param;
using MaterialTraceabilityUI.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
namespace MaterialTraceabilityUI
{
///
/// UpMaterialRecord.xaml 的交互逻辑
///
public partial class TBAlarmRecord : UserControl
{
private IMesWebServices MesWebServices = new MesWebServicesImpl();
///
/// INIFile配置文件
///
private IniFileHelper inifile = new IniFileHelper(System.Environment.CurrentDirectory + "/MesConfig/App.InI");
private IBaseServices downRecordServices = new BaseServices();
private ProDownRecordDto downRecordInfo = new ProDownRecordDto();
private IBaseServices sysClientServices = new BaseServices();
private UpLoadBusiness upLoadBusiness = UpLoadBusiness.Instance;
private AppConfigDto appConfig = AppConfigDto.Instance;
public TBAlarmRecord()
{
InitializeComponent();
TBSignalReadBusiness.TBAlarmRecordRefreshEvent += refreshDataGrid;
this.beginTime.Text = DateTime.Now.ToLongDateString();
this.endTime.Text = DateTime.Now.AddDays(1).ToLongDateString();
//List isAlarm = new List() { "正在生产", "异常下料", "" };
//this.productionStatusComboBox.ItemsSource = isAlarm;
}
///
/// 刷新异常处理流程列表信息
///
public void refreshDataGrid()
{
Action action;
action = () =>
{
Expression> exp = s1 => true;
Expression> order = x => x.beginTime;
List proUpRecords = downRecordServices.Query(exp, order, false).Result;
List proDownRecordDtos = new List();
proUpRecords.ForEach(x =>
{
proDownRecordDtos.Add(new ProDownRecordDto()
{
Id = proUpRecords.IndexOf(x).ToString(),
MachineId = x.MachineId,
PositionId = x.PositionId,
Rfid = x.Rfid,
Sfc = x.Sfc,
eaValue = x.eaValue,
IsProduction = x.IsProduction,
ProductionFlag = productionStatus((int)x.IsProduction),
isFinish = x.isFinish,
RecordTime = x.RecordTime,
beginTime = x.beginTime,
endTime = x.endTime
});
});
this.AlarmInfoDataGrid.ItemsSource = proDownRecordDtos;
};
this.AlarmInfoDataGrid.Dispatcher.BeginInvoke(action);
}
private void Seach_Click(object sender, RoutedEventArgs e)
{
Refresh();
}
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
this.membraneLength.Text = GetSysConfigList("SysConfig").Where(x => x.paramKey == "membraneLength").FirstOrDefault().paramValue;
this.volumesNumber.Text = GetSysConfigList("SysConfig").Where(x => x.paramKey == "volumesNumber").FirstOrDefault().paramValue;
Refresh();
}
public void Refresh()
{
this.membraneLength.Text = GetSysConfigList("SysConfig").Where(x => x.paramKey == "membraneLength").FirstOrDefault().paramValue;
this.volumesNumber.Text = GetSysConfigList("SysConfig").Where(x => x.paramKey == "volumesNumber").FirstOrDefault().paramValue;
Expression> exp = s1 => true;
//exp = exp.And(x => x.IsProduction != 2);
if (this.beginTime.Text.ToString() != "")
{
DateTime beginTime = Convert.ToDateTime(this.beginTime.Text.ToString());
exp = exp.And(x => Convert.ToDateTime(x.RecordTime) >= beginTime);
}
if (this.endTime.Text.ToString() != "")
{
DateTime endTime = Convert.ToDateTime(this.endTime.Text.ToString());
exp = exp.And(x => Convert.ToDateTime(x.RecordTime) <= endTime);
}
if (this.rfidText.Text.ToString() != "")
{
exp = exp.And(x => x.Rfid == this.rfidText.Text.ToString());
}
if (this.sfcText.Text.ToString() != "")
{
exp = exp.And(x => x.Sfc == this.sfcText.Text.ToString());
}
if (Convert.ToString(this.productionStatusComboBox.SelectedItem) != "")
{
ComboBoxItem proStr = (ComboBoxItem)this.productionStatusComboBox.SelectedItem;
if (proStr.Content.ToString() != null && proStr.Content.ToString() != "")
{
exp = exp.And(x => x.IsProduction == GetProductionStatus(proStr.Content.ToString()));
}
}
Expression> order = x => x.beginTime;
List proUpRecords = downRecordServices.Query(exp, order, false).Result;
List proDownRecordDtos = new List();
proUpRecords.ForEach(x =>
{
proDownRecordDtos.Add(new ProDownRecordDto()
{
Id = proUpRecords.IndexOf(x).ToString(),
MachineId = x.MachineId,
PositionId = x.PositionId,
Rfid = x.Rfid,
Sfc = x.Sfc,
eaValue = x.eaValue,
IsProduction = x.IsProduction,
ProductionFlag = productionStatus((int)x.IsProduction),
isFinish = x.isFinish,
RecordTime = x.RecordTime,
beginTime = x.beginTime,
endTime = x.endTime
});
});
this.AlarmInfoDataGrid.ItemsSource = proDownRecordDtos;
}
private int GetProductionStatus(string selectedItem)
{
int production = 0;
switch (selectedItem)
{
case "正在生产":
production = 0;
break;
case "正在完工":
production = 1;
break;
case "已完工":
production = 2;
break;
case "正在下料中":
production = 3;
break;
}
return production;
}
private string productionStatus(int production)
{
if (production == 0)
{
return "正在生产";
}
if (production == 1)
{
return "正在完工";
}
if (production == 2)
{
return "已完工";
}
if (production == 3)
{
return "正在下料中";
}
return production.ToString();
}
///
/// 注销SFC
///
///
///
private void CancelSfc_MouseDown(object sender, MouseButtonEventArgs e)
{
ProDownRecordDto downRecord = (ProDownRecordDto)this.AlarmInfoDataGrid.SelectedItem;
if (downRecord == null)
{
MessageBox.Show("请选择异常数据");
return;
}
if (downRecord.isFinish >= 1)
{
MessageBox.Show("该结束流程已成功注销SFC");
return;
}
LogHelperBusiness.LogInfo("调用MES注销SFC接口");
MiSignOffSFCsServiceServiceParam miSignOffSFCsServiceServiceParam = new MiSignOffSFCsServiceServiceParam()
{
url = inifile.IniReadValue("MiSignOffSFCsServiceServiceParam", "url"),
site = inifile.IniReadValue("MiSignOffSFCsServiceServiceParam", "site"),
user = inifile.IniReadValue("MiSignOffSFCsServiceServiceParam", "user"),
operation = appConfig.operationByA,
operationRevision = inifile.IniReadValue("MiSignOffSFCsServiceServiceParam", "operationRevision"),
activityId = inifile.IniReadValue("MiSignOffSFCsServiceServiceParam", "activityId"),
Resource = appConfig.resource,
amount = inifile.IniReadValue("MiSignOffSFCsServiceServiceParam", "amount"),
sfcDataArray = null,
sfc = downRecord.Sfc,
};
DateTime beginTime = DateTime.Now;
try
{
LogHelperBusiness.LogInfo("调用MES注销SFC接口,请求参数:" + JsonChange.ModeToJson(miSignOffSFCsServiceServiceParam));
if (appConfig.isMesFlag == 1)
{
miSignOffSFCsResponse signOffSFCsResponse = MesWebServices.iMiSignOffSFCsServiceService(miSignOffSFCsServiceServiceParam);
LogHelperBusiness.LogInfo("调用MES注销SFC接口,返回参数:" + JsonChange.ModeToJson(signOffSFCsResponse));
if (signOffSFCsResponse.@return.code > 0)
{
if (signOffSFCsResponse.@return.code == 13900)
{
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 1, downRecord.eaValue);
ProcessStatus(1, true);
Refresh();
return;
}
else
{
MessageBox.Show("注销SFC接口调用失败:" + upLoadBusiness.GetMesMessage(signOffSFCsResponse.@return.code, signOffSFCsResponse.@return.message));
ProcessStatus(1, false);
Refresh();
return;
}
}
}
}
catch (Exception ex)
{
ProcessStatus(1, false);
Refresh();
MessageBox.Show("注销SFC接口调用异常:" + ex.Message);
return;
}
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 1, downRecord.eaValue);
ProcessStatus(1, true);
Refresh();
return;
}
private bool CancelSfcFunction(ProDownRecordDto downRecord)
{
LogHelperBusiness.LogInfo("调用MES注销SFC接口");
MiSignOffSFCsServiceServiceParam miSignOffSFCsServiceServiceParam = new MiSignOffSFCsServiceServiceParam()
{
url = inifile.IniReadValue("MiSignOffSFCsServiceServiceParam", "url"),
site = inifile.IniReadValue("MiSignOffSFCsServiceServiceParam", "site"),
user = inifile.IniReadValue("MiSignOffSFCsServiceServiceParam", "user"),
operation = appConfig.operationByA,
operationRevision = inifile.IniReadValue("MiSignOffSFCsServiceServiceParam", "operationRevision"),
activityId = inifile.IniReadValue("MiSignOffSFCsServiceServiceParam", "activityId"),
Resource = appConfig.resource,
amount = inifile.IniReadValue("MiSignOffSFCsServiceServiceParam", "amount"),
sfcDataArray = null,
sfc = downRecord.Sfc,
};
DateTime beginTime = DateTime.Now;
try
{
LogHelperBusiness.LogInfo("调用MES注销SFC接口,请求参数:" + JsonChange.ModeToJson(miSignOffSFCsServiceServiceParam));
if (appConfig.isMesFlag == 1)
{
miSignOffSFCsResponse signOffSFCsResponse = MesWebServices.iMiSignOffSFCsServiceService(miSignOffSFCsServiceServiceParam);
LogHelperBusiness.LogInfo("调用MES注销SFC接口,返回参数:" + JsonChange.ModeToJson(signOffSFCsResponse));
if (signOffSFCsResponse.@return.code > 0)
{
if (signOffSFCsResponse.@return.code == 13900)
{
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 1, downRecord.eaValue);
ProcessStatus(1, true);
return true;
}
else
{
MessageBox.Show("注销SFC接口调用失败:" + upLoadBusiness.GetMesMessage(signOffSFCsResponse.@return.code, signOffSFCsResponse.@return.message));
ProcessStatus(1, false);
return false;
}
}
}
}
catch (Exception ex)
{
MessageBox.Show("注销SFC接口调用异常:" + ex.Message);
ProcessStatus(1, false);
return false;
}
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 1, downRecord.eaValue);
ProcessStatus(1, true);
return true;
}
///
/// 调整A面数量
///
///
///
private void AdjustFaceA_MouseDown(object sender, MouseButtonEventArgs e)
{
ProDownRecordDto downRecord = (ProDownRecordDto)this.AlarmInfoDataGrid.SelectedItem;
if (downRecord == null)
{
MessageBox.Show("请选择异常数据");
return;
}
if (downRecord.isFinish >= 2)
{
MessageBox.Show("该结束流程已成功调整A面数量");
return;
}
else
{
if (downRecord.isFinish < 1)
{
MessageBox.Show("调整A面数量前还有流程未处理");
return;
}
}
LogHelperBusiness.LogInfo("调用MES调整A面数量接口");
MiBatchCompleteSfcAndAdujustQtyServiceServiceParam miBatchCompleteSfcAndAdujustQtyServiceServiceParam = new MiBatchCompleteSfcAndAdujustQtyServiceServiceParam()
{
url = inifile.IniReadValue("AdujustQtyParam", "url"),
site = inifile.IniReadValue("AdujustQtyParam", "site"),
sfcPre = downRecord.Sfc,
processLotPre = "",
operation = appConfig.operationByA,
operationRevision = inifile.IniReadValue("AdujustQtyParam", "operationRevision"),
resource = appConfig.resource,
user = inifile.IniReadValue("AdujustQtyParam", "user"),
activity = inifile.IniReadValue("AdujustQtyParam", "activity"),
modeProcessSfc = ModeProcessSfc.MODE_NONE,
sfcList = new miBatchCompleteSfcAndAdujustQtySfcEntity[]
{
new miBatchCompleteSfcAndAdujustQtySfcEntity()
{
processLot = downRecord.Rfid,
sfc = "",
qty = downRecord.eaValue.ToString(),
unit = "EA"
}
}
};
DateTime beginTime = DateTime.Now;
try
{
LogHelperBusiness.LogInfo("调用MES调整A面数量接口,请求参数:" + JsonChange.ModeToJson(miBatchCompleteSfcAndAdujustQtyServiceServiceParam));
if (appConfig.isMesFlag == 1)
{
var requestResult = MesWebServices.iMiBatchCompleteSfcAndAdujustQtyServiceService(miBatchCompleteSfcAndAdujustQtyServiceServiceParam);
LogHelperBusiness.LogInfo("调用MES调整A面数量接口,返回参数:" + JsonChange.ModeToJson(requestResult));
if (requestResult.@return.code > 0)
{
MessageBox.Show("A面数量调整失败:" + upLoadBusiness.GetMesMessage(requestResult.@return.code, requestResult.@return.message));
ProcessStatus(2, false);
Refresh();
return;
}
}
}
catch (Exception ex)
{
MessageBox.Show("A面数量调整异常:" + ex.Message);
WebServiceLog.saveMiBatchCompleteSfcAndAdujustQtyServiceService(miBatchCompleteSfcAndAdujustQtyServiceServiceParam, null, beginTime, ex.Message);
ProcessStatus(2, false);
Refresh();
return;
}
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 2, downRecord.eaValue);
ProcessStatus(2, true);
Refresh();
}
private bool AdjustFaceAFunction(ProDownRecordDto downRecord)
{
LogHelperBusiness.LogInfo("调用MES调整A面数量接口");
MiBatchCompleteSfcAndAdujustQtyServiceServiceParam miBatchCompleteSfcAndAdujustQtyServiceServiceParam = new MiBatchCompleteSfcAndAdujustQtyServiceServiceParam()
{
url = inifile.IniReadValue("AdujustQtyParam", "url"),
site = inifile.IniReadValue("AdujustQtyParam", "site"),
sfcPre = downRecord.Sfc,
processLotPre = "",
operation = appConfig.operationByA,
operationRevision = inifile.IniReadValue("AdujustQtyParam", "operationRevision"),
resource = appConfig.resource,
user = inifile.IniReadValue("AdujustQtyParam", "user"),
activity = inifile.IniReadValue("AdujustQtyParam", "activity"),
modeProcessSfc = ModeProcessSfc.MODE_NONE,
sfcList = new miBatchCompleteSfcAndAdujustQtySfcEntity[]
{
new miBatchCompleteSfcAndAdujustQtySfcEntity()
{
processLot = downRecord.Rfid,
sfc = "",
qty = downRecord.eaValue.ToString(),
unit = "EA"
}
}
};
DateTime beginTime = DateTime.Now;
try
{
LogHelperBusiness.LogInfo("调用MES调整A面数量接口,请求参数:" + JsonChange.ModeToJson(miBatchCompleteSfcAndAdujustQtyServiceServiceParam));
if (appConfig.isMesFlag == 1)
{
var requestResult = MesWebServices.iMiBatchCompleteSfcAndAdujustQtyServiceService(miBatchCompleteSfcAndAdujustQtyServiceServiceParam);
LogHelperBusiness.LogInfo("调用MES调整A面数量接口,返回参数:" + JsonChange.ModeToJson(requestResult));
if (requestResult.@return.code > 0)
{
MessageBox.Show("A面数量调整失败:" + upLoadBusiness.GetMesMessage(requestResult.@return.code, requestResult.@return.message));
ProcessStatus(2, false);
return false;
}
}
}
catch (Exception ex)
{
MessageBox.Show("A面数量调整异常:" + ex.Message);
WebServiceLog.saveMiBatchCompleteSfcAndAdujustQtyServiceService(miBatchCompleteSfcAndAdujustQtyServiceServiceParam, null, beginTime, ex.Message);
ProcessStatus(2, false);
return false;
}
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 2, downRecord.eaValue);
ProcessStatus(2, true);
return true;
}
///
/// A面开始
///
///
///
private void BeginFaceA_MouseDown(object sender, MouseButtonEventArgs e)
{
ProDownRecordDto downRecord = (ProDownRecordDto)this.AlarmInfoDataGrid.SelectedItem;
if (downRecord == null)
{
MessageBox.Show("请选择异常数据");
return;
}
if (downRecord.isFinish >= 3)
{
MessageBox.Show("该结束流程A面已成功入账开始");
return;
}
else
{
if (downRecord.isFinish < 2)
{
MessageBox.Show("A面入账开始前还有流程未处理");
return;
}
}
LogHelperBusiness.LogInfo("调用MES A面入账开始接口");
MiFirstOperationForsfcServiceServiceParam miFirstOperationForsfcServiceServiceParam = new MiFirstOperationForsfcServiceServiceParam()
{
url = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "url"),
site = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "site"),
sfc = downRecord.Sfc,
processLot = "",
operation = appConfig.operationByA,
operationRevision = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "operationRevision"),
resource = appConfig.resource,
user = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "user"),
activity = "",
modeProcessSfc = "MODE_START_SFC",
};
try
{
LogHelperBusiness.LogInfo("调用MES A面入账开始接口,请求参数:" + JsonChange.ModeToJson(miFirstOperationForsfcServiceServiceParam));
if (appConfig.isMesFlag == 1)
{
miFirstOperationForsfcResponse firstOperationForsfcResponse = MesWebServices.iMiFirstOperationForsfcServiceService(miFirstOperationForsfcServiceServiceParam);
LogHelperBusiness.LogInfo("调用MES A面入账开始接口,返回参数:" + JsonChange.ModeToJson(firstOperationForsfcResponse));
if (firstOperationForsfcResponse.@return.code > 0)
{
ProcessStatus(3, false);
Refresh();
MessageBox.Show("调用A面入账接口失败:" + upLoadBusiness.GetMesMessage(firstOperationForsfcResponse.@return.code, firstOperationForsfcResponse.@return.message));
return;
}
}
}
catch (Exception ex)
{
MessageBox.Show("调用A面入账接口异常:" + ex.Message);
ProcessStatus(3, false);
Refresh();
return;
}
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 3, downRecord.eaValue);
ProcessStatus(3, true);
Refresh();
return;
}
private bool BeginFaceAFunction(ProDownRecordDto downRecord)
{
LogHelperBusiness.LogInfo("调用MES A面入账开始接口");
MiFirstOperationForsfcServiceServiceParam miFirstOperationForsfcServiceServiceParam = new MiFirstOperationForsfcServiceServiceParam()
{
url = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "url"),
site = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "site"),
sfc = downRecord.Sfc,
processLot = "",
operation = appConfig.operationByA,
operationRevision = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "operationRevision"),
resource = appConfig.resource,
user = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "user"),
activity = "",
modeProcessSfc = "MODE_START_SFC",
};
try
{
LogHelperBusiness.LogInfo("调用MES A面入账开始接口,请求参数:" + JsonChange.ModeToJson(miFirstOperationForsfcServiceServiceParam));
if (appConfig.isMesFlag == 1)
{
miFirstOperationForsfcResponse firstOperationForsfcResponse = MesWebServices.iMiFirstOperationForsfcServiceService(miFirstOperationForsfcServiceServiceParam);
LogHelperBusiness.LogInfo("调用MES A面入账开始接口,返回参数:" + JsonChange.ModeToJson(firstOperationForsfcResponse));
if (firstOperationForsfcResponse.@return.code > 0)
{
MessageBox.Show("调用A面入账接口失败:" + upLoadBusiness.GetMesMessage(firstOperationForsfcResponse.@return.code, firstOperationForsfcResponse.@return.message));
ProcessStatus(3, false);
Refresh();
return false;
}
}
}
catch (Exception ex)
{
MessageBox.Show("调用A面入账接口异常:" + ex.Message);
ProcessStatus(3, false);
Refresh();
return false;
}
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 3, downRecord.eaValue);
ProcessStatus(3, true);
return true;
}
///
/// A面收集数据
///
///
///
private void CollectFaceA_MouseDown(object sender, MouseButtonEventArgs e)
{
LogHelperBusiness.LogInfo("A面收集数据物料消耗");
if (this.downRecordInfo != null)
{
if (FinishFaceAFunction(this.downRecordInfo))
{
ProcessStatus(4, true);
}
else
{
ProcessStatus(4, false);
return;
}
//B面自动入账开始
if (BeginFaceBFunction(this.downRecordInfo))
{
ProcessStatus(5, true);
}
else
{
ProcessStatus(5, false);
return;
}
}
else
{
MessageBox.Show("获取数据为空");
}
}
///
/// A面完工
///
///
///
private void FinishFaceA_MouseDown(object sender, MouseButtonEventArgs e)
{
ProDownRecordDto downRecord = (ProDownRecordDto)this.AlarmInfoDataGrid.SelectedItem;
if (downRecord == null)
{
MessageBox.Show("请选择异常数据");
return;
}
if (downRecord.isFinish >= 3)
{
MessageBox.Show("该结束流程A面已完工");
return;
}
else
{
if (downRecord.isFinish < 3)
{
MessageBox.Show("A面完工前还有流程未处理");
return;
}
}
FinishFaceAFunction(downRecord);
}
private bool FinishFaceAFunction(ProDownRecordDto downRecord)
{
LogHelperBusiness.LogInfo("调用A面完工接口");
MiBatchCompleteSfcAndAdujustQtyServiceServiceParam miBatchCompleteSfcAndAdujustQtyServiceServiceParam = new MiBatchCompleteSfcAndAdujustQtyServiceServiceParam()
{
url = inifile.IniReadValue("AdujustQtyParam", "url"),
site = inifile.IniReadValue("AdujustQtyParam", "site"),
sfcPre = "",
processLotPre = downRecord.Rfid,
operation = appConfig.operationByA,
operationRevision = inifile.IniReadValue("AdujustQtyParam", "operationRevision"),
resource = appConfig.resource,
user = inifile.IniReadValue("AdujustQtyParam", "user"),
activity = inifile.IniReadValue("AdujustQtyParam", "activity"),
modeProcessSfc = ModeProcessSfc.MODE_COMPLETE_SFC_POST_DC, //冷压MODE_COMPLETE_SFC_POST_DC、模切MODE_COMPLETE_SFC_POST_DC
sfcList = new miBatchCompleteSfcAndAdujustQtySfcEntity[]
{
new miBatchCompleteSfcAndAdujustQtySfcEntity()
{
processLot = downRecord.Rfid,
sfc = "",
qty = downRecord.eaValue.ToString(),
unit = "EA"
}
}
};
DateTime beginTime = DateTime.Now;
try
{
LogHelperBusiness.LogInfo("调用A面完工接口,请求参数:" + JsonChange.ModeToJson(miBatchCompleteSfcAndAdujustQtyServiceServiceParam));
if (appConfig.isMesFlag == 1)
{
var requestResult = MesWebServices.iMiBatchCompleteSfcAndAdujustQtyServiceService(miBatchCompleteSfcAndAdujustQtyServiceServiceParam);
LogHelperBusiness.LogInfo("调用A面完工接口,返回参数:" + JsonChange.ModeToJson(requestResult));
if (requestResult.@return.code > 0)
{
MessageBox.Show("调用A面完工接口失败:" + upLoadBusiness.GetMesMessage(requestResult.@return.code, requestResult.@return.message));
ProcessStatus(4, false);
return false;
}
}
}
catch (Exception ex)
{
MessageBox.Show("调用A面完工接口异常:" + ex.Message);
ProcessStatus(4, false);
return false;
}
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 4, downRecord.eaValue);
ProcessStatus(4, true);
return true;
}
///
/// B面开始
///
///
///
private void BeginFaceB_MouseDown(object sender, MouseButtonEventArgs e)
{
ProDownRecordDto downRecord = (ProDownRecordDto)this.AlarmInfoDataGrid.SelectedItem;
if (downRecord == null)
{
MessageBox.Show("请选择异常数据");
return;
}
if (downRecord.isFinish >= 5)
{
MessageBox.Show("该结束流程B面已入账开始");
return;
}
else
{
if (downRecord.isFinish < 3)
{
MessageBox.Show("B面入账开始前还有流程未处理");
return;
}
}
MiFirstOperationForsfcServiceServiceParam miFirstOperationForsfcServiceServiceParam = new MiFirstOperationForsfcServiceServiceParam()
{
url = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "url"),
site = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "site"),
sfc = downRecord.Sfc,
processLot = "",
operation = appConfig.operationByB,
operationRevision = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "operationRevision"),
resource = appConfig.resource,
user = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "user"),
activity = "",
modeProcessSfc = "MODE_START_SFC",
};
DateTime beginTime = DateTime.Now;
try
{
if (appConfig.isMesFlag == 1)
{
miFirstOperationForsfcResponse firstOperationForsfcResponse = MesWebServices.iMiFirstOperationForsfcServiceService(miFirstOperationForsfcServiceServiceParam);
WebServiceLog.saveMiFirstOperationForsfcServiceService(miFirstOperationForsfcServiceServiceParam, firstOperationForsfcResponse, beginTime, "");
if (firstOperationForsfcResponse.@return.code > 0)
{
ProcessStatus(5, false);
Refresh();
return;
}
}
}
catch (Exception ex)
{
WebServiceLog.saveMiFirstOperationForsfcServiceService(miFirstOperationForsfcServiceServiceParam, null, beginTime, ex.Message);
ProcessStatus(5, false);
Refresh();
return;
}
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 5, downRecord.eaValue);
ProcessStatus(5, true);
Refresh();
return;
}
private bool BeginFaceBFunction(ProDownRecordDto downRecord)
{
LogHelperBusiness.LogInfo("调用MES B面开始接口");
MiFirstOperationForsfcServiceServiceParam miFirstOperationForsfcServiceServiceParam = new MiFirstOperationForsfcServiceServiceParam()
{
url = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "url"),
site = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "site"),
sfc = downRecord.Sfc,
processLot = "",
operation = appConfig.operationByB,
operationRevision = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "operationRevision"),
resource = appConfig.resource,
user = inifile.IniReadValue("MiFirstOperationForsfcServiceServiceParam", "user"),
activity = "",
modeProcessSfc = "MODE_START_SFC",
};
DateTime beginTime = DateTime.Now;
try
{
LogHelperBusiness.LogInfo("调用MES B面开始接口请求参数:" + JsonChange.ModeToJson(miFirstOperationForsfcServiceServiceParam));
if (appConfig.isMesFlag == 1)
{
miFirstOperationForsfcResponse firstOperationForsfcResponse = MesWebServices.iMiFirstOperationForsfcServiceService(miFirstOperationForsfcServiceServiceParam);
LogHelperBusiness.LogInfo("调用MES B面开始接口返回参数:" + JsonChange.ModeToJson(firstOperationForsfcResponse));
WebServiceLog.saveMiFirstOperationForsfcServiceService(miFirstOperationForsfcServiceServiceParam, firstOperationForsfcResponse, beginTime, "");
if (firstOperationForsfcResponse.@return.code > 0)
{
MessageBox.Show("调用MES B面开始接口失败:" + upLoadBusiness.GetMesMessage(firstOperationForsfcResponse.@return.code, firstOperationForsfcResponse.@return.message));
ProcessStatus(5, false);
return false;
}
}
}
catch (Exception ex)
{
MessageBox.Show("调用MES B面开始接口异常:" + ex.Message);
WebServiceLog.saveMiFirstOperationForsfcServiceService(miFirstOperationForsfcServiceServiceParam, null, beginTime, ex.Message);
ProcessStatus(5, false);
return false;
}
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 5, downRecord.eaValue);
ProcessStatus(5, true);
return true;
}
///
/// B面收集数据物料消耗
///
///
///
private void CollectFaceB_MouseDown(object sender, MouseButtonEventArgs e)
{
LogHelperBusiness.LogInfo("B面收集数据物料消耗");
if (this.downRecordInfo != null)
{
if (FinishFaceBFunction(downRecordInfo))
{
ProcessStatus(6, true);
}
else
{
ProcessStatus(6, false);
return;
}
}
else
{
MessageBox.Show("获取数据为空");
}
}
///
/// B面完工
///
///
///
private void FinishFaceB_MouseDown(object sender, MouseButtonEventArgs e)
{
ProDownRecordDto downRecord = (ProDownRecordDto)this.AlarmInfoDataGrid.SelectedItem;
if (downRecord == null)
{
MessageBox.Show("请选择异常数据");
return;
}
if (downRecord.isFinish == 6)
{
MessageBox.Show("该完工流程已结束");
return;
}
else
{
if (downRecord.isFinish < 5)
{
MessageBox.Show("B面完工前还有流程未处理");
return;
}
}
MiBatchCompleteSfcAndAdujustQtyServiceServiceParam miBatchCompleteSfcAndAdujustQtyServiceServiceParam = new MiBatchCompleteSfcAndAdujustQtyServiceServiceParam()
{
url = inifile.IniReadValue("AdujustQtyParam", "url"),
site = inifile.IniReadValue("AdujustQtyParam", "site"),
sfcPre = "",
processLotPre = downRecord.Rfid,
operation = appConfig.operationByB,
operationRevision = inifile.IniReadValue("AdujustQtyParam", "operationRevision"),
resource = appConfig.resource,
user = inifile.IniReadValue("AdujustQtyParam", "user"),
activity = inifile.IniReadValue("AdujustQtyParam", "activity"),
modeProcessSfc = ModeProcessSfc.MODE_COMPLETE_SFC_POST_DC, //冷压MODE_COMPLETE_SFC_POST_DC、模切MODE_COMPLETE_SFC_POST_DC
sfcList = new miBatchCompleteSfcAndAdujustQtySfcEntity[]
{
new miBatchCompleteSfcAndAdujustQtySfcEntity()
{
processLot = downRecord.Rfid,
sfc = downRecord.Sfc,
qty = downRecord.eaValue.ToString(),
unit = "EA"
}
}
};
DateTime beginTime = DateTime.Now;
try
{
if (appConfig.isMesFlag == 1)
{
var requestResult = MesWebServices.iMiBatchCompleteSfcAndAdujustQtyServiceService(miBatchCompleteSfcAndAdujustQtyServiceServiceParam);
WebServiceLog.saveMiBatchCompleteSfcAndAdujustQtyServiceService(miBatchCompleteSfcAndAdujustQtyServiceServiceParam, requestResult, beginTime, "");
if (requestResult.@return.code > 0)
{
ProcessStatus(6, false);
Refresh();
return;
}
}
}
catch (Exception ex)
{
WebServiceLog.saveMiBatchCompleteSfcAndAdujustQtyServiceService(miBatchCompleteSfcAndAdujustQtyServiceServiceParam, null, beginTime, ex.Message);
ProcessStatus(6, false);
Refresh();
return;
}
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 6, downRecord.eaValue);
ProcessStatus(6, false);
Refresh();
return;
}
private bool FinishFaceBFunction(ProDownRecordDto downRecord)
{
LogHelperBusiness.LogInfo("调用MES B面完工接口");
MiBatchCompleteSfcAndAdujustQtyServiceServiceParam miBatchCompleteSfcAndAdujustQtyServiceServiceParam = new MiBatchCompleteSfcAndAdujustQtyServiceServiceParam()
{
url = inifile.IniReadValue("AdujustQtyParam", "url"),
site = inifile.IniReadValue("AdujustQtyParam", "site"),
sfcPre = "",
processLotPre = downRecord.Rfid,
operation = appConfig.operationByB,
operationRevision = inifile.IniReadValue("AdujustQtyParam", "operationRevision"),
resource = appConfig.resource,
user = inifile.IniReadValue("AdujustQtyParam", "user"),
activity = inifile.IniReadValue("AdujustQtyParam", "activity"),
modeProcessSfc = ModeProcessSfc.MODE_COMPLETE_SFC_POST_DC, //冷压MODE_COMPLETE_SFC_POST_DC、模切MODE_COMPLETE_SFC_POST_DC
sfcList = new miBatchCompleteSfcAndAdujustQtySfcEntity[]
{
new miBatchCompleteSfcAndAdujustQtySfcEntity()
{
processLot = downRecord.Rfid,
sfc = downRecord.Sfc,
qty = downRecord.eaValue.ToString(),
unit = "EA"
}
}
};
DateTime beginTime = DateTime.Now;
try
{
LogHelperBusiness.LogInfo("调用MES B面完工接口,请求参数:" + JsonChange.ModeToJson(miBatchCompleteSfcAndAdujustQtyServiceServiceParam));
if (appConfig.isMesFlag == 1)
{
var requestResult = MesWebServices.iMiBatchCompleteSfcAndAdujustQtyServiceService(miBatchCompleteSfcAndAdujustQtyServiceServiceParam);
WebServiceLog.saveMiBatchCompleteSfcAndAdujustQtyServiceService(miBatchCompleteSfcAndAdujustQtyServiceServiceParam, requestResult, beginTime, "");
LogHelperBusiness.LogInfo("调用MES B面完工接口,返回参数:" + JsonChange.ModeToJson(requestResult));
if (requestResult.@return.code > 0)
{
MessageBox.Show("调用MES B面完工接口失败:" + upLoadBusiness.GetMesMessage(requestResult.@return.code, requestResult.@return.message));
ProcessStatus(6, false);
return false;
}
}
}
catch (Exception ex)
{
MessageBox.Show("调用MES B面完工接口异常:" + ex.Message);
WebServiceLog.saveMiBatchCompleteSfcAndAdujustQtyServiceService(miBatchCompleteSfcAndAdujustQtyServiceServiceParam, null, beginTime, ex.Message);
ProcessStatus(6, false);
return false;
}
//更新完工步骤
this.UpdateDownRecord(downRecord.Rfid, downRecord.Sfc, 6, downRecord.eaValue);
ProcessStatus(6, false);
return true;
}
///
/// 继续完工
///
///
///
private void ExceptionHand_Click(object sender, RoutedEventArgs e)
{
Init();
ProDownRecordDto downRecord = (ProDownRecordDto)this.AlarmInfoDataGrid.SelectedItem;
if (downRecord == null)
{
MessageBox.Show("未选择异常记录");
return;
}
if (downRecord.IsProduction != 3 && downRecord.IsProduction != 1)
{
MessageBox.Show(downRecord.ProductionFlag + "不允许异常处理");
return;
}
this.downRecordInfo = downRecord;
bool[] mes = new bool[6];
for (int i = 1; i <= downRecord.isFinish; i++)
{
ProcessStatus(i, true);
mes[i - 1] = true;
}
ExceptionHandFunction(downRecord, mes);
}
public void ExceptionHandFunction(ProDownRecordDto downRecord, bool[] mesResult)
{
if (!mesResult[0])
{
if (CancelSfcFunction(downRecord))
{
ProcessStatus(1, true);
}
else
{
ProcessStatus(1, false);
return;
}
}
if (!mesResult[1])
{
if (CancelSfcFunction(downRecord))
{
ProcessStatus(1, true);
}
else
{
ProcessStatus(1, false);
return;
}
//A面开始调整数量事件
if (AdjustFaceAFunction(downRecord))
{
ProcessStatus(2, true);
}
else
{
ProcessStatus(2, false);
return;
}
}
if (!mesResult[2])
{
//A面自动开始
if (BeginFaceAFunction(downRecord))
{
ProcessStatus(3, true);
}
else
{
ProcessStatus(3, false);
return;
}
return;
}
if (!mesResult[3])
{
if (FinishFaceAFunction(downRecord))
{
ProcessStatus(4, true);
}
else
{
ProcessStatus(4, false);
return;
}
}
if (!mesResult[4])
{
//B面自动入账开始
if (BeginFaceBFunction(downRecord))
{
ProcessStatus(5, true);
}
else
{
ProcessStatus(5, false);
return;
}
return;
}
if (!mesResult[5])
{
if (FinishFaceBFunction(downRecord))
{
ProcessStatus(6, true);
}
else
{
ProcessStatus(6, false);
return;
}
}
}
///
/// 强制下料
///
///
///
private void ForceDown_Click(object sender, RoutedEventArgs e)
{
}
private void ProcessStatus(int processNumber, bool isSucess)
{
Action action;
switch (processNumber)
{
case 1:
//注销SFC
if (isSucess)
{
action = () =>
{
this.CancelSfc.Background = Brushes.Green;
};
this.CancelSfc.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CancelSfcText.Foreground = Brushes.White;
};
this.CancelSfcText.Dispatcher.BeginInvoke(action);
}
else
{
action = () =>
{
this.CancelSfc.Background = Brushes.Red;
};
this.CancelSfc.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CancelSfcText.Foreground = Brushes.White;
};
this.CancelSfcText.Dispatcher.BeginInvoke(action);
}
break;
case 2:
//调整A面数量
if (isSucess)
{
action = () =>
{
this.AdjustFaceA.Background = Brushes.Green;
};
this.AdjustFaceA.Dispatcher.BeginInvoke(action);
action = () =>
{
this.AdjustFaceAText.Foreground = Brushes.White;
};
this.AdjustFaceAText.Dispatcher.BeginInvoke(action);
}
else
{
action = () =>
{
this.AdjustFaceA.Background = Brushes.Red;
};
this.AdjustFaceA.Dispatcher.BeginInvoke(action);
action = () =>
{
this.AdjustFaceAText.Foreground = Brushes.White;
};
this.AdjustFaceAText.Dispatcher.BeginInvoke(action);
}
break;
case 3:
//A面开始
if (isSucess)
{
action = () =>
{
this.BeginFaceA.Background = Brushes.Green;
};
this.BeginFaceA.Dispatcher.BeginInvoke(action);
action = () =>
{
this.BeginFaceAText.Foreground = Brushes.White;
};
this.BeginFaceA.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceA.Background = Brushes.Yellow;
};
this.CollectFaceA.Dispatcher.BeginInvoke(action);
}
else
{
action = () =>
{
this.BeginFaceA.Background = Brushes.Red;
};
this.BeginFaceA.Dispatcher.BeginInvoke(action);
action = () =>
{
this.BeginFaceAText.Foreground = Brushes.White;
};
this.BeginFaceA.Dispatcher.BeginInvoke(action);
}
break;
case 4:
//A面完工
if (isSucess)
{
action = () =>
{
this.CollectFaceA.Background = Brushes.Green;
};
this.CollectFaceA.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceAText1.Foreground = Brushes.White;
};
this.CollectFaceAText1.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceAText2.Foreground = Brushes.White;
};
this.CollectFaceAText2.Dispatcher.BeginInvoke(action);
action = () =>
{
this.FinishFaceA.Background = Brushes.Green;
};
this.FinishFaceA.Dispatcher.BeginInvoke(action);
action = () =>
{
this.FinishFaceAText.Foreground = Brushes.White;
};
this.FinishFaceAText.Dispatcher.BeginInvoke(action);
}
else
{
action = () =>
{
this.FinishFaceA.Background = Brushes.Red;
};
this.FinishFaceA.Dispatcher.BeginInvoke(action);
action = () =>
{
this.FinishFaceAText.Foreground = Brushes.White;
};
this.FinishFaceAText.Dispatcher.BeginInvoke(action);
}
break;
case 5:
//B面开始
if (isSucess)
{
action = () =>
{
this.BeginFaceB.Background = Brushes.Green;
};
this.BeginFaceB.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceB.Background = Brushes.Yellow;
};
this.CollectFaceB.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceBText1.Foreground = Brushes.White;
};
this.CollectFaceBText1.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceBText2.Foreground = Brushes.White;
};
this.CollectFaceBText2.Dispatcher.BeginInvoke(action);
action = () =>
{
this.BeginFaceBText.Foreground = Brushes.White;
};
this.BeginFaceBText.Dispatcher.BeginInvoke(action);
}
else
{
action = () =>
{
this.BeginFaceB.Background = Brushes.Red;
};
this.BeginFaceB.Dispatcher.BeginInvoke(action);
action = () =>
{
this.BeginFaceBText.Foreground = Brushes.White;
};
this.BeginFaceBText.Dispatcher.BeginInvoke(action);
}
break;
case 6:
//B面完工
if (isSucess)
{
action = () =>
{
this.CollectFaceB.Background = Brushes.Green;
};
this.CollectFaceB.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceBText1.Foreground = Brushes.White;
};
this.CollectFaceBText1.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceBText2.Foreground = Brushes.White;
};
this.CollectFaceBText2.Dispatcher.BeginInvoke(action);
action = () =>
{
this.FinishFaceB.Background = Brushes.Green;
};
this.FinishFaceB.Dispatcher.BeginInvoke(action);
action = () =>
{
this.FinishFaceBText.Foreground = Brushes.White;
};
this.FinishFaceBText.Dispatcher.BeginInvoke(action);
}
else
{
action = () =>
{
this.FinishFaceB.Background = Brushes.Red;
};
this.FinishFaceB.Dispatcher.BeginInvoke(action);
action = () =>
{
this.FinishFaceBText.Foreground = Brushes.White;
};
this.FinishFaceBText.Dispatcher.BeginInvoke(action);
}
break;
default:
break;
}
}
///
/// 初始化界面
///
private void Init()
{
Action action;
action = () =>
{
this.CancelSfc.Background = Brushes.White;
};
this.CancelSfc.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CancelSfcText.Foreground = Brushes.Gray;
};
this.CancelSfcText.Dispatcher.BeginInvoke(action);
action = () =>
{
this.AdjustFaceA.Background = Brushes.White;
};
this.AdjustFaceA.Dispatcher.BeginInvoke(action);
action = () =>
{
this.AdjustFaceAText.Foreground = Brushes.Gray;
};
this.AdjustFaceAText.Dispatcher.BeginInvoke(action);
action = () =>
{
this.BeginFaceA.Background = Brushes.White;
};
this.BeginFaceA.Dispatcher.BeginInvoke(action);
action = () =>
{
this.BeginFaceAText.Foreground = Brushes.Gray;
};
this.BeginFaceAText.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceA.Background = Brushes.White;
};
this.CollectFaceA.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceAText1.Foreground = Brushes.Gray;
};
this.CollectFaceAText1.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceAText2.Foreground = Brushes.Gray;
};
this.CollectFaceAText2.Dispatcher.BeginInvoke(action);
action = () =>
{
this.FinishFaceA.Background = Brushes.White;
};
this.FinishFaceA.Dispatcher.BeginInvoke(action);
action = () =>
{
this.FinishFaceAText.Foreground = Brushes.Gray;
};
this.FinishFaceAText.Dispatcher.BeginInvoke(action);
action = () =>
{
this.BeginFaceB.Background = Brushes.White;
};
this.BeginFaceB.Dispatcher.BeginInvoke(action);
action = () =>
{
this.BeginFaceBText.Foreground = Brushes.Gray;
};
this.BeginFaceBText.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceB.Background = Brushes.White;
};
this.CollectFaceB.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceBText1.Foreground = Brushes.Gray;
};
this.CollectFaceBText1.Dispatcher.BeginInvoke(action);
action = () =>
{
this.CollectFaceBText2.Foreground = Brushes.Gray;
};
this.CollectFaceBText2.Dispatcher.BeginInvoke(action);
action = () =>
{
this.FinishFaceB.Background = Brushes.White;
};
this.FinishFaceB.Dispatcher.BeginInvoke(action);
action = () =>
{
this.FinishFaceBText.Foreground = Brushes.Gray;
};
this.FinishFaceBText.Dispatcher.BeginInvoke(action);
}
private async void UpdateDownRecord(string rfid, string sfc, int finish, int eaValue)
{
Expression> downExp = s1 => true;
downExp = downExp.And(x => x.Rfid == rfid && x.Sfc == sfc);
Expression> downOrder = (s) => s.RecordTime;
ProDownRecord downRecord = await downRecordServices.QueryFirst(downExp, downOrder, false);
if (downRecord != null)
{
downRecord.eaValue = eaValue;
downRecord.IsProduction = finish == 6 ? 2 : 3;
downRecord.isFinish = finish;
downRecord.endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
await downRecordServices.Update(downRecord);
upLoadBusiness.UpdateDownRecord(downRecord);
}
Refresh();
List info = this.AlarmInfoDataGrid.ItemsSource as List;
ProDownRecordDto recordDto = info.Where(x => x.Sfc == sfc).FirstOrDefault();
this.AlarmInfoDataGrid.SelectedItem = recordDto;
}
///
/// 获取MESEA值更新数据记录
///
///
///
private void GetMesEaValue_Click(object sender, RoutedEventArgs e)
{
ProDownRecordDto downRecord = (ProDownRecordDto)this.AlarmInfoDataGrid.SelectedItem;
if (downRecord == null)
{
MessageBox.Show("未选择异常记录");
return;
}
//获取物料信息
Expression> exp = s1 => true;
exp = exp.And(x => x.Sfc == downRecord.Sfc);
Expression> order = s1 => s1.endTime;
ProDownRecord downRecordInfo = downRecordServices.QueryFirst(exp, order, false).Result;
if (downRecordInfo == null)
{
MessageBox.Show("获取下料数据为空");
return;
}
LogHelperBusiness.LogInfo(String.Format("通过MES接口获取{0}物料的EA值", downRecord.Sfc));
MiSFCQueryQtyServiceServiceParam sFCQueryQtyServiceServiceParam = new MiSFCQueryQtyServiceServiceParam()
{
url = inifile.IniReadValue("MiSFCQueryQtyServiceServiceParam", "url"),
site = inifile.IniReadValue("MiSFCQueryQtyServiceServiceParam", "site"),
sfc = downRecord.Sfc
};
LogHelperBusiness.LogInfo("MES获取物料EA值接口请求参数:" + JsonChange.ModeToJson(sFCQueryQtyServiceServiceParam));
DateTime beginTime = DateTime.Now;
try
{
if (appConfig.isMesFlag == 1)
{
var sfcQueryQtyResponse = MesWebServices.iMiSFCQueryQtyServiceService(sFCQueryQtyServiceServiceParam);
LogHelperBusiness.LogInfo("MES获取物料EA值接口返回参数:" + JsonChange.ModeToJson(sfcQueryQtyResponse));
if (sfcQueryQtyResponse.@return.code > 0)
{
LogHelperBusiness.LogInfo("MES获取物料EA值接口请求失败:" + sfcQueryQtyResponse.@return.message);
MessageBox.Show(String.Format("通过MES接口获取放卷物料{0}的SFC数量失败:{1}", downRecord.Sfc, upLoadBusiness.GetMesMessage(sfcQueryQtyResponse.@return.code, sfcQueryQtyResponse.@return.message)));
return;
}
if (Convert.ToInt32(sfcQueryQtyResponse.@return.qty) > 1)
{
downRecordInfo.eaValue = Convert.ToInt32(sfcQueryQtyResponse.@return.qty);
}
else
{
MessageBox.Show("MES物料EA为:" + Convert.ToInt32(sfcQueryQtyResponse.@return.qty + "不进行同步"));
return;
}
}
}
catch (Exception ex)
{
LogHelperBusiness.LogInfo(String.Format("MES获取SFC数量接口异常:{1}", ex.Message));
WebServiceLog.saveMiSFCQueryQtyServiceService(sFCQueryQtyServiceServiceParam, null, beginTime, ex.Message);
MessageBox.Show(String.Format("MES获取SFC数量接口异常:{1}", ex.Message));
return;
}
bool updateResult = downRecordServices.Update(downRecordInfo).Result;
if (updateResult)
{
MessageBox.Show("数量调整成功");
}
else
{
MessageBox.Show("数量调整失败");
}
upLoadBusiness.UpdateDownRecord(downRecordInfo);
refreshDataGrid();
}
private void EaParamSet_Click(object sender, RoutedEventArgs e)
{
string membraneLength = this.membraneLength.Text.ToString();
string volumesNumber = this.volumesNumber.Text.ToString();
if (StringExtension.IsBlank(membraneLength))
{
MessageBox.Show("请输入模长");
return;
}
if (StringExtension.IsBlank(volumesNumber))
{
volumesNumber = "6";
}
if (EaParamSetFunction(membraneLength, volumesNumber).Result)
{
MessageBox.Show("EA参数设置成功");
this.membraneLength.Text = GetSysConfigList("SysConfig").Where(x => x.paramKey == "membraneLength").FirstOrDefault().paramValue;
this.volumesNumber.Text = GetSysConfigList("SysConfig").Where(x => x.paramKey == "volumesNumber").FirstOrDefault().paramValue;
}
else
{
MessageBox.Show("EA参数设置失败");
}
}
public async Task EaParamSetFunction(string membraneLength, string volumesNumber)
{
try
{
var membraneLengthInfo = GetSysConfigList("SysConfig").Where(x => x.paramKey == "membraneLength").FirstOrDefault();
var volumesNumberInfo = GetSysConfigList("SysConfig").Where(x => x.paramKey == "volumesNumber").FirstOrDefault();
if (membraneLengthInfo == null)
{
SysClient client = new SysClient()
{
processId = appConfig.processId,
paramKey = "membraneLength",
paramValue = membraneLength,
paramType = "SysConfig",
remark = "EA系数:膜长"
};
await sysClientServices.Add(client);
}
else
{
membraneLengthInfo.paramValue = membraneLength;
await sysClientServices.Update(membraneLengthInfo);
}
if (volumesNumberInfo == null)
{
SysClient client = new SysClient()
{
processId = appConfig.processId,
paramKey = "volumesNumber",
paramValue = volumesNumber,
paramType = "SysConfig",
remark = "EA系数:系数"
};
await sysClientServices.Add(client);
}
else
{
volumesNumberInfo.paramValue = volumesNumber;
await sysClientServices.Update(volumesNumberInfo);
}
return true;
}
catch (Exception ex)
{
LogHelperBusiness.LogError("EA参数设置异常", ex);
return false;
}
}
///
/// 获取配置列表
///
///
private List GetSysConfigList(string paramType)
{
try
{
Expression> exp = s1 => true;
if (StringExtension.IsNotBlank(paramType))
{
exp = exp.And(x => x.paramType == paramType);
}
exp = exp.And(x => x.processId == appConfig.processId);
List info = sysClientServices.Query(exp).Result;
return info;
}
catch (Exception ex)
{
LogHelperBusiness.LogError("获取配置列表异常", ex);
return null;
}
}
}
}