Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/RecyclingPrintItem.java
===================================================================
diff -u -r20041 -r24702
--- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/RecyclingPrintItem.java (.../RecyclingPrintItem.java) (revision 20041)
+++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/RecyclingPrintItem.java (.../RecyclingPrintItem.java) (revision 24702)
@@ -2,17 +2,38 @@
public class RecyclingPrintItem {
/**
- * 材料名称。
+ * 名称。
+ * 对于外来器械包则为材料名称
+ * 对于其它类型包则为包名称
*/
private String name;
/**
- * 材料数量
+ * 数量
+ * 对于外来器械包则为材料数量
+ * 对于其它类型包则为包数量
*/
private Integer amount;
/**
* 是否植入物
+ * 针对外来器械包
*/
private String isImplant;
+
+ /**
+ * 单位
+ */
+ private String unit;
+
+ /**
+ * 单价
+ */
+ private Double price;
+
+ /**
+ * 金额
+ */
+ private Double rowPrice;
+
public String getName() {
return name;
}
@@ -31,4 +52,23 @@
public void setIsImplant(String isImplant) {
this.isImplant = isImplant;
}
+ public String getUnit() {
+ return unit;
+ }
+ public void setUnit(String unit) {
+ this.unit = unit;
+ }
+ public Double getPrice() {
+ return price;
+ }
+ public void setPrice(Double price) {
+ this.price = price;
+ }
+ public Double getRowPrice() {
+ return rowPrice;
+ }
+ public void setRowPrice(Double rowPrice) {
+ this.rowPrice = rowPrice;
+ }
+
}
Index: ssts-web/src/main/webapp/disinfectsystem/config/gzykdxfskqyy/config.js
===================================================================
diff -u -r24696 -r24702
--- ssts-web/src/main/webapp/disinfectsystem/config/gzykdxfskqyy/config.js (.../config.js) (revision 24696)
+++ ssts-web/src/main/webapp/disinfectsystem/config/gzykdxfskqyy/config.js (.../config.js) (revision 24702)
@@ -103,6 +103,10 @@
disableForeignTousse : true,
//器械包申请单的物品视图是否分成两个grid
tousseApplicationFormGridSplit:true,
+ //回收页面是否显示保存打印并新建按钮
+ showRecyclingSaveAndPrintAndNewActionButton:true,
+ //回收打印的内容(1:外来器械包明细 2:发货计划),默认为1
+ recyclingPrintContent : 2,
//发货科室依据,departCoding为申请科室,settleAccountsDepartCoding为结算科室,默认为申请科室
invoice_groupBy:'settleAccountsDepartCoding'
}
\ No newline at end of file
Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp
===================================================================
diff -u -r24246 -r24702
--- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp (.../recycleForTouchScreen.jsp) (revision 24246)
+++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.jsp (.../recycleForTouchScreen.jsp) (revision 24702)
@@ -295,6 +295,7 @@
|
|
|
+ |
|
|
Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/1980/images/style.css
===================================================================
diff -u -r24075 -r24702
--- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/1980/images/style.css (.../style.css) (revision 24075)
+++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/1980/images/style.css (.../style.css) (revision 24702)
@@ -73,15 +73,18 @@
.data-table .btn-box .btn-p:hover{ background-position:-632px -64px; }
.data-table .btn-box .btn-c{ background:url(btn_confirm.png) no-repeat; background-position:0 0; width:137px; height:64px; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block;}
.data-table .btn-box .btn-c:hover{ background:url(btn_confirm1.png) no-repeat; background-position:0 0; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block;}
+.data-table .btn-box .btn-n{ background:url(btn-box.jpg) no-repeat; background-position:-839px 0; width:140px; height:64px; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block; }
+.data-table .btn-box .btn-n:hover{ background:url(btn-box.jpg) no-repeat; background-position:-839px -64px; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block;}
+.data-table .btn-box .btn-spn{ background:url(btn-box.jpg) no-repeat; background-position:-980px 0; width:230px; height:64px; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block; }
+.data-table .btn-box .btn-spn:hover{ background:url(btn-box.jpg) no-repeat; background-position:-980px -64px; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block;}
+
.data-table .btn-box .btn-d{ background:url(btn_cancel.png) no-repeat; background-position:0 0; width:137px; height:64px; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block;}
.data-table .btn-box .btn-d:hover{ background:url(btn_cancel1.png) no-repeat; background-position:0 0; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block;}
-.data-table .btn-box .btn-f{ background:url(btn_exit.png) no-repeat; background-position:0 0; width:137px; height:64px; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block; }
-.data-table .btn-box .btn-f:hover{ background:url(btn_exit1.png) no-repeat; background-position:0 0; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block;}
.data-table .btn-box .btn-g{ background:url(btn_stop.png) no-repeat; background-position:0 0; width:137px; height:64px; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block; }
.data-table .btn-box .btn-g:hover{ background:url(btn_stop1.png) no-repeat; background-position:0 0; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block;}
-.data-table .btn-box .btn-n{ background:url(btn-box.jpg) no-repeat; background-position:-839px 0; width:140px; height:64px; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block; }
-.data-table .btn-box .btn-n:hover{ background:url(btn-box.jpg) no-repeat; background-position:-839px -64px; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block;}
+.data-table .btn-box .btn-f{ background:url(btn_exit.png) no-repeat; background-position:0 0; width:137px; height:64px; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block; }
+.data-table .btn-box .btn-f:hover{ background:url(btn_exit1.png) no-repeat; background-position:0 0; border:none; line-height:200px; overflow:hidden; text-indent:-9999px; display:block;}
.mbody .btn-h{ margin-left: 790px;margin-top: 370px; background:url(allIntoBasket.png) no-repeat; background-position:0 0; width:150px; height:64px; border:none; line-height:200px; overflow:hidden;}
.mbody .btn-h:hover{ margin-left: 790px;margin-top: 370px; background:url(allIntoBaskehovert.png) no-repeat; background-position:0 0; width:150px; height:64px; border:none; line-height:200px; overflow:hidden;}
Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js
===================================================================
diff -u -r24218 -r24702
--- ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 24218)
+++ ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/recycleForTouchScreen.js (.../recycleForTouchScreen.js) (revision 24702)
@@ -2823,6 +2823,7 @@
* @param confirmation 确认回收记录操作
* @param saveAndNew 保存并新建回收记录操作
* @param print 保存并打印回收记录操作
+ * @param recyclingAmountConfirm 是否确认回收数量
*/
function submitFunction(confirmation,saveAndNew,print,recyclingAmountConfirm){
if(submitCheck()){
@@ -2986,6 +2987,13 @@
}
/**
+ * 保存并打印并新建回收记录
+ */
+function doSaveAndPrintAndNewAction(){
+ submitFunction(false,true,true,false);
+}
+
+/**
* 确认回收记录
*/
function doConfirmAction(){
@@ -3718,12 +3726,18 @@
//没有可以终止的申请项,那就把终止按钮隐藏
$('#btn-terminate').hide();
}
- //
+ //是否显示保存并打印按钮
if(sstsConfig.showRecyclingPrintDetail && $("#appType").val() == TYPE_FOREIGNTOUSSEAPPLIACTION){
$('#saveAndPrintBtnTd').show();
}else{
$('#saveAndPrintBtnTd').hide();
}
+ //是否显示保存打印并新建按钮
+ if(sstsConfig.showRecyclingSaveAndPrintAndNewActionButton){
+ $('#saveAndPrintAndNewBtnTd').show();
+ }else{
+ $('#saveAndPrintAndNewBtnTd').hide();
+ }
if(recyclingStatus == '部分回收'){
$('#saveBtnTd').show();
}
Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java
===================================================================
diff -u -r24267 -r24702
--- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 24267)
+++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 24702)
@@ -1239,7 +1239,8 @@
throw new SystemException("当前申请单已确认,不能保存!");
}else{
save(recyclingRecord,recyclingContext);
- if(CssdUtils.getSystemSetConfigByNameBool("showRecyclingPrintDetail")){
+ //如果回收页显示保存并打印或保存打印并新建,则设置打印数据
+ if(CssdUtils.getSystemSetConfigByNameBool("showRecyclingPrintDetail") || CssdUtils.getSystemSetConfigByNameBool("showRecyclingSaveAndPrintAndNewActionButton")){
recyclingContext.setRecyclingPrintData(loadRecyclingPrintData(recyclingRecord));
}
if(CssdUtils.getSystemSetConfigByNameBool("modifyRemarkInRecycling")){
@@ -4095,7 +4096,9 @@
List list = new ArrayList<>();
if(recyclingRecord != null && CollectionUtils.isNotEmpty(recyclingRecord.getClassifyBaskets())){
InvoicePlan ip = recyclingRecord.getRecyclingApplication();
- if(ip instanceof ForeignTousseApplication){
+ //回收打印的内容(1:外来器械包明细 2:发货计划),默认为1
+ int recyclingPrintContent = CssdUtils.getSystemSetConfigByNameInt("recyclingPrintContent", 1);
+ if(ip != null && ip instanceof ForeignTousseApplication && recyclingPrintContent == 1){
ForeignTousseApplication fa = (ForeignTousseApplication)ip;
if(fa.isSecondRecycleForForeignTousse()){
//外来器械二次回收,不打印
@@ -4121,6 +4124,7 @@
RecyclingPrintData printData = printDatas.stream().filter(p->MathTools.valueEquals(cb.getId(), p.getClassifyBasketId())).findFirst().orElse(null);
if(printData == null){
printData = new RecyclingPrintData();
+ printData.setRecyclingApplicationType(recyclingRecord.getRecyclingApplicationType());
printData.setBedNumber(fa.getBedNumber());
printData.setClassifyBasketId(cb.getId());
printData.setDoctor(fa.getDoctor());
@@ -4162,6 +4166,21 @@
Collections.sort(printDatas);
list.addAll(printDatas);
}
+ } else {
+ List recyclingItemList = recyclingRecord.getItems();
+ RecyclingPrintData printData = new RecyclingPrintData();
+ //科室、申请单号、日期、备注
+ printData.setDepartName(recyclingRecord.getDepart());
+ printData.setInvoicePlanSerialNumber(ip != null ? ip.getSerialNumber() : "");
+ printData.setRecyclingTime(ForgonDateUtils.safelyFormatDate(recyclingRecord.getRecyclingTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDD, ""));
+ printData.setRemark(recyclingRecord.getRemark());
+ printData.setRecyclingApplicationType(recyclingRecord.getRecyclingApplicationType());
+ for(RecyclingItem item : recyclingItemList){
+ TousseDefinition td = tousseDefinitionManager.get(item.getTousseDefinitionId());
+ //名称、数量、单位、单价、金额
+ printData.addItem(item.getTousseName(), item.getAmount(), td.getUnit() , td.getPrice());
+ }
+ list.add(printData);
}
}
return list;
Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/RecyclingPrintData.java
===================================================================
diff -u -r20880 -r24702
--- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/RecyclingPrintData.java (.../RecyclingPrintData.java) (revision 20880)
+++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/vo/RecyclingPrintData.java (.../RecyclingPrintData.java) (revision 24702)
@@ -3,9 +3,12 @@
import java.util.ArrayList;
import java.util.List;
+import com.forgon.tools.MathTools;
+
/**
* 回收打印数据。目前回收的时候,如果是外来器械,需要打印外来器械包的病人等信息及包内材料清单。ZJYY-4
* 其他的包都不用打印。打印的材料清单,跟随包一起清洗、装配(类似于标识牌,只是不打印条码)
+ * 增加广医口腔的打印(打印结果参考申请单打印)、打印普通器械包
* @author kzh
*
*/
@@ -47,7 +50,33 @@
*/
private Integer splitIndex;
private String containerName;
+
/**
+ * 科室
+ */
+ private String departName;
+
+ /**
+ * 申请单类型
+ */
+ private String recyclingApplicationType;
+
+ /**
+ * 申请单号
+ */
+ private String invoicePlanSerialNumber;
+
+ /**
+ * 日期(回收时间)
+ */
+ private String recyclingTime;
+
+ /**
+ * 备注
+ */
+ private String remark;
+
+ /**
* 材料明细项
*/
private List goods;
@@ -128,6 +157,18 @@
item.setIsImplant(isImplant);
goods.add(item);
}
+ public void addItem(String name,Integer amount,String unit,Double price){
+ if(goods == null){
+ goods = new ArrayList<>();
+ }
+ RecyclingPrintItem item = new RecyclingPrintItem();
+ item.setAmount(amount);
+ item.setName(name);
+ item.setUnit(unit);
+ item.setPrice(price);
+ item.setRowPrice(MathTools.mul(amount, price, 2).doubleValue());
+ goods.add(item);
+ }
@Override
public int compareTo(RecyclingPrintData o) {
if(o == null){
@@ -141,4 +182,35 @@
}
return getSplitIndex().compareTo(o.getSplitIndex());
}
+ public String getDepartName() {
+ return departName;
+ }
+ public void setDepartName(String departName) {
+ this.departName = departName;
+ }
+ public String getInvoicePlanSerialNumber() {
+ return invoicePlanSerialNumber;
+ }
+ public void setInvoicePlanSerialNumber(String invoicePlanSerialNumber) {
+ this.invoicePlanSerialNumber = invoicePlanSerialNumber;
+ }
+ public String getRecyclingTime() {
+ return recyclingTime;
+ }
+ public void setRecyclingTime(String recyclingTime) {
+ this.recyclingTime = recyclingTime;
+ }
+ public String getRemark() {
+ return remark;
+ }
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+ public String getRecyclingApplicationType() {
+ return recyclingApplicationType;
+ }
+ public void setRecyclingApplicationType(String recyclingApplicationType) {
+ this.recyclingApplicationType = recyclingApplicationType;
+ }
+
}
Index: ssts-web/src/main/webapp/disinfectsystem/touchScreen/recycle/1980/images/btn-box.jpg
===================================================================
diff -u -r22653 -r24702
Binary files differ
Index: ssts-web/src/main/webapp/disinfectsystem/config/gzykdxfskqyy/print/printConfig.js
===================================================================
diff -u -r24329 -r24702
--- ssts-web/src/main/webapp/disinfectsystem/config/gzykdxfskqyy/print/printConfig.js (.../printConfig.js) (revision 24329)
+++ ssts-web/src/main/webapp/disinfectsystem/config/gzykdxfskqyy/print/printConfig.js (.../printConfig.js) (revision 24702)
@@ -1164,6 +1164,79 @@
]
}
+//回收页面打印配置
+var recyclingGoodsDetailConfig = {
+ customPrint:printRecyclingGoodsDetail_gykq
+}
+
+
+function printRecyclingGoodsDetail_gykq(printSummaryObj){
+ //科室、申请单号、日期、备注
+ var departName = printSummaryObj.departName ;
+ var invoicePlanSerialNumber = getDefaultString(printSummaryObj.invoicePlanSerialNumber,' ');
+ var recyclingTime = getDefaultString(printSummaryObj.recyclingTime,' ');
+ var remark = getDefaultString(printSummaryObj.remark,' ');
+ var goods = getDefaultString(printSummaryObj.goods,' ');
+
+ LODOP = getLodop(document.getElementById('LODOP'), document.getElementById('LODOP_EM'));
+ var rowHeight = 20;
+
+ var css="table{margin:0px;padding:0px;width: 100%; border-collapse: collapse;}";
+ css+="tr{padding:0px;margin:0px;height:20px;}td{padding:0px;margin:0px;border:1px solid black;font-size: 14px;font-weight:bold;text-align:center;}";
+ css+="td.headRow{font-size: 20px;font-weight:bold;text-align:center;} td.dataRow{font-size: 18px;text-align:center;}";
+ css+="table.chld td{border-top-width: 0px;text-align:center;}";
+ var tableHtml ="";
+
+ tableHtml += "广州医科大学附属口腔医院回收物品表
";
+ tableHtml += "科室:"+ departName +" 申请单号:"+ invoicePlanSerialNumber +" 回收日期:"+ recyclingTime +" 备注:"+ remark +"
";
+ tableHtml +="";
+
+ var minRowCount = 9;
+ tableHtml += "";
+ tableHtml += "序号 | "
+ tableHtml += "名称 | ";
+ tableHtml += "数量 | ";
+ tableHtml += "单位 | ";
+ tableHtml += "单价 | ";
+ tableHtml += "金额 | ";
+ tableHtml += "
";
+ for(var i = 0; i < goods.length;i++){
+ var printGoods = goods[i];
+ tableHtml += "";
+ tableHtml += ""+getDefaultString(i+1," ")+" | ";
+ tableHtml += ""+getDefaultString(printGoods.name," ")+" | ";
+ tableHtml += ""+getDefaultString(printGoods.amount," ")+" | ";
+ tableHtml += ""+getDefaultString(printGoods.unit," ")+" | ";
+ tableHtml += ""+getDefaultString(printGoods.price," ")+" | ";
+ tableHtml += ""+getDefaultString(printGoods.rowPrice," ")+" | ";
+ tableHtml += "
";
+ }
+ function addEmptyRow(){
+ tableHtml += "";
+ tableHtml += " | ";
+ tableHtml += " | ";
+ tableHtml += " | ";
+ tableHtml += " | ";
+ tableHtml += " | ";
+ tableHtml += " | ";
+ tableHtml += "
";
+ }
+ if(goods.length == 0){
+ addEmptyRow();
+ }
+ //添加空行到最少行数,以便表格好看一些
+ var otherEmptyRow = minRowCount - goods.length;
+ if(otherEmptyRow > 0){
+ for(var i = 0; i < otherEmptyRow;++i){
+ addEmptyRow();
+ }
+ }
+
+ tableHtml += "
";
+ LODOP.ADD_PRINT_HTM(0,0,"100%","100%",tableHtml);
+// LODOP.SET_PRINT_MODE("PRINT_PAGE_PERCENT","Full-Page");
+}
+
var printConfig = {
//发货计划单
invoicePlan : invoicePlanPrintConfig,
@@ -1217,5 +1290,7 @@
//调拨入库单
appropriationInList : appropriationInListConfig,
//调拨出库单
- appropriationOutList : appropriationOutListConfig
+ appropriationOutList : appropriationOutListConfig,
+ //回收物品明细。在回收界面的保存并打印按钮触发
+ recyclingGoodsDetail : recyclingGoodsDetailConfig
};