| | |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.StationNum), u => u.StationNum.Contains(input.StationNum.Trim())) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.Text), u => u.Text.Contains(input.Text.Trim())) |
| | | //处理外键和TreeSelector相关字段的连接 |
| | | .LeftJoin<WcsPlc>((u, plcid) => u.PlcId == plcid.Id) |
| | | .InnerJoin<WcsPlc>((u, plcid) => u.PlcId == plcid.Id) |
| | | .Select((u, plcid) => new WcsDeviceOutput |
| | | { |
| | | Id = u.Id, |
| | |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = input.Pos.ToString(), |
| | | PosType = PLCDataTypeEnum.String, |
| | | Text = "TaskNo" |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "PLC", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 2).ToString(), |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "WCS", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 4).ToString(), |
| | | PosType = PLCDataTypeEnum.UShort, |
| | | Text = "TaskType" |
| | | PosType = PLCDataTypeEnum.String, |
| | | StringLength = 8, |
| | | Text = "托盘码", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 6).ToString(), |
| | | PosType = PLCDataTypeEnum.UShort, |
| | | Text = "StartLocatNo" |
| | | PlcPos = (input.Pos + 14).ToString(), |
| | | PosType = PLCDataTypeEnum.String, |
| | | StringLength = 15, |
| | | Text = "任务号", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 8).ToString(), |
| | | PosType = PLCDataTypeEnum.UShort, |
| | | Text = "EndLocatNo" |
| | | PlcPos = (input.Pos + 32).ToString(), |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "任务类型", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 34).ToString(), |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "起始工位", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 36).ToString(), |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "目的工位", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 38).ToString(), |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "起始排", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 40).ToString(), |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "起始列", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 42).ToString(), |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "起始层", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 44).ToString(), |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "目的排", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 46).ToString(), |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "目的列", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 48).ToString(), |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "目的层", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 50).ToString(), |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "实际重量", |
| | | }); |
| | | listPosition.Add(new WcsPosition() |
| | | { |
| | | DeviceId = modDevice.Id, |
| | | StationNum = modDevice.StationNum, |
| | | PlcPos = (input.Pos + 52).ToString(), |
| | | PosType = PLCDataTypeEnum.Short, |
| | | StringLength = null, |
| | | Text = "Element_1", |
| | | }); |
| | | |
| | | await _wcsDeviceRep.Context.Insertable(listPosition).ExecuteCommandAsync(); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 获取设备信息列表 |
| | |
| | | } |
| | | if (modDevice.Plc != null) |
| | | { |
| | | var modPositionPLC = listPosition.FirstOrDefault(s => s.Text == "PLC流程字"); |
| | | var modPositionPLC = listPosition.FirstOrDefault(s => s.Text == "PLC"); |
| | | if (modPositionPLC != null) |
| | | result = modUtil.SetPlcDBValue(modPositionPLC.PosType, modDbDevice.DbNumber, modPositionPLC.PlcPos, modDevice.Plc); |
| | | } |
| | | if (modDevice.Wcs != null) |
| | | { |
| | | var modPositionWCS = listPosition.FirstOrDefault(s => s.Text == "WCS流程字"); |
| | | var modPositionWCS = listPosition.FirstOrDefault(s => s.Text == "WCS"); |
| | | if (modPositionWCS != null) |
| | | result = modUtil.SetPlcDBValue(modPositionWCS.PosType, modDbDevice.DbNumber, modPositionWCS.PlcPos, modDevice.Wcs); |
| | | } |
| | |
| | | { |
| | | return await _wcsDeviceRep.Context.Queryable<WcsPlc>() |
| | | .Where(w => w.Type == PLCTypeEnum.RobotPalletizer || w.Type == PLCTypeEnum.StackingRobot) |
| | | .OrderByDescending(o => o.Type) |
| | | .OrderBy(o => o.Type) |
| | | .Select(u => new |
| | | { |
| | | id = u.Id, |
| | |
| | | Status = task.Status, |
| | | PZNo = task.PZNo, |
| | | Qty = task.Qty, |
| | | BoxCount=task.BoxCount, |
| | | PalletNo=task.PalletNo, |
| | | |
| | | PlcId=device.PlcId, |
| | | Type = plc.Type |