示例#1
0
 public IList <LotAttribute> GetLotAttributes(string lotNumber)
 {
     using (LotQueryServiceClient client = new LotQueryServiceClient())
     {
         PagingConfig cfg = new PagingConfig()
         {
             IsPaging = false,
             Where    = string.Format("Key.LotNumber='{0}'", lotNumber)
         };
         MethodReturnResult <IList <LotAttribute> > result = client.GetAttribute(ref cfg);
         if (result.Code <= 0 && result.Data != null)
         {
             return(result.Data);
         }
     }
     return(null);
 }
示例#2
0
 //
 //POST: /WIP/LotQuery/GetLotAttribute
 public async Task <ActionResult> GetLotAttributeWS(string lotNumber)
 {
     using (LotQueryServiceClient client = new LotQueryServiceClient())
     {
         await Task.Run(() =>
         {
             PagingConfig cfg = new PagingConfig()
             {
                 IsPaging = false,
                 Where    = string.Format("Key.LotNumber='{0}'", lotNumber),
                 OrderBy  = "EditTime"
             };
             MethodReturnResult <IList <LotAttribute> > result = client.GetAttribute(ref cfg);
             if (result.Code == 0)
             {
                 ViewBag.AttributeList = result.Data;
             }
         });
     }
     return(PartialView("_AttributeListPartial_ws"));
 }
