Index: ssts-web/src/main/webapp/disinfectsystem/config/cdlqyq1yy/print/printConfig.js =================================================================== diff -u -r18200 -r18205 --- ssts-web/src/main/webapp/disinfectsystem/config/cdlqyq1yy/print/printConfig.js (.../printConfig.js) (revision 18200) +++ ssts-web/src/main/webapp/disinfectsystem/config/cdlqyq1yy/print/printConfig.js (.../printConfig.js) (revision 18205) @@ -1219,7 +1219,7 @@ } var foreignTousseMiddleLableConfig = { - customPrint:printForeignTousseMiddleLable_gyey + customPrint:printForeignTousseMiddleLable_cdlqyq1yy } //function printForeignTousseMiddleLable_gyey(printSummaryObj){ @@ -1302,74 +1302,171 @@ // LODOP.ADD_PRINT_HTM(0,0,"100%","100%",""+tableHtml+""); // LODOP.SET_PRINT_MODE("PRINT_PAGE_PERCENT","Full-Page"); //} - -function printForeignTousseMiddleLable_gyey(obj){ - doGetLodop(); +/** + * 获取中标签中材料的字体大小。需要根据记录数计算大小,同时要考虑材料的名称,如果当前字体下,名称太长导致换行,则认为行数增加 + * @param materials 所有需要打印的材料 + * @param cols 材料的列数 如:名称 数量 名称 数量,这种情况下,cols为2,指一行的记录数 + */ +function getMaterialsFontSize_middleLabel(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) ; // 向上取整 + } - // 划线 - if(obj.markTousse){ - LODOP.ADD_PRINT_LINE('14mm','0mm','14mm','60mm',0,1); - LODOP.ADD_PRINT_LINE('40mm','0mm','40mm','60mm',0,1); + 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); } - // 设置默认字体 - setDefaultFontNameSizeBold('宋体',15,1); - // 默认条码属性 - LODOP.SET_PRINT_STYLE('ShowBarText', true); - LODOP.SET_PRINT_STYLE('FontSize', 6); - LODOP.SET_PRINT_STYLE('NotOnlyHighPrecision', true); + rows += addTotalRow; + if ( rows > 15){ + fontSize = 5; + }else if(rows > 13){ + 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 = 12; + }else{ + fontSize = 13; + } + return fontSize; +} +//构造表格 +function getMaterialsTabHtml_foreignTousseMiddleLable(tousse){ + //绘制材料明细表格 + var markTousse = tousse['markTousse']; + var materials = tousse.materials; + // 打印材料明细 + var materialsTab = ""; + var borderSize = 0; - var fontSize = getFontSizeByStr(obj.name,[ - {maxLen:10,fontSize:14}, - {maxLen:15,fontSize:12}, - {maxLen:20,fontSize:10}, - {maxLen:30,fontSize:9}, - {maxLen:40,fontSize:7}, - {maxLen:1000,fontSize:5} - ]); - LODOP.ADD_PRINT_TEXT("2mm","0mm","RightMargin:0mm","12mm", obj.name); + if(markTousse){ + //borderSize = 1; + } + + var materialsAmount = materials.length; + if(materials != null && materialsAmount > 0){ + var materialStr = ""; + var fontSize = getMaterialsFontSize_middleLabel(materials,2); +// alert(fontSize) + materialStr += "名称"; + materialStr += "数量"; + materialStr += "名称"; + materialStr += "数量"; + materialStr += "#;"; + for (var i=0;i" + temp + ""; + materialStr += "" + material.count + ""; + } + if (materialsAmount % 2 != 0) { + for (var i = 0; i < (2 - materialsAmount % 2); i++) { + materialStr += (""); + } + } + + if (materialStr.length > 0) { + materialsTab += ""; + var materialArray = materialStr.split("#;"); + for (var i=0; i"; + } + materialsTab += "
"; + } + + } + //alert(materialsTab) + return materialsTab; +} +//打印外来器械包中标签 70cmx48cm +function printForeignTousseMiddleLable_cdlqyq1yy(tousse){ + doGetLodop(); + var name = StringUtils.defaultIfEmpty(tousse.nameWithoutPartInfo,""); + var splitPackagesAmount = StringUtils.defaultIfEmpty(tousse.splitPackagesAmount,""); + var packageNumber = StringUtils.defaultIfEmpty(tousse.packageNumber,""); + if(!isUndefinedOrNullOrEmpty(packageNumber) && !isUndefinedOrNullOrEmpty(splitPackagesAmount) && splitPackagesAmount > 1){ + name = name + "(" + packageNumber + "/" + splitPackagesAmount + ")"; + } + + var fontSize = getFontSizeByStr(name,[{maxLen:10,fontSize:14}, + {maxLen:20,fontSize:11}, + {maxLen:30,fontSize:8}, + {maxLen:1000,fontSize:8} + ]); + LODOP.ADD_PRINT_TEXT("1mm","0mm","RightMargin:0mm","6mm", name); setFontSizeBold(fontSize,1);// 设置字体 setAlignment('center');// 对齐 - LODOP.ADD_PRINT_TEXT("15mm","1mm","34mm","7mm", "灭菌:"+obj.sterilizationDate); - setFontSizeBold(11,0);// 设置字体 - LODOP.ADD_PRINT_TEXT("15mm","33mm","30mm","7mm", "装配员:"+obj.operator); - setFontSizeBold(11,0);// 设置字体 - LODOP.ADD_PRINT_TEXT("20mm","1mm","34mm","7mm", "失效:"+obj.validDate); - setFontSizeBold(11,0);// 设置字体 - LODOP.ADD_PRINT_TEXT("20mm","33mm","30mm","7mm", "审核员:"+obj.reviewer); - setFontSizeBold(11,0);// 设置字体 + LODOP.SET_PRINT_STYLE("FontSize",9); + LODOP.SET_PRINT_STYLE("Bold",0); + LODOP.ADD_PRINT_TEXT("8mm","4mm","30mm","3mm", "灭菌期:" + StringUtils.defaultIfEmpty(tousse.sterilizationDate,"")); + setAlignment('left');// 对齐 - LODOP.ADD_PRINT_TEXT("25mm","1mm","34mm","7mm", "病人:"+obj.patient); - setFontSizeBold(11,0);// 设置字体 + LODOP.SET_PRINT_STYLE("FontSize",9); + LODOP.SET_PRINT_STYLE("Bold",0); + LODOP.ADD_PRINT_TEXT("8mm","36mm","30mm","3mm", "失效期:" + StringUtils.defaultIfEmpty(tousse.validDate,"")); + setAlignment('left');// 对齐 - LODOP.ADD_PRINT_TEXT("30mm","0mm","60mm","7mm", obj.total); - setFontSizeBold(11,0);// 设置字体 - setAlignment('center');// 对齐 + LODOP.SET_PRINT_STYLE("FontSize",9); + LODOP.SET_PRINT_STYLE("Bold",0); + LODOP.ADD_PRINT_TEXT("11mm","4mm","30mm","4mm", "医生:" + StringUtils.defaultIfEmpty(tousse.doctor,"")); + setAlignment('left');// 对齐 - var sterilizer = obj.sterilizer; - if(sterilizer == null || sterilizer.length == 0){ - sterilizer = obj.hospitalName; - }else{ - sterilizer = "【"+sterilizer + "】第" + obj.frequency +"炉"; - } - LODOP.ADD_PRINT_TEXT("35mm","0mm","60mm","7mm", sterilizer);// 炉次 - setFontSizeBold(11,0);// 设置字体 - setAlignment('center');// 对齐 + LODOP.SET_PRINT_STYLE("FontSize",9); + LODOP.SET_PRINT_STYLE("Bold",0); + LODOP.ADD_PRINT_TEXT("11mm","36mm","30mm","4mm", "备注:" + StringUtils.defaultIfEmpty(tousse.remark,"")); + setAlignment('left');// 对齐 - LODOP.ADD_PRINT_BARCODE("41mm","10mm","40mm","18mm","128Auto", obj.barcode);// 条码1 - setAlignment('center');// 对齐 + var tableStr = getMaterialsTabHtml_foreignTousseMiddleLable(tousse); + addPrintTable(tableStr,"15mm","2mm","RightMargin:1mm","21mm"); + setAlignment('center');// 居中对齐 - var fontSize = getFontSizeByStr(obj.name,[ - {maxLen:10,fontSize:10}, - {maxLen:20,fontSize:8}, - {maxLen:1000,fontSize:6} - ]); - LODOP.ADD_PRINT_TEXT("64mm","0mm","RightMargin:0mm","3mm", obj.name); - setFontSizeBold(fontSize,1);// 设置字体 - setAlignment('center');// 对齐 - - LODOP.ADD_PRINT_BARCODE("69mm","10mm","40mm","10mm","128Auto", obj.barcode);// 条码2 - setAlignment('center');// 对齐 + // 打印条码信息 + LODOP.ADD_PRINT_BARCODE("36mm","19mm","32mm","10mm","128Auto", tousse.barcode); + LODOP.SET_PRINT_STYLEA(0, 'ShowBarText', true); + LODOP.SET_PRINT_STYLEA(0, 'FontSize', 6); + LODOP.SET_PRINT_STYLEA(0, 'NotOnlyHighPrecision', true); } //小标签配置,50x30mm var smallLabelConfig = { @@ -1655,7 +1752,7 @@ //打印回收清单配置 var recyclingItemsPrintConfig = { customPrint:printrecyclingItems_cdlqyq1yy, - isPrintTousse : false, + isPrintTousse : true, isPrintDisinfectGoods : true, isPrintDisposableGoods : false, isMergePrintTousseAndDisposable : false, // 器械包和一次性物品是否合并打印 @@ -1734,7 +1831,8 @@ // 中标签:80x60规格 middleLable : middleLableConfig, middleLable2 : middleLable2Config, - foreignTousseMiddleLable:foreignTousseMiddleLableConfig,// 外来器械中标签 + // 外来器械中标签 70cmx48cm + foreignTousseMiddleLable:foreignTousseMiddleLableConfig, // 大标签:100x80规格 largeLabel : exLargeLabelConfig, // 加大标签:100x100规格 Index: ssts-web/src/main/webapp/disinfectsystem/common/cssdUtils.js =================================================================== diff -u -r17979 -r18205 --- ssts-web/src/main/webapp/disinfectsystem/common/cssdUtils.js (.../cssdUtils.js) (revision 17979) +++ ssts-web/src/main/webapp/disinfectsystem/common/cssdUtils.js (.../cssdUtils.js) (revision 18205) @@ -175,7 +175,8 @@ pageType:tousseObj.pageType,'labelType':tousseObj.pageType,'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,'operationRoom':foreignTousseAppInfo.operationRoom + 'packageTypeAbbreviation':packageTypeAbbreviation,'applicationItemTotal':foreignTousseAppInfo.applicationItemTotal,'operationRoom':foreignTousseAppInfo.operationRoom, + 'remark':foreignTousseAppInfo.remark }; printSummaryObj.washOperator = tousseObj.washOperator; printSummaryObj.tousseType = tousseObj.tousseType; Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r18137 -r18205 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 18137) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 18205) @@ -214,6 +214,7 @@ obj.put("surgery", app.getSurgery()); obj.put("operationTime", app.getOperationTimeString()); obj.put("operationRoom", app.getOperationRoom()); + obj.put("remark", app.getRemark()); obj.put("toolsAmount", toolsAmount); obj.put("patientArea", patientArea); obj.put("bedNumber", bedNumber);