ch
2022-11-15 3e7e7c306659ed86e091ea89b626359125362908
Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-API
8个文件已添加
5个文件已修改
1935 ■■■■ 已修改文件
WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/LMESController.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/基础资料/Gy_DutyBillController.cs 375 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/基础资料/Gy_SOPBillController.cs 369 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/基础资料/Gy_SOPBillEditController.cs 367 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/基础资料/Xt_CheckFlowBillController.cs 407 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/基础资料/基础资料/Xt_CheckItemBillController.cs 262 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/ListModels.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/Xt_CheckFlowMain.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/Xt_CheckFlowSub.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/Xt_CheckItem.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Models/基础资料/Gy_Duty.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs
@@ -136,7 +136,7 @@
                msg2 = "[" + msg2.ToString() + "]";
                List<Gy_RoutingBill> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Gy_RoutingBill>>(msg2);
                long HInterID = mainList[0].HInterID;//递入type得到的单据ID
                string HBillNo = mainList[0].HBillNo;//递入type得到的单据号
                DateTime HDate = mainList[0].HDate;//日期
@@ -170,9 +170,22 @@
                string HProductNum = mainList[0].HProductNum;//成品编号
                string HVerNum = mainList[0].HVerNum;//版本
                if (OperationType == 2)
                {
                    ds = oCN.RunProcReturn("select * from h_v_Gy_RoutingBillList where  å•据号='" + HBillNo + "'", "h_v_Gy_RoutingBillList");
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "单据号重复,请重新输入!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                ds = oCN.RunProcReturn("select * from h_v_Gy_RoutingBillList where hmainid=" + HInterID + " and å•据号='" + HBillNo + "'", "h_v_Gy_RoutingBillList");
                if (OperationType == 1 && ds.Tables[0].Rows.Count == 0)//新增
                if ((OperationType == 1 || OperationType == 2) && ds.Tables[0].Rows.Count == 0)//新增
                {
                    //主表
                    oCN.RunProc("Insert Into Gy_RoutingBillMain   " +
@@ -202,10 +215,10 @@
                        ",HProductNum='" + HProductNum + "',HVerNum='" + HVerNum + "' where HInterID='" + HInterID + "'");
                    //删除子表
                    oCN.RunProc("delete from Gy_RoutingBillSub where HInterID='" + HInterID+ "' and HProcNo!='9999'");
                    oCN.RunProc("delete from Gy_RoutingBillSub where HInterID='" + HInterID + "' and HProcNo!='9999'");
                }
                //保存子表
                objJsonResult = AddBillSub(msg3, HInterID);
                objJsonResult = AddBillSub(msg3, HInterID, OperationType);
                if (objJsonResult.code == "0")
                {
                    objJsonResult.code = "0";
@@ -220,7 +233,7 @@
                if (OperationType == 1)
                {
                    if (ds == null || ds.Tables[0].Rows.Count == 0)
                    {
                        objJsonResult.code = "0";
@@ -257,7 +270,7 @@
            }
        }
        public json AddBillSub(string msg3, long HInterID)
        public json AddBillSub(string msg3, long HInterID,int OperationType)
        {
            List<Gy_RoutingBillSub> DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Gy_RoutingBillSub>>(msg3);
            int i = 0;
@@ -273,7 +286,7 @@
                    return objJsonResult;
                }
                if (oSub.HProcNo!="9999")
                if (oSub.HProcNo != "9999" || OperationType == 2)
                {
                    oCN.RunProc("Insert into Gy_RoutingBillSub " +
                    "(HInterID,HEntryID,HProcID,HProcNO,HSupID,HSupFlag" +
@@ -329,7 +342,7 @@
                file.SaveAs(ExcelPath);
                NpoiHelper np = new NpoiHelper();
                DataSet ExcelDs = np.ReadExcel(ExcelPath, 1,2, WorkBookName);
                DataSet ExcelDs = np.ReadExcel(ExcelPath, 1, 2, WorkBookName);
                //删除文件
                File.Delete(ExcelPath);
@@ -364,7 +377,7 @@
                if (!tb2.Columns.Contains("工序"))
                    error += "没有找到【工序】的标题,";
                if (!tb2.Columns.Contains("工作中心"))
                    error += "没有找到【工作中心】的标题,";
@@ -423,7 +436,7 @@
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = $"Excel模板存在错误,{error}\r\n" ;
                    objJsonResult.Message = $"Excel模板存在错误,{error}\r\n";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
@@ -482,7 +495,7 @@
                                , æœ¬å·¥åºç¡®è®¤è®°å½•, å¤‡æ³¨, å›¾å·ç‰ˆæœ¬, æ€»è£…图号, æè´¨, æˆå“ç¼–号, ç‰ˆæœ¬
                                , æ¨¡å…·ç¼–号, ç¨‹åºå·, ç­äº§å®šé¢, å·¥è‰ºè·¯çº¿åç§°, æ—¶é—´å•位,工艺路线代码)values
                                ('" + tb2.Rows[i]["产品代码"].ToString() + "','" + tb2.Rows[i]["产品名称"].ToString() + "','" + tb2.Rows[i]["工序序号"].ToString() + "','" + tb2.Rows[i]["工序代码"].ToString() + "','" + tb2.Rows[i]["工序"].ToString() + "','" + tb2.Rows[i]["工作中心"].ToString() + "','" + tb2.Rows[i]["加工数量"].ToString() + "'" +
                                ",'" + tb2.Rows[i]["良率"].ToString() + "','" + (tb2.Rows[i]["工序工价"].ToString()==""?"0": tb2.Rows[i]["工序工价"].ToString()) + "','" + tb2.Rows[i]["不合格单价"].ToString() + "','" + tb2.Rows[i]["报废单价"].ToString() + "','" + tb2.Rows[i]["本道固定开工天数"].ToString() + "','" + tb2.Rows[i]["本道开工余量"].ToString() + "','" + tb2.Rows[i]["上道等待天数"].ToString() + "'" +
                                ",'" + tb2.Rows[i]["良率"].ToString() + "','" + (tb2.Rows[i]["工序工价"].ToString() == "" ? "0" : tb2.Rows[i]["工序工价"].ToString()) + "','" + tb2.Rows[i]["不合格单价"].ToString() + "','" + tb2.Rows[i]["报废单价"].ToString() + "','" + tb2.Rows[i]["本道固定开工天数"].ToString() + "','" + tb2.Rows[i]["本道开工余量"].ToString() + "','" + tb2.Rows[i]["上道等待天数"].ToString() + "'" +
                                ",'" + tb2.Rows[i]["上道循环周期"].ToString() + "','" + tb2.Rows[i]["自动转移"].ToString() + "','" + tb2.Rows[i]["外协标记"].ToString() + "','" + tb2.Rows[i]["供应商代码"].ToString() + "','" + tb2.Rows[i]["供应商"].ToString() + "','" + tb2.Rows[i]["工艺参数"].ToString() + "','" + tb2.Rows[i]["图纸编号"].ToString() + "'" +
                                ",'" + tb2.Rows[i]["本工序确认记录"].ToString() + "','" + tb2.Rows[i]["备注"].ToString() + "','" + tb2.Rows[i]["图号版本"].ToString() + "','" + tb2.Rows[i]["总装图号"].ToString() + "','" + tb2.Rows[i]["材质"].ToString() + "','" + tb2.Rows[i]["成品编号"].ToString() + "','" + tb2.Rows[i]["版本"].ToString() + "'" +
                                ",'" + tb2.Rows[i]["模具编号"].ToString() + "','" + tb2.Rows[i]["程序号"].ToString() + "','" + tb2.Rows[i]["班产定额"].ToString() + "','" + tb2.Rows[i]["工艺路线名称"].ToString() + "','" + tb2.Rows[i]["时间单位"].ToString() + "','" + tb2.Rows[i]["工艺路线代码"].ToString() + "')");
@@ -682,7 +695,7 @@
                        {
                            if (HBillNo != "")
                            {
                                if (dataSet.Tables[0].Rows.Count==0)
                                if (dataSet.Tables[0].Rows.Count == 0)
                                {
                                    break;
                                }
WebAPI/Controllers/LMESController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
@@ -59,6 +60,7 @@
            DataSet ds;
            try
            {
                List<object> columnNameList = new List<object>();
                //判断是否有查询权限
                //if (!DBUtility.ClsPub.Security_Log("Sc_ProcessExchangeBill_Query", 1, false, user))
                //{
@@ -72,11 +74,19 @@
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn("select * from h_v_Sc_ProcessExchangeBillQuery where 1 = 1 " + sWhere + " order by hmainid desc ", "h_v_Sc_ProcessExchangeBillQuery");
                //添加列名
                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列对象的列名
                }
                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
                //{
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.list = columnNameList;
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
                //}
@@ -599,11 +609,21 @@
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //if (ds.Tables[0].Rows.Count != 0 || ds != null)
                //{
                //添加列名
                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.list = columnNameList;
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
                //}
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Gy_DutyBillController.cs
New file
@@ -0,0 +1,375 @@
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.基础资料;
using WebAPI.Models;
namespace WebAPI.Controllers.基础资料.基础资料
{
    public class Gy_DutyBillController : ApiController
    {
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        public SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        #region ç»„织架构设置 æ ‘形图
        public class TreeModel
        {
            public string id { get; set; }
            public string title { get; set; }
            public List<TreeModel> children = new List<TreeModel>();
        }
        [Route("Gy_DutyBill/Gy_DutyBillTreeList")]
        [HttpGet]
        public object Gy_DutyBillTreeList()
        {
            try
            {
                string sql1 = string.Format("select hitemid,hnumber,hname from Gy_Duty order by hnumber");
                ds = oCN.RunProcReturn(sql1, "Gy_Duty");
                List<TreeModel> treeModels = new List<TreeModel>();
                TreeModel first = new TreeModel();
                first.id = "0";
                first.title = "组织架构设置";
                treeModels.Add(first);
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    var strLen = row["hnumber"].ToString().Split('.');
                    if (strLen.Length == 1)
                    {
                        TreeModel tree = new TreeModel();
                        tree.id = row["hnumber"].ToString();
                        tree.title = row["hname"].ToString();
                        treeModels[0].children.Add(tree);
                    }
                }
                digui(ds.Tables[0], treeModels[0].children, 2);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = Newtonsoft.Json.JsonConvert.SerializeObject(treeModels);
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        /// <summary>
        /// é€’归函数
        /// </summary>
        public void digui(DataTable dt, List<TreeModel> tree,int num)
        {
            for (int m = 0; m < tree.Count; m++)
            {
                tree[m].children = new List<TreeModel>();
                for (int i = 0; i < dt.Rows.Count; i++)//第一次循环,得到所有根节点的子集
                {
                    var strLen = dt.Rows[i]["hnumber"].ToString().Split('.');
                    if (strLen.Length == num && dt.Rows[i]["hnumber"].ToString().Contains(tree[m].id + "."))
                    {
                        TreeModel tbjson = new TreeModel();
                        tbjson.id = dt.Rows[i]["hnumber"].ToString();
                        tbjson.title = dt.Rows[i]["hname"].ToString();
                        tree[m].children.Add(tbjson);
                    }
                }
                var strLens = tree[m].id.Split('.');
                for (int i = 0; i < tree[m].children.Count; i++)
                {
                    digui(dt, tree[m].children, strLens.Length + 2);//再次用子集去循环,拿出子集的子集
                }
            }
        }
        #endregion
        #region ç»„织架构设置 åˆ—表
        [Route("Gy_DutyBill/Gy_DutyBillList")]
        [HttpGet]
        public object Gy_DutyBillList(string sWhere)
        {
            try
            {
                string sql1 = string.Format(@"select  * from h_v_Gy_DutyList where 1=1 ");
                ds = oCN.RunProcReturn(sql1+ sWhere+ " order by ç»„织架构代码", "h_v_Gy_DutyList");
                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("Gy_DutyBill/Gy_DutyBillEdit")]
        [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();
            string msg4 = sArray[2].ToString();
            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
            try
            {
                Gy_Duty Duty = JsonConvert.DeserializeObject<Gy_Duty>(msg1);
                //获取上级的代码
                var topHNum = DBUtility.ClsPub.GetParentCode(Duty.HNumber);
                if (topHNum == "")
                {
                    Duty.HParentID = 0;
                }
                else
                {
                    ds = oCN.RunProcReturn("select * from Gy_Duty where HStopflag=0  and HNumber='" + topHNum + "'  or HNumber='" + Duty.HNumber + "' ", "Gy_Duty");
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "上级代码不存在或被禁用!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    if (msg4 == "1") {
                        if (ds.Tables[0].Rows.Count == 2)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "代码重复!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    Duty.HParentID = int.Parse(ds.Tables[0].Rows[0]["HItemID"].ToString());
                }
                if (Duty.HItemID != 0)
                {
                    ds = oCN.RunProcReturn("select * from Gy_Duty where HItemID='" + Duty.HItemID + "' ", "Gy_Duty");
                    var newHNum = Duty.HNumber.Split('.');
                    var oldHNum = ds.Tables[0].Rows[0]["HNumber"].ToString().Split('.');
                    if (newHNum.Length > oldHNum.Length && Duty.HItemID == Duty.HParentID)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "新代码不能是自己的下级的子项目!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                    ds = oCN.RunProcReturn("select * from Gy_Duty where HParentID='" + Duty.HItemID + "' ", "Gy_Duty");
                    if (ds.Tables[0].Rows.Count>0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "该项目下面有子项目,不能修改!";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                Duty.HEndFlag = 1;
                Duty.HShortNumber = DBUtility.ClsPub.GetShortNumber(Duty.HNumber);
                Duty.HLevel = DBUtility.ClsPub.GetLevel(Duty.HNumber);
                if (Duty.HShortNumber == "")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "短代码为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                if (msg4 == "1")
                {
                    //保存
                    //保存完毕后处理
                    oCN.RunProc("Insert into Gy_Duty " +
                       " (HNumber,HName,HHelpCode,HShortNumber,HParentID,HUserGroupID" +
                       ",HLevel,HEndFlag,HStopflag,HRemark) " +
                       " Values('" + Duty.HNumber + "','" + Duty.HName + "','" + Duty.HHelpCode + "','" + Duty.HShortNumber + "'," + Duty.HParentID.ToString() + "," + Duty.HUserGroupID.ToString() +
                       "," + Duty.HLevel.ToString() + "," + Duty.HEndFlag + "," + Convert.ToString(Duty.HStopflag ? 1 : 0) + ",'" + Duty.HRemark + "')", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else
                {
                    oCN.RunProc("Update Gy_Duty set " +
                        " HNumber='" + Duty.HNumber + "'" +
                        ",HName='" + Duty.HName + "'" +
                        ",HShortNumber='" + Duty.HShortNumber + "'" +
                        ",HHelpCode='" + Duty.HHelpCode + "'" +
                        ",HLevel=" + Duty.HLevel.ToString() +
                        ",HParentID=" + Duty.HParentID.ToString() +
                        ",HUserGroupID=" + Duty.HUserGroupID.ToString() +
                        ",HEndflag=" + Duty.HEndFlag +
                        ",HStopflag=" + Convert.ToString(Duty.HStopflag ? 1 : 0) +
                        ",HRemark= '" + Duty.HRemark + "' Where HItemID=" + Duty.HItemID, ref DBUtility.ClsPub.sExeReturnInfo);
                }
                //修改上级为非末级代码
                oCN.RunProc("Update Gy_Duty set HEndflag=0 where HItemID=" + Duty.HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
                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
        #region  ç»„织架构设置 åˆ é™¤
        [Route("Gy_DutyBill/Gy_DutyBillDel")]
        [HttpGet]
        public object Gy_DutyBillDel(string HItemID, string user)
        {
            try
            {
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                if (string.IsNullOrWhiteSpace(HItemID))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "HItemID为空!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ds = oCN.RunProcReturn("select * from Gy_Duty where HParentID='" + HItemID + "' ", "Gy_Duty");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "该项目下面有子项目,不能删除!,请先删除子项目!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                ds = oCN.RunProcReturn("select * from Gy_Duty where HItemID='" + HItemID + "' ", "Gy_Duty");
                oCN.BeginTran();//开始事务
                //删除数据
                oCN.RunProc("Delete from Gy_Duty where HItemID='" + HItemID + "'");
                //修改上级为末级
                oCN.RunProc("Update Gy_Duty set HEndflag=1 where HItemID=" + ds.Tables[0].Rows[0]["HParentID"].ToString());
                oCN.Commit();//提交事务
                objJsonResult.code = "1";
                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("Gy_DutyBill/Gy_DutyBillTest")]
        [HttpGet]
        public object Gy_DutyBillTest(string HItemID, string user)
        {
            try
            {
                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("exec h_p_Gy_Duty " + HItemID );
                oCN.Commit();//提交事务
                objJsonResult.code = "1";
                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
    }
}
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Gy_SOPBillController.cs
@@ -1,19 +1,15 @@
using Newtonsoft.Json.Linq;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Runtime.InteropServices;
using System.Web;
using System.Data.SqlClient;
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
using WebAPI.Service;
namespace WebAPI.Controllers.基础资料.基础资料
{
    public class Gy_SOPBillController : ApiController
@@ -23,344 +19,87 @@
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
        public DAL.ClsGy_SOPBill BillNew = new DAL.ClsGy_SOPBill();
        public DAL.ClsGy_SOPBill BillOld = new DAL.ClsGy_SOPBill();
        public bool BillChange;   //
        public DataGridView grdMain = new System.Windows.Forms.DataGridView();
        ClsGridViewSum oSumGrid = new ClsGridViewSum();
        //定义
        public const Int16 HTagCol = 0;
        public const Int16 HSnoCol = 1;
        public const Int16 HProcNoCol = 2;
        public const Int16 HProcIDCol = 3;
        public const Int16 HProcNumberCol = 4;
        public const Int16 HProcNameCol = 5;
        public const Int16 HWorkStationIDCol = 6;
        public const Int16 HWorkStationNumberCol = 7;
        public const Int16 HWorkStationNameCol = 8;
        public const Int16 HCenterIDCol = 9;
        public const Int16 HCenterNumberCol = 10;
        public const Int16 HCenterNameCol = 11;
        public const Int16 HRemarkCol = 12;
        public const Int16 HEntryIDCol = 13;
        DAL.ClsIF_Material_View oMater = new DAL.ClsIF_Material_View();
        DAL.ClsIF_Unit_View oUnit = new DAL.ClsIF_Unit_View();
        DAL.ClsIF_Process_View oProc = new DAL.ClsIF_Process_View();
        DAL.ClsGy_WorkStation_View oStation = new DAL.ClsGy_WorkStation_View();
        DAL.ClsGy_WorkCenter_View oCenter = new DAL.ClsGy_WorkCenter_View();
        #region  è¯»å†™ç±»
        //显示单据
        public void Sub_ShowBill()
        {
            DAL.ClsIF_Material_View oMater = new DAL.ClsIF_Material_View();
            DAL.ClsIF_Unit_View oUnit = new DAL.ClsIF_Unit_View();
            DAL.ClsIF_Process_View oProc = new DAL.ClsIF_Process_View();
            DAL.ClsGy_WorkStation_View oStation = new DAL.ClsGy_WorkStation_View();
            DAL.ClsGy_WorkCenter_View oCenter = new DAL.ClsGy_WorkCenter_View();
            //ClsGy_SourceHlp oSource = new ClsGy_SourceHlp();
            //判断是否存在单据
            if (BillOld.ShowBill(BillOld.omodel.HInterID, ref ClsPub.sExeReturnInfo) == false)
            {
                MessageBox.Show(ClsPub.sExeReturnInfo, "提示");
                return;
            }
            //grid禁止刷新
            //加载表体
            int i = 0;
            foreach (Model.ClsGy_SOPBillSub oSub in BillOld.DetailColl)
            {
                if (i >= grdMain.RowCount - 1)
                    grdMain.Rows.Add();
                grdMain.Rows[i].Cells[HTagCol].Value = "*";
                grdMain.Rows[i].Cells[HProcIDCol].Value = oSub.HProcID.ToString();
                if (oProc.GetInfoByID(oSub.HProcID))
                {
                    grdMain.Rows[i].Cells[HProcNumberCol].Value = oProc.omodel.HNumber;
                    grdMain.Rows[i].Cells[HProcNameCol].Value = oProc.omodel.HName;
                }
                else
                {
                    grdMain.Rows[i].Cells[HProcNumberCol].Value = "";
                    grdMain.Rows[i].Cells[HProcNameCol].Value = "";
                }
                //
                grdMain.Rows[i].Cells[HCenterIDCol].Value = oSub.HCenterID.ToString();
                if (oCenter.GetInfoByID(oSub.HCenterID))
                {
                    grdMain.Rows[i].Cells[HCenterNumberCol].Value = oCenter.omodel.HNumber;
                    grdMain.Rows[i].Cells[HCenterNameCol].Value = oCenter.omodel.HName;
                }
                else
                {
                    grdMain.Rows[i].Cells[HCenterNameCol].Value = "";
                    grdMain.Rows[i].Cells[HCenterNumberCol].Value = "";
                }
                //
                grdMain.Rows[i].Cells[HWorkStationIDCol].Value = oSub.HWorkStationID.ToString();
                if (oStation.GetInfoByID(oSub.HWorkStationID))
                {
                    grdMain.Rows[i].Cells[HWorkStationNumberCol].Value = oStation.omodel.HNumber;
                    grdMain.Rows[i].Cells[HWorkStationNameCol].Value = oStation.omodel.HName;
                }
                else
                {
                    grdMain.Rows[i].Cells[HWorkStationNumberCol].Value = "";
                    grdMain.Rows[i].Cells[HWorkStationNameCol].Value = "";
                }
                //
                grdMain.Rows[i].Cells[HProcNoCol].Value = oSub.HProcNo.ToString();
                grdMain.Rows[i].Cells[HRemarkCol].Value = oSub.HRemark;
                grdMain.Rows[i].Cells[HEntryIDCol].Value = oSub.HEntryID;
                i = i + 1;
            }
            //GRID允许刷新
            DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid);
            //
            //Sub_OperStatus();
        }
        #endregion
        #region ä¿å­˜å•据
        [Route("Gy_SOPBill/ModifyByID")]
        [HttpPost]
        public object Sub_SaveBill([FromBody] JObject oMain)
        /// <summary>
        /// è¿”回生产资源生产状态工单列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Sc_ICMOBillStatus_Tmp/list")]
        [HttpGet]
        public object list(string sWhere, string user)
        {
            try
            {
                var _value = oMain["oMain"].ToString();
                string msg1 = _value.ToString();
                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                string msg2 = sArray[0].ToString();
                string msg3 = sArray[1].ToString();//当前人
                //反序列化
                msg2 = "[" + msg2.ToString() + "]";
                List<SOPBill> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SOPBill>>(msg2);
                string HBillNo = list[0].HBillNo;
                DateTime HDate = list[0].HDate;
                string HName = list[0].HName;
                int HMaterID = list[0].HMaterID;
                string HMaterNumber = list[0].HMaterNumber;
                string HMaterName = list[0].HMaterName;
                string HMaterModel = list[0].HMaterModel;
                int HUnitID = list[0].HUnitID;
                string HUnitNumber = list[0].HUnitNumber;
                string HUnitName = list[0].HUnitName;
                string HRemark = list[0].HRemark;
                bool HStandard = list[0].HStandard;
                bool HUse = list[0].HUse;
                //判断权限
                //if (!ClsPub.Security_Log("Gy_Repair_Edit", 1, false, msg3))
                //编辑权限
                //if (!DBUtility.ClsPub.Security_Log_second("Gy_Material", 1, false, user))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "没有找到该功能模块!";
                //    objJsonResult.Message = "无查看权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                string sql1 = string.Format(@"select * from h_v_Sc_WorkOrderList where HMainID='" + sWhere + "'");
                ds = oCN.RunProcReturn(sql1, "h_v_Sc_WorkOrderList");
                //若MAINDI重复则重新获取
                oCN.BeginTran();
                //主表
                oCN.RunProc("Insert Into Gy_SOPBillMain   " +
                 "(HBillType,HInterID,HBillNo,HDate" +
                 ",HYear,HPeriod,HRemark,HMaker,Hmakedate,HMaterID,HName,HMaterTypeID" +
                 ",HUnitID,HMaterNumber,HUnitNumber,HStandard" +
                 ") " +
                  " values('" + 3305 + "'," + HMaterID + ",'" + HMaterID + "','" + "2022-11-04" + "'" +
                "," + 2022 + "," + 11 + ",'" + HRemark + "','" + "Test" + "'," + "2022-11-04" + "," + HMaterID.ToString() + ",'" + HName + "'," + 656 +
                "," + HUnitID.ToString() + ",'" + HMaterNumber + "','" + HUnitNumber + "','" + HStandard.ToString() +
                "') ");
                //" values(" + 3305 + "','" + 12333 + "','" + "test" + "','" + HDate + "','" +
                //2022 + "','" + 11 + "','" + HRemark + "','" + "Test" + "','" + "2022-11-04" + "','" + HMaterID.ToString() + "','" + HName + "','" + "656" +
                //"','" + HUnitID.ToString() + "','" + HMaterNumber + "','" + HUnitNumber + "','" + HStandard.ToString() +
                //") ");
                //修改上级为非末级代码
                //oCN.RunProc("Update Gy_MouldType set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "新增成功!";
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.Message;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        [Route("Gy_SOPBill/Use")]
        /// <summary>
        /// è¿”回文件清单列表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Sc_ICMOBillStatus_Tmp/Filelist")]
        [HttpGet]
        public object sy_Click()
        public object Filelist()
        {
            if (BillOld.omodel.HInterID == 0)
            {
                objJsonResult.Message = "使用失败!当前作业指导书不是浏览状态!";
                return objJsonResult;
            }
            if (BillOld.Sub_RoutingCheckAndUsed(BillOld.omodel.HInterID))
            {
                objJsonResult.count = 1;
                objJsonResult.Message = "使用成功!";
                return objJsonResult;
            }
            else
            {
                objJsonResult.Message = "使用失败!";
                return objJsonResult;
            }
        }
        [Route("Gy_SOPBill/Cancel")]
        [HttpGet]
        public object fsy_Click()
        {
            if (BillOld.omodel.HInterID == 0)
            {
                objJsonResult.Message = "反使用失败!当前作业指导书不是浏览状态!";
                return objJsonResult;
            }
            if (BillOld.Sub_RoutingUsed_Back(BillOld.omodel.HInterID))
            {
                objJsonResult.count = 1;
                objJsonResult.Message = "反使用成功!";
                return objJsonResult;
            }
            else
            {
                objJsonResult.Message = "反使用失败!";
                return objJsonResult;
            }
        }
        [Route("Gy_SOPBill/UploadFile1")]
        [HttpPost]
        public object UploadFile1()
        {
            string HBillNo = HttpContext.Current.Request.Params["HBillNo"];  //单据号
            string HRemark = HttpContext.Current.Request.Params["HRemark"];  //备注
            string HUserName = HttpContext.Current.Request.Params["HUserName"];  //创建人
            HttpPostedFile files = HttpContext.Current.Request.Files["file"];
            string path = HttpContext.Current.Server.MapPath("~/../Files/" + HBillNo);
            //string path = @"D:\\Files\\"+ HBillNo;
            dynamic dyResult = UpLoadFile(files, path, HBillNo, HRemark, HUserName);
            if (dyResult != null && dyResult.result == 1)
            {
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "上传成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = dyResult.returnval;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        public dynamic UpLoadFile(HttpPostedFile files, string path, string HBillNo, string HRemark, string HUserName)
        {
            dynamic Result_Ob = new { result = 1, returnval = "上传成功!" };
            string filePath = Path.GetFullPath(files.FileName);//文件上传路径
            string fileExtension = Path.GetExtension(files.FileName);// æ–‡ä»¶æ‰©å±•名
            string filename = files.FileName;//文件名
            string fileSavePath = path;// ä¸Šä¼ ä¿å­˜è·¯å¾„
            int filesize = files.ContentLength;//获取上传文件的大小单位为字节byte
            int Maxsize = 40000 * 1024;//定义上传文件的最大空间大小为40M
            try
            {
                if (files == null || files.ContentLength <= 0)
                {
                    Result_Ob = new { result = 0, returnval = "文件不能为空!" };
                    return Result_Ob;
                }
                if (filesize >= Maxsize)
                {
                    Result_Ob = new { result = 0, returnval = "上传文件超过40M,不能上传!" };
                    return Result_Ob;
                }
                //编辑权限
                //if (!DBUtility.ClsPub.Security_Log_second("Gy_Material", 1, false, user))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "无查看权限!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                string sql1 = string.Format(@"select HSno åºå·,HFileName æ–‡ä»¶åç§° from Gy_SOPBillSub2");
                string fileurl = Path.Combine(fileSavePath, filename);
                if (Directory.Exists(fileurl) == true)  //如果存在重名文件就提示
                {
                    Result_Ob = new { result = 0, returnval = "存在同名文件!" };
                    return Result_Ob;
                }
                //删除数据表数据
                ds = oCN.RunProcReturn("delete from Gy_SOPBillSub2 where HFileName='" + filename + "'", "Gy_SOPBillSub2");
                if (Directory.Exists(path))
                {
                    File.Delete(fileurl);      //删除指定文件
                    files.SaveAs(fileurl);
                    string StrPath = "/files/" + HBillNo + "/" + filename;
                    if (File.Exists(fileurl))
                    {
                        //这里可以执行一些其它的操作,比如更新数据库
                        //写入数据表
                        oCN.RunProc("Insert into Gy_SOPBillSub2 (HFileName,HPath,HFileType" +
                                    ",HUpMan,HUpTime,HInterID,HEntryID,HSno,HFileID,HFileSize" +
                                   ") values('"
                                    + filename.ToString() + "','" + filePath.ToString() + "','" +  fileExtension.ToString() + "'" +
                                    ",'" + HUserName + "',getdate()"  + ",'" + 0 + "','" + 0 + "','" + 0 + "','" + 0 + "','" + 0 +
                                   "') ");
                    }
                    else
                    {
                        Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" };
                    }
                }
                else
                {
                    Directory.CreateDirectory(fileSavePath); //添加文件夹
                    files.SaveAs(fileurl);
                    string StrPath = "/files/" + HBillNo + "/" + filename;
                    if (File.Exists(fileurl))
                    {
                        //这里可以执行一些其它的操作,比如更新数据库
                        //写入数据表
                        oCN.RunProc("Insert into Gy_SOPBillSub2 (HFileName,HPath,HFileType" +
                                     ",HUpMan,HUpTime,HInterID,HEntryID,HSno,HFileID,HFileSize" +
                                    ") values('"
                                     + filename.ToString() + "','" + filePath.ToString() + "','" + fileExtension.ToString() + "'" +
                                     ",'" + HUserName + "',getdate()" + ",'" + 111 + "','" + 222 + "','" + 333 + "','" + 444 + "','" + 555 +
                                    "') ");
                    }
                    else
                    {
                        Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" };
                    }
                }
                ds = oCN.RunProcReturn(sql1, "Gy_SOPBillSub2");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                Result_Ob = new { result = 0, returnval = e.Message };
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
            return Result_Ob;
        }
    }
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Gy_SOPBillEditController.cs
New file
@@ -0,0 +1,367 @@
using Newtonsoft.Json.Linq;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using Pub_Class;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Runtime.InteropServices;
using System.Web;
using System.Web.Http;
using System.Windows.Forms;
using WebAPI.Models;
namespace WebAPI.Controllers.基础资料.基础资料
{
    public class Gy_SOPBillEditController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
        public DAL.ClsGy_SOPBill BillNew = new DAL.ClsGy_SOPBill();
        public DAL.ClsGy_SOPBill BillOld = new DAL.ClsGy_SOPBill();
        public bool BillChange;   //
        public DataGridView grdMain = new System.Windows.Forms.DataGridView();
        ClsGridViewSum oSumGrid = new ClsGridViewSum();
        //定义
        public const Int16 HTagCol = 0;
        public const Int16 HSnoCol = 1;
        public const Int16 HProcNoCol = 2;
        public const Int16 HProcIDCol = 3;
        public const Int16 HProcNumberCol = 4;
        public const Int16 HProcNameCol = 5;
        public const Int16 HWorkStationIDCol = 6;
        public const Int16 HWorkStationNumberCol = 7;
        public const Int16 HWorkStationNameCol = 8;
        public const Int16 HCenterIDCol = 9;
        public const Int16 HCenterNumberCol = 10;
        public const Int16 HCenterNameCol = 11;
        public const Int16 HRemarkCol = 12;
        public const Int16 HEntryIDCol = 13;
        DAL.ClsIF_Material_View oMater = new DAL.ClsIF_Material_View();
        DAL.ClsIF_Unit_View oUnit = new DAL.ClsIF_Unit_View();
        DAL.ClsIF_Process_View oProc = new DAL.ClsIF_Process_View();
        DAL.ClsGy_WorkStation_View oStation = new DAL.ClsGy_WorkStation_View();
        DAL.ClsGy_WorkCenter_View oCenter = new DAL.ClsGy_WorkCenter_View();
        #region  è¯»å†™ç±»
        //显示单据
        public void Sub_ShowBill()
        {
            DAL.ClsIF_Material_View oMater = new DAL.ClsIF_Material_View();
            DAL.ClsIF_Unit_View oUnit = new DAL.ClsIF_Unit_View();
            DAL.ClsIF_Process_View oProc = new DAL.ClsIF_Process_View();
            DAL.ClsGy_WorkStation_View oStation = new DAL.ClsGy_WorkStation_View();
            DAL.ClsGy_WorkCenter_View oCenter = new DAL.ClsGy_WorkCenter_View();
            //ClsGy_SourceHlp oSource = new ClsGy_SourceHlp();
            //判断是否存在单据
            if (BillOld.ShowBill(BillOld.omodel.HInterID, ref ClsPub.sExeReturnInfo) == false)
            {
                MessageBox.Show(ClsPub.sExeReturnInfo, "提示");
                return;
            }
            //grid禁止刷新
            //加载表体
            int i = 0;
            foreach (Model.ClsGy_SOPBillSub oSub in BillOld.DetailColl)
            {
                if (i >= grdMain.RowCount - 1)
                    grdMain.Rows.Add();
                grdMain.Rows[i].Cells[HTagCol].Value = "*";
                grdMain.Rows[i].Cells[HProcIDCol].Value = oSub.HProcID.ToString();
                if (oProc.GetInfoByID(oSub.HProcID))
                {
                    grdMain.Rows[i].Cells[HProcNumberCol].Value = oProc.omodel.HNumber;
                    grdMain.Rows[i].Cells[HProcNameCol].Value = oProc.omodel.HName;
                }
                else
                {
                    grdMain.Rows[i].Cells[HProcNumberCol].Value = "";
                    grdMain.Rows[i].Cells[HProcNameCol].Value = "";
                }
                //
                grdMain.Rows[i].Cells[HCenterIDCol].Value = oSub.HCenterID.ToString();
                if (oCenter.GetInfoByID(oSub.HCenterID))
                {
                    grdMain.Rows[i].Cells[HCenterNumberCol].Value = oCenter.omodel.HNumber;
                    grdMain.Rows[i].Cells[HCenterNameCol].Value = oCenter.omodel.HName;
                }
                else
                {
                    grdMain.Rows[i].Cells[HCenterNameCol].Value = "";
                    grdMain.Rows[i].Cells[HCenterNumberCol].Value = "";
                }
                //
                grdMain.Rows[i].Cells[HWorkStationIDCol].Value = oSub.HWorkStationID.ToString();
                if (oStation.GetInfoByID(oSub.HWorkStationID))
                {
                    grdMain.Rows[i].Cells[HWorkStationNumberCol].Value = oStation.omodel.HNumber;
                    grdMain.Rows[i].Cells[HWorkStationNameCol].Value = oStation.omodel.HName;
                }
                else
                {
                    grdMain.Rows[i].Cells[HWorkStationNumberCol].Value = "";
                    grdMain.Rows[i].Cells[HWorkStationNameCol].Value = "";
                }
                //
                grdMain.Rows[i].Cells[HProcNoCol].Value = oSub.HProcNo.ToString();
                grdMain.Rows[i].Cells[HRemarkCol].Value = oSub.HRemark;
                grdMain.Rows[i].Cells[HEntryIDCol].Value = oSub.HEntryID;
                i = i + 1;
            }
            //GRID允许刷新
            DBUtility.Xt_BaseBillFun.SetSumGrid(oSumGrid);
            //
            //Sub_OperStatus();
        }
        #endregion
        #region ä¿å­˜å•据
        [Route("Gy_SOPBill/ModifyByID")]
        [HttpPost]
        public object Sub_SaveBill([FromBody] JObject oMain)
        {
            try
            {
                var _value = oMain["oMain"].ToString();
                string msg1 = _value.ToString();
                string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
                string msg2 = sArray[0].ToString();
                string msg3 = sArray[1].ToString();//当前人
                //反序列化
                msg2 = "[" + msg2.ToString() + "]";
                List<SOPBill> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SOPBill>>(msg2);
                string HBillNo = list[0].HBillNo;
                DateTime HDate = list[0].HDate;
                string HName = list[0].HName;
                int HMaterID = list[0].HMaterID;
                string HMaterNumber = list[0].HMaterNumber;
                string HMaterName = list[0].HMaterName;
                string HMaterModel = list[0].HMaterModel;
                int HUnitID = list[0].HUnitID;
                string HUnitNumber = list[0].HUnitNumber;
                string HUnitName = list[0].HUnitName;
                string HRemark = list[0].HRemark;
                bool HStandard = list[0].HStandard;
                bool HUse = list[0].HUse;
                //判断权限
                //if (!ClsPub.Security_Log("Gy_Repair_Edit", 1, false, msg3))
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "没有找到该功能模块!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //若MAINDI重复则重新获取
                oCN.BeginTran();
                //主表
                oCN.RunProc("Insert Into Gy_SOPBillMain   " +
                 "(HBillType,HInterID,HBillNo,HDate" +
                 ",HYear,HPeriod,HRemark,HMaker,Hmakedate,HMaterID,HName,HMaterTypeID" +
                 ",HUnitID,HMaterNumber,HUnitNumber,HStandard" +
                 ") " +
                  " values('" + 3305 + "'," + HMaterID + ",'" + HMaterID + "','" + "2022-11-04" + "'" +
                "," + 2022 + "," + 11 + ",'" + HRemark + "','" + "Test" + "'," + "2022-11-04" + "," + HMaterID.ToString() + ",'" + HName + "'," + 656 +
                "," + HUnitID.ToString() + ",'" + HMaterNumber + "','" + HUnitNumber + "','" + HStandard.ToString() +
                "') ");
                //" values(" + 3305 + "','" + 12333 + "','" + "test" + "','" + HDate + "','" +
                //2022 + "','" + 11 + "','" + HRemark + "','" + "Test" + "','" + "2022-11-04" + "','" + HMaterID.ToString() + "','" + HName + "','" + "656" +
                //"','" + HUnitID.ToString() + "','" + HMaterNumber + "','" + HUnitNumber + "','" + HStandard.ToString() +
                //") ");
                //修改上级为非末级代码
                //oCN.RunProc("Update Gy_MouldType set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "新增成功!";
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        [Route("Gy_SOPBill/Use")]
        [HttpGet]
        public object sy_Click()
        {
            if (BillOld.omodel.HInterID == 0)
            {
                objJsonResult.Message = "使用失败!当前作业指导书不是浏览状态!";
                return objJsonResult;
            }
            if (BillOld.Sub_RoutingCheckAndUsed(BillOld.omodel.HInterID))
            {
                objJsonResult.count = 1;
                objJsonResult.Message = "使用成功!";
                return objJsonResult;
            }
            else
            {
                objJsonResult.Message = "使用失败!";
                return objJsonResult;
            }
        }
        [Route("Gy_SOPBill/Cancel")]
        [HttpGet]
        public object fsy_Click()
        {
            if (BillOld.omodel.HInterID == 0)
            {
                objJsonResult.Message = "反使用失败!当前作业指导书不是浏览状态!";
                return objJsonResult;
            }
            if (BillOld.Sub_RoutingUsed_Back(BillOld.omodel.HInterID))
            {
                objJsonResult.count = 1;
                objJsonResult.Message = "反使用成功!";
                return objJsonResult;
            }
            else
            {
                objJsonResult.Message = "反使用失败!";
                return objJsonResult;
            }
        }
        [Route("Gy_SOPBill/UploadFile1")]
        [HttpPost]
        public object UploadFile1()
        {
            string HBillNo = HttpContext.Current.Request.Params["HBillNo"];  //单据号
            string HRemark = HttpContext.Current.Request.Params["HRemark"];  //备注
            string HUserName = HttpContext.Current.Request.Params["HUserName"];  //创建人
            HttpPostedFile files = HttpContext.Current.Request.Files["file"];
            string path = HttpContext.Current.Server.MapPath("~/../Files/" + HBillNo);
            //string path = @"D:\\Files\\"+ HBillNo;
            dynamic dyResult = UpLoadFile(files, path, HBillNo, HRemark, HUserName);
            if (dyResult != null && dyResult.result == 1)
            {
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "上传成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = dyResult.returnval;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        public dynamic UpLoadFile(HttpPostedFile files, string path, string HBillNo, string HRemark, string HUserName)
        {
            dynamic Result_Ob = new { result = 1, returnval = "上传成功!" };
            string filePath = Path.GetFullPath(files.FileName);//文件上传路径
            string fileExtension = Path.GetExtension(files.FileName);// æ–‡ä»¶æ‰©å±•名
            string filename = files.FileName;//文件名
            string fileSavePath = path;// ä¸Šä¼ ä¿å­˜è·¯å¾„
            int filesize = files.ContentLength;//获取上传文件的大小单位为字节byte
            int Maxsize = 40000 * 1024;//定义上传文件的最大空间大小为40M
            try
            {
                if (files == null || files.ContentLength <= 0)
                {
                    Result_Ob = new { result = 0, returnval = "文件不能为空!" };
                    return Result_Ob;
                }
                if (filesize >= Maxsize)
                {
                    Result_Ob = new { result = 0, returnval = "上传文件超过40M,不能上传!" };
                    return Result_Ob;
                }
                string fileurl = Path.Combine(fileSavePath, filename);
                if (Directory.Exists(fileurl) == true)  //如果存在重名文件就提示
                {
                    Result_Ob = new { result = 0, returnval = "存在同名文件!" };
                    return Result_Ob;
                }
                //删除数据表数据
                ds = oCN.RunProcReturn("delete from Gy_SOPBillSub2 where HFileName='" + filename + "'", "Gy_SOPBillSub2");
                if (Directory.Exists(path))
                {
                    File.Delete(fileurl);      //删除指定文件
                    files.SaveAs(fileurl);
                    string StrPath = "/files/" + HBillNo + "/" + filename;
                    if (File.Exists(fileurl))
                    {
                        //这里可以执行一些其它的操作,比如更新数据库
                        //写入数据表
                        oCN.RunProc("Insert into Gy_SOPBillSub2 (HFileName,HPath,HFileType" +
                                    ",HUpMan,HUpTime,HInterID,HEntryID,HSno,HFileID,HFileSize" +
                                   ") values('"
                                    + filename.ToString() + "','" + filePath.ToString() + "','" +  fileExtension.ToString() + "'" +
                                    ",'" + HUserName + "',getdate()"  + ",'" + 0 + "','" + 0 + "','" + 0 + "','" + 0 + "','" + 0 +
                                   "') ");
                    }
                    else
                    {
                        Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" };
                    }
                }
                else
                {
                    Directory.CreateDirectory(fileSavePath); //添加文件夹
                    files.SaveAs(fileurl);
                    string StrPath = "/files/" + HBillNo + "/" + filename;
                    if (File.Exists(fileurl))
                    {
                        //这里可以执行一些其它的操作,比如更新数据库
                        //写入数据表
                        oCN.RunProc("Insert into Gy_SOPBillSub2 (HFileName,HPath,HFileType" +
                                     ",HUpMan,HUpTime,HInterID,HEntryID,HSno,HFileID,HFileSize" +
                                    ") values('"
                                     + filename.ToString() + "','" + filePath.ToString() + "','" + fileExtension.ToString() + "'" +
                                     ",'" + HUserName + "',getdate()" + ",'" + 111 + "','" + 222 + "','" + 333 + "','" + 444 + "','" + 555 +
                                    "') ");
                    }
                    else
                    {
                        Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" };
                    }
                }
            }
            catch (Exception e)
            {
                Result_Ob = new { result = 0, returnval = e.Message };
            }
            return Result_Ob;
        }
    }
}
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
    }
}
WebAPI/Controllers/»ù´¡×ÊÁÏ/»ù´¡×ÊÁÏ/Xt_CheckItemBillController.cs
New file
@@ -0,0 +1,262 @@
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_CheckItemBillController : ApiController
    {
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        public SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        #region å®¡æ ¸é¡¹ç›®åˆ—表
        [Route("Xt_CheckItemBill/Xt_CheckItemList")]
        [HttpGet]
        public object Xt_CheckItemList(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //查询权限
                if (!DBUtility.ClsPub.Security_Log_second("Xt_CheckItem_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_CheckItemList where 1=1  ");
                ds = oCN.RunProcReturn(sql1 + sWhere + " order by å®¡æ‰¹é¡¹ç›®ä»£ç  ", "h_v_Xt_CheckItemList");
                //添加列名
                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_CheckItemBill/Xt_CheckItemEdit")]
        [HttpPost]
        public object Xt_CheckItemEdit([FromBody] JObject msg)
        {
            DataSet ds;
            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();
            SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
            //编辑权限
            if (!DBUtility.ClsPub.Security_Log_second("Xt_CheckItem_Edit", 1, false, msg2))
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "无保存权限!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            ListModels oListModels = new ListModels();
            try
            {
                List<Models.Xt_CheckItem> lsmain = new List<Models.Xt_CheckItem>();
                msg1 = msg1.Replace("\\", "");
                msg1 = msg1.Replace("\n", "");  //\n
                lsmain = oListModels.getObjectByJson_Xt_CheckItem(msg1);
                foreach (Xt_CheckItem oItem in lsmain)
                {
                    if (oItem.HNumber.Trim() == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!代码不能为空!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    if (oItem.HName.Trim() == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!名称不能为空!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    //查询数据中是否存在重复代码
                    ds = oCN.RunProcReturn("select * from  Xt_CheckItem where HStopflag=0 and HNumber='" + oItem.HNumber.Trim() + "'", "Xt_CheckItem");
                    //新增时判断
                    if (oItem.HItemID == 0)
                    {
                        if (ds == null || ds.Tables[0].Rows.Count == 0)
                        {
                        }
                        else
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "保存失败!代码重复!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                    }
                }
                //保存
                //保存完毕后处理
                oCN.BeginTran();
                foreach (Xt_CheckItem oItem in lsmain)
                {
                    bool bResult = false;
                    if (oItem.HItemID == 0)
                    {
                        oCN.RunProc("Insert into Xt_CheckItem " +
                            " (HNumber,HName" +
                            ",HStopflag,HRemark) " +
                            " Values('" + oItem.HNumber + "','" + oItem.HName +
                            "'," + Convert.ToString(oItem.HStopFlag ? 1 : 0) + ",'" + oItem.HRemark + "')");
                        bResult = true;
                    }
                    else
                    {
                        oCN.RunProc("Update Xt_CheckItem set " +
                           " HNumber='" + oItem.HNumber + "'" +
                           ",HName='" + oItem.HName + "'" +
                           ",HStopflag=" + Convert.ToString(oItem.HStopFlag ? 1 : 0) +
                           ",HRemark= '" + oItem.HRemark + "' Where HItemID=" + oItem.HItemID);
                        bResult = true;
                    }
                    if (!bResult)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                }
                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
        #region  å®¡æ ¸é¡¹ç›®åˆ é™¤
        [Route("Xt_CheckItemBill/Xt_CheckItemBillDelete")]
        [HttpGet]
        public object Xt_CheckItemBillDelete(string HItemID, string user)
        {
            try
            {
                //删除权限
                if (!DBUtility.ClsPub.Security_Log("Xt_CheckItem_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();//开始事务
                ds = oCN.RunProcReturn("select * from Xt_CheckItem where HItemID=" + HItemID, "Xt_CheckItem");
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "没有数据,无法删除!";
                    objJsonResult.data = null;
                    return objJsonResult; ;
                }
                var HStopflag = Convert.ToBoolean(ds.Tables[0].Rows[0]["HStopflag"]);
                if (HStopflag)
                {
                    oCN.RollBack();//回滚事务
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "数据已删除无法再次删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.RunProc("update Xt_CheckItem set HStopflag=1 where HItemID=" + HItemID);
                oCN.Commit();//提交事务
                objJsonResult.code = "0";
                objJsonResult.count = 1;
                objJsonResult.Message = "* æ•°æ®åˆ é™¤æˆåŠŸï¼";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "删除失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/ListModels.cs
@@ -838,6 +838,18 @@
        }
        /// <summary>
        /// å¤„理新增审核项目的json
        /// </summary>
        /// <param name="jsonString"></param>
        /// <returns></returns>
        public List<Models.Xt_CheckItem> getObjectByJson_Xt_CheckItem(string jsonString)
        {
            jsonString = "[" + jsonString.ToString() + "]";
            List<Models.Xt_CheckItem> list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Models.Xt_CheckItem>>(jsonString);
            return list;
        }
        /// <summary>
        /// å¤„理新增设备维修主表的json
        /// </summary>
        /// <param name="jsonString"></param>
WebAPI/Models/Xt_CheckFlowMain.cs
New file
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebAPI.Models
{
    public class Xt_CheckFlowMain
    {
        public Int64 HInterID;
        public string HName;
        public string HBillTypeID;
        public Int64 HDeptID;
        public bool HStandard;
        public string HRemark;
    }
}
WebAPI/Models/Xt_CheckFlowSub.cs
New file
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebAPI.Models
{
    public class Xt_CheckFlowSub
    {
        public Int64 HInterID;
        public Int64 HEntryID;
        public int HSno;
        public string HFlowNo;
        public long HCheckItemID;
        public bool HJumpFlag;
        public bool HMakerSelf;
        public string HCheckMan;
    }
}
WebAPI/Models/Xt_CheckItem.cs
New file
@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebAPI.Models
{
    public class Xt_CheckItem
    {
        public int HItemID;
        public string HNumber;
        public string HName;
        public string HRemark;
        public bool HStopFlag;
    }
}
WebAPI/Models/»ù´¡×ÊÁÏ/Gy_Duty.cs
New file
@@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebAPI.Models.基础资料
{
    public class Gy_Duty
    {
        public int HItemID;
        public int HParentID;
        public int HLevel;
        public string HNumber { get; set; }
        public string HName { get; set; }
        public string HUserGroupID { get; set; }
        public string HRemark { get; set; }
        public string HShortNumber { get; set; }
        public string HHelpCode { get; set; }
        public bool HStopflag;
        public int HEndFlag;
    }
}
WebAPI/WebAPI.csproj
@@ -439,10 +439,13 @@
    <Compile Include="Controllers\仓存管理\领料发货\Kf_StepFoldOutBillController.cs" />
    <Compile Include="Controllers\仓存管理\验收入库\Kf_StepFoldinBillController.cs" />
    <Compile Include="Controllers\博日自动扫码线\ScanlineAPIController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Gy_DutyBillController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Gy_SOPBillController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Gy_SOPBillListController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Gy_StockCheckItemBillController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Gy_WorkStationBillController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Xt_CheckFlowBillController.cs" />
    <Compile Include="Controllers\基础资料\基础资料\Xt_CheckItemBillController.cs" />
    <Compile Include="Controllers\工资管理\Pay_MonthlySalaryReportController.cs" />
    <Compile Include="Controllers\工资管理\Pay_PieceRateWageReportController.cs" />
    <Compile Include="Controllers\工资管理\Gy_ClassTimePrjBillController.cs" />
@@ -602,10 +605,14 @@
    <Compile Include="Models\TechnologyParameter.cs" />
    <Compile Include="Models\TechnologyParameterUnit.cs" />
    <Compile Include="Models\TechParamByProc.cs" />
    <Compile Include="Models\Xt_CheckFlowMain.cs" />
    <Compile Include="Models\Xt_CheckFlowSub.cs" />
    <Compile Include="Models\Xt_CheckItem.cs" />
    <Compile Include="Models\其它\ReciveBill_FastModel.cs" />
    <Compile Include="Models\动态列\OptionListModel.cs" />
    <Compile Include="Models\基础资料\ConkType.cs" />
    <Compile Include="Models\基础资料\Gy_ClassTimePrj.cs" />
    <Compile Include="Models\基础资料\Gy_Duty.cs" />
    <Compile Include="Models\基础资料\PackType.cs" />
    <Compile Include="Models\基础资料\WorkStation.cs" />
    <Compile Include="Models\工资管理\ClsGy_ClassTimePrj_Model.cs" />
@@ -862,6 +869,7 @@
    <Folder Include="Views\Cj_ComplementGoodsBill\" />
    <Folder Include="Views\Cj_SendGoodsBill\" />
    <Folder Include="Views\Gy_ConkType\" />
    <Folder Include="Views\Gy_DutyBill\" />
    <Folder Include="Views\Gy_EquipType\" />
    <Folder Include="Views\Gy_ICBomBill\" />
    <Folder Include="Views\Gy_MateMould\" />
@@ -896,6 +904,8 @@
    <Folder Include="Views\Sc_WorkBillAutoSortBillMain\" />
    <Folder Include="Views\Sc_WorkBillSortBill\" />
    <Folder Include="Views\Sc_WorkDemandPlanBill\" />
    <Folder Include="Views\Xt_CheckFlowBill\" />
    <Folder Include="Views\Xt_CheckItem\" />
    <Folder Include="Views\Xt_grdAlignment_WMES\" />
  </ItemGroup>
  <ItemGroup>