Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/washTransition/service/WashTransitionItemManager.java =================================================================== diff -u -r15859 -r18363 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/washTransition/service/WashTransitionItemManager.java (.../WashTransitionItemManager.java) (revision 15859) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/washTransition/service/WashTransitionItemManager.java (.../WashTransitionItemManager.java) (revision 18363) @@ -52,4 +52,9 @@ * @param itemInfo */ public boolean save(WashTransitionRecord record,JSONObject itemInfo); + /** + * 根据器械包实例id获取WashTransitionItem + * @return + */ + public WashTransitionItem getWashTransitionItemByTousseInstanceId(Long tousseInstanceId); } Index: ssts-web/src/main/webapp/disinfectsystem/useRecord/tabs/tousseInstanceInfoTab.js =================================================================== diff -u -r18213 -r18363 --- ssts-web/src/main/webapp/disinfectsystem/useRecord/tabs/tousseInstanceInfoTab.js (.../tousseInstanceInfoTab.js) (revision 18213) +++ ssts-web/src/main/webapp/disinfectsystem/useRecord/tabs/tousseInstanceInfoTab.js (.../tousseInstanceInfoTab.js) (revision 18363) @@ -5,11 +5,15 @@ /** * 显示器械包实例的追溯信息 * - * @param id - * @param tousseName - * @param isComboTousse + * @param id 器械包实例id + * @param tousseName 器械包实例名称 + * @param isComboTousse 是否为聚合包 */ function showTousseInstanceTranceabilityInfo(id, tousseName, isComboTousse){ + /** + * 是否启用清洗交接记录视图列表 + */ + this.enableWashTransitionRecordView = sstsConfig.enableWashTransitionRecordView; /** * 打开清洗记录的清洗参数 @@ -47,9 +51,7 @@ * 获取Tab的子元素 */ this.getTabsItemArray = function() { - - var tabsItemArr = new Array(); - + var tabsItemArr = []; //如果是聚合包实例则显示聚合包明细,否则显示预回收记录、回收记录、清洗记录 if (!isComboTousse) { tabsItemArr.push({ @@ -178,6 +180,7 @@ })] },{ title: '清洗记录', + layout : 'fit', items:[ new top.Ext.grid.GridPanel({ id : 'washRecord', @@ -225,6 +228,76 @@ }) ] }); + if (this.enableWashTransitionRecordView) { + tabsItemArr.push({ + title: '清洗交接记录', + layout : 'fit', + items:[ + new top.Ext.FormPanel({ + frame : true, + labelSeparator : ':', + bodyStyle : 'padding:5px 5px 0px 50px', + labelAlign : 'right', + items : [{ + layout : 'column', + items : [{ + layout : 'form', + columnWidth : .5, + cls:'edit-part2-labelwidth', + items : [{ + id : 'wtr_handover', + name : 'wtr_handover', + xtype : 'textfield', + fieldLabel : '清洗人', + anchor : '100%', + readOnly : true, + cls : 'fieldReadOnlyNoRemove' + }] + },{ + layout : 'form', + columnWidth : .5, + cls:'edit-part2-labelwidth', + items : [{ + id : 'wtr_takeover', + name : 'wtr_takeover', + xtype : 'textfield', + fieldLabel : '配包人', + anchor : '100%', + readOnly : true, + cls : 'fieldReadOnlyNoRemove' + }] + },{ + layout : 'form', + columnWidth : .5, + cls:'edit-part2-labelwidth', + items : [{ + id : 'wtr_transitionTime', + name : 'wtr_transitionTime', + xtype : 'textfield', + fieldLabel : '交接时间', + anchor : '100%', + readOnly : true, + cls : 'fieldReadOnlyNoRemove' + }] + },{ + layout : 'form', + columnWidth : .5, + cls:'edit-part2-labelwidth', + items : [{ + id : 'wtr_idCardBarcode', + name : 'wtr_idCardBarcode', + xtype : 'textfield', + fieldLabel : '标识牌条码', + anchor : '100%', + readOnly : true, + cls : 'fieldReadOnlyNoRemove' + }] + }] + }], + buttons : [this.cancelButton] + })] + }); + } } else { tabsItemArr.push({ title: '聚合包内明细', @@ -255,7 +328,6 @@ }); } - //装配记录、审核记录、灭菌记录 tabsItemArr.push({ title: '装配记录', @@ -529,7 +601,6 @@ text : '灭菌参数', minWidth : 50, readOnly : true, - anchor : '100%', cls : 'fieldReadOnlyNoRemove', handler : function() { var amounts = top.Ext.getCmp('sterilizerRecordAmounts').getValue(); @@ -1067,7 +1138,6 @@ * 设置器械包实例的一些追溯信息 */ this.setTousseInstanceInfo = function() { - Ext.Ajax.request({ url : WWWROOT + '/disinfectSystem/invoiceAction!getTousseInstanceById.do?tousseInstanceId='+id, success : function(response, options) { @@ -1197,6 +1267,13 @@ top.Ext.getCmp('washRecord').getStore().add(washRecordData); } + //清洗交接记录 + var washTransitionRecordInfo = result.washTransitionRecordJSON; + top.Ext.getCmp('wtr_handover').setValue(washTransitionRecordInfo.handover); //清洗交接_清洗人 + top.Ext.getCmp('wtr_takeover').setValue(washTransitionRecordInfo.takeover); //清洗交接_配包人 + top.Ext.getCmp('wtr_transitionTime').setValue(washTransitionRecordInfo.transitionTime); //清洗交接_清洗交接时间 + top.Ext.getCmp('wtr_idCardBarcode').setValue(washTransitionRecordInfo.idCardBarcode); //清洗交接_标识牌实例 + //流转记录 var tousseOperationInfoArray = result.tousseOperationJSONs; for(var j = 0;j < tousseOperationInfoArray.length ; j++){ @@ -1318,7 +1395,6 @@ showResult('加载失败,请联系系统管理员。'); } }); - }; @@ -1328,17 +1404,16 @@ this.tousseInstanceWindow = new top.Ext.Window({ layout : 'fit', title : '[' + tousseName + '] 追溯信息', - width : 680, + autoWidth : true, border : false, modal : true, autoHeight : true, plain : true, items : new top.Ext.TabPanel({ - activeTab : 0, - width : 600, + width : (this.enableWashTransitionRecordView ? 880 : 790), height : 350, plain : true, - activeTab : (isComboTousse ? 0 : 6), //如果是聚合包则初始显示“聚合包内明细”Tad,否则初始显示“发货记录”Tad + activeTab : (isComboTousse ? 0 : (this.enableWashTransitionRecordView ? 7 : 6)), //如果是聚合包则初始显示“聚合包内明细”Tad,否则初始显示“发货记录”Tad deferredRender : false, enableTabScroll : true, defaults : {autoScroll : true}, Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/washTransition/service/WashTransitionItemManagerImpl.java =================================================================== diff -u -r18107 -r18363 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/washTransition/service/WashTransitionItemManagerImpl.java (.../WashTransitionItemManagerImpl.java) (revision 18107) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/washTransition/service/WashTransitionItemManagerImpl.java (.../WashTransitionItemManagerImpl.java) (revision 18363) @@ -254,5 +254,11 @@ } return null; } + + @Override + public WashTransitionItem getWashTransitionItemByTousseInstanceId(Long tousseInstanceId) { + return (WashTransitionItem) objectDao.getByProperty(WashTransitionItem.class.getSimpleName(), + "tousseInstanceId", tousseInstanceId); + } } Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java =================================================================== diff -u -r18355 -r18363 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java (.../InvoiceAction.java) (revision 18355) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/action/InvoiceAction.java (.../InvoiceAction.java) (revision 18363) @@ -76,6 +76,8 @@ import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; import com.forgon.disinfectsystem.entity.toussetransition.TousseTransitionRecord; +import com.forgon.disinfectsystem.entity.toussetransition.WashTransitionItem; +import com.forgon.disinfectsystem.entity.toussetransition.WashTransitionRecord; import com.forgon.disinfectsystem.entity.useRecord.UseRecord; import com.forgon.disinfectsystem.entity.washanddisinfectmanager.washanddisinfectrecord.WashAndDisinfectRecord; import com.forgon.disinfectsystem.invoicemanager.service.InvoiceManager; @@ -88,6 +90,7 @@ import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseDefinitionManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; import com.forgon.disinfectsystem.toussetransition.service.TousseTransitionRecordManager; +import com.forgon.disinfectsystem.washTransition.service.WashTransitionItemManager; import com.forgon.tools.MapTools; import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.StrutsResponseUtils; @@ -153,12 +156,19 @@ private SupplyRoomConfigManager supplyRoomConfigManager; private RecyclingRecordManager recyclingRecordManager; + + private WashTransitionItemManager washTransitionItemManager; public void setRecyclingRecordManager( RecyclingRecordManager recyclingRecordManager) { this.recyclingRecordManager = recyclingRecordManager; } + public void setWashTransitionItemManager( + WashTransitionItemManager washTransitionItemManager) { + this.washTransitionItemManager = washTransitionItemManager; + } + /** * 器械包交接manager类 */ @@ -902,6 +912,19 @@ } } } + + //清洗交接记录 + JSONObject washTransitionRecordJSON = new JSONObject(); + Long lastTousseInstanceId = ti.getLastTousseInstanceId(); + WashTransitionItem wti = washTransitionItemManager.getWashTransitionItemByTousseInstanceId(lastTousseInstanceId); + if (wti != null) { + WashTransitionRecord wtr = wti.getWashTransitionRecord(); + washTransitionRecordJSON.put("handover", wtr.getHandover()); + washTransitionRecordJSON.put("takeover", wtr.getTakeover()); + washTransitionRecordJSON.put("transitionTime", ForgonDateUtils.safelyFormatDate(wtr.getTransitionTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMM, "")); + washTransitionRecordJSON.put("idCardBarcode", wti.getIdCardBarcode()); + } + // 流转记录 JSONArray tousseOperationJSONs = new JSONArray(); //此器械包实例关联的所有清洗篮筐的所有清洗记录(因为每个清洗篮筐可以被清洗多次) String sql = String.format(" where po.tousseInstanceId=%s order by operationTime asc ", ti.getId()); @@ -924,6 +947,7 @@ map.put("tousseTransitionRecord", tousseTransitionRecord); map.put("recyclingRecordJSON", recyclingRecordJSON); map.put("washAndDisinfectRecordInfoJSONs", washAndDisinfectRecordInfoJSONs); + map.put("washTransitionRecordJSON", washTransitionRecordJSON); map.put("tousseOperationJSONs", tousseOperationJSONs); map.put("tousseInstance", ti);