using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Web.Http;
using WebAPI.DLL;
using WebAPI.Models;
using WebAPI.Service;
using Kingdee.BOS.WebApi.Client;
namespace WebAPI.Controllers
{
public class Sc_ProductReportController : ApiController
{
private json objJsonResult = new json();
public DataSet ds = new DataSet();
public SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
#region 生产模块 生产订单领料状态报表查询
///
/// 返回生产订单领料状态报表列表
///参数:string sql。
///返回值:object。
///
[Route("Sc_Report/ProdOrderPickingStatus")]
[HttpGet]
public object ProdOrderPickingStatus(DateTime HBeginDate, DateTime HEndDate, string HICMOBillNo, string HDeptName, string HMaterNumber, string HMaterName, string HMaterModel)
{
try
{
List columnNameList = new List();
if (HBeginDate == null || HBeginDate.Equals(""))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "请选择开始时间";
return objJsonResult;
}
else
{
ds = oCN.RunProcReturn("exec h_p_Sc_ICMOBillPlanList '" + HBeginDate + "','" + HEndDate + "','" + HICMOBillNo + "','" + HMaterNumber + "','" + HMaterName + "','" + HMaterModel + "','" + HDeptName + "'", "h_p_Sc_ICMOBillPlanList");
}
//添加列名
foreach (DataColumn col in ds.Tables[0].Columns)
{
Type dataType = col.DataType;
string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
}
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "Sucess!";
objJsonResult.data = ds.Tables[0];
objJsonResult.list = columnNameList;
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 生产模块 库存库龄分析报表查询
///
/// 返回库存库龄分析报表列表
///参数:string sql。
///返回值:object。
///
[Route("Sc_Report/InventoryAge")]
[HttpGet]
public object InventoryAge(string HWhName, string HLot, string HMaterNumber, string HMaterName)
{
try
{
List columnNameList = new List();
ds = oCN.RunProcReturn("exec h_p_Kf_StockQtyDateTimesReport '" + HWhName + "','" + HLot + "','" + HMaterNumber + "','" + HMaterName + "'", "h_p_Kf_StockQtyDateTimesReport");
//添加列名
foreach (DataColumn col in ds.Tables[0].Columns)
{
Type dataType = col.DataType;
string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
}
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "Sucess!";
objJsonResult.data = ds.Tables[0];
objJsonResult.list = columnNameList;
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region BOM层级查询
[Route("Sc_ProductReport/Get_BOMReportList")]
[HttpGet]
public object Get_BOMReportList(string HMaterID, string user)
{
try
{
List columnNameList = new List();
ds = oCN.RunProcReturn("exec h_p_Sc_BOMReportList '" + HMaterID + "'", "h_p_Sc_BOMReportList");
if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "此物料查无BOM数据!";
objJsonResult.data = null;
return objJsonResult;
}
// 遍历所有表
foreach (DataTable table in ds.Tables)
{
List tableColumnList = new List();
// 添加列名
foreach (DataColumn col in table.Columns)
{
Type dataType = col.DataType;
string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
tableColumnList.Add(JsonConvert.DeserializeObject(ColmString));
}
// 将每个表的列名列表添加到总列名列表
columnNameList.Add(new { TableName = table.TableName, Columns = tableColumnList });
}
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "Sucess!";
objJsonResult.data = ds;
objJsonResult.list = columnNameList;
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
[Route("Sc_ProductReport/Get_BOMReportList_Routing")]
[HttpGet]
public object Get_BOMReportList_Routing(string HMaterID, string user)
{
try
{
List columnNameList = new List();
ds = oCN.RunProcReturn("select * from h_v_Gy_RoutingBillList_BOM where HMaterID='"+ HMaterID + "'", "h_v_Gy_RoutingBillList_BOM");
if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "此物料查无工艺流程!";
objJsonResult.data = null;
return objJsonResult;
}
foreach (DataColumn col in ds.Tables[0].Columns)
{
Type dataType = col.DataType;
string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
}
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "Sucess!";
objJsonResult.data = ds.Tables[0];
objJsonResult.list = columnNameList;
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
}
}