Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/tousseForm.js =================================================================== diff -u -r17273 -r17279 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/tousseForm.js (.../tousseForm.js) (revision 17273) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/tousse/tousseForm.js (.../tousseForm.js) (revision 17279) @@ -2153,7 +2153,7 @@ var spelling = top.Ext.getCmp('spelling').getValue(); if ((orginalName && orginalName != name && orginalSpelling == spelling) - || TousseName) { //(修改操作操作,并且修改了名字,并且没有手动修改过拼音码)或者(另存为新的器械包操作),则清空让后台自动生成 + || TousseName) { //(修改操作,并且修改了名字,并且没有手动修改过拼音码)或者(另存为新的器械包操作),则清空让后台自动生成 top.Ext.getCmp('spelling').setValue(''); } @@ -2190,6 +2190,9 @@ top.Ext.getCmp('id').setValue(null); top.Ext.getCmp('name').setValue(TousseName); } + /** + * 注意,由于Extjs会把被disable的表单控件不作为请求的参数,所以提交之前先enable这些被禁用的表单控件,达到“所见即所得”的效果 + */ top.Ext.getCmp('isPrint').enable(); top.Ext.getCmp('isTraceable').enable(); top.Ext.getCmp('isReview').enable(); Index: ssts-web/src/main/java/com/forgon/disinfectsystem/systemwarning/action/SystemWarningAction.java =================================================================== diff -u -r17214 -r17279 --- ssts-web/src/main/java/com/forgon/disinfectsystem/systemwarning/action/SystemWarningAction.java (.../SystemWarningAction.java) (revision 17214) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/systemwarning/action/SystemWarningAction.java (.../SystemWarningAction.java) (revision 17279) @@ -1,6 +1,9 @@ package com.forgon.disinfectsystem.systemwarning.action; import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; import java.util.Date; import java.util.List; @@ -14,11 +17,13 @@ import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; +import org.apache.commons.collections.iterators.ArrayListIterator; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; + import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.vo.LoginUserData; @@ -31,6 +36,7 @@ import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.string.StringTools; import com.forgon.tools.util.ForgonDateUtils; +import com.forgon.tools.util.SqlUtils; /** * @author wangyi @@ -85,52 +91,60 @@ * 获取需要告警器械包,并且导出的excel文件 */ public void exportTousseWarningInfo() { - String startTime = StrutsParamUtils.getPraramValue("startTime", ""); - String endTime = StrutsParamUtils.getPraramValue("endTime", ""); - String warningType = StrutsParamUtils.getPraramValue("warningType", ""); - String departmentCode = StrutsParamUtils.getPraramValue("department", ""); - - LoginUserData loginUserData = AcegiHelper.getLoginUser(); - String currentOrgUnitCode = loginUserData.getCurrentOrgUnitCode(); //登录用户当前科室编码 - + String ids = StrutsParamUtils.getPraramValue("ids", ""); StringBuilder sqlBuilder = new StringBuilder("WHERE 1=1 "); - if (supplyRoomConfigManager.isFirstSupplyRoomOrgUnit(currentOrgUnitCode)){ - if(StringUtils.isNotBlank(departmentCode)){ //指定想要查看的科室 - sqlBuilder.append(String.format(" AND po.location = '%s'", departmentCode)); + if (StringTools.isNotBlank(ids)) { + String temp = SqlUtils.getNonStringFieldInCollectionsPredicate("po.id", Arrays.asList(ids.split(";"))); + sqlBuilder.append("AND " + temp); + } else { + String startTime = StrutsParamUtils.getPraramValue("startTime", ""); + String endTime = StrutsParamUtils.getPraramValue("endTime", ""); + String warningType = StrutsParamUtils.getPraramValue("warningType", ""); + String departmentCode = StrutsParamUtils.getPraramValue("department", ""); + + LoginUserData loginUserData = AcegiHelper.getLoginUser(); + String currentOrgUnitCode = loginUserData.getCurrentOrgUnitCode(); //登录用户当前科室编码 + + + if (supplyRoomConfigManager.isFirstSupplyRoomOrgUnit(currentOrgUnitCode)){ + if(StringUtils.isNotBlank(departmentCode)){ //指定想要查看的科室 + sqlBuilder.append(String.format(" AND po.location = '%s'", departmentCode)); + sqlBuilder.append(" AND " + + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, + TousseInstance.STATUS_SHIPPED, + TousseInstance.STATUS_SIGNED)); + } else { + sqlBuilder.append(String.format(" AND po.orgUnitCoding = '%s'", currentOrgUnitCode)); + sqlBuilder.append(" AND " + + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, + TousseInstance.STATUS_STERILED, + TousseInstance.STATUS_RETURNED)); + } + } else { + sqlBuilder.append(String.format(" AND po.location = '%s' ", currentOrgUnitCode)); sqlBuilder.append(" AND " + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, TousseInstance.STATUS_SHIPPED, TousseInstance.STATUS_SIGNED)); - } else { - sqlBuilder.append(String.format(" AND po.orgUnitCoding = '%s'", currentOrgUnitCode)); - sqlBuilder.append(" AND " - + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, - TousseInstance.STATUS_STERILED, - TousseInstance.STATUS_RETURNED)); } - } else { - sqlBuilder.append(String.format(" AND po.location = '%s' ", currentOrgUnitCode)); - sqlBuilder.append(" AND " - + SqlBuilder.build_IN_Statement("po.status", SqlBuilder.IN, - TousseInstance.STATUS_SHIPPED, - TousseInstance.STATUS_SIGNED)); + Date now = new Date(); + switch (warningType) { + case SystemWarningItemVO.WARNING_TYPE_DISABLED_TOUSSE: + sqlBuilder.append(" AND po.validUntil < " + dateQueryAdapter.dateAdapter(now)); + setQueryTime(sqlBuilder, "po.validUntil", startTime, endTime); + break; + case SystemWarningItemVO.WARNING_TYPE_TOUSSE: + sqlBuilder.append(" AND po.warningUntil < " + dateQueryAdapter.dateAdapter(now)); + sqlBuilder.append(" AND po.validUntil > " + dateQueryAdapter.dateAdapter(now)); + setQueryTime(sqlBuilder, "po.warningUntil", startTime, endTime); + break; + default: //默认显示已过期和即将过期的所有器械包 + sqlBuilder.append(" AND po.warningUntil < " + dateQueryAdapter.dateAdapter(now)); + setQueryTime(sqlBuilder, "po.warningUntil", startTime, endTime); + break; + } } - Date now = new Date(); - switch (warningType) { - case SystemWarningItemVO.WARNING_TYPE_DISABLED_TOUSSE: - sqlBuilder.append(" AND po.validUntil < " + dateQueryAdapter.dateAdapter(now)); - setQueryTime(sqlBuilder, "po.validUntil", startTime, endTime); - break; - case SystemWarningItemVO.WARNING_TYPE_TOUSSE: - sqlBuilder.append(" AND po.warningUntil < " + dateQueryAdapter.dateAdapter(now)); - sqlBuilder.append(" AND po.validUntil > " + dateQueryAdapter.dateAdapter(now)); - setQueryTime(sqlBuilder, "po.warningUntil", startTime, endTime); - break; - default: //默认显示已过期和即将过期的所有器械包 - sqlBuilder.append(" AND po.warningUntil < " + dateQueryAdapter.dateAdapter(now)); - setQueryTime(sqlBuilder, "po.warningUntil", startTime, endTime); - break; - } + sqlBuilder.append(" order by po.validUntil asc "); String sql = sqlBuilder.toString(); List tis = (List) objectDao.findBySql("TousseInstance", sql); Index: ssts-web/src/main/webapp/disinfectsystem/assestManagement/tousseGoods/tousseGoodsWarningView.js =================================================================== diff -u -r17226 -r17279 --- ssts-web/src/main/webapp/disinfectsystem/assestManagement/tousseGoods/tousseGoodsWarningView.js (.../tousseGoodsWarningView.js) (revision 17226) +++ ssts-web/src/main/webapp/disinfectsystem/assestManagement/tousseGoods/tousseGoodsWarningView.js (.../tousseGoodsWarningView.js) (revision 17279) @@ -157,6 +157,35 @@ }); } +/** + * 导出Excel表格(支持只打印用户选择的记录) + * @param grid + */ +function exportExcel(grid) { + var records = grid.getSelectionModel().getSelections(); + + if (grid.store.getCount() < 1) { + showResult('没数据!'); + } else if (records.length > 0) { //导出用户选择的记录 + var ids = ''; + for( var i=0; i