using Microsoft.AspNetCore.Mvc; using DOAN.Admin.WebApi.Filters; using DOAN.Model; using DOAN.Model.MES.mm.Dto; using DOAN.Model.MES.mm; using System.Collections.Generic; using DOAN.Service.group.IService; using Aliyun.OSS; using JinianNet.JNTemplate; //创建时间:2024-08-30 namespace DOAN.Admin.WebApi.Controllers { /// /// 物料需求计划 /// [Verify] [Route("mes/materialManagement/MmRequirePlan")] public class MmRequirePlanController : BaseController { /// /// 物料需求计划接口 /// private readonly IMmRequirePlanService _MmRequirePlanService; public MmRequirePlanController(IMmRequirePlanService MmRequirePlanService) { _MmRequirePlanService = MmRequirePlanService; } //TODO 生成物料需求计划 [HttpGet("generate")] public IActionResult GenerateMmRequirePlan(DateTime? plan_date) { if (plan_date == null || plan_date == DateTime.MinValue) { SUCCESS(null); } var response = _MmRequirePlanService.GenerateMmRequirePlan(plan_date.Value, HttpContext.GetName()); return SUCCESS(response); } /// /// 查询物料需求计划列表 /// /// /// [HttpGet("list")] [ActionPermissionFilter(Permission = "materialManagement:mmrequireplan:list")] public IActionResult QueryMmRequirePlan([FromQuery] MmRequirePlanQueryDto parm) { var response = _MmRequirePlanService.GetList(parm); return SUCCESS(response); } /// /// 查询物料需求计划详情 /// /// /// [HttpGet("{Id}")] [ActionPermissionFilter(Permission = "materialManagement:mmrequireplan:query")] public IActionResult GetMmRequirePlan(string Id) { var response = _MmRequirePlanService.GetInfo(Id); var info = response.Adapt(); return SUCCESS(info); } /// /// 添加物料需求计划 /// /// [HttpPost] [ActionPermissionFilter(Permission = "materialManagement:mmrequireplan:add")] [Log(Title = "物料需求计划", BusinessType = BusinessType.INSERT)] public IActionResult AddMmRequirePlan([FromBody] MmRequirePlanDto parm) { var modal = parm.Adapt().ToCreate(HttpContext); var response = _MmRequirePlanService.AddMmRequirePlan(modal); return SUCCESS(response); } /// /// 更新物料需求计划 /// /// [HttpPut] [ActionPermissionFilter(Permission = "materialManagement:mmrequireplan:edit")] [Log(Title = "物料需求计划", BusinessType = BusinessType.UPDATE)] public IActionResult UpdateMmRequirePlan([FromBody] MmRequirePlanDto parm) { var modal = parm.Adapt().ToUpdate(HttpContext); var response = _MmRequirePlanService.UpdateMmRequirePlan(modal); return ToResponse(response); } /// /// 删除物料需求计划 /// /// [HttpDelete("{ids}")] [ActionPermissionFilter(Permission = "materialManagement:mmrequireplan:delete")] [Log(Title = "物料需求计划", BusinessType = BusinessType.DELETE)] public IActionResult DeleteMmRequirePlan(string ids) { string[] idsArr = Tools.SpitStrArrary(ids); if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } var response = _MmRequirePlanService.Delete(idsArr); return ToResponse(response); } //TODO 修改足料和缺料 [HttpGet("update_material_status")] public IActionResult UpdateMaterialStatus(string id, int status) { var response = _MmRequirePlanService.UpdateMaterialStatus(id, status, HttpContext.GetName()); return SUCCESS(response); } //TODO 一键足料、缺料 [HttpGet("all_update_material_status")] public IActionResult AllUpdateMaterialStatus(DateTime? handledate, int status) { var response = _MmRequirePlanService.AllUpdateMaterialStatus(handledate, status, HttpContext.GetName()); return SUCCESS(response); } // TODO 检测是否可以和ERP库存通讯 [HttpGet("check_communication_ERP_inv")] public IActionResult CheckCommunicationERPInventory() { var response = _MmRequirePlanService.CheckCommunicationERPInventory(); return SUCCESS(response); } //TODO 根据产线和日期查询物料需求计划 [HttpPost("get_material_require_plan_byline")] public IActionResult GetMaterialRequirePlanByline([FromBody] MmRequirePlanQueryDto2 parm) { var response = _MmRequirePlanService.GetMaterialRequirePlanByline(parm); return SUCCESS(response); } } }