Files
15-WeiChai-WC_CentralControl/SCADA/MES_A95/MIS_upload_QC.cs

203 lines
6.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using CentralControl;
using DataLinkMesWork;
using Newtonsoft.Json;
using SlMesDbIterface;
using System;
using System.Collections.Generic;
using System.Data;
using System.Threading;
/// <summary>
///
/// </summary>
namespace MesWork
{
/// <summary>
/// 质量数据的拆解和存储
/// </summary>
public class MesWork_QC_upload
{
/// <summary>
/// 同步执行任务
/// </summary>
public static void SyncTask_UploadMeasureData(string id_tagCF)
{
new Thread(new ThreadStart(delegate ()
{
string msg = "";
try
{
// 查询质量数据
bool isUploadOk = false;
var sql_AMS_Plan = $"SELECT * FROM 质量数据上传_视图" +
$" where [接口输出] != 1 and id_tagCF = {id_tagCF} order by [工位号],[TagID] ";
bool isOk = SqlOperation.ExecuteSql(sql_AMS_Plan, out DataTable dt_MeasureData, out string err1);
if (isOk)
{
if(dt_MeasureData.Rows.Count > 0)
{
isUploadOk = upLoadData(dt_MeasureData, out msg);
}
}
if(isUploadOk)
{
upLoadUpdate(id_tagCF, 1, msg);
}
else
{
upLoadUpdate(id_tagCF, 2, msg);
}
}
catch (Exception err)
{
msg = err.Message;
upLoadUpdate(id_tagCF, 2, msg);
}
}))
{ IsBackground = true }.Start();
}
public static bool upLoadData(DataTable dt, out string msg)
{
try
{
List<SapMeasureData> SapMeasureDataList = new List<SapMeasureData>();
string dateShort = new DateTime().ToString("yyyyMMdd");
for (int i = 0; i < dt.Rows.Count; i++)
{
SapMeasureData sapMeasureData = new SapMeasureData();
sapMeasureData.ID = dt.Rows[i]["Id"].ToString();
sapMeasureData.operationCode = dt.Rows[i]["工位代码"].ToString();
sapMeasureData.itemCode = dt.Rows[i]["订货号"].ToString();
sapMeasureData.productCode = dt.Rows[i]["EngineID"].ToString();
sapMeasureData.characterName = dt.Rows[i]["测量位置"].ToString() + dt.Rows[i]["测量项目"].ToString();
sapMeasureData.content = "";
sapMeasureData.cNumber = "";
sapMeasureData.positionNumber = dt.Rows[i]["列位置"].ToString();
sapMeasureData.specialCategory = "";
sapMeasureData.cImportance = "";
sapMeasureData.unit = dt.Rows[i]["测量单位"].ToString();
sapMeasureData.normalMin = Convert.ToInt32(dt.Rows[i]["下限值"]);
sapMeasureData.normalMax = Convert.ToInt32(dt.Rows[i]["上限值"]);
sapMeasureData.checkInput = dt.Rows[i]["TagValue"].ToString();
sapMeasureData.isNormal = Convert.ToInt32(dt.Rows[i]["IsGoodBad"]);
sapMeasureData.checkToolNumber = "";
sapMeasureData.checkToolName = "";
sapMeasureData.machineNumber = "";
sapMeasureData.machineSpindleNumber = "";
sapMeasureData.machineClampingNumber = "";
sapMeasureData.inputDate = dt.Rows[i]["操作时间"].ToString();
sapMeasureData.reMarks = "";
SapMeasureDataList.Add(sapMeasureData);
}
ResponseBody_WebAPI_Boms res = CALL_Interfalce_WebAPI.RequestPost_UploadMeasureData_To_SAP(JsonConvert.SerializeObject(SapMeasureDataList));
if (res.code == "200")
{
msg = res.message;
return true;
}
else
{
msg = res.message;
return false;
}
}
catch (Exception err)
{
msg = err.Message;
return false;
}
}
public static void upLoadUpdate(string id_tagCF, int isOk, string msg)
{
try
{
var sql_AMS_Plan = $"UPDATE [dbo].[测量数据合格] SET [接口输出] = {isOk},数据说明 = '{msg}'" +
$" where [id_tagCF] = '{id_tagCF}'";
DataAccess.ExecuteDataTable(sql_AMS_Plan, out DataTable dt_MeasureData);
}
catch (Exception err)
{
}
}
}
class SapMeasureData
{
/*
id number(12) id
line_id varchar2(10) y 生产线id
operation_code varchar2(10) y 工位编码
item_code varchar2(255) y 物料编码
product_code varchar2(16) y 序列号
character_name varchar2(255) y 特性名称
content varchar2(255) y 特性内容(产品/过程规格/公差)φ是大写
c_number varchar2(40) y 特性编号
position_number varchar2(40) y 位置编号
special_category varchar2(10) y 特殊特性分类
c_importance varchar2(10) y 特性重要度
unit varchar2(10) y 单位
normal_min number y 合格下限
normal_max number y 合格上限
check_input varchar2(255) y 质检结果
isnormal number(1) y 是否合格(01)
check_tool_number varchar2(30) y 测量设备编号
check_tool_name varchar2(80) y 测量设备名称
machine_number varchar2(40) y null 加工设备编号
machine_spindle_number varchar2(40) y null 加工设备主轴编号
machine_clamping_number varchar2(40) y 加工设备工装编号
input_date date y 录入时间
remarks varchar2(255) y 备注
*/
public string ID;
public string lineId = MesWorkForm.LineID_Product;
public string operationCode;
public string itemCode;
public string productCode;
public string characterName;
public string content;
public string cNumber;
public string positionNumber;
public string specialCategory;
public string cImportance;
public string unit;
public int normalMin;
public int normalMax;
public string checkInput;
public int isNormal;
public string checkToolNumber;
public string checkToolName;
public string machineNumber;
public string machineSpindleNumber;
public string machineClampingNumber;
public string inputDate;
public string reMarks;
}
class SapMeasureDataResult
{
public List<SapMeasureData> SapMeasureDataList;
}
}