using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
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(string mesorderstus = null, string mesordercode = 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, 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[MES工单新增、编辑提交]
///
/// MES工单新增、编辑提交
///
/// 提交数据
///
[Route(template: "AddUpdateMesOrder")]
[HttpPost]
public HttpResponseMessage AddUpdateMesOrder([FromBody] JObject obj)
{
string mesorderstus = obj["mesorderstus"].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, 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 wocode, string m_po, string orderqty)
{
mes = ProductionManagementBLL.DeleteMesOrder(wocode, m_po, orderqty);
return TJson.toJson(mes);
}
#endregion
#region[MES工单关闭]
///
/// MES工单关闭
///
/// 工单编号
/// 订单编号
///
[Route(template: "ClosedMesOrder")]
[HttpPost]
public HttpResponseMessage ClosedMesOrder(string wocode, string m_po)
{
mes = ProductionManagementBLL.ClosedMesOrder(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(); //不良原因编码
var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
mes = ProductionManagementBLL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, eqpcode, usergroupcode, reportuser, taskqty, startqty, reportqty, ngqty, badcode, 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(); //不良原因编码
var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
mes = ProductionManagementBLL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inuser, taskqty, sqty, ngqty, badcode, username);
return TJson.toJson(mes);
}
#endregion
#region[不良处理,提交]
///
/// 不良处理,提交
///
/// 提交数据
///
[Route(template: "EditOrderNgStepSeave")]
[HttpPost]
public HttpResponseMessage EditOrderNgStepSeave(ReportDefectHandle json)
{
var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //操作人员
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 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, username,json);
return TJson.toJson(mes);
}
#endregion
}
}