using Microsoft.AspNetCore.Mvc; using DOAN.Model.MES.product; using DOAN.Model.MES.product.Dto; using DOAN.Service.MES.product.IService; using DOAN.Service.MES.product; using DOAN.Admin.WebApi.Filters; using Org.BouncyCastle.Crypto; using DOAN.Model.System; using MiniExcelLibs; using DOAN.Model.System.Dto; using DOAN.Model; //创建时间:2024-07-16 namespace DOAN.Admin.WebApi.Controllers { /// /// 生产工单 /// [Verify] [Route("mes/productManagement/ProWorkorder")] public class ProWorkorderController : BaseController { /// /// 生产工单接口 /// private readonly IProWorkorderService _ProWorkorderService; public ProWorkorderController(IProWorkorderService ProWorkorderService) { _ProWorkorderService = ProWorkorderService; } /// /// 查询生产工单列表 /// /// /// [HttpPost("list")] [ActionPermissionFilter(Permission = "productManagement:proworkorder:list")] public IActionResult QueryProWorkorder([FromBody] ProWorkorderQueryDto parm) { var response = _ProWorkorderService.GetList(parm); return SUCCESS(response); } /// /// 查询生产工单详情 /// /// /// [HttpGet("{Id}")] [ActionPermissionFilter(Permission = "productManagement:proworkorder:query")] public IActionResult GetProWorkorder(string Id) { var response = _ProWorkorderService.GetInfo(Id); var info = response.Adapt(); return SUCCESS(info); } /// /// 添加生产工单 /// /// [HttpPost] [ActionPermissionFilter(Permission = "productManagement:proworkorder:add")] [Log(Title = "生产工单", BusinessType = BusinessType.INSERT)] public IActionResult AddProWorkorder([FromBody] ProWorkorderDto parm) { var modal = parm.Adapt().ToCreate(HttpContext); var response = _ProWorkorderService.AddProWorkorder(modal); return SUCCESS(response); } /// /// 更新生产工单 /// /// [HttpPut] [ActionPermissionFilter(Permission = "productManagement:proworkorder:edit")] [Log(Title = "生产工单", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateProWorkorder([FromBody] ProWorkorderDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _ProWorkorderService.UpdateProWorkorder(modal); return ToResponse(response); } /// /// 删除生产工单 /// /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "productManagement:proworkorder:delete")] [Log(Title = "生产工单", BusinessType = BusinessType.DELETE)] public IActionResult DeleteProWorkorder(string ids) { string[] idsArr = Tools.SpitStrArrary(ids); if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } var response = _ProWorkorderService.Delete(idsArr); return ToResponse(response); } /// /// 生成工单号 /// /// /// 生成工单号 数量 [HttpPost("Generate_workorder")] public IActionResult Generate_workorder([FromBody] ProWorkorderQueryDto2 parm) { if (parm.WorkorderDate <= DateTime.MinValue) { SUCCESS(null); } var response = _ProWorkorderService.Generate_workorder(parm); return SUCCESS(response); } /// /// 插入工单 /// /// /// 1成功 0失败 [HttpPost("insert_workorder")] public IActionResult Insert_workOrder([FromBody] ProWorkorderDto2 parm) { if (parm == null) { return SUCCESS(null); } ProWorkorder newparm= parm.Adapt().ToCreate(HttpContext); var response = _ProWorkorderService.Insert_workOrder(newparm,parm.next_id); return SUCCESS(response); } /// /// 移动工单 /// /// 1上 2下 /// /// [HttpGet("move_workorder")] public IActionResult MoveWorkorder(string id,int type) { if(string.IsNullOrEmpty(id)) { return SUCCESS(null); } var response = _ProWorkorderService.MoveWorkorder(id, type); return SUCCESS(response); } /// /// 生产工单导入模板下载 workorder /// /// [HttpGet("importTemplate")] [Log(Title = "生产工单导入模板", BusinessType = BusinessType.EXPORT, IsSaveRequestData = true, IsSaveResponseData = false)] [AllowAnonymous] public IActionResult ImportTemplateExcel() { (string, string) result = DownloadImportTemplate("workorder"); return ExportExcel(result.Item2, result.Item1); } /// /// 导入 /// /// 使用IFromFile必须使用name属性否则获取不到文件 /// 导入成功数 若-1 则excel读取异常 [HttpPost("importData")] [Log(Title = "生产工单导入", BusinessType = BusinessType.IMPORT, IsSaveRequestData = false, IsSaveResponseData = true)] [AllowAnonymous] public IActionResult ImportData([FromForm(Name = "file")] IFormFile formFile) { if (formFile == null) { return SUCCESS(null); } var response = _ProWorkorderService.ImportData(formFile,HttpContext.GetName()); return SUCCESS(response); } /// /// 工单导出 /// /// /// [HttpGet("export")] [Log(Title = "工单导出", BusinessType = BusinessType.EXPORT)] [AllowAnonymous] public IActionResult WorkOrderExport([FromQuery] DateTime extportDate) { if(extportDate==DateTime.MinValue) { return SUCCESS(null); } var list = _ProWorkorderService.WorkOrderExport(extportDate, new PagerInfo(1, 10000)); var result = ExportExcelMini(list.Result, "workorder", "工单列表"); return ExportExcel(result.Item2, result.Item1); } } }