Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/dwr/table/ForeignTousseApplicationTableManager.java =================================================================== diff -u -r19695 -r19789 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/dwr/table/ForeignTousseApplicationTableManager.java (.../ForeignTousseApplicationTableManager.java) (revision 19695) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/dwr/table/ForeignTousseApplicationTableManager.java (.../ForeignTousseApplicationTableManager.java) (revision 19789) @@ -1,19 +1,29 @@ package com.forgon.disinfectsystem.foreigntousseapplication.dwr.table; +import java.sql.ResultSet; +import java.sql.SQLException; import java.util.List; import java.util.Map; + import net.sf.json.JSONObject; + import org.apache.commons.lang.StringUtils; + +import net.sf.json.JSONArray; + import com.forgon.component.grid.GridManager; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; +import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.foreigntousseapplication.ForeignTousseApplication; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; import com.forgon.disinfectsystem.foreigntousseapplication.service.ForeignTousseApplicationManager; import com.forgon.disinfectsystem.tousse.toussedefinition.service.TousseInstanceManager; import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.hibernate.ObjectDao; +import com.forgon.tools.string.StringTools; /** * @author panhaowen @@ -30,6 +40,12 @@ private SupplyRoomConfigManager supplyRoomConfigManager; + private ObjectDao objectDao; + + public void setObjectDao(ObjectDao objectDao) { + this.objectDao = objectDao; + } + public void setSupplyRoomConfigManager( SupplyRoomConfigManager supplyRoomConfigManager) { this.supplyRoomConfigManager = supplyRoomConfigManager; @@ -84,11 +100,52 @@ String sql = sqlBuilder.toString(); - return gridManager + String result = gridManager .renderGrid(parameterMap, ForeignTousseApplication.class.getSimpleName(), sql, new String[] { "invoice","applicationItems" }); + //在外来器械包申请单中是否显示外来器械包实例条码字段,解决 HZSRMYY-30 外来器械包申请列表新增列 + boolean showForeignTousseApplicationBarcode = CssdUtils + .getSystemSetConfigByNameBool("showForeignTousseApplicationBarcode", false); + if (showForeignTousseApplicationBarcode) { + result = foreignTousseApplicationBarcodeHandler(result); + } + return result; } + + /** + * 重新获取每张外来器械包申请单所关联的外来器械包实例条码 + * @param result + * @return + */ + private String foreignTousseApplicationBarcodeHandler(String result) { + if (StringTools.isNotBlank(result)) { + JSONObject resultJsonObj = JSONObject.fromObject(result); + if (resultJsonObj != null) { + JSONArray rows = resultJsonObj.getJSONArray("rows"); + for (Object row : rows) { + JSONObject obj = (JSONObject) row; + Long id = obj.optLong("id"); + + String barcodes = ""; + String sql = String.format("select bd.barcode from TousseInstance ti join barcodeDevice bd on bd.id=ti.id where ti.foreignTousseApp_id=%s", id); + ResultSet rs = objectDao.executeSql(sql); + try { + while(rs.next()){ + barcodes = String.format("%s;%s", barcodes, StringTools.defaultString(rs.getString("barcode"))); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + obj.put("barcodes", StringTools.isNotBlank(barcodes) ? barcodes.substring(1) : ""); + } + result = resultJsonObj.toString(); + } + } + return result; + } /** * 填写外来器械包申请单时,是否禁用“确认归还”和“提前归还”按钮 Index: ssts-web/src/main/webapp/disinfectsystem/config/hzszxrmyy/config.js =================================================================== diff -u -r19779 -r19789 --- ssts-web/src/main/webapp/disinfectsystem/config/hzszxrmyy/config.js (.../config.js) (revision 19779) +++ ssts-web/src/main/webapp/disinfectsystem/config/hzszxrmyy/config.js (.../config.js) (revision 19789) @@ -64,6 +64,8 @@ isShowUpdateDetail : true, //是否在个人桌面显示外部代理灭菌的图标(配置成true则显示,配置成falsea或者不配置都不显示) showForeignProxySterilizationDesktopIcon : true, + //在外来器械包申请单中是否显示外来器械包实例条码字段(配置成true则显示,配置成falsea或者不配置都不显示) + showForeignTousseApplicationBarcode : true, //是否启用装配任务的序列号 enablePackingSerialNum:true Index: ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.js =================================================================== diff -u -r17833 -r19789 --- ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.js (.../foreignTousseApplicationView.js) (revision 17833) +++ ssts-web/src/main/webapp/disinfectsystem/foreigntousseapplication/foreignTousseApplicationView.js (.../foreignTousseApplicationView.js) (revision 19789) @@ -96,6 +96,7 @@ {header : "病人姓名",width : 60,dataIndex : 'patient'}, {header : "医生",width : 60,dataIndex : 'doctor'}, {header : "外来器械包名称",width : 150,dataIndex : 'tousseName'}, + {header : "外来器械包条码",width : 150,dataIndex : 'barcodes', hidden:!sstsConfig.showForeignTousseApplicationBarcode,sortable:false}, {header : "供应商",width : 150,dataIndex : 'supplierName'}, {header : "手术名称",width : 150,dataIndex : 'surgery'}, {header : "包状态",width : 50,dataIndex : 'packageStatus',renderer:renderColor}, @@ -121,6 +122,7 @@ {name : 'id'}, {name : 'applicant'}, {name : 'applicationTime'}, + {name : 'barcodes'}, {name : 'depart'}, {name : 'deliverStatus'}, {name : 'recyclingStatus'}, Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/foreigntousseapplication/ForeignTousseApplication.java =================================================================== diff -u -r17212 -r19789 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/foreigntousseapplication/ForeignTousseApplication.java (.../ForeignTousseApplication.java) (revision 17212) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/foreigntousseapplication/ForeignTousseApplication.java (.../ForeignTousseApplication.java) (revision 19789) @@ -3,6 +3,7 @@ import java.util.Date; import java.util.List; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Transient; @@ -90,6 +91,12 @@ private String readerOrgUnitCode; private Integer isPacking = 0; + + /** + * 解决 HZSRMYY-30 外来器械包申请列表新增列 + * 关联的所有外来器械包实例条码的集合(如果拆包也需要体现出来,之间用分号分隔),此属性没有值,显示时动态查出来的 + */ + private String barcodes; public static final String APPLICATION_STATUS_SHIPPED = "待发货"; public static final String APPLICATION_STATUS_SIGNED = "已接收"; @@ -384,5 +391,14 @@ public void setSupplierName(String supplierName) { this.supplierName = supplierName; } + + @Column(length=4000) + public String getBarcodes() { + return barcodes; + } + + public void setBarcodes(String barcodes) { + this.barcodes = barcodes; + } }