using System;
using System.Collections.Generic;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Model.ModelDto.DataDto;
using Model.ModelVm.DataVm;
using WMS.Entity.DataEntity;
using WMS.IBLL.IDataServer;
using WMS.IBLL.ILogServer;
namespace WmsApi.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]
public class StatisticalController : ControllerBase
{
///
/// 依赖注入
///
private readonly IStockServer _stock; //统计报表
private readonly IStockDetailServer _stockDetail; //托盘明细
private readonly IDataBoxInfoServer _dataBoxInfo; //导出
private readonly IOperationSysServer _operation; //操作日志
///
/// 构造函数
///
/// 统计报表
public StatisticalController(IStockServer stock, IOperationSysServer operation)
{
_stock = stock; //统计报表
_operation = operation; //操作日志
}
#region 库存明细
///
/// 获取库存总量
///
///
///
[HttpGet]
public IActionResult GetInventoryList(string skuNo)
{
List StockList = _stock.GetDataStockList(skuNo);
return Ok(new
{
data = StockList,
code = 0,
msg = "获取库存总量成功"
});
}
///
/// 获取库存明细
///
/// 物料编码
/// 批次
/// 类型
/// 储位地址
/// 托盘条码
/// 库存状态
/// 质检状态
/// 是否字母拖
/// 是否缠膜
/// 是否打包
///
[HttpGet]
public IActionResult GetInventoryList1(string skuNo, string lotNo, string type, string locatNo, string palletNo, string status, string inspectStatus, string PalletType, string IsBale, string IsBelt)
{
List stockDetailsList = _stock.GetInventoryList1(skuNo, lotNo, type, locatNo, palletNo, status, inspectStatus, PalletType, IsBale, IsBelt);
return Ok(new
{
data = stockDetailsList,
code = 0,
msg = "获取库存明细成功"
});
}
///
/// 获取库存明细
///
/// Id
///
[HttpGet]
public IActionResult GetInventoryListById(string Id)
{
MateDataStockDto stockDetailsList = _stock.GetInventoryListById(Id);
return Ok(new
{
data = stockDetailsList,
code = 0,
msg = "根据ID获取库存明细成功"
});
}
///
/// 增加库存备注
///
/// 库存model
///
/// 捕获异常
[HttpPost]
public async Task EditDetailDemo(DataStockDetail model)
{
//捕获异常
try
{
//获取当前操作用户id
var claimsIdentity = this.User.Identity as ClaimsIdentity;
var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
int uid = Convert.ToInt32(userId);
//更改人
model.UpdateUser = uid;
int i = await _stock.EditDetailDemo(model);
//判断是否编辑成功
if (i == 0)
{
return Ok(new
{
data = i,
code = 1,
msg = "编辑失败"
});
}
else
{
await _operation.InsertOperation("统计报表", "角色权限", model.PalletNo, "添加", "添加库存备注 托盘号:" + model.PalletNo, uid);
return Ok(new
{
data = i,
code = 0,
msg = "编辑成功"
});
}
}
catch (System.Exception ex)
{
//抛出异常
throw new System.Exception("增加备注异常", ex);
}
}
///
/// 获取库外托盘信息
///
///
///
[HttpPost]
public IActionResult GetOutSideStock(DataVm model)
{
try
{
var stockDetailsList = _stock.GetOutSideStockList(model.SkuNo, model.SkuName, model.LotNo, model.PalletNo, model.Status, model.Page, model.Limit, out int count);
return Ok(new { code = 0, count, msg = "获取库存明细成功", data = stockDetailsList });
}
catch (Exception e)
{
return Ok(new { code = 1, count = 0, msg = e.Message });
}
}
#endregion
#region 托盘明细
///
/// 获取托盘明细
///
/// 物料号
/// 托盘号
/// 批次号
/// 箱码
/// 箱支状态
/// 检验标记
/// 零托标记
/// 零箱标记
/// 质量状态
///
[HttpGet]
public IActionResult GetBindList(string skuNo, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus)
{
List boxInforList = _stock.GetBindList(skuNo, palletNo, lotNo, boxNo, status, inspectMark, bitPalletMark, bitBoxMark, inspectStatus);
return Ok(new
{
data = boxInforList,
code = 0,
msg = "获取托盘明细成功"
});
}
///
/// 获取箱码明细
///
/// id
/// 物料号
/// 物料名称
/// 托盘号
/// 批次号
/// 箱码
/// 箱支状态
/// 检验标记
/// 零箱标记
/// 质量状态
///
[HttpGet]
public IActionResult GetBoxInfor(string id, string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitBoxMark, string inspectStatus)
{
List boxInfor = _stock.GetBoxInfor(id, skuNo, skuName, palletNo, lotNo, boxNo, status, inspectMark, bitBoxMark, inspectStatus);
return Ok(new
{
data = boxInfor,
code = 0,
msg = "获取箱码明细成功"
});
}
///
/// 根据箱码获取箱支信息
///
/// 箱码
/// 支码
///
[HttpGet]
public IActionResult GetBoxInforByBoxNo(string boxNo, string boxNo3)
{
List boxInfor = _stock.GetBoxInforByBoxNo(boxNo, boxNo3);
return Ok(new
{
data = boxInfor,
code = 0,
msg = "根据箱码获取箱支信息成功"
});
}
#endregion
#region 低库存预警
///
/// 低库存预警
///
/// 物料号
/// 物料名称
/// 批次
/// 物料类型
///
[HttpGet]
public IActionResult GetInventoryWarning(string skuNo, string skuName, string lotNo, string type)
{
List stockList = _stock.GetInventoryWarning(skuNo, skuName, lotNo, type);
return Ok(new
{
data = stockList,
code = 0,
msg = "获取低库存预警成功"
});
}
#endregion
#region 临期预警
///
/// 获取临期预警信息
///
/// 物料号
/// 物料名称
/// 批次
/// 托盘号
/// 状态
/// 检验标记
/// 质量状态
/// 是否裹包
/// 是否打带
///
[HttpGet]
public IActionResult GetEmergencyWarning(string skuNo, string skuName, string lotNo, string palletNo, string status, string inspectMark, string inspectStatus, string isBale, string isBelt)
{
List stockList = _stock.GetEmergencyWarning(skuNo, skuName, lotNo, palletNo, status, inspectMark, inspectStatus, isBale, isBelt);
return Ok(new
{
data = stockList,
code = 0,
msg = "获取临期预警成功"
});
}
#endregion
#region 出入库报表
///
/// 获取出入库总量
///
/// 物料号
/// 物料名称
/// 批次
///
[HttpGet]
public IActionResult GetTotalRecord(string skuNo, string skuName, string lotNo)
{
List totalsList = _stock.GetTotalRecord(skuNo, skuName, lotNo);
return Ok(new
{
data = totalsList,
code = 0,
msg = "获取出入库总量成功"
});
}
///
/// 获取出入库记录
///
/// 物料号
/// 物料名称
/// 批次
/// 托盘
///
[HttpGet]
public IActionResult GetDetailedRecord(string skuNo, string skuName, string lotNo, string palletNo)
{
List totalsList = _stock.GetDetailedRecord(skuNo, skuName, lotNo, palletNo);
return Ok(new
{
data = totalsList,
code = 0,
msg = "获取出入库记录成功"
});
}
#endregion
#region 周期报表
#region 周期
///
/// 周期报表
///
///
///
[HttpPost]
public IActionResult GetToCycleDataStockDetails(DataStockVm model)
{
try
{
var palletBindList = _stock.GetToCycleDataStockDetails(model.TaskNo, model.DataStatus, model.SkuNo, model.LotNo, model.PalletNo, model.Type, model.Page, model.Limit, out int count);
return Ok(new { code = 0, count, msg = "获取每日报表明细成功", data = palletBindList });
}
catch (Exception e)
{
return Ok(new { code = 1, count = 0, msg = e.Message });
}
}
///
/// 周期报表
///
///
///
[HttpPost]
public IActionResult GetDataStockInfo(DataStockVm model)
{
try
{
var palletBindList = _stock.GetDataStockInfo(model.StartTime, model.EndTime);
return Ok(new { code = 0, msg = "获取周期报表成功", data = palletBindList });
}
catch (Exception e)
{
return Ok(new { code = 1, count = 0, msg = e.Message });
}
}
///
/// 获取年报表
///
///
///
///
[HttpGet]
public IActionResult GetAssSoInfo(string StartTime, string EndTime)
{
try
{
var skulist = _stock.GetAssSoInfo(StartTime, EndTime);
return Ok(new { code = 0, count = 0, data = skulist, msg = "获取总量成功" });
}
catch (Exception ex)
{
return Ok(new { code = 1, count = 0, msg = ex.Message });
}
}
///
/// 获取年报表明细
///
///
///
///
///
[HttpGet]
public IActionResult GetAssSoInfoDetail(string skuNo, string StartTime, string EndTime)
{
try
{
var infolist = _stock.GetAssSoInfoDetail(skuNo, StartTime, EndTime);
return Ok(new { code = 0, count = 0, data = infolist, msg = "获取明细成功" });
}
catch (Exception ex)
{
return Ok(new { code = 1, count = 0, msg = ex.Message });
}
}
#endregion
/*
#region 日
///
/// 每日报表
///
///
///
[HttpPost]
public IActionResult GetToDayDataStockDetails(DataStockVm model)
{
try
{
var palletBindList = _stock.GetToDayDataStockDetails(model.SkuNo, model.LotNo, model.PalletNo, model.Type, model.Page, model.Limit, out int count);
return Ok(new { code = 0, count, msg = "获取每日报表明细成功", data = palletBindList });
}
catch (Exception e)
{
return Ok(new { code = 1, count = 0, msg = e.Message });
}
}
#endregion
#region 周
///
/// 每周报表
///
///
///
[HttpPost]
public IActionResult GetToWeekDataStockDetails(DataStockVm model)
{
try
{
var palletBindList = _stock.GetToWeekDataStockDetails(model.SkuNo, model.LotNo, model.PalletNo, model.Type, model.Page, model.Limit, out int count);
return Ok(new { code = 0, count, msg = "获取每周报表明细成功", data = palletBindList });
}
catch (Exception e)
{
return Ok(new { code = 1, count = 0, msg = e.Message });
}
}
#endregion
#region 月
///
/// 每月报表
///
///
///
[HttpPost]
public IActionResult GetToMonthsDataStockDetails(DataStockVm model)
{
try
{
var palletBindList = _stock.GetToMonthsDataStockDetails(model.SkuNo, model.LotNo, model.PalletNo, model.Type, model.Page, model.Limit, out int count);
return Ok(new { code = 0, count, msg = "获取每月报表明细成功", data = palletBindList });
}
catch (Exception e)
{
return Ok(new { code = 1, count = 0, msg = e.Message });
}
}
#endregion
#region 年
///
/// 每年报表
///
///
///
[HttpPost]
public IActionResult GetToYearDataStockDetails(DataStockVm model)
{
try
{
var palletBindList = _stock.GetToYearDataStockDetails(model.SkuNo, model.LotNo, model.PalletNo, model.Type, model.Page, model.Limit, out int count);
return Ok(new { code = 0, count, msg = "获取每年报表明细成功", data = palletBindList });
}
catch (Exception e)
{
return Ok(new { code = 1, count = 0, msg = e.Message });
}
}
#endregion
*/
#endregion
#region 导出
#region 导出库存信息
///
/// 导出库存总量
///
///
///
///
[HttpGet]
public IActionResult GetInventoryListDaoChu(string skuNo, string skuName)
{
List StockList = _stock.GetDataStockListDaoChu(skuNo, skuName);
return Ok(new
{
data = StockList,
code = 0,
msg = "导出库存总量成功"
});
}
///
/// 导出库存明细
///
/// 物料编码
/// 物料名称
/// 批次
/// 储位地址
/// 托盘条码
/// 库存状态
/// 质检状态
///
[HttpGet]
public IActionResult GetInventoryList1DaoChu(string skuNo, string skuName, string lotNo, string locatNo, string palletNo, string status, string inspectStatus)
{
List stockDetailsList = _stock.GetInventoryList1DaoChu(skuNo, skuName, lotNo, locatNo, palletNo, status, inspectStatus);
return Ok(new
{
data = stockDetailsList,
code = 0,
msg = "导出库存明细成功"
});
}
#endregion
#region 导出托盘明细
///
/// 导出托盘明细
///
/// 物料号
/// 物料名称
/// 托盘号
/// 批次号
/// 箱码
/// 箱支状态
/// 检验标记
/// 零托标记
/// 零箱标记
/// 质量状态
///
[HttpGet]
public IActionResult GetBindListDaoChu(string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus)
{
try
{
List boxInfoList = _stockDetail.GetBindListDaoChu(skuNo, skuName, palletNo, lotNo, boxNo, status, inspectMark, bitPalletMark, bitBoxMark, inspectStatus);
return Ok(new { data = boxInfoList, code = 0, msg = "导出托盘明细成功" });
}
catch (Exception e)
{
return Ok(new { data = "", code = 0, msg = e.Message });
}
}
#endregion
#region 导出箱码明细
///
/// 导出箱码明细
///
/// id
/// 物料号
/// 物料名称
/// 托盘号
/// 批次号
/// 箱码
/// 箱支状态
/// 检验标记
/// 零箱标记
/// 质量状态
///
[HttpGet]
public IActionResult GetBoxInfoDaoChu(string id, string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitBoxMark, string inspectStatus)
{
try
{
List boxInfo = _dataBoxInfo.GetDataBoxInfoDaoChu(id, skuNo, skuName, palletNo, lotNo, boxNo, status, inspectMark, bitBoxMark, inspectStatus);
return Ok(new { data = boxInfo, code = 0, msg = "导出箱码明细成功" });
}
catch (Exception e)
{
return Ok(new { data = "", code = 0, msg = e.Message });
}
}
#endregion
#region 导出出入库报表
///
/// 导出出入库总量
///
/// 物料号
/// 批次
/// 托盘号
///
[HttpGet]
public IActionResult GetTotalRecordDaoChu(string skuNo, string lotNo, string palletNo)
{
List StockList = _stock.GetTotalRecordDaoChu(skuNo, lotNo, palletNo);
return Ok(new
{
data = StockList,
code = 0,
msg = "导出库存总量成功"
});
}
///
/// 导出出入库记录
///
/// 物料编码
/// 批次
/// 托盘号
///
[HttpGet]
public IActionResult GetDetailedRecordDaoChu(string skuNo, string lotNo, string palletNo)
{
List stockDetailsList = _stock.GetDetailedRecordDaoChu(skuNo, lotNo, palletNo);
return Ok(new
{
data = stockDetailsList,
code = 0,
msg = "导出库存明细成功"
});
}
#endregion
#endregion
}
}