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 { /// <summary> /// ä¾èµ–注入 /// </summary> private readonly IStockServer _stock; //统计报表 private readonly IStockDetailServer _stockDetail; //托盘明细 private readonly IDataBoxInfoServer _dataBoxInfo; //导出 private readonly IOperationSysServer _operation; //æ“作日志 /// <summary> /// æž„é€ å‡½æ•° /// </summary> /// <param name="stock">统计报表</param> public StatisticalController(IStockServer stock, IOperationSysServer operation) { _stock = stock; //统计报表 _operation = operation; //æ“作日志 } #region åº“å˜æ˜Žç»† /// <summary> /// 获å–åº“å˜æ€»é‡ /// </summary> /// <param name="skuNo"></param> /// <returns></returns> [HttpGet] public IActionResult GetInventoryList(string skuNo) { List<MateDataStockDto> StockList = _stock.GetDataStockList(skuNo); return Ok(new { data = StockList, code = 0, msg = "获å–åº“å˜æ€»é‡æˆåŠŸ" }); } /// <summary> /// 获å–åº“å˜æ˜Žç»† /// </summary> /// <param name="skuNo">物料编ç </param> /// <param name="lotNo">批次</param> /// <param name="type">类型</param> /// <param name="locatNo">储ä½åœ°å€</param> /// <param name="palletNo">托盘æ¡ç </param> /// <param name="status">库å˜çжæ€</param> /// <param name="inspectStatus">质检状æ€</param> /// <param name="PalletType">是å¦å—æ¯æ‹–</param> /// <param name="IsBale">是å¦ç¼ 膜</param> /// <param name="IsBelt">æ˜¯å¦æ‰“包</param> /// <returns></returns> [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<MateDataStockDto> stockDetailsList = _stock.GetInventoryList1(skuNo, lotNo, type, locatNo, palletNo, status, inspectStatus, PalletType, IsBale, IsBelt); return Ok(new { data = stockDetailsList, code = 0, msg = "获å–åº“å˜æ˜Žç»†æˆåŠŸ" }); } /// <summary> /// 获å–åº“å˜æ˜Žç»† /// </summary> /// <param name="Id">Id</param> /// <returns></returns> [HttpGet] public IActionResult GetInventoryListById(string Id) { MateDataStockDto stockDetailsList = _stock.GetInventoryListById(Id); return Ok(new { data = stockDetailsList, code = 0, msg = "æ ¹æ®ID获å–åº“å˜æ˜Žç»†æˆåŠŸ" }); } /// <summary> /// å¢žåŠ åº“å˜å¤‡æ³¨ /// </summary> /// <param name="model">库å˜model</param> /// <returns></returns> /// <exception cref="System.Exception">æ•获异常</exception> [HttpPost] public async Task<IActionResult> 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); } } /// <summary> /// 获å–åº“å¤–æ‰˜ç›˜ä¿¡æ¯ /// </summary> /// <param name="model"></param> /// <returns></returns> [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 托盘明细 /// <summary> /// èŽ·å–æ‰˜ç›˜æ˜Žç»† /// </summary> /// <param name="skuNo">物料å·</param> /// <param name="palletNo">托盘å·</param> /// <param name="lotNo">批次å·</param> /// <param name="boxNo">ç®±ç </param> /// <param name="status">箱支状æ€</param> /// <param name="inspectMark">æ£€éªŒæ ‡è®°</param> /// <param name="bitPalletMark">é›¶æ‰˜æ ‡è®°</param> /// <param name="bitBoxMark">é›¶ç®±æ ‡è®°</param> /// <param name="inspectStatus">è´¨é‡çжæ€</param> /// <returns></returns> [HttpGet] public IActionResult GetBindList(string skuNo, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus) { List<DataStockDetail> boxInforList = _stock.GetBindList(skuNo, palletNo, lotNo, boxNo, status, inspectMark, bitPalletMark, bitBoxMark, inspectStatus); return Ok(new { data = boxInforList, code = 0, msg = "èŽ·å–æ‰˜ç›˜æ˜Žç»†æˆåŠŸ" }); } /// <summary> /// 获å–ç®±ç æ˜Žç»† /// </summary> /// <param name="id">id</param> /// <param name="skuNo">物料å·</param> /// <param name="skuName">物料åç§°</param> /// <param name="palletNo">托盘å·</param> /// <param name="lotNo">批次å·</param> /// <param name="boxNo">ç®±ç </param> /// <param name="status">箱支状æ€</param> /// <param name="inspectMark">æ£€éªŒæ ‡è®°</param> /// <param name="bitBoxMark">é›¶ç®±æ ‡è®°</param> /// <param name="inspectStatus">è´¨é‡çжæ€</param> /// <returns></returns> [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<DataBoxInfo> boxInfor = _stock.GetBoxInfor(id, skuNo, skuName, palletNo, lotNo, boxNo, status, inspectMark, bitBoxMark, inspectStatus); return Ok(new { data = boxInfor, code = 0, msg = "获å–ç®±ç æ˜Žç»†æˆåŠŸ" }); } /// <summary> /// æ ¹æ®ç®±ç 获å–ç®±æ”¯ä¿¡æ¯ /// </summary> /// <param name="boxNo">ç®±ç </param> /// <param name="boxNo3">支ç </param> /// <returns></returns> [HttpGet] public IActionResult GetBoxInforByBoxNo(string boxNo, string boxNo3) { List<DataBoxInfo> boxInfor = _stock.GetBoxInforByBoxNo(boxNo, boxNo3); return Ok(new { data = boxInfor, code = 0, msg = "æ ¹æ®ç®±ç 获å–ç®±æ”¯ä¿¡æ¯æˆåŠŸ" }); } #endregion #region 低库å˜é¢„è¦ /// <summary> /// 低库å˜é¢„è¦ /// </summary> /// <param name="skuNo">物料å·</param> /// <param name="skuName">物料åç§°</param> /// <param name="lotNo">批次</param> /// <param name="type">物料类型</param> /// <returns></returns> [HttpGet] public IActionResult GetInventoryWarning(string skuNo, string skuName, string lotNo, string type) { List<MateDataStockDto> stockList = _stock.GetInventoryWarning(skuNo, skuName, lotNo, type); return Ok(new { data = stockList, code = 0, msg = "获å–低库å˜é¢„è¦æˆåŠŸ" }); } #endregion #region ä¸´æœŸé¢„è¦ /// <summary> /// 获å–临期预è¦ä¿¡æ¯ /// </summary> /// <param name="skuNo">物料å·</param> /// <param name="skuName">物料åç§°</param> /// <param name="lotNo">批次</param> /// <param name="palletNo">托盘å·</param> /// <param name="status">状æ€</param> /// <param name="inspectMark">æ£€éªŒæ ‡è®°</param> /// <param name="inspectStatus">è´¨é‡çжæ€</param> /// <param name="isBale">是å¦è£¹åŒ…</param> /// <param name="isBelt">æ˜¯å¦æ‰“带</param> /// <returns></returns> [HttpGet] public IActionResult GetEmergencyWarning(string skuNo, string skuName, string lotNo, string palletNo, string status, string inspectMark, string inspectStatus, string isBale, string isBelt) { List<MateDataStockDto> stockList = _stock.GetEmergencyWarning(skuNo, skuName, lotNo, palletNo, status, inspectMark, inspectStatus, isBale, isBelt); return Ok(new { data = stockList, code = 0, msg = "获å–ä¸´æœŸé¢„è¦æˆåŠŸ" }); } #endregion #region 出入库报表 /// <summary> /// 获å–å‡ºå…¥åº“æ€»é‡ /// </summary> /// <param name="skuNo">物料å·</param> /// <param name="skuName">物料åç§°</param> /// <param name="lotNo">批次</param> /// <returns></returns> [HttpGet] public IActionResult GetTotalRecord(string skuNo, string skuName, string lotNo) { List<TotalRecordDto> totalsList = _stock.GetTotalRecord(skuNo, skuName, lotNo); return Ok(new { data = totalsList, code = 0, msg = "获å–å‡ºå…¥åº“æ€»é‡æˆåŠŸ" }); } /// <summary> /// 获å–出入库记录 /// </summary> /// <param name="skuNo">物料å·</param> /// <param name="skuName">物料åç§°</param> /// <param name="lotNo">批次</param> /// <param name="palletNo">托盘</param> /// <returns></returns> [HttpGet] public IActionResult GetDetailedRecord(string skuNo, string skuName, string lotNo, string palletNo) { List<TotalRecordDto> totalsList = _stock.GetDetailedRecord(skuNo, skuName, lotNo, palletNo); return Ok(new { data = totalsList, code = 0, msg = "获å–出入库记录æˆåŠŸ" }); } #endregion #region 周期报表 #region 周期 /// <summary> /// 周期报表 /// </summary> /// <param name="model"></param> /// <returns></returns> [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 }); } } /// <summary> /// 周期报表 /// </summary> /// <param name="model"></param> /// <returns></returns> [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 }); } } /// <summary> /// 获å–年报表 /// </summary> /// <param name="StartTime"></param> /// <param name="EndTime"></param> /// <returns></returns> [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 }); } } /// <summary> /// 获å–年报表明细 /// </summary> /// <param name="skuNo"></param> /// <param name="StartTime"></param> /// <param name="EndTime"></param> /// <returns></returns> [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 æ—¥ /// <summary> /// æ¯æ—¥æŠ¥è¡¨ /// </summary> /// <param name="model"></param> /// <returns></returns> [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 周 /// <summary> /// æ¯å‘¨æŠ¥è¡¨ /// </summary> /// <param name="model"></param> /// <returns></returns> [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 月 /// <summary> /// æ¯æœˆæŠ¥è¡¨ /// </summary> /// <param name="model"></param> /// <returns></returns> [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 å¹´ /// <summary> /// æ¯å¹´æŠ¥è¡¨ /// </summary> /// <param name="model"></param> /// <returns></returns> [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 导出库å˜ä¿¡æ¯ /// <summary> /// å¯¼å‡ºåº“å˜æ€»é‡ /// </summary> /// <param name="skuNo"></param> /// <param name="skuName"></param> /// <returns></returns> [HttpGet] public IActionResult GetInventoryListDaoChu(string skuNo, string skuName) { List<MateDataStockDto> StockList = _stock.GetDataStockListDaoChu(skuNo, skuName); return Ok(new { data = StockList, code = 0, msg = "å¯¼å‡ºåº“å˜æ€»é‡æˆåŠŸ" }); } /// <summary> /// å¯¼å‡ºåº“å˜æ˜Žç»† /// </summary> /// <param name="skuNo">物料编ç </param> /// <param name="skuName">物料åç§°</param> /// <param name="lotNo">批次</param> /// <param name="locatNo">储ä½åœ°å€</param> /// <param name="palletNo">托盘æ¡ç </param> /// <param name="status">库å˜çжæ€</param> /// <param name="inspectStatus">质检状æ€</param> /// <returns></returns> [HttpGet] public IActionResult GetInventoryList1DaoChu(string skuNo, string skuName, string lotNo, string locatNo, string palletNo, string status, string inspectStatus) { List<StockDetailDto> stockDetailsList = _stock.GetInventoryList1DaoChu(skuNo, skuName, lotNo, locatNo, palletNo, status, inspectStatus); return Ok(new { data = stockDetailsList, code = 0, msg = "å¯¼å‡ºåº“å˜æ˜Žç»†æˆåŠŸ" }); } #endregion #region 导出托盘明细 /// <summary> /// 导出托盘明细 /// </summary> /// <param name="skuNo">物料å·</param> /// <param name="skuName">物料åç§°</param> /// <param name="palletNo">托盘å·</param> /// <param name="lotNo">批次å·</param> /// <param name="boxNo">ç®±ç </param> /// <param name="status">箱支状æ€</param> /// <param name="inspectMark">æ£€éªŒæ ‡è®°</param> /// <param name="bitPalletMark">é›¶æ‰˜æ ‡è®°</param> /// <param name="bitBoxMark">é›¶ç®±æ ‡è®°</param> /// <param name="inspectStatus">è´¨é‡çжæ€</param> /// <returns></returns> [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<DataStockDetail> 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 å¯¼å‡ºç®±ç æ˜Žç»† /// <summary> /// å¯¼å‡ºç®±ç æ˜Žç»† /// </summary> /// <param name="id">id</param> /// <param name="skuNo">物料å·</param> /// <param name="skuName">物料åç§°</param> /// <param name="palletNo">托盘å·</param> /// <param name="lotNo">批次å·</param> /// <param name="boxNo">ç®±ç </param> /// <param name="status">箱支状æ€</param> /// <param name="inspectMark">æ£€éªŒæ ‡è®°</param> /// <param name="bitBoxMark">é›¶ç®±æ ‡è®°</param> /// <param name="inspectStatus">è´¨é‡çжæ€</param> /// <returns></returns> [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<DataBoxInfo> 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 导出出入库报表 /// <summary> /// å¯¼å‡ºå‡ºå…¥åº“æ€»é‡ /// </summary> /// <param name="skuNo">物料å·</param> /// <param name="lotNo">批次</param> /// <param name="palletNo">托盘å·</param> /// <returns></returns> [HttpGet] public IActionResult GetTotalRecordDaoChu(string skuNo, string lotNo, string palletNo) { List<TotalRecordDto> StockList = _stock.GetTotalRecordDaoChu(skuNo, lotNo, palletNo); return Ok(new { data = StockList, code = 0, msg = "å¯¼å‡ºåº“å˜æ€»é‡æˆåŠŸ" }); } /// <summary> /// 导出出入库记录 /// </summary> /// <param name="skuNo">物料编ç </param> /// <param name="lotNo">批次</param> /// <param name="palletNo">托盘å·</param> /// <returns></returns> [HttpGet] public IActionResult GetDetailedRecordDaoChu(string skuNo, string lotNo, string palletNo) { List<TotalRecordDto> stockDetailsList = _stock.GetDetailedRecordDaoChu(skuNo, lotNo, palletNo); return Ok(new { data = stockDetailsList, code = 0, msg = "å¯¼å‡ºåº“å˜æ˜Žç»†æˆåŠŸ" }); } #endregion #endregion } }