using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net; using System.Net.Http; using System.Web; using System.Web.Http; using System.Web.Script.Serialization; using VueWebApi.DLL.BLL; using VueWebApi.Models; using VueWebApi.Tools; namespace VueWebApi.Controllers { [RoutePrefix(prefix: "api/ProductionManagement")] [ControllerGroup("生产管理", "在线接口")] [ChannelActionFilter] public class ProductionManagementController : ApiController { //定义全局信息返回变量 ToMessage mes = new ToMessage(); RedisHelper redis = new RedisHelper(); #region[ERP订单查询] /// /// ERP订单查询 /// /// 订单状态码 /// 订单编号 /// 产品编码 /// 产品名称 /// 产品规格 /// 预计开工时间 /// 预计完工时间 /// 创建人员 /// 页码 /// 每页显示条数 /// 排序字段 /// 排序规则 /// [Route(template: "ErpOrderSearch")] [HttpGet] public HttpResponseMessage ErpOrderSearch(string erporderstus = null, string erpordercode = 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) { 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 = ProductionManagementBLL.ErpOrderSearch(erporderstus, erpordercode, partcode, partname, partspec, startNum, paydatestartdate, paydateenddate, paydatestartdate1, paydateenddate2, creatuser, endNum, prop, order); return TJson.toJson(mes); } #endregion #region[ERP订单下达] /// /// ERP订单下达 /// /// 提交数据 /// [Route(template: "MarkSaveErpOrder")] [HttpPost] public HttpResponseMessage MarkSaveErpOrder([FromBody] JObject obj) { string erporderid = obj["erporderid"].ToString(); //订单id string erpordercode = obj["erpordercode"].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(); //已下单数量 var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员 mes = ProductionManagementBLL.MarkSaveErpOrder(erporderid,erpordercode, partcode, wkshopcode, warehousecode, erpqty, markqty, ordernum, relse_qty, username); return TJson.toJson(mes); } #endregion #region[ERP订单关闭] /// /// ERP订单关闭 /// /// 订单id /// 订单号 /// [Route(template: "ClosedErpOrder")] [HttpPost] public HttpResponseMessage ClosedErpOrder(string erporderid, string erpordercode) { //var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员 var username = "Admin"; mes = ProductionManagementBLL.ClosedErpOrder(erporderid,erpordercode, username); return TJson.toJson(mes); } #endregion #region[MES工单查询] /// /// MES工单查询 /// /// 工单状态码 /// 工单编号 /// 源单单号 /// 单据类型 /// 产品编码 /// 产品名称 /// 产品规格 /// 创建人员 /// 创建时间 /// 页码 /// 每页显示条数 /// 排序字段 /// 排序规则 /// [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) { int startNum = rows * (page - 1) + 1; //起始记录rowNum int endNum = rows * page; //结束记录 rowNum mes = ProductionManagementBLL.MesOrderSearch(mesorderstus, mesordercode, sourceorder, ordertype, partcode, partname, partspec, startNum, creatuser, createdate, endNum, prop, order); return TJson.toJson(mes); } #endregion #region[MES报废补单工单查询] /// /// MES报废补单工单查询 /// /// 工单编号 /// 源单单号 /// 产品编码 /// 产品名称 /// 产品规格 /// 创建人员 /// 创建时间 /// 页码 /// 每页显示条数 /// 排序字段 /// 排序规则 /// [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) { int startNum = rows * (page - 1) + 1; //起始记录rowNum int endNum = rows * page; //结束记录 rowNum mes = ProductionManagementBLL.MesBadOrderSearch(mesordercode, sourceorder, partcode, partname, partspec, startNum, creatuser, createdate, endNum, prop, order); return TJson.toJson(mes); } #endregion #region[产品编码查找工艺路线下拉接口] /// /// 产品编码查找工艺路线下拉接口 /// /// 产品编码 /// [Route(template: "PartSelectRoute")] [HttpGet] public HttpResponseMessage PartSelectRoute(string partcode) { mes = ProductionManagementBLL.PartSelectRoute(partcode); return TJson.toJson(mes); } #endregion #region[产品+工艺路线查找车间下拉接口] /// /// 产品+工艺路线查找车间下拉接口 /// /// 产品编码 /// 工艺路线编码 /// [Route(template: "RouteSelectWkshop")] [HttpGet] public HttpResponseMessage RouteSelectWkshop(string partcode, string routecode) { mes = ProductionManagementBLL.RouteSelectWkshop(partcode, routecode); return TJson.toJson(mes); } #endregion #region[根据选择工艺路线查看工序接口] /// /// 根据选择工艺路线查看工序接口 /// /// 工艺路线编码 /// [Route(template: "SelectRouteStep")] [HttpGet] public HttpResponseMessage SelectRouteStep(string routecode) { mes = ProductionManagementBLL.SelectRouteStep(routecode); return TJson.toJson(mes); } #endregion #region[工单派发选择工艺路线或选择生产车间时判断绑定条件] /// /// 工单派发选择工艺路线或选择生产车间时判断绑定条件 /// /// 产品编码 /// 工艺路线编码 /// 车间编码 /// [Route(template: "SelectRouteOrWkshop")] [HttpGet] public HttpResponseMessage SelectRouteOrWkshop(string partcode, string routecode, string wkshopcode) { mes = ProductionManagementBLL.SelectRouteOrWkshop(partcode, routecode, wkshopcode); return TJson.toJson(mes); } #endregion #region[MES工单新增、编辑提交] /// /// MES工单新增、编辑提交 /// /// 提交数据 /// [Route(template: "AddUpdateMesOrder")] [HttpPost] public HttpResponseMessage AddUpdateMesOrder([FromBody] JObject obj) { string mesorderstus = obj["mesorderstus"].ToString(); //工单状态码 string sourceorder = obj["sourceorder"].ToString(); //源单编号 string ordertype = obj["ordertype"].ToString(); //工单类型 string mesordercode = obj["mesordercode"].ToString(); //工单编号 string partcode = obj["partcode"].ToString(); //产品编码 string mesqty = obj["mesqty"].ToString(); //工单数量 string routecode = obj["routecode"].ToString(); //工艺路线编码 string wkshopcode = obj["wkshopcode"].ToString();//生产车间编码 string planstartdate = obj["planstartdate"].ToString(); //计划开始时间 string planenddate = obj["planenddate"].ToString(); //计划完成时间 string orderlev = obj["orderlev"].ToString(); //工单等级 string opertype = obj["OperType"].ToString(); //操作类型 var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员 mes = ProductionManagementBLL.AddUpdateMesOrder(mesorderstus, sourceorder, ordertype, mesordercode, partcode, mesqty, routecode, wkshopcode, planstartdate, planenddate, orderlev, username, opertype); return TJson.toJson(mes); } #endregion #region[MES工单删除] /// /// MES工单删除 /// /// 源单工单 /// 工单编号 /// 订单编号 /// 工单数量 /// [Route(template: "DeleteMesOrder")] [HttpPost] public HttpResponseMessage DeleteMesOrder(string souceid, string wocode, string m_po, string orderqty) { mes = ProductionManagementBLL.DeleteMesOrder(souceid, wocode, m_po, orderqty); return TJson.toJson(mes); } #endregion #region[MES工单关闭] /// /// MES工单关闭 /// /// 工单编号 /// 订单编号 /// [Route(template: "ClosedMesOrder")] [HttpPost] public HttpResponseMessage ClosedMesOrder(string wocode, string m_po) { var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员 mes = ProductionManagementBLL.ClosedMesOrder(username,wocode, m_po); return TJson.toJson(mes); } #endregion #region[MES工单查看工序任务] /// /// MES工单查看工序任务 /// /// 工单编号 /// [Route(template: "SearchWorkStep")] [HttpGet] public HttpResponseMessage SearchWorkStep(string wo_code) { mes = ProductionManagementBLL.SearchWorkStep(wo_code); return TJson.toJson(mes); } #endregion #region[生产开报工扫码获取工单对应工序任务(自制)] /// /// 生产开报工扫码获取工单对应工序任务(自制) /// /// 扫描的二维码信息 /// 页码 /// 每页显示条数 /// 排序字段 /// 排序规则(默认按照计划开工时间正序) /// [Route(template: "MesOrderStepSearch")] [HttpGet] public HttpResponseMessage MesOrderStepSearch(string orderstepqrcode = null, int page = 0, int rows = 0, string prop = null, string order = null) { int startNum = rows * (page - 1) + 1; //起始记录rowNum int endNum = rows * page; //结束记录 rowNum mes = ProductionManagementBLL.MesOrderStepSearch(orderstepqrcode, startNum, endNum, prop, order); return TJson.toJson(mes); } #endregion #region[生产开报工扫码获取工单对应工序任务(外协)] /// /// 生产开报工扫码获取工单对应工序任务(外协) /// /// 扫描的二维码信息 /// 页码 /// 每页显示条数 /// 排序字段 /// 排序规则(默认按照计划开工时间正序) /// [Route(template: "MesOrderWxStepSearch")] [HttpGet] public HttpResponseMessage MesOrderWxStepSearch(string orderstepqrcode = null, int page = 0, int rows = 0, string prop = null, string order = null) { int startNum = rows * (page - 1) + 1; //起始记录rowNum int endNum = rows * page; //结束记录 rowNum mes = ProductionManagementBLL.MesOrderWxStepSearch(orderstepqrcode, startNum, endNum, prop, order); return TJson.toJson(mes); } #endregion #region[生产开报工扫码获取工单对应工序任务(不良)] /// /// 生产开报工扫码获取工单对应工序任务(不良) /// /// 扫描的二维码信息 /// 页码 /// 每页显示条数 /// 排序字段 /// 排序规则(默认按照计划开工时间正序) /// [Route(template: "MesOrderNgStepSearch")] [HttpGet] public HttpResponseMessage MesOrderNgStepSearch(string orderstepqrcode = null, int page = 0, int rows = 0, string prop = null, string order = null) { int startNum = rows * (page - 1) + 1; //起始记录rowNum int endNum = rows * page; //结束记录 rowNum mes = ProductionManagementBLL.MesOrderNgStepSearch(orderstepqrcode, startNum, endNum, prop, order); return TJson.toJson(mes); } #endregion #region[生产开报工扫码获取工单对应工序任务(不良明细)] /// /// 生产开报工扫码获取工单对应工序任务(不良明细) /// /// 扫描的二维码信息 /// [Route(template: "MesOrderNgSubStepSearch")] [HttpGet] public HttpResponseMessage MesOrderNgSubStepSearch(string orderstepqrcode) { mes = ProductionManagementBLL.MesOrderNgSubStepSearch(orderstepqrcode); return TJson.toJson(mes); } #endregion #region [生产开报工:开工(开始/报工)/外协(发料/收料)时条件判断及数据返回接口] /// /// 生产开报工:开工(开始/报工)/外协(发料/收料)时条件判断及数据返回接口 /// /// 操作类型:自制(ZZ)/外协(WX) /// 操作类型:外协发料标识(OUT)/外协收料标识(IN) /// 扫描二维码信息 /// [Route(template: "MesOrderStepStart")] [HttpGet] public HttpResponseMessage MesOrderStepStart(string OperType, string orderstepqrcode, string SelectType = null) { mes = ProductionManagementBLL.MesOrderStepStart(OperType, SelectType, orderstepqrcode); return TJson.toJson(mes); } #endregion #region[生产开报工:开工时获取设备下拉列表] /// /// 生产开报工:开工时获取设备下拉列表 /// /// 扫描二维码信息 /// [Route(template: "MesOrderStepStartSelectEqp")] [HttpGet] public HttpResponseMessage MesOrderStepStartSelectEqp(string orderstepqrcode) { mes = ProductionManagementBLL.MesOrderStepStartSelectEqp(orderstepqrcode); return TJson.toJson(mes); } #endregion #region[生产开报工:报工时获取生产班组下拉框] /// /// 生产开报工:报工时获取生产班组下拉框 /// /// [Route(template: "MesOrderStepReportSelectUserGroup")] [HttpGet] public HttpResponseMessage MesOrderStepReportSelectUserGroup() { mes = ProductionManagementBLL.MesOrderStepReportSelectUserGroup(); return TJson.toJson(mes); } #endregion #region[生产开报工:根据生产班组查找人员列表] /// /// 生产开报工:根据生产班组查找人员列表 /// /// 班组编码 /// [Route(template: "MesOrderGroupSelectUser")] [HttpGet] public HttpResponseMessage MesOrderGroupSelectUser(string usergroupcode) { mes = ProductionManagementBLL.MesOrderGroupSelectUser(usergroupcode); return TJson.toJson(mes); } #endregion #region[生产开报工:人员下拉列表] /// /// 生产开报工:人员下拉列表 /// /// 人员编码 /// [Route(template: "MesOrderSelectUser")] [HttpGet] public HttpResponseMessage MesOrderSelectUser(string usercode = null) { mes = ProductionManagementBLL.MesOrderSelectUser(usercode); return TJson.toJson(mes); } #endregion #region[生产开报工:发料/收料时获取外协下拉列表] /// /// 生产开报工:发料/收料时获取外协下拉列表 /// /// 扫描二维码信息 /// [Route(template: "MesOrderStepSelectWX")] [HttpGet] public HttpResponseMessage MesOrderStepSelectWX(string orderstepqrcode) { mes = ProductionManagementBLL.MesOrderStepSelectWX(orderstepqrcode); return TJson.toJson(mes); } #endregion #region[生产报工:报工/外协收料 获取不良原因下拉列表] /// /// 生产报工:报工/外协收料 获取不良原因下拉列表 /// /// 扫描二维码信息 /// [Route(template: "MesOrderStepSelectCause")] [HttpGet] public HttpResponseMessage MesOrderStepSelectCause(string orderstepqrcode) { mes = ProductionManagementBLL.MesOrderStepSelectCause(orderstepqrcode); return TJson.toJson(mes); } #endregion #region[生产开报工,开工提交] /// /// 生产开报工,开工提交 /// /// 开工提交数据 /// [Route(template: "SavaMesOrderStepStart")] [HttpPost] public HttpResponseMessage SavaMesOrderStepStart([FromBody] JObject obj) { string mesordercode = obj["mesordercode"].ToString(); //工单编号 string partcode = obj["partcode"].ToString(); //产品编码 string stepseq = obj["stepseq"].ToString(); //工序序号 string stepcode = obj["stepcode"].ToString(); //工序编码 string eqpcode = obj["eqpcode"].ToString(); //设备编码 string taskqty = obj["taskqty"].ToString(); //任务数量 string startqty = obj["startqty"].ToString(); //开工数量 var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //开工人员 mes = ProductionManagementBLL.SavaMesOrderStepStart(mesordercode, partcode, stepseq, stepcode, eqpcode, taskqty, startqty, username); return TJson.toJson(mes); } #endregion #region[生产开报工,报工提交] /// /// 生产开报工,报工提交 /// /// 报工提交数据 /// [Route(template: "SavaMesOrderStepReport")] [HttpPost] public HttpResponseMessage SavaMesOrderStepReport([FromBody] JObject obj) { string mesordercode = obj["mesordercode"].ToString(); //工单编号 string partcode = obj["partcode"].ToString(); //产品编码 string stepseq = obj["stepseq"].ToString(); //工序序号 string stepcode = obj["stepcode"].ToString(); //工序编码 string eqpcode = obj["eqpcode"].ToString(); //设备编码 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 ngqty = obj["ngqty"].ToString(); //不良数量 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, usergroupcode, reportuser, taskqty, startqty, reportqty, ngqty, badcode, remarks, username); return TJson.toJson(mes); } #endregion #region[生产开报工,发料提交] /// /// 生产开报工,发料提交 /// /// 发料提交数据 /// [Route(template: "SavaMesOrderStepOut")] [HttpPost] public HttpResponseMessage SavaMesOrderStepOut([FromBody] JObject obj) { 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(); //发料数量 var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员 mes = ProductionManagementBLL.SavaMesOrderStepOut(mesordercode, partcode, stepseq, stepcode, wxcode, outuser, taskqty, fqty, username); return TJson.toJson(mes); } #endregion #region[生产开报工,收料提交] /// /// 生产开报工,收料提交 /// /// 收料提交数据 /// [Route(template: "SavaMesOrderStepIn")] [HttpPost] public HttpResponseMessage SavaMesOrderStepIn([FromBody] JObject obj) { 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 inuser = obj["inuser"].ToString(); //收料人员 string taskqty = obj["taskqty"].ToString(); //任务数量 string sqty = obj["sqty"].ToString(); //收料数量 string ngqty = obj["ngqty"].ToString(); //不良数量 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); return TJson.toJson(mes); } #endregion #region[不良处理,提交] /// /// 不良处理,提交 /// /// 处理人员编码 /// 提交数据 /// [Route(template: "EditOrderNgStepSeave")] [HttpPost] public HttpResponseMessage EditOrderNgStepSeave(string username, ReportDefectHandle json) { mes = ProductionManagementBLL.EditOrderNgStepSeave(json, username); return TJson.toJson(mes); } #endregion #region[生产开报工,工序检验扫码获取任务信息] /// /// 生产开报工,工序检验扫码获取任务信息 /// /// 扫描二维码信息 /// [Route(template: "MesOrderStepCheckSearch")] [HttpGet] public HttpResponseMessage MesOrderStepCheckSearch(string orderstepqrcode) { mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode); return TJson.toJson(mes); } #endregion #region[生产开报工,工序检验获取检验标准下拉框数据] /// /// 生产开报工,工序检验获取检验标准下拉框数据 /// /// [Route(template: "MesOrderStepCheckSelect")] [HttpGet] public HttpResponseMessage MesOrderStepCheckSelect() { mes = ProductionManagementBLL.MesOrderStepCheckSelect(); return TJson.toJson(mes); } #endregion #region[生产开报工,工序检验根据检验标准获取检验项目列表] /// /// 生产开报工,工序检验根据检验标准获取检验项目列表 /// /// 检验标准编码 /// [Route(template: "MesOrderStepCheckItemList")] [HttpGet] public HttpResponseMessage MesOrderStepCheckItemList(string checkstandcode) { mes = ProductionManagementBLL.MesOrderStepCheckItemList(checkstandcode); return TJson.toJson(mes); } #endregion #region[生产开报工,工序检验提交保存] /// /// 生产开报工,工序检验提交保存 /// /// 提交信息 /// [Route(template: "SaveMesOrderStepCheckItem")] [HttpPost] public HttpResponseMessage SaveMesOrderStepCheckItem([FromBody] JObject obj) { string mesordercode = obj["mesordercode"].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 json = Newtonsoft.Json.JsonConvert.DeserializeObject>(data); var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员 mes = ProductionManagementBLL.SaveMesOrderStepCheckItem(mesordercode, partcode, stepcode, checkstanedcode, checkusercode, checktypecode, checkresult, checkdescr, checkqty, username,json); return TJson.toJson(mes); } #endregion #region[MES工单批量关闭查询] /// /// MES工单查询 /// /// 工单状态码 /// 工单编号 /// 源单单号 /// 单据类型 /// 产品编码 /// 产品名称 /// 产品规格 /// 创建人员 /// 创建时间 /// 页码 /// 每页显示条数 /// 排序字段 /// 排序规则 /// [Route(template: "MesOrderBitchClosedSearch")] [HttpGet] public HttpResponseMessage MesOrderBitchClosedSearch(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 page = 0, int rows = 0, string prop = null, string order = null) { int startNum = rows * (page - 1) + 1; //起始记录rowNum int endNum = rows * page; //结束记录 rowNum mes = ProductionManagementBLL.MesOrderBitchClosedSearch(mesorderstus, mesordercode, sourceorder, ordertype, partcode, partname, partspec, startNum, creatuser, createdate, endNum, prop, order); return TJson.toJson(mes); } #endregion #region[MES工单批量关闭提交] /// /// MES工单批量关闭提交 /// /// 工单号数组对象 /// [Route(template: "MesOrderBitchClosedSeave")] [HttpPost] public HttpResponseMessage MesOrderBitchClosedSeave(DataTable dt) { var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员 mes = ProductionManagementBLL.MesOrderBitchClosedSeave(username, dt); return TJson.toJson(mes); } #endregion #region[MES工单批量反关闭] /// /// MES工单批量反关闭 /// /// 工单号数组对象 /// [Route(template: "MesOrderBitchAntiClosedSeave")] [HttpPost] public HttpResponseMessage MesOrderBitchAntiClosedSeave(DataTable dt) { var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员 mes = ProductionManagementBLL.MesOrderBitchAntiClosedSeave(username, dt); return TJson.toJson(mes); } #endregion #region[产能规划查询] /// /// 产能规划查询 /// /// 页码 /// 页数 /// 排序字段 /// 排序规则 /// 车间编码 /// 生产单元 /// 有效状态 /// [Route(template: "CapacityPlanningSearch")] [HttpGet] 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 mes = ProductionManagementBLL.CapacityPlanningSearch(workshop, devicetype, stustype, startNum, endNum, prop, order); return TJson.toJson(mes); } #endregion #region[产能规划默认方案保存提交] /// /// 产能规划默认方案保存提交 /// /// 产能规划(生产资源)id /// 车间编码 /// 生产单元编码 /// 默认方案编码 /// 资源类型 /// [Route(template: "CapacityPlanSubmit")] [HttpPost] public HttpResponseMessage CapacityPlanSubmit(string wkshopcode, string capunitcode,string captplanid=null,string capsetupcode=null,string captplantype=null) { string type = ""; //提交类型 if (captplanid == "" || captplanid == null) { type = "Add"; } else { type = "Update"; } var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员 mes = ProductionManagementBLL.CapacityPlanSubmit(type,captplanid,wkshopcode,capunitcode,capsetupcode, captplantype,username); return TJson.toJson(mes); } #endregion #region[产能规划点击日历组件查找已关联的日期方案] /// /// 产能规划点击日历组件查找已关联的日期方案 /// /// 产能规划(生产资源)id /// [Route(template: "CapacityPlanningCalendar")] [HttpGet] public HttpResponseMessage CapacityPlanningCalendar(string captplanid) { mes = ProductionManagementBLL.CapacityPlanningCalendar(captplanid); return TJson.toJson(mes); } #endregion #region[产能规划日历双击时带出对应的方案] /// /// 产能规划日历双击时带出对应的方案 /// /// 产能规划(生产资源)id /// 双击选中的日期 /// [Route(template: "CapacityPlanningOnclickSelect")] [HttpGet] public HttpResponseMessage CapacityPlanningOnclickSelect(string captplanid,string datetime) { mes = ProductionManagementBLL.CapacityPlanningOnclickSelect(captplanid, datetime); return TJson.toJson(mes); } #endregion #region[产能规划工作日历选择提交] /// /// 产能规划工作日历选择提交 /// /// [Route(template: "CapacityPlanningGivePlanSubmit")] [HttpPost] public HttpResponseMessage CapacityPlanningGivePlanSubmit() { string wkshopcode = HttpContext.Current.Request["wkshopcode"].ToString();//车间编码 string capunitcode = HttpContext.Current.Request["capunitcode"].ToString();//生产单元编码 string captplanid = HttpContext.Current.Request["captplanid"].ToString(); //产能规划(生产资源)列表id string capsetupcode = HttpContext.Current.Request["capsetupcode"].ToString(); //默认方案编码 string captplantype = HttpContext.Current.Request["captplantype"].ToString(); //资源类型 string worklist = HttpContext.Current.Request["worklist"].ToString(); //工作日历数据集 JavaScriptSerializer Serializer = new JavaScriptSerializer(); List objs = Serializer.Deserialize>(worklist); string type = ""; //提交类型 if (captplanid == "" || captplanid == null) { type = "Add"; } else { type = "Update"; } var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员 mes = ProductionManagementBLL.CapacityPlanningGivePlanSubmit(captplanid, wkshopcode, capunitcode, capsetupcode, captplantype, objs,type, username); return TJson.toJson(mes); } #endregion #region[自动排程工单查询] /// /// 自动排程工单查询 /// /// 页码 /// 每页条数 /// 排序字段 /// 排序规则 /// 车间编码 /// 生产工单号 /// 物料编码 /// 物料名称 /// [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) { int startNum = rows * (page - 1) + 1; //起始记录rowNum int endNum = rows * page; //结束记录 rowNum mes = ProductionManagementBLL.AdvancedSchedulingSearch(workshop, wocode, partcode, partname, startNum, endNum, prop, order); return TJson.toJson(mes); } #endregion #region[高级排程点击工单任务带出瓶颈工序设备、已排程任务数据] /// /// 高级排程点击工单任务带出瓶颈工序设备、已排程任务数据 /// /// 工单编号 /// 车间编码 /// 物料编码 /// 瓶颈工序编码(首道工序) /// 开始日期 /// 结束日期 /// [Route(template: "OnclickAdvancedSchedulingDevice")] [HttpGet] public HttpResponseMessage OnclickAdvancedSchedulingDevice(string wocode,string wkshpcode,string partcode,string botproccode,string startdate,string enddate) { List list = new List(); List list1 = new List(); list = ProductionManagementBLL.OnclickAdvancedSchedulingDevice(wocode, wkshpcode, partcode, startdate, enddate, ref mes); //排产设备信息 DataTable dt = ProductionManagementBLL.AlreadyScheduling(wocode, wkshpcode, partcode, botproccode, startdate, enddate); //设备已排程信息 Dictionary dList = new Dictionary(); dList.Add("rus", mes); dList.Add("rows", list); dList.Add("Cont", dt); return TJson.toJson(dList); } #endregion #region[排程数据提交] /// /// 排程数据提交 /// /// [Route(template: "SubmitAlreadyScheduling")] [HttpPost] public HttpResponseMessage SubmitAlreadyScheduling() { var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员 string wocode = HttpContext.Current.Request["wocode"].ToString();//工单编号 string botprocecode = HttpContext.Current.Request["botprocecode"].ToString(); //瓶颈工序编码 string json = HttpContext.Current.Request["json"].ToString(); //排程提交数据 JavaScriptSerializer Serializer = new JavaScriptSerializer(); List objs = Serializer.Deserialize>(json); mes = ProductionManagementBLL.SubmitAlreadyScheduling(username, wocode, botprocecode, objs); return TJson.toJson(mes); } #endregion } }