using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using VueWebCoreApi.DLL.BLL;
using VueWebCoreApi.Models;
using VueWebCoreApi.Models.WorkData;
using VueWebCoreApi.Tools;
namespace VueWebCoreApi.Controllers
{
[ApiExplorerSettings(GroupName = "工单管理")]
[ApiController]
[Route("api/[controller]")]
[ChannelActionFilter]
public class WorkOrderController : Controller
{
//定义全局信息返回变量
ToMessage mes = new ToMessage();
RedisHelper redis = new RedisHelper();
#region[ERP订单查询]
///
/// ERP订单查询
///
/// 订单状态码
/// 订单编号
/// 销售单号
/// 产品编码
/// 产品名称
/// 产品规格
/// 预计开工时间
/// 预计完工时间
/// 创建人员
/// 页码
/// 每页显示条数
/// 排序字段
/// 排序规则
///
[Route(template: "ErpOrderSearch")]
[HttpGet]
public JsonResult ErpOrderSearch(string erporderstus = null, string erpordercode = null, string saleordercode = null, string partcode = null, string partname = null, string partspec = null, string paystartdate = null, string payenddate = null, string creatuser = null, int page = 0, int rows = 0, string prop = null, string order = null)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
string paydatestartdate = ""; //预计开工开始时间
string paydateenddate = ""; //预计开工结束时间
string paydatestartdate1 = ""; //预计完工开始时间
string paydateenddate2 = ""; //预计完工结束时间
if (paystartdate != "" && paystartdate != null)
{
paydatestartdate = paystartdate.Split('~')[0].ToString();
paydateenddate = paystartdate.Split('~')[1].ToString();
}
if (payenddate != "" && payenddate != null)
{
paydatestartdate1 = payenddate.Split('~')[0].ToString();
paydateenddate2 = payenddate.Split('~')[1].ToString();
}
int startNum = rows * (page - 1) + 1; //起始记录rowNum
int endNum = rows * page; //结束记录 rowNum
mes = WorkOrderBLL.ErpOrderSearch(erporderstus, erpordercode, saleordercode, partcode, partname, partspec, startNum, paydatestartdate, paydateenddate, paydatestartdate1, paydateenddate2, creatuser, endNum, prop, order);
return Json(mes);
}
#endregion
#region[ERP订单下达]
///
/// ERP订单下达
///
/// 提交数据
///
[Route(template: "MarkSaveErpOrder")]
[HttpPost]
public JsonResult MarkSaveErpOrder([FromBody] JObject obj)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
string erporderid = obj["erporderid"].ToString(); //订单id
string sbid = obj["sbid"].ToString(); //sbid(订单明细id)
string erpordercode = obj["erpordercode"].ToString(); //订单编号
string saleordercode = obj["saleordercode"].ToString(); //销售订单号
string partcode = obj["partcode"].ToString(); //产品编码
string wkshopcode = obj["wkshopcode"].ToString(); //车间编码
string warehousecode = obj["warehousecode"].ToString(); //仓库编码
string erpqty = obj["erpqty"].ToString(); //订单数量
string markqty = obj["markqty"].ToString(); //下单数量
string ordernum = obj["ordernum"].ToString(); //下单单数
string relse_qty = obj["relse_qty"].ToString(); //已下单数量
string saleOrderDeliveryDate = obj["saleOrderDeliveryDate"].ToString(); //交付时间
mes = WorkOrderBLL.MarkSaveErpOrder(erporderid, sbid, erpordercode, saleordercode, partcode, wkshopcode, warehousecode, erpqty, markqty, ordernum, relse_qty, saleOrderDeliveryDate,us);
return Json(mes);
}
#endregion
#region[ERP订单关闭]
///
/// ERP订单关闭
///
/// 订单id
/// 订单号
///
[Route(template: "ClosedErpOrder")]
[HttpPost]
public JsonResult ClosedErpOrder(string erporderid, string erpordercode)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = WorkOrderBLL.ClosedErpOrder(erporderid, erpordercode, us);
return Json(mes);
}
#endregion
#region[ERP订单删除]
///
/// ERP订单删除
///
/// 订单id
/// 订单号
///
[Route(template: "DeleteErpOrder")]
[HttpPost]
public JsonResult DeleteErpOrder(string erporderid, string erpordercode)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = WorkOrderBLL.DeleteErpOrder(erporderid, erpordercode, us);
return Json(mes);
}
#endregion
#region[MES工单查询]
///
/// MES工单查询
///
/// 工单状态码
/// 工单编号
/// 源单单号
/// 销售单号
/// 单据类型
/// 产品编码
/// 产品名称
/// 产品规格
/// 创建人员
/// 创建时间
/// 页码
/// 每页显示条数
/// 排序字段
/// 排序规则
///
[Route(template: "MesOrderSearch")]
[HttpGet]
public JsonResult MesOrderSearch(int page, int rows, string prop, string order, string mesorderstus = null, string mesordercode = null, string sourceorder = null, string saleordercode = null, string ordertype = null, string partcode = null, string partname = null, string partspec = null, string creatuser = null, string createdate = null)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
int startNum = rows * (page - 1) + 1; //起始记录rowNum
int endNum = rows * page; //结束记录 rowNum
mes = WorkOrderBLL.MesOrderSearch(mesorderstus, mesordercode, sourceorder, saleordercode, ordertype, partcode, partname, partspec, startNum, creatuser, createdate, endNum, prop, order);
return Json(mes);
}
#endregion
#region[MES报废补单工单查询]
///
/// MES报废补单工单查询
///
/// 工单编号
/// 源单单号
/// 销售单号
/// 产品编码
/// 产品名称
/// 产品规格
/// 创建人员
/// 创建时间
/// 页码
/// 每页显示条数
/// 排序字段
/// 排序规则
///
[Route(template: "MesBadOrderSearch")]
[HttpGet]
public JsonResult MesBadOrderSearch(int page, int rows, string prop, string order, string mesordercode = null, string sourceorder = null, string saleordercode = null, string partcode = null, string partname = null, string partspec = null, string creatuser = null, string createdate = null)
{
int startNum = rows * (page - 1) + 1; //起始记录rowNum
int endNum = rows * page; //结束记录 rowNum
mes = WorkOrderBLL.MesBadOrderSearch(mesordercode, sourceorder, saleordercode, partcode, partname, partspec, startNum, creatuser, createdate, endNum, prop, order);
return Json(mes);
}
#endregion
#region[MES工单新增、获取工单号]
///
/// MES工单新增、获取工单号
///
///
[Route(template: "AddMesOrderCodeSearch")]
[HttpPost]
public JsonResult AddMesOrderCodeSearch()
{
mes = WorkOrderBLL.AddMesOrderCodeSearch();
return Json(mes);
}
#endregion
#region[MES工单编辑获取工序数据]
///
/// MES工单编辑获取工序数据
///
/// 源单id
/// 源单单号
/// 工单号
/// 数据来源:ERP/MES
///
[Route(template: "UpdateMesOrderStepSearch")]
[HttpGet]
public JsonResult UpdateMesOrderStepSearch(string sourceid,string sourcewo,string wocode,string data_sources)
{
mes = WorkOrderBLL.UpdateMesOrderStepSearch(sourceid, sourcewo, wocode, data_sources);
return Json(mes);
}
#endregion
#region[MES工单新增、编辑提交]
///
/// MES工单新增、编辑提交
///
/// 操作类型
/// 提交数据
///
[Route(template: "AddUpdateMesOrder")]
[HttpPost]
public JsonResult AddUpdateMesOrder(WorkList json,string OperType)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = WorkOrderBLL.AddUpdateMesOrder(OperType,json, us);
return Json(mes);
}
#endregion
#region[MES工单删除]
///
/// MES工单删除
///
/// 源单id
/// 工单编号
/// 订单编号
/// 工单数量
///
[Route(template: "DeleteMesOrder")]
[HttpPost]
public JsonResult DeleteMesOrder(string souceid, string wocode, string m_po, string orderqty)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = WorkOrderBLL.DeleteMesOrder(souceid, wocode, m_po, orderqty,us);
return Json(mes);
}
#endregion
#region[MES工单派发提交]
///
/// MES工单派发提交
///
/// 工单号数组
///
[Route(template: "MesOrderDistribution")]
[HttpPost]
public JsonResult MesOrderDistribution([FromBody] string[] wocodelist)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = WorkOrderBLL.MesOrderDistribution(wocodelist, us);
return Json(mes);
}
#endregion
#region[MES工单关闭列表查询]
///
/// MES工单关闭列表查询
///
/// 工单状态(已关闭/未关闭)
/// 工单编号
/// 源单单号
/// 销售单号
/// 单据类型
/// 产品编码
/// 产品名称
/// 产品规格
/// 创建人员
/// 创建时间
/// 页码
/// 每页显示条数
/// 排序字段
/// 排序规则
///
[Route(template: "MesOrderClosedSearch")]
[HttpGet]
public JsonResult MesOrderClosedSearch(int page, int rows, string prop, string order, string mesorderstus = null, string mesordercode = null, string sourceorder = null, string saleordercode = null, string ordertype = null, string partcode = null, string partname = null, string partspec = null, string creatuser = null, string createdate = null)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
int startNum = rows * (page - 1) + 1; //起始记录rowNum
int endNum = rows * page; //结束记录 rowNum
mes = WorkOrderBLL.MesOrderClosedSearch(mesorderstus, mesordercode, sourceorder, saleordercode, ordertype, partcode, partname, partspec, startNum, creatuser, createdate, endNum, prop, order);
return Json(mes);
}
#endregion
#region[MES工单关闭提交]
///
/// MES工单关闭提交
///
/// 工单号数组
///
[Route(template: "MesOrderBitchClosedSeave")]
[HttpPost]
public JsonResult MesOrderBitchClosedSeave([FromBody] string[] wocodelist)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = WorkOrderBLL.MesOrderBitchClosedSeave(us, wocodelist);
return Json(mes);
}
#endregion
#region[生产开报工扫码获取工单对应工序任务(自制)]
///
/// 生产开报工扫码获取工单对应工序任务(自制)
///
/// 工单号
/// 产品编码
/// 产品名称
/// 规格型号
/// 页码
/// 每页显示条数
/// 排序字段
/// 排序规则(默认按照计划开工时间正序)
///
[Route(template: "MesOrderStepSearch")]
[HttpGet]
public JsonResult MesOrderStepSearch(string wocode = null, string partcode = null, string partname = null, string partspec = null, int page = 0, int rows = 0, string prop = null, string order = null)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
int startNum = rows * (page - 1) + 1; //起始记录rowNum
int endNum = rows * page; //结束记录 rowNum
mes = WorkOrderBLL.MesOrderStepSearch(wocode, partcode, partname, partspec, startNum, endNum, prop, order);
return Json(mes);
}
#endregion
#region[生产开报工扫码获取工单对应工序任务(外协)]
///
/// 生产开报工扫码获取工单对应工序任务(外协)
///
/// 工单号
/// 产品编码
/// 产品名称
/// 规格型号
/// 页码
/// 每页显示条数
/// 排序字段
/// 排序规则(默认按照计划开工时间正序)
///
[Route(template: "MesOrderWxStepSearch")]
[HttpGet]
public JsonResult MesOrderWxStepSearch(string wocode = null, string partcode = null, string partname = null, string partspec = null, int page = 0, int rows = 0, string prop = null, string order = null)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
int startNum = rows * (page - 1) + 1; //起始记录rowNum
int endNum = rows * page; //结束记录 rowNum
mes = WorkOrderBLL.MesOrderWxStepSearch(wocode, partcode, partname, partspec, startNum, endNum, prop, order);
return Json(mes);
}
#endregion
#region[生产开报工扫码获取工单对应工序任务(不良)]
///
/// 生产开报工扫码获取工单对应工序任务(不良)
///
/// 工单号
/// 产品编码
/// 产品名称
/// 规格型号
/// 页码
/// 每页显示条数
/// 排序字段
/// 排序规则(默认按照计划开工时间正序)
///
[Route(template: "MesOrderNgStepSearch")]
[HttpGet]
public JsonResult MesOrderNgStepSearch(string wocode = null, string partcode = null, string partname = null, string partspec = null, int page = 0, int rows = 0, string prop = null, string order = null)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
int startNum = rows * (page - 1) + 1; //起始记录rowNum
int endNum = rows * page; //结束记录 rowNum
mes = WorkOrderBLL.MesOrderNgStepSearch(wocode, partcode, partname, partspec, startNum, endNum, prop, order);
return Json(mes);
}
#endregion
#region[生产开报工扫码获取工单对应工序任务(不良明细)]
///
/// 生产开报工扫码获取工单对应工序任务(不良明细)
///
/// 工单号
/// 工序编码
///
[Route(template: "MesOrderNgSubStepSearch")]
[HttpGet]
public JsonResult MesOrderNgSubStepSearch(string wocode,string stepcode)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = WorkOrderBLL.MesOrderNgSubStepSearch(wocode,stepcode);
return Json(mes);
}
#endregion
#region [生产开报工:报工/外协(发料/收料)时条件判断及数据返回接口]
///
/// 生产开报工:报工/外协(发料/收料)时条件判断及数据返回接口
///
/// 操作类型:自制(ZZ)/外协(WX)
/// 操作类型:自制(传空)/外协(发料标识(OUT)/收料标识(IN))
/// 工单编号
/// 工序编号
///
[Route(template: "MesOrderStepStart")]
[HttpGet]
public JsonResult MesOrderStepStart(string OperType,string SelectType, string wocode, string stepcode )
{
mes = WorkOrderBLL.MesOrderStepStart(OperType,SelectType, wocode, stepcode);
return Json(mes);
}
#endregion
}
}