yl
2025-03-21 c98af02dd7bf50587aeb85781708164ecc8c5004
1.增加报工记录报表接口
已修改3个文件
249 ■■■■■ 文件已修改
VueWebCoreApi/Controllers/ReportManagerController.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/DLL/BLL/ReportManagerBLL.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/DLL/DAL/ReportManagerDAL.cs 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
VueWebCoreApi/Controllers/ReportManagerController.cs
@@ -438,5 +438,72 @@
            return Json(mes);
        }
        #endregion
        #region[报工记录列表数据查询]
        /// <summary>
        /// 报工记录列表数据查询
        /// </summary>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="wo_code">工单编号</param>
        /// <param name="partnumber">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">产品规格</param>
        /// <param name="stepname">报工工序</param>
        /// <param name="eqpcode">报工设备</param>
        /// <param name="reportuser">报工人员</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: "MesOrderStepReportSearch")]
        [HttpGet]
        public JsonResult MesOrderStepReportSearch(string wkshopcode = null, string wo_code = null, string partnumber = null, string partname = null, string partspec = null, string stepname = null,string eqpcode=null, string reportuser = null, string reportdate = null, int page = 0, int rows = 0, string prop = null, string order = null)
        {
            string reportdateopendate = "";  //报工开始时间
            string reportdateclosedate = "";    //报工结束时间
            if (reportdate != "" && reportdate != null)
            {
                reportdateopendate = reportdate.Split('~')[0].ToString();
                reportdateclosedate = reportdate.Split('~')[1].ToString();
            }
            int startNum = rows * (page - 1) + 1;  //起始记录rowNum
            int endNum = rows * page;   //结束记录 rowNum
            mes = ReportManagerBLL.MesOrderStepReportSearch(wkshopcode, wo_code, partnumber, partname, partspec, stepname,eqpcode, reportuser, reportdateopendate, reportdateclosedate, startNum, endNum, prop, order);
            return Json(mes);
        }
        #endregion
        #region[报工记录列表数据导出]
        /// <summary>
        /// 报工记录列表数据导出
        /// </summary>
        /// <param name="wkshopcode">车间编码</param>
        /// <param name="wo_code">工单编号</param>
        /// <param name="partnumber">产品编码</param>
        /// <param name="partname">产品名称</param>
        /// <param name="partspec">产品规格</param>
        /// <param name="stepname">报工工序</param>
        /// <param name="eqpcode">报工设备</param>
        /// <param name="reportuser">报工人员</param>
        /// <param name="reportdate">报工时间</param>
        /// <returns></returns>
        [Route(template: "MesOrderStepReportExcelSearch")]
        [HttpGet]
        public JsonResult MesOrderStepReportExcelSearch(string wkshopcode = null, string wo_code = null, string partnumber = null, string partname = null, string partspec = null, string stepname = null, string eqpcode = null, string reportuser = null, string reportdate = null)
        {
            string reportdateopendate = "";  //报工开始时间
            string reportdateclosedate = "";    //报工结束时间
            if (reportdate != "" && reportdate != null)
            {
                reportdateopendate = reportdate.Split('~')[0].ToString();
                reportdateclosedate = reportdate.Split('~')[1].ToString();
            }
            mes = ReportManagerBLL.MesOrderStepReportExcelSearch(wkshopcode, wo_code, partnumber, partname, partspec, stepname, eqpcode, reportuser, reportdateopendate, reportdateclosedate);
            return Json(mes);
        }
        #endregion
    }
}
VueWebCoreApi/DLL/BLL/ReportManagerBLL.cs
@@ -104,5 +104,20 @@
            return ReportManagerDAL.MaintenanceDetailsReportExcelSearch(wkshopcode,wocode, partcode, partname, partspec, stepname, style, defectname, repairname, repairopendate, repairclosedate);
        }
        #endregion
        #region[报工记录列表数据查询接口]
        public static ToMessage MesOrderStepReportSearch(string wkshopcode, string wo_code, string partnumber, string partname, string partspec, string stepname, string eqpcode, string reportuser, string reportdateopendate, string reportdateclosedate, int startNum, int endNum, string prop, string order)
        {
            return ReportManagerDAL.MesOrderStepReportSearch(wkshopcode, wo_code, partnumber, partname, partspec, stepname, eqpcode, reportuser, reportdateopendate, reportdateclosedate, startNum, endNum, prop, order);
        }
        #endregion
        #region[报工记录列表数据导出]
        public static ToMessage MesOrderStepReportExcelSearch(string wkshopcode, string wo_code, string partnumber, string partname, string partspec, string stepname, string eqpcode, string reportuser, string reportdateopendate, string reportdateclosedate)
        {
            return ReportManagerDAL.MesOrderStepReportExcelSearch(wkshopcode, wo_code, partnumber, partname, partspec, stepname, eqpcode, reportuser, reportdateopendate, reportdateclosedate);
        }
        #endregion
    }
}
VueWebCoreApi/DLL/DAL/ReportManagerDAL.cs
@@ -1311,5 +1311,172 @@
            return mes;
        }
        #endregion
        #region[报工记录列表数据查询接口]
        public static ToMessage MesOrderStepReportSearch(string wkshopcode, string wo_code, string partnumber, string partname, string partspec, string stepname, string eqpcode, string reportuser, string reportdateopendate, string reportdateclosedate, int startNum, int endNum, string prop, string order)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wkshopcode != "" && wkshopcode != null)
                {
                    search += "and AA.wkshp_code=@wkshopcode ";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
                }
                if (wo_code != "" && wo_code != null)
                {
                    search += "and AA.wo_code like '%'+@wo_code+'%' ";
                    dynamicParams.Add("@wo_code", wo_code);
                }
                if (partnumber != "" && partnumber != null)
                {
                    search += "and AA.partnumber like '%'+@partnumber+'%' ";
                    dynamicParams.Add("@partnumber", partnumber);
                }
                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 (eqpcode != "" && eqpcode != null)
                {
                    search += "and AA.eqp_code=@eqp_code ";
                    dynamicParams.Add("@eqp_code", eqpcode);
                }
                if (reportuser != "" && reportuser != null)
                {
                    search += "and AA.usercode like '%'+@reportuser+'%' ";
                    dynamicParams.Add("@reportuser", reportuser);
                }
                if (reportdateopendate != "" && reportdateopendate != null)
                {
                    search += "and AA.report_date between @reportdateopendate and @reportdateclosedate ";
                    dynamicParams.Add("@reportdateopendate", reportdateopendate + " 00:00:00");
                    dynamicParams.Add("@reportdateclosedate", reportdateclosedate + " 23:59:59");
                }
                if (search == "")
                {
                    search = "and 1=1 ";
                }
                search = search.Substring(3);//截取索引2后面的字符
                // --------------查询指定自制报工外协收料数据--------------
                var total = 0; //总条数
                var sql = @"select *  from h_v_MesOrderStepReportSearch 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 MesOrderStepReportExcelSearch(string wkshopcode, string wo_code, string partnumber, string partname, string partspec, string stepname, string eqpcode, string reportuser, string reportdateopendate, string reportdateclosedate)
        {
            var dynamicParams = new DynamicParameters();
            string search = "";
            try
            {
                if (wkshopcode != "" && wkshopcode != null)
                {
                    search += "and AA.wkshp_code=@wkshopcode ";
                    dynamicParams.Add("@wkshopcode", wkshopcode);
                }
                if (wo_code != "" && wo_code != null)
                {
                    search += "and AA.wo_code like '%'+@wo_code+'%' ";
                    dynamicParams.Add("@wo_code", wo_code);
                }
                if (partnumber != "" && partnumber != null)
                {
                    search += "and AA.partnumber like '%'+@partnumber+'%' ";
                    dynamicParams.Add("@partnumber", partnumber);
                }
                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 (eqpcode != "" && eqpcode != null)
                {
                    search += "and AA.eqp_code=@eqp_code ";
                    dynamicParams.Add("@eqp_code", eqpcode);
                }
                if (reportuser != "" && reportuser != null)
                {
                    search += "and AA.usercode like '%'+@reportuser+'%' ";
                    dynamicParams.Add("@reportuser", reportuser);
                }
                if (reportdateopendate != "" && reportdateopendate != null)
                {
                    search += "and AA.report_date between @reportdateopendate and @reportdateclosedate ";
                    dynamicParams.Add("@reportdateopendate", reportdateopendate + " 00:00:00");
                    dynamicParams.Add("@reportdateclosedate", reportdateclosedate + " 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.partnumber as '产品编码',AA.partname as '产品名称',AA.partspec as '规格型号',AA.wkshp_name as '车间名称',AA.task_qty as '任务数量',
                          AA.stepname as '工序名称',(case when AA.steptype='Z' then '自制' else '外协' end) as '工序类型',(case when AA.eqp_code is null  then AA.eqp_name else AA.wx_name end) as '设备/供应商',
                          AA.usergroup_name as '报工班组',AA.username as '报工人员',AA.report_qty as '合格数量',AA.ng_qty as '不良数量',AA.laborbad_qty as '工废数量',AA.materielbad_qty as '料废数量',
                          AA.report_date as '报工时间'
                          from h_v_MesOrderStepReportSearch 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
    }
}