1.班组工资报表功能接口、人员工资明细报表功能接口
2.委外报表功能接口、不良明细报表功能接口、维修明细报表功能接口
3.模具清单查看履历接口、模具上机过滤已上模设备接口
4.模具点检记录报表功能接口、模具保养记录报表功能接口
5.模具维修记录报表功能接口
已修改6个文件
2654 ■■■■■ 文件已修改
VueWebCoreApi/Controllers/MouldManagerController.cs 319 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/Controllers/ReportManagerController.cs 350 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/DLL/BLL/MouldManagerBLL.cs 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/DLL/BLL/ReportManagerBLL.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs 799 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/DLL/DAL/ReportManagerDAL.cs 1024 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/Controllers/MouldManagerController.cs
@@ -44,10 +44,10 @@
        {
            string opendate = "";     //开始时间
            string closedate = "";    //结束时间
            if (createuser != "" && createuser != null)
            if (createdate != "" && createdate != null)
            {
                opendate = createuser.Split('~')[0].ToString();
                closedate = createuser.Split('~')[1].ToString();
                opendate = createdate.Split('~')[0].ToString();
                closedate = createdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
@@ -77,6 +77,35 @@
            string mouldpart = obj["mouldpart"].ToString(); //关联产品
            string opertype = obj["opertype"].ToString();  //操作类型
            mes = MouldManagerBLL.AddUpdateMouldManger(mouldcode, mouldname, mouldspec, surplife, resilife, status, mouldpart, opertype, us);
            return Json(mes);
        }
        #endregion
        #region[模具清单查看履历]
        /// <summary>
        /// 模具清单查看履历
        /// </summary>
        /// <param name="mouldcode">模具编码</param>
        /// <param name="createdate">操作时间</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "MoldResumeSearch")]
        [HttpGet]
        public JsonResult MoldResumeSearch(string mouldcode, string createdate = null, int page = 0, int rows = 0, string prop = null, string order = null)
        {
            string opendate = "";     //开始时间
            string closedate = "";    //结束时间
            if (createdate != "" && createdate != null)
            {
                opendate = createdate.Split('~')[0].ToString();
                closedate = createdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = MouldManagerBLL.MoldResumeSearch(mouldcode,opendate, closedate, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
@@ -745,6 +774,20 @@
        }
        #endregion
        #region[模具上机,选择未上模设备]
        /// <summary>
        /// 模具上机,选择未上模设备
        /// </summary>
        /// <returns></returns>
        [Route(template: "MouldEqpPermissions")]
        [HttpGet]
        public JsonResult MouldEqpPermissions()
        {
            mes = MouldManagerBLL.MouldEqpPermissions();
            return Json(mes);
        }
        #endregion
        #region[模具上机提交]
        /// <summary>
        /// 模具上机提交
@@ -943,5 +986,275 @@
            return Json(mes);
        }
        #endregion
        #region[模具点检记录查询]
        /// <summary>
        /// 模具点检记录查询
        /// </summary>
        /// <param name="mouldcode">模具编码</param>
        /// <param name="mouldname">模具名称</param>
        /// <param name="mouldspec">规格型号</param>
        /// <param name="stanedcode">点检标准编码</param>
        /// <param name="stanedname">点检标准名称</param>
        /// <param name="checkuser">点检人员</param>
        /// <param name="checkdate">点检时间</param>
        /// <param name="checkrequest">点检结果</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "MouldCheckTakeSearch")]
        [HttpGet]
        public JsonResult MouldCheckTakeSearch(int page, int rows, string prop, string order, string mouldcode = null, string mouldname = null, string mouldspec = null, string stanedcode = null,string stanedname=null, string checkuser = null, string checkdate = null,string checkrequest=null)
        {
            string checkopendate = "";  //点检开始时间
            string checkclosedate = "";    //点检结束时间
            if (checkdate != "" && checkdate != null)
            {
                checkopendate = checkdate.Split('~')[0].ToString();
                checkclosedate = checkdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = MouldManagerBLL.MouldCheckTakeSearch(mouldcode, mouldname, mouldspec, stanedcode, stanedname, checkuser, checkopendate, checkclosedate, checkrequest, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[模具点检记录明细查询]
        /// <summary>
        /// 模具点检记录明细查询
        /// </summary>
        /// <param name="id">点检记录主id</param>
        /// <returns></returns>
        [Route(template: "MouldCheckSubTakeSearch")]
        [HttpGet]
        public JsonResult MouldCheckSubTakeSearch(string id)
        {
            mes = MouldManagerBLL.MouldCheckSubTakeSearch(id);
            return Json(mes);
        }
        #endregion
        #region[模具点检记录导出]
        /// <summary>
        /// 模具点检记录导出
        /// </summary>
        /// <param name="mouldcode">模具编码</param>
        /// <param name="mouldname">模具名称</param>
        /// <param name="mouldspec">规格型号</param>
        /// <param name="stanedcode">点检标准编码</param>
        /// <param name="stanedname">点检标准名称</param>
        /// <param name="checkuser">点检人员</param>
        /// <param name="checkdate">点检时间</param>
        /// <param name="checkrequest">点检结果</param>
        /// <returns></returns>
        [Route(template: "MouldCheckTakeOutExcel")]
        [HttpGet]
        public JsonResult MouldCheckTakeOutExcel(string mouldcode = null, string mouldname = null, string mouldspec = null, string stanedcode = null, string stanedname = null, string checkuser = null, string checkdate = null,string checkrequest=null)
        {
            string checkopendate = "";  //点检开始时间
            string checkclosedate = "";    //点检结束时间
            if (checkdate != "" && checkdate != null)
            {
                checkopendate = checkdate.Split('~')[0].ToString();
                checkclosedate = checkdate.Split('~')[1].ToString();
            }
            mes = MouldManagerBLL.MouldCheckTakeOutExcel(mouldcode, mouldname, mouldspec, stanedcode, stanedname, checkuser, checkopendate, checkclosedate, checkrequest);
            return Json(mes);
        }
        #endregion
        #region[模具保养记录查询]
        /// <summary>
        /// 模具保养记录查询
        /// </summary>
        /// <param name="mouldcode">模具编码</param>
        /// <param name="mouldname">模具名称</param>
        /// <param name="mouldspec">规格型号</param>
        /// <param name="stanedcode">保养标准编码</param>
        /// <param name="stanedname">保养标准名称</param>
        /// <param name="repairuser">保养人员</param>
        /// <param name="repairdate">保养时间</param>
        /// <param name="repairresult">保养结果</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "MouldRepairTakeSearch")]
        [HttpGet]
        public JsonResult MouldRepairTakeSearch(int page, int rows, string prop, string order, string mouldcode = null, string mouldname = null, string mouldspec = null,string stanedcode=null, string stanedname = null, string repairuser = null, string repairdate = null, string repairresult = null)
        {
            string repairopendate = "";  //点检开始时间
            string repairclosedate = "";    //点检结束时间
            if (repairdate != "" && repairdate != null)
            {
                repairopendate = repairdate.Split('~')[0].ToString();
                repairclosedate = repairdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = MouldManagerBLL.MouldRepairTakeSearch(mouldcode, mouldname, mouldspec, stanedcode,stanedname, repairuser, repairopendate, repairclosedate, repairresult, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[模具保养记录明细查询]
        /// <summary>
        /// 模具保养记录明细查询
        /// </summary>
        /// <param name="id">保养记录主表id</param>
        /// <returns></returns>
        [Route(template: "MouldRepairSubTakeSearch")]
        [HttpGet]
        public JsonResult MouldRepairSubTakeSearch(string id)
        {
            mes = MouldManagerBLL.MouldRepairSubTakeSearch(id);
            return Json(mes);
        }
        #endregion
        #region[模具保养记录导出]
        /// <summary>
        /// 模具保养记录导出
        /// </summary>
        /// <param name="mouldcode">模具编码</param>
        /// <param name="mouldname">模具名称</param>
        /// <param name="mouldspec">规格型号</param>
        /// <param name="stanedcode">保养标准编码</param>
        /// <param name="stanedname">保养标准名称</param>
        /// <param name="repairuser">保养人员</param>
        /// <param name="repairdate">保养时间</param>
        /// <param name="repairresult">保养结果</param>
        /// <returns></returns>
        [Route(template: "MouldRepairTakeOutExcel")]
        [HttpGet]
        public JsonResult MouldRepairTakeOutExcel(string mouldcode = null, string mouldname = null, string mouldspec = null, string stanedcode = null, string stanedname = null, string repairuser = null, string repairdate = null, string repairresult = null)
        {
            string repairopendate = "";  //点检开始时间
            string repairclosedate = "";    //点检结束时间
            if (repairdate != "" && repairdate != null)
            {
                repairopendate = repairdate.Split('~')[0].ToString();
                repairclosedate = repairdate.Split('~')[1].ToString();
            }
            mes = MouldManagerBLL.MouldRepairTakeOutExcel(mouldcode, mouldname, mouldspec, stanedcode, stanedname, repairuser, repairopendate, repairclosedate, repairresult);
            return Json(mes);
        }
        #endregion
        #region[模具维修记录查询]
        /// <summary>
        /// 模具维修记录查询
        /// </summary>
        /// <param name="mouldcode">模具编码</param>
        /// <param name="mouldname">模具名称</param>
        /// <param name="mouldspec">规格型号</param>
        /// <param name="reportuser">报修人员</param>
        /// <param name="reportdate">报修时间</param>
        /// <param name="repairuser">维修人员</param>
        /// <param name="repairdate">维修时间</param>
        /// <param name="vrifcatuser">验证人员</param>
        /// <param name="vrifcatdate">验证时间</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "MouldUpdateSearch")]
        [HttpGet]
        public JsonResult MouldUpdateSearch(int page, int rows, string prop, string order, string mouldcode = null, string mouldname = null, string mouldspec = null, string reportuser = null, string reportdate = null, string repairuser = null, string repairdate = null, string vrifcatuser = null, string vrifcatdate = null)
        {
            string reportopendate = "";  //报修开始时间
            string reportclosedate = "";  //报修结束时间
            string repairopendate = "";  //维修开始时间
            string repairclosedate = "";  //维修结束时间
            string vrifcatopendate = "";  //维修验证开始时间
            string vrifcatclosedate = "";  //维修验证结束时间
            if (reportdate != "" && reportdate != null)
            {
                reportopendate = reportdate.Split('~')[0].ToString();
                reportclosedate = reportdate.Split('~')[1].ToString();
            }
            if (repairdate != "" && repairdate != null)
            {
                repairopendate = repairdate.Split('~')[0].ToString();
                repairclosedate = repairdate.Split('~')[1].ToString();
            }
            if (vrifcatdate != "" && vrifcatdate != null)
            {
                vrifcatopendate = vrifcatdate.Split('~')[0].ToString();
                vrifcatclosedate = vrifcatdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = MouldManagerBLL.MouldUpdateSearch(mouldcode, mouldname, mouldspec, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[模具维修记录明细查询]
        /// <summary>
        /// 模具维修记录明细查询
        /// </summary>
        /// <param name="repair_code">模具维修单号</param>
        /// <returns></returns>
        [Route(template: "MouldUpdateSubSearch")]
        [HttpGet]
        public JsonResult MouldUpdateSubSearch(string repair_code)
        {
            mes = MouldManagerBLL.MouldUpdateSubSearch(repair_code);
            return Json(mes);
        }
        #endregion
        #region[模具维修记录导出]
        /// <summary>
        /// 模具维修记录导出
        /// </summary>
        /// <param name="mouldcode">模具编码</param>
        /// <param name="mouldname">模具名称</param>
        /// <param name="mouldspec">规格型号</param>
        /// <param name="reportuser">报修人员</param>
        /// <param name="reportdate">报修时间</param>
        /// <param name="repairuser">维修人员</param>
        /// <param name="repairdate">维修时间</param>
        /// <param name="vrifcatuser">验证人员</param>
        /// <param name="vrifcatdate">验证时间</param>
        /// <returns></returns>
        [Route(template: "MouldUpdateOutExcel")]
        [HttpGet]
        public JsonResult MouldUpdateOutExcel(string mouldcode = null, string mouldname = null, string mouldspec = null, string reportuser = null, string reportdate = null, string repairuser = null, string repairdate = null, string vrifcatuser = null, string vrifcatdate = null)
        {
            string reportopendate = "";  //报修开始时间
            string reportclosedate = "";  //报修结束时间
            string repairopendate = "";  //维修开始时间
            string repairclosedate = "";  //维修结束时间
            string vrifcatopendate = "";  //维修验证开始时间
            string vrifcatclosedate = "";  //维修验证结束时间
            if (reportdate != "" && reportdate != null)
            {
                reportopendate = reportdate.Split('~')[0].ToString();
                reportclosedate = reportdate.Split('~')[1].ToString();
            }
            if (repairdate != "" && repairdate != null)
            {
                repairopendate = repairdate.Split('~')[0].ToString();
                repairclosedate = repairdate.Split('~')[1].ToString();
            }
            if (vrifcatdate != "" && vrifcatdate != null)
            {
                vrifcatopendate = vrifcatdate.Split('~')[0].ToString();
                vrifcatclosedate = vrifcatdate.Split('~')[1].ToString();
            }
            mes = MouldManagerBLL.MouldUpdateOutExcel(mouldcode, mouldname, mouldspec, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate);
            return Json(mes);
        }
        #endregion
    }
}
VueWebCoreApi/Controllers/ReportManagerController.cs
@@ -12,7 +12,7 @@
    [ApiExplorerSettings(GroupName = "统计报表")]
    [ApiController]
    [Route("api/[controller]")]
    //[ChannelActionFilter]
    [ChannelActionFilter]
    public class ReportManagerController : Controller
    {
        //定义全局信息返回变量
@@ -82,5 +82,353 @@
            return Json(mes);
        }
        #endregion
        #region[班组工资报表记录查询]
        /// <summary>
        /// 班组工资报表记录查询
        /// </summary>
        /// <param name="compute">计算方式(逐道/末道)</param>
        /// <param name="wocode">工单编号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="stepname">工序名称</param>
        /// <param name="groupcode">生产班组</param>
        /// <param name="username">操作人员</param>
        /// <param name="operdate">操作时间</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "GroupSalaryReportSearch")]
        [HttpGet]
        public JsonResult GroupSalaryReportSearch(int page, int rows, string prop, string order, string compute, string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string groupcode = null, string username = null, string operdate = null)
        {
            string operopendate = "";  //报工开始时间
            string operclosedate = "";    //报工结束时间
            if (operdate != "" && operdate != null)
            {
                operopendate = operdate.Split('~')[0].ToString();
                operclosedate = operdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = ReportManagerBLL.GroupSalaryReportSearch(compute, wocode, partcode, partname, partspec, stepname, groupcode, username, operopendate, operclosedate, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[班组工资报表记录查看报工人员]
        /// <summary>
        /// 班组工资报表记录查看报工人员
        /// </summary>
        /// <param name="id">报工记录主表id</param>
        /// <returns></returns>
        [Route(template: "GroupSalaryReportSearchUser")]
        [HttpGet]
        public JsonResult GroupSalaryReportSearchUser(string id)
        {
            mes = ReportManagerBLL.GroupSalaryReportSearchUser(id);
            return Json(mes);
        }
        #endregion
        #region[班组工资报表记录导出]
        /// <summary>
        /// 班组工资报表记录查询
        /// </summary>
        /// <param name="compute">计算方式(逐道/末道)</param>
        /// <param name="wocode">工单编号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="stepname">工序名称</param>
        /// <param name="groupcode">生产班组</param>
        /// <param name="username">操作人员</param>
        /// <param name="operdate">操作时间</param>
        /// <returns></returns>
        [Route(template: "GroupSalaryReportExcelSearch")]
        [HttpGet]
        public JsonResult GroupSalaryReportExcelSearch(string compute, string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string groupcode = null, string username = null, string operdate = null)
        {
            string operopendate = "";  //报工开始时间
            string operclosedate = "";    //报工结束时间
            if (operdate != "" && operdate != null)
            {
                operopendate = operdate.Split('~')[0].ToString();
                operclosedate = operdate.Split('~')[1].ToString();
            }
            mes = ReportManagerBLL.GroupSalaryReportExcelSearch(compute, wocode, partcode, partname, partspec, stepname, groupcode, username, operopendate, operclosedate);
            return Json(mes);
        }
        #endregion
        #region[人员工资明细报表]
        /// <summary>
        /// 人员工资明细报表
        /// </summary>
        /// <param name="compute">计算方式(逐道/末道)</param>
        /// <param name="wocode">工单编号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="stepcode">工序编号</param>
        /// <param name="stepname">工序名称</param>
        /// <param name="reportname">报工人员</param>
        /// <param name="reportdate">报工时间</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "PeopleSalaryReportSearch")]
        [HttpGet]
        public JsonResult PeopleSalaryReportSearch(int page, int rows, string prop, string order, string compute, string wocode = null, string partcode = null, string partname = null, string partspec = null,string stepcode=null, string stepname = null, string reportname = null, string reportdate = null)
        {
            string reportopendate = "";  //报工开始时间
            string reportclosedate = "";    //报工结束时间
            if (reportdate != "" && reportdate != null)
            {
                reportopendate = reportdate.Split('~')[0].ToString();
                reportclosedate = reportdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = ReportManagerBLL.PeopleSalaryReportSearch(compute, wocode, partcode, partname, partspec, stepcode, stepname, reportname, reportopendate, reportclosedate, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[人员工资明细报表导出]
        /// <summary>
        /// 人员工资明细报表导出
        /// </summary>
        /// <param name="compute">计算方式(逐道/末道)</param>
        /// <param name="wocode">工单编号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="stepcode">工序编号</param>
        /// <param name="stepname">工序名称</param>
        /// <param name="reportname">报工人员</param>
        /// <param name="reportdate">报工时间</param>
        /// <returns></returns>
        [Route(template: "PeopleSalaryReportExcelSearch")]
        [HttpGet]
        public JsonResult PeopleSalaryReportExcelSearch(string compute, string wocode = null, string partcode = null, string partname = null, string partspec = null,string stepcode=null, string stepname = null, string reportname = null, string reportdate = null)
        {
            string reportopendate = "";  //报工开始时间
            string reportclosedate = "";    //报工结束时间
            if (reportdate != "" && reportdate != null)
            {
                reportopendate = reportdate.Split('~')[0].ToString();
                reportclosedate = reportdate.Split('~')[1].ToString();
            }
            mes = ReportManagerBLL.PeopleSalaryReportExcelSearch(compute, wocode, partcode, partname, partspec,stepcode,stepname, reportname, reportopendate, reportclosedate);
            return Json(mes);
        }
        #endregion
        #region[委外报表记录查询]
        /// <summary>
        /// 委外报表记录查询
        /// </summary>
        /// <param name="wocode">工单编号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="stepname">工序名称</param>
        /// <param name="suppername">供方名称</param>
        /// <param name="type">操作类型</param>
        /// <param name="receivdate">收料时间</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "OutSourceReportSearch")]
        [HttpGet]
        public JsonResult OutSourceReportSearch(int page, int rows, string prop, string order, string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string suppername = null, string type = null, string receivdate = null)
        {
            string receivopendate = "";  //收料开始时间
            string receivclosedate = "";    //收料结束时间
            if (receivdate != "" && receivdate != null)
            {
                receivopendate = receivdate.Split('~')[0].ToString();
                receivclosedate = receivdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = ReportManagerBLL.OutSourceReportSearch(wocode, partcode, partname, partspec, stepname, suppername, type, receivopendate, receivclosedate, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[委外报表记录导出]
        /// <summary>
        /// 委外报表记录导出
        /// </summary>
        /// <param name="wocode">工单编号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="stepname">工序名称</param>
        /// <param name="suppername">供方名称</param>
        /// <param name="type">操作类型</param>
        /// <param name="receivdate">收料时间</param>
        /// <returns></returns>
        [Route(template: "OutSourceReportExcelSearch")]
        [HttpGet]
        public JsonResult OutSourceReportExcelSearch(string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string suppername = null, string type = null, string receivdate = null)
        {
            string receivopendate = "";  //收料开始时间
            string receivclosedate = "";    //收料结束时间
            if (receivdate != "" && receivdate != null)
            {
                receivopendate = receivdate.Split('~')[0].ToString();
                receivclosedate = receivdate.Split('~')[1].ToString();
            }
            mes = ReportManagerBLL.OutSourceReportExcelSearch(wocode, partcode, partname, partspec, stepname, suppername, type, receivopendate, receivclosedate);
            return Json(mes);
        }
        #endregion
        #region[不良明细报表]
        /// <summary>
        /// 不良明细报表
        /// </summary>
        /// <param name="wocode">工单编号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="stepname">工序名称</param>
        /// <param name="defectcode">缺陷代码</param>
        /// <param name="defectname">缺陷名称</param>
        /// <param name="reportname">报工人员</param>
        /// <param name="reportdate">报工时间</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "DefectDetailsReportSearch")]
        [HttpGet]
        public JsonResult DefectDetailsReportSearch(int page, int rows, string prop, string order, string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string defectcode = null, string defectname = null, string reportname = null, string reportdate = null)
        {
            string reportopendate = "";  //报工开始时间
            string reportclosedate = "";    //报工结束时间
            if (reportdate != "" && reportdate != null)
            {
                reportopendate = reportdate.Split('~')[0].ToString();
                reportclosedate = reportdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = ReportManagerBLL.DefectDetailsReportSearch(wocode, partcode, partname, partspec, stepname, defectcode, defectname, reportname, reportopendate, reportclosedate, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[不良明细报表导出]
        /// <summary>
        /// 不良明细报表导出
        /// </summary>
        /// <param name="wocode">工单编号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="stepname">工序名称</param>
        /// <param name="defectcode">缺陷代码</param>
        /// <param name="defectname">缺陷名称</param>
        /// <param name="reportname">报工人员</param>
        /// <param name="reportdate">报工时间</param>
        /// <returns></returns>
        [Route(template: "DefectDetailsReportExcelSearch")]
        [HttpGet]
        public JsonResult DefectDetailsReportExcelSearch(string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string defectcode = null, string defectname = null, string reportname = null, string reportdate = null)
        {
            string reportopendate = "";  //报工开始时间
            string reportclosedate = "";    //报工结束时间
            if (reportdate != "" && reportdate != null)
            {
                reportopendate = reportdate.Split('~')[0].ToString();
                reportclosedate = reportdate.Split('~')[1].ToString();
            }
            mes = ReportManagerBLL.DefectDetailsReportExcelSearch(wocode, partcode, partname, partspec, stepname, defectcode, defectname, reportname, reportopendate, reportclosedate);
            return Json(mes);
        }
        #endregion
        #region[维修明细报表]
        /// <summary>
        /// 维修明细报表
        /// </summary>
        /// <param name="wocode">工单编号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="stepname">工序名称</param>
        /// <param name="style">操作类型</param>
        /// <param name="defectname">缺陷名称</param>
        /// <param name="repairname">维修人员</param>
        /// <param name="repairdate">维修时间</param>
        /// <param name="page">页码</param>
        /// <param name="rows">每页显示条数</param>
        /// <param name="prop">排序字段</param>
        /// <param name="order">排序规则</param>
        /// <returns></returns>
        [Route(template: "MaintenanceDetailsReportSearch")]
        [HttpGet]
        public JsonResult MaintenanceDetailsReportSearch(int page, int rows, string prop, string order, string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string style = null, string defectname = null, string repairname = null, string repairdate = null)
        {
            string repairopendate = "";  //维修开始时间
            string repairclosedate = "";    //维修结束时间
            if (repairdate != "" && repairdate != null)
            {
                repairopendate = repairdate.Split('~')[0].ToString();
                repairclosedate = repairdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = ReportManagerBLL.MaintenanceDetailsReportSearch(wocode, partcode, partname, partspec, stepname, style, defectname, repairname, repairopendate, repairclosedate, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[维修明细报表导出]
        /// <summary>
        /// 维修明细报表导出
        /// </summary>
        /// <param name="wocode">工单编号</param>
        /// <param name="partcode">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">规格型号</param>
        /// <param name="stepname">工序名称</param>
        /// <param name="style">操作类型</param>
        /// <param name="defectname">缺陷名称</param>
        /// <param name="repairname">维修人员</param>
        /// <param name="repairdate">维修时间</param>
        /// <returns></returns>
        [Route(template: "MaintenanceDetailsReportExcelSearch")]
        [HttpGet]
        public JsonResult MaintenanceDetailsReportExcelSearch(string wocode = null, string partcode = null, string partname = null, string partspec = null, string stepname = null, string style = null, string defectname = null, string repairname = null, string repairdate = null)
        {
            string repairopendate = "";  //维修开始时间
            string repairclosedate = "";    //维修结束时间
            if (repairdate != "" && repairdate != null)
            {
                repairopendate = repairdate.Split('~')[0].ToString();
                repairclosedate = repairdate.Split('~')[1].ToString();
            }
            mes = ReportManagerBLL.MaintenanceDetailsReportExcelSearch(wocode, partcode, partname, partspec, stepname, style, defectname, repairname, repairopendate, repairclosedate);
            return Json(mes);
        }
        #endregion
    }
}
VueWebCoreApi/DLL/BLL/MouldManagerBLL.cs
@@ -25,6 +25,13 @@
        }
        #endregion
        #region[模具清单查看履历]
        public static ToMessage MoldResumeSearch(string mouldcode, string opendate, string closedate, int startNum, int endNum, string prop, string order)
        {
            return MouldManagerDAL.MoldResumeSearch(mouldcode,opendate, closedate, startNum, endNum, prop, order);
        }
        #endregion
        #region[模具清单删除]
        public static ToMessage DeleteMouldManger(string mouldcode, User us)
        {
@@ -295,6 +302,13 @@
        }
        #endregion
        #region[模具上机,选择未上模设备]
        public static ToMessage MouldEqpPermissions()
        {
            return MouldManagerDAL.MouldEqpPermissions();
        }
        #endregion
        #region[模具上机提交]
        public static ToMessage MouldUpSave(string mouldcode, string eqp_code, string description, User us)
        {
@@ -376,5 +390,71 @@
            return MouldManagerDAL.MouldOutWareHouseSave(mouldcode, warehousecode, description, us);
        }
        #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)
        {
            return MouldManagerDAL.MouldCheckTakeSearch(mouldcode, mouldname, mouldspec, stanedcode, stanedname, checkuser, checkopendate, checkclosedate, checkrequest, startNum, endNum, prop, order);
        }
        #endregion
        #region[模具点检记录明细查询]
        public static ToMessage MouldCheckSubTakeSearch(string id)
        {
            return MouldManagerDAL.MouldCheckSubTakeSearch(id);
        }
        #endregion
        #region[模具点检记录导出]
        public static ToMessage MouldCheckTakeOutExcel(string mouldcode, string mouldname, string mouldspec, string stanedcode, string stanedname, string checkuser, string checkopendate, string checkclosedate,string checkrequest)
        {
            return MouldManagerDAL.MouldCheckTakeOutExcel(mouldcode, mouldname, mouldspec, stanedcode, stanedname, checkuser, checkopendate, checkclosedate, checkrequest);
        }
        #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)
        {
            return MouldManagerDAL.MouldRepairTakeSearch(mouldcode, mouldname, mouldspec, stanedcode, stanedname, repairuser, repairopendate, repairclosedate, repairresult, startNum, endNum, prop, order);
        }
        #endregion
        #region[模具保养记录明细查询]
        public static ToMessage MouldRepairSubTakeSearch(string id)
        {
            return MouldManagerDAL.MouldRepairSubTakeSearch(id);
        }
        #endregion
        #region[模具保养记录导出]
        public static ToMessage MouldRepairTakeOutExcel(string mouldcode, string mouldname, string mouldspec, string stanedcode, string stanedname, string repairuser, string repairopendate, string repairclosedate, string repairresult)
        {
            return MouldManagerDAL.MouldRepairTakeOutExcel(mouldcode, mouldname, mouldspec, stanedcode, stanedname, repairuser, repairopendate, repairclosedate, repairresult);
        }
        #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)
        {
            return MouldManagerDAL.MouldUpdateSearch(mouldcode, mouldname, mouldspec, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate, startNum, endNum, prop, order);
        }
        #endregion
        #region[模具维修记录明细查询]
        public static ToMessage MouldUpdateSubSearch(string repair_code)
        {
            return MouldManagerDAL.MouldUpdateSubSearch(repair_code);
        }
        #endregion
        #region[模具维修记录导出]
        public static ToMessage MouldUpdateOutExcel(string mouldcode, string mouldname, string mouldspec, string reportuser, string repairuser, string vrifcatuser, string reportopendate, string reportclosedate, string repairopendate, string repairclosedate, string vrifcatopendate, string vrifcatclosedate)
        {
            return MouldManagerDAL.MouldUpdateSearch(mouldcode, mouldname, mouldspec, reportuser, repairuser, vrifcatuser, reportopendate, reportclosedate, repairopendate, repairclosedate, vrifcatopendate, vrifcatclosedate);
        }
        #endregion
    }
}
VueWebCoreApi/DLL/BLL/ReportManagerBLL.cs
@@ -22,5 +22,87 @@
            return ReportManagerDAL.ProductionScheduleReportExcelSearch(status, wocode, wkshopcode, wkshopname, partcode, partname, partspec, opendate, closedate);
        }
        #endregion
        #region[班组工资报表记录查询]
        public static ToMessage GroupSalaryReportSearch(string compute, string wocode, string partcode, string partname, string partspec, string stepname, string groupcode, string username, string operopendate, string operclosedate, int startNum, int endNum, string prop, string order)
        {
            return ReportManagerDAL.GroupSalaryReportSearch(compute, wocode, partcode, partname, partspec, stepname, groupcode, username, operopendate, operclosedate, startNum, endNum, prop, order);
        }
        #endregion
        #region[班组工资报表记录查看报工人员]
        public static ToMessage GroupSalaryReportSearchUser(string id)
        {
            return ReportManagerDAL.GroupSalaryReportSearchUser(id);
        }
        #endregion
        #region[班组工资报表记录导出]
        public static ToMessage GroupSalaryReportExcelSearch(string compute, string wocode, string partcode, string partname, string partspec, string stepname, string groupcode, string username, string operopendate, string operclosedate)
        {
           return ReportManagerDAL.GroupSalaryReportExcelSearch(compute, wocode, partcode, partname, partspec, stepname, groupcode, username, operopendate, operclosedate);
        }
        #endregion
        #region[人员工资明细报表]
        public static ToMessage PeopleSalaryReportSearch(string compute, string wocode, string partcode, string partname, string partspec,string stepcode, string stepname, string reportname, string reportopendate, string reportclosedate, int startNum, int endNum, string prop, string order)
        {
            return ReportManagerDAL.PeopleSalaryReportSearch(compute, wocode, partcode, partname, partspec, stepcode, stepname, reportname, reportopendate, reportclosedate, startNum, endNum, prop, order);
        }
        #endregion
        #region[人员工资明细报表导出]
        public static ToMessage PeopleSalaryReportExcelSearch(string compute, string wocode, string partcode, string partname, string partspec, string stepcode, string stepname, string reportname, string reportopendate, string reportclosedate)
        {
            return ReportManagerDAL.PeopleSalaryReportSearch(compute, wocode, partcode, partname, partspec, stepcode, stepname, reportname, reportopendate, reportclosedate);
        }
        #endregion
        #region[委外报表记录查询]
        public static ToMessage OutSourceReportSearch(string wocode, string partcode, string partname, string partspec, string stepname, string suppername, string type, string receivopendate, string receivclosedate, int startNum, int endNum, string prop, string order)
        {
            return ReportManagerDAL.OutSourceReportSearch(wocode, partcode, partname, partspec, stepname, suppername, type, receivopendate, receivclosedate, startNum, endNum, prop, order);
        }
        #endregion
        #region[委外报表记录导出]
        public static ToMessage OutSourceReportExcelSearch(string wocode, string partcode, string partname, string partspec, string stepname, string suppername, string type, string receivopendate, string receivclosedate)
        {
            return ReportManagerDAL.OutSourceReportExcelSearch(wocode, partcode, partname, partspec, stepname, suppername, type, receivopendate, receivclosedate);
        }
        #endregion
        #region[不良明细报表]
        public static ToMessage DefectDetailsReportSearch(string wocode, string partcode, string partname, string partspec, string stepname, string defectcode, string defectname, string reportname, string reportopendate, string reportclosedate, int startNum, int endNum, string prop, string order)
        {
            return ReportManagerDAL.DefectDetailsReportSearch(wocode, partcode, partname, partspec, stepname, defectcode, defectname, reportname, reportopendate, reportclosedate, startNum, endNum, prop, order);
        }
        #endregion
        #region[不良明细报表导出]
        public static ToMessage DefectDetailsReportExcelSearch(string wocode, string partcode, string partname, string partspec, string stepname, string defectcode, string defectname, string reportname, string reportopendate, string reportclosedate)
        {
            return ReportManagerDAL.DefectDetailsReportExcelSearch(wocode, partcode, partname, partspec, stepname, defectcode, defectname, reportname, reportopendate, reportclosedate);
        }
        #endregion
        #region[维修明细报表]
        public static ToMessage MaintenanceDetailsReportSearch(string wocode, string partcode, string partname, string partspec, string stepname, string style, string defectname, string repairname, string repairopendate, string repairclosedate, int startNum, int endNum, string prop, string order)
        {
            return ReportManagerDAL.MaintenanceDetailsReportSearch(wocode, partcode, partname, partspec, stepname, style, defectname, repairname, repairopendate, repairclosedate, startNum, endNum, prop, order);
        }
        #endregion
        #region[维修明细报表导出]
        public static ToMessage MaintenanceDetailsReportExcelSearch(string wocode, string partcode, string partname, string partspec, string stepname, string style, string defectname, string repairname, string repairopendate, string repairclosedate)
        {
            return ReportManagerDAL.MaintenanceDetailsReportExcelSearch(wocode, partcode, partname, partspec, stepname, style, defectname, repairname, repairopendate, repairclosedate);
        }
        #endregion
    }
}
VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs
@@ -66,10 +66,6 @@
                    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.usestatus,A.code,A.name,A.spec,A.warehousecode,S.name as warehousename,
@@ -234,6 +230,76 @@
                        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 MoldResumeSearch(string mouldcode, string opendate, string closedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                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 *  from (
                            select '点检' as opertype,chk_user as operuser,chk_date as operdate,chk_result as operresult
                            from TMouldchk_Proc_Main where mould_code='001'
                            union all
                            select '保养' as opertype,maint_user as operuser,maint_date as operdate,maint_result as operresult
                            from TMouldmaint_Proc_Main where mould_code='001'
                            union all
                            select '待维修' as opertype,request_person as operuser,request_date as operdate,'维修申请' as operresult
                            from TMould_RepairRequest where mould_code='001'
                            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='001' 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='001' 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='001' 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='001' 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='001' 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='001' 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='001' 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='001' and type='IN'
                            ) as AA 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)
            {
@@ -2132,7 +2198,8 @@
                    {
                        IFormFile file = files[i];
                        string imgName = "SQ" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString();
                        string filePath = "wwwroot/MouldRecordImage/" + imgName + file.FileName;     //通过此对象获取文件名
                        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);
@@ -2155,7 +2222,7 @@
                            {
                                source_wo = sqwo,
                                wo_type = "REPA",
                                img1url = filePath
                                img1url = filePath1
                            }
                        });
                    }
@@ -2287,8 +2354,8 @@
                    {
                        IFormFile file = files[i];
                        string imgName = "WX" + DateTime.Now.ToString("yyyyMMddhhmmss") + i.ToString();
                        string filePath = "wwwroot/MouldRecordImage/" + imgName + file.FileName;     //通过此对象获取文件名
                        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);
@@ -2310,7 +2377,7 @@
                            {
                                source_wo = wxwo,
                                wo_type = "COMP",
                                img1url = filePath
                                img1url = filePath1
                            }
                        });
                    }
@@ -2381,7 +2448,7 @@
            var dynamicParams = new DynamicParameters();
            try
            {
                if (mouldcode == "" || mouldcode == null)
                if (mouldcode != "" && mouldcode != null)
                {
                    search += "and B.code=@mouldcode ";
                    dynamicParams.Add("@mouldcode", mouldcode);
@@ -2430,7 +2497,7 @@
                //根据设模具编码获取维修详情
                sql = @"select repair_code,failure_descript,is_shutdown,repair_content,repair_part   
                        from TMould_Repair 
                        where repair_code=@repair_code  and mould_code=mouldcode";
                        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);
@@ -2629,6 +2696,33 @@
        }
        #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)
        {
@@ -2767,7 +2861,7 @@
                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,@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,
@@ -3342,5 +3436,686 @@
            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);
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select 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);
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select
                            CASE WHEN
                            ROW_NUMBER() OVER (PARTITION BY A.bywo ORDER BY B.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");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //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");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //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
    }
}
VueWebCoreApi/DLL/DAL/ReportManagerDAL.cs
@@ -221,5 +221,1029 @@
            return mes;
        }
        #endregion
        #region[班组工资报表记录查询]
        public static ToMessage GroupSalaryReportSearch(string compute, string wocode, string partcode, string partname, string partspec, string stepname, string groupcode, string username, string operopendate, string operclosedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (compute == "last")  //末道工序
                {
                    search += "and P.isend=@isend ";
                    dynamicParams.Add("@isend", "Y");
                }
                if (wocode != "" && wocode != null)
                {
                    search += "and A.wo_code like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and M.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and M.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and M.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (stepname != "" && stepname != null)
                {
                    search += "and T.stepname like '%'+@stepname+'%' ";
                    dynamicParams.Add("@stepname", stepname);
                }
                if (groupcode != "" && groupcode != null)
                {
                    search += "and G.usergroupcode=@groupcode ";
                    dynamicParams.Add("@groupcode", groupcode);
                }
                if (username != "" && username != null)
                {
                    search += "and U.username like '%'+@username+'%' ";
                    dynamicParams.Add("@username", username);
                }
                if (operopendate != "" && operopendate != null)
                {
                    search += "and B.report_date between @operopendate and @operclosedate ";
                    dynamicParams.Add("@operopendate", operopendate + " 00:00:00");
                    dynamicParams.Add("@operclosedate", operclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                //search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select distinct A.id,A.wo_code,M.partcode,M.partname,M.partspec,T.stepcode,T.stepname,A.task_qty,G.usergroupcode,G.usergroupname,A.good_qty,
                            isnull(P.stepprice,0) as unprice,A.good_qty*isnull(P.stepprice,0) as usermoney,U.username as lm_user,A.lm_date,B.report_date
                            from TK_Wrk_Record A
                            inner join TK_Wrk_RecordSub B on A.id=B.m_id
                            inner join TK_Wrk_Step P on A.wo_code=P.wo_code and A.step_code=P.step_code
                            left  join TK_Wrk_Man K on A.wo_code=K.wo_code
                            left  join TGroup G on B.usergroup_code=G.usergroupcode
                            left  join TMateriel_Info M on A.materiel_code=M.partcode
                            left  join TStep T on A.step_code=T.stepcode
                            left  join TUser U on A.lm_user=U.usercode
                            where B.usergroup_code<>'' and A.style='B' " + 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 GroupSalaryReportSearchUser(string id)
        {
            string sql = "";
            var dynamicParams = new DynamicParameters();
            try
            {
                //获取报工人员
                sql = @"select S.report_person as usercode,
                        STUFF((SELECT ',' + U.username
                        FROM TUser U
                        WHERE CHARINDEX(',' + U.usercode + ',', ',' + S.report_person + ',') > 0
                        FOR XML PATH('')), 1, 1, '') AS username
                        from TK_Wrk_RecordSub S
                        where 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 GroupSalaryReportExcelSearch(string compute, string wocode, string partcode, string partname, string partspec, string stepname, string groupcode, string username, string operopendate, string operclosedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (compute == "last")  //末道工序
                {
                    search += "and P.isend=@isend ";
                    dynamicParams.Add("@isend", "Y");
                }
                if (wocode != "" && wocode != null)
                {
                    search += "and A.wo_code like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and M.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and M.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and M.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (stepname != "" && stepname != null)
                {
                    search += "and T.stepname like '%'+@stepname+'%' ";
                    dynamicParams.Add("@stepname", stepname);
                }
                if (groupcode != "" && groupcode != null)
                {
                    search += "and G.usergroupcode=@groupcode ";
                    dynamicParams.Add("@groupcode", groupcode);
                }
                if (username != "" && username != null)
                {
                    search += "and U.username like '%'+@username+'%' ";
                    dynamicParams.Add("@username", username);
                }
                if (operopendate != "" && operopendate != null)
                {
                    search += "and B.report_date between @operopendate and @operclosedate ";
                    dynamicParams.Add("@operopendate", operopendate + " 00:00:00");
                    dynamicParams.Add("@operclosedate", operclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select distinct A.wo_code as 工单编号,M.partcode as 产品编码,M.partname as 产品名称,M.partspec as 产品规格,
                            T.stepcode as 工序编码,T.stepname as 工序名称,A.task_qty as 任务数量,G.usergroupcode as 班组编码,G.usergroupname as 班组名称,
                            A.good_qty as 报工数量,isnull(P.stepprice,0) as 工序单价,A.good_qty*isnull(P.stepprice,0) as 计件工资,U.username as 操作人员,A.lm_date as 操作时间,B.report_date as 报工时间
                            from TK_Wrk_Record A
                            inner join TK_Wrk_RecordSub B on A.id=B.m_id
                            inner join TK_Wrk_Step P on A.wo_code=P.wo_code and A.step_code=P.step_code
                            left  join TK_Wrk_Man K on A.wo_code=K.wo_code
                            left  join TGroup G on B.usergroup_code=G.usergroupcode
                            left  join TMateriel_Info M on A.materiel_code=M.partcode
                            left  join TStep T on A.step_code=T.stepcode
                            left  join TUser U on A.lm_user=U.usercode
                            where B.usergroup_code<>'' and A.style='B' " + 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 PeopleSalaryReportSearch(string compute, string wocode, string partcode, string partname, string partspec,string stepcode, string stepname, string reportname, string reportopendate, string reportclosedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (compute == "last")  //末道工序
                {
                    search += "and AA.isend=@isend ";
                    dynamicParams.Add("@isend", "Y");
                }
                if (wocode != "" && wocode != null)
                {
                    search += "and AA.wo_code like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and AA.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and AA.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and AA.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (stepcode != "" && stepcode != null)
                {
                    search += "and AA.step_code like '%'+@stepcode+'%' ";
                    dynamicParams.Add("@stepcode", stepcode);
                }
                if (stepname != "" && stepname != null)
                {
                    search += "and AA.stepname like '%'+@stepname+'%' ";
                    dynamicParams.Add("@stepname", stepname);
                }
                if (reportname != "" && reportname != null)
                {
                    search += "and AA.username like '%'+@reportname+'%' ";
                    dynamicParams.Add("@reportname", reportname);
                }
                if (reportopendate != "" && reportopendate != null)
                {
                    search += "and AA.report_date between @reportopendate and @reportclosedate ";
                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select *  from(
                            select A.wo_code,A.materiel_code as partcode,P.partname,P.partspec,A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,K.isend,
                            A.task_qty,B.report_qty,isnull(A.step_price,0) as step_price,(B.report_qty*isnull(A.step_price,0)) as moneys,
                            B.report_person as usercode,
                             STUFF((SELECT ',' + U.username
                                    FROM TUser U
                                    WHERE CHARINDEX(',' + U.usercode + ',', ',' + B.report_person + ',') > 0
                                    FOR XML PATH('')), 1, 1, '') AS username,
                            B.report_date
                            from TK_Wrk_Record A
                            inner join TK_Wrk_RecordSub B on A.id=B.m_id
                            left join TK_Wrk_Man M on A.wo_code=M.wo_code
                            left join TK_Wrk_Step K on M.wo_code=K.wo_code and A.step_code=K.step_code
                            left join TStep S on A.step_code=S.stepcode
                            left join TMateriel_Info P on A.materiel_code=P.partcode
                            where A.style='B' and B.style='B' and A.verify='Y' and B.usergroup_code=''
                            union all
                            select A.wo_code,A.materiel_code as partcode,P.partname,P.partspec,A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,K.isend,
                            M.plan_qty as task_qty,B.sqty as report_qty,isnull(A.step_price,0) as step_price,(B.sqty*isnull(A.step_price,0)) as moneys,
                            B.in_person as usercode,
                            STUFF((SELECT ',' + U.username
                                    FROM TUser U
                                    WHERE CHARINDEX(',' + U.usercode + ',', ',' + B.in_person + ',') > 0
                                    FOR XML PATH('')), 1, 1, '') AS username,
                            B.in_time as report_date
                            from TK_Wrk_OutRecord A
                            inner join TK_Wrk_OutRecordSub B on A.id = B.m_id
                            left join TK_Wrk_Man M on A.wo_code = M.wo_code
                            left join TK_Wrk_Step K on M.wo_code=K.wo_code and A.step_code=K.step_code
                            left join TStep S on A.step_code = S.stepcode
                            left join TMateriel_Info P on A.materiel_code = P.partcode
                            where A.style = 'S' and B.style = 'S'  and A.verify='Y'
                            ) as AA
                            where " + 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 PeopleSalaryReportSearch(string compute, string wocode, string partcode, string partname, string partspec, string stepcode, string stepname, string reportname, string reportopendate, string reportclosedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (compute == "last")  //末道工序
                {
                    search += "and AA.isend=@isend ";
                    dynamicParams.Add("@isend", "Y");
                }
                if (wocode != "" && wocode != null)
                {
                    search += "and AA.wo_code like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and AA.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and AA.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and AA.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (stepcode != "" && stepcode != null)
                {
                    search += "and AA.step_code like '%'+@stepcode+'%' ";
                    dynamicParams.Add("@stepcode", stepcode);
                }
                if (stepname != "" && stepname != null)
                {
                    search += "and AA.stepname like '%'+@stepname+'%' ";
                    dynamicParams.Add("@stepname", stepname);
                }
                if (reportname != "" && reportname != null)
                {
                    search += "and AA.username like '%'+@reportname+'%' ";
                    dynamicParams.Add("@reportname", reportname);
                }
                if (reportopendate != "" && reportopendate != null)
                {
                    search += "and AA.report_date between @reportopendate and @reportclosedate ";
                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select AA.wo_code as '工单号',AA.partcode as '产品编码',AA.partname '产品名称',AA.partspec as '规格型号',AA.step_seq as '工序序号',
                            AA.step_code as '工序编码',AA.stepname as '工序名称',(case when AA.steptype='Z' then '自制' else '外协' end) as '工序类型',AA.task_qty as '任务数量',AA.report_qty as '报工数量',
                            AA.step_price as '工序单价',AA.moneys as '计件工资',AA.usercode as '报工人员编号',AA.username as '报工人员名称',AA.report_date as '报工时间'
                            from(
                            select A.wo_code,A.materiel_code as partcode,P.partname,P.partspec,A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,K.isend,
                            A.task_qty,B.report_qty,isnull(A.step_price,0) as step_price,(B.report_qty*isnull(A.step_price,0)) as moneys,
                            B.report_person as usercode,
                             STUFF((SELECT ',' + U.username
                                    FROM TUser U
                                    WHERE CHARINDEX(',' + U.usercode + ',', ',' + B.report_person + ',') > 0
                                    FOR XML PATH('')), 1, 1, '') AS username,
                            B.report_date
                            from TK_Wrk_Record A
                            inner join TK_Wrk_RecordSub B on A.id=B.m_id
                            left join TK_Wrk_Man M on A.wo_code=M.wo_code
                            left join TK_Wrk_Step K on M.wo_code=K.wo_code and A.step_code=K.step_code
                            left join TStep S on A.step_code=S.stepcode
                            left join TMateriel_Info P on A.materiel_code=P.partcode
                            where A.style='B' and B.style='B' and A.verify='Y' and B.usergroup_code=''
                            union all
                            select A.wo_code,A.materiel_code as partcode,P.partname,P.partspec,A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,K.isend,
                            M.plan_qty as task_qty,B.sqty as report_qty,isnull(A.step_price,0) as step_price,(B.sqty*isnull(A.step_price,0)) as moneys,
                            B.in_person as usercode,
                            STUFF((SELECT ',' + U.username
                                    FROM TUser U
                                    WHERE CHARINDEX(',' + U.usercode + ',', ',' + B.in_person + ',') > 0
                                    FOR XML PATH('')), 1, 1, '') AS username,
                            B.in_time as report_date
                            from TK_Wrk_OutRecord A
                            inner join TK_Wrk_OutRecordSub B on A.id = B.m_id
                            left join TK_Wrk_Man M on A.wo_code = M.wo_code
                            left join TK_Wrk_Step K on M.wo_code=K.wo_code and A.step_code=K.step_code
                            left join TStep S on A.step_code = S.stepcode
                            left join TMateriel_Info P on A.materiel_code = P.partcode
                            where A.style = 'S' and B.style = 'S'  and A.verify='Y'
                            ) as AA
                            where " + 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 OutSourceReportSearch(string wocode, string partcode, string partname, string partspec, string stepname, string suppername, string type, string receivopendate, string receivclosedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wocode != "" && wocode != null)
                {
                    search += "and A.wo_code like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and M.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and M.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and M.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (stepname != "" && stepname != null)
                {
                    search += "and S.stepname like '%'+@stepname+'%' ";
                    dynamicParams.Add("@stepname", stepname);
                }
                if (suppername != "" && suppername != null)
                {
                    search += "and C.name like '%'+@suppername+'%' ";
                    dynamicParams.Add("@suppername", suppername);
                }
                if (type != "" && type != null)
                {
                    search += "and A.style=@type ";
                    dynamicParams.Add("@type", type);
                    switch (type)
                    {
                        case "F": //发料
                            if (receivopendate != "" && receivopendate != null)
                            {
                                search += "and B.out_time between @receivopendate and @receivclosedate ";
                                dynamicParams.Add("@receivopendate", receivopendate + " 00:00:00");
                                dynamicParams.Add("@receivclosedate", receivclosedate + " 23:59:59");
                            }
                            break;
                        case "S": //收料
                            if (receivopendate != "" && receivopendate != null)
                            {
                                search += "and B.in_time between @receivopendate and @receivclosedate ";
                                dynamicParams.Add("@receivopendate", receivopendate + " 00:00:00");
                                dynamicParams.Add("@receivclosedate", receivclosedate + " 23:59:59");
                            }
                            break;
                        default:
                            break;
                    }
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.wo_code,M.partcode,M.partname,M.partspec,S.stepcode,S.stepname,C.code,C.name,(case when A.style='F' then '发料' when A.style='S' then '收料'  end) as style,
                            A.fqty,A.sqty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,U.username as out_person,B.out_time,T.username as in_person,B.in_time
                            from TK_Wrk_OutRecord A
                            inner join TK_Wrk_OutRecordSub B on A.id=B.m_id
                            left  join TMateriel_Info M on A.materiel_code=M.partcode
                            left  join TStep S on A.step_code=S.stepcode
                            left  join TCustomer C on A.wx_code=C.code
                            left  join TUser U on B.out_person=U.usercode
                            left  join TUser T on B.in_person=T.usercode
                            where " + 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 OutSourceReportExcelSearch(string wocode, string partcode, string partname, string partspec, string stepname, string suppername, string type, string receivopendate, string receivclosedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wocode != "" && wocode != null)
                {
                    search += "and A.wo_code like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and M.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and M.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and M.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (stepname != "" && stepname != null)
                {
                    search += "and S.stepname like '%'+@stepname+'%' ";
                    dynamicParams.Add("@stepname", stepname);
                }
                if (suppername != "" && suppername != null)
                {
                    search += "and C.name like '%'+@suppername+'%' ";
                    dynamicParams.Add("@suppername", suppername);
                }
                if (type != "" && type != null)
                {
                    search += "and A.style=@type ";
                    dynamicParams.Add("@type", type);
                    switch (type)
                    {
                        case "F": //发料
                            if (receivopendate != "" && receivopendate != null)
                            {
                                search += "and B.out_time between @receivopendate and @receivclosedate ";
                                dynamicParams.Add("@receivopendate", receivopendate + " 00:00:00");
                                dynamicParams.Add("@receivclosedate", receivclosedate + " 23:59:59");
                            }
                            break;
                        case "S": //收料
                            if (receivopendate != "" && receivopendate != null)
                            {
                                search += "and B.in_time between @receivopendate and @receivclosedate ";
                                dynamicParams.Add("@receivopendate", receivopendate + " 00:00:00");
                                dynamicParams.Add("@receivclosedate", receivclosedate + " 23:59:59");
                            }
                            break;
                        default:
                            break;
                    }
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select A.wo_code as '工单编号',M.partcode as '产品编码',M.partname as '产品名称',M.partspec as '产品规格',S.stepcode as '工序编码',S.stepname as '工序名称',
                            C.code as '外协供方编码',C.name as '外协供方名称',(case when A.style='F' then '发料' when A.style='S' then '收料'  end) as '操作类型',
                            A.fqty as '发料数量',A.sqty as '收料数量',A.ng_qty as '不良数量',A.laborbad_qty as '工废数量',A.materielbad_qty as '料废数量',U.username as '发料人员',B.out_time as '发料时间',
                            T.username as '收料人员',B.in_time as '收料时间'
                            from TK_Wrk_OutRecord A
                            inner join TK_Wrk_OutRecordSub B on A.id=B.m_id
                            left  join TMateriel_Info M on A.materiel_code=M.partcode
                            left  join TStep S on A.step_code=S.stepcode
                            left  join TCustomer C on A.wx_code=C.code
                            left  join TUser U on B.out_person=U.usercode
                            left  join TUser T on B.in_person=T.usercode
                            where " + 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 DefectDetailsReportSearch(string wocode, string partcode, string partname, string partspec, string stepname, string defectcode, string defectname, string reportname, string reportopendate, string reportclosedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wocode != "" && wocode != null)
                {
                    search += "and AA.wo_code like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and AA.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and AA.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and AA.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (stepname != "" && stepname != null)
                {
                    search += "and AA.stepname like '%'+@stepname+'%' ";
                    dynamicParams.Add("@stepname", stepname);
                }
                if (defectcode != "" && defectcode != null)
                {
                    search += "and AA.defect_code like '%'+@defectcode+'%' ";
                    dynamicParams.Add("@defectcode", defectcode);
                }
                if (defectname != "" && defectname != null)
                {
                    search += "and AA.defect_name like '%'+@defectname+'%' ";
                    dynamicParams.Add("@defectname", defectname);
                }
                if (reportname != "" && reportname != null)
                {
                    search += "and AA.lm_user like '%'+@reportname+'%' ";
                    dynamicParams.Add("@reportname", reportname);
                }
                if (reportopendate != "" && reportopendate != null)
                {
                    search += "and AA.lm_date between @reportopendate and @reportclosedate ";
                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select *   from(
                            select A.wo_code,M.partcode,M.partname,M.partspec,T.stepcode,T.stepname,P.plan_qty,A.defect_qty,
                            A.defect_code,
                            STUFF((SELECT ',' + F.name
                            FROM TDefect F
                            WHERE CHARINDEX(',' + F.code + ',', ',' + A.defect_code + ',') > 0
                            FOR XML PATH('')), 1, 1, '') AS defect_name,
                            A.style,U.username as lm_user,A.lm_date
                            from CSR_WorkRecord_Defect A
                            inner join TK_Wrk_Step P on A.wo_code=P.wo_code and A.step_code=P.step_code
                            left  join TMateriel_Info M on A.partnumber=M.partcode
                            left  join TStep T on A.step_code=T.stepcode
                            left  join TUser U on A.lm_user=U.usercode
                            ) as AA
                            where " + 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 DefectDetailsReportExcelSearch(string wocode, string partcode, string partname, string partspec, string stepname, string defectcode, string defectname, string reportname, string reportopendate, string reportclosedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wocode != "" && wocode != null)
                {
                    search += "and AA.wo_code like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and AA.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and AA.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and AA.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (stepname != "" && stepname != null)
                {
                    search += "and AA.stepname like '%'+@stepname+'%' ";
                    dynamicParams.Add("@stepname", stepname);
                }
                if (defectcode != "" && defectcode != null)
                {
                    search += "and AA.defect_code like '%'+@defectcode+'%' ";
                    dynamicParams.Add("@defectcode", defectcode);
                }
                if (defectname != "" && defectname != null)
                {
                    search += "and AA.defect_name like '%'+@defectname+'%' ";
                    dynamicParams.Add("@defectname", defectname);
                }
                if (reportname != "" && reportname != null)
                {
                    search += "and AA.lm_user like '%'+@reportname+'%' ";
                    dynamicParams.Add("@reportname", reportname);
                }
                if (reportopendate != "" && reportopendate != null)
                {
                    search += "and AA.lm_date between @reportopendate and @reportclosedate ";
                    dynamicParams.Add("@reportopendate", reportopendate + " 00:00:00");
                    dynamicParams.Add("@reportclosedate", reportclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select AA.wo_code as 工单编号,AA.partcode as 产品编码,AA.partname as 产品名称,AA.partspec as 产品规格,AA.stepcode as 工序编码,
                            AA.stepname as 工序名称,AA.plan_qty as 任务数量,AA.defect_qty as 不良数量,AA.defect_code as 缺陷代码,AA.defect_name as 缺陷名称,
                            (case when AA.style='B' then '报工' when AA.style='S' then '收料'  end) as '操作类型',AA.lm_user as 操作人员,AA.lm_date as 操作时间
                            from(
                            select A.wo_code,M.partcode,M.partname,M.partspec,T.stepcode,T.stepname,P.plan_qty,A.defect_qty,
                            A.defect_code,
                            STUFF((SELECT ',' + F.name
                            FROM TDefect F
                            WHERE CHARINDEX(',' + F.code + ',', ',' + A.defect_code + ',') > 0
                            FOR XML PATH('')), 1, 1, '') AS defect_name,
                            A.style,U.username as lm_user,A.lm_date
                            from CSR_WorkRecord_Defect A
                            inner join TK_Wrk_Step P on A.wo_code=P.wo_code and A.step_code=P.step_code
                            left  join TMateriel_Info M on A.partnumber=M.partcode
                            left  join TStep T on A.step_code=T.stepcode
                            left  join TUser U on A.lm_user=U.usercode
                            ) as AA
                            where " + 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 MaintenanceDetailsReportSearch(string wocode, string partcode, string partname, string partspec, string stepname, string style, string defectname, string repairname, string repairopendate, string repairclosedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wocode != "" && wocode != null)
                {
                    search += "and AA.wo_code like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and AA.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and AA.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and AA.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (stepname != "" && stepname != null)
                {
                    search += "and AA.stepname like '%'+@stepname+'%' ";
                    dynamicParams.Add("@stepname", stepname);
                }
                if (style != "" && style != null)
                {
                    search += "and AA.style=@style ";
                    dynamicParams.Add("@style", style);
                }
                if (defectname != "" && defectname != null)
                {
                    search += "and AA.defect_name like '%'+@defectname+'%' ";
                    dynamicParams.Add("@defectname", defectname);
                }
                if (repairname != "" && repairname != null)
                {
                    search += "and AA.lm_user like '%'+@repairname+'%' ";
                    dynamicParams.Add("@repairname", repairname);
                }
                if (repairopendate != "" && repairopendate != null)
                {
                    search += "and AA.lm_date between @repairopendate and @repairclosedate ";
                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select AA.wo_code,AA.partcode,AA.partname,AA.partspec,AA.stepcode,AA.stepname,(case when AA.style='B' then '报工' when AA.style='S' then '收料' end) as style,
                            AA.plan_qty,AA.repair_qty,AA.laborbad_qty,AA.materielbad_qty,AA.defect_code,AA.defect_name,AA.lm_user,AA.lm_date
                            from(
                            select F.wo_code,M.partcode,M.partname,M.partspec,S.stepcode,S.stepname,F.style,P.plan_qty,F.repair_qty,F.laborbad_qty,F.materielbad_qty,F.defect_code,
                            defect_name = STUFF(( SELECT ',' + T.name
                            FROM TDefect as T
                            where PATINDEX('%,' + RTRIM(T.code) + ',%',',' + F.defect_code + ',')>0
                            ORDER BY PATINDEX('%,' + RTRIM(T.code) + ',%',',' + F.defect_code + ',')
                            FOR XML PATH('')), 1, 1,''),U.username as lm_user,F.lm_date
                            from CSR_WorkRecord_DefectHandle as F
                            inner join TK_Wrk_Step P on F.wo_code=P.wo_code and F.step_code=P.step_code
                            left  join TMateriel_Info M on F.partnumber=M.partcode
                            left  join TStep S on F.step_code=S.stepcode
                            left  join TUser U on F.lm_user=U.usercode
                            ) as AA
                            where " + 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 MaintenanceDetailsReportExcelSearch(string wocode, string partcode, string partname, string partspec, string stepname, string style, string defectname, string repairname, string repairopendate, string repairclosedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wocode != "" && wocode != null)
                {
                    search += "and AA.wo_code like '%'+@wocode+'%' ";
                    dynamicParams.Add("@wocode", wocode);
                }
                if (partcode != "" && partcode != null)
                {
                    search += "and AA.partcode like '%'+@partcode+'%' ";
                    dynamicParams.Add("@partcode", partcode);
                }
                if (partname != "" && partname != null)
                {
                    search += "and AA.partname like '%'+@partname+'%' ";
                    dynamicParams.Add("@partname", partname);
                }
                if (partspec != "" && partspec != null)
                {
                    search += "and AA.partspec like '%'+@partspec+'%' ";
                    dynamicParams.Add("@partspec", partspec);
                }
                if (stepname != "" && stepname != null)
                {
                    search += "and AA.stepname like '%'+@stepname+'%' ";
                    dynamicParams.Add("@stepname", stepname);
                }
                if (style != "" && style != null)
                {
                    search += "and AA.style=@style ";
                    dynamicParams.Add("@style", style);
                }
                if (defectname != "" && defectname != null)
                {
                    search += "and AA.defect_name like '%'+@defectname+'%' ";
                    dynamicParams.Add("@defectname", defectname);
                }
                if (repairname != "" && repairname != null)
                {
                    search += "and AA.lm_user like '%'+@repairname+'%' ";
                    dynamicParams.Add("@repairname", repairname);
                }
                if (repairopendate != "" && repairopendate != null)
                {
                    search += "and AA.lm_date between @repairopendate and @repairclosedate ";
                    dynamicParams.Add("@repairopendate", repairopendate + " 00:00:00");
                    dynamicParams.Add("@repairclosedate", repairclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定数据--------------
                var total = 0; //总条数
                var sql = @"select AA.wo_code as 工单编号,AA.partcode as 产品编码,AA.partname as 产品名称,AA.partspec as 产品规格,AA.stepcode as 工序编码,AA.stepname as 工序名称,
                            (case when AA.style='B' then '报工' when AA.style='S' then '收料' end) as 操作类型,
                            AA.plan_qty as 任务数量,AA.repair_qty as 维修数量,AA.laborbad_qty as 工废数量,AA.materielbad_qty as 料废数量,AA.defect_name as 缺陷名称,AA.lm_user as 维修人员,AA.lm_date as 维修时间
                            from(
                            select F.wo_code,M.partcode,M.partname,M.partspec,S.stepcode,S.stepname,F.style,P.plan_qty,F.repair_qty,F.laborbad_qty,F.materielbad_qty,F.defect_code,
                            defect_name = STUFF(( SELECT ',' + T.name
                            FROM TDefect as T
                            where PATINDEX('%,' + RTRIM(T.code) + ',%',',' + F.defect_code + ',')>0
                            ORDER BY PATINDEX('%,' + RTRIM(T.code) + ',%',',' + F.defect_code + ',')
                            FOR XML PATH('')), 1, 1,''),U.username as lm_user,F.lm_date
                            from CSR_WorkRecord_DefectHandle as F
                            inner join TK_Wrk_Step P on F.wo_code=P.wo_code and F.step_code=P.step_code
                            left  join TMateriel_Info M on F.partnumber=M.partcode
                            left  join TStep S on F.step_code=S.stepcode
                            left  join TUser U on F.lm_user=U.usercode
                            ) as AA
                            where " + 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
    }
}