yangle
2024-09-10 35ede7c9c6277fcbaeabf8d475c802f43b51627c
WebAPI/Controllers/BaseSet/Gy_MaterialController.cs
@@ -13,6 +13,7 @@
using System.Windows.Forms;
using WebAPI.Models;
using WebAPI.Service;
using System.Text.RegularExpressions;
namespace WebAPI.Controllers
{
@@ -21,7 +22,7 @@
        //获取系统参数
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        public string sWhere = "";
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
@@ -113,6 +114,233 @@
                return objJsonResult;
            }
        }
        #region 物料根据分类获取最大物料编码
        [Route("Gy_Material/getMaxNum")]
        [HttpGet]
        public object getMaxNum(int HMaterTypeID, string user, string Organization)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //编辑权限
                if (!DBUtility.ClsPub.Security_Log_second("Gy_Material", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (HMaterTypeID == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "没有选择具体分类!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    ds = oCN.RunProcReturn(@"select * from h_v_Gy_MaterialList where 组织名称='" + Organization + "'" + "and HMaterTypeID = '"+ HMaterTypeID + "'" + " order by 物料代码 desc", "h_v_Gy_MaterialList");
                    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
        #region 获取物料精度通过id
        [Route("Gy_Material/getDecByID")]
        [HttpGet]
        public object getDecByID(int HMaterID)
        {
            try
            {
                if(HMaterID == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "没有选择物料";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ds = oCN.RunProcReturn(@"select HQtyDec,HPriceDec,HMoneyDec from Gy_Material where HitemID=" + HMaterID , "Gy_Material");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "没有找到该物料编码";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Success";
                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
        #region 获取项目号
        [Route("Gy_Material/Get_HProject")]
        [HttpGet]
        public object Get_HProject()
        {
            try
            {
                DataSet oDs = new DataSet();
                //==========
                oDs = oCN.RunProcReturn("select top(20) HInterID as HItemID,HProName HName from PM_ProjectBillMain", "PM_ProjectBillMain");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "获取成功!";
                objJsonResult.data = oDs.Tables[0];
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "删除失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        /// <summary>
        /// 获取项目列表
        /// </summary>
        /// <returns></returns>
        [Route("Gy_Material/GetProjectGroupList_Json")]
        [HttpGet]
        public object GetProjectGroupList_Json(string Unit)
            {
                if (Unit != "" && Unit != null)
                {
                    sWhere = sWhere + " and ( HBillNo like '%" + Unit + "%' or HProName like '%" + Unit + "%' ) ";
                }
                try
                {
                    SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                    if (sWhere == null || sWhere.Equals(""))
                    {
                        ds = oCN.RunProcReturn("Select HInterID,HBillNo 项目代码,HProName 项目组 from PM_ProjectBillMain where HCloseType = 0 Order by HInterID ", "PM_ProjectBillMain");
                    }
                    else
                    {
                        string sql1 = "Select HInterID,HBillNo 项目代码,HProName 项目组 from PM_ProjectBillMain where HCloseType = 0 ";
                        string sql = sql1 + sWhere;
                        ds = oCN.RunProcReturn(sql, "PM_ProjectBillMain");
                    }
                if (ds == null || ds.Tables[0].Rows.Count <= 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "获取失败" + DBUtility.ClsPub.sErrInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "获取成功!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
            }
            catch (Exception ex)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "获取失败" + ex.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #region 获取事业部
        [Route("Gy_Material/Get_Gy_Division")]
        [HttpGet]
        public object Get_Gy_Division(string HOrgID)
        {
            try
            {
                DataSet oDs = new DataSet();
                //==========
                oDs = oCN.RunProcReturn("   select HItemID,HName from Gy_Division", "Gy_Division");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "获取成功!";
                objJsonResult.data = oDs.Tables[0];
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "删除失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        /// <summary>
        /// 物料设置获取信息
@@ -842,6 +1070,7 @@
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //判断是否有查询权限
                if (!DBUtility.ClsPub.Security_Log("Gy_BarCodeBill_Query", 1, false, user))
                {
@@ -856,10 +1085,19 @@
                string sql = sql1 + sWhere + " order by hmainid desc";
                ds = oCN.RunProcReturn(sql, "h_v_IF_BarCodeBillList");
                //添加列名
                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)
@@ -1272,6 +1510,7 @@
                long HSPID = mainList[0].HSPID;
                Double HDesignLife = mainList[0].HDesignLife;
                Double HUseLife = mainList[0].HUseLife;
                Double HInitLife = mainList[0].HInitLife;//上线初始化寿命
                Double HLeaveLife = mainList[0].HLeaveLife;
                Double HProdQty = mainList[0].HProdQty;
                Double HProdWeight = mainList[0].HProdWeight;
@@ -1303,7 +1542,7 @@
                ",HPrintQty,HMouldStatus,HWhID,HRoutingID,HCaveQty" +
                ",HBomID,HVersion,HSPGroupID,HSPID,HDesignLife,HNowSupID,HNowSupTypeID" +
                ",HUseLife,HLeaveLife,HProdQty,HProdWeight,HMouldOWNER,HSaveLife,HMouldDotCheckRuleInterID,HMouldMaintainRuleInterID,HBarCode,HMadeSupID" +
                ",HMouldClass,HNowWHID,HNowSPID) " +
                ",HMouldClass,HNowWHID,HNowSPID,HInitLife) " +
                " values('" + BillType + "','" + BillType + "'," + HInterID + ",'" + HBillNo + "','" + HDate + "'" +
                "," + HYear + "," + HPeriod + ",'" + HRemark + "','" + HMaker + "',getdate()" +
                ",'" + HMouldNo + "','" + HName + "','" + HModel + "','" + HModel2 + "','" + HDiameter + "'" +
@@ -1313,7 +1552,7 @@
                "," + HPrintQty + ",'" + HMouldStatus + "'," + HWHID + "," + HRoutingID + "," + HCaveQty +
                "," + HBOMID + ",'" + HVersion + "'," + HSPGroupID + "," + HSPID + ",'" + HDesignLife + "','" + HNowSupID + "','" + HNowSupTypeID + "'" +
                ",'" + HUseLife + "','" + HLeaveLife + "','" + HProdQty + "','" + HProdWeight + "','" + HMouldOWNER + "','" + HSaveLife + "','" + HMouldDotCheckRuleInterID + "','" + HMouldMaintainRuleInterID + "','" + HBarCode + "'," + HMadeSupID +
                ",'"+ HMouldClass + "'," + HNowWHID + "," + HNowSPID + ") ");
                ",'"+ HMouldClass + "'," + HNowWHID + "," + HNowSPID + ",'" + HInitLife + "') ");
                //子表
                oCN.RunProc("Insert into Gy_MouldFileSub " +
@@ -1420,6 +1659,7 @@
                long HSPID = mainList[0].HSPID;
                Double HDesignLife = mainList[0].HDesignLife;
                Double HUseLife = mainList[0].HUseLife;
                Double HInitLife = mainList[0].HInitLife;
                Double HLeaveLife = mainList[0].HLeaveLife;
                Double HProdQty = mainList[0].HProdQty;
                Double HProdWeight = mainList[0].HProdWeight;
@@ -1495,7 +1735,8 @@
                ",HMadeSupID=" + HMadeSupID +
                ",HNowWHID=" + HNowWHID +
                ",HNowSPID=" + HNowSPID +
                " where HInterID=" + HInterID.ToString());
                ",HInitLife='" + HInitLife +
                "' where HInterID=" + HInterID.ToString());
                //修改子项目代码
                //oCN.RunProc("exec h_p_Gy_UpdateNumber Gy_Department,'" + HNumber + ".','" + this.HOldNumber + ".'", ref DBUtility.ClsPub.sExeReturnInfo);