Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java =================================================================== diff -u -r16285 -r16298 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 16285) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 16298) @@ -451,7 +451,14 @@ StrutsResponseUtils.output(jsonStr); } + public void getTousseInstanceByIdsForPrint() { + String ids = StrutsParamUtils.getPraramValue( + "ids", ""); + JSONArray jsonArray = packingManager.getTousseInstanceByIdsForPrint(ids); + StrutsResponseUtils.output(jsonArray); + } + public void materialSupplement() { String msg = "器械补充成功!"; Index: ssts-web/src/main/webapp/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.jsp =================================================================== diff -u -r16183 -r16298 --- ssts-web/src/main/webapp/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.jsp (.../tousseInstanceView.jsp) (revision 16183) +++ ssts-web/src/main/webapp/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.jsp (.../tousseInstanceView.jsp) (revision 16298) @@ -1,11 +1,21 @@ <%@ page contentType="text/html; charset=UTF-8"%> <%@ include file="/common/taglibs.jsp"%> <%@page import="com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance"%> - +<%@page import="com.forgon.disinfectsystem.entity.basedatamanager.supplier.Supplier,com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig"%> +<%@page import="com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager"%> <%@ include file="/common/includeExtJsAndCss.jsp"%> +<%@ include file="/common/includeExtJs4_2.jsp"%> +<% + SupplyRoomConfigManager supplyRoomConfigManager = (SupplyRoomConfigManager)SpringBeanManger.getBean("supplyRoomConfigManager"); + LoginUserData loginUser = AcegiHelper.getLoginUser(); + SupplyRoomConfig syscfg = supplyRoomConfigManager.getSystemParamsObj(); + + request.setAttribute("hospitalName", loginUser.getHospitalName()); + request.setAttribute("foreignDefaultLabelpaper", syscfg.getBarcodePaperType()); +%> + + + + + +<%@ include file="/disinfectsystem/print/print.jsp"%> + + + 器械包实体信息 + + + Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r16285 -r16298 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 16285) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 16298) @@ -666,6 +666,134 @@ } return array.toString(); } + + + public JSONArray getTousseInstanceByIdsForPrint(String ids) { + JSONArray array = new JSONArray(); + String sql = String.format(" where po.id in(%s)",ids); + List tousseList = tousseInstanceManager.getTousseInstanceBySql(sql); + if(tousseList != null){ + SupplyRoomConfig supplyRoomConfigParams = supplyRoomConfigManager.getSystemParamsObj(); + boolean isPrintUserName = supplyRoomConfigParams.isPrintUserFullName(); + for (TousseInstance tousseInstance : tousseList) { + TousseDefinition td = tousseInstance.getTousseDefinition(); + if(td == null){ + throw new RuntimeException(String.format("%s的包定义为空!", tousseInstance.getTousseName())); + } + JSONObject tdJson = new JSONObject(); + if(TousseDefinition.STR_YES.equals(td.getIsPrint()) && TousseDefinition.STR_YES.equals(td.getIsPrintMaterialForPacking())){ + tdJson = getTousseDefinitionJson(td); + } + JSONArray subBarcodeArray = new JSONArray(); + subBarcodeArray.add(tousseInstance.getBarcode()); + + JSONArray subVirtualSeqNumArray = new JSONArray(); + subVirtualSeqNumArray.add(tousseInstance.getVirtualBasketSeqNum()); + String tousseType = td.getTousseType(); + String packageType = tousseInstance.getPackageType(); + String packageTypeAbbreviation = TousseInstanceUtils.getPackageTypeAbbreviation(objectDao, packageType); + String sterilingType = tousseInstance.getSterilingType(); + String sterilizerName = tousseInstance.getSterilizerName(); + String sterileFrequency = tousseInstance.getSterileFrequency(); + String operator = tousseInstance.getOperator(); + String operatorCode = tousseInstance.getOperatorCode(); + String reviewer = tousseInstance.getReviewer(); + String reviewerCode = tousseInstance.getReviewerCode(); + String sterileUserName = tousseInstance.getSterilizationUser(); + String sterileUserCode = tousseInstance.getSterilizationUserCode(); + Date sterileStartTime = TousseInstanceUtils.safelyGetSterileStartDate(tousseInstance); + if(sterileStartTime == null){ + throw new RuntimeException(String.format("%s的灭菌时间为空!", tousseInstance.getTousseName())); + } + String validUntilDateToPrint = ""; + String sterileDateToPrint = ""; + boolean markTousse = false; + + // 失效期和预警期计算 + JSONObject expirationObj = expirationDateInfoManager + .getExpirationDate(sterileStartTime.getTime() + "", packageType); + + boolean isDefined = expirationObj.optBoolean("isDefined"); + if (isDefined){ + validUntilDateToPrint = expirationObj.optString("expirationDate"); + sterileDateToPrint = expirationObj.optString("sterileDate"); + markTousse = expirationObj.optBoolean("markTousse"); + } + Date packingDate = tousseInstance.getOperationTime(); + boolean isDisinfectionGoods = td.isDisinfection(); + boolean isDisinfectionGoodsPrintExpirationDate = false; + boolean isPrint = true; + boolean isPrintOrg = false; + boolean isTraceable = true; + boolean isReview = true; + // 如果该器械包为不追溯并且为器械包,则将该器械包设置为已审核状态并设为不打印标签 + if (TousseDefinition.STR_NO.equals(td.getIsPrint())) { + isPrint = false; + } + // 如果器械包定义设置不审核,则将对应的变量设置为false + if (TousseDefinition.STR_NO.equals(td.getIsReview())) { + isReview = false; + } + // 如果该器械包为不追溯并且为器械包,则将该器械包设置为已审核状态并设为不打印标签 + if (TousseDefinition.STR_NO.equals(td.getIsPrint())) { + isTraceable = false; + } else { + if (TousseDefinition.STR_NO.equals(td + .getIsTraceable())) { + isTraceable = false; + } + if(TousseDefinition.STR_YES.equals(td.getIsPrint()) && TousseDefinition.STR_YES.equals(td.getIsPrintOrg())){ + isPrintOrg = true; + } + } + String isBigPackage = "否"; + String fixedBarcode = ""; + if (!isTraceable) { + fixedBarcode = tousseInstanceManager + .getTousseDefinitionFixedBarcode(td.getAncestorID()); + } + JSONArray materialsJsonArray = new JSONArray(); // 消毒物品明细 + if (td.isDisinfection()) { + materialsJsonArray = tousseDefinitionManager.getMaterialsOfDisinfectionGoods(td, true); + } + long foreignTousseAppId = 0; + Long foreignTousseApp_id = tousseInstance.getForeignTousseApp_id(); + if(foreignTousseApp_id != null){ + foreignTousseAppId = foreignTousseApp_id; + } + String supplierName = ""; + + if (TousseDefinition.PACKAGE_TYPE_FOREIGN + .equals(tousseType)) { + supplierName = td.getSupplierName(); + } + String department = tousseInstance.getDepart(); + Long idCardDefinitionUseAmount = getIDCardDefinitionUseAmount(tousseInstance.getIdCardInstanceID()); + JSONObject toolAndImplantAmount = tousseDefinitionManager.getToolAndImplantAmount(td); + JSONObject obj = CssdUtils.getTousseObjForPrint( + td.getName(), tdJson, subBarcodeArray, subVirtualSeqNumArray, tousseType, + packageType,packageTypeAbbreviation, sterilingType, + sterilizerName, sterileFrequency, + isPrintUserName, + operator, operatorCode, reviewer, reviewerCode,sterileUserName,sterileUserCode, + validUntilDateToPrint, + sterileDateToPrint, + markTousse, + packingDate, + isDisinfectionGoods, + isDisinfectionGoodsPrintExpirationDate, + isPrint, isReview, isTraceable, isBigPackage, + fixedBarcode, materialsJsonArray, + foreignTousseAppId,supplierName, + toolAndImplantAmount.optInt("toolAmount"), + toolAndImplantAmount.optInt("implantAmount"),department, + isPrintOrg,idCardDefinitionUseAmount,objectDao,td.getBarcodePaperType(),tousseInstance.getWashOperator(),tousseInstance.getWashOperatorCode(), + tousseInstance.getWeight(),td.getPrintAmount()); + array.add(obj); + } + } + return array; + } /** * @param packingRecord Index: ssts-web/src/main/webapp/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.js =================================================================== diff -u -r16250 -r16298 --- ssts-web/src/main/webapp/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.js (.../tousseInstanceView.js) (revision 16250) +++ ssts-web/src/main/webapp/disinfectsystem/toussemanager/tousseinstancemanager/tousseInstanceView.js (.../tousseInstanceView.js) (revision 16298) @@ -399,6 +399,41 @@ + frequency + "&tousseName=" + tousseName; } + }, + { + text : '打印', +// iconCls : 'Cancel', + hidden:SSTS_HistoryPacking_Update, + handler : function() { + var selectionModel = grid.getSelectionModel(); + var selections = []; + if(!selectionModel.hasSelection()){ + showResult("未选中任何记录!"); + return; + }else{ + selectionModel.each(function(row){ + selections.push(row.data.id); + }); + if(selections.length>0){ + var ids = selections.join(','); + Ext.MessageBox.wait('正在请求数据,请稍候……', '请等待'); + Ext.Ajax.request({ + url : WWWROOT + '/disinfectSystem/packingAction!getTousseInstanceByIdsForPrint.do', + params : {ids : ids}, + success : function(response, options) { +// showResult("废弃成功!"); +// grid.dwrReload(); + hideMessageBox(false); + var tousseesToPrint = Ext.decode(response.responseText); + doPrintLabels(tousseesToPrint); + }, + failure : function(response, options) { + hideMessageBox(false); + } + }); + } + } + } }]; Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java =================================================================== diff -u -r16285 -r16298 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 16285) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 16298) @@ -64,6 +64,7 @@ public String loadTousseByPackingRecord(String packingRecordId); public String loadTousseByIds(String ids); + public JSONArray getTousseInstanceByIdsForPrint(String ids); /** * Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java =================================================================== diff -u -r16183 -r16298 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 16183) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 16298) @@ -42,6 +42,8 @@ import com.forgon.timeout.model.TimeoutSetting; import com.forgon.timeout.service.TimeoutManager; import com.forgon.tools.SqlBuilder; +import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.StrutsResponseUtils; import com.forgon.tools.date.DateTools; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; @@ -663,4 +665,9 @@ public String getPackageTypeAbbreviation(String packageType){ return TousseInstanceUtils.getPackageTypeAbbreviation(objectDao, packageType); } + + public String getTousseInstanceByIdsForPrint(String ids) { + JSONArray jsonArray = packingManager.getTousseInstanceByIdsForPrint(ids); + return jsonArray.toString(); + } }