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; using SyntacticSugar.constant; using System.Web; using WebAPI.Controllers.SCGL.日计划管理; using System.IO; using SyntacticSugar.constant; namespace WebAPI.Controllers { public class Gy_SupplierController : 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_Supplier/list")] [HttpGet] public object list(string sWhere,string user,string Organization) { try { List columnNameList = new List(); //编辑权限 if (!DBUtility.ClsPub.Security_Log_second("Gy_Supplier", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无查看权限!"; objJsonResult.data = null; return objJsonResult; } string sql1 = string.Format(@"select * from h_v_Gy_SupplierList where 组织名称='" + Organization + "'"); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn(sql1 + sWhere + " order by 供应商代码", "h_v_Gy_SupplierList"); } else { string sql = sql1 + sWhere + " order by 供应商代码 "; ds = oCN.RunProcReturn(sql, "h_v_Gy_SupplierList"); } //添加列名 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 供应商分页列表 [Route("Gy_Supplier/page")] [HttpGet] public json Gy_SupplierPage(string sWhere, string user, int page, int size, string Organization) { DataSet ds; json res = new json(); try { List columnNameList = new List(); //判断权限 if (!DBUtility.ClsPub.Security_Log_second("Gy_Supplier", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无查看权限!"; objJsonResult.data = null; return objJsonResult; } sWhere += ("and 组织名称 = '" + Organization + "'"); sWhere = sWhere.Replace("'", "''"); if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("exec h_p_Gy_SupplierList " + page + "," + size + ",''", "h_p_Gy_SupplierList"); } else { ds = oCN.RunProcReturn("exec h_p_Gy_SupplierList " + page + "," + size + ",'" + sWhere + "'", "h_p_Gy_SupplierList"); } //添加列名 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列对象的列名 } res.code = CodeConstant.SUCCEED; res.count = int.Parse(ds.Tables[1].Rows[0]["count"].ToString()); res.Message = "Sucess!"; res.list = columnNameList; res.data = ds.Tables[0]; return res; } catch (Exception e) { res.code = CodeConstant.FAIL; res.count = CountConstant.FAIL; res.Message = "Exception!" + e.ToString(); res.data = null; return res; } } #endregion /// /// 获取最大基础资料ID ///参数:string sql。 ///返回值:object。 /// [Route("Gy_Supplier/GetMAXBillID")] [HttpGet] public object GetMAXBillID() { try { ds = oCN.RunProcReturn("select max(hitemid)+1 hitemid from Gy_Supplier", "Gy_Supplier"); 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_Supplier/getMaxNum")] [HttpGet] public object getMaxNum(int HSupTypeID, string user, string Organization) { try { List columnNameList = new List(); //编辑权限 if (!DBUtility.ClsPub.Security_Log_second("Gy_Supplier", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无查看权限!"; objJsonResult.data = null; return objJsonResult; } if (HSupTypeID == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有选择具体分类!"; objJsonResult.data = null; return objJsonResult; } else { ds = oCN.RunProcReturn(@"select * from h_v_Gy_SupplierList where 组织名称='" + Organization + "'" + "and HSupTypeID = '" + HSupTypeID + "'" + " order by 供应商代码 desc", "h_v_Gy_SupplierList"); 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)(\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_Supplier/xg")] [HttpGet] public object xg(long HInterID) { try { string sql = string.Format(@"select * from h_v_Gy_SupplierEdit where HItemID='" + HInterID + "'"); ds = oCN.RunProcReturn(sql, "h_v_Gy_SupplierEdit"); DataSet cs = oCN.RunProcReturn("select * from Gy_Supplier_PayPlan where HSupID = '"+ HInterID + "'", "Gy_Supplier_PayPlan"); List list = new List(); list.Add(cs); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = ""; objJsonResult.data = ds.Tables[0]; objJsonResult.list = list; 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("Gy_Supplier/AddBill")] [HttpPost] public object AddBill([FromBody] JObject oMain) { try { 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(); //子表数据 //主表反序列化 msg2 = "[" + msg2.ToString() + "]"; DAL.ClsGy_Supplier_Ctl oDept = new DAL.ClsGy_Supplier_Ctl(); DAL.ClsGy_Supplier_View oDeptHlp = new DAL.ClsGy_Supplier_View(); List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); long HItemID = list[0].HInterID; string HNumber = list[0].HNumber; string HShortNumber = list[0].HShortNumber; string HName = list[0].HName; long HParentID = list[0].HParentID; long HLevel = list[0].HLevel; string HEndFlag = list[0].HEnfFlag; 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 HBankAccount = list[0].HMobilePhone; string HFax = list[0].HFax; string HPostalCode = list[0].HPostalCode; string HEmail = list[0].HEmail; string HBank = list[0].HBank; string HMobilePhone = list[0].HMobilePhone; 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 HUseFlag = list[0].HUseFlag; long HERPItemID = list[0].HERPItemID; DateTime HMakeTime = list[0].HMakeTime; long HCreateOrgID = list[0].HCreateOrgID; long HUseOrgID = list[0].HUseOrgID; string HRemark = list[0].HRemark; string HMaterClass = list[0].HMaterClass; long HPSStyleID = list[0].HPSStyleID; long HSupTypeID = list[0].HSupTypeID; 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_Supplier " + "(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,HMaterClass,HUSEORGID,HCREATEORGID,HPSStyleID,HSupTypeID) " + " 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 +" ,'" + HMaterClass + " ','" + HUseOrgID + "' ,'" + HCreateOrgID + "' ,'" + HPSStyleID+ "' ,'" + HSupTypeID + "') "); //修改上级为非末级代码 oCN.RunProc("Update Gy_Supplier set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo); //子表添加 List DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg3); int i = 0; DataSet Cs; Cs = oCN.RunProcReturn("select MAX(HItemID)HItemID from Gy_Supplier", "Gy_Supplier"); string MaxHItemID = Cs.Tables[0].Rows[0]["HItemID"].ToString(); //删除子表操作 防止出错 oCN.RunProc("delete from Gy_Supplier_PayPlan where HSupID='" + MaxHItemID + "'"); foreach (ClsGy_Supplier_PayPlan oSub in DetailColl) { i++; oCN.RunProc($@"Insert into Gy_Supplier_PayPlan (HSupID,HSubID,HPayType,HPayRate,HPayTime,HPayRemark) values({MaxHItemID},{i} ,'{oSub.HPayType}',{oSub.HPayRate},{oSub.HPayTime},'{oSub.HPayRemark}')"); } 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_Supplier/SaveGy_SupplierListApi")] [HttpPost] public object SaveGy_SupplierListApi([FromBody] JObject msg) { try { var _value = msg["model"].ToString(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); //反序列化 _value = "[" + _value.ToString() + "]"; List lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject>(_value); string sql = string.Empty; //保存 oCN.BeginTran(); sql = $"delete from Gy_Supplier where HItemID = {lsmain[0].HItemID}"; oCN.RunProc(sql); sql = "set identity_insert Gy_Supplier on"; oCN.RunProc(sql); oCN.RunProc("Insert Into Gy_Supplier " + "(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,HMaterClass,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].HMaterClass+ "'," + lsmain[0].HItemID + ") "); //修改上级为非末级代码 sql = "set identity_insert Gy_Supplier off"; oCN.RunProc(sql); oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "保存成功!"; objJsonResult.data = 1; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "保存失败!" + e.ToString(); objJsonResult.data = 1; return objJsonResult; } } /// /// 修改单据-保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("Gy_Supplier/AddBill1")] [HttpPost] public object AddBill1([FromBody] JObject oMain) { try { DAL.ClsGy_Supplier_Ctl oDept = new DAL.ClsGy_Supplier_Ctl(); DAL.ClsGy_Supplier_View oDeptHlp = new DAL.ClsGy_Supplier_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(); //子表数据 string msg4 = sArray[2].ToString(); //列表主ID string msg5 = sArray[3].ToString(); //登录人员 string msg6 = sArray[4].ToString(); //权限模块代码 //反序列化 msg2 = "[" + msg2.ToString() + "]"; List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); long HItemID = list[0].HInterID; string HNumber = list[0].HNumber; string HShortNumber = list[0].HShortNumber; string HName = list[0].HName; long HParentID = list[0].HParentID; long HLevel = list[0].HLevel; string HEndFlag = list[0].HEnfFlag; 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 HBankAccount = list[0].HMobilePhone; string HFax = list[0].HFax; string HPostalCode = list[0].HPostalCode; string HEmail = list[0].HEmail; string HBank = list[0].HBank; string HMobilePhone = list[0].HMobilePhone; 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 HUseFlag = list[0].HUseFlag; long HERPItemID = list[0].HERPItemID; DateTime HMakeTime = list[0].HMakeTime; long HCreateOrgID = list[0].HCreateOrgID; long HUseOrgID = list[0].HUseOrgID; string HRemark = list[0].HRemark; string HMaterClass = list[0].HMaterClass; long HPSStyleID = list[0].HPSStyleID; long HSupTypeID = list[0].HSupTypeID; //判断权限 if (!ClsPub.Security_Log(msg6, 1, false, msg5)) { 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_Supplier set " + " HNumber='" + HNumber + "'" + ",HName='" + HName + "'" + ",HShortNumber='" + HShortNumber + "'" + ",HParentID=" + HParentID.ToString() + ",HLevel=" + HLevel.ToString() + ",HStopflag ='" + HStopflag + "'" + ",HRemark= '" + HRemark + "'" + ",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.ToString() + ",HCountry='" + HCountry + "'" + ",HCorMan='" +HCorMan + "'" + ",HEnglishName='" + HEnglishName + "'" + ",HEnglishAddress='" + HEnglishAddress + "'" + ",HCurID=" + HCurID.ToString() + ",HSSID=" + HSSID.ToString() + ",HMaterClass='" + HMaterClass + "',HPSStyleID='"+ HPSStyleID.ToString() + "',HSupTypeID='" + HSupTypeID.ToString() + "',HUSEORGID='" + HUseOrgID.ToString() + "',HCREATEORGID='" + HCreateOrgID.ToString() + "',HAreaID=" + HAreaID.ToString() + "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_Supplier set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo); // //子表添加 List DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg3); int i = 0; //删除子表操作 防止出错 oCN.RunProc("delete from Gy_Supplier_PayPlan where HSupID='" + HItemID + "'"); foreach (ClsGy_Supplier_PayPlan oSub in DetailColl) { i++; oCN.RunProc($@"Insert into Gy_Supplier_PayPlan (HSupID,HSubID,HPayType,HPayRate,HPayTime,HPayRemark) values({HItemID},{i} ,'{oSub.HPayType}',{oSub.HPayRate},{oSub.HPayTime},'{oSub.HPayRemark}')"); } 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; } } /// /// 供应商列表删除 /// /// 删除列的ID /// 当前登录用户 /// /// [Route("Gy_Supplier/Delete_Json")] [HttpGet] public object Delete_Json(long HItemID, string User, string ModRightNameDelete) { DAL.ClsGy_Supplier_Ctl oGroup = new DAL.ClsGy_Supplier_Ctl(); DAL.ClsGy_Supplier_View oGroupHlp = new DAL.ClsGy_Supplier_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 (oGroupHlp.GetInfoByID(HItemID)) { if (oGroup.HavChildCodes(HItemID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此项目存在子项目,不能删除!"; objJsonResult.data = null; return objJsonResult; } //删除前判断是否 已使用 20141020 if (oGroupHlp.omodel.HUseFlag != "未使用") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "此项目已使用或者未检测,不能删除!请重新检测再删除!"; objJsonResult.data = null; return objJsonResult; } oCN.BeginTran(); // if (oGroup.DeleteByID(HItemID)) { //删除子表 oCN.RunProc("delete from Gy_Supplier_PayPlan where HSupID='" + HItemID + "'"); oCN.Commit(); //写入日志 ClsPub.Add_Log("", "删除项目,代码:" + oGroupHlp.omodel.HNumber + ",名称:" + oGroupHlp.omodel.HName, ClsPub.CurUserName); //更新上级为 末级 objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "删除成功"; objJsonResult.data = null; return objJsonResult; } else { oCN.Commit(); 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_Supplier/AuditGy_Supplier")] [HttpGet] public object AuditGy_Material(int HInterID, int IsAudit, string CurUserName) { try { //审核权限 if (!DBUtility.ClsPub.Security_Log_second("Gy_Supplier_Check", 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } var ds = oCN.RunProcReturn("select * from Gy_Supplier where HItemID=" + HInterID, "Gy_Supplier"); 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_Supplier 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_Supplier 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_Supplier/StopGy_Supplier")] [HttpGet] public object StopGy_Supplier(int HInterID, int IsStop, string CurUserName) { try { //审核权限 if (!DBUtility.ClsPub.Security_Log_second("Gy_Supplier_Stop", 1, false, CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "禁用失败!无权限!"; objJsonResult.data = null; return objJsonResult; } var ds = oCN.RunProcReturn("select * from Gy_Supplier where HItemID=" + HInterID, "Gy_Supplier"); 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_Supplier 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_Supplier 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_Supplier/Gy_SupplierViewApi")] [HttpGet] public json Gy_SupplierViewApi(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_Supplier", 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_Supplier where HNumber = '" + Number + "'", "Gy_Supplier"); 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"], HPAYCONDITION = _saveObj["Result"]["Result"]["SupplierFinance"][0]["PayCondition_Id"] }; #endregion // 删除主表对应数据 sql = $"delete from Gy_Supplier where HItemID = " + jsonData.HItemID + " and HNumber = '" + Number + "'"; oCN.RunProc(sql); sql = "set identity_insert Gy_Supplier on"; oCN.RunProc(sql); //插入表 sql = $@" insert into Gy_Supplier (HItemID,HERPItemID,HNumber,HName,HShortNumber,HParentID ,HLevel,HEndFlag,HStopflag,HRemark,HUseFlag,HMakeTime,HCREATEORGID,HUSEORGID ,HPAYCONDITION ) 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},{jsonData.HPAYCONDITION})"; oCN.RunProc(sql); sql = "set identity_insert Gy_Supplier 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 根据父id和等级获得树状图递归 [Route("Gy_BadReason/Gy_SupTypeTreeListByLevel")] [HttpGet] public object Gy_MaterTypeTreeListByLevel() { try { string sql1 = string.Format("select hitemid,hnumber,hname,hparentid,hlevel from Gy_SupType order by hnumber"); ds = oCN.RunProcReturn(sql1, "Gy_SupType"); 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; } } 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);//再次用子集去循环,拿出子集的子集 } } } #endregion #region 物料分类 树形图(根据代码展开树状图) public class TreeModel { public string id { get; set; } public string title { get; set; } public List children = new List(); } /// /// 递归函数 /// 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);//再次用子集去循环,拿出子集的子集 } } } #endregion #region 供应商 文件导入保存 #region 供应商 文件上传 [Route("Gy_Supplier/Gy_Supplier_Excel")] [HttpPost] public object Gy_Supplier_Excel() { try { //获取文件名称 var file = HttpContext.Current.Request.Files[0]; //获取文件物理路径 string ExcelPath = HttpContext.Current.Server.MapPath("~/" + file.FileName); //保存文件 file.SaveAs(ExcelPath); NpoiHelper np = new NpoiHelper(); DataSet ExcelDs = np.ReadExcel(ExcelPath, 1, 1, "0"); //删除文件 File.Delete(ExcelPath); //创建临时表 DataTable tb2 = new DataTable("dt2"); //添加列名 for (int i = 0; i < ExcelDs.Tables[0].Columns.Count; i++) { tb2.Columns.Add(ExcelDs.Tables[0].Rows[0][i].ToString()); } //模板缺少列 但需要从数据库中查询出来显示在页面的字段 tb2.Columns.Add("HOrgID", typeof(Int32));//组织ID tb2.Columns.Add("HCurID", typeof(Int32));//币别ID tb2.Columns.Add("HSSID", typeof(Int32));//结算方式ID tb2.Columns.Add("HAreaID", typeof(Int32));//地区ID //添加数据 for (int i = 1; i < ExcelDs.Tables[0].Rows.Count; i++) { DataRow row = tb2.NewRow(); for (int j = 0; j < ExcelDs.Tables[0].Columns.Count; j++) { row[j] = ExcelDs.Tables[0].Rows[i][j].ToString(); } tb2.Rows.Add(row); } var error = ""; //查询没有的列 if (!tb2.Columns.Contains("组织代码")) error += "没有找到【组织代码】的标题,"; if (!tb2.Columns.Contains("组织名称")) error += "没有找到【组织名称】的标题,"; if (!tb2.Columns.Contains("供应商代码")) error += "没有找到【供应商代码】的标题,"; if (!tb2.Columns.Contains("供应商名称")) error += "没有找到【供应商】的标题,"; if (!tb2.Columns.Contains("简称")) error += "没有找到【简称】的标题,"; if (!tb2.Columns.Contains("币别代码")) error += "没有找到【币别代码】的标题,"; if (!tb2.Columns.Contains("币别")) error += "没有找到【币别】的标题,"; if (!tb2.Columns.Contains("结算方式代码")) error += "没有找到【结算方式代码】的标题,"; if (!tb2.Columns.Contains("结算方式")) error += "没有找到【结算方式】的标题,"; if (!tb2.Columns.Contains("地区代码")) error += "没有找到【地区代码】的标题,"; if (!tb2.Columns.Contains("所属地区")) error += "没有找到【所属地区】的标题,"; if (!tb2.Columns.Contains("地址")) error += "没有找到【地址】的标题,"; if (!tb2.Columns.Contains("电子邮箱")) error += "没有找到【电子邮箱】的标题,"; if (!tb2.Columns.Contains("银行")) error += "没有找到【银行】的标题,"; if (!tb2.Columns.Contains("银行账户")) error += "没有找到【银行账户】的标题,"; if (!tb2.Columns.Contains("税务登记号")) error += "没有找到【税务登记号】的标题,"; if (!tb2.Columns.Contains("邮编")) error += "没有找到【邮编】的标题,"; if (!tb2.Columns.Contains("国家")) error += "没有找到【国家】的标题,"; if (!tb2.Columns.Contains("法人代表")) error += "没有找到【法人代表】的标题,"; if (!tb2.Columns.Contains("英文名称")) error += "没有找到【英文名称】的标题,"; if (!tb2.Columns.Contains("英文地址")) error += "没有找到【英文地址】的标题,"; if (!tb2.Columns.Contains("助记码")) error += "没有找到【助记码】的标题,"; if (!tb2.Columns.Contains("备注")) error += "没有找到【备注】的标题,"; if (error.Length > 0) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = $"Excel模板存在错误,{error}\r\n"; objJsonResult.data = null; return objJsonResult; } for (int i = 0; i <= tb2.Rows.Count - 1; i++) { string HName = ""; string HNum = ""; string HORGNumber = ""; string HORGName = ""; string HCurNumber = ""; string HCurName = ""; string HSSNumber = ""; string HSSName = ""; string HAreaNumber = ""; string HAreaName = ""; HName = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["供应商名称"].ToString()); HNum = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["供应商代码"].ToString()); HORGNumber = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["组织代码"].ToString()); HORGName = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["组织名称"].ToString()); HCurNumber = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["币别代码"].ToString()); HCurName = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["币别"].ToString()); HSSNumber = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["结算方式代码"].ToString()); HSSName = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["结算方式"].ToString()); HAreaNumber = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["地区代码"].ToString()); HAreaName = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["所属地区"].ToString()); //检查物料 int index = i + 1; if (HORGNumber != "") { //查询组织 ds = oCN.RunProcReturn("select * from Xt_ORGANIZATIONS where HNumber='" + HORGNumber + "' and Hname='" + HORGName + "'", "Xt_ORGANIZATIONS"); if (ds.Tables[0].Rows.Count == 0) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "第" + index + "行,组织不存在!"; objJsonResult.data = null; return objJsonResult; } else { tb2.Rows[i]["HOrgID"] = ds.Tables[0].Rows[0]["HItemID"].ToString(); } if (HCurNumber != "") { //查询币别 ds = oCN.RunProcReturn("select * from Gy_Currency where HNumber='" + HCurNumber + "' and Hname='" + HCurName + "'", "Gy_Currency"); if (ds.Tables[0].Rows.Count == 0) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "第" + index + "行,币别不存在!"; objJsonResult.data = null; return objJsonResult; } else { tb2.Rows[i]["HCurID"] = ds.Tables[0].Rows[0]["HItemID"].ToString(); } } else { tb2.Rows[i]["HCurID"] = 0; } if (HSSNumber != "") { //查询结算方式 ds = oCN.RunProcReturn("select * from Gy_SettleStyle where HNumber='" + HSSNumber + "' and Hname='" + HSSName + "'", "Gy_SettleStyle"); if (ds.Tables[0].Rows.Count == 0) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "第" + index + "行,币别不存在!"; objJsonResult.data = null; return objJsonResult; } else { tb2.Rows[i]["HSSID"] = ds.Tables[0].Rows[0]["HItemID"].ToString(); } } else { tb2.Rows[i]["HSSID"] = 0; } if (HAreaNumber != "") { //查询地区 ds = oCN.RunProcReturn("select * from Gy_AreaSet where HNumber='" + HAreaNumber + "' and Hname='" + HAreaName + "'", "Gy_AreaSet"); if (ds.Tables[0].Rows.Count == 0) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "第" + index + "行,地区不存在!"; objJsonResult.data = null; return objJsonResult; } else { tb2.Rows[i]["HAreaID"] = ds.Tables[0].Rows[0]["HItemID"].ToString(); } } else { tb2.Rows[i]["HAreaID"] = 0; } //供应商名称 if (HName == "") { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "第" + index + "行,供应商名称不能为空!"; objJsonResult.data = null; return objJsonResult; } //供应商代码 if (HNum == "") { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "第" + index + "行,供应商代码不能为空!"; objJsonResult.data = null; return objJsonResult; } } else { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "第" + index + "行,组织代码为空"; objJsonResult.data = null; return objJsonResult; } } objJsonResult.code = CodeConstant.SUCCEED; objJsonResult.count = CountConstant.SUCCEED; objJsonResult.Message = error; objJsonResult.data = tb2; return objJsonResult; } catch (Exception e) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 供应商项目 导入(保存) [Route("Gy_Supplier/Gy_Supplier_btnSave")] [HttpPost] public object Gy_Supplier_btnSave([FromBody] JObject sMainSub) { var _value = sMainSub["sMainSub"].ToString(); string msg1 = _value.ToString(); string[] sArray = msg1.Split(new string[] { "&和" }, StringSplitOptions.RemoveEmptyEntries); string msg2 = sArray[0].ToString(); string user = sArray[1].ToString(); try { if (!DBUtility.ClsPub.Security_Log("Gy_Supplier_Edit", 1, false, user)) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "无保存权限!"; objJsonResult.data = null; return objJsonResult; } List Excel = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg2); List> list = new List>(); foreach (JObject item in Excel) { Dictionary dic = new Dictionary(); foreach (var itm in item.Properties()) { dic.Add(itm.Name, itm.Value.ToString()); } list.Add(dic); } oCN.BeginTran(); int i = 1; foreach (Dictionary item in list) { string HOrgID = item["HOrgID"].ToString();//组织ID string HCurID = item["HCurID"].ToString();//币别ID string HSSID = item["HSSID"].ToString();//结算方式ID string HAreaID = item["HAreaID"].ToString();//地区ID string HName = item["供应商名称"].ToString(); string HNumber = item["供应商代码"].ToString(); string HRemark = item["备注"].ToString(); string HHelpCode = item["助记码"].ToString(); string HShortNumber; HShortNumber = DBUtility.ClsPub.GetShortNumber(HNumber);//短代码 if (HShortNumber.Trim() == "") { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "保存失败!短代码为空!"; objJsonResult.data = 1; return objJsonResult; } int HLevel = DBUtility.ClsPub.GetLevel(HNumber); //等级 int HParentID = 0;//父id int HStopflag = 0;//禁用标记 string HShortName = item["简称"].ToString(); string HAddress = item["地址"].ToString(); string HLinkMan = "";//联系人 string HLinkPhone = "";//联系电话 string HMobilePhone = "";//手机 string HFax = "";//传真 string HPostalCode = item["邮编"].ToString(); string HEmail = item["电子邮箱"].ToString(); string HBank = item["银行"].ToString(); string HBankAccount = item["银行账户"].ToString(); string HTaxNum = item["税务登记号"].ToString(); string HCountry = item["国家"].ToString(); string HCorMan = item["法人代表"].ToString(); string HEnglishName = item["英文名称"].ToString(); string HEnglishAddress = item["英文地址"].ToString(); int HTaxRate = 13;//增值税率 if (!DBUtility.ClsPub.AllowNumber(HNumber.Trim())) { objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "保存失败!代码中不能出现连续‘.’并且首位末位不能为‘.’!"; objJsonResult.data = 1; return objJsonResult; } ds = oCN.RunProcReturn("select * from Gy_Supplier where HNumber='" + HNumber + "'", "Gy_Supplier"); if (ds.Tables[0].Rows.Count == 0) { oCN.RunProc("Insert Into Gy_Supplier " + "(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,HMaterClass,HUSEORGID,HCREATEORGID,HPSStyleID,HSupTypeID) " + " 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 + " ,'" + 0 + " ','" + HOrgID + "' ,'" + HOrgID + "' ,'" + 0 + "' ,'" + 0 + "') "); } else { //主表 oCN.RunProc("Update Gy_Supplier set " + "HName='" + HName + "'" + ",HShortNumber='" + HShortNumber + "'" + ",HParentID=" + HParentID.ToString() + ",HLevel=" + HLevel.ToString() + ",HStopflag ='" + HStopflag + "'" + ",HRemark= '" + HRemark + "'" + ",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.ToString() + ",HCountry='" + HCountry + "'" + ",HCorMan='" + HCorMan + "'" + ",HEnglishName='" + HEnglishName + "'" + ",HEnglishAddress='" + HEnglishAddress + "'" + ",HCurID=" + HCurID.ToString() + ",HSSID=" + HSSID.ToString() + ",HAreaID=" + HAreaID.ToString() + "Where HNumber='" + HNumber + "'", ref DBUtility.ClsPub.sExeReturnInfo); } i++; } oCN.Commit(); objJsonResult.code = CodeConstant.SUCCEED; objJsonResult.count = CountConstant.SUCCEED; objJsonResult.Message = "导入成功!"; objJsonResult.data = null; return objJsonResult; } catch (Exception e) { LogService.Write(e); objJsonResult.code = CodeConstant.FAIL; objJsonResult.count = CountConstant.FAIL; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #endregion } }