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 } }