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 += ""
+ materialArray[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"
+// + materialArray[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);