| | |
| | | { |
| | | get |
| | | { |
| | | if (incomingCheckMethod == null) |
| | | if (dataUploadMethod == null) |
| | | { |
| | | incomingCheckMethod = InitialMESWebServiceMethod(DataUploadMethodName, out DataUploadObj); |
| | | dataUploadMethod = InitialMESWebServiceMethod(DataUploadMethodName, out DataUploadObj); |
| | | } |
| | | |
| | | return incomingCheckMethod; |
| | | return dataUploadMethod; |
| | | } |
| | | set => incomingCheckMethod = value; |
| | | set => dataUploadMethod = value; |
| | | } |
| | | |
| | | private MethodInfo InitialMESWebServiceMethod(string methodName, out object invokeClass) |
| | |
| | | //string paraStr = JsonConvert.SerializeObject(paras); |
| | | //LogAsync(DateTime.Now, $"MES入料检测 {url}", paraStr); |
| | | |
| | | IncomingCheckMethod = InitialMESWebServiceMethod(IncomingCheckMethodName, out IncomingCheckObj); |
| | | //IncomingCheckMethod = InitialMESWebServiceMethod(IncomingCheckMethodName, out IncomingCheckObj); |
| | | |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start(); |
| | |
| | | //string paraStr = JsonConvert.SerializeObject(paras); |
| | | //LogAsync(DateTime.Now, $"MES数据上传 {url}", paraStr); |
| | | |
| | | DataUploadMethod = InitialMESWebServiceMethod(DataUploadMethodName, out DataUploadObj); |
| | | //DataUploadMethod = InitialMESWebServiceMethod(DataUploadMethodName, out DataUploadObj); |
| | | |
| | | Stopwatch sw = new Stopwatch(); |
| | | sw.Start(); |
| | |
| | | pMeasure.PResult == "OK" ? "PASS" : "FAIL", |
| | | Config.LineCode, |
| | | GetMESSlantData(pMeasure), |
| | | GetMESAlignmentData(pMeasure) |
| | | GetMESAlignmentData(pMeasure), |
| | | GetNGKeys(pMeasure) |
| | | }; |
| | | |
| | | //LogAsync(DateTime.Now, $"{barcode}产品检测数据上传", JsonConvert.SerializeObject(paras)); |
| | |
| | | |
| | | private string GetMESAlignmentData(ProductionMeasurement pMeasure) |
| | | { |
| | | return string.Join(",", pMeasure.Measurements.Where(u => u.MeasureType == "Alignment").Select(u => $"{u.Name}:{u.Spec.ActualValue.Value.ToString(_precision)}")); |
| | | return string.Join(",", pMeasure.Measurements.Where(u => u.MeasureType.StartsWith("Alignment")).Select(u => $"{u.Name}:{u.Spec.ActualValue.Value.ToString(_precision)}")); |
| | | } |
| | | |
| | | private string GetMESSlantData(ProductionMeasurement pMeasure) |
| | | { |
| | | return string.Join(",", pMeasure.Measurements.Where(u => u.MeasureType == "Slant").Select(u => $"{u.Name}:{u.Spec.ActualValue.Value.ToString(_precision)}")); |
| | | return string.Join(",", pMeasure.Measurements.Where(u => u.MeasureType.StartsWith("Slant")).Select(u => $"{u.Name}:{u.Spec.ActualValue.Value.ToString(_precision)}")); |
| | | } |
| | | |
| | | private string GetNGKeys(ProductionMeasurement pMeasure) |
| | | { |
| | | string ngCodes = ""; |
| | | Dictionary<string, List<string>> ngCodeDict = new Dictionary<string, List<string>>(); |
| | | |
| | | var ngList = pMeasure.Measurements.Where(m => m.Spec.MeasureResult != true).ToList(); |
| | | if (ngList.Count == 0) |
| | | return ""; |
| | | |
| | | ngList.GroupBy(m => m.MeasureType).ToList().ForEach(g => |
| | | { |
| | | var mType = Config.MeasureTypeCollection.FirstOrDefault(u => u.Code == g.Key); |
| | | if (mType != null) |
| | | { |
| | | if (!ngCodeDict.ContainsKey(mType.NGCode)) |
| | | { |
| | | ngCodeDict[mType.NGCode] = new List<string>(); |
| | | } |
| | | |
| | | g.ToList().ForEach(k => |
| | | { |
| | | k.KeyUnitCollection.Select(kk => kk.Key).ToList().ForEach(key => |
| | | { |
| | | string uploadKeyCode = key; |
| | | var keyCodeMap = Config.KeyCodeMappingCollection.FirstOrDefault(kcm => kcm.Key == key); |
| | | if (keyCodeMap != null) |
| | | { |
| | | uploadKeyCode = keyCodeMap.KeyCode; |
| | | } |
| | | |
| | | if (!ngCodeDict[mType.NGCode].Contains(uploadKeyCode)) |
| | | { |
| | | ngCodeDict[mType.NGCode].Add(uploadKeyCode); |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | if (ngCodeDict.Count > 0) |
| | | { |
| | | ngCodes = string.Join(";", ngCodeDict.ToList().Select(u => $"{u.Key}:{string.Join(",", u.Value)}")); |
| | | } |
| | | |
| | | return ngCodes; |
| | | } |
| | | } |
| | | |