zrg
2025-02-25 a1c3a3d1b0b0b8c28a19e99177e4cee5a64949b7
WebAPI/Controllers/¹¤×ʹÜÀí/Pay_SingleBalBillController.cs
@@ -9,7 +9,7 @@
using System.Web.Http;
using WebAPI.Models;
using System.Windows.Forms;
using SyntacticSugar.constant;
namespace WebAPI.Controllers
{
@@ -55,7 +55,20 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //判断是否有查看全部班组的权限
                if (!DBUtility.ClsPub.Security_Log("Gy_Group_AllQuery", 3, false, HMaker))
                {
                    //如果没有这个权限
                    //根据用户对应班组的关系,过滤条件中增加只显示对应的班组
                    DataSet dsHitemID = oCn.RunProcReturn("exec h_p_Gy_GetSQLGroupByUser '" + HMaker + "'", "h_p_Gy_GetSQLGroupByUser");
                    string sqlGroupID = DBUtility.ClsPub.isStrNull(dsHitemID.Tables[0].Rows[0]["HBack"]);
                    if (sqlGroupID == "" || sqlGroupID == null)//如果没有绑定班组则让他看不到所有
                    {
                        sqlGroupID = "and 1 = 2";
                    }
                    sqlGroupID = sqlGroupID.Replace("HitemID", "HGroupID");//替换sql语句中的HitemID
                    sWhere = sWhere + sqlGroupID;
                }
                //返回列表信息
                ds = oCn.RunProcReturn("select * from h_v_Pay_SingleBalBillList where 1=1 " + sWhere + " order by hmainid desc", "h_v_Pay_SingleBalBillList");
                List<object> columnNameList = new List<object>();
@@ -80,6 +93,77 @@
                objJsonResult.Message = "查询列表信息失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥èµ„结算单(个人)分页列表
        [Route("Pay_SingleBalBillController/page")]
        [HttpGet]
        public json Pay_SingleBalBillPage(string sWhere, string user, int page, int size)
        {
            DataSet ds;
            json res = new json();
            try
            {
                List<object> columnNameList = new List<object>();
                //判断权限
                if (!DBUtility.ClsPub.Security_Log(ModRightNameList, 3, false, user))
                {
                    objJsonResult.code = CodeConstant.FAIL;
                    objJsonResult.count = CountConstant.FAIL;
                    objJsonResult.Message = "您没有该模块权限,请与管理员联系!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //判断是否有查看全部班组的权限
                if (!DBUtility.ClsPub.Security_Log("Gy_Group_AllQuery", 3, false, user))
                {
                    //如果没有这个权限
                    //根据用户对应班组的关系,过滤条件中增加只显示对应的班组
                    DataSet dsHitemID = oCn.RunProcReturn("exec h_p_Gy_GetSQLGroupByUser '" + user + "'", "h_p_Gy_GetSQLGroupByUser");
                    string sqlGroupID = DBUtility.ClsPub.isStrNull(dsHitemID.Tables[0].Rows[0]["HBack"]);
                    if(sqlGroupID == ""||sqlGroupID==null)//如果没有绑定班组则让他看不到所有
                    {
                        sqlGroupID = "and 1 = 2";
                    }
                    sqlGroupID = sqlGroupID.Replace("HitemID", "HGroupID");//替换sql语句中的HitemID
                    sWhere = sWhere + sqlGroupID;
                }
                sWhere = sWhere.Replace("'", "''");
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCn.RunProcReturn("exec h_p_Pay_SingleBalBillList " + page + "," + size + ",''", "h_p_Pay_SingleBalBillList");
                }
                else
                {
                    ds = oCn.RunProcReturn("exec h_p_Pay_SingleBalBillList " + page + "," + size + ",'" + sWhere + "'", "h_p_Pay_SingleBalBillList");
                }
                //添加列名
                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
@@ -356,6 +440,65 @@
        }
        #endregion
        #region å·¥èµ„结算单(个人) æ‰¹é‡å®¡æ ¸
        /// <summary>
        /// å®¡æ ¸/反审核工资结算单(个人)
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="Type">审核(1),反审核(2)</param>
        /// <param name="HMaker">审核人</param>
        /// <returns></returns>
        [Route("Pay_SingleBalBillController/CheckAll")]
        [HttpGet]
        public object CheckAll(string ids, int Type, string HMaker)
        {
            try
            {
                //处理字符串
                if (!string.IsNullOrEmpty(ids))
                {
                    long[] idArray = Array.ConvertAll(ids.Split(','), long.Parse);
                    // å¤„理idArray...
                    oCn.BeginTran();
                    for (int i = 0; i < idArray.Length; i++)
                    {
                        objJsonResult = (json)GetPay_SingleBalBill_Check_Json(idArray[i], Type, HMaker);//审核执行
                        if (objJsonResult.count == 0)
                        {
                            oCn.RollBack();
                            objJsonResult.Message += "第" + (i + 1) + "行出现问题无法继续完成";
                            return objJsonResult;
                        }
                    }
                    oCn.Commit();
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "请选择正确行";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                objJsonResult.code = CodeConstant.SUCCEED;
                objJsonResult.count = CountConstant.SUCCEED;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCn.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "审核或反审核工资结算单(个人)失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥èµ„结算单(个人) å…³é—­/反关闭
        /// <summary>
        /// å…³é—­/反关闭工资结算单(个人)
@@ -592,7 +735,295 @@
        }
        #endregion
        #region å·¥èµ„结算单(个人)模块   ä»Žåˆ—表选中打开单据,返回单据信息时调用
        /// <summary>
        /// å·¥èµ„结算单(个人)编辑时,根据单据ID获取单据信息
        /// </summary>
        /// <returns></returns>
        [Route("Pay_SingleBalBillController/GetPay_SingleBalBill_Json")]
        [HttpGet]
        public object GetPay_SingleBalBill_Json(Int64 HInterID, string HMaker)
        {
            try
            {
                //判断权限
                if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 3, false, HMaker))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "您没有该模块编辑权限,请与管理员联系!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //返回列表信息
                ds = oCn.RunProcReturn("exec h_p_Pay_SingleBalBill_EditInit " + HInterID, "h_p_Pay_SingleBalBill_EditInit");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "未查询到该工资结算单(个人),请刷新数据后重新选择!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "成功!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "返回工资结算单(个人)信息失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥èµ„结算单(个人)保存
        /// <summary>
        /// å·¥èµ„结算单(个人)保存
        /// </summary>
        [Route("Pay_SingleBalBillController/GetPay_SingleBalBill_Save_Json")]
        [HttpPost]
        public object GetPay_SingleBalBill_Save_Json([FromBody] JObject sMainSub)
        {
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string sMainStr = sArray[0].ToString();         //主表数据
            string sSubStr = sArray[1].ToString();          //子表数据
            string OperationType = sArray[2].ToString();    //操作类型(1新增、2编辑)
            string HMaker = sArray[3].ToString();           //制单人
            try
            {
                //判断权限
                if (OperationType == "1")
                {
                    BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew;
                    //判断新增权限
                    if (!DBUtility.ClsPub.Security_Log(ModRightName, 1, false, HMaker))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "您没有该模块新增权限,请与管理员联系!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                else
                {
                    BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_Modify;
                    //判断编辑权限
                    if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 1, false, HMaker))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "您没有该模块编辑权限,请与管理员联系!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                //表头赋值
                sMainStr = sMainStr.Replace("\\", "");
                sMainStr = sMainStr.Replace("\n", "");
                sMainStr = "[" + sMainStr.ToString() + "]";
                List<Model.ClsPay_SingleBalBillMain> lsmain = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsPay_SingleBalBillMain>>(sMainStr);
                foreach (Model.ClsPay_SingleBalBillMain oItem in lsmain)
                {
                    //单据号是否重复
                    if (oBill.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, oItem.HInterID))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据号重复!不允许保存!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    //判断会计期是否合理
                    string s = "";
                    int sYear = 0;
                    int sPeriod = 0;
                    if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod_Pay(oItem.HDate, ref sYear, ref sPeriod, ref s) == false)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = s;
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    oItem.HYear = sYear;
                    oItem.HPeriod = sPeriod;
                    DBUtility.ClsPub.CurUserName = oItem.HMaker;
                    oBill.omodel = oItem;
                }
                //表体赋值
                //按 },{来拆分数组 //去掉【和】
                sSubStr = sSubStr.Substring(1, sSubStr.Length - 2);
                sSubStr = sSubStr.Replace("\\", "");
                sSubStr = sSubStr.Replace("\n", "");
                sSubStr = "[" + sSubStr.ToString() + "]";
                List<Model.ClsPay_SingleBalBillSub> ls = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Model.ClsPay_SingleBalBillSub>>(sSubStr);
                int i = 0;
                foreach (Model.ClsPay_SingleBalBillSub oItemSub in ls)
                {
                    i++;
                    oItemSub.HEntryID = i;
                    oBill.DetailColl.Add(oItemSub);
                }
                //保存
                bool bResult;
                if (OperationType == "1")   //新增保存
                {
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else                        //编辑保存
                {
                    bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;  //成功!
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region æ ¹æ®ç‰©æ–™ID、工序ID、资源ID获取工价
        [Route("Pay_SingleBalBill/get_HPrice_BaseMaterHProcHSource")]
        [HttpGet]
        public object get_HPrice_BaseMaterHProcHSource(Int64 HMaterID, Int64 HProcID, Int64 HSourceID)
        {
            try
            {
                double HPrice=0;
                ds = oCn.RunProcReturn("exec h_p_Pay_GetPriceByMaterHProcHSource " + HMaterID.ToString() + "," + HProcID.ToString() + "," + HSourceID.ToString(), "h_p_Pay_GetPriceByMaterHProcHSource");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    HPrice = 0;
                }
                else
                {
                    HPrice = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[0]["HPrice"]);
                }
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "成功!";
                objJsonResult.data = HPrice;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å·¥èµ„结算单批量审核二版
        /// <summary>
        /// å·¥èµ„结算单批量审核二版
        /// </summary>
        /// <returns></returns>
        [Route("Pay_SingleBalBillController/CheckAllByTimeAndGroup")]
        [HttpGet]
        public object CheckAllByTimeAndGroup(string sWhere, string HMaker)
        {
            try
            {
                //判断权限
                if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 3, false, HMaker))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "您没有该模块权限,请与管理员联系!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ds = oCn.RunProcReturn($"exec h_p_Pay_SingleBalBill_CheckAllByTimeAndGroup " + sWhere + "", "h_p_Pay_SingleBalBill_CheckAllByTimeAndGroup");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "存储过程判断失败!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) == 1)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "审核失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]);
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "成功!";
                objJsonResult.data = ds.Tables[0].Rows[0]["HRemark"];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "查询列表信息失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        //---------------------------------------------------------------------------------------------旧方法
        #region å·¥èµ„结算单个人-查询
        /// <summary>
@@ -1375,33 +1806,6 @@
                    objJsonResult.data = null;
                    return objJsonResult;
                }
            }
        }
        #endregion
        #region æ ¹æ®ç‰©æ–™ID、工序ID、资源ID获取工价
        [Route("Pay_SingleBalBill/get_HPrice_BaseMaterHProcHSource")]
        [HttpGet]
        public object get_HPrice_BaseMaterHProcHSource(Int64 HMaterID, Int64 HProcID, Int64 HSourceID)
        {
            try
            {
                DAL.ClsGy_ProcPrice_Ctl oProcPrice = new DAL.ClsGy_ProcPrice_Ctl();
                double HPrice = oProcPrice.LoadProcPrice(HMaterID, HProcID, HSourceID, true);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = HPrice;
                return objJsonResult;
            }
            catch(Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion