yl
2023-11-02 3e9b79b84905b1cf7a282d1bf03e6de3e85b91bb
VueWebApi/DLL/DAL/DeviceManagerDAL.cs
@@ -359,14 +359,36 @@
        #endregion
        #region[所属车间下拉接口]
        public static ToMessage WorkShopSelect()
        public static ToMessage WorkShopSelect(string stu_torgcode, string description)
        {
            string sql = "";
            string search = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取设备类型数据
                sql = @"select org_code as code,org_name as name from TOrganization where description='W' and is_delete<>'1'";
                var data = DapperHelper.selecttable(sql);
                switch (description)
                {
                    case "":
                        search += "and parent.description=@description ";
                        dynamicParams.Add("@description", "W");
                        break;
                    case "D":
                        search += "and child.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search += "and parent.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                sql = @"select parent.org_code as code,parent.org_name as name
                         from  TOrganization parent
                         left join TOrganization as child on parent.parent_id=child.id
                         where  parent.is_delete<>'1'  " + search;
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = data;
@@ -410,12 +432,31 @@
        #endregion
        #region [设备清单查询]
        public static ToMessage DeviceMangerSearch(string deviceCode, string deviceName, string status, string workShop, string deviceType, string deviceGroup, int startNum, int endNum, string prop, string order)
        public static ToMessage DeviceMangerSearch(string stu_torgcode, string description, string deviceCode, string deviceName, string status, string workShop, string deviceType, string deviceGroup, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (workShop != "" && workShop != null)
                {
                    search += "and A.wksp_code=@workShop ";
                    dynamicParams.Add("@workShop", workShop);
                }
                else
                {
                    switch (description)
                    {
                        case "":
                            search += "and T.description=@description ";
                            dynamicParams.Add("@description", "W");
                            break;
                        case "D":
                            search += "and  L.org_code=@stu_torgcode ";
                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
                            break;
                    }
                }
                if (deviceCode != "" && deviceCode != null)
                {
                    search += "and A.code like '%'+@deviceCode+'%' ";
@@ -430,11 +471,6 @@
                {
                    search += "and A.enable=@status ";
                    dynamicParams.Add("@status", status);
                }
                if (workShop != "" && workShop != null)
                {
                    search += "and A.wksp_code=@workShop ";
                    dynamicParams.Add("@workShop", workShop);
                }
                if (deviceType != "" && deviceType != null)
                {
@@ -458,8 +494,8 @@
                            from TEqpInfo A
                            left join TEqpType B on A.eqptype_code=B.code
                            left join TEqpGroup G on A.eqpgroup_code=G.code
                            left join TOrganization T on A.wksp_code=T.org_code
                            left join TOrganization L on A.Line_code=L.org_code
                            left join TOrganization T on A.wksp_code=T.org_code
                            left join TOrganization as L on T.parent_id=L.id
                            left join TUser U on A.lm_user=U.usercode
                            where A.is_delete<>'1' " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
@@ -1026,12 +1062,28 @@
        #region[设备点检标准列表查询]
        public static ToMessage DeviceCheckStandArdSearch(string checkstandcode, string checkstandname, string checkcontr, int startNum, int endNum, string prop, string order)
        public static ToMessage DeviceCheckStandArdSearch(string stu_torgcode,string stu_torgtypecode,string checkstandcode, string checkstandname, string checkcontr, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            string search1 = "";
            try
            {
                switch (stu_torgtypecode)
                {
                    case "":
                        break;
                    case "D":
                        search1 += "and L.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search1 += "and F.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                if (checkstandcode != "" && checkstandcode != null)
                {
                    search += "and A.code like '%'+@checkstandcode+'%' ";
@@ -1054,10 +1106,15 @@
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.id,A.code,A.name,A.description,A.iscontr,A.is_checkeqp,U.username as lm_user,A.lm_date
                var sql = @"select A.id,A.code,A.name,A.description,A.iscontr,
                            (case when isnull(M.eqpchkmain_code,'')='' then 'N' else 'Y' end) as is_checkeqp,U.username as lm_user,A.lm_date
                            from TEqpchk_Main A
                            left join TUser U on A.lm_user=U.usercode
                            where A.is_delete<>'1' " + search;
                            left join (
                            select distinct eqpchkmain_code from TEqpchk_Eqp M
                            left join TOrganization F on M.torg_code=F.org_code
                            left join TOrganization as L on F.parent_id=L.id
                            where  1=1 "+search1+")  M on A.code=M.eqpchkmain_code where A.is_delete<>'1' " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -1179,8 +1236,8 @@
                                checkitem_name = json.Data.Rows[i]["CHECKITEM_NAME"].ToString(),
                                code = json.code,
                                cycle = json.Data.Rows[i]["CYCLE"].ToString(),
                                chkdesc= json.Data.Rows[i]["CHECKITEM_DESCR"].ToString(),
                                isscan= json.Data.Rows[i]["ISSCAN"].ToString(),
                                chkdesc = json.Data.Rows[i]["CHECKITEM_DESCR"].ToString(),
                                isscan = json.Data.Rows[i]["ISSCAN"].ToString(),
                                lm_user = username,
                                lm_date = DateTime.Now.ToString()
                            }
@@ -1209,7 +1266,7 @@
                    list.Add(new { str = sql, parm = new { checkstaned_code = json.code } });
                    //修改点检标准主表
                    sql = @"update  TEqpchk_Main set name=@checkstaned_name,description=@checkstaned_desc,iscontr=@iscontr where code=@checkstaned_code";
                    list.Add(new { str = sql, parm = new { checkstaned_code = json.code, checkstaned_name = json.name, checkstaned_desc = json.description,iscontr = json.enable } });
                    list.Add(new { str = sql, parm = new { checkstaned_code = json.code, checkstaned_name = json.name, checkstaned_desc = json.description, iscontr = json.enable } });
                    //新增点检标准关联点检项目子表
                    for (int i = 0; i < json.Data.Rows.Count; i++)
                    {
@@ -1286,7 +1343,9 @@
                //删除设备点检标准关联点检项目子表
                sql = @"delete TEqpchk_Deta  where eqpchk_main_code=@checkstand_code";
                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                //删除设备点检标准关联设备表
                sql = @"delete TEqpchk_Eqp  where eqpchkmain_code=@checkstand_code";
                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
@@ -1315,21 +1374,38 @@
        #endregion
        #region[设备点检标准关联工作站查询]
        public static ToMessage DeviceCheckStanedAssociationEqp(string checkstand_code)
        public static ToMessage DeviceCheckStanedAssociationEqp(string stu_torgcode, string description, string checkstand_code)
        {
            string sql = "";
            string search = "";
            var dynamicParams = new DynamicParameters();
            List<StandEqp> list = new List<StandEqp>();
            try
            {
                switch (description)
                {
                    case "":
                        break;
                    case "D":
                        search += "and T.org_code=@stu_torgcode or child.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search += "and T.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                //获取工作站集合(车间,包含已绑定工作站标识)
                sql = @"select distinct T.org_code as wksp_code,T.org_name as wksp_name,'E' as type,(case when B.eqp_code is null then 'N' else 'Y' end) flag 
                        from TOrganization T
                        left join TOrganization as child on T.parent_id=child.id
                        left join(
                        select distinct A.eqp_code,B.wksp_code  from TEqpchk_Eqp A 
                        inner join TEqpInfo B on A.eqp_code=B.code 
                        where A.eqpchkmain_code=@checkstand_code and A.is_delete<>'1' and B.is_delete<>'1'
                        ) B on T.org_code=B.wksp_code where T.description='W' and is_delete<>'1'";
                        ) B on T.org_code=B.wksp_code where T.description='W' and T.is_delete<>'1' " + search;
                dynamicParams.Add("@checkstand_code", checkstand_code);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                for (int i = 0; i < data.Rows.Count; i++)
@@ -1351,9 +1427,8 @@
                    sql = @"select *  from(
                            select AA.code,AA.name,'E' as type,(case when BB.eqpchkmain_code is null then 'N' else 'Y' end) flag,(case when AA.eqpchkmain_code  is null then 'N' else 'Y' end) flage1
                            from(
                            select A.code,A.name,B.eqpchkmain_code
                            select A.code,A.name,'' as eqpchkmain_code
                            from TEqpInfo A
                            left join TEqpchk_Eqp B on A.code=B.eqp_code
                            where A.wksp_code=@wkspcode and A.is_delete<>'1' 
                            ) as AA
                            left join (
@@ -1362,7 +1437,7 @@
                             inner join TEqpchk_Eqp B on A.code=B.eqp_code
                             where A.wksp_code=@wkspcode and B.eqpchkmain_code=@checkstand_code and A.is_delete<>'1'
                            ) as BB on AA.code=BB.code
                            ) as CC where case when flag ='N' and flage1 ='Y' then 0 else 1 end=1";
                            ) as CC ";  //where case when flag ='N' and flage1 ='Y' then 0 else 1 end=1
                    dynamicParams.Add("@checkstand_code", checkstand_code);
                    dynamicParams.Add("@wkspcode", data.Rows[i]["WKSP_CODE"].ToString());
                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
@@ -1393,31 +1468,45 @@
        #endregion
        #region [设备点检标准关联工作站提交]
        public static ToMessage SaveDeviceCheckStanedAssociationEqp(string checkstand_code, string username, List<ObjectData> json)
        public static ToMessage SaveDeviceCheckStanedAssociationEqp(string stu_torgcode, string stu_torgtypecode, string checkstand_code, string username, List<ObjectData> json)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            string search = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                if (json == null || json.Count <= 0)
                switch (stu_torgtypecode)
                {
                    //清除设备点检标准关联设备表数据
                    sql = @"delete TEqpchk_Eqp where eqpchkmain_code=@checkstand_code";
                    list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                    //标记设备点检标准表关联工作站标识
                    sql = @"update TEqpchk_Main set is_checkeqp='N' where code=@checkstand_code";
                    list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                    case "":
                        //清除设备点检标准关联设备表数据
                        sql = @"delete TEqpchk_Eqp where eqpchkmain_code=@checkstand_code";
                        list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                        break;
                    case "D":
                        //清除设备点检标准关联设备表数据
                        sql = @"delete from TEqpchk_Eqp where id in (select A.id   from TEqpchk_Eqp A
                                    left join TOrganization T on A.torg_code=T.org_code
                                    left join TOrganization as L on T.parent_id=L.id
                                    where 1=1 and  A.eqpchkmain_code=@checkstand_code and  L.org_code=@stu_torgcode)";
                        list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code, stu_torgcode = stu_torgcode } });
                        break;
                    case "W":
                        //清除设备点检标准关联设备表数据
                        sql = @"delete from TEqpchk_Eqp where id in (select A.id   from TEqpchk_Eqp A
                                    left join TOrganization T on A.torg_code=T.org_code
                                    left join TOrganization as L on T.parent_id=L.id
                                    where 1=1 and  A.eqpchkmain_code=@checkstand_code and  T.org_code=@stu_torgcode)";
                        list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code, stu_torgcode = stu_torgcode } });
                        break;
                }
                else
                if (json != null && json.Count > 0)
                {
                    //清除设备点检标准关联设备表数据
                    sql = @"delete TEqpchk_Eqp where eqpchkmain_code=@checkstand_code";
                    list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                    //循环写入设备点检标准关联设备表
                    for (int i = 0; i < json.Count; i++)
                    {
                        sql = @"insert into TEqpchk_Eqp(eqpchkmain_code,eqp_code,lm_user,lm_date) values(@checkstand_code,@eqp_code,@lm_user,@lm_date)";
                        sql = @"insert into TEqpchk_Eqp(eqpchkmain_code,eqp_code,lm_user,lm_date,torg_code) values(@checkstand_code,@eqp_code,@lm_user,@lm_date,@torg_code)";
                        list.Add(new
                        {
                            str = sql,
@@ -1426,13 +1515,11 @@
                                eqp_code = json[i].code,
                                checkstand_code = checkstand_code,
                                lm_user = username,
                                lm_date = DateTime.Now.ToString()
                                lm_date = DateTime.Now.ToString(),
                                torg_code= json[i].flag
                            }
                        });
                    }
                    //标记设备点检标准表关联工作站标识
                    sql = @"update TEqpchk_Main set is_checkeqp='Y' where code=@checkstand_code";
                    list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
@@ -1464,12 +1551,28 @@
        #region[设备保养标准列表查询]
        public static ToMessage DeviceRepairStandArdSearch(string repairstandcode, string repairstandname, string repairstanddescr, int startNum, int endNum, string prop, string order)
        public static ToMessage DeviceRepairStandArdSearch(string stu_torgcode,string stu_torgtypecode, string repairstandcode, string repairstandname, string repairstanddescr, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            string search1 = "";
            try
            {
                switch (stu_torgtypecode)
                {
                    case "":
                        break;
                    case "D":
                        search1 += "and L.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search1 += "and F.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                if (repairstandcode != "" && repairstandcode != null)
                {
                    search += "and A.code like '%'+@repairstandcode+'%' ";
@@ -1485,7 +1588,7 @@
                    search += "and A.description like '%'+@repairstanddescr+'%' ";
                    dynamicParams.Add("@repairstanddescr", repairstanddescr);
                }
                if (search == "")
                {
                    search = "and 1=1 ";
@@ -1493,10 +1596,16 @@
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.id,A.code,A.name,A.description,A.is_repaireqp,A.main_cycle,U.username as lm_user,A.lm_date
                var sql = @"select A.id,A.code,A.name,A.description,
                            (case when isnull(M.eapmai_code,'')='' then 'N' else 'Y' end) as is_repaireqp,
                            A.main_cycle,U.username as lm_user,A.lm_date
                            from TEqpmai_Main A
                            left join TUser U on A.lm_user=U.usercode
                            where A.is_delete<>'1' " + search;
                            left join (
                            select distinct eapmai_code from TEqpmai_Eqp M
                            left join TOrganization F on M.torg_code=F.org_code
                            left join TOrganization as L on F.parent_id=L.id
                            where  1=1 "+search1+")  M on A.code=M.eapmai_code where A.is_delete<>'1' " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
@@ -1556,7 +1665,7 @@
                {
                    rout.code = data.Rows[0]["CODE"].ToString();
                    rout.name = data.Rows[0]["NAME"].ToString();
                    rout.repaircycle= data.Rows[0]["MAIN_CYCLE"].ToString();
                    rout.repaircycle = data.Rows[0]["MAIN_CYCLE"].ToString();
                    rout.description = data.Rows[0]["DESCRIPTION"].ToString();
                }
                else
@@ -1602,7 +1711,7 @@
                {
                    //新增设备保养标准主表
                    sql = @"insert into TEqpmai_Main(code,name,description,main_cycle,lm_user,lm_date) values(@code,@name,@descr,@main_cycle,@lm_user,@lm_date)";
                    list.Add(new { str = sql, parm = new { code = json.code, name = json.name, descr = json.description,main_cycle=json.repaircycle, lm_user = username, lm_date = DateTime.Now.ToString() } });
                    list.Add(new { str = sql, parm = new { code = json.code, name = json.name, descr = json.description, main_cycle = json.repaircycle, lm_user = username, lm_date = DateTime.Now.ToString() } });
                    for (int i = 0; i < json.Data.Rows.Count; i++)
                    {
                        //新增设备保养标准关联保养项子表
@@ -1647,7 +1756,7 @@
                    list.Add(new { str = sql, parm = new { repairstaned_code = json.code } });
                    //修改保养标准主表
                    sql = @"update  TEqpmai_Main set name=@repairstaned_name,description=@repairstaned_desc,main_cycle=@main_cycle where code=@repairstaned_code";
                    list.Add(new { str = sql, parm = new { repairstaned_code = json.code, repairstaned_name = json.name, repairstaned_desc = json.description, main_cycle =json.repaircycle} });
                    list.Add(new { str = sql, parm = new { repairstaned_code = json.code, repairstaned_name = json.name, repairstaned_desc = json.description, main_cycle = json.repaircycle } });
                    //新增点检标准关联点检项目子表
                    for (int i = 0; i < json.Data.Rows.Count; i++)
                    {
@@ -1723,6 +1832,9 @@
                //删除设备保养标准关联保养项目子表
                sql = @"delete TEqpmai_Deta  where eapmai_code=@repairstand_code";
                list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                //删除设备保养标准关联设备表
                sql = @"delete TEqpmai_Eqp  where eapmai_code=@repairstand_code";
                list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
@@ -1752,21 +1864,38 @@
        #endregion
        #region[设备保养标准关联工作站查询]
        public static ToMessage DeviceRepairStanedAssociationEqp(string repairstand_code)
        public static ToMessage DeviceRepairStanedAssociationEqp(string stu_torgcode, string description, string repairstand_code)
        {
            string sql = "";
            string search = "";
            var dynamicParams = new DynamicParameters();
            List<StandEqp> list = new List<StandEqp>();
            try
            {
                switch (description)
                {
                    case "":
                        break;
                    case "D":
                        search += "and T.org_code=@stu_torgcode or child.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    case "W":
                        search += "and T.org_code=@stu_torgcode ";
                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
                        break;
                    default:
                        break;
                }
                //获取工作站集合(车间,包含已绑定工作站标识)
                sql = @"select distinct T.org_code as wksp_code,T.org_name as wksp_name,'E' as type,(case when B.eqp_code is null then 'N' else 'Y' end) flag 
                        from TOrganization T
                        left join TOrganization as child on T.parent_id=child.id
                        left join(
                        select distinct A.eqp_code,B.wksp_code  from TEqpmai_Eqp A 
                        inner join TEqpInfo B on A.eqp_code=B.code 
                        where A.eapmai_code=@repairstand_code and A.is_delete<>'1' and B.is_delete<>'1'
                        ) B on T.org_code=B.wksp_code where T.description='W' and is_delete<>'1'";
                        ) B on T.org_code=B.wksp_code where T.description='W' and T.is_delete<>'1' " + search;
                dynamicParams.Add("@repairstand_code", repairstand_code);
                var data = DapperHelper.selectdata(sql, dynamicParams);
@@ -1789,9 +1918,8 @@
                    sql = @"select *  from(
                            select AA.code,AA.name,'E' as type,(case when BB.eapmai_code is null then 'N' else 'Y' end) flag,(case when AA.eapmai_code  is null then 'N' else 'Y' end) flage1
                            from(
                            select A.code,A.name,B.eapmai_code
                            select A.code,A.name,'' as eapmai_code
                            from TEqpInfo A
                            left join TEqpmai_Eqp B on A.code=B.eqp_code
                            where A.wksp_code=@wkspcode and A.is_delete<>'1' 
                            ) as AA
                            left join (
@@ -1800,7 +1928,7 @@
                             inner join TEqpmai_Eqp B on A.code=B.eqp_code
                             where A.wksp_code=@wkspcode and B.eapmai_code=@repairstand_code and A.is_delete<>'1'
                            ) as BB on AA.code=BB.code
                            ) as CC where case when flag ='N' and flage1 ='Y' then 0 else 1 end=1";
                            ) as CC ";  //where case when flag ='N' and flage1 ='Y' then 0 else 1 end=1
                    dynamicParams.Add("@repairstand_code", repairstand_code);
                    dynamicParams.Add("@wkspcode", data.Rows[i]["WKSP_CODE"].ToString());
                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
@@ -1831,31 +1959,43 @@
        #endregion
        #region [设备保养标准关联工作站提交]
        public static ToMessage SaveDeviceRepairStanedAssociationEqp(string repairstand_code, string username, List<ObjectData> json)
        public static ToMessage SaveDeviceRepairStanedAssociationEqp(string stu_torgcode,string stu_torgtypecode, string repairstand_code, string username, List<ObjectData> json)
        {
            var sql = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                if (json == null || json.Count <= 0)
                switch (stu_torgtypecode)
                {
                    //清除设备保养标准关联设备表数据
                    sql = @"delete TEqpmai_Eqp where eapmai_code=@repairstand_code";
                    list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                    //标记设备保养标准表关联工作站标识
                    sql = @"update TEqpmai_Main set is_repaireqp='N' where code=@repairstand_code";
                    list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                    case "":
                        //清除设备保养标准关联设备表数据
                        sql = @"delete TEqpmai_Eqp where eapmai_code=@repairstand_code";
                        list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                        break;
                    case "D":
                        //清除设备保养标准关联设备表数据
                        sql = @"delete from TEqpmai_Eqp where id in (select A.id   from TEqpmai_Eqp A
                                    left join TOrganization T on A.torg_code=T.org_code
                                    left join TOrganization as L on T.parent_id=L.id
                                    where 1=1 and  A.eapmai_code=@repairstand_code and  L.org_code=@stu_torgcode)";
                        list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code, stu_torgcode = stu_torgcode } });
                        break;
                    case "W":
                        //清除设备保养标准关联设备表数据
                        sql = @"delete from TEqpmai_Eqp where id in (select A.id   from TEqpmai_Eqp A
                                    left join TOrganization T on A.torg_code=T.org_code
                                    left join TOrganization as L on T.parent_id=L.id
                                    where 1=1 and  A.eapmai_code=@repairstand_code and  L.org_code=@stu_torgcode)";
                        list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code, stu_torgcode = stu_torgcode } });
                        break;
                }
                else
                if (json != null && json.Count > 0)
                {
                    //清除设备保养标准关联设备表数据
                    sql = @"delete TEqpmai_Eqp where eapmai_code=@repairstand_code";
                    list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                    //循环写入设备保养标准关联设备表
                    for (int i = 0; i < json.Count; i++)
                    {
                        sql = @"insert into TEqpmai_Eqp(eapmai_code,eqp_code,lm_user,lm_date) values(@repairstand_code,@eqp_code,@lm_user,@lm_date)";
                        sql = @"insert into TEqpmai_Eqp(eapmai_code,eqp_code,lm_user,lm_date,torg_code) values(@repairstand_code,@eqp_code,@lm_user,@lm_date,@torg_code)";
                        list.Add(new
                        {
                            str = sql,
@@ -1864,13 +2004,11 @@
                                eqp_code = json[i].code,
                                repairstand_code = repairstand_code,
                                lm_user = username,
                                lm_date = DateTime.Now.ToString()
                                lm_date = DateTime.Now.ToString(),
                                torg_code= json[i].flag
                            }
                        });
                    }
                    //标记设备保养标准表关联工作站标识
                    sql = @"update TEqpmai_Main set is_repaireqp='Y' where code=@repairstand_code";
                    list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
