yl
2023-06-13 d6502baa8e5610c04127fbee92ff6111e40956f8
VueWebApi/Controllers/ProductionManagementController.cs
@@ -89,7 +89,7 @@
            string relse_qty = obj["relse_qty"].ToString(); //已下单数量
            string saleOrderDeliveryDate = obj["saleOrderDeliveryDate"].ToString(); //交付时间
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.MarkSaveErpOrder(erporderid,erpordercode, partcode, wkshopcode, warehousecode, erpqty, markqty, ordernum, relse_qty, saleOrderDeliveryDate, username);
            mes = ProductionManagementBLL.MarkSaveErpOrder(erporderid, erpordercode, partcode, wkshopcode, warehousecode, erpqty, markqty, ordernum, relse_qty, saleOrderDeliveryDate, username);
            return TJson.toJson(mes);
        }
        #endregion
@@ -107,7 +107,7 @@
        {
            //var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            var username = "Admin";
            mes = ProductionManagementBLL.ClosedErpOrder(erporderid,erpordercode, username);
            mes = ProductionManagementBLL.ClosedErpOrder(erporderid, erpordercode, username);
            return TJson.toJson(mes);
        }
        #endregion
@@ -134,7 +134,7 @@
        /// <returns></returns>
        [Route(template: "MesOrderSearch")]
        [HttpGet]
        public HttpResponseMessage MesOrderSearch(int page, int rows, string prop, string order,string mesorderstus = null, string mesordercode = null,string sourceorder=null,string ordertype=null, string partcode = null, string partname = null, string partspec = null, string creatuser = null, string createdate = null)
        public HttpResponseMessage MesOrderSearch(int page, int rows, string prop, string order, string mesorderstus = null, string mesordercode = null, string sourceorder = null, string ordertype = 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
@@ -161,7 +161,7 @@
        /// <returns></returns>
        [Route(template: "MesBadOrderSearch")]
        [HttpGet]
        public HttpResponseMessage MesBadOrderSearch(int page, int rows, string prop, string order,string mesordercode = null, string sourceorder = null, string partcode = null, string partname = null, string partspec = null, string creatuser = null, string createdate = null)
        public HttpResponseMessage MesBadOrderSearch(int page, int rows, string prop, string order, string mesordercode = null, string sourceorder = 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
@@ -241,7 +241,7 @@
        /// <returns></returns>
        [Route(template: "SelectRouteOrWkshop")]
        [HttpGet]
        public HttpResponseMessage SelectRouteOrWkshop(string partcode,string routecode,string wkshopcode)
        public HttpResponseMessage SelectRouteOrWkshop(string partcode, string routecode, string wkshopcode)
        {
            mes = ProductionManagementBLL.SelectRouteOrWkshop(partcode, routecode, wkshopcode);
            return TJson.toJson(mes);
@@ -322,7 +322,7 @@
        public HttpResponseMessage ClosedMesOrder(string wocode, string m_po)
        {
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.ClosedMesOrder(username,wocode, m_po);
            mes = ProductionManagementBLL.ClosedMesOrder(username, wocode, m_po);
            return TJson.toJson(mes);
        }
        #endregion
@@ -595,6 +595,7 @@
            string stepseq = obj["stepseq"].ToString(); //工序序号
            string stepcode = obj["stepcode"].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();  //报工人员
@@ -605,7 +606,7 @@
            string badcode = obj["badcode"].ToString(); //不良原因编码
            string remarks = obj["remarks"].ToString(); //备注
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, eqpcode, reckway,usergroupcode, reportuser, taskqty, startqty, reportqty, ngqty, badcode, remarks, username);
            mes = ProductionManagementBLL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, eqpcode, inbarcode, reckway, usergroupcode, reportuser, taskqty, startqty, reportqty, ngqty, badcode, remarks, username);
            return TJson.toJson(mes);
        }
        #endregion
@@ -649,6 +650,7 @@
            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(); //收料数量
@@ -656,7 +658,7 @@
            string badcode = obj["badcode"].ToString(); //不良原因编码
            string remarks = obj["remarks"].ToString(); //备注
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inuser, taskqty, sqty, ngqty, badcode, remarks, username);
            mes = ProductionManagementBLL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inbarcode, inuser, taskqty, sqty, ngqty, badcode, remarks, username);
            return TJson.toJson(mes);
        }
        #endregion
