ComponetInfo.cs 4.8 KB
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TSA_V.Common;
using TSA_V.DeviceLibrary;
using TSA_V.LoadCSVLibrary;

namespace TSA_V.LoadCSVLibrary
{
    public class ComponetInfo : CSVBase
    { 
        public ComponetInfo()
        {
            PositionX = 0;
            PositionY = 0;
            Notes = "";
            ComponentDes = "";
            Text = "";
        }
         
        public int Id { get; set; }

        /// <summary>
        ///位号/编号
        /// </summary>
        [CSVAttribute("Num", true,"位号", "编号", "Part Number")]
        public string TagNo { get; set; }

        /// <summary>
        /// 物料编码/元器件名称
        /// </summary>
        [CSVAttribute("Code", true, "物料编码", "元器件名称", "Name", "Material Code")]
        public string PN { get; set; }
        /// <summary>
        ///位置,多个用分号分割
        /// </summary>
        [CSVAttribute("PNum", true, "料盘位置", "位置", "PositionNum", "Lot")]
        public string PositionNum { get; set; }
        /// <summary>
        ///数量,多个用分号分割
        /// </summary>
        [CSVAttribute("Count", true, "数量", "Quantity")]
        public string ComCount { get; set; } = "0";
        /// <summary>
        ///X坐标
        /// </summary>
        [CSVAttribute("PositionX", false, "X坐标", "X")]
        public double PositionX { get; set; }

        /// <summary>
        ///Y坐标
        /// </summary>
        [CSVAttribute("PositionY", false, "Y坐标", "Y")]
        public double PositionY { get; set; }

        /// <summary>
        ///注意事项
        /// </summary>
        [CSVAttribute("Notes", false, "注意事项", "Note")]
        public string Notes { get; set; }
        /// <summary>
        ///元器件描述
        /// </summary>
        [CSVAttribute("Describe", false, "元器件描述", "Description")]
        public string ComponentDes { get; set; }


        /// <summary>
        ///投影文字
        /// </summary>
        [CSVAttribute("Text", "投影文字", false)]
        public string Text { get; set; } 

        public int  GetSortPosition()
        {
            try
            {
              return   Convert.ToInt32(PositionNum);
            }
            catch (Exception ex)
            {
            }
            return 0;
        }

        public bool IsSameCom(ComponetInfo com)
        {
            if (String.IsNullOrEmpty(this.TagNo))
            {
                if (this.Id <= 0)
                {
                    if (this.PN.Equals(com.PN) && this.PositionNum.Equals(com.PositionNum))
                    {
                        return true;
                    }
                }
                else if (this.Id.Equals(com.Id))
                {
                    return true;
                }
            }
            else if (this.TagNo.Equals(com.TagNo))
            {
                return true;
            }
            return false;
        }
        public bool IsSameCom(string pn,string posNum,string TagNo)
        {
            if (String.IsNullOrEmpty(this.TagNo))
            { 
                    if (this.PN.Equals(pn) && this.PositionNum.Equals(posNum))
                    {
                        return true;
                    } 
            }
            else if (this.TagNo.Equals(TagNo))
            {
                return true;
            }
            return false;
        }
        public bool IsSameCom(SMTPointInfo point)
        {
            if (String.IsNullOrEmpty(this.TagNo))
            {
                if (this.PN.Equals(point.PN)  )
                {
                    return true;
                }              
            }
            else if (this.TagNo.Equals(point.TagNo)&&this.PositionNum.Equals(point.PositionNum))
            {               
                return true;
            }
            return false;
        }

        public bool IsSameComAndCount(SMTPointInfo point)
        {
            try
            {
                if (this.PN.Equals(point.PN) && int.Parse(this.ComCount) > 0)
                {
                    return true;
                } 
            }
            catch (Exception ex)
            {
                LogUtil.error("error :" + ex.ToString());
            }
            return false;
        }
        public string toStr()
        {
            return $"ID:{Id},Pn:{PN},TagNo:{TagNo},X:{PositionX},Y:{PositionY},Des:{ComponentDes},Count:{ComCount},PositionNum:{PositionNum}";
        }
       public int GetCount()
        {
            try
            {
                return int.Parse(this.ComCount);
            }catch(Exception ex)
            {
                LogUtil.error(ex.ToString());
            }
            return 0;
        }
    }
}