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订单查询]
|
/// <summary>
|
/// ERP订单查询
|
/// </summary>
|
/// <param name="erporderstus">订单状态码</param>
|
/// <param name="erpordercode">订单编号</param>
|
/// <param name="partcode">产品编码</param>
|
/// <param name="partname">产品名称</param>
|
/// <param name="partspec">产品规格</param>
|
/// <param name="paystartdate">预计开工时间</param>
|
/// <param name="payenddate">预计完工时间</param>
|
/// <param name="creatuser">创建人员</param>
|
/// <param name="page">页码</param>
|
/// <param name="rows">每页显示条数</param>
|
/// <param name="prop">排序字段</param>
|
/// <param name="order">排序规则</param>
|
/// <returns></returns>
|
[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订单下达]
|
/// <summary>
|
/// ERP订单下达
|
/// </summary>
|
/// <param name="obj">提交数据</param>
|
/// <returns></returns>
|
[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(); //已下单数量
|
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);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[ERP订单关闭]
|
/// <summary>
|
/// ERP订单关闭
|
/// </summary>
|
/// <param name="erporderid">订单id</param>
|
/// <param name="erpordercode">订单号</param>
|
/// <returns></returns>
|
[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工单查询]
|
/// <summary>
|
/// MES工单查询
|
/// </summary>
|
/// <param name="mesorderstus">工单状态码</param>
|
/// <param name="mesordercode">工单编号</param>
|
/// <param name="sourceorder">源单单号</param>
|
/// <param name="ordertype">单据类型</param>
|
/// <param name="partcode">产品编码</param>
|
/// <param name="partname">产品名称</param>
|
/// <param name="partspec">产品规格</param>
|
/// <param name="creatuser">创建人员</param>
|
/// <param name="createdate">创建时间</param>
|
/// <param name="page">页码</param>
|
/// <param name="rows">每页显示条数</param>
|
/// <param name="prop">排序字段</param>
|
/// <param name="order">排序规则</param>
|
/// <returns></returns>
|
[Route(template: "MesOrderSearch")]
|
[HttpGet]
|
public HttpResponseMessage MesOrderSearch(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.MesOrderSearch(mesorderstus, mesordercode, sourceorder, ordertype, partcode, partname, partspec, startNum, creatuser, createdate, endNum, prop, order);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[产品编码查找工艺路线下拉接口]
|
/// <summary>
|
/// 产品编码查找工艺路线下拉接口
|
/// </summary>
|
/// <param name="partcode">产品编码</param>
|
/// <returns></returns>
|
[Route(template: "PartSelectRoute")]
|
[HttpGet]
|
public HttpResponseMessage PartSelectRoute(string partcode)
|
{
|
mes = ProductionManagementBLL.PartSelectRoute(partcode);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[产品+工艺路线查找车间下拉接口]
|
/// <summary>
|
/// 产品+工艺路线查找车间下拉接口
|
/// </summary>
|
/// <param name="partcode">产品编码</param>
|
/// <param name="routecode">工艺路线编码</param>
|
/// <returns></returns>
|
[Route(template: "RouteSelectWkshop")]
|
[HttpGet]
|
public HttpResponseMessage RouteSelectWkshop(string partcode, string routecode)
|
{
|
mes = ProductionManagementBLL.RouteSelectWkshop(partcode, routecode);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[根据选择工艺路线查看工序接口]
|
/// <summary>
|
/// 根据选择工艺路线查看工序接口
|
/// </summary>
|
/// <param name="routecode">工艺路线编码</param>
|
/// <returns></returns>
|
[Route(template: "SelectRouteStep")]
|
[HttpGet]
|
public HttpResponseMessage SelectRouteStep(string routecode)
|
{
|
mes = ProductionManagementBLL.SelectRouteStep(routecode);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region【生产管理、工单新增、编辑时,选择排程是时获取物料清单版本号】
|
/// <summary>
|
/// 生产管理、工单新增、编辑时,选择排程是时获取物料清单版本号
|
/// </summary>
|
/// <param name="partnumber">产品编码</param>
|
/// <returns></returns>
|
[Route(template: "JobCreationSonAddVison")]
|
[HttpGet]
|
public HttpResponseMessage JobCreationSonAddVison(string partnumber)
|
{
|
mes = ProductionManagementBLL.JobCreationSonAddVison(partnumber);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[工单派发选择工艺路线或选择生产车间时判断绑定条件]
|
/// <summary>
|
/// 工单派发选择工艺路线或选择生产车间时判断绑定条件
|
/// </summary>
|
/// <param name="partcode">产品编码</param>
|
/// <param name="routecode">工艺路线编码</param>
|
/// <param name="wkshopcode">车间编码</param>
|
/// <returns></returns>
|
[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工单新增、编辑提交]
|
/// <summary>
|
/// MES工单新增、编辑提交
|
/// </summary>
|
/// <param name="obj">提交数据</param>
|
/// <returns></returns>
|
[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 is_aps = obj["is_aps"].ToString(); //是否排产
|
string bom_id = obj["bom_id"].ToString(); //物料清单id
|
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, is_aps, bom_id);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[MES工单删除]
|
/// <summary>
|
/// MES工单删除
|
/// </summary>
|
/// <param name="souceid">源单工单</param>
|
/// <param name="wocode">工单编号</param>
|
/// <param name="m_po">订单编号</param>
|
/// <param name="orderqty">工单数量</param>
|
/// <returns></returns>
|
[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工单关闭]
|
/// <summary>
|
/// MES工单关闭
|
/// </summary>
|
/// <param name="wocode">工单编号</param>
|
/// <param name="m_po">订单编号</param>
|
/// <returns></returns>
|
[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工单查看工序任务]
|
/// <summary>
|
/// MES工单查看工序任务
|
/// </summary>
|
/// <param name="wo_code">工单编号</param>
|
/// <returns></returns>
|
[Route(template: "SearchWorkStep")]
|
[HttpGet]
|
public HttpResponseMessage SearchWorkStep(string wo_code)
|
{
|
mes = ProductionManagementBLL.SearchWorkStep(wo_code);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
|
|
#region[生产开报工扫码获取工单对应工序任务(自制)]
|
/// <summary>
|
/// 生产开报工扫码获取工单对应工序任务(自制)
|
/// </summary>
|
/// <param name="orderstepqrcode">扫描的二维码信息</param>
|
/// <param name="page">页码</param>
|
/// <param name="rows">每页显示条数</param>
|
/// <param name="prop">排序字段</param>
|
/// <param name="order">排序规则(默认按照计划开工时间正序)</param>
|
/// <returns></returns>
|
[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[生产开报工扫码获取工单对应工序任务(外协)]
|
/// <summary>
|
/// 生产开报工扫码获取工单对应工序任务(外协)
|
/// </summary>
|
/// <param name="orderstepqrcode">扫描的二维码信息</param>
|
/// <param name="page">页码</param>
|
/// <param name="rows">每页显示条数</param>
|
/// <param name="prop">排序字段</param>
|
/// <param name="order">排序规则(默认按照计划开工时间正序)</param>
|
/// <returns></returns>
|
[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[生产开报工扫码获取工单对应工序任务(不良)]
|
/// <summary>
|
/// 生产开报工扫码获取工单对应工序任务(不良)
|
/// </summary>
|
/// <param name="orderstepqrcode">扫描的二维码信息</param>
|
/// <param name="page">页码</param>
|
/// <param name="rows">每页显示条数</param>
|
/// <param name="prop">排序字段</param>
|
/// <param name="order">排序规则(默认按照计划开工时间正序)</param>
|
/// <returns></returns>
|
[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[生产开报工扫码获取工单对应工序任务(不良明细)]
|
/// <summary>
|
/// 生产开报工扫码获取工单对应工序任务(不良明细)
|
/// </summary>
|
/// <param name="orderstepqrcode">扫描的二维码信息</param>
|
/// <returns></returns>
|
[Route(template: "MesOrderNgSubStepSearch")]
|
[HttpGet]
|
public HttpResponseMessage MesOrderNgSubStepSearch(string orderstepqrcode)
|
{
|
mes = ProductionManagementBLL.MesOrderNgSubStepSearch(orderstepqrcode);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region [生产开报工:开工(开始/报工)/外协(发料/收料)时条件判断及数据返回接口]
|
/// <summary>
|
/// 生产开报工:开工(开始/报工)/外协(发料/收料)时条件判断及数据返回接口
|
/// </summary>
|
/// <param name="OperType">操作类型:自制(ZZ)/外协(WX)</param>
|
/// <param name="SelectType">操作类型:外协发料标识(OUT)/外协收料标识(IN)</param>
|
/// <param name="orderstepqrcode">扫描二维码信息</param>
|
/// <returns></returns>
|
[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[生产开报工:开工时获取设备下拉列表]
|
/// <summary>
|
/// 生产开报工:开工时获取设备下拉列表
|
/// </summary>
|
/// <param name="orderstepqrcode">扫描二维码信息</param>
|
/// <returns></returns>
|
[Route(template: "MesOrderStepStartSelectEqp")]
|
[HttpGet]
|
public HttpResponseMessage MesOrderStepStartSelectEqp(string orderstepqrcode)
|
{
|
mes = ProductionManagementBLL.MesOrderStepStartSelectEqp(orderstepqrcode);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[生产开报工:报工时获取生产班组下拉框]
|
/// <summary>
|
/// 生产开报工:报工时获取生产班组下拉框
|
/// </summary>
|
/// <returns></returns>
|
[Route(template: "MesOrderStepReportSelectUserGroup")]
|
[HttpGet]
|
public HttpResponseMessage MesOrderStepReportSelectUserGroup()
|
{
|
mes = ProductionManagementBLL.MesOrderStepReportSelectUserGroup();
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[生产开报工:根据生产班组查找人员列表]
|
/// <summary>
|
/// 生产开报工:根据生产班组查找人员列表
|
/// </summary>
|
/// <param name="usergroupcode">班组编码</param>
|
/// <returns></returns>
|
[Route(template: "MesOrderGroupSelectUser")]
|
[HttpGet]
|
public HttpResponseMessage MesOrderGroupSelectUser(string usergroupcode)
|
{
|
mes = ProductionManagementBLL.MesOrderGroupSelectUser(usergroupcode);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[生产开报工:人员下拉列表]
|
/// <summary>
|
/// 生产开报工:人员下拉列表
|
/// </summary>
|
/// <param name="usercode">人员编码</param>
|
/// <returns></returns>
|
[Route(template: "MesOrderSelectUser")]
|
[HttpGet]
|
public HttpResponseMessage MesOrderSelectUser(string usercode = null)
|
{
|
mes = ProductionManagementBLL.MesOrderSelectUser(usercode);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[生产开报工:发料/收料时获取外协下拉列表]
|
/// <summary>
|
/// 生产开报工:发料/收料时获取外协下拉列表
|
/// </summary>
|
/// <param name="orderstepqrcode">扫描二维码信息</param>
|
/// <returns></returns>
|
[Route(template: "MesOrderStepSelectWX")]
|
[HttpGet]
|
public HttpResponseMessage MesOrderStepSelectWX(string orderstepqrcode)
|
{
|
mes = ProductionManagementBLL.MesOrderStepSelectWX(orderstepqrcode);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[生产报工:报工/外协收料 获取不良原因下拉列表]
|
/// <summary>
|
/// 生产报工:报工/外协收料 获取不良原因下拉列表
|
/// </summary>
|
/// <param name="orderstepqrcode">扫描二维码信息</param>
|
/// <returns></returns>
|
[Route(template: "MesOrderStepSelectCause")]
|
[HttpGet]
|
public HttpResponseMessage MesOrderStepSelectCause(string orderstepqrcode)
|
{
|
mes = ProductionManagementBLL.MesOrderStepSelectCause(orderstepqrcode);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[生产开报工,开工提交]
|
/// <summary>
|
/// 生产开报工,开工提交
|
/// </summary>
|
/// <param name="obj">开工提交数据</param>
|
/// <returns></returns>
|
[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[生产开报工,报工提交]
|
/// <summary>
|
/// 生产开报工,报工提交
|
/// </summary>
|
/// <param name="obj">报工提交数据</param>
|
/// <returns></returns>
|
[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 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 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, reckway,usergroupcode, reportuser, taskqty, startqty, reportqty, ngqty, badcode, remarks, username);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[生产开报工,发料提交]
|
/// <summary>
|
/// 生产开报工,发料提交
|
/// </summary>
|
/// <param name="obj">发料提交数据</param>
|
/// <returns></returns>
|
[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[生产开报工,收料提交]
|
/// <summary>
|
/// 生产开报工,收料提交
|
/// </summary>
|
/// <param name="obj">收料提交数据</param>
|
/// <returns></returns>
|
[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[不良处理,提交]
|
/// <summary>
|
/// 不良处理,提交
|
/// </summary>
|
/// <param name="username">处理人员编码</param>
|
/// <param name="json">提交数据</param>
|
/// <returns></returns>
|
[Route(template: "EditOrderNgStepSeave")]
|
[HttpPost]
|
public HttpResponseMessage EditOrderNgStepSeave(string username, ReportDefectHandle json)
|
{
|
mes = ProductionManagementBLL.EditOrderNgStepSeave(json, username);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[生产开报工,工序检验扫码获取任务信息]
|
/// <summary>
|
/// 生产开报工,工序检验扫码获取任务信息
|
/// </summary>
|
/// <param name="orderstepqrcode">扫描二维码信息</param>
|
/// <returns></returns>
|
[Route(template: "MesOrderStepCheckSearch")]
|
[HttpGet]
|
public HttpResponseMessage MesOrderStepCheckSearch(string orderstepqrcode)
|
{
|
mes = ProductionManagementBLL.MesOrderStepCheckSearch(orderstepqrcode);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#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>
|
/// <returns></returns>
|
[Route(template: "MesOrderStepCheckItemList")]
|
[HttpGet]
|
public HttpResponseMessage MesOrderStepCheckItemList(string checkstandcode)
|
{
|
mes = ProductionManagementBLL.MesOrderStepCheckItemList(checkstandcode);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#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 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);
|
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工单批量关闭查询]
|
/// <summary>
|
/// MES工单查询
|
/// </summary>
|
/// <param name="mesorderstus">工单状态码</param>
|
/// <param name="mesordercode">工单编号</param>
|
/// <param name="sourceorder">源单单号</param>
|
/// <param name="ordertype">单据类型</param>
|
/// <param name="partcode">产品编码</param>
|
/// <param name="partname">产品名称</param>
|
/// <param name="partspec">产品规格</param>
|
/// <param name="creatuser">创建人员</param>
|
/// <param name="createdate">创建时间</param>
|
/// <param name="page">页码</param>
|
/// <param name="rows">每页显示条数</param>
|
/// <param name="prop">排序字段</param>
|
/// <param name="order">排序规则</param>
|
/// <returns></returns>
|
[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工单批量关闭提交]
|
/// <summary>
|
/// MES工单批量关闭提交
|
/// </summary>
|
/// <param name="dt">工单号数组对象</param>
|
/// <returns></returns>
|
[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工单批量反关闭]
|
/// <summary>
|
/// MES工单批量反关闭
|
/// </summary>
|
/// <param name="dt">工单号数组对象</param>
|
/// <returns></returns>
|
[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[产能规划方案设置查询]
|
/// <summary>
|
/// 产能规划方案设置查询
|
/// </summary>
|
/// <returns></returns>
|
[Route(template: "CapacityPlanningSetupSearch")]
|
[HttpGet]
|
public HttpResponseMessage CapacityPlanningSetupSearch()
|
{
|
mes = ProductionManagementBLL.CapacityPlanningSetupSearch();
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[产能规划方案设置新增]
|
/// <summary>
|
/// 产能规划方案设置新增
|
/// </summary>
|
/// <param name="obj">提交数据</param>
|
/// <returns></returns>
|
[Route(template: "CapacityPlanningSetupAddUpdate")]
|
[HttpPost]
|
public HttpResponseMessage CapacityPlanningSetupAddUpdate([FromBody] JObject obj)
|
{
|
string capacitylist = obj["capacitylist"].ToString(); //提交数据
|
string username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
|
JavaScriptSerializer Serializer = new JavaScriptSerializer();
|
List<CapacityPlanningSetup> objs = Serializer.Deserialize<List<CapacityPlanningSetup>>(capacitylist);
|
mes = ProductionManagementBLL.CapacityPlanningSetupAddUpdate(username, objs);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[产能规划方案设置删除]
|
/// <summary>
|
/// 产能规划方案设置删除
|
/// </summary>
|
/// <param name="CapSetupCode">方案编码</param>
|
/// <returns></returns>
|
[Route(template: "CapacityPlanningSetupDelete")]
|
[HttpPost]
|
public HttpResponseMessage CapacityPlanningSetupDelete(string capsetupcode)
|
{
|
string username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
|
mes = ProductionManagementBLL.CapacityPlanningSetupDelete(username, capsetupcode);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[产能规划查询]
|
/// <summary>
|
/// 产能规划查询
|
/// </summary>
|
/// <param name="page">页码</param>
|
/// <param name="rows">页数</param>
|
/// <param name="prop">排序字段</param>
|
/// <param name="order">排序规则</param>
|
/// <param name="workshop">车间编码</param>
|
/// <param name="devicetype">生产单元</param>
|
/// <param name="stustype">有效状态</param>
|
/// <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)
|
{
|
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[产能规划默认方案保存提交]
|
/// <summary>
|
/// 产能规划默认方案保存提交
|
/// </summary>
|
/// <param name="captplanid">产能规划(生产资源)id</param>
|
/// <param name="wkshopcode">车间编码</param>
|
/// <param name="capunitcode">生产单元编码</param>
|
/// <param name="capsetupcode">默认方案编码</param>
|
/// <param name="captplantype">资源类型</param>
|
/// <returns></returns>
|
[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[产能规划点击日历组件查找已关联的日期方案]
|
/// <summary>
|
/// 产能规划点击日历组件查找已关联的日期方案
|
/// </summary>
|
/// <param name="captplanid">产能规划(生产资源)id</param>
|
/// <returns></returns>
|
[Route(template: "CapacityPlanningCalendar")]
|
[HttpGet]
|
public HttpResponseMessage CapacityPlanningCalendar(string captplanid)
|
{
|
mes = ProductionManagementBLL.CapacityPlanningCalendar(captplanid);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[产能规划日历双击时带出对应的方案]
|
/// <summary>
|
/// 产能规划日历双击时带出对应的方案
|
/// </summary>
|
/// <param name="captplanid">产能规划(生产资源)id</param>
|
/// <param name="datetime">双击选中的日期</param>
|
/// <returns></returns>
|
[Route(template: "CapacityPlanningOnclickSelect")]
|
[HttpGet]
|
public HttpResponseMessage CapacityPlanningOnclickSelect(string captplanid,string datetime)
|
{
|
mes = ProductionManagementBLL.CapacityPlanningOnclickSelect(captplanid, datetime);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
|
#region[产能规划工作日历选择提交]
|
/// <summary>
|
/// 产能规划工作日历选择提交
|
/// </summary>
|
/// <returns></returns>
|
[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<CapaPlan> objs = Serializer.Deserialize<List<CapaPlan>>(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[自动排程工单查询]
|
/// <summary>
|
/// 自动排程工单查询
|
/// </summary>
|
/// <param name="page">页码</param>
|
/// <param name="rows">每页条数</param>
|
/// <param name="prop">排序字段</param>
|
/// <param name="order">排序规则</param>
|
/// <param name="workshop">车间编码</param>
|
/// <param name="wocode">生产工单号</param>
|
/// <param name="partcode">物料编码</param>
|
/// <param name="partname">物料名称</param>
|
/// <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)
|
{
|
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[高级排程点击工单任务带出瓶颈工序设备、已排程任务数据]
|
/// <summary>
|
/// 高级排程点击工单任务带出瓶颈工序设备、已排程任务数据
|
/// </summary>
|
/// <param name="wocode">工单编号</param>
|
/// <param name="wkshpcode">车间编码</param>
|
/// <param name="partcode">物料编码</param>
|
/// <param name="botproccode">瓶颈工序编码(首道工序)</param>
|
/// <param name="startdate">开始日期</param>
|
/// <param name="enddate">结束日期</param>
|
/// <returns></returns>
|
[Route(template: "OnclickAdvancedSchedulingDevice")]
|
[HttpGet]
|
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[排程数据提交]
|
/// <summary>
|
/// 排程数据提交
|
/// </summary>
|
/// <returns></returns>
|
[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<AlreadyScheduling> objs = Serializer.Deserialize<List<AlreadyScheduling>>(json);
|
mes = ProductionManagementBLL.SubmitAlreadyScheduling(username, wocode, botprocecode, objs);
|
return TJson.toJson(mes);
|
}
|
#endregion
|
}
|
}
|