using Infrastructure.Extensions;
using JinianNet.JNTemplate;
using Microsoft.AspNetCore.Mvc;
using Microsoft.IdentityModel.Tokens;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Text.Json;
using ZR.Admin.WebApi.Extensions;
using ZR.Model.mes.md;
using ZR.Model.mes.pro;
using ZR.Model.MES.pro.DTO;
using ZR.Service.mes.pro;
using ZR.Service.mes.pro.IService;
using ZR.Service.MES.md;
namespace ZR.Admin.WebApi.Controllers.MES.pro
{
[Route("mes/pro/workorder")]
public class ProWorkorderController : BaseController
{
private readonly IProWorkorderService proWorkorderService;
public ProWorkorderController(IProWorkorderService proWorkorderService)
{
this.proWorkorderService = proWorkorderService;
}
///
/// 获取所有非排产工单
///
///
///
///
///
///
///
[HttpGet("getworkorderListwithoutschedule")]
public IActionResult GetWorkorderListWithoutSchedule(int pageNum, int pageSize, int year = -1, int week = -1, int date = -1)
{
(List, int) data = proWorkorderService.GetWorkorderList(pageNum, pageSize, year, week, date, 0);
return ToResponse(new ApiResult(200, "success", data));
}
///
/// 获取所有排产工单
///
///
///
///
///
///
///
[HttpGet("getworkorderListwithschedule")]
public IActionResult GetWorkorderListWithSchedule(int pageNum, int pageSize, int year = -1, int week = -1, int date = -1)
{
(List, int) data = proWorkorderService.GetWorkorderList(pageNum, pageSize, year, week, date, 1);
return ToResponse(new ApiResult(200, "success", data));
}
///
/// 根据工单ID,设置为排产状态
///
/// 工单ID
/// 预计开始时间
/// 预计结束时间
///
[HttpGet("setschedule")]
public IActionResult SetSchedule(string id, DateTime arrange_starttime, DateTime arrange_endtime)
{
int data = proWorkorderService.SetWorkorderSechedule(id, arrange_starttime, arrange_endtime);
return ToResponse(new ApiResult(200, "success", data));
}
///
/// 根据工单ID,设置为非排产状态
///
/// 工单ID
///
[HttpGet("resetschedule/{id}")]
public IActionResult ResetSchedule(string id)
{
int data = proWorkorderService.ResetWorkorderSechedule(id);
return ToResponse(new ApiResult(200, "success", data));
}
///
/// 下达开始领料指令
///
/// 工单ID
///
[HttpGet("releaseProduction/{id}")]
public IActionResult ReleaseProduction(string id)
{
int data = proWorkorderService.ReleaseProduction(id, HttpContext);
return ToResponse(new ApiResult(200, "success", data));
}
///
/// 对当前的,排产工单排序
///
/// 列表参数,一个是工单ID,一个是排序号
///
[HttpPost("sortschedule")]
public IActionResult SortSchedule([FromBody] List parameter)
{
int sum = 0;
foreach (ProWorkorderSortDTO item in parameter)
{
if(!string.IsNullOrEmpty(item.id))
{
int data = proWorkorderService.SortWorkorderSchedule(item.id, item.order);
sum += data;
}
}
return ToResponse(new ApiResult(200, "success", sum));
}
}
}