yl
2024-04-15 7ff74f599084561338eef1230db5aa45f74565f8
VueWebCoreApi/Controllers/WorkOrderController.cs
@@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
@@ -7,6 +8,9 @@
using System.Threading.Tasks;
using VueWebCoreApi.DLL.BLL;
using VueWebCoreApi.Models;
using VueWebCoreApi.Models.ErpOrder;
using VueWebCoreApi.Models.ReportVerify;
using VueWebCoreApi.Models.UpdateReport;
using VueWebCoreApi.Models.WorkData;
using VueWebCoreApi.Tools;
@@ -20,13 +24,14 @@
    {
        //定义全局信息返回变量
        ToMessage mes = new ToMessage();
        RedisHelper redis = new RedisHelper();
        RedisCommon redis = new RedisCommon();
        #region[ERP订单查询]
        /// <summary>
        /// ERP订单查询
        /// </summary>
        /// <param name="erporderstus">订单状态码</param>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="erpordercode">订单编号</param>
        /// <param name="saleordercode">销售单号</param>
        /// <param name="partcode">产品编码</param>
@@ -42,7 +47,7 @@
        /// <returns></returns>
        [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)
        public JsonResult ErpOrderSearch(string erporderstus = null,string wkshopcode=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());
@@ -62,7 +67,7 @@
            }
            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);
            mes = WorkOrderBLL.ErpOrderSearch(erporderstus, wkshopcode, erpordercode, saleordercode, partcode, partname, partspec, startNum, paydatestartdate, paydateenddate, paydatestartdate1, paydateenddate2, creatuser, endNum, prop, order);
            return Json(mes);
        }
        #endregion
@@ -91,7 +96,20 @@
            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);
            string clerkuser = obj["clerkuser"].ToString(); //销售订单业务员
            mes = WorkOrderBLL.MarkSaveErpOrder(erporderid, sbid, erpordercode, saleordercode, partcode, wkshopcode, warehousecode, erpqty, markqty, ordernum, relse_qty, saleOrderDeliveryDate, clerkuser, us);
            return Json(mes);
        }
        #endregion
        #region[订单批量下达]
        [Route(template: "MarkBatchSaveErpOrder")]
        [HttpPost]
        public JsonResult MarkBatchSaveErpOrder(List<ErpOrderBatch> obj)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = WorkOrderBLL.MarkBatchSaveErpOrder(obj, us);
            return Json(mes);
        }
        #endregion
@@ -138,6 +156,7 @@
        /// MES工单查询
        /// </summary>
        /// <param name="mesorderstus">工单状态码</param>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="mesordercode">工单编号</param>
        /// <param name="sourceorder">源单单号</param>
        /// <param name="saleordercode">销售单号</param>
@@ -154,13 +173,13 @@
        /// <returns></returns>
        [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)
        public JsonResult MesOrderSearch(int page, int rows, string prop, string order, string mesorderstus = null,string wkshopcode=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);
            mes = WorkOrderBLL.MesOrderSearch(mesorderstus, wkshopcode, mesordercode, sourceorder, saleordercode, ordertype, partcode, partname, partspec, startNum, creatuser, createdate, endNum, prop, order);
            return Json(mes);
        }
        #endregion
@@ -169,6 +188,7 @@
        /// <summary>
        /// MES报废补单工单查询
        /// </summary>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="mesordercode">工单编号</param>
        /// <param name="sourceorder">源单单号</param>
        /// <param name="saleordercode">销售单号</param>
@@ -184,11 +204,11 @@
        /// <returns></returns>
        [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)
        public JsonResult MesBadOrderSearch(int page, int rows, string prop, string order,string wkshopcode=null, 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);
            mes = WorkOrderBLL.MesBadOrderSearch(wkshopcode,mesordercode, sourceorder, saleordercode, partcode, partname, partspec, startNum, creatuser, createdate, endNum, prop, order);
            return Json(mes);
        }
        #endregion
