Index: ssts-web/src/main/webapp/disinfectsystem/config/zsyy/config.js =================================================================== diff -u -r17400 -r17440 --- ssts-web/src/main/webapp/disinfectsystem/config/zsyy/config.js (.../config.js) (revision 17400) +++ ssts-web/src/main/webapp/disinfectsystem/config/zsyy/config.js (.../config.js) (revision 17440) @@ -86,5 +86,7 @@ //装配时自动设置标识牌条码(前提是一个包实例只能装一个篮筐而且是整包清洗) autoSetIDCardBarcodeForPacking : true, //PDA上启用器械包签收功能 - enablePDATousseSign:true + enablePDATousseSign:true, + //是否启用清洗交接记录视图列表 + enableWashTransitionRecordView : true } \ No newline at end of file Index: ssts-web/src/main/webapp/homepage/menuconfigure.js =================================================================== diff -u -r17383 -r17440 --- ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 17383) +++ ssts-web/src/main/webapp/homepage/menuconfigure.js (.../menuconfigure.js) (revision 17440) @@ -53,7 +53,8 @@ singleClickExpand:singleClickExpandTree, hidden:SSTS_WashRecord_Menu, children:[ - {hidden :SSTS_WashRecord_Menu,text:"清洗消毒记录",href:WWWROOT+'/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washAndDisinfectView.jsp?editMode=true',hrefTarget:linkTarget,leaf:true} + {hidden :SSTS_WashRecord_Menu,text:"清洗消毒记录",href:WWWROOT+'/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/washAndDisinfectView.jsp?editMode=true',hrefTarget:linkTarget,leaf:true}, + {hidden :SSTS_WashTransitionRecord_Select,text:"清洗交接记录",href:WWWROOT+'/disinfectsystem/washanddisinfectmanager/washTransitionRecord/washTransitionRecordView.jsp?',hrefTarget:linkTarget,leaf:true} ] }]; Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washTransitionRecord/washTransitionRecordView.jsp =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washTransitionRecord/washTransitionRecordView.jsp (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washTransitionRecord/washTransitionRecordView.jsp (revision 17440) @@ -0,0 +1,19 @@ +<%@page language="java" contentType="text/html; charset=UTF-8"%> +<%-- 引入JSP标签 --%> +<%@include file="/common/taglibs.jsp"%> +<%-- 引入ExtJs4.2.5框架 --%> +<%@include file="/common/include_ForgonGrid4.2.5_css.jsp"%> +<%@include file="/common/include_ForgonGrid4.2.5_Js.jsp"%> +<%@include file="/common/include_UseForgonGrid4_Js.jsp"%> + + + + <%-- 引入本身的js --%> + + + 清洗交接记录 + + + + + \ No newline at end of file Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washTransitionRecord/washTransitionRecordView.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washTransitionRecord/washTransitionRecordView.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washTransitionRecord/washTransitionRecordView.js (revision 17440) @@ -0,0 +1,44 @@ +var entityName = '清洗交接'; +var grid; + +function rendererFun(value, metaData, record, rowIndex, colIndex, store, view) { + var id = record.data.id; + return "" + value + ""; +} +function rendererTransitionTime(value, metaData, record, rowIndex, colIndex, store, view) { + if (value) { + return Ext4.Date.format(new Date(value.time), 'Y-m-d H:i:s'); + } else { + return ''; + } +} + +Ext4.onReady(function() { + var fields = [ + {name : 'id', mapping : 'id'}, + {name : 'handover', mapping : 'handover'}, + {name : 'takeover', mapping : 'takeover'}, + {name : 'transitionTime', mapping : 'transitionTime'} + ]; + + var columns = [{ + header: "清洗人", dataIndex: 'handover', width: 70, minWidth:70, maxWidth:70, filterable: false, filter: {type: 'string'}, renderer : rendererFun + },{ + header: "配包人", dataIndex: 'takeover', width: 70, minWidth:70, maxWidth:70, filterable: false, filter: {type: 'string'} + },{ + header: "交接时间", dataIndex: 'transitionTime', width: 150, minWidth: 150, filterable: false, filter: {type: 'date'}, renderer : rendererTransitionTime + }]; + + grid = Ext4.create('ExtJs.forgon4.Grid', { + title : entityName, + dataUrl : WWWROOT + '/disinfectSystem/washTransitionRecordAction!loadWashTransitionRecordList.do', + fields : fields, + columns : columns, + sorters : { property : 'transitionTime',direction: 'DESC'} + }); + + var viewport = Ext4.create('Ext4.Viewport', { + layout : 'fit', + items : grid + }); +}); \ No newline at end of file Index: ssts-web/src/main/webapp/forgon4/forgonGrid4.js =================================================================== diff -u -r17181 -r17440 --- ssts-web/src/main/webapp/forgon4/forgonGrid4.js (.../forgonGrid4.js) (revision 17181) +++ ssts-web/src/main/webapp/forgon4/forgonGrid4.js (.../forgonGrid4.js) (revision 17440) @@ -7,7 +7,7 @@ //toolbar的excel导出按钮,-1表示不显示 showExportBtnIndex: -1, //分页大小 - pageSize: 8 + pageSize: 20 } /** Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/washTransition/action/WashTransitionRecordAction.java =================================================================== diff -u --- ssts-packing/src/main/java/com/forgon/disinfectsystem/washTransition/action/WashTransitionRecordAction.java (revision 0) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/washTransition/action/WashTransitionRecordAction.java (revision 17440) @@ -0,0 +1,132 @@ +package com.forgon.disinfectsystem.washTransition.action; + +import java.util.List; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; + +import org.apache.struts2.convention.annotation.Action; +import org.apache.struts2.convention.annotation.Namespace; +import org.apache.struts2.convention.annotation.ParentPackage; + +import com.forgon.disinfectsystem.entity.toussetransition.WashTransitionItem; +import com.forgon.disinfectsystem.entity.toussetransition.WashTransitionMaterial; +import com.forgon.disinfectsystem.entity.toussetransition.WashTransitionRecord; +import com.forgon.disinfectsystem.washTransition.service.WashTransitionItemManager; +import com.forgon.disinfectsystem.washTransition.service.WashTransitionMaterialManager; +import com.forgon.disinfectsystem.washTransition.service.WashTransitionRecordManager; +import com.forgon.entity.ExtJsEntity; +import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.StrutsResponseUtils; +import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.json.JSONUtil; +import com.forgon.tools.string.StringTools; +import com.forgon.tools.util.ExtJsUtil; +import com.forgon.tools.util.ForgonDateUtils; +import com.forgon.util.ExtGridUtils; +import com.opensymphony.xwork2.ModelDriven; +import com.opensymphony.xwork2.Preparable; +import com.sun.org.apache.bcel.internal.generic.NEWARRAY; + +@ParentPackage(value = "default") +@Namespace(value = "/disinfectSystem") +@Action(value = "washTransitionRecordAction") +public class WashTransitionRecordAction implements ModelDriven< WashTransitionRecord>, Preparable{ + + private WashTransitionRecord washTransitionRecord; + private WashTransitionRecordManager washTransitionRecordManager; + private ExtGridUtils extGridUtils; + + public void setExtGridUtils(ExtGridUtils extGridUtils) { + this.extGridUtils = extGridUtils; + } + + public void setWashTransitionRecordManager( + WashTransitionRecordManager washTransitionRecordManager) { + this.washTransitionRecordManager = washTransitionRecordManager; + } + + @Override + public void prepare() throws Exception { + try { + String id = StrutsParamUtils.getPraramValue("id", ""); + if (DatabaseUtil.isPoIdValid(id)) { + washTransitionRecord = washTransitionRecordManager.get(Long.valueOf(id)); + } else { + washTransitionRecord = new WashTransitionRecord(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public WashTransitionRecord getModel() { + // TODO Auto-generated method stub + return washTransitionRecord; + } + + /** + * 加载清洗交接记录视图列表 + * @return + */ + public void loadWashTransitionRecordList() { + ExtJsEntity entity =ExtJsUtil.buildSQLEntity("select * ", " from WashTransitionRecord where 1=1 ", ""); + JSONObject result = extGridUtils.getPagedResult(entity); + StrutsResponseUtils.output(result); + } + + /** + * 根据id,加载清洗交接记录的信息 + * @return + * @param id id + */ + public void loadWashTransitionRecordInfoById() { + if(DatabaseUtil.isPoIdValid(washTransitionRecord.getId())){ + Integer tousseTotal = 0; + Integer materialTotal = 0; + JSONArray rows = new JSONArray(); + List tousses = washTransitionRecord.getWashTransitionItems(); + for (WashTransitionItem tousse : tousses) { + JSONObject jTousse = new JSONObject(); + jTousse.put("goodsName", tousse.getTousseName()); + Integer tousseAmount = 0; + if (StringTools.isNotBlank(tousse.getIdCardBarcode())) { + jTousse.put("idCardBarcodeOrAmount", tousse.getIdCardBarcode()); + ++ tousseTotal; + tousseAmount = 1; + } else { + Integer temp = tousse.getAmount() == null ? 0 : tousse.getAmount(); + tousseTotal += temp; + tousseAmount = temp; + jTousse.put("idCardBarcodeOrAmount", temp); + } + List materials = tousse.getWashTransitionMaterials(); + JSONArray jMaterials = new JSONArray(); + for (WashTransitionMaterial material : materials) { + JSONObject jMaterial = new JSONObject(); + jMaterial.put("goodsName", material.getMaterialName()); + Integer temp = material.getAmount() == null ? 0 : material.getAmount(); + materialTotal = materialTotal + temp*tousseAmount; + jMaterial.put("idCardBarcodeOrAmount", temp); + jMaterial.put("leaf", true); + jMaterials.add(jMaterial); + } + jTousse.put("children", jMaterials); + rows.add(jTousse); + } + + if (rows.size() < 0) { + rows.add(new JSONObject()); + } + JSONObject firstRow = (JSONObject) rows.get(0); + firstRow.put("handover", washTransitionRecord.getHandover()); + firstRow.put("takeover", washTransitionRecord.getTakeover()); + firstRow.put("transitionTime", ForgonDateUtils.safelyFormatDate(washTransitionRecord.getTransitionTime(), ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS, "")); + firstRow.put("displayInfo", String.format("共有%s包,%s件器械", tousseTotal, materialTotal)); + StrutsResponseUtils.output(rows.toString()); + } + } + + +} Index: ssts-web/src/main/webapp/homepage/menu.jsp =================================================================== diff -u -r17383 -r17440 --- ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 17383) +++ ssts-web/src/main/webapp/homepage/menu.jsp (.../menu.jsp) (revision 17440) @@ -517,11 +517,25 @@ SSTS_RecycRecord_Menu = false; +/** + * 《清洗消毒》菜单 + */ var SSTS_WashRecord_Menu = true; - -SSTS_WashRecord_Menu = false; + + SSTS_WashRecord_Menu = false; +/** + * 《清洗交接记录查询》权限 + */ +var SSTS_WashTransitionRecord_Select = true; + + SSTS_WashTransitionRecord_Select = false; + +if (!sstsConfig.enableWashTransitionRecordView) { + SSTS_WashTransitionRecord_Select = true; +} + var SSTS_Packing_Manager = true; SSTS_Packing_Manager = false; Index: ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washTransitionRecord/washTransitionRecordForm.js =================================================================== diff -u --- ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washTransitionRecord/washTransitionRecordForm.js (revision 0) +++ ssts-web/src/main/webapp/disinfectsystem/washanddisinfectmanager/washTransitionRecord/washTransitionRecordForm.js (revision 17440) @@ -0,0 +1,154 @@ +var windowObj; //窗口 +var formObj; //表单 + +function loadData(id) { + if (id) { + Ext4.define('Forgon.data.WashTransitionRecordInfoModel', { + extend : 'Ext4.data.Model', + fields: [{ + name : 'goodsName' + },{ + name : 'idCardBarcodeOrAmount' + },{ + name : 'handover' + },{ + name : 'takeover' + },{ + name : 'transitionTime' + },{ + name : 'displayInfo' + }] + }); + + var washTransitionRecordInfoTreeStore = Ext4.create('Ext4.data.TreeStore', { + model : Forgon.data.WashTransitionRecordInfoModel, + folderSort : true, + proxy: { + type : 'ajax', + extraParams: {id : id}, + url : WWWROOT + '/disinfectSystem/washTransitionRecordAction!loadWashTransitionRecordInfoById.do' + }, + listeners: { + load: function(_this, node, records, successful, eOpts) { + var firstRow = records[0]; + if (firstRow) { + var firstRowData = firstRow.data; + Ext4.getCmp('handover').setValue(firstRowData.handover); + Ext4.getCmp('takeover').setValue(firstRowData.takeover); + Ext4.getCmp('transitionTime').setValue(firstRowData.transitionTime); + Ext4.getCmp('displayInfo').setText(firstRowData.displayInfo); + } + } + } + }); + + var washTransitionRecordInfoTreeGrid = Ext4.create('Ext4.tree.Panel', { + title : '物品信息', + rootVisible: false, + useArrows: true, + multiSelect: false, + columnLines: true, + rowLines: true, + cls: 'no-leaf-icons', + store : washTransitionRecordInfoTreeStore, + viewConfig : {loadMask : {msg : '正在加载,请稍候...'}}, + tbar : ['->', { + xtype : 'label', + height : 16, + id : 'displayInfo' + }], + columns: [{ + xtype:'treecolumn', header:'物品名称', dataIndex:'goodsName', width: 200, sortable: false, menuDisabled : true + },{ + header:'标识牌条码/数量', dataIndex:'idCardBarcodeOrAmount', width: 150, sortable: false, menuDisabled : true + }] + }); + + formObj = Ext4.create('Ext4.form.Panel', { + layout : 'vbox', + frame : true, + border : 0, + labelSeparator : ': ', + bodyPadding : '5 5 0', + autoScroll : true, + buttonAlign : 'center', + buttons : [{ + text : '取消', + handler : function() { + windowObj.close(); + } + }], + fieldDefaults : { + labelAlign : 'right', + labelWidth : 50 + }, + items : [{ + xtype : 'fieldset', + height : 50, + width : '100%', + layout : 'column', + title : '清洗交接基本信息', + items : [{ + layout : 'form', + columnWidth : .3, + bodyStyle : {background : '#EBF5EC', border : 0}, + items : [{ + xtype : 'textfield', + border : 0, + fieldLabel : '清洗人', + name : "handover", + id : "handover", + readOnly : true, + fieldCls : 'fieldReadOnlyNoRemoveAndTop' + }] + },{ + layout : 'form', + columnWidth : .3, + bodyStyle : {background : '#EBF5EC', border : 0}, + items : [{ + xtype : 'textfield', + columnWidth : .3, + fieldLabel : '配包人', + name : "takeover", + id : "takeover", + readOnly : true, + fieldCls : 'fieldReadOnlyNoRemoveAndTop' + }] + },{ + layout : 'form', + columnWidth : .4, + bodyStyle : {background : '#EBF5EC', border : 0}, + items : [{ + xtype : 'textfield', + columnWidth : .3, + fieldLabel : "交接时间", + labelWidth : 60, + name : "transitionTime", + id : "transitionTime", + readOnly : true, + fieldCls : 'fieldReadOnlyNoRemoveAndTop' + }] + }] + },{ + xtype : 'container', + flex : 1, + width : '100%', + layout : 'fit', + items : washTransitionRecordInfoTreeGrid + }] + }); + + windowObj = Ext4.create('Ext4.window.Window', { + layout : 'fit', + title : '清洗交接信息', + width : 600, + height : 400, + resizable :false, + modal : true, + border : false, + plain : true, + items : formObj + }); + windowObj.show(); + } +} \ No newline at end of file