yxj
2022-11-16 f3e099f52dad5b1f5aef9f62970c121b46fe612c
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Xt_CheckFlowBillController.cs
New file
@@ -0,0 +1,407 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers.基础资料.基础资料
{
    public class Xt_CheckFlowBillController : ApiController
    {
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        public SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        #region å®¡æ ¸æµç¨‹å•列表
        [Route("Xt_CheckFlowBill/Xt_CheckFlowBillList")]
        [HttpGet]
        public object Xt_CheckFlowBillList(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //查询权限
                if (!DBUtility.ClsPub.Security_Log_second("Xt_CheckFlow_Query", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                string sql1 = string.Format(@"select * from h_v_Xt_CheckFlowList where 1=1  ");
                ds = oCN.RunProcReturn(sql1 + sWhere+ " order by æµç¨‹åç§°", "h_v_Xt_CheckFlowList");
                //添加列名
                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;
            }
        }
        #endregion
        # region å®¡æ ¸æµç¨‹å• ä¿å­˜
        [Route("Xt_CheckFlowBill/Xt_CheckFlowBillEdit")]
        [HttpPost]
        public object Xt_CheckFlowBillEdit([FromBody] JObject msg)
        {
            var _value = msg["msg"].ToString();
            string msg3 = _value.ToString();
            string[] sArray = msg3.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg1 = sArray[0].ToString();
            string msg2 = sArray[1].ToString();
             msg3 = sArray[2].ToString();
            string msg4 = sArray[3].ToString();
            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
            //编辑权限
            if (!DBUtility.ClsPub.Security_Log_second("Xt_CheckFlow_Edit", 1, false, msg4))
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "无保存权限!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            try
            {
                Models.Xt_CheckFlowMain main = JsonConvert.DeserializeObject<Xt_CheckFlowMain>(msg1);
                List<Models.Xt_CheckFlowSub> lsmain = new List<Models.Xt_CheckFlowSub>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                lsmain =JsonConvert.DeserializeObject<List<Xt_CheckFlowSub>>(msg2);
                foreach (Xt_CheckFlowSub oItem in lsmain)
                {
                    if (oItem.HCheckItemID == 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!审批项目代码不能为空!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    if (oItem.HFlowNo == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!流程号不能为空!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                }
                ds = oCN.RunProcReturn("select  *  from h_v_Xt_CheckFlowList where Hmainid= " + main.HInterID, "h_v_Xt_CheckFlowList");
                //保存
                //保存完毕后处理
                oCN.BeginTran();
                if (msg3 == "1" && ds.Tables[0].Rows.Count == 0)
                {
                    oCN.RunProc("Insert Into Xt_CheckFlowMain   " +
                         "(HBillTypeID,HInterID,HDeptID" +
                         ",HRemark,HStandard,HName" + ") " +
                         " values('" + main.HBillTypeID.ToString() + "'," + main.HInterID.ToString() + "," + main.HDeptID.ToString() +
                         ",'" + main.HRemark + "'," + Convert.ToString(main.HStandard ? 1 : 0) + ",'" + main.HName.ToString() + "') ");
                }
                else
                {
                    //更新主表
                    oCN.RunProc("UpDate Xt_CheckFlowMain set  " +
                    "HRemark='" + main.HRemark + "'" +
                    ",HName='" + main.HName + "'" +
                    ",HDeptID=" + main.HDeptID.ToString() +
                    ",HBillTypeID='" + main.HBillTypeID + "'" +
                    ",HStandard='" + Convert.ToString(main.HStandard ? 1 : 0) + "'" +
                    " where HInterID=" + main.HInterID.ToString());
                    //删除子表
                    oCN.RunProc("delete from Xt_CheckFlowSub where HInterID=" + main.HInterID.ToString());
                }
                AddBillSub(lsmain, main.HInterID);
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "保存成功!";
                objJsonResult.data = 1;
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        public json AddBillSub(List<Xt_CheckFlowSub> DetailColl, long HInterID)
        {
            int i = 1;
            foreach (Xt_CheckFlowSub oSub in DetailColl)
            {
                oCN.RunProc("Insert into Xt_CheckFlowSub " +
                             " (HInterID,HEntryID,HCheckMan" +
                             ",HFlowNo,HJumpFlag,HMakerSelf,HCheckItemID" +
                             " )values("
                             + HInterID + "," + i + ",'" + oSub.HCheckMan + "'" +
                             "," + oSub.HFlowNo + "," + Convert.ToString(oSub.HJumpFlag ? 1 : 0) + "," + Convert.ToString(oSub.HMakerSelf ? 1 : 0) + "," + oSub.HCheckItemID + ") ");
                i++;
            }
            objJsonResult.code = "1";
            objJsonResult.count = 1;
            objJsonResult.Message = null;
            objJsonResult.data = null;
            return objJsonResult;
        }
        #endregion
        #region  å®¡æ ¸æµç¨‹å• åˆ é™¤
        [Route("Xt_CheckFlowBill/Xt_CheckFlowBillDelete")]
        [HttpGet]
        public object Xt_CheckFlowBillDelete(string HItemID, string user)
        {
            try
            {
                //删除权限
                if (!DBUtility.ClsPub.Security_Log("Xt_CheckFlow_Drop", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无删除权限";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (string.IsNullOrWhiteSpace(HItemID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HItemID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();//开始事务
                //删除子表
                oCN.RunProc("Delete From Xt_CheckFlowSub where HInterID=" + HItemID);
                //删除主表
                oCN.RunProc("Delete From Xt_CheckFlowMain where HInterID=" + HItemID);
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                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 å®¡æ‰¹ç”¨æˆ·æƒé™è®¾ç½®
        [Route("Xt_CheckFlowBill/Xt_CheckUserRight")]
        [HttpGet]
        public object Xt_CheckUserRight()
        {
            try
            {
                string sql1 = string.Format(@"select  * from Gy_Czygl ");
                ds = oCN.RunProcReturn(sql1, "Gy_Czygl");
                string TreeStr = "[{\"title\": \"审批用户权限设置\", \"id\": \"1\" ,\"spread\": \"true\",\"children\":[";
                foreach (DataRow item in ds.Tables[0].Rows)
                {
                    TreeStr+= "{  \"title\": \"" + item["Czymc"].ToString() + "\",\"id\": \"" + item["Czybm"].ToString() + "\"},";
                }
                TreeStr = TreeStr.Substring(0, TreeStr.Length - 1);
                TreeStr += "]}]";
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = JsonConvert.DeserializeObject(TreeStr);
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region å®¡æ‰¹ç”¨æˆ·æƒé™è®¾ç½® å³
        [Route("Xt_CheckFlowBill/Xt_CheckUserRightListMain")]
        [HttpGet]
        public object Xt_CheckUserRightListMain(string sWhere)
        {
            try
            {
                string sql1 = string.Format(@"select *,row_number()over(ORDER BY HInterID ) num from h_v_Xt_CheckUserRightMain where 1=1 ");
                ds = oCN.RunProcReturn(sql1+sWhere, "h_v_Xt_CheckUserRightMain");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                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("Xt_CheckFlowBill/Xt_CheckUserRightListMainSource")]
        [HttpGet]
        public object Xt_CheckUserRightListMainSource(string sWhere)
        {
            try
            {
                string sql1 = string.Format(@"select *,row_number()over(ORDER BY HInterID ) num from h_v_Xt_CheckUserRightSource where 1=1 ");
                ds = oCN.RunProcReturn(sql1 + sWhere, "h_v_Xt_CheckUserRightSource");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                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 å®¡æ‰¹ç”¨æˆ·æƒé™è®¾ç½® ä¿å­˜
        //字段
        public class Xt_CheckUserRightsub
        {
            public int hcheckitemid;
        }
        [Route("Xt_CheckFlowBill/Xt_CheckUserRightEdit")]
        [HttpPost]
        public object Xt_CheckUserRightEdit([FromBody] JObject msg)
        {
            var _value = msg["msg"].ToString();
            string msg3 = _value.ToString();
            string[] sArray = msg3.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg1 = sArray[0].ToString();
            string msg2 = sArray[1].ToString();
            msg3 = sArray[2].ToString();
            string msg4 = sArray[3].ToString();
            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
            //编辑权限
            if (!DBUtility.ClsPub.Security_Log_second("Xt_CheckFlow_Edit", 1, false, msg4))
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "无保存权限!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            try
            {
                List<Xt_CheckUserRightsub> lsmain = new List<Xt_CheckUserRightsub>();
                msg1 = msg1.Replace("\\", "");
                msg1 = msg1.Replace("\n", "");  //\n
                lsmain = JsonConvert.DeserializeObject<List<Xt_CheckUserRightsub>>(msg1);
                oCN.BeginTran();
                //删除原记录
                oCN.RunProc("Delete From Xt_CheckUserRight where HUserID='" + msg2 + "'and HCheckFlowInterID=" + msg3 + "");
                var HCheckItemID=0;
                //新增记录
                for (int i = 0; i <= lsmain.Count - 1; i++)
                {
                    if (HCheckItemID != lsmain[i].hcheckitemid)
                    {
                        oCN.RunProc("insert into Xt_CheckUserRight(HUserID,HCheckFlowInterID,HCheckItemID) values('" + msg2 + "'," + msg3 + "," + lsmain[i].hcheckitemid + ") ");
                        HCheckItemID = lsmain[i].hcheckitemid;
                    }
                }
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "保存成功!";
                objJsonResult.data = 1;
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        #endregion
    }
}