chenhaozhe
2026-04-09 af78744eacb1e41ef2ba7a2e36cde3f915100ba2
WebAPI/Controllers/CJGL/Sc_ProcExchWorkBackBillController.cs
@@ -68,6 +68,46 @@
        }
        #endregion
        #region 工序返工申请单列表_编辑页面初始化
        [Route("Sc_ProcExchWorkBackBill/Sc_ProcExchWorkBackBillList_Edit")]
        [HttpGet]
        public object Sc_ProcExchWorkBackBillList_Edit(string sWhere, string user)
        {
            try
            {
                List<object> columnNameList = new List<object>();
                string sql1 = "select * from h_v_Sc_ProcExchWorkBackBillList where 1 = 1  ";
                string sql = sql1 + sWhere + " order by hmainid desc";
                ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcExchWorkBackBillList");
                //添加列名
                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;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 查询工序流转卡数据 查询 当前 和 下一条数据
        [Route("Sc_ProcExchWorkBackBill/GetProcessExchangeBillSub")]
        [HttpGet]
@@ -189,7 +229,6 @@
                bool bResult;
                if (msg5==1)
                {
                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else
@@ -336,7 +375,7 @@
        //#region 工序返工申请单 审核
        [Route("Sc_ProcExchWorkBackBill/set_CheckBill")]
        [HttpGet]
        public object set_CheckBill(int HInterID, string CurUserName)
        public object set_CheckBill(int HInterID,string IsAudit, string CurUserName)
        {
            try
            {
@@ -373,7 +412,7 @@
                    //审核
                    if (Cj_StationInBillCheckBill(HInterID, int.Parse(Ds.Tables[0].Rows[0]["HProcExchInterID"].ToString()), CurUserName, ref DBUtility.ClsPub.sExeReturnInfo))
                    if (Cj_StationInBillCheckBill(HInterID, int.Parse(Ds.Tables[0].Rows[0]["HProcExchInterID"].ToString()), CurUserName, IsAudit, ref DBUtility.ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "1";
                        objJsonResult.count = 1;
@@ -411,37 +450,81 @@
        }
        //审核
        public bool Cj_StationInBillCheckBill(Int64 HInterID, int HProcExchInterID, string CurUserName, ref string sReturn)
        public bool Cj_StationInBillCheckBill(Int64 HInterID, int HProcExchInterID, string CurUserName,string HBillOperationType, ref string sReturn)
        {
            try
            {
                oCN.BeginTran();
                oCN.RunProc(" Update Sc_ProcExchWorkBackBillMain set HChecker='" + CurUserName + "',HBillStatus=2,HCheckDate=getdate() Where HInterID=" + HInterID.ToString());
                //回填工序流转卡
                oCN.RunProc("exec h_p_ProcExchWorkBackBill_Check_In " + HInterID.ToString());
                oCN.RunProc("exec h_p_Sc_ProcessExchangeBill_SetRemark " + HProcExchInterID.ToString()); //设置 备注 为 工艺流
                oCN.RunProc("exec h_p_Sc_ProcessExchangeBill_SetUpdate " + HProcExchInterID.ToString()); //设置 末道 首道 转 等信息   器具清单  工艺参数清单;
                DataSet ds = new DataSet();
                //设置条码号  回填 领料批次
                ds = oCN.RunProcReturn("exec h_p_Mes_ProcessExchangeBackBarCode " + HProcExchInterID.ToString(), "h_p_Mes_ProcessExchangeBackBarCode");
                if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) != 0)
                if (HBillOperationType == "1")
                {
                    sReturn = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]).ToString();
                    oCN.RollBack();
                    return false;
                }
                    //回填工序流转卡
                    oCN.RunProc("exec h_p_ProcExchWorkBackBill_Check_In " + HInterID.ToString());
                    oCN.RunProc("exec h_p_Sc_ProcessExchangeBill_SetRemark " + HProcExchInterID.ToString()); //设置 备注 为 工艺流
                    oCN.RunProc("exec h_p_Sc_ProcessExchangeBill_SetUpdate " + HProcExchInterID.ToString()); //设置 末道 首道 转 等信息   器具清单  工艺参数清单;
                    DataSet ds = new DataSet();
                    //设置条码号  回填 领料批次
                    ds = oCN.RunProcReturn("exec h_p_Mes_ProcessExchangeBackBarCode " + HProcExchInterID.ToString(), "h_p_Mes_ProcessExchangeBackBarCode");
                    if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) != 0)
                    {
                        sReturn = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]).ToString();
                        oCN.RollBack();
                        return false;
                    }
                //控制关联数量
                ds = null;
                ds = oCN.RunProcReturn("exec h_p_Sc_ProcessExchangeBill_Checkqty " + HProcExchInterID.ToString(), "h_p_Sc_ProcessExchangeBill_Checkqty");
                if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) != 0)
                    //控制关联数量
                    ds = null;
                    ds = oCN.RunProcReturn("exec h_p_Sc_ProcessExchangeBill_Checkqty " + HProcExchInterID.ToString(), "h_p_Sc_ProcessExchangeBill_Checkqty");
                    if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) != 0)
                    {
                        sReturn = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]).ToString();
                        oCN.RollBack();
                        return false;
                    }
                    oCN.Commit();
                    return true;
                }
                else if(HBillOperationType == "2")
                {
                    sReturn = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]).ToString();
                    //回填工序流转卡
                    DataSet ds0 = oCN.RunProcReturn("exec h_p_ProcExchWorkBackBill_Check_In_Delete " + HInterID.ToString(), "h_p_ProcExchWorkBackBill_Check_In_Delete");
                    if (ds0.Tables[0].Rows[0]["HBack"].ToString() != "0")
                    {
                        sReturn = ds0.Tables[0].Rows[0]["HBackRemark"].ToString();
                        oCN.RollBack();
                        return false;
                    }
                    oCN.RunProc("exec h_p_Sc_ProcessExchangeBill_SetRemark " + HProcExchInterID.ToString()); //设置 备注 为 工艺流
                    oCN.RunProc("exec h_p_Sc_ProcessExchangeBill_SetUpdate " + HProcExchInterID.ToString()); //设置 末道 首道 转 等信息   器具清单  工艺参数清单;
                    DataSet ds = new DataSet();
                    //设置条码号  回填 领料批次
                    ds = oCN.RunProcReturn("exec h_p_Mes_ProcessExchangeBackBarCode " + HProcExchInterID.ToString(), "h_p_Mes_ProcessExchangeBackBarCode");
                    if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) != 0)
                    {
                        sReturn = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]).ToString();
                        oCN.RollBack();
                        return false;
                    }
                    //控制关联数量
                    ds = null;
                    ds = oCN.RunProcReturn("exec h_p_Sc_ProcessExchangeBill_Checkqty " + HProcExchInterID.ToString(), "h_p_Sc_ProcessExchangeBill_Checkqty");
                    if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HBack"]) != 0)
                    {
                        sReturn = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]).ToString();
                        oCN.RollBack();
                        return false;
                    }
                    oCN.Commit();
                    return true;
                }
                else
                {
                    sReturn = "未设置可识别的操作类型!";
                    oCN.RollBack();
                    return false;
                }
                oCN.Commit();
                return true;
            }
            catch (Exception e)
            {
@@ -455,12 +538,12 @@
        #region 工序返工申请单 审核/反审核功能
        [Route("Sc_ProcExchWorkBackBill/CheckSc_ProcExchWorkBackBill")]
        [HttpGet]
        public object CheckSc_ProcExchWorkBackBill(string HInterID, int Type, string user)
        public object CheckSc_ProcExchWorkBackBill(string HInterID, string IsAudit, string CurUserName)
        {
            try
            {
                //判断是否有删除权限
                if (!DBUtility.ClsPub.Security_Log("Sc_ProcExchWorkBackBill_Check", 1, false, user))
                if (!DBUtility.ClsPub.Security_Log("Sc_ProcExchWorkBackBill_Check", 1, false, CurUserName))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
@@ -478,12 +561,12 @@
                    return objJsonResult;
                }
                ClsPub.CurUserName = user;
                ClsPub.CurUserName = CurUserName;
                BillOld.MvarItemKey = "Sc_ProcExchWorkBackBillMain";
                oCN.BeginTran();//开始事务
                //Type 1 审核  2  反审核
                if (Type == 1)
                if (IsAudit == "1")
                {
                    //判断单据是否已经审核
                    DataSet ds;
@@ -504,7 +587,7 @@
                    //审核前控制
                    string HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
                    sql = "exec h_p_Sc_ProcExchWorkBackBill_BeforeCheckCtrl " + int.Parse(HInterID) + ",'" + HBillNo + "','" + user + "'";
                    sql = "exec h_p_Sc_ProcExchWorkBackBill_BeforeCheckCtrl " + int.Parse(HInterID) + ",'" + HBillNo + "','" + CurUserName + "'";
                    ds = oCN.RunProcReturn(sql, "h_p_Sc_ProcExchWorkBackBill_BeforeCheckCtrl");
                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
                    {
@@ -525,7 +608,7 @@
                    }
                    //审核单据
                    if (!BillOld.CheckBill(Int64.Parse(HInterID), HBillNo, "h_p_Sc_ProcExchWorkBackBill_AfterCheckCtrl", user, ref ClsPub.sExeReturnInfo))
                    if (!BillOld.CheckBill(Int64.Parse(HInterID), HBillNo, "h_p_Sc_ProcExchWorkBackBill_AfterCheckCtrl", CurUserName, ref ClsPub.sExeReturnInfo))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 1;
@@ -554,7 +637,7 @@
                    //反审核前控制
                    string HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
                    sql = "exec h_p_Sc_ProcExchWorkBackBill_BeforeUnCheckCtrl " + int.Parse(HInterID) + ",'" + HBillNo + "','" + user + "'";
                    sql = "exec h_p_Sc_ProcExchWorkBackBill_BeforeUnCheckCtrl " + int.Parse(HInterID) + ",'" + HBillNo + "','" + CurUserName + "'";
                    ds = oCN.RunProcReturn(sql, "h_p_Sc_ProcExchWorkBackBill_BeforeUnCheckCtrl");
                    if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
                    {
@@ -575,7 +658,7 @@
                    }
                    //反审核单据
                    if (BillOld.AbandonCheck(Int64.Parse(HInterID), HBillNo, "h_p_Sc_ProcExchWorkBackBill_AfterUnCheckCtrl", user, ref ClsPub.sExeReturnInfo))
                    if (BillOld.AbandonCheck(Int64.Parse(HInterID), HBillNo, "h_p_Sc_ProcExchWorkBackBill_AfterUnCheckCtrl", CurUserName, ref ClsPub.sExeReturnInfo))
                    {
                        //SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
                        //DataSet DSet = oCn.RunProcReturn("exec h_p_Sc_ICMOBill_AbandonCheckCtrl " + int.Parse(HInterID), "h_p_Sc_ICMOBill_AbandonCheckCtrl");