Files
lserp_cs_6.0/其他程序/Lskj.GetWorkOrderCallback/GetWorkOrderCallback.cs
T
cyf ab56a9bcf7 基线 SVN r240
SVN-Revision: r240
2025-02-06 06:46:06 +00:00

144 lines
10 KiB
C#

using Lskj.Web.Core.BLL;
using Lskj.Web.Core.Entities;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Lskj.GetWorkOrderCallback
{
interface GetWorkOrderCallbackInterface
{
BaseResponse UpdateLserpDataBase(string dataBody);
}
public class GetWorkOrderCallback : BaseImpl, GetWorkOrderCallbackInterface
{
public GetWorkOrderCallback()
{
//dbOperator = new Lskj.Data.ADO.Template.DbTemplate("server=114.116.135.188,16688;database=lserp_2024_xcl;persist security info=true;user id=lserpAdmin;password=lserp110;max pool size=512;", ProviderName);
}
public BaseResponse UpdateLserpDataBase(string dataBody)
{
BaseResponse baseResponse = new BaseResponse();
try
{
baseResponse.success = false;
baseResponse.msg = "成功";
if (!string.IsNullOrEmpty(dataBody))
{
if (dbOperator.ConnectionTest())
{
JObject DataBody = (JObject)JsonConvert.DeserializeObject(dataBody);
string plant = DataBody.ContainsKey("Plant") ? DataBody["Plant"] + "" : "";
string machineID = DataBody.ContainsKey("MachineID") ? DataBody["MachineID"] + "" : "";
string shiftName = DataBody.ContainsKey("ShiftName") ? DataBody["ShiftName"] + "" : "";
string workOrderNo = DataBody.ContainsKey("WorkOrderNo") ? DataBody["WorkOrderNo"] + "" : "";
string orderDate = DataBody.ContainsKey("OrderDate") ? DataBody["OrderDate"] + "" : "";
string formulaCode = DataBody.ContainsKey("FormulaCode") ? DataBody["FormulaCode"] + "" : "";
string formulaName = DataBody.ContainsKey("FormulaName") ? DataBody["FormulaName"] + "" : "";
string formulaWeight = DataBody.ContainsKey("FormulaWeight") ? DataBody["FormulaWeight"] + "" : "";
string orderState = DataBody.ContainsKey("OrderState") ? DataBody["OrderState"] + "" : "";
string orderBatch = DataBody.ContainsKey("OrderBatch") ? DataBody["OrderBatch"] + "" : "";
string batch = DataBody.ContainsKey("Batch") ? DataBody["Batch"] + "" : "";
string batchWeight = DataBody.ContainsKey("BatchWeight") ? DataBody["BatchWeight"] + "" : "";
string barcode = DataBody.ContainsKey("Barcode") ? DataBody["Barcode"] + "" : "";
string startTime = DataBody.ContainsKey("StartTime") ? DataBody["StartTime"] + "" : "";
string mfgTime = DataBody.ContainsKey("MfgTime") ? DataBody["MfgTime"] + "" : "";
if (DataBody.ContainsKey("WorkOrderFormula") && DataBody.ContainsKey("WeighingRecordList"))
{
StringBuilder stringBuilder = new StringBuilder();
//stringBuilder.Append($"delete from mrp_workzhongliangtab where Plant = '{plant}' and ShiftName = '{shiftName}' and machineId = '{machineID}' and WorkOrderNo = '{workOrderNo}';\r\n");
stringBuilder.Append($"delete from mrp_workzhongliangtab where WorkOrderNo = '{workOrderNo}' and Batch = '{batch}';\r\n");
JArray WorkOrderFormula = (JArray)DataBody["WorkOrderFormula"];
JArray WeighingRecordList = (JArray)DataBody["WeighingRecordList"];
for (int i = 0; i < WorkOrderFormula.Count; i++)
{
JObject WorkOrderFormulaDtl = (JObject)WorkOrderFormula[i];
string materialNo = WorkOrderFormulaDtl.ContainsKey("MaterialNo") ? WorkOrderFormulaDtl["MaterialNo"] + "" : "";
string materialName = WorkOrderFormulaDtl.ContainsKey("MaterialName") ? WorkOrderFormulaDtl["MaterialName"] + "" : "";
string materialWeight = WorkOrderFormulaDtl.ContainsKey("MaterialWeight") ? WorkOrderFormulaDtl["MaterialWeight"] + "" : "";
JObject WeighingRecordListDtl = WeighingRecordList.Cast<JObject>().Where(n => (n["MaterialNo"] + "").Equals(materialNo) && (n["MaterialName"] + "").Equals(materialName)).FirstOrDefault();
string weighingValue = "";
if (WeighingRecordListDtl != null)
{
weighingValue = WeighingRecordListDtl.ContainsKey("WeighingValue") ? WeighingRecordListDtl["WeighingValue"] + "" : "";
}
stringBuilder.Append($"INSERT INTO mrp_workzhongliangtab (Plant, MachineID, ShiftName, WorkOrderNo, OrderDate, FormulaCode, FormulaName, FormulaWeight, OrderState, OrderBatch, Batch, BatchWeight, Barcode, StartTime, MfgTime, MaterialNo, MaterialName, MaterialWeight, WeighingValue) VALUES ('{plant}', '{machineID}', '{shiftName}', '{workOrderNo}', '{orderDate}', '{formulaCode}', '{formulaName}', '{formulaWeight}', '{orderState}', '{orderBatch}', '{batch}', '{batchWeight}', '{barcode}', '{startTime}', '{mfgTime}', '{materialNo}', '{materialName}', '{materialWeight}', '{weighingValue}');\r\n");
}
if (!string.IsNullOrEmpty(stringBuilder.ToString()))
{
dbOperator.ExecuteNonQuery(stringBuilder.ToString());
}
}
//if (DataBody.ContainsKey("WeighingRecordList"))
//{
// JArray WeighingRecordList = (JArray)DataBody["WeighingRecordList"];
// for (int i = 0; i < WeighingRecordList.Count; i++)
// {
// JObject WeighingRecordListDtl = (JObject)WeighingRecordList[i];
// string materialNo = WeighingRecordListDtl.ContainsKey("MaterialNo") ? WeighingRecordListDtl["MaterialNo"] + "" : "";
// string materialName = WeighingRecordListDtl.ContainsKey("MaterialName") ? WeighingRecordListDtl["MaterialName"] + "" : "";
// string weighingValue = WeighingRecordListDtl.ContainsKey("WeighingValue") ? WeighingRecordListDtl["WeighingValue"] + "" : "";
// if (WeighingRecordListDtl.ContainsKey("MaterialTracedData"))
// {
// JArray MaterialTracedData = (JArray)DataBody["MaterialTracedData"];
// for (int j = 0; j < MaterialTracedData.Count; j++)
// {
// JObject MaterialTracedDataDtl = (JObject)MaterialTracedData[i];
// string materialBarcode = MaterialTracedDataDtl.ContainsKey("MaterialBarcode") ? MaterialTracedDataDtl["MaterialBarcode"] + "" : "";
// string weight = MaterialTracedDataDtl.ContainsKey("Weight") ? MaterialTracedDataDtl["Weight"] + "" : "";
// string lotNo = MaterialTracedDataDtl.ContainsKey("LotNo") ? MaterialTracedDataDtl["LotNo"] + "" : "";
// }
// }
// }
//}
if (DataBody.ContainsKey("AlarmList"))
{
StringBuilder stringBuilder = new StringBuilder();
//stringBuilder.Append($"delete from mrp_workbaojintab where Plant = '{plant}' and ShiftName = '{shiftName}' and machineId = '{machineID}' and WorkOrderNo = '{workOrderNo}';\r\n");
stringBuilder.Append($"delete from mrp_workbaojintab where WorkOrderNo = '{workOrderNo}' and Batch = '{batch}';\r\n");
JArray AlarmList = (JArray)DataBody["AlarmList"];
for (int i = 0; i < AlarmList.Count; i++)
{
JObject AlarmListDtl = (JObject)AlarmList[i];
string alarmCode = AlarmListDtl.ContainsKey("AlarmCode") ? AlarmListDtl["AlarmCode"] + "" : "";
string alarmMsg = AlarmListDtl.ContainsKey("AlarmMsg") ? AlarmListDtl["AlarmMsg"] + "" : "";
string alarmTime = AlarmListDtl.ContainsKey("AlarmTime") ? AlarmListDtl["AlarmTime"] + "" : "";
stringBuilder.Append($"insert into mrp_workbaojintab (Plant,ShiftName,machineId,WorkOrderNo,OrderDate,OrderState,OrderBatch,BatchWeight,Batch,MfgTime,AlarmCode,AlarmMsg,AlarmTime) values ('{plant}','{shiftName}','{machineID}','{workOrderNo}','{orderDate}','{orderState}','{orderBatch}','{batchWeight}','{batch}','{mfgTime}','{alarmCode}','{alarmMsg}','{alarmTime}');\r\n");
}
if (!string.IsNullOrEmpty(stringBuilder.ToString()))
{
dbOperator.ExecuteNonQuery(stringBuilder.ToString());
}
}
baseResponse.success = true;
}
else
{
baseResponse.success = false;
baseResponse.msg = "网络连接异常";
}
}
else
{
baseResponse.success = false;
baseResponse.msg = "数据为空";
}
}
catch (Exception ex)
{
baseResponse.success = false;
baseResponse.msg = ex.Message;
}
finally
{
string insertSql = $"INSERT INTO p_GetWorkOrderCallbackTab ( rtnmsg, datetime ,errormsg) VALUES ('{dataBody}','{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}','{baseResponse.msg + ""}');";
dbOperator.ExecuteNonQuery(insertSql);
}
return baseResponse;
}
}
}