@@ -677,40 +679,28 @@
        }
        #endregion
        #region[生产开报工,工序检验扫码获取任务信息]
        #region[工序检验扫码获取任务信息]
        /// <summary>
        /// 生产开报工,工序检验扫码获取任务信息
        /// 工序检验扫码获取任务信息
        /// </summary>
        /// <param name="orderstepqrcode">扫描二维码信息</param>
        /// <param name="orderstepqrcode">扫描工序二维码信息</param>
        /// <param name="checktype">检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepCheckSearch")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepCheckSearch(string orderstepqrcode)
        public HttpResponseMessage MesOrderStepCheckSearch(string orderstepqrcode, string checktype)
        {
            mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode);
            mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode, checktype);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工,工序检验获取检验标准下拉框数据]
        #region[工序检验根据选择的检验方案查找检验项目]
        /// <summary>
        /// 生产开报工,工序检验获取检验标准下拉框数据
        /// 入厂检验,工序检验根据选择的检验方案查找检验项目
        /// </summary>
        /// <returns></returns>
        [Route(template: "MesOrderStepCheckSelect")]
        [HttpGet]
        public HttpResponseMessage MesOrderStepCheckSelect()
        {
            mes = ProductionManagementBLL.MesOrderStepCheckSelect();
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产开报工,工序检验根据检验标准获取检验项目列表]
        /// <summary>
        /// 生产开报工,工序检验根据检验标准获取检验项目列表
        /// </summary>
        /// <param name="checkstandcode">检验标准编码</param>
        /// <param name="checkstandcode">检验方案编码</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepCheckItemList")]
        [HttpGet]
@@ -721,29 +711,29 @@
        }
        #endregion
        #region[生产开报工,工序检验提交保存]
        #region[工序检验,提交]
        /// <summary>
        /// 生产开报工,工序检验提交保存
        /// 工序检验,提交
        /// </summary>
        /// <param name="obj">提交信息</param>
        /// <returns></returns>
        [Route(template: "SaveMesOrderStepCheckItem")]
        [HttpPost]
        public HttpResponseMessage SaveMesOrderStepCheckItem([FromBody] JObject obj)
        {
            string mesordercode = obj["mesordercode"].ToString(); //工单编号
            string wocode = obj["wocode"].ToString(); //工单编号
            string partcode = obj["partcode"].ToString(); //产品编码
            string stepcode = obj["stepcode"].ToString(); //工序编码
            string checkstanedcode = obj["checkstanedcode"].ToString(); //检验标准编码
            string checkusercode = obj["checkusercode"].ToString(); //检验人员编码
            string checktypecode = obj["checktypecode"].ToString(); //检验类型编码
            string checkresult = obj["checkresult"].ToString(); //检验结果
            string checkdescr = obj["checkdescr"].ToString(); //检验描述
            string checkqty = obj["checkqty"].ToString(); //检验数量
            string data = obj["data"].ToString();
            List<StepCheck> json = Newtonsoft.Json.JsonConvert.DeserializeObject<List<StepCheck>>(data);
            string checkstandcode = obj["checkstandcode"].ToString(); //质检方案编码
            string check_type = obj["check_type"].ToString(); //检验方式FirstCheck(首检) PatroCheck(巡检)  EndCheck(完工检)
            string sampmethod = obj["sampmethod"].ToString(); //抽检方式:固定抽检(FIXED) 比例抽检(SCARE)
            string qualitystatus = obj["qualitystatus"].ToString(); //质量状态(合格、不合格)
            string labqty = obj["good_qty"].ToString(); //工序任务合格数量
            string sampleqty = obj["sampleqty"].ToString(); //样本数量
            string goodqty = obj["goodqty"].ToString(); //合格数量
            string ngqty = obj["ngqty"].ToString();//不合格数量
            string checkitemcont = obj["checkitemcont"].ToString(); //检验项目数据
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(mesordercode, partcode, stepcode, checkstanedcode, checkusercode, checktypecode, checkresult, checkdescr, checkqty, username,json);
            mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(wocode, partcode, stepcode, checkstandcode, check_type, sampmethod, qualitystatus, labqty, sampleqty, goodqty, ngqty, checkitemcont, username);
            return TJson.toJson(mes);
        }
        #endregion
