yxj
2025-03-18 f02c7cbe27d7da079f057b464e2b179f1dc17b08
WebAPI/Controllers/BaseSet/Gy_CustomerController.cs
@@ -8,6 +8,13 @@
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
@@ -18,9 +25,10 @@
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        //private Gy_CustomerService customerService = new Gy_CustomerImpl();
        DataSet ds;
        #region 返回客户列表
        /// <summary>
        /// 返回客户列表
        ///参数:string sql。
@@ -92,6 +100,74 @@
                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>
@@ -136,6 +212,7 @@
        }
        #endregion
        #region 客户列表修改按钮方法
        /// <summary>
        /// 客户列表修改按钮方法
        ///参数:string sql。
@@ -173,7 +250,7 @@
                return objJsonResult;
            }
        }
        #endregion
        #region 获取当前最大的客户代码
        [Route("Gy_Customer/getMaxCusNumber")]
@@ -213,6 +290,7 @@
        }
        #endregion
        #region 获取最大资料ID参数
        /// <summary>
        /// 获取最大基础资料ID
        ///参数:string sql。
@@ -241,8 +319,86 @@
                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。
@@ -272,7 +428,9 @@
                return objJsonResult;
            }
        }
        #endregion
        #region 新增单据
        /// <summary>
        /// 新增单据-保存按钮
        ///参数:string sql。
@@ -428,9 +586,14 @@
                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)
@@ -554,9 +717,9 @@
                return objJsonResult;
            }
        }
        #endregion
        #region 修改单据-保存按钮
        /// <summary>
        /// 修改单据-保存按钮
        ///参数:string sql。
@@ -727,9 +890,9 @@
                return objJsonResult;
            }
        }
        #endregion
        # region 客户列表删除按钮
        /// <summary>
        /// 客户列表删除按钮
        ///参数:string sql。
@@ -820,7 +983,7 @@
                return objJsonResult;
            }
        }
        #endregion
        #region 客户审核、反审核
        /// <summary>
@@ -1012,7 +1175,6 @@
        }
        #endregion
        #region [同步基础资料]
        [Route("Gy_Customer/Gy_CustomerViewApi")]
        [HttpGet]
@@ -1175,7 +1337,7 @@
        }
        #endregion
         #region 客户分类 树形图(根据代码展开树状图)
        #region 客户分类 树形图(根据代码展开树状图)
        [Route("Gy_BadReason/Gy_CusrTypeTreeList")]
        [HttpGet]
@@ -1231,7 +1393,7 @@
        {
            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");
@@ -1271,7 +1433,77 @@
        }
        #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 物料分类 树形图(根据代码展开树状图)
@@ -1297,7 +1529,6 @@
                    getTreeByLevel(dt, tree[m].children, num + 1);//再次用子集去循环,拿出子集的子集
                }
            }
        }
        public class TreeModel
        {
@@ -1308,6 +1539,7 @@
        #endregion
        #region 递归函数
        /// <summary>
        /// 递归函数
        /// </summary>
@@ -1337,4 +1569,5 @@
        }
    }
    #endregion
}