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().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; } } }