@@ -263,9 +283,40 @@
        }
        #endregion
        #region[MES工单查找历史引用最新工序信息]
        /// <summary>
        /// MES工单查找历史引用最新工序信息
        /// </summary>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="partcode">产品编码</param>
        /// <returns></returns>
        [Route(template: "MesOrderNewStepContent")]
        [HttpPost]
        public JsonResult MesOrderNewStepContent(string wkshopcode, string partcode)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = WorkOrderBLL.MesOrderNewStepContent(wkshopcode, partcode, us);
            return Json(mes);
        }
        #endregion
        #region[MES工单派发提交]
        /// <summary>
        /// MES工单派发提交
        /// </summary>
        /// <param name="wocodelist">工单号数组</param>
        /// <returns></returns>
        [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
@@ -274,6 +325,7 @@
        /// MES工单关闭列表查询
        /// </summary>
        /// <param name="mesorderstus">工单状态(已关闭/未关闭)</param>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="mesordercode">工单编号</param>
        /// <param name="sourceorder">源单单号</param>
        /// <param name="saleordercode">销售单号</param>
@@ -290,13 +342,13 @@
        /// <returns></returns>
        [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)
        public JsonResult MesOrderClosedSearch(int page, int rows, string prop, string order, string mesorderstus = null,string wkshopcode=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);
            mes = WorkOrderBLL.MesOrderClosedSearch(mesorderstus, wkshopcode, mesordercode, sourceorder, saleordercode, ordertype, partcode, partname, partspec, startNum, creatuser, createdate, endNum, prop, order);
            return Json(mes);
        }
        #endregion
