Files
kunshan-bzfm-mes-backend/DOAN.Admin.WebApi/Controllers/Mobile/ReportFlowController.cs
2026-01-24 13:47:02 +08:00

264 lines
7.6 KiB
C#

using Azure;
using DOAN.Model.Mobile.ReportFlow.Dto;
using DOAN.Service.Mobile.IService;
using Infrastructure.Converter;
using Microsoft.AspNetCore.Mvc;
namespace DOAN.Admin.WebApi.Controllers.Mobile;
/// <summary>
/// 工序流转卡
/// </summary>
[AllowAnonymous]
[Route("mobile/reportflow")]
public class ReportFlowController : BaseController
{
//IReportFlowService
private readonly IReportFlowService _reportFlowService;
public ReportFlowController(IReportFlowService reportFlowService)
{
_reportFlowService = reportFlowService;
}
/// <summary>
/// 根据指定日期获取工单列表
/// </summary>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <returns></returns>
/// <exception cref="CustomException"></exception>
[HttpGet("get_workorders_by_date")]
public IActionResult GetWorkOrdersByDate(DateTime startDate, DateTime endDate)
{
startDate = DOANConvertDate.ConvertLocalDate(startDate);
endDate = DOANConvertDate.ConvertLocalDate(endDate);
if (startDate == DateTime.MinValue || endDate == DateTime.MinValue)
{
throw new CustomException("date is error");
}
var response = _reportFlowService.GetWorkOrdersByDate(startDate, endDate);
return SUCCESS(response);
}
//TODO 查询工单详情
/// <summary>
/// 查询工单详情
/// </summary>
/// <param name="workOrder">工单号</param>
/// <returns></returns>
/// <exception cref="CustomException"></exception>
[HttpGet("get_workorder_detail")]
public IActionResult GetWorkOrderDetail(string workOrder)
{
if (string.IsNullOrEmpty(workOrder))
throw new CustomException("workOrderId 是空");
var response = _reportFlowService.GetWorkOrderDetail(workOrder);
if (response == null)
{
return ToResponse(ResultCode.SUCCESS, "工单不存在");
}
return SUCCESS(response);
}
//TODO 查询工序报工详情
/// <summary>
/// 查询某个工序报工详情
/// </summary>
/// <param name="workorder"></param>
/// <param name="process"></param>
/// <returns></returns>
/// <exception cref="CustomException"></exception>
[HttpGet("get_process_reportwork_detail")]
public IActionResult GetProcessReportWorkDetail(string workorder, int processId)
{
if (string.IsNullOrEmpty(workorder))
{
throw new CustomException("workorder is null");
}
return ToResponse(
ResultCode.SUCCESS,
_reportFlowService.GetProcessReportWorkDetail(workorder, processId)
);
}
//TODO 领料工序
[HttpGet("feed_process_reportwork")]
public IActionResult FeedProcessReportwork(
string workorder,
int processId,
int finish_num,
string stove_code,
string feed_order,
string process_operator
)
{
try
{
if (string.IsNullOrEmpty(workorder))
{
throw new CustomException("workorder or process is null");
}
return SUCCESS(
_reportFlowService.FeedProcessReportwork(
workorder,
processId,
finish_num,
stove_code,
feed_order,
process_operator
)
);
}
catch (Exception e)
{
return ToResponse(new ApiResult(500, e.Message));
}
}
//TODO 工序报工
/// <summary>
/// 工序报工
/// </summary>
/// <param name="workorder"></param>
/// <param name="process"></param>
/// <param name="finish_num"></param>
/// <param name="bad_num"></param>
/// <returns></returns>
/// <exception cref="CustomException"></exception>
[HttpGet("process_reportwork")]
public IActionResult ProcessReportWork([FromQuery] ProReportWorkDto proReportWorkDto)
{
try
{
if (string.IsNullOrEmpty(proReportWorkDto.workorder))
{
throw new CustomException("workorder or process is null");
}
return SUCCESS(
_reportFlowService.ProcessReportWork(
proReportWorkDto.workorder,
proReportWorkDto.processId,
proReportWorkDto.finish_num,
proReportWorkDto.bad_num,
proReportWorkDto.process_operator
)
);
}
catch (Exception e)
{
return ToResponse(new ApiResult(500, e.Message));
}
}
//TODO 出货工序
[HttpGet("shipment_process_reportwork")]
public IActionResult ShipmentProcessReportwork(
string workorder,
int processId,
int finish_num,
int bad_num,
string customer_order,
string process_operator
)
{
try
{
if (string.IsNullOrEmpty(workorder))
{
throw new CustomException("workorder or process is null");
}
int ret = _reportFlowService.ShipmentProcessReportwork(
workorder,
processId,
finish_num,
bad_num,
customer_order,
process_operator
);
string data = "";
if (ret == 0)
{
data = "系统操作失败!";
}
if (ret == 1)
{
data = "成功";
}
if (ret == 2)
{
data = "采购订单不存在,请检查订单号!";
}
if (ret == 3)
{
data = "出货数量超额!";
}
if (ret == 4)
{
data = "工单异常,该工单不存在!";
}
if (ret == 5)
{
data = "采购订单主体型号与工单不符合!";
}
return SUCCESS(data);
}
catch (Exception e)
{
return ToResponse(new ApiResult(500, e.Message));
}
}
//TODO 获取工单下的报工列表
[HttpGet("get_workorder_reportwork_list")]
public IActionResult GetWorkOrderReportWorkList(string workorder)
{
if (string.IsNullOrEmpty(workorder))
{
throw new CustomException("workorder is null");
}
return SUCCESS(_reportFlowService.GetWorkOrderReportWorkList(workorder));
}
//TODO 输入姓名拼音,查询此人今日报工记录
[HttpGet("get_report_info_by_name")]
public IActionResult GetReportInfoByName([FromQuery] ProReportWorkDto2 query)
{
if (string.IsNullOrEmpty(query.name))
{
throw new CustomException("name is null");
}
var response = _reportFlowService.GetReportInfoByName(query);
return SUCCESS(response);
}
//TODO 根据工艺路线获取所有工序
[HttpGet("get_process_by_route")]
public IActionResult GetProcessByRoute(int route_id = 32)
{
var response = _reportFlowService.GetProcessByRoute(route_id);
return SUCCESS(response);
}
//TODO 输入工序id 查询今天报工记录
[HttpGet("get_report_by_processid")]
public IActionResult GetReportByProcessId([FromQuery] ProReportWorkDto3 query)
{
if (query.processId <= 0)
{
throw new CustomException("processId is error");
}
var response = _reportFlowService.GetReportByProcessId(query);
return SUCCESS(response);
}
}