DESKTOP-9BNTV8O
2025-03-11 3b87f36219202b4cec47840bd9f56fdbe53e7d04
Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
@@ -46,7 +46,7 @@
            .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,
@@ -166,36 +166,140 @@
            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>
    /// 获取设备信息列表
@@ -467,13 +571,13 @@
        }
        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);
        }
@@ -537,7 +641,7 @@
    {
        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,
@@ -580,6 +684,8 @@
                    Status = task.Status,
                    PZNo = task.PZNo,
                    Qty = task.Qty,
                    BoxCount=task.BoxCount,
                    PalletNo=task.PalletNo,
                    PlcId=device.PlcId,
                    Type = plc.Type