| | |
| | | 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 WebAPI.WebBLL.JCJM.GYZL; |
| | | //using WebAPI.WebBLL.JCJM.IMPL; |
| | | using System.IO; |
| | | namespace WebAPI.Controllers |
| | | { |
| | | public class Gy_CustomerController : ApiController |
| | |
| | | |
| | | private json objJsonResult = new json(); |
| | | SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); |
| | | //private Gy_CustomerService customerService = new Gy_CustomerImpl(); |
| | | DataSet ds; |
| | | |
| | | |
| | | #region 返回客户列表 |
| | | /// <summary> |
| | | /// 返回客户列表 |
| | | ///参数:string sql。 |
| | |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 客户分页列表 |
| | | [Route("Gy_Customer/page")] |
| | | [HttpGet] |
| | | public json Gy_CustomerPage(string sWhere, string user, int page, int size, string Organization) |
| | | { |
| | | DataSet ds; |
| | | json res = new json(); |
| | | try |
| | | { |
| | | List<object> columnNameList = new List<object>(); |
| | | //判断权限 |
| | | 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 sErr = ""; |
| | | if (oSystemParameter.ShowBill(ref sErr)) |
| | | { |
| | | if (oSystemParameter.omodel.WMS_CampanyName != "乔一") |
| | | { |
| | | sWhere += ("and 组织名称 = '" + Organization + "'"); |
| | | } |
| | | } |
| | | |
| | | |
| | | sWhere = sWhere.Replace("'", "''"); |
| | | if (sWhere == null || sWhere.Equals("")) |
| | | { |
| | | ds = oCN.RunProcReturn("exec h_p_Gy_CustomerList " + page + "," + size + ",''", "h_p_Gy_CustomerList"); |
| | | } |
| | | else |
| | | { |
| | | ds = oCN.RunProcReturn("exec h_p_Gy_CustomerList " + page + "," + size + ",'" + sWhere + "'", "h_p_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列对象的列名 |
| | | } |
| | | |
| | | 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 objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #region 客户子表[关联用户] 查询 |
| | | /// <summary> |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 客户列表修改按钮方法 |
| | | /// <summary> |
| | | /// 客户列表修改按钮方法 |
| | | ///参数:string sql。 |
| | |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 获取当前最大的客户代码 |
| | | [Route("Gy_Customer/getMaxCusNumber")] |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 获取最大资料ID参数 |
| | | /// <summary> |
| | | /// 获取最大基础资料ID |
| | | ///参数:string sql。 |
| | |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 客户根据分类获取最大客户编码 |
| | | [Route("Gy_Customer/getMaxNum")] |
| | | [HttpGet] |
| | | public object getMaxNum(int HCusTypeID, string user, string Organization) |
| | | { |
| | | try |
| | | { |
| | | List<object> columnNameList = new List<object>(); |
| | | //编辑权限 |
| | | 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 |
| | | |
| | | #region 客户列表树形结构 |
| | | /// <summary> |
| | | /// 客户列表树形结构 |
| | | ///参数:string sql。 |
| | |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 新增单据 |
| | | /// <summary> |
| | | /// 新增单据-保存按钮 |
| | | ///参数:string sql。 |
| | |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | #region 保存客户列表 |
| | | /// <summary> |
| | | /// 保存客户列表 |
| | | /// </summary> |
| | | /// <param name="oMain"></param> |
| | | /// <returns></returns> |
| | | [Route("Gy_Customer/SaveGy_CustomerListApi")] |
| | | [HttpPost] |
| | | public object SaveGy_CustomerListApi([FromBody] JObject oMain) |
| | |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | #region 修改单据-保存按钮 |
| | | /// <summary> |
| | | /// 修改单据-保存按钮 |
| | | ///参数:string sql。 |
| | |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | |
| | | # region 客户列表删除按钮 |
| | | /// <summary> |
| | | /// 客户列表删除按钮 |
| | | ///参数:string sql。 |
| | |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 客户审核、反审核 |
| | | /// <summary> |
| | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | #region [同步基础资料] |
| | | [Route("Gy_Customer/Gy_CustomerViewApi")] |
| | | [HttpGet] |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 客户分类 树形图(根据代码展开树状图) |
| | | #region 客户分类 树形图(根据代码展开树状图) |
| | | |
| | | [Route("Gy_BadReason/Gy_CusrTypeTreeList")] |
| | | [HttpGet] |
| | |
| | | { |
| | | try |
| | | { |
| | | string sql1 = string.Format("select hitemid,hnumber,hname,hparentid,hlevel from Gy_CusType order by hnumber"); |
| | | string sql1 = string.Format("select hitemid,hnumber,hname,hparentid,hlevel from Gy_CusType order by hnumber "); |
| | | |
| | | ds = oCN.RunProcReturn(sql1, "Gy_CusType"); |
| | | |
| | |
| | | } |
| | | #endregion |
| | | |
| | | #region 客户列表 文件上传 |
| | | //[Route("Gy_Customer/Gy_Process_Excel")] |
| | | //[HttpPost] |
| | | //public json Gy_Department_Excel() |
| | | //{ |
| | | // json res = new json(); |
| | | // 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 provisional = customerService.UploadExcel(ExcelDs); |
| | | |
| | | // res.code = CodeConstant.SUCCEED; |
| | | // res.count = CountConstant.SUCCEED; |
| | | // res.Message = "上传成功"; |
| | | // res.data = provisional; |
| | | // return res; |
| | | // } |
| | | // catch (Exception e) |
| | | // { |
| | | // res.code = "0"; |
| | | // res.count = 0; |
| | | // res.Message = "Exception!" + e.ToString(); |
| | | // res.data = null; |
| | | // return res; |
| | | // } |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// 判断当前职员是否存在 |
| | | /// </summary> |
| | | /// <param name="HEmpNumber"></param> |
| | | /// <param name="HEmpName"></param> |
| | | /// <returns></returns> |
| | | //private bool JudgeEmp(string HEmpNumber, string HEmpName) |
| | | //{ |
| | | // if (!String.IsNullOrEmpty(HEmpNumber) && !String.IsNullOrEmpty(HEmpName)) |
| | | // { |
| | | // DataSet emp = oCN.RunProcReturn("select * from Gy_Employee where HNumber = '" + HEmpNumber + "' and HName = '" + HEmpName + "'", "Gy_Employee"); |
| | | // return emp.Tables[0].Rows.Count <= EmptyConstant.EMPTY ? true : false; |
| | | // } |
| | | // return false; |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// 判断列 |
| | | /// </summary> |
| | | /// <param name="provisional"></param> |
| | | /// <returns></returns> |
| | | private static string JudgmentColumns(DataTable provisional) |
| | | { |
| | | var error = ""; |
| | | |
| | | //查询没有的列 |
| | | if (!provisional.Columns.Contains("部门代码")) |
| | | error += "没有找到【部门代码】的标题,"; |
| | | |
| | | if (!provisional.Columns.Contains("部门名称")) |
| | | error += "没有找到【部门名称】的标题,"; |
| | | return error; |
| | | } |
| | | #endregion |
| | | |
| | | #region 物料分类 树形图(根据代码展开树状图) |
| | | |
| | |
| | | getTreeByLevel(dt, tree[m].children, num + 1);//再次用子集去循环,拿出子集的子集 |
| | | } |
| | | } |
| | | |
| | | } |
| | | public class TreeModel |
| | | { |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 递归函数 |
| | | /// <summary> |
| | | /// 递归函数 |
| | | /// </summary> |
| | |
| | | } |
| | | |
| | | } |
| | | #endregion |
| | | } |