VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs
@@ -1,12 +1,15 @@
using Dapper;
using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using VueWebCoreApi.Models;
using VueWebCoreApi.Models.MouldSearch;
using VueWebCoreApi.Tools;
namespace VueWebCoreApi.DLL.DAL
@@ -34,7 +37,7 @@
                }
                if (onstate != "" && onstate != null)
                {
                    search += "and A.usestaus=@onstate ";
                    search += "and A.usestatus=@onstate ";
                    dynamicParams.Add("@onstate", onstate);
                }
                if (mouldcode != "" && mouldcode != null)
@@ -63,29 +66,27 @@
                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.status,A.usestaus,A.code,A.name,A.spec,A.warehousecode,S.name as warehousename,
                            A.surp_life,'0' as serlife,A.resi_life,(case when isnull(M.mouldcode,'')='' then 'N' else 'Y' end) as is_part,
                            STUFF((SELECT ',' + B.partcode
                            from TMouldInfoPart B
                            where A.code = B.mouldcode
                            FOR XML PATH('')), 1, 1, '') AS partcode,
                            A.lm_user as usercode,U.username,A.lm_date
                            from TMouldInfo A
                            left join TSecStck S on A.warehousecode=S.code
                            left join (
                            select distinct mouldcode from TMouldInfoPart
                            )  M on A.code=M.mouldcode
                            left join TUser U on A.lm_user=U.usercode
                            where 1=1 " + search;
                var sql = @"select A.status,A.usestatus,A.code,A.name,A.spec,A.warehousecode,S.name as warehousename,A.location_code,L.name as location_name,
                           A.surp_life,(select isnull(sum(usecount_life),0)   from TMould_UpDownReord R where R.mould_code=A.code) as serlife,
                           A.resi_life,(case when isnull(M.mouldcode,'')='' then 'N' else 'Y' end) as is_part,
                           STUFF((SELECT ',' + B.partcode
                           from TMouldInfoPart B
                           where A.code = B.mouldcode
                           FOR XML PATH('')), 1, 1, '') AS partcode,
                           A.lm_user as usercode,U.username,A.lm_date
                           from TMouldInfo A
                           left join TSecStck S on A.warehousecode=S.code
                           left join TSecLoca L on A.location_code=L.code
                           left join (
                           select distinct mouldcode from TMouldInfoPart
                           )  M on A.code=M.mouldcode
                           left join TUser U on A.lm_user=U.usercode
                           where 1=1 " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.message = "查询成功!";
                mes.count = total;
                mes.data = data.ToList();
            }
@@ -93,7 +94,7 @@
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
@@ -101,7 +102,7 @@
        #endregion
        #region[模具清单新增编辑]
        public static ToMessage AddUpdateMouldManger(string mouldcode, string mouldname, string mouldspec, string warehousecode, string surplife, string resilife, string status, string mouldpart, string opertype, User us)
        public static ToMessage AddUpdateMouldManger(string mouldcode, string mouldname, string mouldspec,string warehousecode,string location_code, string surplife, string resilife, string status, string mouldpart, string opertype, User us)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
@@ -110,9 +111,9 @@
            {
                if (opertype == "Add")
                {
                    //写入模具清单表
                    sql = @"insert into TMouldInfo(code,name,spec,status,usestatus,warehousecode,surp_life,resi_life,lm_user,lm_date)
                               values(@code,@name,@spec,@status,@usestatus,@warehousecode,@surp_life,@resi_life,@lm_user,@lm_date)";
                    //写入模具清单表
                    sql = @"insert into TMouldInfo(code,name,spec,status,surp_life,resi_life,lm_user,lm_date,warehousecode,location_code)
                               values(@code,@name,@spec,@status,@surp_life,@resi_life,@lm_user,@lm_date,@warehousecode,@location_code)";
                    list.Add(new
                    {
                        str = sql,
@@ -122,10 +123,10 @@
                            name = mouldname,
                            spec = mouldspec,
                            status = status,
                            usestatus = "0",//使用状态:在库/出库/上机/下机/维修/外借(0,1,2,3,4,5)
                            warehousecode = warehousecode,
                            surp_life = surplife,
                            resi_life = resilife,
                            warehousecode=warehousecode,
                            location_code=location_code,
                            lm_user = us.usercode,
                            lm_date = DateTime.Now.ToString()
                        }
@@ -155,22 +156,22 @@
                        LogHelper.DbOperateLog(us.usercode, "新增", "模具:" + mouldcode, us.usertype);
                        mes.code = "200";
                        mes.count = 0;
                        mes.Message = "新增操作成功!";
                        mes.message = "新增操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "新增操作失败!";
                        mes.message = "新增操作失败!";
                        mes.data = null;
                    }
                }
                if (opertype == "Update")
                {
                    //修改模具清单表
                    sql = @"update TMouldInfo set name=@name,spec=@spec,status=@status,warehousecode=@warehousecode,
                            surp_life=@surp_life,resi_life=@resi_life,lm_user=@lm_user,lm_date=@lm_date where code=@code";
                    sql = @"update TMouldInfo set name=@name,spec=@spec,status=@status,
                            surp_life=@surp_life,resi_life=@resi_life,lm_user=@lm_user,lm_date=@lm_date,warehousecode=@warehousecode,location_code=@location_code where code=@code";
                    list.Add(new
                    {
                        str = sql,
@@ -180,9 +181,10 @@
                            name = mouldname,
                            spec = mouldspec,
                            status = status,
                            warehousecode = warehousecode,
                            surp_life = surplife,
                            resi_life = resilife,
                            warehousecode = warehousecode,
                            location_code = location_code,
                            lm_user = us.usercode,
                            lm_date = DateTime.Now.ToString()
                        }
@@ -222,14 +224,14 @@
                        LogHelper.DbOperateLog(us.usercode, "修改", "模具:" + mouldcode, us.usertype);
                        mes.code = "200";
                        mes.count = 0;
                        mes.Message = "修改操作成功!";
                        mes.message = "修改操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "修改操作失败!";
                        mes.message = "修改操作失败!";
                        mes.data = null;
                    }
                }
@@ -238,7 +240,80 @@
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具清单查看履历]
        public static ToMessage MoldResumeSearch(string mouldcode, string opendate, string closedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                dynamicParams.Add("@mouldcode", mouldcode);
                if (opendate != "" && opendate != null)
                {
                    search += "and AA.operdate between @opendate and @closedate ";
                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
                }
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select top 100 percent AA.*,U.username as operusername from (
                            select '点检' as opertype,chk_user as operuser,chk_date as operdate,chk_result as operresult
                            from TMouldchk_Proc_Main where mould_code=@mouldcode
                            union all
                            select '保养' as opertype,maint_user as operuser,maint_date as operdate,maint_result as operresult
                            from TMouldmaint_Proc_Main where mould_code=@mouldcode
                            union all
                            select '待维修' as opertype,request_person as operuser,request_date as operdate,'维修申请' as operresult
                            from TMould_RepairRequest where mould_code=@mouldcode
                            union all
                            select '已维修' as opertype,repair_person as operuser,repair_date as operdate,'维修完成' as operresult
                            from TMould_RepairRequest A
                            inner join TMould_Repair B on A.docu_code=B.source_wo
                            where A.mould_code=@mouldcode and B.repair_person<>''
                            union all
                            select '已验证' as opertype,verify_person as operuser,verify_date as operdate,B.verify_result as operresult
                            from TMould_RepairRequest A
                            inner join TMould_Repair B on A.docu_code=B.source_wo
                            where A.mould_code=@mouldcode and B.verify_person<>''
                            union all
                            select '已上机' as opertype,lm_user as operuser,lm_date as operdate,eqp_code as operresult
                            from TMould_UpDownReord  where mould_code=@mouldcode and type='UP'
                            union all
                            select '已下机' as opertype,lm_user as operuser,lm_date as operdate,eqp_code as operresult
                            from TMould_UpDownReord  where mould_code=@mouldcode and type='DOWN'
                            union all
                            select '已入库' as opertype,lm_user as operuser,lm_date as operdate,warehouse_code as operresult
                            from TMould_InOutReord  where mould_code=@mouldcode and type='IN'
                            union all
                            select '已出库' as opertype,lm_user as operuser,lm_date as operdate,warehouse_code as operresult
                            from TMould_InOutReord  where mould_code=@mouldcode and type='OUT'
                            union all
                            select '已外借' as opertype,lm_user as operuser,lm_date as operdate,description as operresult
                            from TMould_LendOutReord  where mould_code=@mouldcode and type='OUT'
                            union all
                            select '已归还' as opertype,lm_user as operuser,lm_date as operdate,description as operresult
                            from TMould_LendOutReord  where mould_code=@mouldcode and type='IN'
                            ) as AA
                            left join TUser U on AA.operuser=U.usercode
                            where 1=1 " + search+"  order by AA.operdate desc ";
                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;
@@ -254,19 +329,25 @@
            try
            {
                list.Clear();
                //判断模具是否存在点检记录、保养、维修、上下机、出入库记录,不允许删除
                //判断模具是否存在点检记录、保养、维修、上下机、外借归还、出入库记录,不允许删除
                sql = @"select mould_code   from TMouldchk_Proc_Main where mould_code=@devicecode
                        union all
                        select mould_code   from TMouldmaint_Proc_Main where mould_code=@devicecode
                        union all
                        select mould_code   from TMould_RepairRequest where mould_code=@devicecode";
                        select mould_code   from TMould_RepairRequest where mould_code=@devicecode
                        union all
                        select mould_code   from TMould_UpDownReord where mould_code=@devicecode
                        union all
                        select mould_code   from TMould_LendOutReord where mould_code=@devicecode
                        union all
                        select mould_code   from TMould_InOutReord where mould_code=@devicecode";
                dynamicParams.Add("@devicecode", mouldcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "当前模具存在操作记录,不允许删除!";
                    mes.message = "当前模具存在操作记录,不允许删除!";
                    mes.data = null;
                    return mes;
                }
@@ -286,16 +367,18 @@
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "删除", "模具:" + mouldcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "删除成功!";
                    mes.message = "删除成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "删除失败!";
                    mes.message = "删除失败!";
                    mes.data = null;
                }
@@ -304,7 +387,7 @@
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
@@ -313,7 +396,7 @@
        #region[模具点检项列表查询]
        public static ToMessage MouldMangerSearch(string checkitemcode, string checkitemname, string checkdescr, int startNum, int endNum, string prop, string order)
        public static ToMessage MouldCheckItemSearch(string checkitemcode, string checkitemname, string checkdescr, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
@@ -347,7 +430,7 @@
                                where 1=1 " + search;
                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                mes.code = "200";
                mes.Message = "查询成功!";
                mes.message = "查询成功!";
                mes.count = total;
                mes.data = data.ToList();
            }
@@ -355,7 +438,7 @@
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
@@ -380,16 +463,18 @@
                    int cont = DapperHelper.SQL(sql, dynamicParams);
                    if (cont > 0)
                    {
                        //写入操作记录表
                        LogHelper.DbOperateLog(us.usercode, "新增", "模具点检项:" + checkitemcode, us.usertype);
                        mes.code = "200";
                        mes.count = 0;
                        mes.Message = "新增操作成功!";
                        mes.message = "新增操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "新增操作失败!";
                        mes.message = "新增操作失败!";
                        mes.data = null;
                    }
                }
@@ -406,16 +491,18 @@
                    int cont = DapperHelper.SQL(sql, dynamicParams);
                    if (cont > 0)
                    {
                        //写入操作记录表
                        LogHelper.DbOperateLog(us.usercode, "修改", "模具点检项:" + checkitemcode, us.usertype);
                        mes.code = "200";
                        mes.count = 0;
                        mes.Message = "修改操作成功!";
                        mes.message = "修改操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.Message = "修改操作失败!";
                        mes.message = "修改操作失败!";
                        mes.data = null;
                    }
                }
