wtt
2024-11-07 8f267d23ba2d8530e3099c145b48b772016b447b
WebAPI/Controllers/JHGL/Gy_RoutingBillController.cs
@@ -282,19 +282,38 @@
                else if (OperationType == 3 || ds.Tables[0].Rows.Count != 0)
                { //修改
                    //修改
                    DataSet dss;
                    dss = oCN.RunProcReturn("select * from Gy_RoutingBillMain where hmainid=" + HInterID + " and 单据号='" + HBillNo + "'", "Gy_RoutingBillMain");
                    //判断是否可编辑
                    if (dss.Tables[0].Rows[0]["审核人"].ToString() != "" && dss.Tables[0].Rows[0]["审核人"] != null)
                    if (oSystemParameter.omodel.WMS_CampanyName == "乔一")
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "此单据已经被审核,不允许修改!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    }
                    else
                    {
                        //修改
                        DataSet dss;
                        dss = oCN.RunProcReturn("select * from Gy_RoutingBillMain where HInterID=" + HInterID + " and HBillNo='" + HBillNo + "'", "Gy_RoutingBillMain");
                        //判断是否可编辑
                        if ((dss.Tables[0].Rows[0]["HChecker"].ToString() != "" && dss.Tables[0].Rows[0]["HChecker"] != null) || (dss.Tables[0].Rows[0]["HBillStatus"].ToString() != "1" && dss.Tables[0].Rows[0]["HBillStatus"].ToString() != "0" && dss.Tables[0].Rows[0]["HBillStatus"].ToString() != "5"))
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "此单据状态未在创建,不允许修改!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                        dss = oCN.RunProcReturn("select COUNT(*) as number from Sc_ProcessExchangeBillMain where HRoutingBillID = " + HInterID, "Gy_RoutingBillMain");
                        //判断是否可编辑
                        if (dss.Tables[0].Rows[0]["number"].ToString() != "0")
                        {
                            objJsonResult.code = "0";
                            objJsonResult.count = 0;
                            objJsonResult.Message = "此单据已经被引用,不允许修改!";
                            objJsonResult.data = 1;
                            return objJsonResult;
                        }
                    }
                    oCN.RunProc("update Gy_RoutingBillMain  set " +
                       "HDate='" + HDate +
                       "',HYear='" + HYear + "',HPeriod='" + HPeriod + "',HRemark='" + HRemark + "',hupdater='" + HMaker +
@@ -362,11 +381,11 @@
                //是否勾选默认工艺路线
                if (HStandard)
                {
                    //设置默认工艺路线
                    oCN.RunProc("exec h_p_Gy_RoutingBillCheck " + HInterID);  //设置默认工艺路线
                }
                //if (HStandard)
                //{
                //    //设置默认工艺路线
                //    oCN.RunProc("exec h_p_Gy_RoutingBillCheck " + HInterID + ",'" + user + "'");
                //}
             
                //判断是否重复工序号
                ds = oCN.RunProcReturn("exec h_p_Gy_RoutingCtrl " + HInterID, "h_p_Gy_RoutingCtrl");
@@ -1258,8 +1277,20 @@
                if (IsAudit == 0)  //审核判断
                {
                    oCN.RunProc("update Gy_RoutingBillMain set HChecker='" + CurUserName + "',HCheckDate=getdate() where HInterID=" + HInterID);
                    oCN.RunProc("update Gy_RoutingBillMain set HChecker='" + CurUserName + "',HCheckDate=getdate(),HBillStatus=2 where HInterID=" + HInterID);
                    //获取系统参数
                    string Ret = "";
                    if (oSystemParameter.ShowBill(ref Ret))
                    {
                        //判断客户
                        if (oSystemParameter.omodel.WMS_CampanyName == "添康科技") //系统参数
                        {
                            //刷新默认工艺路线
                            oCN.RunProc("exec h_p_Gy_RoutingBillCheck " + HInterID + ",'" + CurUserName + "'");
                        }
                    }
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "审核成功";
@@ -1545,7 +1576,7 @@
                    " LEFT JOIN Gy_RoutingBillMain as po ON a.hmainid = po.HInterID" +
                    " LEFT JOIN Xt_CheckItem as i ON i.HItemID = c.HCheckItemID" +
                    " LEFT JOIN Xt_CheckUserRight as cr ON cr.HCheckItemID = i.HItemID and cr.HCheckFlowInterID = m.HInterID" +
                    " where po.HBillStatus = 6 and po.HCheckItemNowID = i.HItemID  and cr.HUserID = '" + userid + "'";
                    " where 工序代码 != '9999' and a.HBillSubType<>'SUB' and po.HBillStatus = 6 and po.HCheckItemNowID = i.HItemID  and cr.HUserID = '" + userid + "'";
                ds = oCN.RunProcReturn(sql, "h_v_Gy_RoutingBillList");
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
@@ -1595,7 +1626,7 @@
                string sql = "  select DISTINCT a.*,c.HItemID as HCheckFlowStatusID,m.HName as 审批流,c.HCheckFlowID,i.HName as 审批项目名称,c.HCheckItemID,c.HChecker as 项目审核人,c.HCheckNote as 审批流审核建议,c.HCheckDate 审批流审核日期   from h_v_Gy_RoutingBillList AS a LEFT JOIN Xt_BillCheckFlowStatus AS c ON a.hmainid = c.HBillInterID and a.单据类型 = c.HBillTypeID" +
                    " LEFT JOIN Xt_CheckFlowMain as m ON m.HInterID = c.HCheckFlowID" +
                    " LEFT JOIN Xt_CheckItem as i ON i.HItemID = c.HCheckItemID" +
                    " where c.HCheckDate is  not NUll and c.HChecker = '" + user + "'";
                    " where 工序代码 != '9999' and a.HBillSubType<>'SUB' and c.HCheckDate is  not NUll and c.HChecker = '" + user + "'";
                ds = oCN.RunProcReturn(sql, "h_v_Gy_RoutingBillList");
                foreach (DataColumn col in ds.Tables[0].Columns)
                {
@@ -1633,6 +1664,20 @@
                Int64 lngBillKey = 0;
                lngBillKey = DBUtility.ClsPub.isLong(HInterID);      //对HInterID进行类型的转换
                DAL.ClsGy_RoutingBill oBill = new DAL.ClsGy_RoutingBill();                              //实例化单据操作类,用于进行相关操作
                //获取系统参数判断工艺路线是否启用多级审批禁用
                Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
                string sReturn = "";
                if (oSystemParameter.ShowBill(ref sReturn) == true)
                {
                    if (oSystemParameter.omodel.Gy_RoutingBill_EnableMultiLevel.ToUpper() == "N") //系统参数  未启用自动审核
                    {
                        objJsonResult.code = CodeConstant.FAIL;
                        objJsonResult.count = CountConstant.FAIL;
                        objJsonResult.Message = "工艺路线未启用多级审批禁用";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))                    //根据HInterID获取该单据的数据
                {
                    if (oBill.omodel.HBillStatus != 6)
@@ -1700,6 +1745,21 @@
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //获取系统参数判断工艺路线是否启用多级审批禁用
                Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
                string sReturn = "";
                if (oSystemParameter.ShowBill(ref sReturn) == true)
                {
                    if (oSystemParameter.omodel.Gy_RoutingBill_EnableMultiLevel.ToUpper() == "N") //系统参数  未启用自动审核
                    {
                        objJsonResult.code = CodeConstant.FAIL;
                        objJsonResult.count = CountConstant.FAIL;
                        objJsonResult.Message = "工艺路线未启用多级审批禁用";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                //HInterID数据判断
                if (HInterID <= 0)
@@ -1769,7 +1829,20 @@
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //获取系统参数判断工艺路线是否启用多级审批禁用
                Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
                string sReturn = "";
                if (oSystemParameter.ShowBill(ref sReturn) == true)
                {
                    if (oSystemParameter.omodel.Gy_RoutingBill_EnableMultiLevel.ToUpper() == "N") //系统参数  未启用自动审核
                    {
                        objJsonResult.code = CodeConstant.FAIL;
                        objJsonResult.count = CountConstant.FAIL;
                        objJsonResult.Message = "工艺路线未启用多级审批禁用";
                        objJsonResult.data = null;
                        return objJsonResult;
                    }
                }
                //HInterID数据判断
                if (HInterID <= 0)
@@ -2139,5 +2212,172 @@
        }
        #endregion
        #region 工艺路线 关闭其它单据
        [Route("Gy_Routing/CloseOther")]
        [HttpGet]
        public object CloseOther(int HInterID, string CurUserName)
        {
            DBUtility.ClsPub.CurUserName = CurUserName;
            try
            {
                //判断是否有关闭其它权限
                if (!DBUtility.ClsPub.Security_Log("Gy_RoutingBill_CloseOther", 1, false, CurUserName))
                {
                    objJsonResult.code = CodeConstant.FAIL;
                    objJsonResult.count = CountConstant.FAIL;
                    objJsonResult.Message = "工艺路线无权限关闭其它单据!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                oCN.BeginTran();//开始事务
                //判断单据是否存在
                DataSet ds;
                string sql = "select * from Gy_RoutingBillMain where HinterID = " + HInterID;
                ds = oCN.RunProcReturn(sql, "Gy_RoutingBillMain");
                if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0)
                {
                    //if (!(ds.Tables[0].Rows[0]["HChecker"] != null && ds.Tables[0].Rows[0]["HChecker"].ToString() != ""))
                    //{
                    //    objJsonResult.code = "0";
                    //    objJsonResult.count = 0;
                    //    objJsonResult.Message = "单据未审核!不可以被启用为该物料的默认工艺路线!";
                    //    objJsonResult.data = null;
                    //    return objJsonResult;
                    //}
                }
                else
                {
                    objJsonResult.code = CodeConstant.FAIL;
                    objJsonResult.count = CountConstant.FAIL;
                    objJsonResult.Message = "单据不存在,检查该单据是否已经被删除!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                //刷新默认工艺路线
                oCN.RunProc("exec h_p_Gy_RoutingBillClose " + HInterID + ",'" + CurUserName + "'");
                oCN.Commit();//提交事务
                objJsonResult.code = CodeConstant.SUCCEED;
                objJsonResult.count = CountConstant.SUCCEED;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult; ;
            }
            catch (Exception e)
            {
                objJsonResult.code = CodeConstant.FAIL;
                objJsonResult.count = CountConstant.FAIL;
                objJsonResult.Message = "关闭其它失败失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 待失效报表
        /// <summary>
        /// 待失效报表
        ///参数:string sql。
        ///返回值:object。
        /// </summary>
        [Route("Gy_RoutingBill/getInvalidityReport")]
        [HttpGet]
        public object getInvalidityReport(string sWhere, string user)
        {
            DataSet ds;
            try
            {
                List<object> columnNameList = new List<object>();
                //判断是否有查询权限
                if (!DBUtility.ClsPub.Security_Log("Gy_RoutingBill_Query", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "待失效报表无权限查询!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ds = oCN.RunProcReturn("select * from h_v_Gy_RoutingBillList  where 定额类型 = '临时定额' and 失效时间 BETWEEN DATEADD(DAY, -15, GETDATE()) AND GETDATE() " + sWhere + " order by hmainid desc", "h_v_Gy_RoutingBillList");
                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 = CodeConstant.SUCCEED;
                objJsonResult.count = CountConstant.SUCCEED;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                objJsonResult.list = columnNameList;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "没有返回任何记录!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
            return GetObjectJson(ds);
        }
        #endregion
        #region 工艺路线(集体) 批量多级审核
        [Route("Gy_Routing/CheckAllFlow")]
        [HttpGet]
        public object CheckAll(string HInterIDS, int IsAudit, string CurUserName, string CurUserID)
        {
            try
            {
                //处理字符串
                if (!string.IsNullOrEmpty(HInterIDS))
                {
                    int[] idArray = Array.ConvertAll(HInterIDS.Split(','), int.Parse);
                    // 处理idArray...
                    for (int i = 0; i < idArray.Length; i++)
                    {
                        objJsonResult = (json)AuditGy_Routing_Flow(idArray[i], IsAudit, CurUserName, CurUserID);//审核执行
                        if (objJsonResult.count == 0)
                        {
                            objJsonResult.Message += "第" + (i + 1) + "行出现问题无法继续完成";
                            return objJsonResult;
                        }
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "请选择正确行";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                objJsonResult.code = CodeConstant.SUCCEED;
                objJsonResult.count = CountConstant.SUCCEED;
                objJsonResult.Message = "执行成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                oCN.RollBack();
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "审核或反审核工艺路线失败!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}