示例#3
0
        /// <summary>
        /// 将图片数据上传到MES中。
        /// </summary>
        /// <param name="element">图片设备配置。</param>
        /// <returns>true:转置成功。false:转置失败。</returns>
        public void Execute(ImageDeviceElement element)
        {
            bool   blFindFiles          = false;
            bool   blTransferDataResult = true;
            string strTransferDataMsg   = "";

            try
            {
                //获取源文件夹路径。
                string sourcePath = this.GetSourcePath(element);
                if (string.IsNullOrEmpty(sourcePath))
                {
                    blTransferDataResult = false;
                    strTransferDataMsg   = string.Format("获取 {0} 源文件夹路径失败。", element.Name);
                }
                //获取目标文件夹路径。
                string sourceRootPath = element.SourcePathRoot.TrimEnd(Path.DirectorySeparatorChar);
                string targetRootPath = element.TargetPathRoot.TrimEnd(Path.DirectorySeparatorChar);
                //string targetPath = sourcePath.Replace(sourceRootPath, targetRootPath);
                string targetPath = this.GetTargetPath(element);

                if (Directory.Exists(targetPath) == false)
                {
                    Directory.CreateDirectory(targetPath);
                }
                //获取源文件夹下的未移转图片。
                DirectoryInfo diSourcePath  = new DirectoryInfo(sourcePath);
                string        searchPattern = string.Format("*.{0}", element.FileExtensionName);
                FileInfo[]    fileInfos     = diSourcePath.GetFiles(searchPattern, SearchOption.AllDirectories);
                if (fileInfos != null && fileInfos.Length > 0)
                {
                    blFindFiles = true;
                }
                DateTime dtMaxTime = DateTime.MinValue;
                //遍历文件夹文件。
                int maxNumberForLoop = 5;
                int nIndexOfFile     = 0;
                if (fileInfos.Length > maxNumberForLoop)
                {
                    SortAsFileCreationTime(ref fileInfos);
                }
                IList <LotAttribute> lstLotAttribute = new List <LotAttribute>();
                foreach (FileInfo fiItem in fileInfos)
                {
                    if (nIndexOfFile > maxNumberForLoop)
                    {
                        break;
                    }
                    nIndexOfFile = nIndexOfFile + 1;

                    string targetFileName = fiItem.FullName.Replace(sourcePath, targetPath);
                    Directory.CreateDirectory(Path.GetDirectoryName(targetFileName));

                    #region  //更新批次属性数据。
                    try
                    {
                        bool blFlag = true;
                        //复制源文件到目标文件夹下。
                        // blFlag = this.MoveFile(element, fiItem.FullName, targetFileName);
                        string lotNumber = "";

                        if (blFlag)
                        {
                            #endregion

                            #region //更新 Lot属性
                            lotNumber = fiItem.Name.Replace(fiItem.Extension, string.Empty).ToUpper().Split('_', '-')[0];
                            lotNumber = lotNumber.Trim();

                            #region//获取批次所在工序及状态
                            using (LotQueryServiceClient client = new LotQueryServiceClient())
                            {
                                PagingConfig cfg = new PagingConfig()
                                {
                                    Where   = string.Format("LOT_NUMBER = '{0} '", lotNumber),
                                    OrderBy = "EditTime Desc"
                                };
                                MethodReturnResult <IList <LotTransaction> > result = client.GetTransaction(ref cfg);
                                if (result.Code <= 0 && result.Data != null && result.Data.Count > 0 && result.Data[0].RouteStepName == "功率测试" && result.Data[0].Activity == EnumLotActivity.TrackOut)
                                {
                                    string attributeName  = string.Format("{0}ImagePath", element.Type);
                                    string attributeValue = targetFileName.Replace(targetRootPath, element.HttpPathRoot);
                                    attributeValue = attributeValue.Replace('\\', '/');

                                    //获取批次属性是否已存在EL3的属性,如果不存在,则更新EL3图片属性
                                    using (LotAttributeServiceClient client2 = new LotAttributeServiceClient())
                                    {
                                        PagingConfig cfg1 = new PagingConfig()
                                        {
                                            Where   = string.Format("Key.LotNumber = '{0}'and Key.AttributeName='ELImagePath'", lotNumber),
                                            OrderBy = "EditTime Desc"
                                        };
                                        MethodReturnResult <IList <LotAttribute> > result2 = client.GetAttribute(ref cfg1);
                                        if (result2.Code <= 0 && result2.Data != null && result2.Data.Count > 0)
                                        {
                                            blFlag = this.MoveFile(element, fiItem.FullName, targetFileName);
                                            FileInfo[] fileInfos1 = diSourcePath.GetFiles(searchPattern, SearchOption.AllDirectories);
                                            foreach (FileInfo fiItem1 in fileInfos1)
                                            {
                                                if (nIndexOfFile > maxNumberForLoop)
                                                {
                                                    break;
                                                }
                                                nIndexOfFile = nIndexOfFile + 1;

                                                targetFileName = fiItem1.FullName.Replace(sourcePath, targetPath);
                                                Directory.CreateDirectory(Path.GetDirectoryName(targetFileName));
                                                File.Delete(fiItem1.FullName);
                                            }
                                            attributeValue = targetFileName.Replace(targetRootPath, element.HttpPathRoot);
                                            LotAttribute obj = new LotAttribute()
                                            {
                                                Key = new LotAttributeKey()
                                                {
                                                    LotNumber     = lotNumber,
                                                    AttributeName = attributeName
                                                },
                                                AttributeValue = attributeValue,
                                                Editor         = "system",
                                                EditTime       = DateTime.Now
                                            };
                                            using (LotAttributeServiceClient client1 = new LotAttributeServiceClient())
                                            {
                                                MethodReturnResult result1 = client1.Modify(obj);
                                                if (result.Code > 0)
                                                {
                                                    strTransferDataMsg = string.Format("更新批次号{0}错误:{1}", lotNumber, result.Message);
                                                    LogMessage(false, element.Type + ":" + strTransferDataMsg);
                                                    client.Close();
                                                }
                                                else
                                                {
                                                    LogMessage(true, element.Type + ":" + lotNumber);
                                                }
                                                client.Close();
                                            }
                                        }
                                        else
                                        {
                                            LotAttribute obj = new LotAttribute()
                                            {
                                                Key = new LotAttributeKey()
                                                {
                                                    LotNumber     = lotNumber,
                                                    AttributeName = attributeName
                                                },
                                                AttributeValue = attributeValue,
                                                Editor         = "system",
                                                EditTime       = DateTime.Now
                                            };
                                            using (LotAttributeServiceClient client1 = new LotAttributeServiceClient())
                                            {
                                                MethodReturnResult result1 = client1.Modify(obj);
                                                if (result.Code > 0)
                                                {
                                                    strTransferDataMsg = string.Format("更新批次号{0}错误:{1}", lotNumber, result.Message);
                                                    LogMessage(false, element.Type + ":" + strTransferDataMsg);
                                                    client.Close();
                                                }
                                                else
                                                {
                                                    LogMessage(true, element.Type + ":" + lotNumber);
                                                }
                                                client.Close();
                                            }
                                            blFlag = this.MoveFile(element, fiItem.FullName, targetFileName);
                                            File.Delete(fiItem.FullName);
                                        }
                                    }
                                }
                                else
                                {
                                    result.Message     = "组件批次不在功率测试出站";
                                    strTransferDataMsg = string.Format("批次号{0}错误:{1}", lotNumber, result.Message);
                                    blFlag             = this.MoveFile(element, fiItem.FullName, targetFileName);
                                    File.Delete(fiItem.FullName);
                                }

                                #endregion
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        LogMessage(false, element.Type + ":" + ex.Message);
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                blTransferDataResult = false;
                LogMessage(false, element.Type + ":" + ex.Message);
            }

            if (blFindFiles == false)
            {
                strTransferDataMsg = "";
                LogMessage(true, element.Type + ":" + strTransferDataMsg);
            }
        }