diff --git a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java index c6982c7..1324c61 100644 --- a/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java +++ b/src/main/java/com/emr/controller/templateSearch/TemplateSearchController.java @@ -852,15 +852,16 @@ public class TemplateSearchController { */ @RequestMapping(value = "cutomSearchTable", produces = {"text/json;charset=UTF-8"}, method = RequestMethod.POST) @ResponseBody - public String cutomSearchTable(String sql, Integer page, Integer limit, HttpServletRequest request) { - if (StringUtils.isNoneBlank(sql)) { + public String cutomSearchTable(String selectSql,String fromTableSql,String whereSql,String orderBys,Integer page, Integer limit, HttpServletRequest request) { + //匹配权限 + Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); + String sql = getSql(selectSql, fromTableSql, whereSql, orderBys, user); + if (StringUtils.isNoneBlank(selectSql)) { if (null != page && null != limit) { PageHelper.startPage(page, limit); } try { List commomVos = commomMapper.selectAll(sql); - //匹配权限 - Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); Set menus = user.getMenus(); if (null != commomVos && !commomVos.isEmpty()) { if (null != menus && !menus.isEmpty()) { @@ -923,6 +924,26 @@ public class TemplateSearchController { } } + private String getSql(String selectSql, String fromTableSql, String whereSql, String orderBys, Power_User user) { + String userName = user.getUserName(); + String initSelectSql = "select commomtable.patient_id,CASE WHEN emr_apply_approve.id is null THEN 0 ELSE 1 END isShowDetail,CASE WHEN emr_apply_approve1.id IS NULL THEN 0 ELSE 1 END isDownload,CASE WHEN emr_lock.id is null THEN 0 ELSE 1 END lockStatus"; + if(StringUtils.isNotBlank(selectSql)){ + initSelectSql += "," + selectSql; + } + String initFromTableSql = " from commomtable left join emr_apply_approve on commomtable.patient_id = emr_apply_approve.patient_id and emr_apply_approve.approve_state = 1 and emr_apply_approve.effe_time > GETDATE()-1 and emr_apply_approve.applyer = '" +userName+ "' and emr_apply_approve.apply_type != 3 left join emr_apply_approve emr_apply_approve1 on commomtable.patient_id = emr_apply_approve1.patient_id and emr_apply_approve1.approve_state = 1 and emr_apply_approve1.effe_time > GETDATE()-1 and emr_apply_approve1.applyer = '" +userName+ "' and emr_apply_approve1.apply_type = 3 left join emr_lock on commomtable.patient_id = emr_lock.patient_id and emr_lock.lock_state = 1 "; + if(StringUtils.isNotBlank(fromTableSql)){ + initFromTableSql += fromTableSql; + } + String sql = initSelectSql + initFromTableSql; + if(StringUtils.isNotBlank(whereSql) && !"undefined".equals(whereSql)){ + sql += whereSql; + } + if(StringUtils.isNotBlank(orderBys)){ + sql += orderBys; + } + return sql; + } + /** * 南方医院无登录查询 * @param sql @@ -993,23 +1014,22 @@ public class TemplateSearchController { @OptionalLog(module = "导出excel", methods = "病案查询页面") @RequestMapping(value = "exportExcel", produces = {"text/json;charset=UTF-8"}) @ResponseBody - public void exportExcel(HttpServletResponse response, String sql, String fieldCns, String tableThNames) { - if (StringUtils.isNoneBlank(sql)) { - try { - //中文转换和%转义 - sql = sql.replaceAll("%25", "%"); - //构造excel的数据 - List list = commomMapper.selectAll(sql); - //文件名 - String fileName = "档案管理常用查询导出数据(" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ").xls"; - //ExportExcelUtil - ExportExcelUtil exportExcelUtil = new ExportExcelUtil(); - //导出excel的操作 - exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response); - } catch (Exception e) { - ExceptionPrintUtil.printException(e); - e.printStackTrace(); - } + public void exportExcel(HttpServletResponse response,HttpServletRequest request, String selectSql,String fromTableSql,String whereSql,String orderBys, String fieldCns, String tableThNames) { + try { + //匹配权限 + Power_User user = (Power_User) request.getSession().getAttribute("CURRENT_USER"); + String sql = getSql(selectSql, fromTableSql, whereSql, orderBys, user); + //构造excel的数据 + List list = commomMapper.selectAll(sql); + //文件名 + String fileName = "档案管理常用查询导出数据(" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + ").xls"; + //ExportExcelUtil + ExportExcelUtil exportExcelUtil = new ExportExcelUtil(); + //导出excel的操作 + exportExcelUtil.expordExcel(tableThNames, fieldCns, list, fileName, response); + } catch (Exception e) { + ExceptionPrintUtil.printException(e); + e.printStackTrace(); } } diff --git a/src/main/webapp/WEB-INF/views/recordManage/commomSearch/commomListqf.jsp b/src/main/webapp/WEB-INF/views/recordManage/commomSearch/commomListqf.jsp index 445a1a5..7e9fad9 100644 --- a/src/main/webapp/WEB-INF/views/recordManage/commomSearch/commomListqf.jsp +++ b/src/main/webapp/WEB-INF/views/recordManage/commomSearch/commomListqf.jsp @@ -160,6 +160,8 @@
+ +
@@ -850,8 +852,8 @@ $(".modal-dialog").draggable();//为模态对话框添加拖拽 }) - + diff --git a/src/main/webapp/static/js/recordManage/commomSearch/commomListqf.js b/src/main/webapp/static/js/recordManage/commomSearch/commomListqf.js index 192ad68..bc596a1 100644 --- a/src/main/webapp/static/js/recordManage/commomSearch/commomListqf.js +++ b/src/main/webapp/static/js/recordManage/commomSearch/commomListqf.js @@ -249,11 +249,8 @@ var commomtable1 = 'commomtable1'; function getSql() { var inputValue = getInputValue(); if (inputValue != '') { - //select语句字符串 - var selectNames = 'select ' + commomtable + '.patient_id,CASE WHEN emr_apply_approve.id is null THEN 0 ELSE 1 END isShowDetail,CASE WHEN emr_apply_approve1.id IS NULL THEN 0 ELSE 1 END isDownload,CASE WHEN emr_lock.id is null THEN 0 ELSE 1 END lockStatus,'; - selectNames += $("#englishFields").val(); //from语句字符串 - var fromTableNames = ' from '; + var fromTableNames = ''; //where语句字符串 var whereNames = ' where '; //判断是否多表 @@ -264,8 +261,6 @@ function getSql() { return false; } }) - //单表 - fromTableNames += commomtable; //拼接where语句 var name = ''; //姓名 @@ -334,6 +329,8 @@ function getSql() { whereNames += "(" + commomtable + "." + name + " BETWEEN " + $("#age1").val() + " AND " + ($("#age2").val() - 1) + " or (" + commomtable + "." + name + "=" + $("#age2").val() + " and " + commomtable + ".age_month=0 and " + commomtable + ".age_day=0)) AND "; } else if ($("#age2").val() < $("#age1").val()) { whereNames += "(" + commomtable + "." + name + " BETWEEN " + $("#age2").val() + " AND " + ($("#age1").val() - 1) + " or (" + commomtable + "." + name + "=" + $("#age1").val() + " and " + commomtable + ".age_month=0 and " + commomtable + ".age_day=0)) AND "; + }else if($("#age1").val() == $("#age2").val()){ + whereNames += "(" + commomtable + "." + name + " = " + $("#age1").val() + " and " + commomtable + ".age_month=0 and " + commomtable + ".age_day=0) AND "; } } else if (ageType == '2') { //周 @@ -342,16 +339,21 @@ function getSql() { whereNames += "(" + 'age = 0 AND ' + commomtable + "." + name + " BETWEEN " + $("#age1").val() + " AND " + ($("#age2").val() - 1) + " OR (" + commomtable + ".age = 0 AND " + commomtable + ".age_month = " + $("#age2").val() + " AND " + commomtable + ".age_day = 0)) AND "; } else if ($("#age2").val() < $("#age1").val()) { whereNames += "(" + 'age = 0 AND ' + commomtable + "." + name + " BETWEEN " + $("#age2").val() + " AND " + ($("#age1").val() - 1) + " OR (" + commomtable + ".age = 0 AND " + commomtable + ".age_month = " + $("#age1").val() + " AND " + commomtable + ".age_day = 0)) AND "; + }else if($("#age1").val() == $("#age2").val()){ + whereNames += "(" + commomtable + "." + name + " = " + $("#age1").val() + " and " + commomtable + ".age=0 and " + commomtable + ".age_day=0) AND "; } } else if (ageType == '3') { //天 name = 'age_day'; + whereNames += '(age = 0 AND age_month = 0 AND '; if ($("#age1").val() < $("#age2").val()) { whereNames += commomtable + "." + name + " BETWEEN " + $("#age1").val() + " AND " + $("#age2").val() + " AND "; } else if ($("#age2").val() < $("#age1").val()) { whereNames += commomtable + "." + name + " BETWEEN " + $("#age2").val() + " AND " + $("#age1").val() + " AND "; + }else if($("#age1").val() == $("#age2").val()){ + whereNames += commomtable + "." + name + " = " + $("#age1").val(); } - whereNames += 'age = 0 AND age_month = 0 AND '; + whereNames += ")"; } } //性别 @@ -497,11 +499,6 @@ function getSql() { whereNames += commomtable1 + "." + name + " LIKE '%" + $("#admiss_doctor").val() + "%' AND "; } var userName = "'" + $("#userName").val() + "'"; - fromTableNames += ' left join emr_apply_approve on ' + commomtable + '.patient_id = emr_apply_approve.patient_id \n' + - 'and emr_apply_approve.approve_state = 1 and emr_apply_approve.effe_time > GETDATE()-1 and emr_apply_approve.applyer = ' + userName + ' and emr_apply_approve.apply_type != 3 ' + - ' left join emr_apply_approve emr_apply_approve1 on ' + commomtable + '.patient_id = emr_apply_approve1.patient_id \n' + - 'and emr_apply_approve1.approve_state = 1 and emr_apply_approve1.effe_time > GETDATE()-1 and emr_apply_approve1.applyer = ' + userName + ' and emr_apply_approve1.apply_type = 3' + - ' left join emr_lock on ' + commomtable + '.patient_id = emr_lock.patient_id and emr_lock.lock_state = 1'; //拼接诊断表 //全部诊断 if($("#all_diag_name").val() != ''){ @@ -533,22 +530,13 @@ function getSql() { name = 'is_oper'; whereNames += commomtable + "." + name + " = '1' AND "; } + $("#whereSql").val(''); + $("#fromTableSql").val(''); if (whereNames != ' where ') { whereNames = whereNames.substring(0, whereNames.length - 4); - var orderBys = " ORDER BY " + commomtable + ".inpatient_no," + commomtable + ".admiss_times"; - var sql = selectNames + fromTableNames + whereNames; - $("#sql").val(sql); - $("#orderBys").val(orderBys); - } - if (whereNames == ' where ') { - var orderBys = " ORDER BY " + commomtable + ".inpatient_no," + commomtable + ".admiss_times"; - var sql = selectNames + fromTableNames; - $("#sql").val(sql); - $("#orderBys").val(orderBys); - } - //console.log(sql); - } else { - $("#sql").val(""); + $("#whereSql").val(whereNames); + $("#fromTableSql").val(fromTableNames); + } } } @@ -599,51 +587,6 @@ function showDetail(patientId) { //隐藏模板选项 //window.location.href=path+"/commom/showRecord?patientId="+patientId; } - - - -//导出excel功能 -function exportExcel() { - getChecked(); - var checks = $("#checks").val(); - if ($("#rows").val() > 5000 && checks == '') { - toastr.warning("数据量大,暂提供5000条以内数据导出!"); - } else { - getSql(); - var userName = "'" + $("#userName").val() + "'"; - var sql = $("#sql").val(); - if (sql == '') { - sql = initSql; - } - var reg = new RegExp("%", "g");//g,表示全部替换。 - sql = sql.replace(reg, '%25'); - var tableThNames = $("#tableThNames").val(); - var fieldCns = $("#fieldCns").val(); - var orderBys = $("#orderBys").val(); - if (checks != '') { - //按选择框选择导出 - checks = checks.substring(0, checks.length - 1); - sql += ' WHERE ' + commomtable + '.patient_id IN (' + checks + ')'; - sql += orderBys; - var url = path + "/template/exportExcel"; - post(url, {"sql": sql, "tableThNames": tableThNames, "fieldCns": fieldCns}); - } else { - Common.confirm({ - title: "提示", - message: "没有选中,您确定要按搜索栏条件导出?", - operate: function (reselt) { - if (reselt) { - //sql += orderBys; - var url = path + "/template/exportExcel"; - post(url, {"sql": sql, "tableThNames": tableThNames, "fieldCns": fieldCns}); - } - } - }) - } - } - /*}*/ -} - /*****************************************输入框边输入内容边搜索功能方法*************************************************/ //级联病案号,且长度超过4个字节才查询 function getInpatientNoContents(id) { diff --git a/src/main/webapp/static/js/recordManage/templateSearch/searchCommomMethodqf.js b/src/main/webapp/static/js/recordManage/templateSearch/searchCommomMethodqf.js index b2a8005..ca97d56 100644 --- a/src/main/webapp/static/js/recordManage/templateSearch/searchCommomMethodqf.js +++ b/src/main/webapp/static/js/recordManage/templateSearch/searchCommomMethodqf.js @@ -1,11 +1,8 @@ /***********************************************表格操作*****************************************************************/ var userName = "'" + $("#userName").val() + "'"; -var initSql = "select commomtable.patient_id,CASE WHEN emr_apply_approve.id is null THEN 0 ELSE 1 END isShowDetail,CASE\n" + - "WHEN emr_apply_approve1.id IS NULL THEN\n" + - "\t0\n" + - "ELSE\n" + - "\t1\n" + - "END isDownload,CASE WHEN emr_lock.id is null THEN 0 ELSE 1 END lockStatus,commomtable.inpatient_no,commomtable.admiss_id,commomtable.admiss_times,commomtable.name,commomtable.sex,commomtable.age,commomtable.age_month,commomtable.home_addr,commomtable.admiss_date,commomtable.dis_date,commomtable.dis_dept,commomtable.main_diag_code,commomtable.main_diag_name,commomtable.main_dis_thing,commomtable.admiss_days,commomtable.attending,commomtable.other_diag_name,commomtable.pathology_name,commomtable.poisoning_name,commomtable.is_oper from commomtable left join emr_apply_approve on commomtable.patient_id = emr_apply_approve.patient_id and emr_apply_approve.approve_state = 1 and emr_apply_approve.effe_time > GETDATE()-1 and emr_apply_approve.applyer = " +userName+ " and emr_apply_approve.apply_type != 3 left join emr_apply_approve emr_apply_approve1 on commomtable.patient_id = emr_apply_approve1.patient_id and emr_apply_approve1.approve_state = 1 and emr_apply_approve1.effe_time > GETDATE()-1 and emr_apply_approve1.applyer = " +userName+ " and emr_apply_approve1.apply_type = 3 left join emr_lock on commomtable.patient_id = emr_lock.patient_id and emr_lock.lock_state = 1 "; +/* +var initSql = "select commomtable.patient_id,CASE WHEN emr_apply_approve.id is null THEN 0 ELSE 1 END isShowDetail,CASE WHEN emr_apply_approve1.id IS NULL THEN 0 ELSE 1 END isDownload,CASE WHEN emr_lock.id is null THEN 0 ELSE 1 END lockStatus,commomtable.inpatient_no,commomtable.admiss_id,commomtable.admiss_times,commomtable.name,commomtable.sex,commomtable.age,commomtable.age_month,commomtable.home_addr,commomtable.admiss_date,commomtable.dis_date,commomtable.dis_dept,commomtable.main_diag_code,commomtable.main_diag_name,commomtable.main_dis_thing,commomtable.admiss_days,commomtable.attending,commomtable.other_diag_name,commomtable.pathology_name,commomtable.poisoning_name,commomtable.is_oper from commomtable left join emr_apply_approve on commomtable.patient_id = emr_apply_approve.patient_id and emr_apply_approve.approve_state = 1 and emr_apply_approve.effe_time > GETDATE()-1 and emr_apply_approve.applyer = " +userName+ " and emr_apply_approve.apply_type != 3 left join emr_apply_approve emr_apply_approve1 on commomtable.patient_id = emr_apply_approve1.patient_id and emr_apply_approve1.approve_state = 1 and emr_apply_approve1.effe_time > GETDATE()-1 and emr_apply_approve1.applyer = " +userName+ " and emr_apply_approve1.apply_type = 3 left join emr_lock on commomtable.patient_id = emr_lock.patient_id and emr_lock.lock_state = 1 "; +*/ //定义查看详情的请求地址url function returnShowDetailUrl(patientId){ return path + '/commom/showRecord174?patientId=' + patientId; @@ -134,13 +131,6 @@ function freshTable(){ map1['align'] = 'center'; map1['formatter'] = 'AddFunctionAlty'; columns.push(map1) - var sql = $("#sql").val(); - if(sql == ''){ - sql = initSql; - } - var orderBys = $("#orderBys").val(); - sql += orderBys; - //console.log(sql) var flag = $("#showPrint").val(); //固定列标识 var mixFlag = false; @@ -176,7 +166,10 @@ function freshTable(){ url:path+'/template/cutomSearchTable',//排序方式 queryParams: function (params) { return{ - sql:sql, + selectSql:$("#englishFields").val(), + fromTableSql:$("#fromTableSql").val(), + whereSql:$("#whereSql").val(), + orderBys:$("#orderBys").val(), limit : params.limit, // 每页显示数量 offset : params.offset, // SQL语句起始索引 page : (params.offset / params.limit) + 1 //当前页码 @@ -295,9 +288,39 @@ function freshTable(){ } } }) - }, + } }) } +//导出excel功能 +function exportExcel() { + getChecked(); + var checks = $("#checks").val(); + if ($("#rows").val() > 5000 && checks == '') { + toastr.warning("数据量大,暂提供5000条以内数据导出!"); + } else { + var tableThNames = $("#tableThNames").val(); + var fieldCns = $("#fieldCns").val(); + if (checks != '') { + //按选择框选择导出 + checks = checks.substring(0, checks.length - 1); + var whereSql = ' WHERE ' + commomtable + '.patient_id IN (' + checks + ')'; + var url = path + "/template/exportExcel"; + post(url, {"selectSql": $("#englishFields").val(),"whereSql":whereSql,"tableThNames": tableThNames, "fieldCns": fieldCns}); + } else { + getSql(); + Common.confirm({ + title: "提示", + message: "没有选中,您确定要按搜索栏条件导出?", + operate: function (reselt) { + if (reselt) { + var url = path + "/template/exportExcel"; + post(url, {"selectSql": $("#englishFields").val(),"fromTableSql":$("#fromTableSql").val(),"whereSql":$("#whereSql").val(),"orderBys":$("#orderBys").val(),"tableThNames": tableThNames, "fieldCns": fieldCns}); + } + } + }) + } + } +} function btn(){ var url = path + "/printInfoList/pageUI174"; window.location.href = url;