hwh
2024-08-29 1427584584848e1a8c7997d84945c0d19488d698
Admin.NET/WCS.Application/Service/WcsDevice/WcsDeviceService.cs
@@ -28,19 +28,19 @@
            input.Field = "u.Id";
            input.Order = "desc";
        }
      input.SearchKey = input.SearchKey?.Trim();
        input.SearchKey = input.SearchKey?.Trim();
        var query = _wcsDeviceRep.AsQueryable()
            .WhereIF(!string.IsNullOrEmpty(input.SearchKey), u =>
                u.Text.Contains(input.SearchKey)
            )
            .WhereIF(input.PlcId>0, u => u.PlcId == input.PlcId)
            .WhereIF(input.PlcId > 0, u => u.PlcId == input.PlcId)
            .WhereIF(!string.IsNullOrWhiteSpace(input.Text), u => u.Text.Contains(input.Text.Trim()))
            //处理外键和TreeSelector相关字段的连接
            .LeftJoin<WcsPlc>((u, plcid) => u.PlcId == plcid.Id )
            .LeftJoin<WcsPlc>((u, plcid) => u.PlcId == plcid.Id)
            .Select((u, plcid) => new WcsDeviceOutput
            {
                Id = u.Id,
                PlcId = u.PlcId,
                PlcId = u.PlcId,
                PlcIdIP = plcid.IP,
                Level = (DeviceLevelEnum)u.Level,
                DbNumber = u.DbNumber,
@@ -60,7 +60,7 @@
                CreateOrgName = u.CreateOrgName,
                IsDelete = u.IsDelete,
            });
      return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
        return await query.OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
    }
    /// <summary>
@@ -150,7 +150,54 @@
                ).ToListAsync();
    }
    /// <summary>
    /// 生成点位
    /// </summary>
    /// <param name="input"></param>
    /// <returns></returns>
    [HttpPost]
    [ApiDescriptionSettings(Name = "GeneratePos")]
    [DisplayName("生成点位")]
    public async Task GeneratePos(GeneratePosInput input)
    {
        var modDevice = await _wcsDeviceRep.GetByIdAsync(input.Id);
        var listPosition = new List<WcsPosition>();
        listPosition.Add(new WcsPosition()
        {
            DeviceId = modDevice.Id,
            StationNum = modDevice.StationNum,
            PlcPos = input.Pos.ToString(),
            PosType = PLCDataTypeEnum.String,
            Text = "TaskNo"
        });
        listPosition.Add(new WcsPosition()
        {
            DeviceId = modDevice.Id,
            StationNum = modDevice.StationNum,
            PlcPos = (input.Pos + 4).ToString(),
            PosType = PLCDataTypeEnum.UShort,
            Text = "TaskType"
        });
        listPosition.Add(new WcsPosition()
        {
            DeviceId = modDevice.Id,
            StationNum = modDevice.StationNum,
            PlcPos = (input.Pos + 6).ToString(),
            PosType = PLCDataTypeEnum.UShort,
            Text = "StartLocatNo"
        });
        listPosition.Add(new WcsPosition()
        {
            DeviceId = modDevice.Id,
            StationNum = modDevice.StationNum,
            PlcPos = (input.Pos + 8).ToString(),
            PosType = PLCDataTypeEnum.UShort,
            Text = "EndLocatNo"
        });
        await _wcsDeviceRep.Context.Insertable(listPosition).ExecuteCommandAsync();
    }
}