using DOAN.Model.Mobile.ReportFlow.Dto; using DOAN.Service.Mobile.IService; using Infrastructure.Converter; using Microsoft.AspNetCore.Mvc; namespace DOAN.Admin.WebApi.Controllers.Mobile; /// /// 工序流转卡 /// [AllowAnonymous] [Route("mobile/reportflow")] public class ReportFlowController : BaseController { //IReportFlowService private readonly IReportFlowService _reportFlowService; public ReportFlowController(IReportFlowService reportFlowService) { _reportFlowService = reportFlowService; } /// /// 根据指定日期获取工单列表 /// /// /// /// /// [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 查询工单详情 /// /// 查询工单详情 /// /// 工单号 /// /// [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 查询工序报工详情 /// /// 查询某个工序报工详情 /// /// /// /// /// [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 ) { 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 ) ); } //TODO 工序报工 /// /// 工序报工 /// /// /// /// /// /// /// [HttpGet("process_reportwork")] public IActionResult ProcessReportWork([FromQuery] ProReportWorkDto proReportWorkDto) { 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 ) ); } //TODO 出货工序 [HttpGet("shipment_process_reportwork")] public IActionResult ShipmentProcessReportwork( string workorder, int processId, int finish_num, int bad_num, string customer_order, string process_operator ) { 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); } //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); } }