| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271 |
- using Newtonsoft.Json;
- using NPOI.Util;
- using Prism.Mvvm;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using TeamAAS_VP.Models.Product;
- using TeamAAS_VP.Models.Robot;
- namespace TeamAAS_VP.Models
- {
- [JsonObject(MemberSerialization.OptOut)]
- public class ProductModel : BindableBase
- {
- private Guid _ID;
- public Guid ID
- {
- get { return _ID; }
- set { SetProperty(ref _ID, value); }
- }
- private string _Name;
- public string Name
- {
- get { return _Name; }
- set { SetProperty(ref _Name, value); }
- }
- private int _NumberCode;
- public int NumberCode
- {
- get { return _NumberCode; }
- set
- {
- SetProperty(ref _NumberCode, value);
- }
- }
- private string _Description;
- public string Description
- {
- get { return _Description; }
- set { SetProperty(ref _Description, value); }
- }
- private DateTime _DateTime;
- public DateTime DateTime
- {
- get { return _DateTime; }
- set { SetProperty(ref _DateTime, value); }
- }
- private ObservableCollection<CameraProcedure> _CameraProcedures;
- /// <summary>
- /// 相机流程集合
- /// </summary>
- public ObservableCollection<CameraProcedure> CameraProcedures
- {
- get { return _CameraProcedures; }
- set { SetProperty(ref _CameraProcedures, value); }
- }
- private CameraProcedure _SelectedProcedure;
- public CameraProcedure SelectedProcedure
- {
- get { return _SelectedProcedure; }
- set { SetProperty(ref _SelectedProcedure, value); }
- }
- private RobotPoint _RobotPoint;
- /// <summary>
- /// 机器人点位表
- /// </summary>
- public RobotPoint RobotPoint
- {
- get { return _RobotPoint; }
- set { SetProperty(ref _RobotPoint, value); }
- }
- private int _Speed;
- /// <summary>
- /// PTP速度
- /// </summary>
- public int Speed
- {
- get { return _Speed; }
- set { SetProperty(ref _Speed, value); }
- }
- private int _Accel;
- /// <summary>
- /// PTP加减速度
- /// </summary>
- public int Accel
- {
- get { return _Accel; }
- set { SetProperty(ref _Accel, value); }
- }
- private int _Speeds;
- /// <summary>
- /// CP速度
- /// </summary>
- public int Speeds
- {
- get { return _Speeds; }
- set { SetProperty(ref _Speeds, value); }
- }
- private int _Accels;
- /// <summary>
- /// CP加减速度
- /// </summary>
- public int Accels
- {
- get { return _Accels; }
- set { SetProperty(ref _Accels, value); }
- }
- private bool _Power;
- /// <summary>
- /// 功率
- /// </summary>
- public bool Power
- {
- get { return _Power; }
- set { SetProperty(ref _Power, value); }
- }
- private bool _IsUserUpCamera;
- /// <summary>
- /// 启用二次定位相机
- /// </summary>
- public bool IsUserUpCamera
- {
- get { return _IsUserUpCamera; }
- set { SetProperty(ref _IsUserUpCamera, value); }
- }
- private ObservableCollection<ProductGlobalParam> _GlobalParamListCollection;
- /// <summary>
- /// 产品全局参数集合
- /// </summary>
- public ObservableCollection<ProductGlobalParam> GlobalParamListCollection
- {
- get { return _GlobalParamListCollection; }
- set { SetProperty(ref _GlobalParamListCollection, value); }
- }
- private bool _IsLoad;
- /// <summary>
- /// 是否已加载
- /// </summary>
- [JsonIgnore]
- public bool IsLoad
- {
- get { return _IsLoad; }
- set { SetProperty(ref _IsLoad, value); }
- }
- private bool _IsCreate;
- /// <summary>
- /// 正在创建
- /// </summary>
- [JsonIgnore]
- public bool IsCreate
- {
- get { return _IsCreate; }
- set { SetProperty(ref _IsCreate, value); }
- }
- /// <summary>
- /// 增加相机流程
- /// </summary>
- /// <param name="cameraProcedure"></param>
- /// <exception cref="Exception"></exception>
- public void AddCameraProcedure(CameraProcedure cameraProcedure)
- {
- if (CameraProcedures == null)
- {
- CameraProcedures = new ObservableCollection<CameraProcedure>();
- }
- //判断是否已存在相同相机的流程
- if (CameraProcedures.Any(cp => cp.ID == cameraProcedure.ID))
- {
- throw new Exception("已存在相同相机的流程,无法添加重复相机流程!");
- }
- CameraProcedures.Add(cameraProcedure);
- }
- /// <summary>
- /// 移除相机流程
- /// </summary>
- /// <param name="id"></param>
- public void RemoveCameraProcedure(Guid id)
- {
- var procedure = CameraProcedures.FirstOrDefault(cp => cp.ID == id);
- if (procedure != null)
- {
- CameraProcedures.Remove(procedure);
- }
- }
- /// <summary>
- /// 增加全局参数
- /// </summary>
- /// <param name="globalParam"></param>
- public void AddGlobalParam(ProductGlobalParam globalParam)
- {
- if (GlobalParamListCollection == null)
- {
- GlobalParamListCollection = new ObservableCollection<ProductGlobalParam>();
- }
- globalParam.Number= GlobalParamListCollection.Count + 1;
- GlobalParamListCollection.Add(globalParam);
- }
- /// <summary>
- /// 移除全局参数
- /// </summary>
- /// <param name="globalParam"></param>
- public void RemoveGlobalParam(ProductGlobalParam globalParam)
- {
- GlobalParamListCollection.Remove(globalParam);
- //重新编号
- int number = 1;
- //先排序
- var sortedList = GlobalParamListCollection.OrderBy(gp => gp.Number).ToList();
- foreach (var gp in sortedList)
- {
- gp.Number = number;
- number++;
- }
- GlobalParamListCollection=new ObservableCollection<ProductGlobalParam>(sortedList);
- }
- public ProductModel Clone()
- {
- return new ProductModel
- {
- ID = this.ID,
- Name = this.Name,
- NumberCode = this.NumberCode,
- Description = this.Description,
- DateTime = this.DateTime,
- CameraProcedures = new ObservableCollection<CameraProcedure>(this.CameraProcedures.Select(cp => cp.Clone())),
- RobotPoint = this.RobotPoint?.Clone(),
- Speed = this.Speed,
- Accel = this.Accel,
- Speeds = this.Speeds,
- Accels = this.Accels,
- Power = this.Power,
- IsUserUpCamera = this.IsUserUpCamera,
- GlobalParamListCollection = new ObservableCollection<ProductGlobalParam>(this.GlobalParamListCollection.Select(gp => gp.Copy())),
- IsLoad = this.IsLoad,
- IsCreate = this.IsCreate
- };
- }
- }
- }
|