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.Web.Http;
using WebAPI.Models;
using System.Text.RegularExpressions;
namespace WebAPI.Controllers
{
public class Gy_CustomerController : ApiController
{
//获取系统参数
Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
public DBUtility.ClsPub.Enum_BillStatus BillStatus;
private json objJsonResult = new json();
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
DataSet ds;
///
/// 返回客户列表
///参数:string sql。
///返回值:object。
///
[Route("Gy_Customer/list")]
[HttpGet]
public object list(string sWhere, string user, string Organization)
{
try
{
List columnNameList = new List();
//编辑权限
if (!DBUtility.ClsPub.Security_Log_second("Crm_CustomerFileList", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无查看权限!";
objJsonResult.data = null;
return objJsonResult;
}
string sql1 = "";
//客户制定
string sErr = "";
if (oSystemParameter.ShowBill(ref sErr))
{
if (oSystemParameter.omodel.WMS_CampanyName == "乔一")
{
sql1 = string.Format(@"select * from h_v_Gy_CustomerList where 1=1");
}
else
{
sql1 = string.Format(@"select * from h_v_Gy_CustomerList where 组织名称='" + Organization + "'");
}
}
if (sWhere == null || sWhere.Equals(""))
{
ds = oCN.RunProcReturn(sql1 + sWhere + " order by 客户代码 ", "h_v_Gy_CustomerList");
}
else
{
string sql = sql1 + sWhere + " order by 客户代码 ";
ds = oCN.RunProcReturn(sql, "h_v_Gy_CustomerList");
}
//添加列名
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;
}
}
#region 客户子表[关联用户] 查询
///
/// 返回客户子表[关联用户]列表
///参数:string sql。
///返回值:object。
///
[Route("Gy_Customer/RelationUserlist")]
[HttpGet]
public object RelationUserlist(Int64 HCusID)
{
try
{
List columnNameList = new List();
string sql = "select * from h_v_Gy_Customer_RelationUsers_Query where HCusID = " + HCusID + " order by 用户编码 asc";
ds = oCN.RunProcReturn(sql, "h_v_Gy_Customer_RelationUsers_Query");
//添加列名
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
///
/// 客户列表修改按钮方法
///参数:string sql。
///返回值:object。
///
[Route("Gy_Customer/xg")]
[HttpGet]
public object xg(long HInterID)
{
try
{
string sql = string.Format(@"select c.HItemID,c.HNumber 客户代码,c.HName 客户名称,c.HHelpCode 助记码,c.HShortName 简称,c.HAddress 地址,c.HLinkMan 联系人,c.HLinkPhone 联系电话
,c.HMobilePhone 手机,c.HFax 传真,c.HPostalCode 邮编,c.HEmail 电子邮件,c.HCorMan 法人代表,c.HBank 开户银行,c.HBankAccount 银行账号,c.HMateOutEmp 领用人,
c.HTaxNum 税务登记号,c.HTaxRate 增值税率,c.HEnglishName 英文名称,c.HEngLishAddress 英文地址,c.HCountry 国家,c.HCusStatus 客户状态
,c.HStopflag 禁用标志,c.HRemark 备注,c.HAreaID 地区ID,a.HName 地区名称,c.HCurID 默认货币ID,r.HName 默认货币,
c.HSSID 结算方式ID,s.HName 结算方式,c.HCusTypeID 客户分类ID,t.HName 客户分类 from Gy_Customer c
left join Gy_AreaSet a on c.HAreaID=a.HItemID
left join Gy_Currency r on c.HCurID=r.HItemID
left join Gy_SettleStyle s on c.HSSID=s.HItemID
left join Gy_CusType t on c.HCusTypeID=t.HItemID
where c.HItemID='" + HInterID + "'");
ds = oCN.RunProcReturn(sql, "Gy_Customer");
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#region 获取当前最大的客户代码
[Route("Gy_Customer/getMaxCusNumber")]
[HttpGet]
public object getMaxCusNumber()
{
try
{
string sql = "select top(1) * from Gy_Customer order by HNumber desc";
ds = oCN.RunProcReturn(sql, "Gy_Customer");
if (ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "尚未存在客户,请自主维护客户代码!";
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
///
/// 获取最大基础资料ID
///参数:string sql。
///返回值:object。
///
[Route("Gy_Customer/GetMAXBillID")]
[HttpGet]
public object GetMAXBillID()
{
try
{
ds = oCN.RunProcReturn("select max(hitemid)+1 hitemid from Gy_Customer", "Gy_Customer");
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#region 客户根据分类获取最大客户编码
[Route("Gy_Customer/getMaxNum")]
[HttpGet]
public object getMaxNum(int HCusTypeID, string user, string Organization)
{
try
{
List columnNameList = new List();
//编辑权限
if (!DBUtility.ClsPub.Security_Log_second("Gy_Customer", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无查看权限!";
objJsonResult.data = null;
return objJsonResult;
}
if (HCusTypeID == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有选择具体分类!";
objJsonResult.data = null;
return objJsonResult;
}
else
{
ds = oCN.RunProcReturn(@"select * from h_v_Gy_CustomerList where 组织名称='" + Organization + "'" + "and HCusTypeID = '" + HCusTypeID + "'" + " order by 客户代码 desc", "h_v_Gy_CustomerList");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "没有找到该分类的客户编码请使用普通新增";
objJsonResult.data = null;
return objJsonResult;
}
string HNumber = ds.Tables[0].Rows[0]["客户代码"].ToString();
// 使用正则表达式找到数字部分 (?<=\D)是一个零宽断言,表示前面的字符不是数字 (\d+)$表示后面跟着一连串字符串知道末尾
Match match = Regex.Match(HNumber, @"(\d+)$");
if (match.Success)
{
string prefix = HNumber.Substring(0, HNumber.Length - match.Length); // 提取前缀
int number = int.Parse(match.Value); // 解析数字
// 数字+1
number++;
// 格式化数字,保持原长度
string formattedNumber = number.ToString().PadLeft(match.Length, '0');
// 重新组合字符串
string result = prefix + formattedNumber;
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "success";
objJsonResult.data = result;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "此分类客户编码格式有误";
objJsonResult.data = null;
return objJsonResult;
}
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
///
/// 客户列表树形结构
///参数:string sql。
///返回值:object。
///
[Route("Gy_Customer/LoadTree")]
[HttpGet]
public object LoadTree_Json(string sWhere)
{
SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN();
//ds = oCN.RunProcReturn("select * from h_v_IF_GroupList " + sWhere, "h_v_IF_GroupList");
ds = oCN.RunProcReturn("select * from h_v_CustomerLoadTree", "h_v_CustomerLoadTree");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "false!";
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "Sucess!";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
}
///
/// 新增单据-保存按钮
///参数:string sql。
///返回值:object。
///
[Route("Gy_Customer/AddBill")]
[HttpPost]
public object AddBill([FromBody] JObject oMain)
{
try
{
var _value = oMain["oMain"].ToString();
string msg3 = _value.ToString();
string[] sArray = msg3.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string msg1 = sArray[0].ToString();
string msg2 = sArray[1].ToString();
//反序列化
msg1 = "[" + msg1.ToString() + "]";
DAL.ClsGy_Customer_Ctl oDept = new DAL.ClsGy_Customer_Ctl();
DAL.ClsGy_Customer_View oDeptHlp = new DAL.ClsGy_Customer_View();
//编辑权限
if (!DBUtility.ClsPub.Security_Log_second("Gy_Customer_Edit", 1, false, msg2))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无保存权限!";
objJsonResult.data = null;
return objJsonResult;
}
List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg1);
long HItemID = list[0].HItemID;
string HNumber = list[0].HNumber;
string HName = list[0].HName;
string HShortNumber = list[0].HShortNumber;
long HLevel = list[0].HLevel;
string HEndFlag = list[0].HEndFlag;
long HParentID = list[0].HParentID;
string HRemark = list[0].HRemark;
string HStopflag = list[0].HStopFlag;
string HHelpCode = list[0].HHelpCode;
string HShortName = list[0].HShortName;
string HAddress = list[0].HAddress;
string HLinkMan = list[0].HLinkMan;
string HLinkPhone = list[0].HLinkPhone;
string HMobilePhone = list[0].HMobilePhone;
string HFax = list[0].HFax;
string HPostalCode = list[0].HPostalCode;
string HEmail = list[0].HEmail;
string HBank = list[0].HBank;
string HBankAccount = list[0].HBankAccount;
string HTaxNum = list[0].HTaxNum;
double HTaxRate = list[0].HTaxRate;
string HCountry = list[0].HCountry;
string HCorMan = list[0].HCorMan;
string HEnglishName = list[0].HEnglishName;
string HEnglishAddress = list[0].HEnglishAddress;
long HCurID = list[0].HCurID;
long HSSID = list[0].HSSID;
long HAreaID = list[0].HAreaID;
string HCusStatus = list[0].HCusStatus;
long HCusTypeID = list[0].HCusTypeID;
string HUseFlag = list[0].HUseFlag;
long HCreditDate = list[0].HCreditDate;
long HCreditRatingDate = list[0].HCreditRatingDate;
long HMaxCredRatingDate = list[0].HMaxCreditRatingDate;
double HMonthUseQty = list[0].HMonthUseQty;
double HForecastCreditRating = list[0].HForecastCreditRating;
long HCreditLevelID = list[0].HCreditLevelID;
double HCountAccrualRating = list[0].HCountAccrualRating;
double HSubsidyAccrualRating = list[0].HSubsidyAccrualRating;
double HCreditRating = list[0].HCreditRating;
double HMaxCreditRating = list[0].HMaxCreditRating;
long HEmpID = list[0].HEmpID;
long HERPItemID = list[0].HERPItemID;
DateTime HMakeTime = list[0].HMakeTime;
long HCreateOrgID = list[0].HCREATEORGID;
long HUseOrgID = list[0].HUSEORGID;
string HMateOutEmp = list[0].HMateOutEmp;
//DateTime HDeleteDate = list[0].HDeleteDate;
if (!DBUtility.ClsPub.AllowNumber(HNumber))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "代码中不能出现连续‘.’并且首位末位不能为‘.’!";
objJsonResult.data = null;
return objJsonResult;
}
//若MAINDI重复则重新获取
oCN.BeginTran();
//主表
oCN.RunProc("Insert into Gy_Customer " +
" (HNumber,HName,HHelpCode,HShortNumber,HParentID" +
",HLevel,HEndFlag,HStopflag,HRemark" +
",HShortName,HAddress,HLinkMan,HLinkPhone,HMobilePhone" +
",HFax,HPostalCode,HEmail,HBank,HBankAccount" +
",HTaxNum,HTaxRate,HCountry,HCorMan,HEnglishName" +
",HEnglishAddress,HCurID,HSSID,HAreaID,HCusStatus" +
",HEmpID,HCreditDate,HCreditRatingDate,HMaxCreditRatingDate" +
",HMonthUseQty,HForecastCreditRating,HCreditLevelID,HCountAccrualRating" +
",HSubsidyAccrualRating,HCreditRating,HMaxCreditRating" +
",HCusTypeID,HCREATEORGID,HUSEORGID,HMateOutEmp) " +
" Values('" + HNumber + "','" + HName + "','" + HHelpCode + "','" + HShortNumber + "'," + HParentID +
", " + HLevel + ",1,'" + HStopflag + "','" + HRemark + "'" +
",'" + HShortName + "','" + HAddress + "','" + HLinkMan + "','" + HLinkPhone + "','" + HMobilePhone + "'" +
",'" + HFax + "','" + HPostalCode + "','" + HEmail + "','" + HBank + "','" + HBankAccount + "'" +
",'" + HTaxNum + "'," + HTaxRate + ",'" + HCountry + "','" + HCorMan + "','" + HEnglishName + "'" +
",'" + HEnglishAddress + "'," + HCurID + "," + HSSID + "," + HAreaID + ",'" + HCusStatus + "'" +
"," + HEmpID + "," + HCreditDate + "," + HCreditRatingDate + "," + HMaxCredRatingDate +
"," + HMonthUseQty + "," + HForecastCreditRating + "," + HCreditLevelID + "," + HCountAccrualRating +
"," + HSubsidyAccrualRating + "," + HCreditRating + "," + HMaxCreditRating +
", " + HCusTypeID + ","+ HCreateOrgID + ","+ HUseOrgID + ",'"+ HMateOutEmp + "')");
//修改上级为非末级代码
oCN.RunProc("Update Gy_Customer set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
//保存后控制
string sql = "select * from Gy_Customer where HNumber = '" + HNumber + "' and HName = '" + HName + "' and HUSEORGID = " + HUseOrgID;
ds = oCN.RunProcReturn(sql, "Gy_Customer");
HItemID = Int64.Parse(ds.Tables[0].Rows[0]["HItemID"].ToString());
ds = oCN.RunProcReturn("exec h_p_Gy_Customer_AfterSaveCtrl " + HItemID, "h_p_Gy_Customer_AfterSaveCtrl");
if (ds.Tables[0].Rows[0]["HBack"].ToString() == "1")
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + ds.Tables[0].Rows[0]["HBackRemark"].ToString();
objJsonResult.data = null;
return objJsonResult;
}
oCN.Commit();
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "新增单据成功!";
//objJsonResult.data = null;
return objJsonResult;
}
catch (Exception e)
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.Message;
objJsonResult.data = null;
return objJsonResult;
}
}
[Route("Gy_Customer/SaveGy_CustomerListApi")]
[HttpPost]
public object SaveGy_CustomerListApi([FromBody] JObject oMain)
{
try
{
var model = oMain["model"].ToString();
LogService.Write("客户:" + model);
var custLocationModel = oMain["model"]["HCustLocationEntry"].ToString();
var custContactModel = oMain["model"]["HCustContactEntry"].ToString();
//反序列化
model = "[" + model + "]";
List lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject>(model);
List custLocationls = Newtonsoft.Json.JsonConvert.DeserializeObject>(custLocationModel);
List custContactls = Newtonsoft.Json.JsonConvert.DeserializeObject>(custContactModel);
string sql = string.Empty;
oCN.BeginTran();
sql = $"delete gy_Customer where HItemID = {lsmain[0].HItemID}";
oCN.RunProc(sql);
sql = "set identity_insert gy_Customer on";
oCN.RunProc(sql);
LogService.Write("客户:" + "Insert into Gy_Customer " +
" (HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
",HLevel,HEndFlag,HStopflag,HRemark" +
",HShortName,HAddress,HLinkMan,HLinkPhone,HMobilePhone" +
",HFax,HPostalCode,HEmail,HBank,HBankAccount" +
",HTaxNum,HTaxRate,HCountry,HCorMan,HEnglishName" +
",HEnglishAddress,HCurID,HSSID,HAreaID,HCusStatus" +
",HEmpID,HCreditDate,HCreditRatingDate,HMaxCreditRatingDate" +
",HMonthUseQty,HForecastCreditRating,HCreditLevelID,HCountAccrualRating" +
",HSubsidyAccrualRating,HCreditRating,HMaxCreditRating" +
",HCusTypeID) " +
" Values('" + lsmain[0].HItemID + "','" + lsmain[0].HNumber + "','" + lsmain[0].HName + "','" + lsmain[0].HHelpCode + "','" + lsmain[0].HShortNumber + "'," + lsmain[0].HParentID +
", " + lsmain[0].HLevel + ",0,'" + lsmain[0].HStopFlag + "','" + lsmain[0].HRemark + "'" +
",'" + lsmain[0].HShortName + "','" + lsmain[0].HAddress + "','" + lsmain[0].HLinkMan + "','" + lsmain[0].HLinkPhone + "','" + lsmain[0].HMobilePhone + "'" +
",'" + lsmain[0].HFax + "','" + lsmain[0].HPostalCode + "','" + lsmain[0].HEmail + "','" + lsmain[0].HBank + "','" + lsmain[0].HBankAccount + "'" +
",'" + lsmain[0].HTaxNum + "'," + lsmain[0].HTaxRate + ",'" + lsmain[0].HCountry + "','" + lsmain[0].HCorMan + "','" + lsmain[0].HEnglishName + "'" +
",'" + lsmain[0].HEnglishAddress + "'," + lsmain[0].HCurID + "," + lsmain[0].HSSID + "," + lsmain[0].HAreaID + ",'" + lsmain[0].HCusStatus + "'" +
"," + lsmain[0].HEmpID + "," + lsmain[0].HCreditDate + "," + lsmain[0].HCreditRatingDate + "," + lsmain[0].HMaxCreditRatingDate +
"," + lsmain[0].HMonthUseQty + "," + lsmain[0].HForecastCreditRating + "," + lsmain[0].HCreditLevelID + "," + lsmain[0].HCountAccrualRating +
"," + lsmain[0].HSubsidyAccrualRating + "," + lsmain[0].HCreditRating + "," + lsmain[0].HMaxCreditRating +
", " + lsmain[0].HCusTypeID + ")");
//主表_客户
oCN.RunProc("Insert into Gy_Customer " +
" (HItemID,HNumber,HName,HHelpCode,HShortNumber,HParentID" +
",HLevel,HEndFlag,HStopflag,HRemark" +
",HShortName,HAddress,HLinkMan,HLinkPhone,HMobilePhone" +
",HFax,HPostalCode,HEmail,HBank,HBankAccount" +
",HTaxNum,HTaxRate,HCountry,HCorMan,HEnglishName" +
",HEnglishAddress,HCurID,HSSID,HAreaID,HCusStatus" +
",HEmpID,HCreditDate,HCreditRatingDate,HMaxCreditRatingDate" +
",HMonthUseQty,HForecastCreditRating,HCreditLevelID,HCountAccrualRating" +
",HSubsidyAccrualRating,HCreditRating,HMaxCreditRating" +
",HCusTypeID,HERPItemID) " +
" Values('" + lsmain[0].HItemID + "','" + lsmain[0].HNumber + "','" + lsmain[0].HName + "','" + lsmain[0].HHelpCode + "','" + lsmain[0].HShortNumber + "'," + lsmain[0].HParentID +
", " + lsmain[0].HLevel + ",0,'" + lsmain[0].HStopFlag + "','" + lsmain[0].HRemark + "'" +
",'" + lsmain[0].HShortName + "','" + lsmain[0].HAddress + "','" + lsmain[0].HLinkMan + "','" + lsmain[0].HLinkPhone + "','" + lsmain[0].HMobilePhone + "'" +
",'" + lsmain[0].HFax + "','" + lsmain[0].HPostalCode + "','" + lsmain[0].HEmail + "','" + lsmain[0].HBank + "','" + lsmain[0].HBankAccount + "'" +
",'" + lsmain[0].HTaxNum + "'," + lsmain[0].HTaxRate + ",'" + lsmain[0].HCountry + "','" + lsmain[0].HCorMan + "','" + lsmain[0].HEnglishName + "'" +
",'" + lsmain[0].HEnglishAddress + "'," + lsmain[0].HCurID + "," + lsmain[0].HSSID + "," + lsmain[0].HAreaID + ",'" + lsmain[0].HCusStatus + "'" +
"," + lsmain[0].HEmpID + "," + lsmain[0].HCreditDate + "," + lsmain[0].HCreditRatingDate + "," + lsmain[0].HMaxCreditRatingDate +
"," + lsmain[0].HMonthUseQty + "," + lsmain[0].HForecastCreditRating + "," + lsmain[0].HCreditLevelID + "," + lsmain[0].HCountAccrualRating +
"," + lsmain[0].HSubsidyAccrualRating + "," + lsmain[0].HCreditRating + "," + lsmain[0].HMaxCreditRating +
", " + lsmain[0].HCusTypeID + "," + lsmain[0].HItemID + ")");
sql = "set identity_insert gy_Customer off";
oCN.RunProc(sql);
//客户_交货地点
sql = $"delete Gy_CustLocation where HItemID = {lsmain[0].HItemID}";
oCN.RunProc(sql);
sql = "set identity_insert Gy_CustLocation on";
oCN.RunProc(sql);
foreach (var item in custLocationls)
{
sql = $@"insert into Gy_CustLocation(HItemID,HEntryID,HNumber,HName ,HShortNumber,HParentID ,HLevel
,HEndFlag,HStopflag,HRemark ,HHelpCode ,HUseFlag
,HMakeTime ,HMakeEmp ,HCheckEmp ,HCheckTime ,HModifyEmp
,HModifyTime ,HStopEmp ,HStopTime ,HUSEORGID,HCREATEORGID)
values({item.HItemID},{item.HENTRYID},'{item.HNumber}','{item.HName}','{item.HShortNumber}',{item.HParentID},{item.HLevel}
,{Convert.ToString(item.HEndFlag ? 1 : 0)},{Convert.ToString(item.HStopflag ? 1 : 0) },'{item.HRemark}','{item.HHelpCode}','{item.HUseFlag}'
,'{item.HMakeTime}','{item.HMakeEmp}','{item.HCheckEmp}','{item.HCheckTime}','{item.HModifyEmp}'
,'{item.HModifyTime}','{item.HStopEmp}',null,{item.HUSEORGID},{item.HCREATEORGID})";
oCN.RunProc(sql);
}
sql = "set identity_insert Gy_CustLocation off";
oCN.RunProc(sql);
//客户_收货方联系人
sql = $"delete Gy_COMMONCONTACT where HCUSTID = {lsmain[0].HItemID}";
oCN.RunProc(sql);
sql = "set identity_insert Gy_COMMONCONTACT on";
oCN.RunProc(sql);
foreach (var item in custContactls)
{
sql = $@"insert into Gy_COMMONCONTACT(HItemID,HCUSTID,HNumber,HName,HShortNumber,HParentID,HLevel,HEndFlag,HStopflag,
HRemark,HHelpCode,HUseFlag,HMakeTime,HMakeEmp,HCheckEmp,HCheckTime,HModifyEmp,HModifyTime,HStopEmp,HStopTime,
HUSEORGID,HCREATEORGID)
values({item.HItemID},{item.HCUSTID},'{item.HNumber}','{item.HName}','{item.HShortNumber}',{item.HParentID},{item.HLevel}
,{Convert.ToString(item.HEndFlag ? 1 : 0)},{Convert.ToString(item.HStopflag ? 1 : 0) },'{item.HRemark}','{item.HHelpCode}','{item.HUseFlag}'
,'{item.HMakeTime}','{item.HMakeEmp}','{item.HCheckEmp}','{item.HCheckTime}','{item.HModifyEmp}'
,'{item.HModifyTime}','{item.HStopEmp}','{item.HStopTime}',{item.HUSEORGID},{item.HCREATEORGID})";
oCN.RunProc(sql);
}
sql = "set identity_insert Gy_COMMONCONTACT off";
oCN.RunProc(sql);
oCN.Commit();
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "新增基础资料成功!";
//objJsonResult.data = null;
return objJsonResult;
}
catch (Exception e)
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.Message;
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 修改单据-保存按钮
///参数:string sql。
///返回值:object。
///
[Route("Gy_Customer/AddBill1")]
[HttpPost]
public object AddBill1([FromBody] JObject oMain)
{
try
{
DAL.ClsGy_Customer_Ctl oDept = new DAL.ClsGy_Customer_Ctl();
DAL.ClsGy_Customer_View oDeptHlp = new DAL.ClsGy_Customer_View();
var _value = oMain["oMain"].ToString();
string msg1 = _value.ToString();
string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string msg2 = sArray[0].ToString();//表单
string msg3 = sArray[1].ToString();//id
string msg4 = sArray[2].ToString();//当前用户
string msg5 = sArray[3].ToString();//权限模块代码
//反序列化
msg2 = "[" + msg2.ToString() + "]";
List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2);
long HItemID = int.Parse(msg3);
string HNumber = list[0].HNumber;
string HName = list[0].HName;
string HShortNumber = list[0].HShortNumber;
long HLevel = list[0].HLevel;
string HEndFlag = list[0].HEndFlag;
long HParentID = list[0].HParentID;
string HRemark = list[0].HRemark;
string HStopflag = list[0].HStopFlag;
string HHelpCode = list[0].HHelpCode;
string HShortName = list[0].HShortName;
string HAddress = list[0].HAddress;
string HLinkMan = list[0].HLinkMan;
string HLinkPhone = list[0].HLinkPhone;
string HMobilePhone = list[0].HMobilePhone;
string HFax = list[0].HFax;
string HPostalCode = list[0].HPostalCode;
string HEmail = list[0].HEmail;
string HBank = list[0].HBank;
string HBankAccount = list[0].HBankAccount;
string HTaxNum = list[0].HTaxNum;
double HTaxRate = list[0].HTaxRate;
string HCountry = list[0].HCountry;
string HCorMan = list[0].HCorMan;
string HEnglishName = list[0].HEnglishName;
string HEnglishAddress = list[0].HEnglishAddress;
long HCurID = list[0].HCurID;
long HSSID = list[0].HSSID;
long HAreaID = list[0].HAreaID;
string HCusStatus = list[0].HCusStatus;
long HCusTypeID = list[0].HCusTypeID;
string HUseFlag = list[0].HUseFlag;
long HCreditDate = list[0].HCreditDate;
long HCreditRatingDate = list[0].HCreditRatingDate;
long HMaxCredRatingDate = list[0].HMaxCreditRatingDate;
double HMonthUseQty = list[0].HMonthUseQty;
double HForecastCreditRating = list[0].HForecastCreditRating;
long HCreditLevelID = list[0].HCreditLevelID;
double HCountAccrualRating = list[0].HCountAccrualRating;
double HSubsidyAccrualRating = list[0].HSubsidyAccrualRating;
double HCreditRating = list[0].HCreditRating;
double HMaxCreditRating = list[0].HMaxCreditRating;
long HEmpID = list[0].HEmpID;
long HERPItemID = list[0].HERPItemID;
DateTime HMakeTime = list[0].HMakeTime;
long HCreateOrgID = list[0].HCREATEORGID;
long HUseOrgID = list[0].HUSEORGID;
string HMateOutEmp = list[0].HMateOutEmp;
//判断权限
if (!ClsPub.Security_Log(msg5, 1, false, msg4))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有找到该功能模块!";
objJsonResult.data = null;
return objJsonResult;
}
if (!DBUtility.ClsPub.AllowNumber(HNumber))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "代码中不能出现连续‘.’并且首位末位不能为‘.’!";
objJsonResult.data = null;
return objJsonResult;
}
//若MAINDI重复则重新获取
oCN.BeginTran();
//主表
oCN.RunProc("Update Gy_Customer set " +
" HNumber='" + HNumber + "'" +
",HName='" + HName + "'" +
",HShortNumber='" + HShortNumber + "'" +
",HLevel ='" + HLevel + "'" +
",HEndFlag ='" + HEndFlag + "'" +
",HParentID='" + HParentID + "'" +
",HStopflag ='" + HStopflag + "'" +
",HHelpCode ='" + HHelpCode + "'" +
",HShortName ='" + HShortName + "'" +
",HAddress ='" + HAddress + "'" +
",HLinkMan ='" + HLinkMan + "'" +
",HLinkPhone ='" + HLinkPhone + "'" +
",HMobilePhone ='" + HMobilePhone + "'" +
",HFax ='" + HFax + "'" +
",HPostalCode ='" + HPostalCode + "'" +
",HEmail ='" + HEmail + "'" +
",HBank ='" + HBank + "'" +
",HBankAccount ='" + HBankAccount + "'" +
",HTaxNum ='" + HTaxNum + "'" +
",HTaxRate ='" + HTaxRate + "'" +
",HCountry ='" + HCountry + "'" +
",HEnglishName ='" + HEnglishName + "'" +
",HCorMan ='" + HCorMan + "'" +
",HEnglishAddress ='" + HEnglishAddress + "'" +
",HCurID ='" + HCurID + "'" +
",HSSID ='" + HSSID + "'" +
",HAreaID ='" + HAreaID + "'" +
",HCusStatus ='" + HCusStatus + "'" +
",HCusTypeID ='" + HCusTypeID + "'" +
",HMateOutEmp='"+ HMateOutEmp+
"',HRemark= '" + HRemark + "' Where HItemID=" + HItemID, ref DBUtility.ClsPub.sExeReturnInfo);
//修改子项目代码
//oCN.RunProc("exec h_p_Gy_UpdateNumber Gy_Department,'" + HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo);
//将上级 为非末级
oCN.RunProc("Update Gy_Customer set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
//
//保存后控制
ds = oCN.RunProcReturn("exec h_p_Gy_Customer_AfterSaveCtrl " + HItemID, "h_p_Gy_Customer_AfterSaveCtrl");
if (ds.Tables[0].Rows[0]["HBack"].ToString() == "1")
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + ds.Tables[0].Rows[0]["HBackRemark"].ToString();
objJsonResult.data = null;
return objJsonResult;
}
oCN.Commit();
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "修改单据成功!";
//objJsonResult.data = null;
return objJsonResult;
}
catch (Exception e)
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.Message;
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 客户列表删除按钮
///参数:string sql。
///返回值:object。
///
[Route("Gy_Customer/Delete_Json")]
[HttpGet]
public object Delete_Json(long HItemID, string User, string ModRightNameDelete)
{
DAL.ClsGy_Customer_Ctl oDept = new DAL.ClsGy_Customer_Ctl();
DAL.ClsGy_Customer_View oDeptHlp = new DAL.ClsGy_Customer_View();
try
{
if (!DBUtility.ClsPub.Security_Log(ModRightNameDelete, 1, false, User))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有删除权限";
objJsonResult.data = null;
return objJsonResult;
}
if (oDeptHlp.GetInfoByID(HItemID))
{
if (oDept.HavChildCodes(HItemID))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "此项目存在子项目,不能删除!";
objJsonResult.data = null;
return objJsonResult;
}
//删除前判断是否 已使用 20141020
if (oDeptHlp.omodel.HUseFlag != "未使用")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "此项目已使用或者未检测,不能删除!请重新检测再删除!";
objJsonResult.data = null;
return objJsonResult;
}
//
try
{
if (oDept.DeleteByID(HItemID))
{
//写入日志
ClsPub.Add_Log("", "删除项目,代码:" + oDeptHlp.omodel.HNumber + ",名称:" + oDeptHlp.omodel.HName, ClsPub.CurUserName);
//更新上级为 末级
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "删除成功";
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "删除失败";
objJsonResult.data = null;
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "删除失败,该客户存在关联的销售订单、销售出库单、生产订单,或程序错误。";
objJsonResult.data = null;
return objJsonResult;
}
}
//ds = oCN.RunProcReturn("delete from Gy_Department where HItemID = " + HItemID, "Gy_Department");
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "删除成功";
objJsonResult.data = null;
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#region 客户审核、反审核
///
///
///
/// 单据ID
/// 审核(0),反审核(1)
/// 审核人
///
[Route("Gy_Customer/AuditGy_Customer")]
[HttpGet]
public object AuditGy_Customer(int HInterID, int IsAudit, string CurUserName)
{
try
{
//审核权限
if (!DBUtility.ClsPub.Security_Log_second("Gy_Customer_Check", 1, false, CurUserName))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "审核失败!无权限!";
objJsonResult.data = null;
return objJsonResult;
}
var ds = oCN.RunProcReturn("select * from Gy_Customer where HItemID=" + HInterID, "Gy_Customer");
if (ds.Tables[0].Rows.Count > 0)
{
if (IsAudit == 0) //审核判断
{
if (ds.Tables[0].Rows[0]["HCheckEmp"].ToString() != "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据已审核!不能再次审核!";
objJsonResult.data = null;
return objJsonResult;
}
}
if (IsAudit == 1) //反审核判断
{
if (ds.Tables[0].Rows[0]["HCheckEmp"].ToString() == "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据未审核!不需要反审核!";
objJsonResult.data = null;
return objJsonResult;
}
}
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据不存在!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.BeginTran();
if (IsAudit == 0) //审核判断
{
oCN.RunProc("update Gy_Customer set HCheckEmp='" + CurUserName + "',HCheckTime=getdate() where HItemID=" + HInterID);
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "审核成功";
objJsonResult.data = null;
}
if (IsAudit == 1) //反审核判断
{
oCN.RunProc("update Gy_Customer set HCheckEmp='',HCheckTime=null where HItemID=" + HInterID);
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "反审核成功";
objJsonResult.data = null;
}
oCN.Commit();
return objJsonResult;
}
catch (Exception e)
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 客户禁用、反禁用
///
///
///
/// 单据ID
/// 禁用(0),反禁用(1)
/// 审核人
///
[Route("Gy_Customer/StopGy_Customer")]
[HttpGet]
public object StopGy_Customer(int HInterID, int IsStop, string CurUserName)
{
try
{
//审核权限
if (!DBUtility.ClsPub.Security_Log_second("Gy_Customer_Stop", 1, false, CurUserName))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "禁用失败!无权限!";
objJsonResult.data = null;
return objJsonResult;
}
var ds = oCN.RunProcReturn("select * from Gy_Customer where HItemID=" + HInterID, "Gy_Material");
if (ds.Tables[0].Rows.Count > 0)
{
if (IsStop == 0) //禁用判断
{
if (ds.Tables[0].Rows[0]["HStopEmp"].ToString() != "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据已禁用!不能再次禁用!";
objJsonResult.data = null;
return objJsonResult;
}
}
if (IsStop == 1) //反禁用判断
{
if (ds.Tables[0].Rows[0]["HStopEmp"].ToString() == "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据未禁用!不需要反禁用!";
objJsonResult.data = null;
return objJsonResult;
}
}
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据不存在!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.BeginTran();
if (IsStop == 0) //禁用判断
{
oCN.RunProc("update Gy_Customer set HStopEmp='" + CurUserName + "',HStopTime=getdate(),HStopflag=1 where HItemID=" + HInterID);
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "禁用成功";
objJsonResult.data = null;
}
if (IsStop == 1) //反禁用判断
{
oCN.RunProc("update Gy_Customer set HStopEmp='',HStopTime=null,HStopflag=0 where HItemID=" + HInterID);
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "反禁用成功";
objJsonResult.data = null;
}
oCN.Commit();
return objJsonResult;
}
catch (Exception e)
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "禁用失败或者反禁用失败!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region [同步基础资料]
[Route("Gy_Customer/Gy_CustomerViewApi")]
[HttpGet]
public json Gy_CustomerViewApi(string Number, string Type)
{
string sql = string.Empty;
string sReturn = "";
if (oSystemParameter.ShowBill(ref sReturn) == true)
{
//系统参数是否为私有云模式,N为公有云模式,Y为私有云模式
if (oSystemParameter.omodel.WMS_CloudMode == "Y")
{
#region [私有云模式,直接调用数据库存储过程更新]
try
{
oCN.BeginTran();
SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPBasicInfoToLocal '" + Number + "','" + Type + "'", "h_p_WMS_ERPBasicInfoToLocal");
if (DS == null)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "基础资料同步失败";
objJsonResult.data = null;
return objJsonResult;
}
else
{
if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "ERP中不存在该代码";
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "基础资料同步成功";
objJsonResult.data = null;
return objJsonResult;
}
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
#endregion
}
else
{
#region [公有云模式,调用WEBAPI的方式进行更新]
var json = new
{
CreateOrgId = 0,
Number = Number,
Id = ""
};
#region [金蝶部分]
//登录金蝶
var loginRet = InvokeHelper.Login();
var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value();
//判断是否登录成功
if (isSuccess < 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = loginRet;
objJsonResult.data = null;
return objJsonResult;
}
//查看 获取数据
var _result = InvokeHelper.View("BD_Customer", JsonConvert.SerializeObject(json));
var _saveObj = JObject.Parse(_result);
//判断数据是否获取成功
if (_saveObj["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "金蝶客户同步失败jsonRoot:" + _result;
objJsonResult.data = null;
return objJsonResult;
}
#endregion
//获取数据
DataSet Ds;
Ds = oCN.RunProcReturn("select * from Gy_Customer where HNumber = '" + Number + "'", "Gy_Customer");
if (Ds.Tables[0].Rows.Count != 0 && ClsPub.isLong(Ds.Tables[0].Rows[0]["HItemID"].ToString()) != 0)
{
}
#region [表数据赋值]
var jsonData = new
{
HItemID = _saveObj["Result"]["Result"]["Id"],
HERPItemID = _saveObj["Result"]["Result"]["Id"],
HNumber = _saveObj["Result"]["Result"]["Number"],
HName = _saveObj["Result"]["Result"]["Name"][0]["Value"],
HShortNumber = _saveObj["Result"]["Result"]["Number"],
HParentID = 0,
HLevel = 1,
HEndFlag = 1,
HStopflag = _saveObj["Result"]["Result"]["ForbidStatus"].ToString() == "A" ? 0 : 1,
HRemark = "CLD-ERP导入",
HUseFlag = "已使用",
HMakeTime = _saveObj["Result"]["Result"]["CreateDate"],
HCREATEORGID = _saveObj["Result"]["Result"]["CreateOrgId_Id"],
HUSEORGID = _saveObj["Result"]["Result"]["UseOrgId_Id"],
};
#endregion
// 删除主表对应数据
sql = $"delete from Gy_Customer where HItemID = " + jsonData.HItemID + " and HNumber = '" + Number + "'";
oCN.RunProc(sql);
sql = "set identity_insert Gy_Customer on";
oCN.RunProc(sql);
//插入表
sql = $@"
insert into Gy_Customer
(HItemID,HERPItemID,HNumber,HName,HShortNumber,HParentID
,HLevel,HEndFlag,HStopflag,HRemark,HUseFlag,HMakeTime,HCREATEORGID,HUSEORGID
)
values
({jsonData.HItemID},{jsonData.HItemID},'{jsonData.HNumber}','{jsonData.HName}',
'{jsonData.HShortNumber}',{jsonData.HParentID},{jsonData.HLevel},{jsonData.HEndFlag},{jsonData.HStopflag},'{jsonData.HRemark}','{jsonData.HUseFlag}','{jsonData.HMakeTime}',{jsonData.HCREATEORGID},{jsonData.HUSEORGID})";
oCN.RunProc(sql);
sql = "set identity_insert Gy_Customer off";
oCN.RunProc(sql);
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "客户同步成功!";
objJsonResult.data = null;
return objJsonResult;
#endregion
}
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "基础资料读取失败!";
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 客户分类 树形图(根据代码展开树状图)
[Route("Gy_BadReason/Gy_CusrTypeTreeList")]
[HttpGet]
public object Gy_CusrTypeTreeList()
{
try
{
string sql1 = string.Format("select hitemid,hnumber,hname from Gy_MaterType order by hnumber");
ds = oCN.RunProcReturn(sql1, "Gy_MaterType");
List treeModels = new List();
TreeModel first = new TreeModel();
first.id = "0";
first.title = "客户分类设置";
treeModels.Add(first);
foreach (DataRow row in ds.Tables[0].Rows)
{
var strLen = row["hnumber"].ToString().Split('.');
if (strLen.Length == 1)
{
TreeModel tree = new TreeModel();
tree.id = row["hitemid"].ToString();
tree.title = row["hname"].ToString();
treeModels[0].children.Add(tree);
}
}
digui(ds.Tables[0], treeModels[0].children, 2);
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "Sucess!";
objJsonResult.data = Newtonsoft.Json.JsonConvert.SerializeObject(treeModels);
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 根据父id和等级获得树状图递归
[Route("Gy_BadReason/Gy_CusTypeTreeListByLevel")]
[HttpGet]
public object Gy_CusTypeTreeListByLevel()
{
try
{
string sql1 = string.Format("select hitemid,hnumber,hname,hparentid,hlevel from Gy_CusType order by hnumber");
ds = oCN.RunProcReturn(sql1, "Gy_CusType");
List treeModels = new List();
TreeModel first = new TreeModel();
first.id = "0";
first.title = "客户分类设置";
treeModels.Add(first);
foreach (DataRow row in ds.Tables[0].Rows)
{
var HLevel = (int)row["hlevel"];
if (HLevel == 1)
{
TreeModel tree = new TreeModel();
tree.id = row["hitemid"].ToString();
tree.title = row["hname"].ToString();
treeModels[0].children.Add(tree);
}
}
getTreeByLevel(ds.Tables[0], treeModels[0].children, 2);
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "Sucess!";
objJsonResult.data = Newtonsoft.Json.JsonConvert.SerializeObject(treeModels);
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#region 物料分类 树形图(根据代码展开树状图)
public void getTreeByLevel(DataTable dt, List tree, int num)
{
for (int m = 0; m < tree.Count; m++)
{
tree[m].children = new List();
for (int i = 0; i < dt.Rows.Count; i++)//第一次循环,得到所有根节点的子集
{
var HLevel = (int)dt.Rows[i]["hlevel"];
var HParentID = dt.Rows[i]["hparentid"].ToString();
if (HLevel == num && HParentID == tree[m].id)
{
TreeModel tbjson = new TreeModel();
tbjson.id = dt.Rows[i]["hitemid"].ToString();
tbjson.title = dt.Rows[i]["hname"].ToString();
tree[m].children.Add(tbjson);
}
}
for (int i = 0; i < tree[m].children.Count; i++)
{
getTreeByLevel(dt, tree[m].children, num + 1);//再次用子集去循环,拿出子集的子集
}
}
}
public class TreeModel
{
public string id { get; set; }
public string title { get; set; }
public List children = new List();
}
#endregion
///
/// 递归函数
///
public void digui(DataTable dt, List tree, int num)
{
for (int m = 0; m < tree.Count; m++)
{
tree[m].children = new List();
for (int i = 0; i < dt.Rows.Count; i++)//第一次循环,得到所有根节点的子集
{
var strLen = dt.Rows[i]["hnumber"].ToString().Split('.');
if (strLen.Length == num && dt.Rows[i]["hnumber"].ToString().Contains(tree[m].id + "."))
{
TreeModel tbjson = new TreeModel();
tbjson.id = dt.Rows[i]["hitemid"].ToString();
tbjson.title = dt.Rows[i]["hname"].ToString();
tree[m].children.Add(tbjson);
}
}
var strLens = tree[m].id.Split('.');
for (int i = 0; i < tree[m].children.Count; i++)
{
digui(dt, tree[m].children, strLens.Length + 2);//再次用子集去循环,拿出子集的子集
}
}
}
}
}