@@ -788,7 +778,7 @@
        [HttpPost]
        public HttpResponseMessage MesOrderBitchClosedSeave(DataTable dt)
        {
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.MesOrderBitchClosedSeave(username, dt);
            return TJson.toJson(mes);
@@ -877,7 +867,7 @@
        /// <returns></returns>
        [Route(template: "CapacityPlanningSearch")]
        [HttpGet]
        public HttpResponseMessage CapacityPlanningSearch(int page, int rows, string prop, string order,string workshop = null, string devicetype = null, string stustype = null)
        public HttpResponseMessage CapacityPlanningSearch(int page, int rows, string prop, string order, string workshop = null, string devicetype = null, string stustype = null)
        {
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
@@ -898,7 +888,7 @@
        /// <returns></returns>
        [Route(template: "CapacityPlanSubmit")]
        [HttpPost]
        public HttpResponseMessage CapacityPlanSubmit(string wkshopcode, string capunitcode,string captplanid=null,string capsetupcode=null,string captplantype=null)
        public HttpResponseMessage CapacityPlanSubmit(string wkshopcode, string capunitcode, string captplanid = null, string capsetupcode = null, string captplantype = null)
        {
            string type = ""; //提交类型
            if (captplanid == "" || captplanid == null)
@@ -910,7 +900,7 @@
                type = "Update";
            }
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.CapacityPlanSubmit(type,captplanid,wkshopcode,capunitcode,capsetupcode, captplantype,username);
            mes = ProductionManagementBLL.CapacityPlanSubmit(type, captplanid, wkshopcode, capunitcode, capsetupcode, captplantype, username);
            return TJson.toJson(mes);
        }
        #endregion
@@ -939,7 +929,7 @@
        /// <returns></returns>
        [Route(template: "CapacityPlanningOnclickSelect")]
        [HttpGet]
        public HttpResponseMessage CapacityPlanningOnclickSelect(string captplanid,string datetime)
        public HttpResponseMessage CapacityPlanningOnclickSelect(string captplanid, string datetime)
        {
            mes = ProductionManagementBLL.CapacityPlanningOnclickSelect(captplanid, datetime);
            return TJson.toJson(mes);
@@ -973,7 +963,7 @@
                type = "Update";
            }
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.CapacityPlanningGivePlanSubmit(captplanid, wkshopcode, capunitcode, capsetupcode, captplantype, objs,type, username);
            mes = ProductionManagementBLL.CapacityPlanningGivePlanSubmit(captplanid, wkshopcode, capunitcode, capsetupcode, captplantype, objs, type, username);
            return TJson.toJson(mes);
        }
        #endregion
