Index: ssts-web/src/main/webapp/disinfectsystem/config/dgszyy/print/printConfig.js =================================================================== diff -u -r14958 -r14971 --- ssts-web/src/main/webapp/disinfectsystem/config/dgszyy/print/printConfig.js (.../printConfig.js) (revision 14958) +++ ssts-web/src/main/webapp/disinfectsystem/config/dgszyy/print/printConfig.js (.../printConfig.js) (revision 14971) @@ -257,7 +257,7 @@ // 页眉名称 //{label : "东莞市中医院", dataIndex : '', fontSize : 10, position : ["5","1%","90%",5]}, // 标题 - {label : "东莞市中医院卫生材料出库单", dataIndex : '', fontSize : 15, position : ["5","32%","99%",5]}, + {label : "东莞市中医院供应室材料出库单", dataIndex : '', fontSize : 15, position : ["5","32%","99%",5]}, {label : "科室:", dataIndex : 'depart', fontSize : 11, position : ["30","2%","90%",5]}, {label : "备注:", dataIndex : 'remark2', fontSize : 11, position : ["30","25%","90%",5]}, {label : "记账日期:", dataIndex : 'sendTime', fontSize : 11, position : ["30","58%","90%",5]}, @@ -784,6 +784,64 @@ } ] } +/** + * 获取大标签中材料的字体大小。需要根据记录数计算大小,同时要考虑材料的名称,如果当前字体下,名称太长导致换行,则认为行数增加 + * @param materials 所有需要打印的材料 + * @param cols 材料的列数 如:名称 数量 名称 数量,这种情况下,cols为2,指一行的记录数 + */ +function getMaterialsFontSize_largeLabel(materials,cols){ + /** + * 计算材料名称列的行数(包括名称和规格) + */ + var nameRows = function(material){ + var temp = material.name; + // 不打印材料 + if (material.specification != null && material.specification != ""){ + temp += "[" + material.specification + "]"; + } + + var nameMaxLenthPerLine = 8; + return Math.ceil(temp.length / nameMaxLenthPerLine) ; // 向上取整 + } + + var materialsAmount = materials.length; + var fontSize = 10; + var rows = Math.ceil(materialsAmount / cols) ; // 向上取整 + var addTotalRow = 0; + for(var row = 0; row < rows;++row){ + + var addRow = 0; + var index = cols * row; + while(index < cols*(row + 1)){ + if(index < materialsAmount){ + var addRow2 = nameRows(materials[index]); + addRow = (addRow > addRow2)?addRow:addRow2; + } + ++index; + } + addRow = addRow < 1?1:addRow; //至少有一行 + addTotalRow += (addRow - 1); + } + rows += addTotalRow; + if ( rows >= 23){ + fontSize = 5; + }else if(rows >= 18){ + fontSize = 6; + } + else if (rows >= 12){ + fontSize = 7; + } + else if (rows >= 10){ + fontSize = 8; + }else if (rows >= 8){ + fontSize = 9; + }else if (rows >= 6){ + fontSize = 10; + }else if (rows >= 4){ + fontSize = 11; + } + return fontSize; +} //构造表格 function getMaterialsTabHtml_largeLabel(tousse){ //绘制材料明细表格 @@ -800,58 +858,120 @@ var materialsAmount = materials.length; if(materials != null && materialsAmount > 0){ var materialStr = ""; - var fontSize = 10; - var rows = Math.ceil(materialsAmount / 3) ; // 向上取整 - if ( rows > 13){ - fontSize = 8; - } - else if (rows >= 12){ - fontSize = 9; - } - else if (rows >= 10){ - fontSize = 10; - }else if (rows >= 8){ - fontSize = 10; - }else if (rows >= 6){ - fontSize = 10; - }else if (rows >= 4){ - fontSize = 10; - } + var cols = 3; + var fontSize = getMaterialsFontSize_largeLabel(materials,cols); // alert(fontSize) + materialStr += "名称"; + materialStr += "数量"; + materialStr += "名称"; + materialStr += "数量"; + materialStr += "名称"; + materialStr += "数量"; + materialStr += "#;"; for (var i=0;i" + temp + " x " + material.count + ""; + if (material.specification != null && material.specification != ""){ + temp += "[" + material.specification + "]"; + } + materialStr += "" + temp + ""; + materialStr += "" + material.count + ""; } - if (materialsAmount % 3 != 0) { - for (var i = 0; i < (3 - materialsAmount % 3); i++) { + if (materialsAmount % cols != 0) { + for (var i = 0; i < (cols - materialsAmount % cols); i++) { materialStr += (""); } } if (materialStr.length > 0) { - materialsTab += ""; + materialsTab += "
"; var materialArray = materialStr.split("#;"); for (var i=0; i"; } materialsTab += "
"; } } -// alert(materialsTab) + //alert(materialsTab) return materialsTab; } + +////构造表格 +//function getMaterialsTabHtml_largeLabel(tousse){ +// //绘制材料明细表格 +// var markTousse = tousse['markTousse']; +// var materials = tousse.materials; +// // 打印材料明细 +// var materialsTab = ""; +// var borderSize = 0; +// +// if(markTousse){ +// borderSize = 1; +// } +// +// var materialsAmount = materials.length; +// if(materials != null && materialsAmount > 0){ +// var materialStr = ""; +// var fontSize = 10; +// var rows = Math.ceil(materialsAmount / 3) ; // 向上取整 +// if ( rows > 13){ +// fontSize = 8; +// } +// else if (rows >= 12){ +// fontSize = 9; +// } +// else if (rows >= 10){ +// fontSize = 10; +// }else if (rows >= 8){ +// fontSize = 10; +// }else if (rows >= 6){ +// fontSize = 10; +// }else if (rows >= 4){ +// fontSize = 10; +// } +//// alert(fontSize) +// for (var i=0;i" + temp + " x " + material.count + ""; +// } +// if (materialsAmount % 3 != 0) { +// for (var i = 0; i < (3 - materialsAmount % 3); i++) { +// materialStr += (""); +// } +// } +// +// if (materialStr.length > 0) { +// materialsTab += ""; +// var materialArray = materialStr.split("#;"); +// for (var i=0; i"; +// } +// materialsTab += "
"; +// } +// +// } +//// alert(materialsTab) +// return materialsTab; +//} function printLargeLabelForeignProxyDisinfection(obj){ doGetLodop(); // 设置默认字体 @@ -897,40 +1017,118 @@ function printLargeLabel(obj){ doGetLodop(); // 设置默认字体 - setDefaultFontNameSizeBold('宋体',10,1); + setDefaultFontNameSizeBold('宋体',12,1); // 默认条码属性 LODOP.SET_PRINT_STYLE('ShowBarText', true); LODOP.SET_PRINT_STYLE('FontSize', 6); LODOP.SET_PRINT_STYLE('NotOnlyHighPrecision', true); - LODOP.ADD_PRINT_TEXT("1mm","0mm","RightMargin:0mm","BottomMargin:0mm", obj.name); - setFontSizeBold(11,1);// 设置字体 + var departAndName = obj.department+'-'+obj.name + var fontSize = getFontSizeByStr(departAndName,[ + {maxLen:10,fontSize:10}, + {maxLen:20,fontSize:8}, + {maxLen:1000,fontSize:6} + ]); + LODOP.ADD_PRINT_TEXT("1mm","0mm","RightMargin:0mm","6mm", departAndName); + setFontSizeBold(fontSize,1);// 设置字体 setAlignment('center');// 对齐 - LODOP.ADD_PRINT_TEXT("6mm","5mm","50mm","10px", "装配员:"+obj.operator); - LODOP.ADD_PRINT_TEXT("6mm","55mm","50mm","10px", "审核员:"+obj.reviewer); - LODOP.ADD_PRINT_TEXT("10mm","5mm","50mm","10px", "灭菌日期:"+obj.sterilizationDate); - LODOP.ADD_PRINT_TEXT("10mm","55mm","50mm","10px", "失效日期:"+obj.validDate); + LODOP.ADD_PRINT_TEXT("7mm","5mm","43mm","5mm", "灭菌日期:"+obj.sterilizationDate); + setFontSizeBold(8,0);// 设置字体 + LODOP.ADD_PRINT_TEXT("7mm","49mm","43mm","5mm", "有效日期:"+obj.validDate); + setFontSizeBold(8,0);// 设置字体 + var s2 = '清洗/核对/包装/灭菌:'+obj.washOperator+'/'+obj.reviewer + '/'+obj.operator+'/'+emptyStringIfUndefinedOrNull(obj.sterilizationUser); + LODOP.ADD_PRINT_TEXT("12mm","5mm","77mm","5mm", s2); + setFontSizeBold(8,0);// 设置字体 + + LODOP.ADD_PRINT_TEXT("12mm","60mm","RightMargin:0mm","5mm", "灭菌程序:"+obj.sterilingType); + setFontSizeBold(8,0);// 设置字体 + // 打印表格 var tableStr = getMaterialsTabHtml_largeLabel(obj); - addPrintTable(tableStr,"14mm","0mm","RightMargin:0mm","42mm"); - setAlignment('center');// 居中对齐 + addPrintTable(tableStr,"17mm","0mm","RightMargin:0mm","34mm"); + setAlignment('center');// 居中对齐 - LODOP.ADD_PRINT_TEXT("58mm","0mm","RightMargin:50mm","BottomMargin:0mm", "灭菌程序:"+obj.sterilingType); - setFontSizeBold(11,1);// 设置字体 - setAlignment('center');// 居中对齐 - LODOP.ADD_PRINT_TEXT("67mm","0mm","RightMargin:50mm","BottomMargin:0mm", obj.name); - setFontSizeBold(11,1);// 设置字体 - setAlignment('center');// 居中对齐 - LODOP.ADD_PRINT_TEXT("67mm","50mm","RightMargin:0mm","BottomMargin:0mm", obj.name); - setFontSizeBold(11,1);// 设置字体 - setAlignment('center');// 居中对齐 + LODOP.ADD_PRINT_BARCODE("51mm","2mm","45mm","10mm","128Auto", obj.barcode);// 条码1 + LODOP.SET_PRINT_STYLEA(0,'ShowBarText', true); +// LODOP.ADD_PRINT_TEXT("23mm","31mm","30mm","6mm", obj.barcode); +// setFontSizeBold(10,0);// 设置字体 - LODOP.ADD_PRINT_BARCODE("57mm","55mm","40mm","8mm","128Auto", obj.barcode);// 条码1 - LODOP.ADD_PRINT_BARCODE("71mm","5mm","40mm","8mm","128Auto", obj.barcode);// 条码2 - LODOP.ADD_PRINT_BARCODE("71mm","55mm","40mm","8mm","128Auto", obj.barcode);// 条码3 + LODOP.ADD_PRINT_BARCODE("51mm","50mm","45mm","10mm","128Auto", obj.barcode);// 条码2 + LODOP.SET_PRINT_STYLEA(0,'ShowBarText', true); +// LODOP.ADD_PRINT_TEXT("29mm","31mm","30mm","6mm", obj.barcode); +// setFontSizeBold(10,0);// 设置字体 + } + +//外来器械包大标签(97x70) +function printForeignTousseLargeLabel_dgszyy(obj){ + doGetLodop(); + + // 划线 +// if(obj.markTousse){ +// LODOP.ADD_PRINT_LINE('7mm','0mm','7mm','61mm',0,1); +// LODOP.ADD_PRINT_LINE('16mm','0mm','16mm','61mm',0,1); +// } + // 设置默认字体 + setDefaultFontNameSizeBold('宋体',12,1); + // 默认条码属性 + LODOP.SET_PRINT_STYLE('ShowBarText', true); + LODOP.SET_PRINT_STYLE('FontSize', 6); + LODOP.SET_PRINT_STYLE('NotOnlyHighPrecision', true); + var departAndName = obj.department+'-'+obj.name + var fontSize = getFontSizeByStr(departAndName,[ + {maxLen:10,fontSize:10}, + {maxLen:20,fontSize:8}, + {maxLen:1000,fontSize:6} + ]); + + + + LODOP.ADD_PRINT_TEXT("8mm","15mm","33mm","7mm", "手术间:" + obj.operationRoom); + setFontSizeBold(15,1);// 设置字体 +// setAlignment('left');// 对齐 + + LODOP.ADD_PRINT_TEXT("10mm","49mm","43mm","5mm", "住院号:"+obj.hospitalNumber); + setFontSizeBold(8,0);// 设置字体 + LODOP.ADD_PRINT_TEXT("15mm","5mm","43mm","5mm", "科室:"+obj.depart); + setFontSizeBold(8,0);// 设置字体 + LODOP.ADD_PRINT_TEXT("15mm","49mm","43mm","5mm", "患者:"+obj.patient); + setFontSizeBold(8,0);// 设置字体 + LODOP.ADD_PRINT_TEXT("20mm","5mm","RightMargin:0mm","5mm", "器械名称:"+obj.nameWithoutPartInfo); + setFontSizeBold(8,0);// 设置字体 + + LODOP.ADD_PRINT_TEXT("25mm","5mm","43mm","5mm", "厂家:"+obj.supplierName); + setFontSizeBold(8,0);// 设置字体 + LODOP.ADD_PRINT_TEXT("25mm","49mm","43mm","5mm", "包编号:"+obj.splitPackagesAmount + '-' + obj.packageNumber); + setFontSizeBold(8,0);// 设置字体 + + LODOP.ADD_PRINT_TEXT("30mm","5mm","43mm","5mm", "灭菌日期:"+obj.sterilizationDate); + setFontSizeBold(8,0);// 设置字体 + LODOP.ADD_PRINT_TEXT("30mm","49mm","43mm","5mm", "有效日期:"+obj.validDate); + setFontSizeBold(8,0);// 设置字体 + + var s2 = '清洗/核对/包装/灭菌:'+obj.washOperator+'/'+obj.reviewer + '/'+obj.operator+'/'+emptyStringIfUndefinedOrNull(obj.sterilizationUser); + LODOP.ADD_PRINT_TEXT("36mm","5mm","77mm","5mm", s2); + setFontSizeBold(8,0);// 设置字体 + + LODOP.ADD_PRINT_BARCODE("51mm","2mm","45mm","10mm","128Auto", obj.barcode);// 条码1 + LODOP.SET_PRINT_STYLEA(0,'ShowBarText', true); +// LODOP.ADD_PRINT_TEXT("23mm","31mm","30mm","6mm", obj.barcode); +// setFontSizeBold(10,0);// 设置字体 + + LODOP.ADD_PRINT_BARCODE("51mm","50mm","45mm","10mm","128Auto", obj.barcode);// 条码2 + LODOP.SET_PRINT_STYLEA(0,'ShowBarText', true); +// LODOP.ADD_PRINT_TEXT("29mm","31mm","30mm","6mm", obj.barcode); +// setFontSizeBold(10,0);// 设置字体 +} + +//外来器械包大标签(97x70) +var foreignTousseLargeLabelConfig = { + customPrint:printForeignTousseLargeLabel_dgszyy +} + //小标签配置,50x30mm var smallLabelConfig = { customPrint:printSmallLabel_dgszyy @@ -1411,6 +1609,8 @@ foreignProxyDisinfectionLabel : foreignProxyDisinfectionLabelConfig, // 外部代理灭菌大标签标签 largeLabel_foreignProxyDisinfection:largeLabel_foreignProxyDisinfectionConfig, + // 外来器械包大标签 + foreignTousseLargeLabel:foreignTousseLargeLabelConfig, //外来器械申请单 foreignTousseAppliation : foreignTousseAppliationPrintConfig, // 标识牌 Index: ssts-web/src/main/webapp/disinfectsystem/common/cssdUtils.js =================================================================== diff -u -r14702 -r14971 --- ssts-web/src/main/webapp/disinfectsystem/common/cssdUtils.js (.../cssdUtils.js) (revision 14702) +++ ssts-web/src/main/webapp/disinfectsystem/common/cssdUtils.js (.../cssdUtils.js) (revision 14971) @@ -150,7 +150,7 @@ 'labelType':foreignDefaultLabelpaper,'doctor':foreignTousseAppInfo.doctor,'patient':foreignTousseAppInfo.patient,'surgery':foreignTousseAppInfo.surgery,'operationTime':foreignTousseAppInfo.operationTime, 'implantAmount':implantAmount,'supplierName':foreignTousseAppInfo.supplierName,'splitPackagesAmount':foreignTousseAppInfo.splitPackagesAmount,'patientArea':foreignTousseAppInfo.patientArea, 'bedNumber':foreignTousseAppInfo.bedNumber,'depart':foreignTousseAppInfo.ascriptionDepartment,'hospitalNumber': foreignTousseAppInfo.hospitalNumber,'clinicNumber': foreignTousseAppInfo.clinicNumber,'ascriptionDepartment':foreignTousseAppInfo.ascriptionDepartment, - 'packageTypeAbbreviation':packageTypeAbbreviation,'applicationItemTotal':foreignTousseAppInfo.applicationItemTotal + 'packageTypeAbbreviation':packageTypeAbbreviation,'applicationItemTotal':foreignTousseAppInfo.applicationItemTotal,'operationRoom':foreignTousseAppInfo.operationRoom }; printSummaryObj.washOperator = tousseObj.washOperator; printSummaryObj.tousseType = tousseObj.tousseType; Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js =================================================================== diff -u -r14920 -r14971 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 14920) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseInfoForm.js (.../foreignTousseInfoForm.js) (revision 14971) @@ -82,6 +82,7 @@ top.Ext4.getCmp('surgery').setValue(patientInfo.operation); top.Ext4.getCmp('operationTime').setValue(patientInfo.operationTime); top.Ext4.getCmp('ascriptionDepartment').setValue(patientInfo.ascriptionDepartment); + top.Ext.getCmp('operationRoom').setValue(patientInfo.opRoomId); } function getSupplierName(){ @@ -1251,15 +1252,20 @@ width : 730, layout : 'hbox', flex : 1, - items : [ - { + items : [{ + xtype : 'textfield', + fieldLabel : '手术间', + id : 'operationRoom', + name : 'operationRoom', + allowBlank : true, + flex : .33 + },{ xtype : 'textfield', fieldLabel : '备注', id : 'remark', name : 'remark', - flex : 1 - } - ] + flex : .67 + }] } ] } , @@ -1360,6 +1366,7 @@ processTypeComp.forceSelection = false; processTypeComp.setValue(processType); processTypeComp.forceSelection = true; + top.Ext4.getCmp("operationRoom").setValue(action.result.data.operationRoom); var operationTime = action.result.data.operationTime; if(operationTime != ""){ Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/foreigntousseapplication/ForeignTousseApplication.java =================================================================== diff -u -r14896 -r14971 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/foreigntousseapplication/ForeignTousseApplication.java (.../ForeignTousseApplication.java) (revision 14896) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/foreigntousseapplication/ForeignTousseApplication.java (.../ForeignTousseApplication.java) (revision 14971) @@ -2,10 +2,13 @@ import java.util.Date; import java.util.List; + import javax.persistence.Entity; import javax.persistence.Transient; + import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; + import com.forgon.Constants; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; @@ -44,6 +47,8 @@ private String patientSex;//病人性别 private String doctor;// 医生 + + private String operationRoom;//手术间 private String surgery;// 手术名称,标准名称:operation,surgery是外科手术 @@ -162,6 +167,14 @@ this.doctor = doctor; } + public String getOperationRoom() { + return operationRoom; + } + + public void setOperationRoom(String operationRoom) { + this.operationRoom = operationRoom; + } + public String getSurgery() { return surgery; } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r14922 -r14971 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 14922) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 14971) @@ -225,6 +225,7 @@ obj.put("implantAmount", implantsAmount); obj.put("surgery", app.getSurgery()); obj.put("operationTime", app.getOperationTimeString()); + obj.put("operationRoom", app.getOperationRoom()); obj.put("toolsAmount", toolsAmount); obj.put("patientArea", patientArea); obj.put("bedNumber", bedNumber);