using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Ropin.Inspection.Api.Common; using Ropin.Inspection.Model.Entities; using Ropin.Inspection.Model.SearchModel.PRD; using Ropin.Inspection.Model.ViewModel.PRD; using Ropin.Inspection.Service.PRD.Interface; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace Ropin.Inspection.Api.Controllers.PRD { [Route("api/[controller]")] [ApiController] public class BoxApiController : ControllerBase { public ILogger _logger { get; } private readonly IBoxApiService _service; public BoxApiController(IBoxApiService service,ILogger logger) { _service = service; _logger = logger; } /// /// 扫码登录获取权限 /// /// /// /// [Route("GetUserPriv")] [HttpPost] public async Task GetUserPriv(string openId, string deviceCode) { Dictionary dataInfo = new Dictionary(); try { if (string.IsNullOrEmpty(openId) && string.IsNullOrEmpty(deviceCode)) { dataInfo.Add(DataEnum.code.ToString(), "100001"); dataInfo.Add(DataEnum.data.ToString(), "传入参数为空!"); return dataInfo; } var userpriv = await _service.GetUserPriv(openId, deviceCode); dataInfo.Add(DataEnum.code.ToString(), "000000"); dataInfo.Add(DataEnum.data.ToString(), userpriv); return dataInfo; } catch (Exception ex) { dataInfo.Add(DataEnum.code.ToString(), "100003"); dataInfo.Add(DataEnum.data.ToString(), ex.Message); return dataInfo; } } /// /// 新增运行数据记录 /// /// /// /// /// [Route("AddDevData")] [HttpPost] public async Task AddDevData(string C_DeviceCode, string C_ConfigCode, string C_Value) { Dictionary dataInfo = new Dictionary(); try { if (string.IsNullOrEmpty(C_DeviceCode) && string.IsNullOrEmpty(C_ConfigCode) && string.IsNullOrEmpty(C_Value)) { dataInfo.Add(DataEnum.code.ToString(), "100001"); dataInfo.Add(DataEnum.data.ToString(), "传入参数为空!"); return dataInfo; } var devData = await _service.AddDevData(C_DeviceCode, C_ConfigCode, C_Value); if (devData) { dataInfo.Add(DataEnum.code.ToString(), "000000"); dataInfo.Add(DataEnum.data.ToString(), "操作成功!"); } else { dataInfo.Add(DataEnum.code.ToString(), "100002"); dataInfo.Add(DataEnum.data.ToString(), "操作失败!"); } return dataInfo; } catch (Exception ex) { dataInfo.Add(DataEnum.code.ToString(), "100003"); dataInfo.Add(DataEnum.data.ToString(), ex.Message); return dataInfo; } } /// /// 新增报警记录 /// /// /// /// /// [Route("AddDevAlert")] [HttpPost] public async Task AddDevAlert(string C_DeviceCode, string C_ConfigCode, string C_Value) { Dictionary dataInfo = new Dictionary(); try { if (string.IsNullOrEmpty(C_DeviceCode) && string.IsNullOrEmpty(C_ConfigCode) && string.IsNullOrEmpty(C_Value)) { dataInfo.Add(DataEnum.code.ToString(), "100001"); dataInfo.Add(DataEnum.data.ToString(), "传入参数为空!"); return dataInfo; } var devAlert = await _service.AddDevAlert(C_DeviceCode, C_ConfigCode, C_Value); if (devAlert) { dataInfo.Add(DataEnum.code.ToString(), "000000"); dataInfo.Add(DataEnum.data.ToString(), "操作成功!"); } else { dataInfo.Add(DataEnum.code.ToString(), "100002"); dataInfo.Add(DataEnum.data.ToString(), "操作失败!"); } return dataInfo; } catch (Exception ex) { dataInfo.Add(DataEnum.code.ToString(), "100003"); dataInfo.Add(DataEnum.data.ToString(), ex.Message); return dataInfo; } } /// /// 根据设备编码获取设备信息 /// /// /// [Route("GetDeviceInfo")] [HttpPost] public async Task GetDeviceInfo(string C_MachineCode) { Dictionary dataInfo = new Dictionary(); try { if (string.IsNullOrEmpty(C_MachineCode)) { dataInfo.Add(DataEnum.code.ToString(), "100001"); dataInfo.Add(DataEnum.data.ToString(), "传入参数为空!"); return dataInfo; } var deviceInfo = await _service.GetDeviceInfo(C_MachineCode); dataInfo.Add(DataEnum.code.ToString(), "000000"); dataInfo.Add(DataEnum.data.ToString(), deviceInfo); return dataInfo; } catch (Exception ex) { dataInfo.Add(DataEnum.code.ToString(), "100003"); dataInfo.Add(DataEnum.data.ToString(), ex.Message); return dataInfo; } } /// /// 根据openid获取用户信息 /// /// /// [Route("GetUserInfo")] [HttpPost] public async Task GetUserInfo(string openid) { Dictionary dataInfo = new Dictionary(); try { if (string.IsNullOrEmpty(openid)) { dataInfo.Add(DataEnum.code.ToString(), "100001"); dataInfo.Add(DataEnum.data.ToString(), "传入参数为空!"); return dataInfo; } var userInfo = await _service.GetUserInfo(openid); dataInfo.Add(DataEnum.code.ToString(), "000000"); dataInfo.Add(DataEnum.data.ToString(), userInfo); return dataInfo; } catch (Exception ex) { dataInfo.Add(DataEnum.code.ToString(), "100003"); dataInfo.Add(DataEnum.data.ToString(), ex.Message); return dataInfo; } } /// /// 根据epc获取器具信息 /// /// 一个或多个epc /// [Route("GetProductInfo")] [HttpPost] public async Task GetProductInfo(List models) { Dictionary dataInfo = new Dictionary(); try { if (models.Count > 0) { var productInfo = await _service.GetProductInfo(models); dataInfo.Add(DataEnum.code.ToString(), "000000"); dataInfo.Add(DataEnum.data.ToString(), productInfo); return dataInfo; } else { dataInfo.Add(DataEnum.code.ToString(), "100001"); dataInfo.Add(DataEnum.data.ToString(), "传入参数为空!"); return dataInfo; } } catch (Exception ex) { dataInfo.Add(DataEnum.code.ToString(), "100003"); dataInfo.Add(DataEnum.data.ToString(), ex.Message); return dataInfo; } } /// /// 根据设备号获取所有器具信息 /// /// /// [Route("GetDevProductInfo")] [HttpPost] public async Task GetDevProductInfo(string C_DeviceCode) { Dictionary dataInfo = new Dictionary(); try { if (string.IsNullOrEmpty(C_DeviceCode)) { dataInfo.Add(DataEnum.code.ToString(), "100001"); dataInfo.Add(DataEnum.data.ToString(), "传入参数为空!"); return dataInfo; } var devProductInfo = await _service.GetDevProductInfo(C_DeviceCode); dataInfo.Add(DataEnum.code.ToString(), "000000"); dataInfo.Add(DataEnum.data.ToString(), devProductInfo); return dataInfo; } catch (Exception ex) { dataInfo.Add(DataEnum.code.ToString(), "100003"); dataInfo.Add(DataEnum.data.ToString(), ex.Message); return dataInfo; } } /// /// 上架/下架/盘点 /// /// /// [Route("UpOffRackProduct")] [HttpPost] public async Task UpOffRackProduct(ProductInfoModel model) { Dictionary dataInfo = new Dictionary(); try { if (model.goods.Count > 0) { foreach (var item in model.goods) { if (string.IsNullOrEmpty(item.C_QRCode)) { dataInfo.Add(DataEnum.code.ToString(), "100001"); dataInfo.Add(DataEnum.data.ToString(), "传入参数为空!"); return dataInfo; } } var devAlert = await _service.UpOffRackProduct(model); if (devAlert) { dataInfo.Add(DataEnum.code.ToString(), "000000"); dataInfo.Add(DataEnum.data.ToString(), "操作成功!"); } else { dataInfo.Add(DataEnum.code.ToString(), "100002"); dataInfo.Add(DataEnum.data.ToString(), "操作失败!"); } return dataInfo; } else { dataInfo.Add(DataEnum.code.ToString(), "100001"); dataInfo.Add(DataEnum.data.ToString(), "传入参数为空!"); return dataInfo; } } catch (Exception ex) { dataInfo.Add(DataEnum.code.ToString(), "100003"); dataInfo.Add(DataEnum.data.ToString(), ex.Message); return dataInfo; } } /// /// 获取所有的设备 /// /// [HttpGet("GetAllDeviceInfo")] public async Task GetAllDeviceInfo() { try { var items = await _service.GetAllDeviceInfo(); return new ApiResult>(items); } catch (Exception ex) { return new ApiResult(ReturnCode.GeneralError, ex.Message); } } } }