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,8 @@
using System.Threading.Tasks;
using VueWebCoreApi.DLL.BLL;
using VueWebCoreApi.Models;
using VueWebCoreApi.Models.ReportVerify;
using VueWebCoreApi.Models.UpdateReport;
using VueWebCoreApi.Models.WorkData;
using VueWebCoreApi.Tools;
@@ -265,7 +268,20 @@
        #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
@@ -305,15 +321,359 @@
        /// <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="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 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[生产开报工扫码获取工单对应工序任务(外协)]
        /// <summary>
        /// 生产开报工扫码获取工单对应工序任务(外协)
        /// </summary>
        /// <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 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[生产开报工扫码获取工单对应工序任务(不良)]
        /// <summary>
        /// 生产开报工扫码获取工单对应工序任务(不良)
        /// </summary>
        /// <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 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[生产开报工扫码获取工单对应工序任务(不良明细)]
        /// <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="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 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(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="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 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(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