using System.Dynamic;
using Microsoft.AspNetCore.Mvc;
using PadApplication.Entites.DbModels;
using PadApplication.Entites.Dto;
using PadApplication.Services;
using PadApplication.util;
namespace PadApplication.Controllers;
///
/// 刀具台账控制器,提供刀具相关的接口
///
[ApiController]
[Route("api/[controller]")]
[Route("[controller]")] // 允许 /MesCutterLedger/... 形式的路由,兼容前端当前写法
public class MesCutterLedgerController : ControllerBase
{
private readonly MesCutterLedgerManager m = new();
// 加入 sdjs、xdjs 为可空 decimal,保持与前端 JSON 字段名一致
public record ToolActionRequest(
string workOrderNo,
string machineNo,
string toolNo,
string type,
int? useLimit,
decimal? sdjs,
decimal? xdjs,
decimal? modlLifeWorning
);
public record FormDataRequest(
string workOrderNo,
string machineNo
);
///
/// 刀具查询(支持编号或名称模糊查询)MesCutterLedger
///
/// 查询关键字请求体
/// 刀具列表
[HttpPost("QueryTools")]
public ResponseResult QueryTools([FromBody] MesCutterLedger req)
{
try
{
dynamic resultInfos = new ExpandoObject();
var queryResult = m.QueryTools(req.searchKey, req.pageIndex, req.pageSize);
resultInfos.tbBillList = queryResult.tbBillList;
resultInfos.total = queryResult.total;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 上下刀操作(上刀type=0,下刀type=1)
/// 接收 JSON 请求体(Content-Type: application/json),并将 sdjs/xdjs 一并传入服务层
///
[HttpPost("SubmitToolAction")]
public IActionResult SubmitToolAction([FromBody] ToolActionRequest req)
{
try
{
var result = m.SubmitToolAction(
req.workOrderNo,
req.machineNo,
req.toolNo,
req.type,
req.useLimit,
req.sdjs,
req.xdjs,
req.modlLifeWorning
);
return Ok(new ResponseResult
{
status = 0,
message = "OK",
data = result
});
}
catch (Exception ex)
{
return Ok(ResponseResult.ResponseError(ex));
}
}
///
/// 获取刀具表单数据(根据工单号和机台编码)
///
[HttpPost("GetFormData")]
public ResponseResult GetFormData([FromBody] FormDataRequest req)
{
try
{
var data = m.GetFormData(req.workOrderNo, req.machineNo);
return new ResponseResult
{
status = 0,
message = "OK",
data = data
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
}