@@ -1902,7 +2040,7 @@
        #region[设备点检记录查询]
        public static ToMessage DeviceCheckTakeSearch(string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate, int startNum, int endNum, string prop, string order)
        public static ToMessage DeviceCheckTakeSearch(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
@@ -1912,6 +2050,20 @@
                {
                    search += "and T.org_code=@wkshopcode ";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
                }
                else
                {
                    switch (description)
                    {
                        case "":
                            search += "and T.description=@description ";
                            dynamicParams.Add("@description", "W");
                            break;
                        case "D":
                            search += "and  L.org_code=@stu_torgcode ";
                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
                            break;
                    }
                }
                if (eqpcode != "" && eqpcode != null)
                {
@@ -1952,6 +2104,242 @@
                            left join TEqpInfo E on A.eqp_code=E.code
                            left join TEqpchk_Main M on A.eqpchkmain_code=M.code
                            left join TOrganization T on E.wksp_code=T.org_code
                            left join TOrganization as L on T.parent_id=L.id
                            where T.description='W' " + 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 DeviceCheckSubTakeSearch(string djwo)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                sql = @"select A.seq,T.code as itemcode,T.name as itemname,A.result,A.chk_value,A.remark
                        from TEqpchk_Proc_Deta A
                        left join TEqpchk_Item T on A.eqpchkdeta_code=T.code
                        where A.djwo=@djwo";
                dynamicParams.Add("@djwo", djwo);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = data;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[设备点检记录导出]
        public static ToMessage DeviceCheckTakeOutExcel(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string stanedname, string checkuser, string checkopendate, string checkclosedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wkshopcode != "" && wkshopcode != null)
                {
                    search += "and T.org_code=@wkshopcode ";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
                }
                else
                {
                    switch (description)
                    {
                        case "":
                            search += "and T.description=@description ";
                            dynamicParams.Add("@description", "W");
                            break;
                        case "D":
                            search += "and  L.org_code=@stu_torgcode ";
                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
                            break;
                    }
                }
                if (eqpcode != "" && eqpcode != null)
                {
                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
                    dynamicParams.Add("@eqpcode", eqpcode);
                }
                if (eqpname != "" && eqpname != null)
                {
                    search += "and E.name like '%'+@eqpname+'%' ";
                    dynamicParams.Add("@eqpname", eqpname);
                }
                if (stanedname != "" && stanedname != null)
                {
                    search += "and M.name like '%'+@stanedname+'%' ";
                    dynamicParams.Add("@stanedname", stanedname);
                }
                if (checkuser != "" && checkuser != null)
                {
                    search += "and A.chk_user like '%'+@checkuser+'%' ";
                    dynamicParams.Add("@checkuser", checkuser);
                }
                if (checkopendate != "" && checkopendate != null)
                {
                    search += "and A.chk_date between @checkopendate and @checkclosedate ";
                    dynamicParams.Add("@checkopendate", checkopendate + " 00:00:00");
                    dynamicParams.Add("@checkclosedate", checkclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.eqpchkdeta_code) = 1 THEN A.djwo
                            ELSE ''END AS '点检单号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY E.wksp_code ORDER BY B.eqpchkdeta_code) = 1 THEN T.org_name
                            ELSE ''END AS '生产车间',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpchkdeta_code) = 1 THEN A.eqp_code
                            ELSE ''END AS '设备编号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpchkdeta_code) = 1 THEN E.name
                            ELSE ''END AS '设备名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.eqpchkmain_code ORDER BY B.eqpchkdeta_code) = 1 THEN A.eqpchkmain_code
                            ELSE ''END AS '点检标准编码',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.eqpchkmain_code ORDER BY B.eqpchkdeta_code) = 1 THEN M.name
                            ELSE ''END AS '点检标准名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.chk_user ORDER BY B.eqpchkdeta_code) = 1 THEN A.chk_user
                            ELSE ''END AS '检验人员',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.chk_result ORDER BY B.eqpchkdeta_code) = 1 THEN A.chk_result
                            ELSE ''END AS '检验结果',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.chk_date ORDER BY B.eqpchkdeta_code) = 1 THEN A.chk_date
                            END AS '检验时间',
                            B.seq as '点检部位序号',H.code '点检部位编码',H.name '点检部位名称',B.result '点检结果',B.chk_value '数值',B.remark '备注'
                            from TEqpchk_Proc_Main A
                            left join TEqpchk_Proc_Deta B on A.djwo=B.djwo
                            left join TEqpInfo E on A.eqp_code=E.code
                            left join TEqpchk_Main M on A.eqpchkmain_code=M.code
                            left join TOrganization T on E.wksp_code=T.org_code
                            left join TOrganization as L on T.parent_id=L.id
                            left join TEqpchk_Item H on B.eqpchkdeta_code=H.code
                            where T.description='W' " + search;
                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
                data.TableName = "Table"; //设置DataTable的名称
                string msg = DownLoad.DataTableToExcel(data, "工序检验记录");
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.count = total;
                mes.data = msg;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[设备保养记录查询]
        public static ToMessage DeviceCheckTakeSearch(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wkshopcode != "" && wkshopcode != null)
                {
                    search += "and T.org_code=@wkshopcode ";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
                }
                else
                {
                    switch (description)
                    {
                        case "":
                            search += "and T.description=@description ";
                            dynamicParams.Add("@description", "W");
                            break;
                        case "D":
                            search += "and  L.org_code=@stu_torgcode ";
                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
                            break;
                    }
                }
                if (eqpcode != "" && eqpcode != null)
                {
                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
                    dynamicParams.Add("@eqpcode", eqpcode);
                }
                if (eqpname != "" && eqpname != null)
                {
                    search += "and E.name like '%'+@eqpname+'%' ";
                    dynamicParams.Add("@eqpname", eqpname);
                }
                if (stanedname != "" && stanedname != null)
                {
                    search += "and M.name like '%'+@stanedname+'%' ";
                    dynamicParams.Add("@stanedname", stanedname);
                }
                if (repairuser != "" && repairuser != null)
                {
                    search += "and A.maint_user like '%'+@repairuser+'%' ";
                    dynamicParams.Add("@repairuser", repairuser);
                }
                if (repairopendate != "" && repairopendate != null)
                {
                    search += "and A.maint_date between @repairopendate and @repairclosedate ";
                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
                }
                if (repairresult != "" && repairresult != null)
                {
                    search += "and A.maint_result=@repairresult ";
                    dynamicParams.Add("@repairresult", repairresult);
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.bywo,T.org_code,T.org_name,A.eqp_code,E.name as eqp_name,M.code as stanedcode,M.name as stanedname,A.maint_cyc,
                            A.maint_user,A.maint_result,A.maint_date
                            from TEqpmaint_Proc_Main A
                            left join TEqpInfo E on A.eqp_code=E.code
                            left join TEqpmai_Main M on A.eqpmaint_code=M.code
                            left join TOrganization T on E.wksp_code=T.org_code
                            left join TOrganization as L on T.parent_id=L.id
                            where T.description='W' " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
@@ -1971,17 +2359,17 @@
        #endregion
        #region[设备保养记录明细查询]
        public static ToMessage DeviceCheckSubTakeSearch(string djwo)
        public static ToMessage DeviceRepairSubTakeSearch(string bywo)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                sql = @"select A.seq,T.code as itemcode,T.name as itemname,A.result,A.chk_value,A.remark
                        from TEqpchk_Proc_Deta A
                        left join TEqpchk_Item T on A.eqpchkdeta_code=T.code
                        where A.djwo=@djwo";
                dynamicParams.Add("@djwo", djwo);
                sql = @"select A.seq,T.code as itemcode,T.name as itemname,A.result,A.maint_value,A.remark
                        from TEqpmaint_Proc_Deta A
                        left join TEqpmai_Item T on A.eqpmaideta_code=T.code
                        where A.bywo=@bywo";
                dynamicParams.Add("@bywo", bywo);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                mes.code = "200";
@@ -1998,5 +2386,415 @@
            return mes;
        }
        #endregion
        #region[设备保养记录导出]
        public static ToMessage DeviceRepairTakeOutExcel(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wkshopcode != "" && wkshopcode != null)
                {
                    search += "and T.org_code=@wkshopcode ";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
                }
                else
                {
                    switch (description)
                    {
                        case "":
                            search += "and T.description=@description ";
                            dynamicParams.Add("@description", "W");
                            break;
                        case "D":
                            search += "and  L.org_code=@stu_torgcode ";
                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
                            break;
                    }
                }
                if (eqpcode != "" && eqpcode != null)
                {
                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
                    dynamicParams.Add("@eqpcode", eqpcode);
                }
                if (eqpname != "" && eqpname != null)
                {
                    search += "and E.name like '%'+@eqpname+'%' ";
                    dynamicParams.Add("@eqpname", eqpname);
                }
                if (stanedname != "" && stanedname != null)
                {
                    search += "and M.name like '%'+@stanedname+'%' ";
                    dynamicParams.Add("@stanedname", stanedname);
                }
                if (repairuser != "" && repairuser != null)
                {
                    search += "and A.maint_user like '%'+@repairuser+'%' ";
                    dynamicParams.Add("@repairuser", repairuser);
                }
                if (repairopendate != "" && repairopendate != null)
                {
                    search += "and A.chk_date between @repairopendate and @repairclosedate ";
                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
                }
                if (repairresult != "" && repairresult != null)
                {
                    search += "and A.maint_result=@repairresult ";
                    dynamicParams.Add("@repairresult", repairresult);
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.eqpmaideta_code) = 1 THEN A.bywo
                            ELSE ''END AS '保养单号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY E.wksp_code ORDER BY B.eqpmaideta_code) = 1 THEN T.org_name
                            ELSE ''END AS '生产车间',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpmaideta_code) = 1 THEN A.eqp_code
                            ELSE ''END AS '设备编号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.eqp_code ORDER BY B.eqpmaideta_code) = 1 THEN E.name
                            ELSE ''END AS '设备名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.eqpmaint_code ORDER BY B.eqpmaideta_code) = 1 THEN A.eqpmaint_code
                            ELSE ''END AS '保养标准编码',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.eqpmaint_code ORDER BY B.eqpmaideta_code) = 1 THEN M.name
                            ELSE ''END AS '保养标准名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.maint_cyc ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_cyc
                            ELSE ''END AS '保养周期',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.maint_user ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_user
                            ELSE ''END AS '保养人员',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.maint_result ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_result
                            ELSE ''END AS '保养结果',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.maint_date ORDER BY B.eqpmaideta_code) = 1 THEN A.maint_date
                            END AS '保养时间',
                            B.seq as '保养部位序号',H.code '保养部位编码',H.name '保养部位名称',B.result '保养结果',B.maint_value '数值',B.remark '备注'
                            from TEqpmaint_Proc_Main A
                            left join TEqpmaint_Proc_Deta B on A.bywo=B.bywo
                            left join TEqpInfo E on A.eqp_code=E.code
                            left join TEqpmai_Main M on A.eqpmaint_code=M.code
                            left join TOrganization T on E.wksp_code=T.org_code
                            left join TOrganization as L on T.parent_id=L.id
                            left join TEqpmai_Item H on B.eqpmaideta_code=H.code
                            where T.description='W' " + search;
                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
                data.TableName = "Table"; //设置DataTable的名称
                string msg = DownLoad.DataTableToExcel(data, "工序检验记录");
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.count = total;
                mes.data = msg;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[设备维修记录查询]
        public static ToMessage DeviceUpdateSearch(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string reportuser, string repairuser, string vrifcatuser, string reportopendate, string reportclosedate, string repairopendate, string repairclosedate, string vrifcatopendate, string vrifcatclosedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wkshopcode != "" && wkshopcode != null)
                {
                    search += "and A.wksp_code=@wkshopcode ";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
                }
                else
                {
                    switch (description)
                    {
                        case "":
                            search += "and T.description=@description ";
                            dynamicParams.Add("@description", "W");
                            break;
                        case "D":
                            search += "and  L.org_code=@stu_torgcode ";
                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
                            break;
                    }
                }
                if (eqpcode != "" && eqpcode != null)
                {
                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
                    dynamicParams.Add("@eqpcode", eqpcode);
                }
                if (eqpname != "" && eqpname != null)
                {
                    search += "and E.name like '%'+@eqpname+'%' ";
                    dynamicParams.Add("@eqpname", eqpname);
                }
                if (reportuser != "" && reportuser != null)
                {
                    search += "and B.request_person like '%'+@reportuser+'%' ";
                    dynamicParams.Add("@reportuser", reportuser);
                }
                if (repairuser != "" && repairuser != null)
                {
                    search += "and A.repair_person like '%'+@repairuser+'%' ";
                    dynamicParams.Add("@repairuser", repairuser);
                }
                if (vrifcatuser != "" && vrifcatuser != null)
                {
                    search += "and A.verify_person like '%'+@vrifcatuser+'%' ";
                    dynamicParams.Add("@vrifcatuser", vrifcatuser);
                }
                if (reportopendate != "" && reportopendate != null)
                {
                    search += "and B.request_date between @reportopendate and @reportclosedate ";
                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
                }
                if (repairopendate != "" && repairopendate != null)
                {
                    search += "and A.repair_date between @repairopendate and @repairclosedate ";
                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
                }
                if (vrifcatopendate != "" && vrifcatopendate != null)
                {
                    search += "and A.verify_date between @vrifcatopendate and @vrifcatclosedate ";
                    dynamicParams.Add("@vrifcatopendate", vrifcatopendate + " 00:00:00");
                    dynamicParams.Add("@vrifcatclosedate", vrifcatclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.repair_code,A.wksp_code,T.org_name as wksp_name,A.eqp_code,E.name as eqp_name,B.request_person,B.request_date,
                            A.repair_person,A.repair_date,CAST(datediff(minute, B.request_date,A.repair_date)/60.0 AS decimal(9,1)) as cycleDate,
                            A.verify_person,A.verify_date,(case when A.verify_result='OK' then '通过' when  A.verify_result='NG' then '不通过' end)as verify_result
                            from TEqp_Repair A
                            left join TEqp_RepairRequest B on A.source_wo=B.docu_code
                            left join TEqpInfo E on A.eqp_code=E.code
                            left join TOrganization T on A.wksp_code=T.org_code
                            left join TOrganization as L on T.parent_id=L.id
                            where T.description='W' " + 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 DeviceUpdateSubSearch(string repair_code)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            Dictionary<object, object> Dict = new Dictionary<object, object>();
            try
            {
                //获取设备报修申请数据
                sql = @"select B.docu_code,
                        (
                        case when B.source='A' then '设备点检'
                        when B.source='B' then '设备保养'
                        when B.source='C' then '安灯呼叫'
                        when B.source='C' then '手工创建' end
                        ) as source,B.failure_descript from TEqp_Repair A
                        left join TEqp_RepairRequest B on A.source_wo=B.docu_code
                        where A.repair_code=@repair_code";
                dynamicParams.Add("@repair_code", repair_code);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                DeviceReport report = new DeviceReport();
                report.faultsource = data.Rows[0]["source"].ToString();
                report.faultdescr = data.Rows[0]["failure_descript"].ToString();
                //获取设备报修申请图片数据
                sql = @"select M.img1url from TEqp_Repair A
                        left join TEqp_RepairRequest B on A.source_wo=B.docu_code
                        left join TEqp_RepairImage M on B.docu_code=M.source_wo
                        where A.repair_code=@repair_code and M.wo_type='REPA'";
                dynamicParams.Add("@repair_code", repair_code);
                var data0 = DapperHelper.selectdata(sql, dynamicParams);
                report.faultimage = data0;
                Dict.Add("data1", report);
                //获取设备维修数据
                sql = @"select A.failure_descript,A.is_shutdown,A.repair_content,A.repair_part from TEqp_Repair A
                        left join TEqp_RepairRequest B on A.source_wo=B.docu_code
                        where A.repair_code=@repair_code";
                dynamicParams.Add("@repair_code", repair_code);
                var data1 = DapperHelper.selectdata(sql, dynamicParams);
                DeviceRepair repair = new DeviceRepair();
                repair.faultdescr = data1.Rows[0]["failure_descript"].ToString();
                repair.isstoprepair = data1.Rows[0]["is_shutdown"].ToString();
                repair.repaircontent = data1.Rows[0]["repair_content"].ToString();
                repair.repairpart = data1.Rows[0]["repair_part"].ToString();
                //获取设备维修图片数据
                sql = @"select M.img1url,M.img2url from TEqp_Repair A
                        left join TEqp_RepairImage M on A.repair_code=M.source_wo
                        where A.repair_code=@repair_code and M.wo_type='COMP'";
                dynamicParams.Add("@repair_code", repair_code);
                var data3 = DapperHelper.selectdata(sql, dynamicParams);
                repair.repairimage = data3;
                Dict.Add("data2", repair);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.data = Dict;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[设备维修记录导出]
        public static ToMessage DeviceUpdateOutExcel(string stu_torgcode, string description, string wkshopcode, string eqpcode, string eqpname, string reportuser, string repairuser, string vrifcatuser, string reportopendate, string reportclosedate, string repairopendate, string repairclosedate, string vrifcatopendate, string vrifcatclosedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wkshopcode != "" && wkshopcode != null)
                {
                    search += "and A.wksp_code=@wkshopcode ";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
                }
                else
                {
                    switch (description)
                    {
                        case "":
                            search += "and T.description=@description ";
                            dynamicParams.Add("@description", "W");
                            break;
                        case "D":
                            search += "and  L.org_code=@stu_torgcode ";
                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
                            break;
                    }
                }
                if (eqpcode != "" && eqpcode != null)
                {
                    search += "and A.eqp_code like '%'+@eqpcode+'%' ";
                    dynamicParams.Add("@eqpcode", eqpcode);
                }
                if (eqpname != "" && eqpname != null)
                {
                    search += "and E.name like '%'+@eqpname+'%' ";
                    dynamicParams.Add("@eqpname", eqpname);
                }
                if (reportuser != "" && reportuser != null)
                {
                    search += "and B.request_person like '%'+@reportuser+'%' ";
                    dynamicParams.Add("@reportuser", reportuser);
                }
                if (repairuser != "" && repairuser != null)
                {
                    search += "and A.repair_person like '%'+@repairuser+'%' ";
                    dynamicParams.Add("@repairuser", repairuser);
                }
                if (vrifcatuser != "" && vrifcatuser != null)
                {
                    search += "and A.verify_person like '%'+@vrifcatuser+'%' ";
                    dynamicParams.Add("@vrifcatuser", vrifcatuser);
                }
                if (reportopendate != "" && reportopendate != null)
                {
                    search += "and B.request_date between @reportopendate and @reportclosedate ";
                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
                }
                if (repairopendate != "" && repairopendate != null)
                {
                    search += "and A.repair_date between @repairopendate and @repairclosedate ";
                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
                }
                if (vrifcatopendate != "" && vrifcatopendate != null)
                {
                    search += "and A.verify_date between @vrifcatopendate and @vrifcatclosedate ";
                    dynamicParams.Add("@vrifcatopendate", vrifcatopendate + " 00:00:00");
                    dynamicParams.Add("@vrifcatclosedate", vrifcatclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select
                            A.repair_code as '维修单号',
                            T.org_name as '所属车间',
                            A.eqp_code as '设备编码',
                            E.name as '设备名称',
                            B.request_person as '报修人员',
                            B.request_date as '报修时间',
                            A.repair_person as '维修人员',
                            A.repair_date as '维修时间',
                            CAST(datediff(minute, B.request_date,A.repair_date)/60.0 AS decimal(9,1))  as '维修时长(小时)',
                            A.verify_person as '验证人员',
                            A.verify_date as '验证时间',
                            (case when A.verify_result='OK' then '通过' when  A.verify_result='NG' then '不通过' end)as '验证结果'
                            from TEqp_Repair A
                            left join TEqp_RepairRequest B on A.source_wo=B.docu_code
                            left join TEqpInfo E on A.eqp_code=E.code
                            left join TOrganization T on A.wksp_code=T.org_code
                            left join TOrganization as L on T.parent_id=L.id
                            where T.description='W'" + search;
                DataTable data = DapperHelper.selectdata(sql, dynamicParams);
                data.TableName = "Table"; //设置DataTable的名称
                string msg = DownLoad.DataTableToExcel(data, "设备维修记录");
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.count = total;
                mes.data = msg;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
    }
}