You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

297 lines
9.9 KiB
C#

1 year ago
using Admin.Core.IService;
using Admin.Core.Service;
using Admin.Core.IService.ISys;
using Admin.Core.Model;
using Admin.Core.Common.Resource;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Threading.Tasks;
using Admin.Core.Common;
using System.Linq;
using Admin.Core.Model.ViewModels;
using Microsoft.AspNetCore.Mvc.ViewEngines;
using System.Collections;
using NPOI.SS.Formula.Functions;
using TouchSocket.Core;
using System.Numerics;
using Admin.Core.IService.IService_New;
1 year ago
namespace Admin.Core.Api.Controllers.Business
{
/// <summary>
/// 反应釜防错验证
/// </summary>
[Route("api/[controller]/[action]")]
[ApiController]
[AllowAnonymous]
public class WarehouseController : BaseApiUserController
{
#region 整包信息
//000524-20230805-0001-CF-130|25kg
//000524:为物料编码
//CF-130:物料名称
//25kg物料重量
#endregion
/// <summary>
/// 投料仓服务
/// </summary>
private readonly IHw_WarehouseServices _hw_WarehouseService;
/// <summary>
/// 料筒服务类
/// </summary>
private readonly IHw_BarrelServices _hw_BarrelService;
/// <summary>
/// 称重服务类
/// </summary>
private readonly ILR_weighServices _lr_weighService;
1 year ago
#region 构造方法
1 year ago
/// <summary>
/// 构造方法
/// </summary>
/// <param name="hw_WarehouseServices"></param>
/// <param name="sysUserService"></param>
/// <param name="hwBarrelService"></param>
/// <param name="lrweighService"></param>
public WarehouseController(IHw_WarehouseServices hw_WarehouseServices, ISysUserService sysUserService, IHw_BarrelServices hwBarrelService, ILR_weighServices lrweighService) : base(sysUserService)
1 year ago
{
_sysUserService = sysUserService;
_hw_WarehouseService = hw_WarehouseServices;
_hw_BarrelService = hwBarrelService;
_lr_weighService = lrweighService;
1 year ago
}
1 year ago
#endregion
1 year ago
#region 扫描料桶条码 获取桶绑定物料信息
/// <summary>
/// 扫描料桶条码 获取桶绑定物料信息
/// </summary>
1 year ago
/// <param name="kettleBarCode">反应釜</param>
/// <param name="planId">计划Id</param>
/// <param name="code">料桶Id</param>
1 year ago
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<BarrelView>> GetByBarrelInfo(string kettleBarCode, string planId, string code)
1 year ago
{
if (!code.IsNotEmptyOrNull())
{
return Failed<BarrelView>("传入参数为空!");
}
var query = await _hw_WarehouseService.GetXlInfo(kettleBarCode.Trim(), planId.Trim(), code.Trim());
1 year ago
if (query == null)
{
return Failed<BarrelView>("查询失败!");
}
return Success(query);
}
#endregion
#region 根据条码查询投料釜设置的物料
/// <summary>
/// 根据条码查询投料釜设置的物料
/// </summary>
/// <param name="code">投料釜条码</param>
1 year ago
/// <param name="planId">计划Id</param>
1 year ago
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<WarehouseView>> GetByCode(string code, string planId)
1 year ago
{
if (!code.IsNotEmptyOrNull())
{
1 year ago
return Failed<WarehouseView>("传入物料编码参数为空!");
}
if (!planId.IsNotEmptyOrNull())
{
return Failed<WarehouseView>("传入计划ID参数为空");
1 year ago
}
1 year ago
var query = await _hw_WarehouseService.QueryByCode(code.Trim(), planId);
if (query == null)
1 year ago
{
return Failed<WarehouseView>("查询失败!");
}
1 year ago
return Success(query);
}
#endregion
#region PLC更新状态——反应釜
/// <summary>
/// PLC更新状态——反应釜
/// </summary>
/// <param name="view">json 对象</param>
/// <returns></returns>
[HttpPost]
public async Task<MessageModel<bool>> ExecPlcState([FromBody] KettleView view)
{
if (!view.IsNotEmptyOrNull())
{
return Failed<bool>("传入参数为空!");
}
var result = await _hw_WarehouseService.UpdatePlcState(view);
if (result)
{
return Success(result);
1 year ago
}
return Failed<bool>("执行失败!");
}
/// <summary>
/// MES计划下发
/// </summary>
/// <param name="MesDownLoadPlanList"></param>
/// <returns></returns>
[HttpPost]
public async Task<MessageModel<bool>> DownLoadplanInfo([FromBody] List<MesDownLoadPlanList> MesDownLoadPlanList)
{
try
{
if (MesDownLoadPlanList == null || MesDownLoadPlanList.Count == 0)
{
return Failed<bool>("传入参数为空!");
}
string result1 = await _hw_WarehouseService.DownRJPlanAsync(MesDownLoadPlanList);
string result2 = await _hw_WarehouseService.DownZBPlanAsync(MesDownLoadPlanList);
string result3 = await _hw_WarehouseService.DownXLPlanAsync(MesDownLoadPlanList);
if (result1.Contains("成功"))
{
if (result2.Contains("成功"))
{
if (result3.Contains("成功"))
{
return Success(true);
}
else
{
return Failed<bool>(result3 + "执行失败!");
}
}
else
{
return Failed<bool>(result2 + "执行失败!");
}
}
else
{
return Failed<bool>(result1 + "执行失败!");
}
////配方名或配方编号
//string ss1 = "a82d016e813c4ac3bca0244c519da591";
////批次号
//string ss2 = "2408090522";
////产品名称
//var ss3 = "D1-813";
}
catch (Exception ex)
{
return Failed<bool>(ex.Message + "执行失败!");
}
return Failed<bool>("执行失败!");
}
/// <summary>
/// 投料口开/投料口关
/// </summary>
/// <param name="code"></param>
/// <param name="state"></param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<bool>> ExecPlcState(string code, int state)
{
if (!code.IsNotEmptyOrNull() || !state.IsNotEmptyOrNull())
{
return Failed<bool>("传入参数为空!");
}
var result = await _hw_WarehouseService.UpdatePlcState(code, state);
if (result)
{
return Success(result);
}
return Failed<bool>("执行失败!");
}
/// <summary>
/// 查询称量信息
/// </summary>
/// <param name="WeightNo"></param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<List<XLPlanWeightView>>> GetWeight()
{
//if (!WeightNo.IsNotEmptyOrNull())
//{
// return Failed<string>("传入参数为空!");
//}
//var result = await _hw_WarehouseService.RealWeightInfo(WeightNo);
var result = await _hw_WarehouseService.GetPlanWeightInfo();
if (result != null)
{
return Success(result, "成功");
}
return Failed<List<XLPlanWeightView>>("执行失败!");
}
1 year ago
#endregion
1 year ago
#region 查询反应釜计划
/// <summary>
/// 查询反应釜计划
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<List<string>>> GetWarehousePlan(string code)
{
MessageModel<List<string>> messageModel = new MessageModel<List<string>>();
List<string> list = await _hw_WarehouseService.GetWarehousePlan(code);
if (list == null)
{
messageModel.success = false;
messageModel.msg = "未查询到数据";
return messageModel;
}
messageModel.success = true;
messageModel.data = list;
return Success(list);
}
1 year ago
#endregion
/// <summary>
/// 根据罐号查询称量列表
/// </summary>
/// <param name="barrelID"></param>
/// <returns></returns>
[HttpGet]
public async Task<MessageModel<List<LR_weigh>>> GetWeightInfoByBarrelID(string barrelBarcode)
{
if (!barrelBarcode.IsNotEmptyOrNull())
{
return Failed<List<LR_weigh>>("传入参数为空!");
}
MessageModel<List<LR_weigh>> messageModel = new MessageModel<List<LR_weigh>>();
string planID = _hw_BarrelService.GetPlanIdByBarrelID(barrelBarcode.Trim());
if (string.IsNullOrEmpty(planID))
{
return Failed<List<LR_weigh>>("查询不到罐号对应的计划ID!");
}
List<LR_weigh> list = _lr_weighService.GetRecentWeightList(planID);
if (list != null)
{
return Success(list);
}
return Failed<List<LR_weigh>>("执行失败!");
}
1 year ago
}
}