shgx_tz_mom/ZR.Admin.WebApi/Controllers/mes/wms/WmOutOrderController.cs

308 lines
10 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
/// <summary>
/// 出货单(物料+客户)
/// </summary>
// [Verify]
[Route("mes/wm/WmOutOrder")]
public class WmOutOrderController : BaseController
{
/// <summary>
/// 出货单(物料+客户)接口
/// </summary>
private readonly IWmOutOrderService _WmOutOrderService;
public WmOutOrderController(IWmOutOrderService WmOutOrderService)
{
_WmOutOrderService = WmOutOrderService;
}
/// <summary>
/// 查询出货单(物料+客户)列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "business:wmoutorder:list")]
public IActionResult QueryWmOutOrder([FromQuery] WmOutOrderQueryDto parm)
{
var response = _WmOutOrderService.GetList(parm);
return SUCCESS(response);
}
/// <summary>
/// 查询出货单(物料+客户)详情
/// </summary>
/// <param name="ShipmentNum"></param>
/// <returns></returns>
[HttpGet("{ShipmentNum}")]
[ActionPermissionFilter(Permission = "business:wmoutorder:query")]
public IActionResult GetWmOutOrder(string ShipmentNum)
{
var response = _WmOutOrderService.GetInfo(ShipmentNum);
return SUCCESS(response);
}
/// <summary>
/// 添加出货单(物料+客户)
/// </summary>
/// <returns></returns>
[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);
if (response == null)
{
return ToResponse(new ApiResult(500, "数据存在异常请检查", "数据存在异常请检查"));
}
return SUCCESS(response);
}
/// <summary>
/// 更新出货单(物料+客户)
/// </summary>
/// <returns></returns>
[HttpPut]
[ActionPermissionFilter(Permission = "business:wmoutorder:edit")]
[Log(Title = "出货单(物料+客户)", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateWmOutOrder([FromBody] WmOutOrderDto parm)
{
var modal = parm.Adapt<WmOutOrder>().ToUpdate(HttpContext);
var response = _WmOutOrderService.UpdateWmOutOrder(modal);
return ToResponse(response);
}
/// <summary>
/// 删除出货单(物料+客户)
/// </summary>
/// <returns></returns>
[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(","));
// 删除外键 物料清单
_WmOutOrderService.Delete_fk_matrial(ids.Split(","));
return ToResponse(response);
}
/// <summary>
/// 获取客户信息
/// </summary>
/// <returns></returns>
[HttpGet("getcustom_list")]
public IActionResult GetWmOutOrder()
{
List<WmCustom> customs = _WmOutOrderService.GetCustominfo();
return SUCCESS(customs);
}
/// <summary>
/// 查询物料记录表列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("getmaterial_list")]
public IActionResult QueryWmMaterial([FromQuery] WmMaterialQueryDto parm)
{
var response = _WmOutOrderService.GetmaterialList(parm);
return SUCCESS(response);
}
/// <summary>
/// 生成出货单的物料信息
/// </summary>
/// <returns></returns>
[HttpGet("getoutorder_matrials")]
public IActionResult Queryoutoder_matrials(string shipment_num)
{
if (shipment_num == null)
{
return SUCCESS(null);
}
List<WmMaterialQuery_print> data = _WmOutOrderService.Queryoutoder_matrials(shipment_num);
return SUCCESS(data);
}
/// <summary>
/// 8.1根据出库单生成出库计划
/// </summary>
/// <param name="shipment_num"></param>
/// <returns></returns>
[HttpGet("generate_outorderplan")]
public IActionResult Generate_outorderplan(string shipment_num)
{
if (shipment_num == null)
{
return SUCCESS(null);
}
// TODO 1.返回值修改为 对象 返回是否可生成计划,计划结果:{canPlan:true,resultList:[]}
// XXX 无计划返回空即可
List<WmOutOrderPlan> WmOutOrderPlanList = _WmOutOrderService.Generate_outorderplan(shipment_num);
return SUCCESS(WmOutOrderPlanList);
}
/// <summary>
/// 8.2 持久化存储出库单的出库计划
/// </summary>
/// <param name="shipment_num"></param>
/// <returns></returns>
[HttpGet("persistenceOutorderplan")]
public IActionResult PersistenceOutorderplan(string shipment_num)
{
if (shipment_num == null)
{
return SUCCESS(null);
}
int result = _WmOutOrderService.PersistenceOutorderplan(shipment_num);
return SUCCESS(result);
}
/// <summary>
/// 8.3 获取出库单的持久化存储出库计划
/// </summary>
/// <param name="shipment_num"></param>
/// <returns></returns>
[HttpGet("getOutOrderplan")]
public IActionResult getOutOrderplan(string shipment_num)
{
if (shipment_num == null)
{
return SUCCESS(null);
}
int result = _WmOutOrderService.PersistenceOutorderplan(shipment_num);
return SUCCESS(result);
}
/// <summary>
/// 8.4 获取出库单的已出货物
/// </summary>
/// <param name="shipment_num"></param>
/// <returns></returns>
[HttpGet("getOutOrderOutProduction")]
public IActionResult getOutOrderOutProduction(string shipment_num)
{
if (shipment_num == null)
{
return SUCCESS(null);
}
int result = _WmOutOrderService.PersistenceOutorderplan(shipment_num);
return SUCCESS(result);
}
/// <summary>
/// 8.5 PDA端 获取出库单的持久化存储出库计划并计算计划批次当前已出库数量
/// </summary>
/// <param name="shipment_num">出库单号</param>
/// <param name="partnumber">物料号(零件号)</param>
/// <returns></returns>
[HttpGet("getOutOrderPlanAndOutProductionNum")]
public IActionResult GetOutOrderPlanAndOutProductionNum(string shipment_num, string partnumber)
{
if (shipment_num == null)
{
return ToResponse(new ApiResult(500, "传入工单号为空!", "传入工单号为空!"));
}
var result = _WmOutOrderService.GetOutOrderPlanAndOutProductionNum(shipment_num, partnumber);
if (result == null)
{
return ToResponse(new ApiResult(500, "获取计划异常!", "获取计划异常!"));
}
return SUCCESS(result);
}
/// <summary>
/// 5 成品出库
/// </summary>
/// <param name="doMaterialOut"></param>
/// <returns>
///
/// </returns>
[HttpPost("doMaterialOut")]
[Log(Title = "出库", BusinessType = BusinessType.INSERT)]
public IActionResult DoMaterialOut([FromBody] WmDoMaterialOut_Dto doMaterialOut)
{
if (doMaterialOut == null || doMaterialOut.ShipmentNum == null)
{
return SUCCESS(null);
}
string createName = HttpContext.GetName();
(int, int) data = _WmOutOrderService.DoMaterialOut(doMaterialOut, createName);
return SUCCESS(data);
}
/// <summary>
/// 6 出库单完成
/// </summary>
/// <param name="shipment_num"></param>
/// <returns></returns>
[HttpGet("over_outorderplan")]
public IActionResult OverOutorderplan(string shipmentNum)
{
if (shipmentNum == null)
{
return SUCCESS(null);
}
bool status = _WmOutOrderService.OverOutorderplan(shipmentNum);
return SUCCESS(status);
}
/// <summary>
/// 7 检查是否可出库
/// </summary>
/// <param name="production_packcode">扫码结果</param>
/// <param name="shipment_num">出库单号</param>
/// <returns></returns>
[HttpGet("checkProductionOut")]
public IActionResult CheckProductionOut(string partnumber, string production_packcode = "", string shipment_num = "")
{
if (string.IsNullOrEmpty(partnumber))
{
return ToResponse(new ApiResult(200, "请选择物料号", false));
}
string msg = "";
msg = _WmOutOrderService.CheckProductionOut(partnumber, production_packcode, shipment_num);
if (msg != "ok")
{
return ToResponse(new ApiResult(200, msg, false));
}
else
{
return ToResponse(new ApiResult(200, msg, true));
}
}
}
}