yusijie
2024-10-03 086d903ace6d38a67e2dc69d35429cc9b1480563
WebAPI/Controllers/BaseSet/Gy_ProcessController.cs
@@ -1,4 +1,5 @@
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Pub_Class;
using System;
using System.Collections;
@@ -7,6 +8,9 @@
using System.Data.SqlClient;
using System.Web.Http;
using WebAPI.Models;
using System.Web;
using WebAPI.Controllers.SCGL.日计划管理;
using System.IO;
namespace WebAPI.Controllers
{
    public class Gy_ProcessController : ApiController
@@ -16,6 +20,400 @@
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
        #region 工序 文件上传
        [Route("Gy_Process/Gy_Process_Excel")]
        [HttpPost]
        public object Gy_Process_Excel()
        {
            try
            {
                //获取文件名称
                var file = HttpContext.Current.Request.Files[0];
                //获取文件物理路径
                string ExcelPath = HttpContext.Current.Server.MapPath("~/" + file.FileName);
                //保存文件
                file.SaveAs(ExcelPath);
                NpoiHelper np = new NpoiHelper();
                DataSet ExcelDs = np.ReadExcel(ExcelPath, 1, 1, "0");
                //删除文件
                File.Delete(ExcelPath);
                //创建临时表
                DataTable tb2 = new DataTable("dt2");
                //添加列名
                for (int i = 0; i < ExcelDs.Tables[0].Columns.Count; i++)
                {
                    tb2.Columns.Add(ExcelDs.Tables[0].Rows[0][i].ToString());
                }
                //模板缺少列 但需要从数据库中查询出来显示在页面的字段
                tb2.Columns.Add("HOrgID", typeof(Int32));//组织ID
                tb2.Columns.Add("HDeptID", typeof(Int32));//部门ID
                tb2.Columns.Add("HWorkCenterID", typeof(Int32));//工作中心ID
                tb2.Columns.Add("HQCSchemeID_Fst", typeof(Int32));//首件质检方案ID
                tb2.Columns.Add("HQCSchemeID_Proc", typeof(Int32));//工序质检方案ID
                tb2.Columns.Add("HQCSchemeID_Patrol", typeof(Int32));//巡检质检方案ID
                //添加数据
                for (int i = 1; i < ExcelDs.Tables[0].Rows.Count; i++)
                {
                    DataRow row = tb2.NewRow();
                    for (int j = 0; j < ExcelDs.Tables[0].Columns.Count; j++)
                    {
                        row[j] = ExcelDs.Tables[0].Rows[i][j].ToString();
                    }
                    tb2.Rows.Add(row);
                }
                var error = "";
                //查询工艺路线没有的列
                if (!tb2.Columns.Contains("组织代码"))
                    error += "没有找到【组织代码】的标题,";
                if (!tb2.Columns.Contains("组织名称"))
                    error += "没有找到【组织名称】的标题,";
                if (!tb2.Columns.Contains("工序名称"))
                    error += "没有找到【工序名称】的标题,";
                if (!tb2.Columns.Contains("工序代码"))
                    error += "没有找到【工序代码】的标题,";
                if (!tb2.Columns.Contains("部门代码"))
                    error += "没有找到【部门代码】的标题,";
                if (!tb2.Columns.Contains("部门名称"))
                    error += "没有找到【部门名称】的标题,";
                if (!tb2.Columns.Contains("首件质检方案单据号"))
                    error += "没有找到【首件质检方案单据号】的标题,";
                if (!tb2.Columns.Contains("首件质检方案名称"))
                    error += "没有找到【首件质检方案名称】的标题,";
                if (!tb2.Columns.Contains("工作中心代码"))
                    error += "没有找到【工作中心代码】的标题,";
                if (!tb2.Columns.Contains("工作中心名称"))
                    error += "没有找到【工作中心名称】的标题,";
                if (!tb2.Columns.Contains("工序质检方案单据号"))
                    error += "没有找到【工序质检方案单据号】的标题,";
                if (!tb2.Columns.Contains("工序质检方案名称"))
                    error += "没有找到【工序质检方案名称】的标题,";
                if (!tb2.Columns.Contains("巡检质检方案单据号"))
                    error += "没有找到【巡检质检方案单据号】的标题,";
                if (!tb2.Columns.Contains("巡检质检方案名称"))
                    error += "没有找到【巡检质检方案名称】的标题,";
                if (error.Length > 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = $"Excel模板存在错误,{error}\r\n";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                for (int i = 0; i <= tb2.Rows.Count - 1; i++)
                {
                    string HProcessName = "";
                    string HProcessNum = "";
                    string HORGNumber = "";
                    string HORGName = "";
                    string HDeptNum = "";
                    string HDeptName = "";
                    string HCentNum = "";
                    string HCentName = "";
                    string HQCSchemeName_Fst = "";
                    string HQCSchemeNum_Fst = "";
                    string HQCSchemeName_Proc = "";
                    string HQCSchemeNum_Proc = "";
                    string HQCSchemeName_Patrol = "";
                    string HQCSchemeNum_Patrol = "";
                    HProcessName = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["工序名称"].ToString());
                    HProcessNum = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["工序代码"].ToString());
                    HORGNumber = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["组织代码"].ToString());
                    HORGName = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["组织名称"].ToString());
                    HDeptNum = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["部门代码"].ToString());
                    HDeptName = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["部门名称"].ToString());
                    HCentNum = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["工作中心代码"].ToString());
                    HCentName = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["工作中心名称"].ToString());
                    HQCSchemeNum_Fst = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["首件质检方案单据号"].ToString());
                    HQCSchemeName_Fst = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["首件质检方案名称"].ToString());
                    HQCSchemeNum_Proc = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["工序质检方案单据号"].ToString());
                    HQCSchemeName_Proc = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["工序质检方案名称"].ToString());
                    HQCSchemeNum_Patrol = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["巡检质检方案单据号"].ToString());
                    HQCSchemeName_Patrol = DBUtility.ClsPub.isStrNull(tb2.Rows[i]["巡检质检方案名称"].ToString());
                    //检查物料
                    int index = i + 1;
                    if (HORGNumber != "")
                    {
                        //查询组织
                        ds = oCN.RunProcReturn("select * from Xt_ORGANIZATIONS where  HNumber='" + HORGNumber + "' and Hname='" + HORGName + "'", "Xt_ORGANIZATIONS");
                        if (ds.Tables[0].Rows.Count == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "第" + index + "行,组织不存在!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            tb2.Rows[i]["HOrgID"] = ds.Tables[0].Rows[0]["HItemID"].ToString();
                        }
                        string HORGid = ds.Tables[0].Rows[0]["HItemID"].ToString();
                        //查询部门
                        ds = oCN.RunProcReturn("select * from Gy_Department where  HNumber='" + HDeptNum + "'  and HUSEORGID=" + HORGid + "", "Gy_Department");
                        if (ds.Tables[0].Rows.Count == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "第" + index + "行,该" + HORGName + "组织,部门:" + HDeptName + ",不存在!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            tb2.Rows[i]["HDeptID"] = ds.Tables[0].Rows[0]["HItemID"].ToString();
                        }
                        //查询首件质检方案
                        ds = oCN.RunProcReturn("select * from Gy_QCCheckProjectMain where  HBillNo='" + HQCSchemeNum_Fst + "' and HUSEORGID=" + HORGid + "", "Gy_QCCheckProjectMain");
                        if (ds.Tables[0].Rows.Count == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "第" + index + "行,该" + HORGName + "组织,首件质检方案:" + HQCSchemeName_Fst + ",不存在!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            tb2.Rows[i]["HQCSchemeID_Fst"] = ds.Tables[0].Rows[0]["HInterID"].ToString();
                        }
                        //查询工序质检方案
                        ds = oCN.RunProcReturn("select * from Gy_QCCheckProjectMain where  HBillNo='" + HQCSchemeNum_Proc + "' and HUSEORGID=" + HORGid + "", "Gy_QCCheckProjectMain");
                        if (ds.Tables[0].Rows.Count == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "第" + index + "行,该" + HORGName + "组织,工序质检方案:" + HQCSchemeName_Proc + ",不存在!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            tb2.Rows[i]["HQCSchemeID_Proc"] = ds.Tables[0].Rows[0]["HInterID"].ToString();
                        }
                        //查询巡检质检方案
                        ds = oCN.RunProcReturn("select * from Gy_QCCheckProjectMain where  HBillNo='" + HQCSchemeNum_Patrol + "' and HUSEORGID=" + HORGid + "", "Gy_QCCheckProjectMain");
                        if (ds.Tables[0].Rows.Count == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "第" + index + "行,该" + HORGName + "组织,巡检质检方案:" + HQCSchemeName_Patrol + ",不存在!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            tb2.Rows[i]["HQCSchemeID_Patrol"] = ds.Tables[0].Rows[0]["HInterID"].ToString();
                        }
                        //查询工作中心
                        ds = oCN.RunProcReturn("select * from Gy_WorkCenter where  HNumber='" + HCentNum + "' and HUSEORGID=" + HORGid + "", "Gy_WorkCenter"); //
                        if (ds.Tables[0].Rows.Count == 0)
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "第" + index + "行,该" + HORGName + "组织,工作中心:" + HCentName + ",不存在!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        else
                        {
                            tb2.Rows[i]["HWorkCenterID"] = ds.Tables[0].Rows[0]["HItemID"].ToString();
                        }
                        //工序名称
                        if (HProcessName == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "第" + index + "行,工序名称不能为空!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                        //工序代码
                        if (HProcessNum == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "第" + index + "行,工序资源代码不能为空!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    else
                    {
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
                        objJsonResult.Message = "第" + index + "行,组织代码为空";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = error;
                objJsonResult.data = tb2;
                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_Process/Gy_Process_btnSave")]
        [HttpPost]
        public object Gy_Process_btnSave([FromBody] JObject sMainSub)
        {
            var _value = sMainSub["sMainSub"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { "&和" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string user = sArray[1].ToString();
            try
            {
                if (!DBUtility.ClsPub.Security_Log("Gy_Porcess_Edit", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无保存权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                List<object> Excel = Newtonsoft.Json.JsonConvert.DeserializeObject<List<object>>(msg2);
                List<Dictionary<string, string>> list = new List<Dictionary<string, string>>();
                foreach (JObject item in Excel)
                {
                    Dictionary<string, string> dic = new Dictionary<string, string>();
                    foreach (var itm in item.Properties())
                    {
                        dic.Add(itm.Name, itm.Value.ToString());
                    }
                    list.Add(dic);
                }
                oCN.BeginTran();
                int i = 1;
                foreach (Dictionary<string, string> item in list)
                {
                    string HDeptID = item["HDeptID"].ToString();//部门
                    string HOrgID = item["HOrgID"].ToString();//组织ID
                    string HWorkCenterID = item["HWorkCenterID"].ToString();//工作中心
                    string HQCSchemeID_Fst = item["HQCSchemeID_Fst"].ToString();//首件质检方案ID
                    string HQCSchemeID_Proc = item["HQCSchemeID_Proc"].ToString();//工序质检方案ID
                    string HQCSchemeID_Patrol = item["HQCSchemeID_Patrol"].ToString();//巡检质检方案ID
                    string HProcessName = item["工序名称"].ToString();
                    string HProcessNum = item["工序代码"].ToString();
                    string sShortNumber;
                    sShortNumber = DBUtility.ClsPub.GetShortNumber(HProcessNum);//短代码
                    if (sShortNumber.Trim() == "")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!短代码为空!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    int HEndFlag = 1;//末级标志
                    int HLevel = DBUtility.ClsPub.GetLevel(HProcessNum); //等级
                    if (!DBUtility.ClsPub.AllowNumber(HProcessNum.Trim()))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!代码中不能出现连续‘.’并且首位末位不能为‘.’!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    ds = oCN.RunProcReturn("select * from Gy_Process where HNumber='" + HProcessNum + "'", "Gy_Source");
                    if (ds.Tables[0].Rows.Count == 0)
                    {
                        string sql = "insert into Gy_Process(HName,HNumber,HDeptID,HUSEORGID,HCREATEORGID,HWorkCenterID,HShortNumber,HQCSchemeID_Fst,HQCSchemeID_Proc,HQCSchemeID_Patrol,HEndFlag,HLevel,HHelpCode,HParentID,HStopflag,HRemark,HTypeFlow,HTypeCount)" +
                            $"values('{HProcessName}', '{HProcessNum}',{HDeptID}, {HOrgID}, {HOrgID}, {HWorkCenterID}, '{sShortNumber}',{HQCSchemeID_Fst},{HQCSchemeID_Proc},{HQCSchemeID_Patrol},{HEndFlag},{HLevel},'',0,0,'',0,0)";
                        oCN.RunProc(sql);
                    }
                    else
                    {
                        oCN.RunProc("   update  Gy_Process set HWorkCenterID=" + HWorkCenterID + ",HDeptID=" + HDeptID + ",HQCSchemeID_Fst=" + HQCSchemeID_Fst + ",HQCSchemeID_Proc=" + HQCSchemeID_Proc + ",HQCSchemeID_Patrol=" + HQCSchemeID_Patrol + "  where HNumber='" + HProcessNum + "'");
                    }
                    i++;
                }
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "导入成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                LogService.Write(e);
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        /// <summary>
        /// 新增单据-保存按钮
        ///参数:string sql。
@@ -304,7 +702,7 @@
                bool HTypeCount = list[0].HTypeCount;
                string HDeptNumber = "";
                long HLevel = ClsPub.GetLevel(list[0].HNumber.Trim());
                bool HEndFlag = false;
                bool HEndFlag = true;
                long HProcessID_K3 = list[0].HProcessID_K3;
                string HBillSubType = list[0].HType;
                bool HAutoTrunFlag = list[0].HAutoTrunFlag;
@@ -312,7 +710,7 @@
                string HOverFixPrice = list[0].HOverFixPrice;
                string HSNo = list[0].HSNo;
                string HBarCode = list[0].HBarCode;
                string HProcMulID = list[0].HProcMulID;
                string HProcMulID = list[0].HProcMulID==null?"0": list[0].HProcMulID;
                string HProcCheckNote = list[0].HProcCheckNote;
                string HRemark = list[0].HRemark;
                bool HStopflag = list[0].HStopflag;
@@ -321,6 +719,23 @@
                string HBarCodeForBase = list[0].HBarCodeForBase;
                long HDeptID = list[0].HDeptID;
                long HProcID = list[0].HProcID;
                int HUSEORGID = list[0].HUSEORGID;
                bool HTProcessFlag = list[0].HTProcessFlag;
                int HQCSchemeID_Fst = list[0].HQCSchemeID_Fst;
                int HQCSchemeID_Proc = list[0].HQCSchemeID_Proc;
                int HQCSchemeID_Patrol = list[0].HQCSchemeID_Patrol;
                long HWorkCenterID = list[0].HWorkCenterID;    //工作中心
                long HBadWHID = list[0].HBadWHID; //不良仓库
                long HWasterWHID = list[0].HWasterWHID; //报废仓库
                long HBadCountDevelopWHID = list[0].HBadCountDevelopWHID; //研发不良品仓库
                long HWWBadWHID = list[0].HWWBadWHID; //委外不良仓库
                long HWWWasterWHID = list[0].HWWWasterWHID; //委外报废仓库
                long HWHID = list[0].HWHID; //良品仓库
                string HPayMentType = list[0].HPayMentType; //计件工资类型
                //判断权限
                //if (!ClsPub.Security_Log("Gy_Process_Edit", 1, false, msg3))
@@ -358,12 +773,16 @@
                        " (HNumber,HName,HHelpCode,HShortNumber,HParentID" +
                        ",HTypeFlow,HTypeCount,HDeptNumber,HSNo" +
                        ",HLevel,HEndFlag,HStopflag,HRemark,HDeptID,HBarCodeForBase,HProcessID_K3,HBillSubType,HAutoTrunFlag" +
                        ",HFixPrice,HOverFixPrice,HProcMulID,HProcCheckNote) " +
                        ",HFixPrice,HOverFixPrice,HProcMulID,HProcCheckNote" +
                        ",HUSEORGID,HWorkCenterID,HBadWHID,HWasterWHID,HBadCountDevelopWHID,HWWBadWHID,HWWWasterWHID,HWHID,HTProcessFlag" +
                        ",HQCSchemeID_Fst,HQCSchemeID_Proc,HQCSchemeID_Patrol,HPayMentType) " +
                        " Values('" + HNumber + "','" + HName + "','" + HHelpCode + "','" + HShortNumber + "'," + HParentID.ToString() +
                        "," + Convert.ToString(HTypeFlow ? 1 : 0) + "," + Convert.ToString(HTypeCount ? 1 : 0) + ",'" + HDeptNumber + "','" + HSNo.ToString() +
                        "'," + HLevel.ToString() + "," + Convert.ToString(HEndFlag ? 1 : 0) + "," + Convert.ToString(HStopflag ? 1 : 0) + ",'" + HRemark + "'," + HDeptID +
                        ",'" + HBarCode + "'," + HProcessID_K3 + ",'" +HBillSubType + "'," + Convert.ToString(HAutoTrunFlag ? 1 : 0) +
                        ",'" + HFixPrice.ToString() + "'," + HOverFixPrice.ToString() + "," + HProcMulID.ToString() + ",'" + HProcCheckNote.ToString() + "')", ref DBUtility.ClsPub.sExeReturnInfo);
                        ",'" + HBarCode + "'," + HProcessID_K3 + ",'" + HBillSubType + "'," + Convert.ToString(HAutoTrunFlag ? 1 : 0) +
                        ",'" + HFixPrice.ToString() + "'," + HOverFixPrice.ToString() + "," + HProcMulID.ToString() + ",'" + HProcCheckNote.ToString() + "'" +
                        "," + HUSEORGID + "," + HWorkCenterID + "," + HBadWHID + "," + HWasterWHID + "," + HBadCountDevelopWHID + "," + HWWBadWHID + "," + HWWWasterWHID + "," + HWHID + "," + Convert.ToString(HTProcessFlag ? 1 : 0) + "," + HQCSchemeID_Fst + "," + HQCSchemeID_Proc + "," + HQCSchemeID_Patrol
                        + ",'" + HPayMentType + "'" + ")", ref DBUtility.ClsPub.sExeReturnInfo);
                    //修改上级为非末级代码
                    oCN.RunProc("Update Gy_Process set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
                    oCN.Commit();
@@ -384,16 +803,28 @@
                        ",HSNo= " + HSNo +
                        ",HLevel= " + HLevel +
                        ",HEndFlag= '" + HEndFlag + "'" +
                        ",HTProcessFlag= '" + HTProcessFlag + "'" +
                        ",HStopflag= '" + HStopflag + "'" +
                        ",HRemark='" + HRemark + "'" +
                        ",HDeptID= " + HDeptID +
                        ",HBarCodeForBase='" + HBarCodeForBase + "'" +
                        ",HBarCodeForBase='" + HBarCode + "'" +
                        ",HProcessID_K3= " + HProcessID_K3 +
                        ",HBillSubType='" + HBillSubType + "'" +
                        ",HAutoTrunFlag= '" + HAutoTrunFlag + "'" +
                        ",HFixPrice= " + HFixPrice +
                        ",HOverFixPrice= " + HOverFixPrice +
                        ",HProcMulID= " + HProcMulID +
                        ",HWorkCenterID= " + HWorkCenterID +
                        ",HBadWHID= " + HBadWHID +
                        ",HWasterWHID= " + HWasterWHID +
                        ",HBadCountDevelopWHID= " + HBadCountDevelopWHID +
                        ",HWWBadWHID= " + HWWBadWHID +
                        ",HWWWasterWHID= " + HWWWasterWHID +
                        ",HWHID= " + HWHID +
                        ",HQCSchemeID_Fst= " + HQCSchemeID_Fst +
                        ",HQCSchemeID_Proc= " + HQCSchemeID_Proc +
                        ",HQCSchemeID_Patrol= " + HQCSchemeID_Patrol +
                        ",HPayMentType= '" + HPayMentType + "'" +
                        ",HProcCheckNote='" + HProcCheckNote + "' Where HItemID=" + HItemID, ref DBUtility.ClsPub.sExeReturnInfo);
                    //修改上级为非末级代码
                    oCN.RunProc("Update Gy_Process set HEndflag=0 where HItemID=" + HParentID, ref DBUtility.ClsPub.sExeReturnInfo);
@@ -428,6 +859,7 @@
        {
            try
            {
                List<object> columnNameList = new List<object>();
                //查看权限
                if (!DBUtility.ClsPub.Security_Log("Gy_Process_Query", 1, false, user))
                {
@@ -449,12 +881,21 @@
                    ds = oCN.RunProcReturn(sql, "h_v_Gy_ProcessList");
                }
                //添加列名
                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.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
                //}
                //else
@@ -516,7 +957,7 @@
                return objJsonResult;
            }
        }
        /// <summary>Gy_Process/cx
        /// <summary>
        /// 工序列表删除功能
        /// </summary>
        /// <returns></returns>
@@ -607,5 +1048,195 @@
        }
        //
        #region 工序审核、反审核
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsAudit">审核(0),反审核(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("Gy_Process/AuditGy_Process")]
        [HttpGet]
        public object AuditGy_Process(int HInterID, int IsAudit, string CurUserName)
        {
            try
            {
                //审核权限
                if (!DBUtility.ClsPub.Security_Log_second("Gy_Process_Check", 1, false, CurUserName))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "审核失败!无权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                var ds = oCN.RunProcReturn("select * from Gy_Process where HItemID=" + HInterID, "Gy_Process");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    if (IsAudit == 0)  //审核判断
                    {
                        if (ds.Tables[0].Rows[0]["HCheckEmp"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已审核!不能再次审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    if (IsAudit == 1) //反审核判断
                    {
                        if (ds.Tables[0].Rows[0]["HCheckEmp"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据未审核!不需要反审核!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据不存在!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                if (IsAudit == 0)  //审核判断
                {
                    oCN.RunProc("update Gy_Process set HCheckEmp='" + CurUserName + "',HCheckTime=getdate() where HItemID=" + HInterID);
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "审核成功";
                    objJsonResult.data = null;
                }
                if (IsAudit == 1) //反审核判断
                {
                    oCN.RunProc("update Gy_Process set HCheckEmp='',HCheckTime=null where HItemID=" + HInterID);
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "反审核成功";
                    objJsonResult.data = null;
                }
                oCN.Commit();
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "审核失败或者反审核失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 工序禁用、反禁用
        /// <summary>
        ///
        /// </summary>
        /// <param name="HInterID">单据ID</param>
        /// <param name="IsStop">禁用(0),反禁用(1)</param>
        /// <param name="CurUserName">审核人</param>
        /// <returns></returns>
        [Route("Gy_Process/StopGy_Process")]
        [HttpGet]
        public object StopGy_Process(int HInterID, int IsStop, string CurUserName)
        {
            try
            {
                //审核权限
                if (!DBUtility.ClsPub.Security_Log_second("Gy_Process_Stop", 1, false, CurUserName))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "禁用失败!无权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                var ds = oCN.RunProcReturn("select * from Gy_Process where HItemID=" + HInterID, "Gy_Process");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    if (IsStop == 0)  //禁用判断
                    {
                        if (ds.Tables[0].Rows[0]["HStopEmp"].ToString() != "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据已禁用!不能再次禁用!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                    if (IsStop == 1) //反禁用判断
                    {
                        if (ds.Tables[0].Rows[0]["HStopEmp"].ToString() == "")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "单据未禁用!不需要反禁用!";
                            objJsonResult.data = null;
                            return objJsonResult;
                        }
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "单据不存在!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();
                if (IsStop == 0)  //禁用判断
                {
                    oCN.RunProc("update Gy_Process set HStopEmp='" + CurUserName + "',HStopTime=getdate(),HStopflag=1 where HItemID=" + HInterID);
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "禁用成功";
                    objJsonResult.data = null;
                }
                if (IsStop == 1) //反禁用判断
                {
                    oCN.RunProc("update Gy_Process set HStopEmp='',HStopTime=null,HStopflag=0 where HItemID=" + HInterID);
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "反禁用成功";
                    objJsonResult.data = null;
                }
                oCN.Commit();
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "禁用失败或者反禁用失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}