@@ -424,7 +511,7 @@
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
@@ -432,7 +519,7 @@
        #endregion
        #region[模具点检项删除]
        public static ToMessage DeleteMouldCheckItem(string checkitemcode)
        public static ToMessage DeleteMouldCheckItem(string checkitemcode, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
@@ -449,7 +536,7 @@
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "当前点检项目已关联标准,不允许删除!";
                    mes.message = "当前点检项目已关联标准,不允许删除!";
                    mes.data = null;
                    return mes;
                }
@@ -460,16 +547,18 @@
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "删除", "模具点检项:" + checkitemcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.Message = "删除成功!";
                    mes.message = "删除成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.Message = "删除失败!";
                    mes.message = "删除失败!";
                    mes.data = null;
                }
@@ -478,12 +567,3982 @@
            {
                mes.code = "300";
                mes.count = 0;
                mes.Message = e.Message;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具点检标准列表查询]
        public static ToMessage DeviceCheckStandArdSearch(string checkstandcode, string checkstandname, string checkstandescr, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (checkstandcode != "" && checkstandcode != null)
                {
                    search += "and A.code like '%'+@checkstandcode+'%' ";
                    dynamicParams.Add("@checkstandcode", checkstandcode);
                }
                if (checkstandname != "" && checkstandname != null)
                {
                    search += "and A.name like '%'+@checkstandname+'%' ";
                    dynamicParams.Add("@checkstandname", checkstandname);
                }
                if (checkstandescr != "" && checkstandescr != null)
                {
                    search += "and A.iscontr=@checkstandescr ";
                    dynamicParams.Add("@checkstandescr", checkstandescr);
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.id,A.code,A.name,A.description,A.is_checkmould,U.username as lm_user,A.lm_date
                            from TMouldchk_Main A
                            left join TUser U on A.lm_user=U.usercode
                            where 1=1 " + 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 ViewMouldCheckStanedSearch(string checkstand_code)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取模具点检标准信息
                sql = @"select code,name,description
                        from TMouldchk_Main
                        where code=@checkstand_code";
                dynamicParams.Add("@checkstand_code", checkstand_code);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                RoutEdit rout = new RoutEdit();
                if (data.Rows.Count > 0)
                {
                    rout.code = data.Rows[0]["CODE"].ToString();
                    rout.name = data.Rows[0]["NAME"].ToString();
                    rout.description = data.Rows[0]["DESCRIPTION"].ToString();
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "无点检标准信息!";
                    mes.data = null;
                    return mes;
                }
                //根据模具点检标准编码获取关联的检验项目信息
                sql = @"select B.code,B.name,A.chkdesc from TMouldchk_Deta A
                        left join TMouldchk_Item  B on A.code=B.code
                        where  A.mouldchk_main_code=@checkstaned_code order by A.seq asc";
                dynamicParams.Add("@checkstaned_code", rout.code);
                var data0 = DapperHelper.selectdata(sql, dynamicParams);
                rout.Data = data0;
                mes.code = "200";
                mes.message = "查询成功!";
                mes.data = rout;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具点检标准新增编辑]
        public static ToMessage AddUpdateMouldCheckStandArd(string opertype, RoutEdit json, User us)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            List<object> list = new List<object>();
            try
            {
                if (opertype == "Add")
                {
                    //新增模具点检标准主表
                    sql = @"insert into TMouldchk_Main(code,name,description,lm_user,lm_date) values(@code,@name,@descr,@lm_user,@lm_date)";
                    list.Add(new { str = sql, parm = new { code = json.code, name = json.name, descr = json.description, lm_user = us.usercode, lm_date = DateTime.Now.ToString() } });
                    for (int i = 0; i < json.Data.Rows.Count; i++)
                    {
                        //新增模具点检标准关联点检项子表
                        sql = @"insert TMouldchk_Deta (seq,code,name,mouldchk_main_code,chkdesc,lm_user,lm_date)
                                values(@checkitem_seq,@checkitem_code,@checkitem_name,@mouldchk_main_code,@chkdesc,@lm_user,@lm_date)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                checkitem_seq = Convert.ToInt32(json.Data.Rows[i]["CHECKITEM_SEQ"].ToString()),
                                checkitem_code = json.Data.Rows[i]["CHECKITEM_CODE"].ToString(),
                                checkitem_name = json.Data.Rows[i]["CHECKITEM_NAME"].ToString(),
                                mouldchk_main_code = json.code,
                                chkdesc = json.Data.Rows[i]["CHECKITEM_DESCR"].ToString(),
                                lm_user = us.usercode,
                                lm_date = DateTime.Now.ToString()
                            }
                        });
                    }
                    bool aa = DapperHelper.DoTransaction(list);
                    if (aa)
                    {
                        //写入操作记录表
                        LogHelper.DbOperateLog(us.usercode, "新增", "模具点检标准:" + json.code, us.usertype);
                        mes.code = "200";
                        mes.count = 0;
                        mes.message = "操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.message = "操作失败!";
                        mes.data = null;
                    }
                }
                if (opertype == "Update")
                {
                    //删除点检标准关联点检项目子表
                    sql = @"delete from TMouldchk_Deta where mouldchk_main_code=@checkstaned_code";
                    list.Add(new { str = sql, parm = new { checkstaned_code = json.code } });
                    //修改点检标准主表
                    sql = @"update  TMouldchk_Main set name=@checkstaned_name,description=@checkstaned_desc where code=@checkstaned_code";
                    list.Add(new { str = sql, parm = new { checkstaned_code = json.code, checkstaned_name = json.name, checkstaned_desc = json.description } });
                    //新增点检标准关联点检项目子表
                    for (int i = 0; i < json.Data.Rows.Count; i++)
                    {
                        sql = @"insert TMouldchk_Deta (seq,code,name,mouldchk_main_code,chkdesc,lm_user,lm_date)
                                values(@checkitem_seq,@checkitem_code,@checkitem_name,@mouldchk_main_code,@chkdesc,@lm_user,@lm_date)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                checkitem_seq = Convert.ToInt32(json.Data.Rows[i]["CHECKITEM_SEQ"].ToString()),
                                checkitem_code = json.Data.Rows[i]["CHECKITEM_CODE"].ToString(),
                                checkitem_name = json.Data.Rows[i]["CHECKITEM_NAME"].ToString(),
                                mouldchk_main_code = json.code,
                                chkdesc = json.Data.Rows[i]["CHECKITEM_DESCR"].ToString(),
                                lm_user = us.usercode,
                                lm_date = DateTime.Now.ToString()
                            }
                        });
                    }
                    bool aa = DapperHelper.DoTransaction(list);
                    if (aa)
                    {
                        //写入操作记录表
                        LogHelper.DbOperateLog(us.usercode, "修改", "模具点检标准:" + json.code, us.usertype);
                        mes.code = "200";
                        mes.count = 0;
                        mes.message = "操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.message = "操作失败!";
                        mes.data = null;
                    }
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具点检标准删除]
        public static ToMessage DeleteMouldCheckStaned(string checkstand_code, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                sql = @"select * from  TMouldchk_Proc_Main  where mouldchkmain_code=@checkstand_code";
                dynamicParams.Add("@checkstand_code", checkstand_code);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "当前点检标准已生成点检记录,不允许删除!";
                    mes.data = null;
                    return mes;
                }
                //删除模具点检标准主表
                sql = @"delete TMouldchk_Main  where code=@checkstand_code";
                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                //删除模具点检标准关联点检项目子表
                sql = @"delete TMouldchk_Deta  where mouldchk_main_code=@checkstand_code";
                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                //删除模具点检标准关联模具表
                sql = @"delete TMouldchk_Mould  where mouldchkmain_code=@checkstand_code";
                list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "删除", "模具点检标准:" + checkstand_code, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "设备点检标准删除成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "设备点检标准删除失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具点检标准关联模具查询]
        public static ToMessage CheckStanedAssociationMould(string checkstand_code)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                sql = @"select *  from(
                        select AA.code,AA.name,'M' as type,(case when BB.mouldchkmain_code is null then 'N' else 'Y' end) flag
                        from(
                        select A.code,A.name,'' as mouldchkmain_code
                        from TMouldInfo A
                        where  A.status='Y'
                        ) as AA
                        left join (
                         select A.code,A.name,B.mouldchkmain_code
                         from TMouldInfo A
                         inner join TMouldchk_Mould B on A.code=B.mould_code
                         where  B.mouldchkmain_code=@checkstand_code and A.status='Y'
                        ) as BB on AA.code=BB.code
                        ) as CC";
                dynamicParams.Add("@checkstand_code", checkstand_code);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = data;
                }
                else
                {
                    mes.code = "300";
                    mes.message = "无模具资料!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region [模具点检标准关联模具提交]
        public static ToMessage SaveCheckStanedAssociationMould(string checkstand_code, User us, List<ObjectData> json)
        {
            var sql = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                if (json == null || json.Count <= 0)
                {
                    //清除模具点检标准关联模具表数据
                    sql = @"delete TMouldchk_Mould where mouldchkmain_code=@checkstand_code";
                    list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                    //标记模具点检标准表关联模具标识
                    sql = @"update TMouldchk_Main set is_checkmould='N' where code=@checkstand_code";
                    list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                }
                else
                {
                    //清除模具点检标准关联模具表数据
                    sql = @"delete TMouldchk_Mould where mouldchkmain_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 TMouldchk_Mould(mouldchkmain_code,mould_code,lm_user,lm_date) values(@checkstand_code,@mould_code,@lm_user,@lm_date)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                mould_code = json[i].code,
                                checkstand_code = checkstand_code,
                                lm_user = us.usercode,
                                lm_date = DateTime.Now.ToString()
                            }
                        });
                    }
                    //标记模具点检标准表关联模具标识
                    sql = @"update TMouldchk_Main set is_checkmould='Y' where code=@checkstand_code";
                    list.Add(new { str = sql, parm = new { checkstand_code = checkstand_code } });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具点检标准关联模具", "模具点检标准:" + checkstand_code, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "操作成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "操作失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具保养项列表查询]
        public static ToMessage MouldMaiItemSearch(string maiitemcode, string maiitemname, string maidescr, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (maiitemcode != "" && maiitemcode != null)
                {
                    search += "and A.code like '%'+@maiitemcode+'%' ";
                    dynamicParams.Add("@maiitemcode", maiitemcode);
                }
                if (maiitemname != "" && maiitemname != null)
                {
                    search += "and A.name like '%'+@maiitemname+'%' ";
                    dynamicParams.Add("@maiitemname", maiitemname);
                }
                if (maidescr != "" && maidescr != null)
                {
                    search += "and A.description like '%'+@maidescr+'%' ";
                    dynamicParams.Add("@maidescr", maidescr);
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.id,A.code,A.name,A.description,U.username as lm_user,A.lm_date
                                from TMouldmai_Item A
                                left join TUser U on A.lm_user=U.usercode
                                where 1=1 " + 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 AddUpdateMouldMaiItem(string maiitemid, string maiitemcode, string maiitemname, string maiitemdescr, User us, string opertype)
        {
            var dynamicParams = new DynamicParameters();
            try
            {
                if (opertype == "Add")
                {
                    var sql = @"insert into TMouldmai_Item(code,name,description,lm_user,lm_date)
                              values(@maiitemcode,@maiitemname,@maiitemdescr,@usercode,@CreateDate)";
                    dynamicParams.Add("@maiitemcode", maiitemcode);
                    dynamicParams.Add("@maiitemname", maiitemname);
                    dynamicParams.Add("@maiitemdescr", maiitemdescr);
                    dynamicParams.Add("@usercode", us.usercode);
                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
                    int cont = DapperHelper.SQL(sql, dynamicParams);
                    if (cont > 0)
                    {
                        //写入操作记录表
                        LogHelper.DbOperateLog(us.usercode, "新增", "模具保养项:" + maiitemcode, us.usertype);
                        mes.code = "200";
                        mes.count = 0;
                        mes.message = "新增操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.message = "新增操作失败!";
                        mes.data = null;
                    }
                }
                if (opertype == "Update")
                {
                    var sql = @"update TMouldmai_Item set name=@maiitemname,description=@maiitemdescr,
                                lm_user=@usercode,lm_date=@CreateDate
                                where id=@maiitemid";
                    dynamicParams.Add("@maiitemid", maiitemid);
                    dynamicParams.Add("@maiitemname", maiitemname);
                    dynamicParams.Add("@maiitemdescr", maiitemdescr);
                    dynamicParams.Add("@usercode", us.usercode);
                    dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
                    int cont = DapperHelper.SQL(sql, dynamicParams);
                    if (cont > 0)
                    {
                        //写入操作记录表
                        LogHelper.DbOperateLog(us.usercode, "修改", "模具保养项:" + maiitemcode, us.usertype);
                        mes.code = "200";
                        mes.count = 0;
                        mes.message = "修改操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.message = "修改操作失败!";
                        mes.data = null;
                    }
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具保养项删除]
        public static ToMessage DeleteMouldMaiItem(string maiitemcode, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                //判断保养标准项目是否有关联保养标准,不允许删除
                sql = @"select *  from TMouldmai_Deta
                        where  code=@maiitemcode";
                dynamicParams.Add("@maiitemcode", maiitemcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "当前保养项目已关联标准,不允许删除!";
                    mes.data = null;
                    return mes;
                }
                //删除保养项目
                sql = @"delete TMouldmai_Item  where code=@maiitemcode";
                list.Add(new { str = sql, parm = new { maiitemcode = maiitemcode } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "删除", "模具保养项:" + maiitemcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "删除成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "删除失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具保养标准列表查询]
        public static ToMessage MouldRepairStandArdSearch(string repairstandcode, string repairstandname, string repairstandescr, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (repairstandcode != "" && repairstandcode != null)
                {
                    search += "and A.code like '%'+@repairstandcode+'%' ";
                    dynamicParams.Add("@repairstandcode", repairstandcode);
                }
                if (repairstandname != "" && repairstandname != null)
                {
                    search += "and A.name like '%'+@repairstandname+'%' ";
                    dynamicParams.Add("@repairstandname", repairstandname);
                }
                if (repairstandescr != "" && repairstandescr != null)
                {
                    search += "and A.iscontr=@repairstandescr ";
                    dynamicParams.Add("@repairstandescr", repairstandescr);
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.id,A.code,A.name,A.description,A.is_repairmould,U.username as lm_user,A.lm_date
                            from TMouldmai_Main A
                            left join TUser U on A.lm_user=U.usercode
                            where 1=1 " + 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 ViewMouldRepairStanedSearch(string repairstand_code)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取模具保养标准信息
                sql = @"select code,name,description
                        from TMouldmai_Main
                        where code=@repairstand_code";
                dynamicParams.Add("@repairstand_code", repairstand_code);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                RoutEdit rout = new RoutEdit();
                if (data.Rows.Count > 0)
                {
                    rout.code = data.Rows[0]["CODE"].ToString();
                    rout.name = data.Rows[0]["NAME"].ToString();
                    rout.description = data.Rows[0]["DESCRIPTION"].ToString();
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "无点检标准信息!";
                    mes.data = null;
                    return mes;
                }
                //根据模具保养标准编码获取关联的检验项目信息
                sql = @"select B.code,B.name,A.chkdesc from TMouldmai_Deta A
                        left join TMouldchk_Item  B on A.code=B.code
                        where  A.mouldmai_main_code=@repairstand_code order by A.seq asc";
                dynamicParams.Add("@repairstand_code", rout.code);
                var data0 = DapperHelper.selectdata(sql, dynamicParams);
                rout.Data = data0;
                mes.code = "200";
                mes.message = "查询成功!";
                mes.data = rout;
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具保养标准新增编辑]
        public static ToMessage AddUpdateMouldRepairStandArd(string opertype, RoutEdit json, User us)
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            List<object> list = new List<object>();
            try
            {
                if (opertype == "Add")
                {
                    //新增模具保养标准主表
                    sql = @"insert into TMouldmai_Main(code,name,description,lm_user,lm_date) values(@code,@name,@descr,@lm_user,@lm_date)";
                    list.Add(new { str = sql, parm = new { code = json.code, name = json.name, descr = json.description, lm_user = us.usercode, lm_date = DateTime.Now.ToString() } });
                    for (int i = 0; i < json.Data.Rows.Count; i++)
                    {
                        //新增模具保养标准关联保养项子表
                        sql = @"insert TMouldmai_Deta (seq,code,name,mouldmai_main_code,chkdesc,lm_user,lm_date)
                                values(@checkitem_seq,@checkitem_code,@checkitem_name,@mouldmai_main_code,@chkdesc,@lm_user,@lm_date)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                checkitem_seq = Convert.ToInt32(json.Data.Rows[i]["REPAIRITEM_SEQ"].ToString()),
                                checkitem_code = json.Data.Rows[i]["REPAIRITEM_CODE"].ToString(),
                                checkitem_name = json.Data.Rows[i]["REPAIRITEM_NAME"].ToString(),
                                mouldmai_main_code = json.code,
                                chkdesc = json.Data.Rows[i]["REPAIRITEM_DESCR"].ToString(),
                                lm_user = us.usercode,
                                lm_date = DateTime.Now.ToString()
                            }
                        });
                    }
                    bool aa = DapperHelper.DoTransaction(list);
                    if (aa)
                    {
                        //写入操作记录表
                        LogHelper.DbOperateLog(us.usercode, "新增", "模具保养标准:" + json.code, us.usertype);
                        mes.code = "200";
                        mes.count = 0;
                        mes.message = "操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.message = "操作失败!";
                        mes.data = null;
                    }
                }
                if (opertype == "Update")
                {
                    //删除保养标准关联保养项目子表
                    sql = @"delete from TMouldmai_Deta where mouldmai_main_code=@repairstaned_code";
                    list.Add(new { str = sql, parm = new { repairstaned_code = json.code } });
                    //修改保养标准主表
                    sql = @"update  TMouldmai_Main set name=@checkstaned_name,description=@checkstaned_desc where code=@repairstaned_code";
                    list.Add(new { str = sql, parm = new { repairstaned_code = json.code, checkstaned_name = json.name, checkstaned_desc = json.description } });
                    //新增保养标准关联保养项目子表
                    for (int i = 0; i < json.Data.Rows.Count; i++)
                    {
                        sql = @"insert TMouldmai_Deta (seq,code,name,mouldmai_main_code,chkdesc,lm_user,lm_date)
                                values(@checkitem_seq,@checkitem_code,@checkitem_name,@mouldmai_main_code,@chkdesc,@lm_user,@lm_date)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                checkitem_seq = Convert.ToInt32(json.Data.Rows[i]["REPAIRITEM_SEQ"].ToString()),
                                checkitem_code = json.Data.Rows[i]["REPAIRITEM_CODE"].ToString(),
                                checkitem_name = json.Data.Rows[i]["REPAIRITEM_NAME"].ToString(),
                                mouldmai_main_code = json.code,
                                chkdesc = json.Data.Rows[i]["REPAIRITEM_DESCR"].ToString(),
                                lm_user = us.usercode,
                                lm_date = DateTime.Now.ToString()
                            }
                        });
                    }
                    bool aa = DapperHelper.DoTransaction(list);
                    if (aa)
                    {
                        //写入操作记录表
                        LogHelper.DbOperateLog(us.usercode, "修改", "模具保养标准:" + json.code, us.usertype);
                        mes.code = "200";
                        mes.count = 0;
                        mes.message = "操作成功!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.count = 0;
                        mes.message = "操作失败!";
                        mes.data = null;
                    }
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具保养标准删除]
        public static ToMessage DeleteMouldRepairStaned(string repairstand_code, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                sql = @"select * from  TMouldmaint_Proc_Main  where mouldmaint_code=@repairstand_code";
                dynamicParams.Add("@repairstand_code", repairstand_code);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "当前保养标准已生成点检记录,不允许删除!";
                    mes.data = null;
                    return mes;
                }
                //删除模具保养标准主表
                sql = @"delete TMouldmai_Main  where code=@repairstand_code";
                list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                //删除模具保养标准关联保养项目子表
                sql = @"delete TMouldmai_Deta  where mouldmai_main_code=@repairstand_code";
                list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                //删除模具保养标准关联模具表
                sql = @"delete TMouldmai_Mould  where mouldmaimain_code=@repairstand_code";
                list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "删除", "模具保养标准:" + repairstand_code, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "模具保养标准删除成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "模具保养标准删除失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具点检标准关联模具查询]
        public static ToMessage RepairStanedAssociationMould(string repairstand_code)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                sql = @"select *  from(
                        select AA.code,AA.name,'M' as type,(case when BB.mouldmaimain_code is null then 'N' else 'Y' end) flag
                        from(
                        select A.code,A.name,'' as mouldmaimain_code
                        from TMouldInfo A
                        where  A.status='Y'
                        ) as AA
                        left join (
                         select A.code,A.name,B.mouldmaimain_code
                         from TMouldInfo A
                         inner join TMouldmai_Mould B on A.code=B.mould_code
                         where  B.mouldmaimain_code=@repairstand_code and A.status='Y'
                        ) as BB on AA.code=BB.code
                        ) as CC";
                dynamicParams.Add("@repairstand_code", repairstand_code);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = data;
                }
                else
                {
                    mes.code = "300";
                    mes.message = "无模具资料!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region [模具点检标准关联模具提交]
        public static ToMessage SaveRepairStanedAssociationMould(string repairstand_code, User us, List<ObjectData> json)
        {
            var sql = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                if (json == null || json.Count <= 0)
                {
                    //清除模具保养标准关联模具表数据
                    sql = @"delete TMouldmai_Mould where mouldmaimain_code=@repairstand_code";
                    list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                    //标记模具保养标准表关联模具标识
                    sql = @"update TMouldmai_Main set is_repairmould='N' where code=@repairstand_code";
                    list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                }
                else
                {
                    //清除模具保养标准关联模具表数据
                    sql = @"delete TMouldmai_Mould where mouldmaimain_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 TMouldmai_Mould(mouldmaimain_code,mould_code,lm_user,lm_date) values(@repairstand_code,@mould_code,@lm_user,@lm_date)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                mould_code = json[i].code,
                                repairstand_code = repairstand_code,
                                lm_user = us.usercode,
                                lm_date = DateTime.Now.ToString()
                            }
                        });
                    }
                    //标记模具保养标准表关联模具标识
                    sql = @"update TMouldmai_Main set is_repairmould='Y' where code=@repairstand_code";
                    list.Add(new { str = sql, parm = new { repairstand_code = repairstand_code } });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具保养标准关联模具", "模具保养标准:" + repairstand_code, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "操作成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "操作失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具点检,扫描模具二维码]
        public static ToMessage CheckScanMouldQrCodeData(string mouldcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取对应模具信息
                sql = @"select A.code,A.name,A.spec
                        from TMouldInfo A
                        where A.code=@mouldcode and A.status='Y'";
                dynamicParams.Add("@mouldcode", mouldcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = data;
                }
                else
                {
                    mes.code = "300";
                    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 CheckScanMouldTemp(string mouldcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取对应模具点检标准
                sql = @"select M.code,M.name   from TMouldchk_Mould E
                        inner join TMouldchk_Main M on E.mouldchkmain_code=M.code
                        where E.mould_code=@mouldcode order by M.lm_date desc";
                dynamicParams.Add("@mouldcode", mouldcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = data;
                }
                else
                {
                    mes.code = "300";
                    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 SelectScanMouldQrCodeItem(string mouldcode, string checktempcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取对应模具关联的点检项目
                sql = @"select S.seq,S.code,S.name,S.chkdesc
                        from TMouldchk_Mould A
                        inner join TMouldchk_Main B on A.mouldchkmain_code=B.code
                        inner join TMouldchk_Deta S on B.code=S.mouldchk_main_code
                        where A.mould_code=@mouldcode and B.code=@checktempcode
                        order by S.seq asc";
                dynamicParams.Add("@mouldcode", mouldcode);
                dynamicParams.Add("@checktempcode", checktempcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = data;
                }
                else
                {
                    mes.code = "300";
                    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 MouldCheckSave(string menucode, User us, AppDevicecCheck json)
        {
            var sql = "";
            string djwo = "", numvalue = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                mes = SeachEncodeJob.EncodingSeach(menucode);  //APP端模具点检生成单号
                if (mes.code == "300")
                {
                    return mes;
                }
                else
                {
                    List<string> wo = (List<string>)mes.data;
                    djwo = wo[0].ToString(); //获取单号
                    numvalue = wo[1].ToString(); //获取流水号
                }
                if (json == null || json.children.Count <= 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "点检项信息不能为空!";
                    mes.data = null;
                    return mes;
                }
                //写入点检记录主表
                sql = @"insert into TMouldchk_Proc_Main(djwo,mould_code,mouldchkmain_code,chk_user,chk_date,chk_result)
                        values(@djwo,@mould_code,@mouldchkmain_code,@lm_user,@lm_date,@chk_result)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        djwo = djwo,
                        mould_code = json.code,
                        mouldchkmain_code = json.standcode,
                        lm_user = us.usercode,
                        lm_date = DateTime.Now.ToString(),
                        chk_result = json.result
                    }
                });
                //循环写入点检记录子表
                for (int i = 0; i < json.children.Count; i++)
                {
                    sql = @"insert into TMouldchk_Proc_Deta(seq,m_id,mouldchkdeta_code,result,chk_value,lm_user,lm_date)
                            values(@seq,CONVERT(INT,IDENT_CURRENT('TMouldchk_Proc_Main')),@mouldchkdeta_code,@result,@chk_value,@lm_user,@lm_date)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            seq = json.children[i].seq,
                            mouldchkdeta_code = json.children[i].itemcode,
                            result = json.children[i].result,
                            chk_value = json.children[i].value,
                            lm_user = us.usercode,
                            lm_date = DateTime.Now.ToString()
                        }
                    }); ;
                }
                //更新单据流水号
                List<object> list1 = SeachEncodeJob.StrEncodingUpdate(menucode, numvalue);
                list.Add(list1[0]);
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具点检", "模具:" + json.code, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "点检成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "点检失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具保养,扫描模具二维码]
        public static ToMessage RepairScanMouldQrCodeData(string mouldcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取模具信息
                sql = @"select A.code,A.name,A.spec
                        from TMouldInfo A
                        where A.code=@mouldcode and A.status='Y' ";
                dynamicParams.Add("@mouldcode", mouldcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = data;
                }
                else
                {
                    mes.code = "300";
                    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 RepairScanMouldTemp(string mouldcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取对应模具保养标准
                sql = @"select M.code,M.name   from TMouldmai_Mould E
                        inner join TMouldchk_Main M on E.mouldmaimain_code=M.code
                        where E.mould_code=@mouldcode order by M.lm_date desc";
                dynamicParams.Add("@mouldcode", mouldcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = data;
                }
                else
                {
                    mes.code = "300";
                    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 RepairSelectScanMouldQrCodeItem(string mouldcode, string repartempcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取对应模具关联的保养项目
                sql = @"select S.seq,S.code,S.name,S.chkdesc
                        from TMouldmai_Mould A
                        inner join TMouldmai_Main B on A.mouldmaimain_code=B.code
                        inner join TMouldmai_Deta S on B.code=S.mouldmai_main_code
                        where A.mould_code=@mouldcode and B.code=@repartempcode
                        order by S.seq asc";
                dynamicParams.Add("@mouldcode", mouldcode);
                dynamicParams.Add("@repartempcode", repartempcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = data;
                }
                else
                {
                    mes.code = "300";
                    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 MouldRepairSave(string menucode, User us, AppDevicecCheck json)
        {
            var sql = "";
            string bywo = "", numvalue = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                mes = SeachEncodeJob.EncodingSeach(menucode);  //APP端模具保养生成单号
                if (mes.code == "300")
                {
                    return mes;
                }
                else
                {
                    List<string> wo = (List<string>)mes.data;
                    bywo = wo[0].ToString(); //获取单号
                    numvalue = wo[1].ToString(); //获取流水号
                }
                if (json == null || json.children.Count <= 0)
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "保养项信息不能为空!";
                    mes.data = null;
                    return mes;
                }
                //写入保养记录主表
                sql = @"insert into TMouldmaint_Proc_Main(bywo,mould_code,mouldmaint_code,maint_result,maint_user,maint_date)
                        values(@bywo,@mould_code,@mouldmaint_code,@maint_result,@maint_user,@maint_date)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        bywo = bywo,
                        mould_code = json.code,
                        mouldmaint_code = json.standcode,
                        maint_user = us.usercode,
                        maint_date = DateTime.Now.ToString(),
                        maint_result = json.result
                    }
                });
                //循环写入保养记录子表
                for (int i = 0; i < json.children.Count; i++)
                {
                    sql = @"insert into TMouldmaint_Proc_Deta(seq,m_id,mouldmaideta_code,result,maint_value,lm_user,lm_date)
                            values(@seq,CONVERT(INT,IDENT_CURRENT('TMouldmaint_Proc_Main')),@mouldmaideta_code,@result,@maint_value,@lm_user,@lm_date)";
                    list.Add(new
                    {
                        str = sql,
                        parm = new
                        {
                            seq = json.children[i].seq,
                            mouldmaideta_code = json.children[i].itemcode,
                            result = json.children[i].result,
                            maint_value = json.children[i].value,
                            lm_user = us.usercode,
                            lm_date = DateTime.Now.ToString()
                        }
                    }); ;
                }
                //更新单据流水号
                List<object> list1 = SeachEncodeJob.StrEncodingUpdate(menucode, numvalue);
                list.Add(list1[0]);
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具保养", "模具:" + json.code, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "保养成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "保养失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具信息查询,扫描模具二维码]
        public static ToMessage ScanMouldQrCodeMessageData(string mouldcode)
        {
            string sql = "", search = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += " where code=@mouldcode ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                //查找模具信息
                sql = @"select code,name,spec
                        from TMouldInfo"+search;
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = dt;
                    return mes;
                }
                else
                {
                    mes.code = "300";
                    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 ScanMouldQrCodeMessageSubData(string mouldcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            List<MouldMessage> list = new List<MouldMessage>();
            try
            {
                //查找模具信息
                MouldMessage moud = new MouldMessage();
                sql = @"select code,name,spec,surp_life,resi_life,status,usestatus
                        from TMouldInfo where code=@mouldcode";
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    moud.mouldcode = dt.Rows[0]["code"].ToString();
                    moud.mouldname = dt.Rows[0]["name"].ToString();
                    moud.mouldspec = dt.Rows[0]["spec"].ToString();
                    moud.surp_life = dt.Rows[0]["surp_life"].ToString();
                    moud.resi_life = dt.Rows[0]["resi_life"].ToString();
                    moud.status = dt.Rows[0]["status"].ToString();
                    moud.usestatus = dt.Rows[0]["usestatus"].ToString();
                    //查询最近一次点检记录
                    sql = @"select top 1 chk_date  from TMouldchk_Proc_Main where mould_code=@mouldcode order by chk_date desc";
                    dynamicParams.Add("@mouldcode", mouldcode);
                    var dt0 = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt0.Rows.Count > 0)
                    {
                        moud.checkdate = dt0.Rows[0]["chk_date"].ToString();
                    }
                    //查询最近一次保养记录
                    sql = @"select top 1 maint_date  from TMouldmaint_Proc_Main where mould_code=@mouldcode order by maint_date desc";
                    dynamicParams.Add("@mouldcode", mouldcode);
                    var dt1 = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt1.Rows.Count > 0)
                    {
                        moud.maintdate = dt1.Rows[0]["maint_date"].ToString();
                    }
                    //查询关联产品
                    moud.children = new List<RelatedProduct>();
                    sql = @"select P.partcode,M.partname,M.partspec
                        from TMouldInfoPart P
                        left join TMateriel_Info M on P.partcode=M.partcode
                        where P.mouldcode=@mouldcode";
                    dynamicParams.Add("@mouldcode", mouldcode);
                    var dt2 = DapperHelper.selectdata(sql, dynamicParams);
                    if (dt2.Rows.Count > 0)
                    {
                        for (int i = 0; i < dt2.Rows.Count; i++)
                        {
                            RelatedProduct mousb = new RelatedProduct();
                            mousb.partcode = dt2.Rows[i]["partcode"].ToString();
                            mousb.partname = dt2.Rows[i]["partname"].ToString();
                            mousb.partspec = dt2.Rows[i]["partspec"].ToString();
                            moud.children.Add(mousb);
                        }
                    }
                    list.Add(moud);
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = list;
                    return mes;
                }
                else
                {
                    mes.code = "300";
                    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 MaintainScanMouldApplyQrCodeData(string mouldcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //判断当前模具当前使用状态
                sql = @"select *   from TMouldInfo where code=@mouldcode";
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    switch (dt.Rows[0]["usestatus"].ToString())
                    {
                        case "0": //在库
                            mes.code = "300";
                            mes.message = "当前模具在库状态,请先出库操作!";
                            mes.data = null;
                            return mes;
                        case "2": //上机
                            mes.code = "300";
                            mes.message = "当前模具上机状态,请先下机操作!";
                            mes.data = null;
                            return mes;
                        case "7": //外借
                            mes.code = "300";
                            mes.message = "当前模具外借状态,请先归还操作!";
                            mes.data = null;
                            return mes;
                        default:
                            break;
                    }
                }
                else
                {
                    mes.code = "300";
                    mes.message = "无效的模具二维码信息!";
                    mes.data = null;
                    return mes;
                }
                //获取当前扫码模具是否存在已申请或已维修状态数据
                sql = @"select *  from TMould_RepairRequest where mould_code=@mouldcode and status<>'CONFIR'";
                dynamicParams.Add("@mouldcode", mouldcode);
                var data0 = DapperHelper.selectdata(sql, dynamicParams);
                if (data0.Rows.Count > 0)
                {
                    //查看维修记录里面是否有已申请未维修及维修确认的数据
                    var rows = data0.AsEnumerable().Where(item => item["STATUS"].ToString().Equals("REPA")).ToArray();
                    if (rows.Length > 0)
                    {
                        mes.code = "300";
                        mes.message = "当前模具已维修申请,待维修!";
                        mes.data = null;
                    }
                    else
                    {
                        mes.code = "300";
                        mes.message = "当前模具已维修,待确认验证!";
                        mes.data = null;
                    }
                }
                else
                {
                    //获取对应模具信息
                    sql = @"select A.code,A.name,A.spec,A.surp_life,A.resi_life
                            from TMouldInfo A
                            where A.code=@mouldcode and A.status='Y' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                    var data = DapperHelper.selectdata(sql, dynamicParams);
                    if (data.Rows.Count > 0)
                    {
                        mes.code = "200";
                        mes.message = "查询成功!";
                        mes.data = data;
                    }
                    else
                    {
                        mes.code = "300";
                        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 MaintainScanMouldApplySave(string menucode, string mouldcode, string faultsourcecode, string faultdescr, User us, IFormFileCollection files)
        {
            var sql = "";
            string sqwo = "", numvalue = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                mes = SeachEncodeJob.EncodingSeach(menucode);  //APP端模具维修申请生成单号
                if (mes.code == "300")
                {
                    return mes;
                }
                else
                {
                    List<string> wo = (List<string>)mes.data;
                    sqwo = wo[0].ToString(); //获取申请维修单号
                    numvalue = wo[1].ToString(); //获取流水号
                }
                //维修申请上传图片
                if (files != null && files.Count > 0)
                {
                    for (int i = 0; i < files.Count; i++)
                    {
                        IFormFile file = files[i];
                        string imgName = "SQ" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString();
                        string filePath = "wwwroot/MouldRecordImage/" + imgName + file.FileName;     //通过此对象获取文件名(存文件地址)
                        string filePath1 = "MouldRecordImage/" + imgName + file.FileName;     //通过此对象获取文件名(存数据表地址)
                        // 生成文件名
                        //var fileName = "SQ" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString() + Path.GetExtension(files[i].FileName);
                        // 拼接文件保存路径
                        //var filePath = Path.Combine("wwwroot/MouldRecordImage", fileName);
                        // 保存文件var stream = new FileStream(filePath, FileMode.Create)
                        using (var stream = new FileStream(filePath, FileMode.Create))
                        {
                            files[i].CopyTo(stream);
                        }
                        //循环写维修记录对应图片表
                        sql = @"insert into  TMould_RepairImage(source_wo,wo_type,img1url)
                                values(@source_wo,@wo_type,@img1url)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                source_wo = sqwo,
                                wo_type = "REPA",
                                img1url = filePath1
                            }
                        });
                    }
                }
                //写入维修申请记录表
                sql = @"insert into  TMould_RepairRequest(docu_code,docu_date,status,mould_code,request_person,request_date,failure_descript,source)
                                values(@docu_code,@docu_date,@status,@mould_code,@request_person,@request_date,@failure_descript,@source)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        docu_code = sqwo,
                        docu_date = DateTime.Now.ToString(),
                        status = "REPA",
                        mould_code = mouldcode,
                        request_person = us.usercode,
                        request_date = DateTime.Now.ToString(),
                        failure_descript = faultdescr,
                        source = faultsourcecode
                    }
                });
                //回写模具清单,模具状态(故障)、使用状态(待维修)
                sql = @"update TMouldInfo set status='N',usestatus='4'  where code=@mouldcode";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode } });
                //更新单据流水号
                List<object> list1 = SeachEncodeJob.StrEncodingUpdate(menucode, numvalue);
                list.Add(list1[0]);
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具维修申请", "模具:" + mouldcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "维修申请成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "维修申请失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具待维修信息列表]
        public static ToMessage RepairScanMouldQrCodeDataList(string mouldcode)
        {
            string sql = "", search = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and B.code=@mouldcode ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                //获取模具维修列表已申请未维修的数据
                sql = @"select A.docu_code,B.code as mouldcode,B.name as mouldname,B.spec as mouldspec,B.surp_life,B.resi_life,
                        A.request_person,U.username as request_name,A.request_date,
                        (case when A.source='A' then '点检' when A.source='B' then '保养' when A.source='D' then '手工' end) as source,
                        A.failure_descript
                        from TMould_RepairRequest A
                        inner  join TMouldInfo B on A.mould_code=B.code
                        left   join TUser U on A.request_person=U.usercode
                        where  A.status='REPA' " + search;
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = data;
                }
                else
                {
                    mes.code = "300";
                    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 RepairScanMouldSave(string menucode, string docu_code, string mouldcode, string faultdescr, string is_stoprepair, string repaircontent, User us, IFormFileCollection files)
        {
            var sql = "";
            string wxwo = "", numvalue = "";
            List<object> list = new List<object>();
            try
            {
                list.Clear();
                mes = SeachEncodeJob.EncodingSeach(menucode);  //APP端模具维修生成单号
                if (mes.code == "300")
                {
                    return mes;
                }
                else
                {
                    List<string> wo = (List<string>)mes.data;
                    wxwo = wo[0].ToString(); //获取单号
                    numvalue = wo[1].ToString(); //获取流水号
                }
                //维修申请上传图片
                if (files != null && files.Count > 0)
                {
                    for (int i = 0; i < files.Count; i++)
                    {
                        IFormFile file = files[i];
                        string imgName = "WX" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString();
                        string filePath = "wwwroot/MouldRecordImage/" + imgName + file.FileName;     //通过此对象获取文件名(存文件地址)
                        string filePath1 = "MouldRecordImage/" + imgName + file.FileName;     //通过此对象获取文件名(存数据表地址)
                        // 生成文件名
                        //var fileName = "WX" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString() + Path.GetExtension(files[i].FileName);
                        // 拼接文件保存路径
                        //var filePath = Path.Combine("wwwroot/MouldRecordImage", fileName);
                        // 保存文件var stream = new FileStream(filePath, FileMode.Create)
                        using (var stream = new FileStream(filePath, FileMode.Create))
                        {
                            files[i].CopyTo(stream);
                        }
                        //循环写维修记录对应图片表
                        sql = @"insert into  TMould_RepairImage(source_wo,wo_type,img1url)
                                values(@source_wo,@wo_type,@img1url)";
                        list.Add(new
                        {
                            str = sql,
                            parm = new
                            {
                                source_wo = wxwo,
                                wo_type = "COMP",
                                img1url = filePath1
                            }
                        });
                    }
                }
                //写入维修记录表
                sql = @"insert into  TMould_Repair(repair_code,docu_date,status,mould_code,repair_person,repair_date,repair_content,failure_descript,is_shutdown,source_wo)
                        values(@repair_code,@docu_date,@status,@mould_code,@repair_person,@repair_date,@repair_content,@failure_descript,@is_shutdown,@source_wo)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        repair_code = wxwo,
                        docu_date = DateTime.Now.ToString(),
                        status = "COMP",
                        mould_code = mouldcode,
                        repair_person = us.usercode,
                        repair_date = DateTime.Now.ToString(),
                        repair_content = repaircontent,
                        failure_descript = faultdescr,
                        is_shutdown = is_stoprepair,
                        source_wo = docu_code
                    }
                });
                //更新维修申请单状态
                sql = @"update TMould_RepairRequest set status=@status  where docu_code=@docu_code  and mould_code=@mouldcode";
                list.Add(new { str = sql, parm = new { docu_code = docu_code, mouldcode = mouldcode, status = "COMP" } });
                //回写模具清单,使用状态(已维修)
                sql = @"update TMouldInfo set usestatus='5'  where code=@mouldcode";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode } });
                //更新单据流水号
                List<object> list1 = SeachEncodeJob.StrEncodingUpdate(menucode, numvalue);
                list.Add(list1[0]);
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具维修", "模具:" + mouldcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "维修成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "维修失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具维修待验证列表]
        public static ToMessage RepairVerificationScanMouldData(string mouldcode)
        {
            string sql = "", search = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and B.code=@mouldcode ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                //获取模具维修列表已维修的数据
                sql = @"select A.repair_code,B.code as mouldcode,B.name as mouldname,B.spec as mouldspec,B.surp_life,B.resi_life,
                        A.repair_person,U.username as repair_name,A.repair_date,A.is_shutdown,
                        A.failure_descript
                        from TMould_Repair A
                        inner  join TMouldInfo B on A.mould_code=B.code
                        left   join TUser U on A.repair_person=U.usercode
                        where A.status='COMP' " + search;
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = data;
                }
                else
                {
                    mes.code = "300";
                    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 RepairVerificationScanMouldDataSub(string repair_code, string mouldcode)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            Dictionary<string, object> dict = new Dictionary<string, object>();
            try
            {
                //根据设模具编码获取维修详情
                sql = @"select repair_code,failure_descript,is_shutdown,repair_content,repair_part
                        from TMould_Repair
                        where repair_code=@repair_code  and mould_code=@mouldcode";
                dynamicParams.Add("@repair_code", repair_code);
                dynamicParams.Add("@mouldcode", mouldcode);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                if (data.Rows.Count > 0)
                {
                    dict.Add("failure_descript", data.Rows[0]["failure_descript"].ToString()); //故障描述
                    //获取故障上传图片
                    sql = @"select img1url  from TMould_RepairImage where source_wo=@source_wo and wo_type='COMP'";
                    dynamicParams.Add("@source_wo", data.Rows[0]["repair_code"].ToString());
                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
                    if (data0.Rows.Count > 0)
                    {
                        dict.Add("failure_descriptimg", data0); //故障上传图片
                    }
                    dict.Add("repair_content", data.Rows[0]["repair_content"].ToString()); //维修内容
                    mes.code = "200";
                    mes.message = "查询成功!";
                    mes.data = dict;
                }
                else
                {
                    mes.code = "300";
                    mes.message = "暂无维修记录!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具维修验证提交]
        public static ToMessage RepairVerificationScanMouldSave(string repairwo, string mouldcode, string result, string surp_life, User us)
        {
            var sql = ""; decimal surplife = 0;
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                //验证结果为OK且验证后的剩余寿命>0
                if (result == "OK" && decimal.Parse(surp_life) > 0)
                {
                    surplife = decimal.Parse(surp_life);
                }
                //根据模具维修单查找源单(维修申请单)
                sql = @"select source_wo   from TMould_Repair where repair_code=@repairwo";
                dynamicParams.Add("@repairwo", repairwo);
                var data = DapperHelper.selectdata(sql, dynamicParams);
                //更新设备维修记录验证人员、验证时间、验证结果、验证状态
                sql = @"update TMould_Repair set status=@status,is_verifi=@is_verifi,verify_result=@verify_result,verify_person=@verify_person,verify_date=@verify_date,verify_surplife=@verify_surplife
                        where repair_code=@repair_code  and mould_code=@mould_code";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        status = "CONFIR",
                        is_verifi = "Y",
                        verify_result = result,
                        verify_person = us.usercode,
                        verify_date = DateTime.Now.ToString(),
                        repair_code = repairwo,
                        mould_code = mouldcode,
                        verify_surplife = surplife
                    }
                });
                //更新维修申请单状态
                sql = @"update TMould_RepairRequest set status=@status  where docu_code=@docu_code  and mould_code=@mouldcode";
                list.Add(new { str = sql, parm = new { docu_code = data.Rows[0]["source_wo"].ToString(), mouldcode = mouldcode, status = "CONFIR" } });
                if (result == "OK")
                {
                    if (surplife > 0)
                    {
                        //回写模具清单,模具状态(正常),使用状态(已维修),剩余寿命(次)
                        sql = @"update TMouldInfo set status='Y',usestatus='6',resi_life=@resi_life  where code=@mouldcode";
                        list.Add(new { str = sql, parm = new { mouldcode = mouldcode, resi_life = surp_life } });
                    }
                    else
                    {
                        //回写模具清单,模具状态(正常),使用状态(已维修)
                        sql = @"update TMouldInfo set status='Y',usestatus='6'  where code=@mouldcode";
                        list.Add(new { str = sql, parm = new { mouldcode = mouldcode } });
                    }
                }
                else
                {
                    //回写模具清单,模具状态(故障),使用状态(已维修)
                    sql = @"update TMouldInfo set status='N',usestatus='6'  where code=@mouldcode";
                    list.Add(new { str = sql, parm = new { mouldcode = mouldcode } });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具维修验证", "模具:" + mouldcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "维修验证成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "维修验证失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具上机,扫描模具编码]
        public static ToMessage MouldUpQrCodeData(string mouldcode)
        {
            string sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                //判断当前模具当前使用状态
                sql = @"select code,name,spec,status,usestatus,surp_life,resi_life
                        from TMouldInfo where code=@mouldcode";
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    if (dt.Rows[0]["status"].ToString() == "Y")
                    {
                        switch (dt.Rows[0]["usestatus"].ToString())
                        {
                            case "0": //在库
                                mes.code = "300";
                                mes.message = "当前模具在库状态,不符合上机操作!";
                                mes.data = null;
                                return mes;
                            case "2": //上机
                                mes.code = "300";
                                mes.message = "当前模具上机状态,不符合上机操作!";
                                mes.data = null;
                                return mes;
                            case "7": //外借
                                mes.code = "300";
                                mes.message = "当前模具外借状态,不符合上机操作!";
                                mes.data = null;
                                return mes;
                            default:
                                mes.code = "200";
                                mes.message = "查询成功!";
                                mes.data = dt;
                                break;
                        }
                    }
                    else
                    {
                        mes.code = "300";
                        mes.message = "模具故障或维修中,不允许上机!";
                        mes.data = null;
                        return mes;
                    }
                }
                else
                {
                    mes.code = "300";
                    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 MouldEqpPermissions()
        {
            var sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                sql = @"select code,name   from TEqpInfo where  enable='Y' and code not in
                        (
                          select distinct eqp_code   from TMould_UpDownReord where is_up='Y'
                        )";
                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 MouldUpSave(string mouldcode, string eqp_code, string description, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                //写入上下机机记录表(上机操作)
                sql = @"insert into  TMould_UpDownReord(mould_code,type,eqp_code,description,is_up,lm_user,lm_date)
                        values(@mould_code,@type,@eqp_code,@description,@is_up,@lm_user,@lm_date)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        mould_code = mouldcode,
                        type = "UP",
                        eqp_code = eqp_code,
                        description = description,
                        is_up = "Y",
                        lm_user = us.usercode,
                        lm_date = DateTime.Now.ToString()
                    }
                });
                //回写模具清单,使用状态(上机)
                sql = @"update TMouldInfo set usestatus='2'  where code=@mouldcode";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具上机", "模具:" + mouldcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "模具上机成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "模具上机失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具下机,扫描模具编码]
        public static ToMessage MouldDownQrCodeData(string mouldcode)
        {
            string sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                //判断当前模具当前使用状态
                sql = @"select *   from TMouldInfo where code=@mouldcode ";
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    if (dt.Rows[0]["status"].ToString() == "Y")
                    {
                        //判断当前模具是否在上机状态
                        sql = @"select A.mould_code,M.name as mould_name,M.spec as mould_spec,
                                M.surp_life,M.resi_life,A.eqp_code,E.name as eqp_name
                                from TMould_UpDownReord A
                                left join TMouldInfo M on A.mould_code=M.code
                                left join TEqpInfo E on A.eqp_code=E.code
                                where A.mould_code=@mouldcode and A.is_up='Y'";
                        dynamicParams.Add("@mouldcode", mouldcode);
                        var data = DapperHelper.selectdata(sql, dynamicParams);
                        if (data.Rows.Count > 0)
                        {
                            mes.code = "200";
                            mes.message = "查询成功!";
                            mes.data = data;
                            return mes;
                        }
                        else
                        {
                            mes.code = "300";
                            mes.message = "当前模具未上机,不符合下机操作!";
                            mes.data = null;
                            return mes;
                        }
                    }
                    else
                    {
                        mes.code = "300";
                        mes.message = "模具故障或维修中,不符合下机操作!";
                        mes.data = null;
                        return mes;
                    }
                }
                else
                {
                    mes.code = "300";
                    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 MouldDownSave(string mouldcode, string eqp_code, string usecount_life, string description, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                //写入上下机机记录表(下机操作)
                sql = @"insert into  TMould_UpDownReord(mould_code,type,usecount_life,eqp_code,description,is_up,lm_user,lm_date)
                        values(@mould_code,@type,@usecount_life,@eqp_code,@description,@is_up,@lm_user,@lm_date)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        mould_code = mouldcode,
                        type = "DOWN",
                        usecount_life = decimal.Parse(usecount_life),
                        eqp_code = eqp_code,
                        description = description,
                        is_up = "N",
                        lm_user = us.usercode,
                        lm_date = DateTime.Now.ToString()
                    }
                });
                //回写上机记录上机标识(清除)
                sql = @"update TMould_UpDownReord set is_up='N'  where mould_code=@mouldcode and eqp_code=@eqp_code";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode, eqp_code = eqp_code } });
                //回写模具清单
                if (decimal.Parse(usecount_life) > 0)
                {
                    //回写模具清单,使用状态(下机),剩余寿命
                    sql = @"update TMouldInfo set usestatus='3',resi_life=resi_life-@resi_life  where code=@mouldcode";
                    list.Add(new { str = sql, parm = new { mouldcode = mouldcode, resi_life = decimal.Parse(usecount_life) } });
                }
                else
                {
                    //回写模具清单,使用状态(下机)
                    sql = @"update TMouldInfo set usestatus='3'  where code=@mouldcode";
                    list.Add(new { str = sql, parm = new { mouldcode = mouldcode } });
                }
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具下机", "模具:" + mouldcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "模具下机成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "模具下机失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具外借,扫描模具编码]
        public static ToMessage MouldLendOutQrCodeData(string mouldcode)
        {
            string sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                //判断当前模具当前使用状态
                sql = @"select code,name,spec,status,usestatus,surp_life,resi_life
                        from TMouldInfo where code=@mouldcode";
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    if (dt.Rows[0]["status"].ToString() == "Y")
                    {
                        switch (dt.Rows[0]["usestatus"].ToString())
                        {
                            case "0": //在库
                                mes.code = "300";
                                mes.message = "当前模具在库状态,不符合外借操作!";
                                mes.data = null;
                                return mes;
                            case "2": //上机
                                mes.code = "300";
                                mes.message = "当前模具上机状态,不符合外借操作!";
                                mes.data = null;
                                return mes;
                            case "7": //外借
                                mes.code = "300";
                                mes.message = "当前模具外借状态,不符合外借操作!";
                                mes.data = null;
                                return mes;
                            default:
                                mes.code = "200";
                                mes.message = "查询成功!";
                                mes.data = dt;
                                break;
                        }
                    }
                    else
                    {
                        mes.code = "300";
                        mes.message = "模具故障或维修中,不允许外借!";
                        mes.data = null;
                        return mes;
                    }
                }
                else
                {
                    mes.code = "300";
                    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 MouldLendOutSave(string mouldcode, string description, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                //写入外借归还记录表(外借操作)
                sql = @"insert into  TMould_LendOutReord(mould_code,type,description,is_ledout,lm_user,lm_date)
                        values(@mould_code,@type,@description,@is_ledout,@lm_user,@lm_date)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        mould_code = mouldcode,
                        type = "OUT",
                        description = description,
                        is_ledout = "Y",
                        lm_user = us.usercode,
                        lm_date = DateTime.Now.ToString()
                    }
                });
                //回写模具清单,使用状态(外借)
                sql = @"update TMouldInfo set usestatus='7'  where code=@mouldcode";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具外借", "模具:" + mouldcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "模具外借成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "模具外借失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具归还,扫描模具编码]
        public static ToMessage MouldReturnQrCodeData(string mouldcode)
        {
            string sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                //判断当前模具当前使用状态
                sql = @"select *   from TMouldInfo where code=@mouldcode ";
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    if (dt.Rows[0]["status"].ToString() == "Y")
                    {
                        //判断当前模具是否在外借状态
                        sql = @"select A.mould_code,M.name as mould_name,M.spec as mould_spec,
                                M.surp_life,M.resi_life
                                from TMould_LendOutReord A
                                left join TMouldInfo M on A.mould_code=M.code
                                where A.mould_code=@mouldcode and A.is_ledout='Y'";
                        dynamicParams.Add("@mouldcode", mouldcode);
                        var data = DapperHelper.selectdata(sql, dynamicParams);
                        if (data.Rows.Count > 0)
                        {
                            mes.code = "200";
                            mes.message = "查询成功!";
                            mes.data = data;
                            return mes;
                        }
                        else
                        {
                            mes.code = "300";
                            mes.message = "当前模具未外借,不符合归还操作!";
                            mes.data = null;
                            return mes;
                        }
                    }
                    else
                    {
                        mes.code = "300";
                        mes.message = "模具故障或维修中,不符合归还操作!";
                        mes.data = null;
                        return mes;
                    }
                }
                else
                {
                    mes.code = "300";
                    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 MouldReturnSave(string mouldcode, string description, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                //写入模具外借记录表(下机操作)
                sql = @"insert into  TMould_LendOutReord(mould_code,type,description,is_ledout,lm_user,lm_date)
                        values(@mould_code,@type,@description,@is_ledout,@lm_user,@lm_date)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        mould_code = mouldcode,
                        type = "IN",
                        description = description,
                        is_ledout = "N",
                        lm_user = us.usercode,
                        lm_date = DateTime.Now.ToString()
                    }
                });
                //回写模具外借记录表外借标识(清除)
                sql = @"update TMould_LendOutReord set is_ledout='N'  where mould_code=@mouldcode";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode } });
                //回写模具清单,使用状态(归还)
                sql = @"update TMouldInfo set usestatus='8'  where code=@mouldcode";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具归还", "模具:" + mouldcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "模具归还成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "模具归还失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具入库,扫描模具编码]
        public static ToMessage MouldInWareHouseQrCodeData(string mouldcode)
        {
            string sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                //判断当前模具当前使用状态
                sql = @"select code,name,spec,status,usestatus,surp_life,resi_life
                        from TMouldInfo where code=@mouldcode";
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    if (dt.Rows[0]["status"].ToString() == "Y")
                    {
                        switch (dt.Rows[0]["usestatus"].ToString())
                        {
                            case "0": //在库
                                mes.code = "300";
                                mes.message = "当前模具在库状态,不符合入库操作!";
                                mes.data = null;
                                return mes;
                            case "2": //上机
                                mes.code = "300";
                                mes.message = "当前模具上机状态,不符合入库操作!";
                                mes.data = null;
                                return mes;
                            case "7": //外借
                                mes.code = "300";
                                mes.message = "当前模具外借状态,不符合入库操作!";
                                mes.data = null;
                                return mes;
                            default:
                                mes.code = "200";
                                mes.message = "查询成功!";
                                mes.data = dt;
                                break;
                        }
                    }
                    else
                    {
                        mes.code = "300";
                        mes.message = "模具故障或维修中,不允许入库操作!";
                        mes.data = null;
                        return mes;
                    }
                }
                else
                {
                    mes.code = "300";
                    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 MouldInWareHouseSave(string mouldcode, string warehousecode,string locationcode, string description, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                //写入模具出入库记录表(入库操作)
                sql = @"insert into  TMould_InOutReord(mould_code,type,warehouse_code,location_code,description,lm_user,lm_date)
                        values(@mould_code,@type,@warehouse_code,@location_code,@description,@lm_user,@lm_date)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        mould_code = mouldcode,
                        type = "IN",
                        warehouse_code = warehousecode,
                        location_code = locationcode,
                        description = description,
                        lm_user = us.usercode,
                        lm_date = DateTime.Now.ToString()
                    }
                });
                //回写模具清单,使用状态(入库),仓库编码
                sql = @"update TMouldInfo set usestatus='0',warehousecode=@warehousecode,location_code=@location_code  where code=@mouldcode";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode, warehousecode = warehousecode, location_code = locationcode } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具入库", "模具:" + mouldcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "模具入库成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "模具入库失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具出库,扫描模具编码]
        public static ToMessage MouldOutWareHouseQrCodeData(string mouldcode)
        {
            string sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                //判断当前模具当前使用状态
                sql = @"select *   from TMouldInfo where code=@mouldcode ";
                dynamicParams.Add("@mouldcode", mouldcode);
                var dt = DapperHelper.selectdata(sql, dynamicParams);
                if (dt.Rows.Count > 0)
                {
                    if (dt.Rows[0]["status"].ToString() == "Y")
                    {
                        //判断当前模具是否在外借状态
                        sql = @"select M.code as mould_code,M.name as mould_name,M.spec as mould_spec,
                                M.surp_life,M.resi_life,M.warehousecode,C.name as  warehousename,M.location_code,L.name as location_name
                                from TMouldInfo M
                                left join TSecStck C on M.warehousecode=C.code
                                left join TSecLoca L on M.location_code=L.code
                                where M.code=@mouldcode and M.usestatus='0'";
                        dynamicParams.Add("@mouldcode", mouldcode);
                        var data = DapperHelper.selectdata(sql, dynamicParams);
                        if (data.Rows.Count > 0)
                        {
                            mes.code = "200";
                            mes.message = "查询成功!";
                            mes.data = data;
                            return mes;
                        }
                        else
                        {
                            mes.code = "300";
                            mes.message = "当前模具未在库,不符合出库操作!";
                            mes.data = null;
                            return mes;
                        }
                    }
                    else
                    {
                        mes.code = "300";
                        mes.message = "模具故障或维修中,不符合出库操作!";
                        mes.data = null;
                        return mes;
                    }
                }
                else
                {
                    mes.code = "300";
                    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 MouldOutWareHouseSave(string mouldcode, string warehousecode,string locationcode, string description, User us)
        {
            var sql = "";
            List<object> list = new List<object>();
            var dynamicParams = new DynamicParameters();
            try
            {
                list.Clear();
                //写入模具出入库记录表(出库操作)
                sql = @"insert into  TMould_InOutReord(mould_code,type,warehouse_code,location_code,description,lm_user,lm_date)
                        values(@mould_code,@type,@warehouse_code,@location_code,@description,@lm_user,@lm_date)";
                list.Add(new
                {
                    str = sql,
                    parm = new
                    {
                        mould_code = mouldcode,
                        type = "OUT",
                        warehouse_code = warehousecode,
                        location_code= locationcode,
                        description = description,
                        lm_user = us.usercode,
                        lm_date = DateTime.Now.ToString()
                    }
                });
                //回写模具清单,使用状态(出库),清除仓库编码
                sql = @"update TMouldInfo set usestatus='1',warehousecode=@warehousecode,location_code=@location_code  where code=@mouldcode";
                list.Add(new { str = sql, parm = new { mouldcode = mouldcode, warehousecode ="", location_code="" } });
                bool aa = DapperHelper.DoTransaction(list);
                if (aa)
                {
                    //写入操作记录表
                    LogHelper.DbOperateLog(us.usercode, "模具出库", "模具:" + mouldcode, us.usertype);
                    mes.code = "200";
                    mes.count = 0;
                    mes.message = "模具出库成功!";
                    mes.data = null;
                }
                else
                {
                    mes.code = "300";
                    mes.count = 0;
                    mes.message = "模具出库失败!";
                    mes.data = null;
                }
            }
            catch (Exception e)
            {
                mes.code = "300";
                mes.count = 0;
                mes.message = e.Message;
                mes.data = null;
            }
            return mes;
        }
        #endregion
        #region[模具点检记录查询]
        public static ToMessage MouldCheckTakeSearch(string mouldcode, string mouldname, string mouldspec, string stanedcode, string stanedname, string checkuser, string checkopendate, string checkclosedate,string checkrequest, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                if (mouldname != "" && mouldname != null)
                {
                    search += "and E.name like '%'+@mouldname+'%' ";
                    dynamicParams.Add("@mouldname", mouldname);
                }
                if (mouldspec != "" && mouldspec != null)
                {
                    search += "and E.spec like '%'+@mouldspec+'%' ";
                    dynamicParams.Add("@mouldspec", mouldspec);
                }
                if (stanedcode != "" && stanedcode != null)
                {
                    search += "and M.code like '%'+@stanedcode+'%' ";
                    dynamicParams.Add("@stanedcode", stanedcode);
                }
                if (stanedname != "" && stanedname != null)
                {
                    search += "and M.name like '%'+@stanedname+'%' ";
                    dynamicParams.Add("@stanedname", stanedname);
                }
                if (checkuser != "" && checkuser != null)
                {
                    search += "and U.username like '%'+@checkuser+'%' ";
                    dynamicParams.Add("@checkuser", checkuser);
                }
                if (checkrequest != "" && checkrequest != null)
                {
                    search += "and A.chk_result=@checkrequest ";
                    dynamicParams.Add("@checkrequest", checkrequest);
                }
                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");
                }
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.id,A.djwo,A.mould_code,E.name as mould_name,E.spec as mould_spec,M.code as stanedcode,M.name as stanedname,
                            U.username as chk_user,A.chk_result,A.chk_date
                            from TMouldchk_Proc_Main A
                            left join TMouldInfo E on A.mould_code=E.code
                            left join TMouldchk_Main M on A.mouldchkmain_code=M.code
                            left join TUser U on A.chk_user=U.usercode
                            where 1=1 " + 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 MouldCheckSubTakeSearch(string id)
        {
            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 TMouldchk_Proc_Deta A
                        left join TMouldchk_Item T on A.mouldchkdeta_code=T.code
                        where A.m_id=@id";
                dynamicParams.Add("@id", id);
                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 MouldCheckTakeOutExcel(string mouldcode, string mouldname, string mouldspec, string stanedcode, string stanedname, string checkuser, string checkopendate, string checkclosedate,string checkrequest)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                if (mouldname != "" && mouldname != null)
                {
                    search += "and E.name like '%'+@mouldname+'%' ";
                    dynamicParams.Add("@mouldname", mouldname);
                }
                if (mouldspec != "" && mouldspec != null)
                {
                    search += "and E.spec like '%'+@mouldspec+'%' ";
                    dynamicParams.Add("@mouldspec", mouldspec);
                }
                if (stanedcode != "" && stanedcode != null)
                {
                    search += "and M.code like '%'+@stanedcode+'%' ";
                    dynamicParams.Add("@stanedcode", stanedcode);
                }
                if (stanedname != "" && stanedname != null)
                {
                    search += "and M.name like '%'+@stanedname+'%' ";
                    dynamicParams.Add("@stanedname", stanedname);
                }
                if (checkuser != "" && checkuser != null)
                {
                    search += "and U.username like '%'+@checkuser+'%' ";
                    dynamicParams.Add("@checkuser", checkuser);
                }
                if (checkrequest != "" && checkrequest != null)
                {
                    search += "and A.chk_result=@checkrequest ";
                    dynamicParams.Add("@checkrequest", checkrequest);
                }
                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");
                }
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN A.djwo
                            ELSE ''END AS '点检单号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN A.mould_code
                            ELSE ''END AS '模具编号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN E.name
                            ELSE ''END AS '模具名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN E.spec
                            ELSE ''END AS '规格型号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN A.mouldchkmain_code
                            ELSE ''END AS '点检标准编码',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN M.name
                            ELSE ''END AS '点检标准名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN U.username
                            ELSE ''END AS '检验人员',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN A.chk_result
                            ELSE ''END AS '检验结果',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.djwo ORDER BY B.mouldchkdeta_code) = 1 THEN A.chk_date
                            END AS '检验时间',
                            B.seq as '点检部位序号',H.code '点检部位编码',H.name '点检部位名称',B.result '点检结果',B.chk_value '数值',B.remark '备注'
                            from TMouldchk_Proc_Main A
                            left join TMouldchk_Proc_Deta B on A.id=B.m_id
                            left join TMouldInfo E on A.mould_code=E.code
                            left join TMouldchk_Main M on A.mouldchkmain_code=M.code
                            left join TMouldchk_Item H on B.mouldchkdeta_code=H.code
                            left join TUser U on A.chk_user=U.usercode
                            where 1=1 " + 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 MouldRepairTakeSearch(string mouldcode, string mouldname, string mouldspec, string stanedcode, 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 (mouldcode != "" && mouldcode != null)
                {
                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                if (mouldname != "" && mouldname != null)
                {
                    search += "and E.name like '%'+@mouldname+'%' ";
                    dynamicParams.Add("@mouldname", mouldname);
                }
                if (mouldspec != "" && mouldspec != null)
                {
                    search += "and E.spec like '%'+@mouldspec+'%' ";
                    dynamicParams.Add("@mouldspec", mouldspec);
                }
                if (stanedcode != "" && stanedcode != null)
                {
                    search += "and M.code like '%'+@stanedcode+'%' ";
                    dynamicParams.Add("@stanedcode", stanedcode);
                }
                if (stanedname != "" && stanedname != null)
                {
                    search += "and M.name like '%'+@stanedname+'%' ";
                    dynamicParams.Add("@stanedname", stanedname);
                }
                if (repairuser != "" && repairuser != null)
                {
                    search += "and U.username 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);
                }
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.id,A.bywo,A.mould_code,E.name as mould_name,E.spec as mould_spec,M.code as stanedcode,M.name as stanedname,
                            U.username as maint_user,A.maint_result,A.maint_date
                            from TMouldmaint_Proc_Main A
                            left join TMouldInfo E on A.mould_code=E.code
                            left join TMouldmai_Main M on A.mouldmaint_code=M.code
                            left join TUser U on A.maint_user=U.usercode
                            where 1=1 " + 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 MouldRepairSubTakeSearch(string id)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                sql = @"select A.seq,T.code as itemcode,T.name as itemname,A.result,A.maint_value,A.remark
                        from TMouldmaint_Proc_Deta A
                        left join TMouldmai_Item T on A.mouldmaideta_code=T.code
                        where A.m_id=@id";
                dynamicParams.Add("@id", id);
                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 MouldRepairTakeOutExcel(string mouldcode, string mouldname, string mouldspec, string stanedcode, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                if (mouldname != "" && mouldname != null)
                {
                    search += "and E.name like '%'+@mouldname+'%' ";
                    dynamicParams.Add("@mouldname", mouldname);
                }
                if (mouldspec != "" && mouldspec != null)
                {
                    search += "and E.spec like '%'+@mouldspec+'%' ";
                    dynamicParams.Add("@mouldspec", mouldspec);
                }
                if (stanedcode != "" && stanedcode != null)
                {
                    search += "and M.code like '%'+@stanedcode+'%' ";
                    dynamicParams.Add("@stanedcode", stanedcode);
                }
                if (stanedname != "" && stanedname != null)
                {
                    search += "and M.name like '%'+@stanedname+'%' ";
                    dynamicParams.Add("@stanedname", stanedname);
                }
                if (repairuser != "" && repairuser != null)
                {
                    search += "and U.username 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);
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN A.bywo
                            ELSE ''END AS '保养单号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN A.mould_code
                            ELSE ''END AS '模具编码',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN E.name
                            ELSE ''END AS '模具名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN E.spec
                            ELSE ''END AS '规格型号',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN A.mouldmaint_code
                            ELSE ''END AS '保养标准编码',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN M.name
                            ELSE ''END AS '保养标准名称',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN U.username
                            ELSE ''END AS '保养人员',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.mouldmaideta_code) = 1 THEN A.maint_result
                            ELSE ''END AS '保养结果',
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.maint_date ORDER BY B.mouldmaideta_code) = 1 THEN A.maint_date
                            END AS '保养时间',
                            B.seq as '保养部位序号',H.code '保养部位编码',H.name '保养部位名称',B.result '保养结果',B.maint_value '数值',B.remark '备注'
                            from TMouldmaint_Proc_Main A
                            left join TMouldmaint_Proc_Deta B on A.id=B.m_id
                            left join TMouldInfo E on A.mould_code=E.code
                            left join TMouldmai_Main M on A.mouldmaint_code=M.code
                            left join TMouldmai_Item H on B.mouldmaideta_code=H.code
                            left join TUser U on A.maint_user=U.usercode
                            where 1=1 " + 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 MouldUpdateSearch(string mouldcode, string mouldname, string mouldspec, 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 (mouldcode != "" && mouldcode != null)
                {
                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                if (mouldname != "" && mouldname != null)
                {
                    search += "and E.name like '%'+@mouldname+'%' ";
                    dynamicParams.Add("@mouldname", mouldname);
                }
                if (mouldspec != "" && mouldspec != null)
                {
                    search += "and E.spec like '%'+@mouldspec+'%' ";
                    dynamicParams.Add("@mouldspec", mouldspec);
                }
                if (reportuser != "" && reportuser != null)
                {
                    search += "and U.username like '%'+@reportuser+'%' ";
                    dynamicParams.Add("@reportuser", reportuser);
                }
                if (repairuser != "" && repairuser != null)
                {
                    search += "and R.username like '%'+@repairuser+'%' ";
                    dynamicParams.Add("@repairuser", repairuser);
                }
                if (vrifcatuser != "" && vrifcatuser != null)
                {
                    search += "and V.username 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");
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.repair_code,A.mould_code,E.name as mould_name,E.spec as mould_spec,U.username as request_person,B.request_date,
                            R.username as repair_person,A.repair_date,CAST(datediff(minute, B.request_date,A.repair_date)/60.0 AS decimal(9,1)) as cycleDate,
                            V.username as verify_person,A.verify_date,(case when A.verify_result='OK' then '通过' when  A.verify_result='NG' then '不通过' end)as verify_result
                            from TMould_Repair A
                            left join TMould_RepairRequest B on A.source_wo=B.docu_code
                            left join TMouldInfo E on A.mould_code=E.code
                            left join TUser U on B.request_person=U.usercode
                            left join TUser R on A.repair_person=R.usercode
                            left join TUser V on A.verify_person=V.usercode
                            where 1=1 " + 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 MouldUpdateSubSearch(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 '手工'
                       end
                       ) as source,B.failure_descript
                       from TMould_Repair A
                       left join TMould_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 TMould_Repair A
                        left join TMould_RepairRequest B on A.source_wo=B.docu_code
                        left join TMould_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 TMould_Repair A
                        left join TMould_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 from TMould_Repair A
                        left join TMould_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 MouldUpdateSearch(string mouldcode, string mouldname, string mouldspec, 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 (mouldcode != "" && mouldcode != null)
                {
                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                if (mouldname != "" && mouldname != null)
                {
                    search += "and E.name like '%'+@mouldname+'%' ";
                    dynamicParams.Add("@mouldname", mouldname);
                }
                if (mouldspec != "" && mouldspec != null)
                {
                    search += "and E.spec like '%'+@mouldspec+'%' ";
                    dynamicParams.Add("@mouldspec", mouldspec);
                }
                if (reportuser != "" && reportuser != null)
                {
                    search += "and U.username like '%'+@reportuser+'%' ";
                    dynamicParams.Add("@reportuser", reportuser);
                }
                if (repairuser != "" && repairuser != null)
                {
                    search += "and R.username like '%'+@repairuser+'%' ";
                    dynamicParams.Add("@repairuser", repairuser);
                }
                if (vrifcatuser != "" && vrifcatuser != null)
                {
                    search += "and V.username 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");
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.repair_code as '维修单号',A.mould_code as '模具编码',E.name as '模具名称',E.spec as '规格型号',
                            U.username as '报修人员',B.request_date as '报修时间',R.username as '维修人员',A.repair_date as '维修时间',
                            CAST(datediff(minute, B.request_date,A.repair_date)/60.0 AS decimal(9,1)) as '维修时长',
                            V.username as '验证人员',A.verify_date as '验证时间',(case when A.verify_result='OK' then '通过' when  A.verify_result='NG' then '不通过' end) as '验证结果'
                            from TMould_Repair A
                            left join TMould_RepairRequest B on A.source_wo=B.docu_code
                            left join TMouldInfo E on A.mould_code=E.code
                            left join TUser U on B.request_person=U.usercode
                            left join TUser R on A.repair_person=R.usercode
                            left join TUser V on A.verify_person=V.usercode
                            where 1=1 " + 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 MouldUpDownMachinesSearch(string mouldcode, string mouldname, string mouldspec, string type, string devicecode, string operuser, string opendate, string closedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                if (mouldname != "" && mouldname != null)
                {
                    search += "and M.name like '%'+@mouldname+'%' ";
                    dynamicParams.Add("@mouldname", mouldname);
                }
                if (mouldspec != "" && mouldspec != null)
                {
                    search += "and M.spec like '%'+@mouldspec+'%' ";
                    dynamicParams.Add("@mouldspec", mouldspec);
                }
                if (type != "" && type != null)
                {
                    search += "and A.type=@type ";
                    dynamicParams.Add("@type", type);
                }
                if (devicecode != "" && devicecode != null)
                {
                    search += "and A.eqp_code=@devicecode ";
                    dynamicParams.Add("@devicecode", devicecode);
                }
                if (operuser != "" && operuser != null)
                {
                    search += "and U.username like '%'+@operuser+'%' ";
                    dynamicParams.Add("@operuser", operuser);
                }
                if (opendate != "" && opendate != null)
                {
                    search += "and A.lm_date between @opendate and @closedate ";
                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.mould_code,M.name as mould_name,M.spec as mould_spec,
                            (case when A.type='UP' then '上机' else '下机' end) as type,A.usecount_life,
                            A.eqp_code,E.name as eqp_name,U.username as lm_user,A.lm_date
                            from TMould_UpDownReord A
                            left join TMouldInfo M on A.mould_code=M.code
                            left join TEqpInfo E on A.eqp_code=E.code
                            left join TUser U on A.lm_user=U.usercode
                            where 1=1 " + 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[模具上下机记导出Excel]
        public static ToMessage MouldUpDownMachinesOutExcel(string mouldcode, string mouldname, string mouldspec, string type, string devicecode, string operuser, string opendate, string closedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                if (mouldname != "" && mouldname != null)
                {
                    search += "and M.name like '%'+@mouldname+'%' ";
                    dynamicParams.Add("@mouldname", mouldname);
                }
                if (mouldspec != "" && mouldspec != null)
                {
                    search += "and M.spec like '%'+@mouldspec+'%' ";
                    dynamicParams.Add("@mouldspec", mouldspec);
                }
                if (type != "" && type != null)
                {
                    search += "and A.type=@type ";
                    dynamicParams.Add("@type", type);
                }
                if (devicecode != "" && devicecode != null)
                {
                    search += "and A.eqp_code=@devicecode ";
                    dynamicParams.Add("@devicecode", devicecode);
                }
                if (operuser != "" && operuser != null)
                {
                    search += "and U.username like '%'+@operuser+'%' ";
                    dynamicParams.Add("@operuser", operuser);
                }
                if (opendate != "" && opendate != null)
                {
                    search += "and A.lm_date between @opendate and @closedate ";
                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.mould_code as '模具编码',M.name as '模具名称',M.spec as '模具规格',
                            (case when A.type='UP' then '上机' else '下机' end) as '操作类型',A.usecount_life as '本次使用',
                            A.eqp_code as '设备编码',E.name as '设备名称',U.username as '操作人员',A.lm_date as '操作时间'
                            from TMould_UpDownReord A
                            left join TMouldInfo M on A.mould_code=M.code
                            left join TEqpInfo E on A.eqp_code=E.code
                            left join TUser U on A.lm_user=U.usercode
                            where 1=1 " + 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 MouldCirculateMachinesSearch(string mouldcode, string mouldname, string mouldspec, string type, string operuser, string opendate, string closedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                if (mouldname != "" && mouldname != null)
                {
                    search += "and M.name like '%'+@mouldname+'%' ";
                    dynamicParams.Add("@mouldname", mouldname);
                }
                if (mouldspec != "" && mouldspec != null)
                {
                    search += "and M.spec like '%'+@mouldspec+'%' ";
                    dynamicParams.Add("@mouldspec", mouldspec);
                }
                if (type != "" && type != null)
                {
                    search += "and A.type=@type ";
                    dynamicParams.Add("@type", type);
                }
                if (operuser != "" && operuser != null)
                {
                    search += "and U.username like '%'+@operuser+'%' ";
                    dynamicParams.Add("@operuser", operuser);
                }
                if (opendate != "" && opendate != null)
                {
                    search += "and A.lm_date between @opendate and @closedate ";
                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.mould_code,M.name as mould_name,M.spec as mould_spec,
                            (case when A.type='OUT' then '外借' else '归还' end) as type,
                            A.description,U.username as lm_user,A.lm_date
                            from TMould_LendOutReord A
                            left join TMouldInfo M on A.mould_code=M.code
                            left join TUser U on A.lm_user=U.usercode
                            where 1=1 " + 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 MouldCirculateMachinesOutExcel(string mouldcode, string mouldname, string mouldspec, string type, string operuser, string opendate, string closedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                if (mouldname != "" && mouldname != null)
                {
                    search += "and M.name like '%'+@mouldname+'%' ";
                    dynamicParams.Add("@mouldname", mouldname);
                }
                if (mouldspec != "" && mouldspec != null)
                {
                    search += "and M.spec like '%'+@mouldspec+'%' ";
                    dynamicParams.Add("@mouldspec", mouldspec);
                }
                if (type != "" && type != null)
                {
                    search += "and A.type=@type ";
                    dynamicParams.Add("@type", type);
                }
                if (operuser != "" && operuser != null)
                {
                    search += "and U.username like '%'+@operuser+'%' ";
                    dynamicParams.Add("@operuser", operuser);
                }
                if (opendate != "" && opendate != null)
                {
                    search += "and A.lm_date between @opendate and @closedate ";
                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.mould_code as '模具编码',M.name as '模具名称',M.spec as '规格型号',
                            (case when A.type='OUT' then '外借' else '归还' end) as '操作类型',
                            A.description as '描述',U.username as '操作人员',A.lm_date as '操作时间'
                            from TMould_LendOutReord A
                            left join TMouldInfo M on A.mould_code=M.code
                            left join TUser U on A.lm_user=U.usercode
                            where 1=1 " + 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 MouldInOutMachinesSearch(string mouldcode, string mouldname, string mouldspec, string type, string warehousecode, string locationcode, string operuser, string opendate, string closedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                if (mouldname != "" && mouldname != null)
                {
                    search += "and M.name like '%'+@mouldname+'%' ";
                    dynamicParams.Add("@mouldname", mouldname);
                }
                if (mouldspec != "" && mouldspec != null)
                {
                    search += "and M.spec like '%'+@mouldspec+'%' ";
                    dynamicParams.Add("@mouldspec", mouldspec);
                }
                if (type != "" && type != null)
                {
                    search += "and A.type=@type ";
                    dynamicParams.Add("@type", type);
                }
                if (warehousecode != "" && warehousecode != null)
                {
                    search += "and A.warehouse_code=@warehousecode ";
                    dynamicParams.Add("@warehousecode", warehousecode);
                }
                if (locationcode != "" && locationcode != null)
                {
                    search += "and A.location_code=@locationcode ";
                    dynamicParams.Add("@locationcode", locationcode);
                }
                if (operuser != "" && operuser != null)
                {
                    search += "and U.username like '%'+@operuser+'%' ";
                    dynamicParams.Add("@operuser", operuser);
                }
                if (opendate != "" && opendate != null)
                {
                    search += "and A.lm_date between @opendate and @closedate ";
                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.mould_code,M.name as mould_name,M.spec as mould_spec,A.warehouse_code,S.name as warehouse_name,
                            A.location_code,L.name as location_name,(case when A.type='OUT' then '出库' else '入库' end) as type,
                            A.description,U.username as lm_user,A.lm_date
                            from TMould_InOutReord A
                            left join TMouldInfo M on A.mould_code=M.code
                            left join TSecStck S on A.warehouse_code=S.code
                            left join TSecLoca L on A.location_code=L.code
                            left join TUser U on A.lm_user=U.usercode
                            where 1=1 " + 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 MouldInOutMachinesOutExcel(string mouldcode, string mouldname, string mouldspec, string type, string warehousecode, string locationcode, string operuser, string opendate, string closedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and A.mould_code like '%'+@mouldcode+'%' ";
                    dynamicParams.Add("@mouldcode", mouldcode);
                }
                if (mouldname != "" && mouldname != null)
                {
                    search += "and M.name like '%'+@mouldname+'%' ";
                    dynamicParams.Add("@mouldname", mouldname);
                }
                if (mouldspec != "" && mouldspec != null)
                {
                    search += "and M.spec like '%'+@mouldspec+'%' ";
                    dynamicParams.Add("@mouldspec", mouldspec);
                }
                if (type != "" && type != null)
                {
                    search += "and A.type=@type ";
                    dynamicParams.Add("@type", type);
                }
                if (warehousecode != "" && warehousecode != null)
                {
                    search += "and A.warehouse_code=@warehousecode ";
                    dynamicParams.Add("@warehousecode", warehousecode);
                }
                if (locationcode != "" && locationcode != null)
                {
                    search += "and A.location_code=@locationcode ";
                    dynamicParams.Add("@locationcode", locationcode);
                }
                if (operuser != "" && operuser != null)
                {
                    search += "and U.username like '%'+@operuser+'%' ";
                    dynamicParams.Add("@operuser", operuser);
                }
                if (opendate != "" && opendate != null)
                {
                    search += "and A.lm_date between @opendate and @closedate ";
                    dynamicParams.Add("@opendate", opendate + " 00:00:00");
                    dynamicParams.Add("@closedate", closedate + " 23:59:59");
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.mould_code as 模具编码,M.name as 模具名称,M.spec as 规格型号,A.warehouse_code as 仓库编码,S.name as 仓库名称,
                            A.location_code as 库位编码,L.name as 库位名称,(case when A.type='OUT' then '出库' else '入库' end) as 操作类型,
                            A.description as 描述,U.username as 操作人,A.lm_date as 操作时间
                            from TMould_InOutReord A
                            left join TMouldInfo M on A.mould_code=M.code
                            left join TSecStck S on A.warehouse_code=S.code
                            left join TSecLoca L on A.location_code=L.code
                            left join TUser U on A.lm_user=U.usercode
                            where 1=1 " + 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
    }
}