using Microsoft.AspNetCore.Mvc; using ZR.Admin.WebApi.Extensions; using ZR.Admin.WebApi.Filters; using ZR.Model.MES.wms; using ZR.Model.MES.wms.Dto; using ZR.Service.mes.wms.IService; //创建时间:2024-03-18 namespace ZR.Admin.WebApi.Controllers { /// /// 出货单(物料+客户) /// // [Verify] [Route("mes/wm/WmOutOrder")] public class WmOutOrderController : BaseController { /// /// 出货单(物料+客户)接口 /// private readonly IWmOutOrderService _WmOutOrderService; public WmOutOrderController(IWmOutOrderService WmOutOrderService) { _WmOutOrderService = WmOutOrderService; } /// /// 查询出货单(物料+客户)列表 /// /// /// [HttpGet("list")] [ActionPermissionFilter(Permission = "business:wmoutorder:list")] public IActionResult QueryWmOutOrder([FromQuery] WmOutOrderQueryDto parm) { var response = _WmOutOrderService.GetList(parm); return SUCCESS(response); } /// /// 查询出货单(物料+客户)详情 /// /// /// [HttpGet("{ShipmentNum}")] [ActionPermissionFilter(Permission = "business:wmoutorder:query")] public IActionResult GetWmOutOrder(string ShipmentNum) { var response = _WmOutOrderService.GetInfo(ShipmentNum); return SUCCESS(response); } /// /// 添加出货单(物料+客户) /// /// [HttpPost] [ActionPermissionFilter(Permission = "business:wmoutorder:add")] [Log(Title = "出货单(物料+客户)", BusinessType = BusinessType.INSERT)] public IActionResult AddWmOutOrder([FromBody] WmOutOrder_materialDto parm) { if (parm == null) { return SUCCESS(null); } var modal = parm.ToCreate(HttpContext); var response = _WmOutOrderService.AddWmOutOrder(modal); return SUCCESS(response); } /// /// 更新出货单(物料+客户) /// /// [HttpPut] [ActionPermissionFilter(Permission = "business:wmoutorder:edit")] [Log(Title = "出货单(物料+客户)", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateWmOutOrder([FromBody] WmOutOrderDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _WmOutOrderService.UpdateWmOutOrder(modal); return ToResponse(response); } /// /// 删除出货单(物料+客户) /// /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "business:wmoutorder:delete")] [Log(Title = "出货单(物料+客户)", BusinessType = BusinessType.DELETE)] public IActionResult DeleteWmOutOrder(string ids) { if (string.IsNullOrEmpty(ids)) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } var response = _WmOutOrderService.Delete(ids.Split(",")); return ToResponse(response); } /// /// 获取客户信息 /// /// [HttpGet("getcustom_list")] public IActionResult GetWmOutOrder() { List customs = _WmOutOrderService.GetCustominfo(); return SUCCESS(customs); } /// /// 查询物料记录表列表 /// /// /// [HttpGet("getmaterial_list")] public IActionResult QueryWmMaterial([FromQuery] WmMaterialQueryDto parm) { var response = _WmOutOrderService.GetmaterialList(parm); return SUCCESS(response); } /// /// 生成出货单的物料信息 /// /// [HttpGet("getoutorder_matrials")] public IActionResult Queryoutoder_matrials(string shipment_num) { if (shipment_num == null) { return SUCCESS(null); } List data = _WmOutOrderService.Queryoutoder_matrials(shipment_num); return SUCCESS(data); } /// /// 生成出货单的出货计划 /// /// /// [HttpGet("generate_outorderplan")] public IActionResult Generate_outorderplan(string shipment_num) { if (shipment_num == null) { return SUCCESS(null); } // TODO 1.返回值修改为 对象 返回是否可生成计划,计划结果:{canPlan:true,resultList:[]} List WmOutOrderPlanList = _WmOutOrderService.Generate_outorderplan(shipment_num); return SUCCESS(WmOutOrderPlanList); } /// /// 5 成品出库 /// /// /// /// /// [HttpPost("doMaterialOut")] public IActionResult DoMaterialOut([FromBody] WmDoMaterialOut_Dto doMaterialOut) { if (doMaterialOut == null || doMaterialOut.ShipmentNum == null) { return SUCCESS(null); } (int, int) data = _WmOutOrderService.DoMaterialOut(doMaterialOut, HttpContext.GetName()); return SUCCESS(data); } /// /// 6 出库单完成 /// /// /// [HttpGet("over_outorderplan")] public IActionResult OverOutorderplan(string shipment_num) { if (shipment_num == null) { return SUCCESS(null); } bool status = _WmOutOrderService.OverOutorderplan(shipment_num); return SUCCESS(status); } /// /// 7 检查是否可出库 /// /// 扫码结果 /// 出库单号 /// [HttpGet("checkProductionOut")] public IActionResult checkProductionOut(string production_packcode = "", string shipment_num = "") { string msg = "可出库"; return ToResponse(new ApiResult(200, msg, true)); } } }