using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using VueWebCoreApi.DLL.BLL;
using VueWebCoreApi.Models;
using VueWebCoreApi.Models.Bom;
using VueWebCoreApi.Models.UnitMaterial;
using VueWebCoreApi.Tools;
namespace VueWebCoreApi.Controllers
{
[ApiExplorerSettings(GroupName = "物料管理")]
[ApiController]
[Route("api/[controller]")]
[ChannelActionFilter]
public class ProductModelController : Controller
{
//定义全局信息返回变量
ToMessage mes = new ToMessage();
RedisCommon redis = new RedisCommon();
#region[计量单位组信息]
///
/// 计量单位组信息
///
///
[Route(template: "TUnitGroup")]
[HttpGet]
public JsonResult TUnitGroup()
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.TUnitGroup();
return Json(mes);
}
#endregion
#region[计量单位信息列表]
///
/// 计量单位信息列表
///
/// 单计量(S) 多计量(M)
/// 计量单位组编码
/// 页码
/// 每页显示条数
/// 排序字段
/// 排序规则
///
[Route(template: "TUnitData")]
[HttpGet]
public JsonResult TUnitData(string tunittype,string tunitgroupcode, int page = 0, int rows = 0, string prop = null, string order = null)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
int startNum = rows * (page - 1) + 1; //起始记录rowNum
int endNum = rows * page; //结束记录 rowNum
mes = ProductModelBLL.TUnitData(tunittype,tunitgroupcode, startNum, endNum, prop, order);
return Json(mes);
}
#endregion
#region[计量单位编辑获取组明细]
///
/// 计量单位编辑获取组明细
///
/// 计量单位编码
/// 是否计量组:0(否)1(是)
///
[Route(template: "TUnitGroupProject")]
[HttpGet]
public JsonResult TUnitGroupProject(string unitcode,string isgroup)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.TUnitGroupProject(unitcode,isgroup,us);
return Json(mes);
}
#endregion
#region[计量单位新增、编辑保存]
///
/// 计量单位新增、编辑保存
///
/// 数据来源:ERP/MES
/// 单计量(S) 多计量(M)
/// 计量单位组编码
/// 操作类型:Add/Update
/// 提交数据
///
[Route(template: "AddUpdateTUnit")]
[HttpPost]
public JsonResult AddUpdateTUnit(string data_sources, string tunittype,string tunitgroupcode,string OperType, List listjson)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
var menucode = HttpContext.Request.Headers["Menucode"].ToString(); //菜单编码
mes = ProductModelBLL.AddUpdateTUnit(menucode, data_sources,tunittype, tunitgroupcode, OperType, listjson, us);
return Json(mes);
}
#endregion
#region[计量单位删除]
///
/// 计量单位删除
///
/// 数据来源:ERP/MES
/// 单计量(S) 多计量(M)
/// 计量单位组编码
/// 计量单位编码
///
[Route(template: "DeleteTUnit")]
[HttpPost]
public JsonResult DeleteTUnit(string data_sources, string tunittype, string tunitgroupcode, string tunitcode)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.DeleteTUnit(data_sources, tunittype, tunitgroupcode, tunitcode, us);
return Json(mes);
}
#endregion
#region[存货分类信息]
///
/// 存货分类信息
///
///
[Route(template: "TMaterielClassTree")]
[HttpGet]
public JsonResult TMaterielClassTree()
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.TMaterielClassTree();
return Json(mes);
}
#endregion
#region[存货分类新增/编辑提交]
///
/// 存货分类新增/编辑提交
///
/// 数据来源:ERP/MES
/// 存货分类编码
/// 存货分类名称
/// 上级分类编码
/// 操作类型:Add/Update
///
[Route(template: "TMaterielClassTreeAddUpdate")]
[HttpPost]
public JsonResult TMaterielClassTreeAddUpdate(string data_sources, string inventoryclasscode, string inventoryclassname,string parentcode,string OperType)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.TMaterielClassTreeAddUpdate(data_sources,inventoryclasscode, inventoryclassname, parentcode, OperType, us);
return Json(mes);
}
#endregion
#region[存货分类删除]
///
/// 存货分类删除
///
/// 存货分类编码字串集
///
[Route(template: "TMaterielClassTreeDelete")]
[HttpPost]
public JsonResult TMaterielClassTreeDelete(string inventoryclasscode)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.TMaterielClassTreeDelete(inventoryclasscode,us);
return Json(mes);
}
#endregion
#region[存货信息列表]
///
/// 存货信息列表
///
/// 存货分类编码字符串集
/// 存货编码
/// 存货名称
/// 存货规格
/// 页码
/// 每页显示条数
/// 排序字段
/// 排序规则
///
[Route(template: "TMaterielData")]
[HttpGet]
public JsonResult TMaterielData(string inventoryclasscode,string partcode,string partname,string partspec, int page = 0, int rows = 0, string prop = null, string order = null)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
int startNum = rows * (page - 1) + 1; //起始记录rowNum
int endNum = rows * page; //结束记录 rowNum
mes = ProductModelBLL.TMaterielData(inventoryclasscode, partcode,partname,partspec, startNum, endNum, prop, order);
return Json(mes);
}
#endregion
#region[存货信息新增/编辑保存]
///
/// 存货信息新增/编辑保存
///
/// 提交数据
///
[Route(template: "TMaterielAddUpdate")]
[HttpPost]
public JsonResult TMaterielAddUpdate([FromBody] JObject obj)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
string data_sources = obj["data_sources"].ToString(); //数据来源:ERP/MES
string partcode = obj["partcode"].ToString(); //存货编码
string partname = obj["partname"].ToString(); //存货名称
string partspec = obj["partspec"].ToString(); //规格型号
string inventoryclasscode = obj["inventoryclasscode"].ToString(); //存货类型编码
string unittypcode = obj["unittypcode"].ToString(); //计量方式(0:多计量1:单计量)
string unitcode = obj["unitcode"].ToString(); //计量单位编码/计量单位组编码
string unitsubcode = obj["unitsubcode"].ToString(); //计量单位组子项编码
string idSubUnitByReport= obj["idSubUnitByReport"].ToString(); //报表辅单位编码
string idUnitByStock = obj["idUnitByStock"].ToString(); //库存常用单位编码
string idUnitByPurchase = obj["idUnitByPurchase"].ToString(); //采购常用单位编码
string idUnitBySale = obj["idUnitBySale"].ToString(); //销售常用单位编码
string idunitbymanufacture= obj["idunitbymanufacture"].ToString(); //生产常用单位
string isPurchase= obj["isPurchase"].ToString(); //是否外购:0(否)1(是)
string isSale = obj["isSale"].ToString(); //是否销售:0(否)1(是)
string isMadeSelf = obj["isMadeSelf"].ToString(); //是否自制:0(否)1(是)
string isMaterial = obj["isMaterial"].ToString(); //是否生产耗用:0(否)1(是)
string isMadeRequest = obj["isMadeRequest"].ToString(); //是否委外:0(否)1(是)
string idwarehouse= obj["idwarehouse"].ToString(); //仓库编码
string status=obj["status"].ToString(); //使用状态:正常(0)停用(1)
string OperType = obj["OperType"].ToString(); //操作类型
mes = ProductModelBLL.TMaterielAddUpdate(data_sources,partcode,partname,partspec, inventoryclasscode, unittypcode, unitcode, unitsubcode, idSubUnitByReport,
idUnitByStock, idUnitByPurchase,idUnitBySale, idunitbymanufacture, isPurchase, isSale, isMadeSelf, isMaterial, isMadeRequest, idwarehouse, status, OperType,us);
return Json(mes);
}
#endregion
#region[存货信息删除]
///
/// 存货信息删除
///
/// 数据来源:ERP/MES
/// 物料编码
///
[Route(template: "TMaterielDelete")]
[HttpPost]
public JsonResult TMaterielDelete(string data_sources,string partcode)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.TMaterielDelete(data_sources, partcode, us);
return Json(mes);
}
#endregion
#region[存货档案关联工艺(工艺路线/工序)查询]
///
/// 存货档案关联工艺(工艺路线/工序)查询
///
/// 物料编码
///
[Route(template: "TMaterielFileAssociationRoute")]
[HttpGet]
public JsonResult TMaterielFileAssociationRoute(string partcode)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.TMaterielFileAssociationRoute(partcode, us);
return Json(mes);
}
#endregion
#region[存货档案关联工艺(工艺路线或工序)提交]
///
/// 存货档案关联工艺(工艺路线或工序)提交
///
/// 提交数据对象
///
[Route(template: "SaveTMaterielFile")]
[HttpPost]
public JsonResult SaveTMaterielFile(List json)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.SaveTMaterielFile(us, json);
return Json(mes);
}
#endregion
#region[物料清单信息列表]
///
/// 物料清单信息列表
///
/// 母件编码
/// 母件名称
/// 母件规格
/// 启用状态
/// 版本号
/// 创建人员
/// 创建日期
/// 页码
/// 分页条数
/// 排序字段
/// 排序规格
///
[Route(template: "BomMainData")]
[HttpGet]
public JsonResult BomMainData(string parentpartcode, string parentpartname, string parentpartspec, string status,string version,string createuser,string createdate, int page = 0, int rows = 0, string prop = null, string order = null)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
string operopendate = ""; //开始时间
string operclosedate = ""; //结束时间
if (createdate != "" && createdate != null)
{
operopendate = createdate.Split('~')[0].ToString();
operclosedate = createdate.Split('~')[1].ToString();
}
int startNum = rows * (page - 1) + 1; //起始记录rowNum
int endNum = rows * page; //结束记录 rowNum
mes = ProductModelBLL.BomMainData(parentpartcode, parentpartname, parentpartspec, status, version, createuser, operopendate, operclosedate, startNum, endNum, prop, order);
return Json(mes);
}
#endregion
#region[物料清单新增修改获取父件信息-T+畅捷通模式]
///
/// 物料清单新增修改获取父件信息-T+畅捷通模式
///
[Route(template: "AddUpdateTBomParentData")]
[HttpGet]
public JsonResult AddUpdateTBomParentData()
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.AddUpdateTBomParentData(us);
return Json(mes);
}
#endregion
#region[物料清单新增修改根据父件信息的计量单位组编码查找计量单位组信息-T+畅捷通模式]
///
/// 物料清单新增修改根据父件信息的计量单位组编码查找计量单位组信息-T+畅捷通模式
///
/// 计量单位组编码(当选取的父件物料中为计量单位组时调用,idunitgroup不为空)
///
[Route(template: "AddUpdateTBomUnitGroup")]
[HttpGet]
public JsonResult AddUpdateTBomUnitGroup(string idunitgroup)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.AddUpdateTBomUnitGroup(idunitgroup);
return Json(mes);
}
#endregion
#region[物料清单新增时获取最大版本号]
///
/// 物料清单新增时获取最大版本号
///
/// 父件编码
///
[Route(template: "AddUpdateTBomMaxVsion")]
[HttpGet]
public JsonResult AddUpdateTBomMaxVsion(string parentpartcode)
{
mes = ProductModelBLL.AddUpdateTBomMaxVsion(parentpartcode);
return Json(mes);
}
#endregion
#region[物料清单新增修改获取子件信息-T+畅捷通模式]
///
/// 物料清单新增修改获取子件信息-T+畅捷通模式
///
[Route(template: "AddUpdateTBomDetailsData")]
[HttpGet]
public JsonResult AddUpdateTBomDetailsData()
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.AddUpdateTBomDetailsData(us);
return Json(mes);
}
#endregion
#region[物料清单新增修改获取子件Bom-T+畅捷通模式]
///
/// 物料清单新增修改获取子件Bom-T+畅捷通模式
///
/// 子件编码
///
[Route(template: "AddUpdateTBomDetailsBomData")]
[HttpGet]
public JsonResult AddUpdateTBomDetailsBomData(string materiel_code)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.AddUpdateTBomDetailsBomData(materiel_code,us);
return Json(mes);
}
#endregion
#region[物料清单新增修改提交-T+畅捷通模式]
///
/// 物料清单新增修改提交-T+畅捷通模式
///
/// 操作类型:Add/Update
/// 提交数据
///
[Route(template: "TBomAddUpdate")]
[HttpPost]
public JsonResult TBomAddUpdate(string OperType, [FromBody] BomDate bom)
{
var token = HttpContext.Request.Headers["Token"].ToString();
//var token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyY29kZSI6Ijk5OTkiLCJ1c2VybmFtZSI6Iuezu-e7n-euoeeQhuWRmCIsInN0b3JnX2NvZGUiOiIiLCJzdG9yZ19uYW1lIjoiIiwiaXNfc3lzdGVtX2FkbWluIjoiWSIsInJvbGVfY29kZSI6IiIsInJvbGVfZGF0YXBlcm1pc3Npb25zIjoiIiwidXNlcnR5cGUiOiJQQyIsInJlZGlza2V5IjoiTmV3TUVTTG9naW5Vc2VySURQQzk5OTkiLCJtZXNTZXR0aW5nIjoie1wicm91dGVcIjp0cnVlLFwiaXNPcmRlclwiOnRydWUsXCJkZXZpY2VcIjp0cnVlLFwidGVjaFwiOnRydWUsXCJ3b3JrT3JkZXJcIjp0cnVlLFwiZXZlcnlcIjpmYWxzZSxcImxhc3RcIjpmYWxzZX0iLCJ0aW1lb3V0IjoiMjAyNC0wOC0xNFQxMDo0NjozNi42MTQyNjQ0KzA4OjAwIn0.9IdnyNRCWbMEXvxjuiFS6NhRqOtvp_lx5zKrZ8OPj0Y";
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.TBomAddUpdate(OperType, bom, us);
return Json(mes);
}
#endregion
#region[物料清单删除提交-T+畅捷通模式]
///
/// 物料清单删除提交-T+畅捷通模式
///
/// 提交数据
///
[Route(template: "TBomDelete")]
[HttpPost]
public JsonResult TBomDelete([FromBody] BomDate bom)
{
var token = HttpContext.Request.Headers["Token"].ToString();
User us = JwtTools.Denocode(token.ToString());
mes = ProductModelBLL.TBomDelete(bom, us);
return Json(mes);
}
#endregion
#region[工单产品信息下拉框查询]
///
/// 工单产品信息下拉框查询
///
///
[Route(template: "PartSelect")]
[HttpGet]
public JsonResult PartSelect()
{
try
{
mes = ProductModelBLL.PartSelect();
}
catch (Exception e)
{
mes.code = "300";
mes.message = e.Message;
}
return Json(mes);
}
#endregion
}
}