using DOAN.Service.JobKanban.IService; using Infrastructure.Converter; using Microsoft.AspNetCore.Mvc; namespace DOAN.WebApi.Controllers.JobKanban; /// /// 工单进度接口 /// [AllowAnonymous] [Route("kanban/workorderProgress")] public class WorkOrderProgressController : BaseController { private readonly IWorkorderProgressService workorderProgressService; public WorkOrderProgressController(IWorkorderProgressService workorderProgressService) { this.workorderProgressService = workorderProgressService; } //TODO 获取产线 [HttpGet("get_routes")] public IActionResult GetRoutes() { var response = workorderProgressService.GetRoutes(); return SUCCESS(response); } //TODO 获取班组 [HttpGet("get_group")] public IActionResult GetGroups() { var response = workorderProgressService.GetGroups(); return SUCCESS(response); } //TODO 根据班组,产线 和日期获取all报工记录 [HttpGet("get_report_record")] public IActionResult GetReportWorkRecord(string group_code, string line_code, DateTime handleDate) { if (string.IsNullOrEmpty(group_code) || string.IsNullOrEmpty(line_code) || handleDate == DateTime.MinValue) return SUCCESS(null); handleDate= DOANConvertDateTime.ConvertLocalDate(handleDate); var response = workorderProgressService.GetReportWorkRecord(group_code, line_code, handleDate); return SUCCESS(response); } /// /// 工单list (未完成的) /// /// /// /// [HttpGet("get_workorder_nofinish")] public IActionResult GetWorkOrderListNoFinish(DateTime today, string line_code, string group_code) { if (today == DateTime.MinValue || string.IsNullOrEmpty(line_code) || string.IsNullOrEmpty(group_code)) return SUCCESS(null); var response = workorderProgressService.GetWorkOrderListNoFinish(today, line_code, group_code); return SUCCESS(response); } //TODO 获取全部工单 //TODO 根据班组 ,产线 和日期获取all工单 [HttpGet("get_workorder_list")] public IActionResult GetWorkOrderList(string group_code, string line_code, DateTime handleDate) { if (string.IsNullOrEmpty(group_code) || string.IsNullOrEmpty(line_code) || handleDate == DateTime.MinValue) return SUCCESS(null); var response = workorderProgressService.GetWorkOrderList(group_code, line_code, handleDate); return SUCCESS(response); } // 获取工单详情 [HttpGet("get_workorder_detail")] public IActionResult GetWorkOrderDetail(string workorder) { if (string.IsNullOrEmpty(workorder)) return SUCCESS(null); var response = workorderProgressService.GetWorkOrderDetail(workorder); return SUCCESS(response); } // 获取今日总任务数 ,剩余任务数 [HttpGet("get_num_list")] public IActionResult GetKanbanNum(DateTime today, string line_code, string group_code) { if (today == DateTime.MinValue || string.IsNullOrEmpty(line_code) || string.IsNullOrEmpty(group_code)) return SUCCESS(null); var response = workorderProgressService.GetKanbanNum(today, line_code, group_code); return SUCCESS(response); } //TODO 开始某个工单 [HttpGet("start_workorder")] public async Task StartWorkOrder(string workorder) { if (string.IsNullOrEmpty(workorder)) return SUCCESS(null); var response = await workorderProgressService.StartWorkOrder(workorder); return SUCCESS(response); } //TODO 暂停某个工单 [HttpGet("pause_workorder")] public IActionResult PauseWorkOrder(string workorder) { if (string.IsNullOrEmpty(workorder)) return SUCCESS(null); var response = workorderProgressService.PauseWorkOrder(workorder); return SUCCESS(response); } //TODO 恢复某个工单 [HttpGet("recover_workorder")] public IActionResult RecoverWorkOrder(string workorder) { if (string.IsNullOrEmpty(workorder)) return SUCCESS(null); var response = workorderProgressService.RecoverWorkOrder(workorder); return SUCCESS(response); } //TODO 完成某一个工单 [HttpGet("finish_workorder")] public IActionResult FinishWorkOrder(string workorder) { if (string.IsNullOrEmpty(workorder)) return SUCCESS(null); var response = workorderProgressService.FinishWorkOrder(workorder); return SUCCESS(response); } /// /// TODO 完成 工单 /// /// /// /// 防错并且报工 /// /// /// /// -1 此产品不属于此工单 -2 长度不是36个字符 0 报工失败 1 成功报工 /// [HttpGet("errorProofingAndReportingWork")] public IActionResult ErrorProofingAndReportingWork(string workorder, string labelContext) { if (string.IsNullOrEmpty(labelContext) || string.IsNullOrEmpty(workorder)) throw new CustomException("workorder或者labelContext为空"); var response = workorderProgressService.ErrorProofingAndReportingWork(workorder, labelContext); return SUCCESS(response); } //TODO 获取工单进度 /// /// /// /// /// 1 是计算数量 2 完成数量 /// [HttpGet("get_workorder_progress")] public IActionResult GetWorkOrderProgress(string workorder) { if (string.IsNullOrEmpty(workorder)) throw new CustomException("workorder is null"); var response = workorderProgressService.GetWorkOrderProgress(workorder); return SUCCESS(response); } //TODO 获取工单开始时间 和计划耗时(分钟) [HttpGet("get_workorder_time")] public IActionResult GetWorkOrderTime(string workorder) { if (string.IsNullOrEmpty(workorder)) throw new CustomException("workorder is null"); var response = workorderProgressService.GetWorkOrderTime(workorder); return SUCCESS(response); } //TODO 查询工单下的扫描条码信息 [HttpGet("get_scan_code_info")] public IActionResult GetWorkOrderScanCodeInfo(string workorder) { if (string.IsNullOrEmpty(workorder)) throw new CustomException("workorder is null"); var response = workorderProgressService.GetWorkOrderScanCodeInfo(workorder); return SUCCESS(response); } //TODO 切换工单时校验,前工单的末标签是否校验成功通过 [HttpGet("switch_workorder_checkLabel")] public IActionResult SwitchWorkOrderCheckLabel(string pre_workorder) { if (string.IsNullOrEmpty(pre_workorder)) throw new CustomException("workorder is null"); var response = workorderProgressService.SwitchWorkOrderCheckLabel(pre_workorder); return SUCCESS(response); } //TODO 当天每小时目标产量和实际产量 [HttpGet("get_hourly_production")] public IActionResult GetHourlyProduction(string groupCode) { if (string.IsNullOrEmpty(groupCode)) throw new CustomException("groupCode is null"); var response = workorderProgressService.GetHourlyProduction(groupCode); return SUCCESS(response); } }