VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -127,7 +127,8 @@
                    //获取最大单据号
                    if (i == 1)  //首单获取工单号
                    {
                        sql = @"select isnull(max(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code))),0)+1 as worknumb from TK_Wrk_Man where m_po=@erpordercode";
                        sql = @"select isnull(max(cast(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code)) as numeric)),0)+1 as worknumb
                                from TK_Wrk_Man where m_po=@erpordercode";
                        dynamicParams.Add("@erpordercode", erpordercode);
                        var data = DapperHelper.selectdata(sql, dynamicParams);
                        num = Convert.ToInt32(data.Rows[0]["WORKNUMB"].ToString());
@@ -391,6 +392,83 @@
        }
        #endregion
        #region[MES报废补单工单查询]
        public static ToMessage MesBadOrderSearch(string mesordercode, string sourceorder, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (mesordercode != "" && mesordercode != null)
                {
                    search += "and A.wo_code like '%'+@mesordercode+'%' ";
                    dynamicParams.Add("@mesordercode", mesordercode);
                }
                if (sourceorder != "" && sourceorder != null)
                {
                    search += "and A.m_po like '%'+@sourceorder+'%' ";
                    dynamicParams.Add("@sourceorder", sourceorder);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and A.materiel_code like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and B.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and B.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (createdate != "" && createdate != null)
                {
                    search += "and CONVERT(varchar(100),A.lm_date,23)=@createdate ";
                    dynamicParams.Add("@createdate", createdate);
                }
                if (creatuser != "" && creatuser != null)
                {
                    search += "and U.username like '%'+@creatuser+'%' ";
                    dynamicParams.Add("@creatuser", creatuser);
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.id, A.status,A.wotype,A.wo_code,A.materiel_code as partcode,B.partname,B.partspec,A.plan_qty,A.wkshp_code,C.org_name as wkshp_name,
                            A.route_code,E.name as route_name,A.stck_code,F.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,U.username as lm_user,A.lm_date,S.bad_qty
                            from TK_Wrk_Man A
                            left join (select wo_code,sum(bad_qty) as bad_qty from  TK_Wrk_Step where bad_qty>0 group by wo_code) S on A.wo_code=S.wo_code
                            left join TMateriel_Info B on A.materiel_code=B.partcode
                            left join TOrganization C on A.wkshp_code=C.org_code
                            left join T_Sec_Stck D on A.stck_code=D.code
                            left join TFlw_Rout E on A.route_code=E.code
                            left join T_Sec_Stck F on A.stck_code=F.code
                            left join TUser U on A.lm_user=U.usercode
                            where A.is_delete<>'1'  and A.status='START' and A.wotype='PO' and S.bad_qty>0 " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.count = total;
                mes.data = data.ToList();
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[产品编码查找工艺路线下拉接口]
        public static ToMessage PartSelectRoute(string partcode)
        {
@@ -482,7 +560,6 @@
        }
        #endregion
        #region【生产管理、工单新增、编辑时,选择排程是时获取物料清单版本号】
        public static ToMessage JobCreationSonAddVison(string partnumber)
        {
@@ -563,6 +640,33 @@
                        }
                    }
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[MES工单新增、获取工单号]
        public static ToMessage AddMesOrderCodeSearch()
        {
            string sql = "";
            string wo_code = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取单据号
                sql = @"SELECT 'SGPO'+CONVERT(varchar(12) , getdate(), 112 )+'_'+cast(isnull(max(cast(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code)) as numeric)),0)+1 as varchar) as numct
                        FROM TK_Wrk_Man where wo_code like '%SGPO%'";
                var data = DapperHelper.selecttable(sql);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = data.Rows[0]["numct"].ToString();
            }
            catch (Exception e)
            {
@@ -1000,6 +1104,171 @@
        #endregion
        #region[生产开报工扫码获取当前工序对应的设备(自制)]
        public static ToMessage MesOrderStepEqpSearch(string orderstepqrcode)
        {
            var sql = "";
            string search = "";//定义一个查询参数,查询条件有前端传入
            string ordercode = "";
            string stepcode = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                if (orderstepqrcode != "" && orderstepqrcode != null)
                {
                    string[] arra = orderstepqrcode.Split(';');
                    if (arra.Length == 1) //工单号二维码
                    {
                        ordercode = arra[0]; //获取指定字符串前面的字符
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "请扫描工序二维码!";
                        mes.data = null;
                        return mes;
                    }
                    if (arra.Length == 2) //工单号+工序号二维码
                    {
                        ordercode = arra[0]; //获取指定字符串前面的字符
                        stepcode = arra[1]; //获取指定字符串前面的字符
                    }
                }
                if (stepcode != "")
                {
                    //查找当前工序属性
                    sql = @"select *  from TStep  where stepcode=@stepcode";
                    dynamicParams.Add("@stepcode", stepcode);
                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
                    if (data0.Rows.Count > 0)
                    {
                        if (data0.Rows[0]["FLWTYPE"].ToString() == "W")
                        {
                            mes.code = "300";
                            mes.count = 0;
                            mes.Message = "当前工序任务为外协工序任务,请前往外协操作页签执行!";
                            mes.data = null;
                            return mes;
                        }
                    }
                }
                //根据条件查询工单工序设备(自制工序)
                sql = @"select B.eqp_code,E.name as eqp_name   from TK_Wrk_Step A
                        inner join TFlw_Rteqp B on A.step_code=B.step_code
                        left join  TEqpInfo E on B.eqp_code=E.code
                        where B.style='E' and A.wo_code=@ordercode and A.step_code=@stepcode
                        order by B.eqp_code";
                dynamicParams.Add("@ordercode", ordercode);
                dynamicParams.Add("@stepcode", stepcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "查询成功!";
                    mes.data = data;
                    return mes;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "当前工序任务无可执行设备!";
                    mes.data = null;
                    return mes;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[生产开报工扫码获取当前工序对应的供方(外协)]
        public static ToMessage MesOrderWxStepEqpSearch(string orderstepqrcode)
        {
            var sql = "";
            string search = "";
            string ordercode = "";
            string stepcode = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                if (orderstepqrcode != "" && orderstepqrcode != null)
                {
                    string[] arra = orderstepqrcode.Split(';');
                    if (arra.Length == 1) //工单号二维码
                    {
                        ordercode = arra[0]; //获取指定字符串前面的字符
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "请扫描工序二维码!";
                        mes.data = null;
                        return mes;
                    }
                    if (arra.Length == 2) //工单号+工序号二维码
                    {
                        ordercode = arra[0]; //获取指定字符串前面的字符
                        stepcode = arra[1]; //获取指定字符串前面的字符
                    }
                }
                if (stepcode != "")
                {
                    //查找当前工序属性
                    sql = @"select *  from TStep  where stepcode=@stepcode";
                    dynamicParams.Add("@stepcode", stepcode);
                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
                    if (data0.Rows.Count > 0)
                    {
                        if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")
                        {
                            mes.code = "300";
                            mes.count = 0;
                            mes.Message = "当前工序任务为自制工序任务,请前往自制操作页签执行!";
                            mes.data = null;
                            return mes;
                        }
                    }
                }
                //根据条件查询工单工序外协供方(外协工序)
                sql = @"select B.eqp_code as customercode,C.name as customername   from TK_Wrk_Step A
                       inner join TFlw_Rteqp B on A.step_code=B.step_code
                       left join  TCustomer C on B.eqp_code=C.code
                       where B.style='W' and A.wo_code=@ordercode and A.step_code=@stepcode
                       order by B.eqp_code";
                dynamicParams.Add("@ordercode", ordercode);
                dynamicParams.Add("@stepcode", stepcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "查询成功!";
                    mes.data = data;
                    return mes;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "当前工序无可执行外协供方!";
                    mes.data = null;
                    return mes;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[生产开报工扫码获取工单对应工序任务(自制)]
        public static ToMessage MesOrderStepSearch(string orderstepqrcode, int startNum, int endNum, string prop, string order)