@@ -305,15 +357,365 @@
        /// <summary>
        /// MES工单关闭提交
        /// </summary>
        /// <param name="dt">工单号数组对象</param>
        /// <param name="wocodelist">工单号数组</param>
        /// <returns></returns>
        [Route(template: "MesOrderBitchClosedSeave")]
        [HttpPost]
        public JsonResult MesOrderBitchClosedSeave(DataTable dt)
        public JsonResult MesOrderBitchClosedSeave([FromBody] string[] wocodelist)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = WorkOrderBLL.MesOrderBitchClosedSeave(us, dt);
            mes = WorkOrderBLL.MesOrderBitchClosedSeave(us, wocodelist);
            return Json(mes);
        }
        #endregion
        #region[生产开报工扫码获取工单对应工序任务(自制)]
        /// <summary>
        /// 生产开报工扫码获取工单对应工序任务(自制)
        /// </summary>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="wocode">工单号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则(默认按照计划开工时间正序)</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepSearch")]
        [HttpGet]
        public JsonResult MesOrderStepSearch(string wkshopcode=null, 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(wkshopcode,wocode, partcode, partname, partspec, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[生产开报工扫码获取工单对应工序任务(外协)]
        /// <summary>
        /// 生产开报工扫码获取工单对应工序任务(外协)
        /// </summary>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="wocode">工单号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则(默认按照计划开工时间正序)</param>
        /// <returns></returns>
        [Route(template: "MesOrderWxStepSearch")]
        [HttpGet]
        public JsonResult MesOrderWxStepSearch(string wkshopcode, 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(wkshopcode,wocode, partcode, partname, partspec, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[生产开报工扫码获取工单对应工序任务(不良)]
        /// <summary>
        /// 生产开报工扫码获取工单对应工序任务(不良)
        /// </summary>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="wocode">工单号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则(默认按照计划开工时间正序)</param>
        /// <returns></returns>
        [Route(template: "MesOrderNgStepSearch")]
        [HttpGet]
        public JsonResult MesOrderNgStepSearch(string wkshopcode=null, 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(wkshopcode,wocode, partcode, partname, partspec, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[生产开报工扫码获取工单对应工序任务(不良明细)]
        /// <summary>
        /// 生产开报工扫码获取工单对应工序任务(不良明细)
        /// </summary>
        /// <param name="wocode">工单号</param>
        /// <param name="stepcode">工序编码</param>
        /// <returns></returns>
        [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 [生产开报工:报工/外协(发料/收料)时条件判断及数据返回接口]
        /// <summary>
        /// 生产开报工:报工/外协(发料/收料)时条件判断及数据返回接口
        /// </summary>
        /// <param name="OperType">操作类型:自制(ZZ)/外协(WX)</param>
        /// <param name="SelectType">操作类型:自制(传空)/外协(发料标识(OUT)/收料标识(IN))</param>
        /// <param name="wocode">工单编号</param>
        /// <param name="stepcode">工序编号</param>
        /// <returns></returns>
        [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
        #region[生产开报工,报工提交]
        /// <summary>
        /// 生产开报工,报工提交
        /// </summary>
        /// <param name="obj">报工提交数据</param>
        /// <returns></returns>
        [Route(template: "SavaMesOrderStepReport")]
        [HttpPost]
        public JsonResult SavaMesOrderStepReport([FromBody] JObject obj)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            string mesordercode = obj["mesordercode"].ToString(); //工单编号
            string partcode = obj["partcode"].ToString(); //产品编码
            string stepseq = obj["stepseq"].ToString(); //工序序号
            string stepcode = obj["stepcode"].ToString(); //工序编码
            string stepprice = obj["stepprice"].ToString(); //工序工价
            string eqpcode = obj["eqpcode"].ToString(); //设备编码
            string inbarcode = obj["inbarcode"].ToString(); //入库条码
            string reckway = obj["reckway"].ToString(); //计件方式(班组:group、个人:person)
            string usergroupcode = obj["usergroupcode"].ToString(); //班组编码
            string reportuser = obj["reportuser"].ToString();  //报工人员
            string taskqty = obj["taskqty"].ToString(); //任务数量
            string startqty = obj["startqty"].ToString(); //开工数量
            string reportqty = obj["reportqty"].ToString(); //报工工数量
            string defectlist = obj["defectlist"].ToString();//不良汇总
            string remarks = obj["remarks"].ToString(); //备注
            List<ReportDefectList> defectobjs = JsonConvert.DeserializeObject<List<ReportDefectList>>(defectlist);
            mes = WorkOrderBLL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, stepprice, eqpcode, inbarcode, reckway, usergroupcode, reportuser, taskqty, startqty, reportqty, defectobjs, remarks, us);
            return Json(mes);
        }
        #endregion
        #region[生产开报工,发料提交]
        /// <summary>
        /// 生产开报工,发料提交
        /// </summary>
        /// <param name="obj">发料提交数据</param>
        /// <returns></returns>
        [Route(template: "SavaMesOrderStepOut")]
        [HttpPost]
        public JsonResult SavaMesOrderStepOut([FromBody] JObject obj)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            string mesordercode = obj["mesordercode"].ToString(); //工单编号
            string partcode = obj["partcode"].ToString(); //产品编码
            string stepseq = obj["stepseq"].ToString(); //工序序号
            string stepcode = obj["stepcode"].ToString(); //工序编码
            string wxcode = obj["wxcode"].ToString(); //外协供应商编码
            string outuser = obj["outuser"].ToString();  //发料人员
            string taskqty = obj["taskqty"].ToString(); //任务数量
            string fqty = obj["fqty"].ToString(); //发料数量
            mes = WorkOrderBLL.SavaMesOrderStepOut(mesordercode, partcode, stepseq, stepcode, wxcode, outuser, taskqty, fqty, us);
            return Json(mes);
        }
        #endregion
        #region[生产开报工,收料提交]
        /// <summary>
        /// 生产开报工,收料提交
        /// </summary>
        /// <param name="obj">收料提交数据</param>
        /// <returns></returns>
        [Route(template: "SavaMesOrderStepIn")]
        [HttpPost]
        public JsonResult SavaMesOrderStepIn([FromBody] JObject obj)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            string mesordercode = obj["mesordercode"].ToString(); //工单编号
            string partcode = obj["partcode"].ToString(); //产品编码
            string stepseq = obj["stepseq"].ToString(); //工序序号
            string stepcode = obj["stepcode"].ToString(); //工序编码
            string wxcode = obj["wxcode"].ToString(); //外协供应商编码
            string inbarcode = obj["inbarcode"].ToString(); //入库条码
            string inuser = obj["inuser"].ToString();  //收料人员
            string taskqty = obj["taskqty"].ToString(); //任务数量
            string sqty = obj["sqty"].ToString(); //收料数量
            string defectlist = obj["defectlist"].ToString();//不良汇总
            string remarks = obj["remarks"].ToString(); //备注
            List<ReportDefectList> defectobjs = JsonConvert.DeserializeObject<List<ReportDefectList>>(defectlist);
            mes = WorkOrderBLL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inbarcode, inuser, taskqty, sqty, defectobjs, remarks, us);
            return Json(mes);
        }
        #endregion
        #region[不良处理,提交]
        /// <summary>
        /// 不良处理,提交
        /// </summary>
        /// <param name="json">提交数据</param>
        /// <returns></returns>
        [Route(template: "EditOrderNgStepSeave")]
        [HttpPost]
        public JsonResult EditOrderNgStepSeave(ReportDefectHandle json)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = WorkOrderBLL.EditOrderNgStepSeave(json, us);
            return Json(mes);
        }
        #endregion
        #region[生产执行,报工调整列表数据查询接口]
        /// <summary>
        /// 生产执行,报工调整列表数据查询接口
        /// </summary>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="wo_code">工单编号</param>
        /// <param name="partnumber">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">产品规格</param>
        /// <param name="reportuser">报工人员</param>
        /// <param name="reportdate">报工时间</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepVerifySearch")]
        [HttpGet]
        public JsonResult MesOrderStepVerifySearch(string wkshopcode=null, string wo_code = null, string partnumber = null, string partname = null, string partspec = null, string reportuser = null, string reportdate = null, int page = 0, int rows = 0, string prop = null, string order = null)
        {
            string reportdateopendate = "";  //报工开始时间
            string reportdateclosedate = "";    //报工结束时间
            if (reportdate != "" && reportdate != null)
            {
                reportdateopendate = reportdate.Split('~')[0].ToString();
                reportdateclosedate = reportdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = WorkOrderBLL.MesOrderStepVerifySearch(wkshopcode,wo_code, partnumber, partname, partspec, reportuser, reportdateopendate, reportdateclosedate, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[生产执行,报工调整获取选定报工记录的不良数据]
        /// <summary>
        /// 生产执行,报工调整获取选定报工记录的不良数据
        /// </summary>
        /// <param name="wo_code">工单号</param>
        /// <param name="step_code">工序号</param>
        /// <param name="step_type">工序类型(自制:Z 外协:W)</param>
        /// <param name="isbott">是否首道工序</param>
        /// <param name="isend">是否末道工序</param>
        /// <param name="id">报工主id</param>
        /// <param name="sbid">报工子id</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepModelSearch")]
        [HttpGet]
        public JsonResult MesOrderStepModelSearch(string wo_code,string step_code,string step_type,string isbott,string isend,string id, string sbid)
        {
            mes = WorkOrderBLL.MesOrderStepModelSearch(wo_code, step_code, step_type, isbott, isend,id,sbid);
            return Json(mes);
        }
        #endregion
        #region[生产执行,报工调整数据提交]
        /// <summary>
        /// 生产执行,报工调整数据提交
        /// </summary>
        /// <param name="json">提交数据</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepUpdateSeave")]
        [HttpPost]
        public JsonResult MesOrderStepUpdateSeave(List<UpdateProductReport> json)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = WorkOrderBLL.MesOrderStepUpdateSeave(us, json);
            return Json(mes);
        }
        #endregion
        #region[生产执行,报工审核列表数据查询接口]
        /// <summary>
        /// 生产执行,报工审核列表数据查询接口
        /// </summary>
        /// <param name="reviewstatus">审核状态</param>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="wo_code">工单编号</param>
        /// <param name="partnumber">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">产品规格</param>
        /// <param name="stepname">报工工序</param>
        /// <param name="reportuser">报工人员</param>
        /// <param name="reportdate">报工时间</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepReportVerifySearch")]
        [HttpGet]
        public JsonResult MesOrderStepReportVerifySearch(string reviewstatus=null, string wkshopcode=null, string wo_code = null, string partnumber = null, string partname = null, string partspec = null,string stepname=null, string reportuser = null, string reportdate = null, int page = 0, int rows = 0, string prop = null, string order = null)
        {
            string reportdateopendate = "";  //报工开始时间
            string reportdateclosedate = "";    //报工结束时间
            if (reportdate != "" && reportdate != null)
            {
                reportdateopendate = reportdate.Split('~')[0].ToString();
                reportdateclosedate = reportdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = WorkOrderBLL.MesOrderStepReportVerifySearch(reviewstatus,wkshopcode, wo_code, partnumber, partname, partspec,stepname,reportuser, reportdateopendate, reportdateclosedate, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[生产执行,报工审核数据提交]
        /// <summary>
        /// 生产执行,报工审核数据提交
        /// </summary>
        /// <param name="json">提交数据</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepReportVerifySeave")]
        [HttpPost]
        public JsonResult MesOrderStepReportVerifySeave([FromBody] DataModel json)
        {
            var token = HttpContext.Request.Headers["Token"].ToString();
            User us = JwtTools.Denocode(token.ToString());
            mes = WorkOrderBLL.MesOrderStepReportVerifySeave(us, json);
            return Json(mes);
        }
        #endregion