| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- using System;
- using System.Linq;
- using SHJX.Service.Model.Dao;
- using SHJX.Service.Model.Control;
- namespace SHJX.Service.Control
- {
- public static class CreateTask
- {
- /// <summary>
- /// 创建水样任务
- /// </summary>
- /// <returns></returns>
- public static EquipmentTask NewSampleTask(this SampleDetail args, string waveKey)
- {
- (string OperateType, int Priority) = args.SampleType switch
- {
- "水样" => ("SY", 200),
- "补杯" => ("SY", 100),
- "空白" => ("SY", 300),
- "标定" => ("BD", 400),
- _ => throw new ArgumentNullException(args.SampleType)
- };
- var initRoute = DataCentre.GetRoutes.FirstOrDefault(item => item.OpKey.Equals(OperateType) && item.RouteId.Equals(1) && item.IsInit.Equals("Y"));
- var initStep = DataCentre.GetSteps.FirstOrDefault(item => initRoute != null && item.RouteStepId.Equals(initRoute.InitStep));
- var task = new EquipmentTask
- {
- Priority = Priority,
- WaveKey = waveKey,
- OriginLocalName = args.NodeName,
- From = args.NodeName,
- To = args.NodeName,
- RouteId = initRoute.RouteId,
- RouteStepId = initRoute.InitStep,
- RouteStep = initStep?.RouteStepName,
- RouteType = initRoute?.OpKey,
- RouteUpdateType = initStep?.UpdateRange,
- TaskDetailName = args.Detail,
- GetSampleVolume = args.SampleVolume,
- GetSampleMultiple = args.Multiple,
- TaskType = args.SampleType,
- SampleConcentration = args.Concentration.Equals("低") ? "Low" : "High",
- HgSO4Volume = args.HgSO4,
- QuickTitration = args.QuickTitration
- };
- return task;
- }
- /// <summary>
- /// 创建Wash任务
- /// </summary>
- /// <returns></returns>
- public static EquipmentTask NewWashTask(this string detailName)
- {
- var initRoute = DataCentre.GetRoutes.FirstOrDefault(item => item.OpKey.Equals("Wash") && item.RouteId.Equals(1) && item.IsInit.Equals("Y"));
- if (initRoute == null)
- return null;
- var initStep = DataCentre.GetSteps.FirstOrDefault(item => item.RouteStepId.Equals(initRoute.InitStep));
- var area = DataCentre.GetAreas;
- var localName = area.FirstOrDefault(item => item.AreaName.Equals(initRoute.From))?.PointName;
- var toLocalName = area.FirstOrDefault(item =>
- item.AreaName.Equals(initRoute.To) &&
- item.Status.Equals(true))?.PointName;
- var task = new EquipmentTask
- {
- TaskType = detailName,
- Priority = 500,
- Status = TaskState.Doing,
- OriginLocalName = localName,
- From = localName,
- To = toLocalName,
- RouteId = initRoute.RouteId,
- RouteStepId = initRoute.InitStep,
- RouteStep = initStep?.RouteStepName,
- RouteType = initRoute.OpKey,
- RouteUpdateType = initStep?.UpdateRange
- };
- return task;
- }
- /// <summary>
- /// 创建单点任务
- /// </summary>
- /// <param name="pointName"></param>
- /// <returns></returns>
- public static EquipmentTask NewSinglePointTask(this string pointName)
- {
- var initRoute = DataCentre.GetRoutes.FirstOrDefault(item => item.OpKey.Equals("SP") && item.RouteId.Equals(1) && item.IsInit.Equals("Y"));
- var initStep = DataCentre.GetSteps.FirstOrDefault(item => initRoute != null && item.RouteStepId.Equals(initRoute.InitStep));
- var task = new EquipmentTask
- {
- Status = TaskState.Doing,
- OriginLocalName = pointName,
- From = pointName,
- To = pointName,
- RouteId = 1,
- RouteStepId = initRoute.InitStep,
- RouteType = initRoute.OpKey,
- RouteStep = initStep?.RouteStepName,
- RouteUpdateType = initStep?.UpdateRange
- };
- return task;
- }
- }
- }
|