using DBUtility;
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.Text.RegularExpressions;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers
{
public class Xt_FastICSchemeController : ApiController
{
private json objJsonResult = new json();
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
DataSet ds;
///
/// 返回过滤方案列表
///参数:string sql。
///返回值:object。
///
[Route("Xt_FastICScheme/list")]
[HttpGet]
public object list(string user, string HModuleName)
{
try
{
List columnNameList = new List();
string sql = string.Format(@"select * from h_v_Xt_FastICSchemeList where 用户编码='" + user + "' and 模块名称 = '" + HModuleName + "'");
ds = oCN.RunProcReturn(sql, "h_v_Xt_FastICSchemeList");
//添加列名
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;
}
}
///
/// 双击返回选择的过滤方案列表
///参数:string sql。
///返回值:object。
///
[Route("Xt_FastICScheme/Chooselist")]
[HttpGet]
public object Chooselist(string user, string HModuleName,Int64 HInterID,string Type)
{
try
{
List columnNameList = new List();
string sql = "";
if (Type == "Default")
{
sql = string.Format(@"select * from h_v_Xt_FastICScheme_ChooseList where 用户编码='" + user + "' and 模块名称 = '" + HModuleName + "' and 默认使用标记 = '默认方案'");
}
else
{
sql = string.Format(@"select * from h_v_Xt_FastICScheme_ChooseList where 用户编码='" + user + "' and 模块名称 = '" + HModuleName + "' and hmainid = " + HInterID);
}
ds = oCN.RunProcReturn(sql, "h_v_Xt_FastICScheme_ChooseList");
if (ds.Tables[0].Rows.Count != 0 && ds != null)
{
//添加列名
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 = "[0000-1-037]Sucess!";
objJsonResult.data = ds.Tables[0];
objJsonResult.list = columnNameList;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "[0000-1-045]没有查询到数据!";
objJsonResult.data = ds.Tables[0];
objJsonResult.list = columnNameList;
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "[0000-1-038]Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#region 快速过滤方案
///
/// 新增修改单据-保存按钮
///参数:string sql。
///返回值:object。
///
[Route("Xt_FastICScheme/Save")]
[HttpPost]
public object Save([FromBody] JObject oMain)
{
try
{
DAL.ClsXt_FastICScheme_Ctl oDept = new DAL.ClsXt_FastICScheme_Ctl();
var _value = oMain["oMain"].ToString();
string msg1 = _value.ToString();
string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string msg2 = sArray[0].ToString();//表头字段信息 或 单据内码
string HFilterIdLists = sArray[1].ToString();//过滤条件id
string HValue = sArray[2].ToString();//过滤值
string HElement_type = sArray[3].ToString();//标签类型
string user = sArray[4].ToString();//用户
string OperationType = sArray[5].ToString();//操作类型
DAL.ClsXt_FastICScheme_Ctl oBill = new DAL.ClsXt_FastICScheme_Ctl();
//反序列化
ListModels oListModels = new ListModels();
List lsmain = new List();
msg2 = msg2.Replace("\\", "");
msg2 = msg2.Replace("\n", ""); //\n
//当前操作类型不为编辑,则进行json数据的解析
if (Convert.ToInt32(OperationType) != 3)
{
lsmain = oListModels.getObjectByJson_Xt_FastICSchemeMain(msg2);
}
//当前操作类型为编辑,msg2 为单据内码
else
{
oBill.omodel.HInterID = Convert.ToInt32(msg2);
}
foreach (Model.ClsXt_FastICSchemeMain_Model oItem in lsmain)
{
oItem.HBillType = "3332";
oBill.omodel = oItem;
}
//保存完毕后处理
bool bResult;
if (Convert.ToInt32(OperationType) == 1)
{
// bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
bResult = oBill.AddBill(HFilterIdLists, HValue, HElement_type, user, ref DBUtility.ClsPub.sExeReturnInfo);
}
else
{
bResult = oBill.ModifyBill(Convert.ToInt32(msg2), HFilterIdLists, HValue, HElement_type, ref DBUtility.ClsPub.sExeReturnInfo);
}
if (bResult)
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "[0000-1-050]保存成功!";
//WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
objJsonResult.data = 1;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "[0000-1-051]保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
objJsonResult.data = 1;
return objJsonResult;
}
}
catch (Exception e)
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "[0000-1-051]Exception!" + e.Message;
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 设置为默认方案
///
/// 设置为默认方案
///参数:string sql。
///返回值:object。
///
[Route("Xt_FastICScheme/SetDefaultScheme")]
[HttpGet]
public object SetDefaultScheme(Int64 HInterID,string user,string HModuleName)
{
try
{
oCN.BeginTran();
oCN.RunProc("update Xt_FastICSchemeMain set HUseingFlag = 0 where HUserCode ='" + user + "' and HBillName = '" + HModuleName + "'");
oCN.RunProc("update Xt_FastICSchemeMain set HUseingFlag = 1 where HInterID = " + HInterID);
oCN.Commit();
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "设置成功!";
objJsonResult.data = 1;
return objJsonResult;
}
catch (Exception e)
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.Message;
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 过滤方案删除功能
[Route("Xt_FastICScheme/DeltetXt_FastICScheme")]
[HttpGet]
public object DeltetXt_FastICScheme(string HInterID, string user)
{
try
{
if (string.IsNullOrWhiteSpace(HInterID))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "HInterID为空!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.BeginTran();//开始事务
oCN.RunProc("delete from xt_FastICSchemeMain where HInterID in (" + HInterID + ")");
oCN.RunProc("delete from xt_FastICSchemeSub where HInterID in (" + HInterID + ")");
oCN.Commit();//提交事务
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "* 数据删除成功!";
objJsonResult.data = null;
return objJsonResult; ;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "删除失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
}
}