1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- using SqlSugar;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using WCS_Client.Extensions;
- using WCS_Client.Frm;
- namespace WCS_Client.Workflow
- {
- /// <summary>
- /// 任务
- /// </summary>
- public class TaskWorkflow
- {
- /// <summary>
- /// 为任务数据表新增列
- /// </summary>
- /// <param name="dataTable">数据源</param>
- /// <param name="db">数据库链接</param>
- public static void DataTableAddColumn(DataTable dataTable, SqlSugarClient db)
- {
- //新增列
- string ADDRCURRENT = "ADDRCURRENT";
- string ADDRline = "ADDRline";
- dataTable.addDataColumn(new List<string> { ADDRCURRENT, ADDRline });
- //获取当前所有任务对应的AGV任务
- List<int> agvIDs = (from d in dataTable.AsEnumerable() select d.Field<int>("AgvTask")).Where(p => p > 0).ToList();
- string ids = "";
- agvIDs.ForEach(p =>
- {
- ids += p;
- if (p != agvIDs[agvIDs.Count - 1]) ids += ",";
- });
- var _sql = $"select * from WCS_AGVTask where ID in ({ids})";
- List<WCS_AGVTask> _AGVTASKs = db.SqlQueryable<WCS_AGVTask>(_sql).ToList();
- //向新增列写入数据
- for (int i = 0; i < dataTable.Rows.Count; i++)
- {
- //写入输送线
- dataTable.Rows[i][ADDRCURRENT] = eqpData.deviceDataPack.StationDatas.Datas.Where(p => p.D521.Tasknum == (int)dataTable.Rows[i][1]).FirstOrDefault()?.Code;
- //不在输送线,尝试写入RGV
- if (string.IsNullOrEmpty(dataTable.Rows[i][ADDRCURRENT].ToString()))
- {
- dataTable.Rows[i][ADDRCURRENT] = eqpData.deviceDataPack.RGVDatas.Datas.Where(p => p.D521.TaskID_1 == (int)dataTable.Rows[i][1] && p.D521.PH_Status_1).FirstOrDefault()?.Code;
- }
- //不在输送线/RGV,尝试写入堆垛机
- if (string.IsNullOrEmpty(dataTable.Rows[i][ADDRCURRENT].ToString()))
- {
- dataTable.Rows[i][ADDRCURRENT] = eqpData.deviceDataPack.SCDatas.Datas.Where(p => p.D521.TaskID_1 == (int)dataTable.Rows[i][1]).FirstOrDefault()?.Code;
- }
- //开始写入产线
- dataTable.Rows[i][ADDRline] = _AGVTASKs.Where(p => p.ID == (int)dataTable.Rows[i]["AgvTask"]).FirstOrDefault()?.Position;
- dataTable.AcceptChanges();
- }
- }
- }
- }
|