@@ -996,7 +986,7 @@
        /// <returns></returns>
        [Route(template: "AdvancedSchedulingSearch")]
        [HttpGet]
        public HttpResponseMessage AdvancedSchedulingSearch(int page, int rows, string prop, string order, string workshop = null, string wocode = null, string partcode = null,string partname=null)
        public HttpResponseMessage AdvancedSchedulingSearch(int page, int rows, string prop, string order, string workshop = null, string wocode = null, string partcode = null, string partname = null)
        {
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
@@ -1018,12 +1008,35 @@
        /// <returns></returns>
        [Route(template: "OnclickAdvancedSchedulingDevice")]
        [HttpGet]
        public HttpResponseMessage OnclickAdvancedSchedulingDevice(string wocode,string wkshpcode,string partcode,string botproccode,string startdate,string enddate)
        public HttpResponseMessage OnclickAdvancedSchedulingDevice(string wocode, string wkshpcode, string partcode, string botproccode, string startdate, string enddate)
        {
            List<AdvancedSchedulingDevice> list = new List<AdvancedSchedulingDevice>();
            List<AdvancedSchedAlready> list1 = new List<AdvancedSchedAlready>();
            list = ProductionManagementBLL.OnclickAdvancedSchedulingDevice(wocode, wkshpcode, partcode, startdate, enddate, ref mes); //排产设备信息
            DataTable dt = ProductionManagementBLL.AlreadyScheduling(wocode, wkshpcode, partcode, botproccode, startdate, enddate);   //设备已排程信息
            Dictionary<object, object> dList = new Dictionary<object, object>();
            dList.Add("rus", mes);
            dList.Add("rows", list);
            dList.Add("Cont", dt);
            return TJson.toJson(dList);
        }
        #endregion
        #region[NEW高级排程点击工单任务带出瓶颈工序设备、已排程任务数据]
        /// <summary>
        /// NEW高级排程点击工单任务带出瓶颈工序设备、已排程任务数据
        /// </summary>
        /// <param name="json">查询数据</param>
        /// <returns></returns>
        [Route(template: "NewOnclickAdvancedSchedulingDevice")]
        [HttpPost]
        public HttpResponseMessage NewOnclickAdvancedSchedulingDevice(List<ApsOrderSerch> json)
        {
            List<AdvancedSchedulingDevice> list = new List<AdvancedSchedulingDevice>();
            List<AdvancedSchedAlready> list1 = new List<AdvancedSchedAlready>();
            list = ProductionManagementBLL.NewOnclickAdvancedSchedulingDevice(json, ref mes); //排产设备信息
            List<DataTable> dt = ProductionManagementBLL.NewAlreadyScheduling(json);   //设备已排程信息
            Dictionary<object, object> dList = new Dictionary<object, object>();
            dList.Add("rus", mes);
@@ -1052,5 +1065,97 @@
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产入库条码补打]
        /// <summary>
        /// 生产入库条码补打
        /// </summary>
        /// <param name="ordercode">工单编号</param>
        /// <returns></returns>
        [Route(template: "ProductInHouseLabCode")]
        [HttpGet]
        public HttpResponseMessage ProductInHouseLabCode(string ordercode)
        {
            mes = ProductionManagementBLL.ProductInHouseLabCode(ordercode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产入库通过车间查找生产订单]
        /// <summary>
        /// 生产入库通过车间查找生产订单
        /// </summary>
        /// <param name="ordertype">单据类型</param>
        /// <param name="wkshopcode">车间编码</param>
        /// <returns></returns>
        [Route(template: "ProductInHouseWkshopOrder")]
        [HttpGet]
        public HttpResponseMessage ProductInHouseWkshopOrder(string ordertype,string wkshopcode)
        {
            mes = ProductionManagementBLL.ProductInHouseWkshopOrder(ordertype, wkshopcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产入库信息查询]
        /// <summary>
        /// 生产入库信息查询
        /// </summary>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="erpordercode">订单编号</param>
        /// <param name="mesordercode">工单编号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="orderdate">工单日期</param>
        /// <returns></returns>
        [Route(template: "ProductInHouseOrderSearch")]
        [HttpGet]
        public HttpResponseMessage ProductInHouseOrderSearch(string wkshopcode, string erpordercode = null, string mesordercode = null, string partcode = null, string partname = null, string partspec = null, string orderdate = null)
        {
            string startorderdate = "";  //工单开始时间
            string endorderdate = "";    //工单结束时间
            if (orderdate != "" && orderdate != null)
            {
                startorderdate = orderdate.Split('~')[0].ToString();
                endorderdate = orderdate.Split('~')[1].ToString();
            }
            mes = ProductionManagementBLL.ProductInHouseOrderSearch(wkshopcode,erpordercode, mesordercode, partcode, partname, partspec, startorderdate, endorderdate);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产入库获取单据号]
        /// <summary>
        /// 生产入库获取单据号
        /// </summary>
        /// <param name="rightcode">功能编码</param>
        /// <returns></returns>
        [Route(template: "ProductInHouseOrderCodeSearch")]
        [HttpPost]
        public HttpResponseMessage ProductInHouseOrderCodeSearch(string rightcode)
        {
            mes = ProductionManagementBLL.ProductInHouseOrderCodeSearch(rightcode);
            return TJson.toJson(mes);
        }
        #endregion
        #region[生产入库提交]
        /// <summary>
        /// 生产入库提交
        /// </summary>
        /// <param name="obj">明细数据</param>
        /// <returns></returns>
        [Route(template: "ProductInHouseOrderSeave")]
        [HttpPost]
        public HttpResponseMessage ProductInHouseOrderSeave([FromBody] JObject obj)
        {
            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
            mes = ProductionManagementBLL.ProductInHouseOrderSeave(username, obj);
            return TJson.toJson(mes);
        }
        #endregion
    }
}