Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java =================================================================== diff -u -r13977 -r14333 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java (.../SterilizationRecordTableManager.java) (revision 13977) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java (.../SterilizationRecordTableManager.java) (revision 14333) @@ -27,6 +27,8 @@ import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.basedatamanager.sterilisation.Sterilisation; import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.packing.ReviewedBasket; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; import com.forgon.disinfectsystem.sterilizationmanager.sterilizationrecord.service.SterilizationRecordManager; @@ -494,4 +496,20 @@ json.put("message", msg); return json.toString(); } + /** + * 器械包是否加急 + * @param barcode + * @return + */ + public boolean isTousseUrgent(String barcode){ + BarcodeDevice barcodeDevice = barcodeManager + .getBarcodeByBarcode(barcode); + if(barcodeDevice instanceof TousseInstance){ + String isUrgent = ((TousseInstance) barcodeDevice).getIsUrgentTousse(); + if(isUrgent != null && isUrgent.equals(TousseDefinition.STR_YES)){ + return true; + } + } + return false; + } } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r14217 -r14333 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 14217) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 14333) @@ -823,9 +823,11 @@ JSONArray tousseInBasketArray = new JSONArray(); boolean isNotTimeout = true; + boolean isBasketUrgent = false; for (TousseSimpleVO vo : vos) { JSONObject tousseInBasket = new JSONObject(); + String isUrgentTousse = vo.getIsUrgentTousse(); boolean isTimeout = timeoutManager.isTimeouted(vo.getReviewTime(),timeoutSetting); tousseInBasket.put("objName", vo.getItemDefinition().getName()); tousseInBasket.put("objBarcode", vo.getBarcode()); @@ -839,13 +841,24 @@ if(isTimeout){ isNotTimeout = false; } + if(isUrgentTousse != null && isUrgentTousse.equals(TousseDefinition.STR_YES )){ + isBasketUrgent = true; // 只要有一个包加急,篮筐就显示加急 + tousseInBasket.put("isUrgent", TousseDefinition.STR_YES); + }else{ + tousseInBasket.put("isUrgent", TousseDefinition.STR_NO); + } tousseInBasketArray.add(tousseInBasket); } basketObj.put("children", tousseInBasketArray); basketObj.put("isTimeout", !isNotTimeout); + if(isBasketUrgent){ + basketObj.put("isUrgent", TousseDefinition.STR_YES); + }else{ + basketObj.put("isUrgent", TousseDefinition.STR_NO); + } if(isNotTimeout){ notTimeoutArray.add(basketObj); }else{ @@ -868,13 +881,17 @@ obj.put("cls", isTimeout ? "itemTimeout" : "master-task"); obj.put("iconCls", "task"); obj.put("isTimeout", isTimeout); + // 是否加急 + if(tousseOutsideBasket.getIsUrgentTousse() != null && tousseOutsideBasket.getIsUrgentTousse().equals(TousseDefinition.STR_YES )){ + obj.put("isUrgent", TousseDefinition.STR_YES); + }else{ + obj.put("isUrgent", TousseDefinition.STR_NO); + } if(isTimeout){ jsonArray.add(obj); }else{ notTimeoutArray.add(obj); } - - } jsonArray.addAll(notTimeoutArray); //未超时的加到最后 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/TousseSimpleVO.java =================================================================== diff -u -r13971 -r14333 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/TousseSimpleVO.java (.../TousseSimpleVO.java) (revision 13971) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/vo/TousseSimpleVO.java (.../TousseSimpleVO.java) (revision 14333) @@ -17,6 +17,7 @@ private String orgUnitName; private ItemDefinitionVO itemDefinition; private String barcode; + private String isUrgentTousse; /** * 新增加审核时间的属性,用于省医需求待灭菌及待灭菌装配的显示 * @since 2016-06-29 by shuyongfu @@ -26,6 +27,14 @@ private Long foreignProxyItemId; private Long proxyDisinfectionId; + public String getIsUrgentTousse() { + return isUrgentTousse; + } + + public void setIsUrgentTousse(String isUrgentTousse) { + this.isUrgentTousse = isUrgentTousse; + } + public String getBarcode() { return barcode; } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r14319 -r14333 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 14319) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 14333) @@ -455,7 +455,7 @@ String currentOrgUnitCode = AcegiHelper.getCurrentOrgUnitCode(); //普通器械包、消毒物品、敷料包 String sql = " select t.id id, t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," - + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime " + + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, barcodedevice b , cssdHandleTousses tt , TousseDefinition td " + "where t.id = b.id and tt.tousseDefinitionId=td.ancestorID and t.tousseDefinition_id=td.id and t.reviewBasket_id =" + reviewedBasket.getId() @@ -469,7 +469,7 @@ //外来器械包、外来器械拆分小包 if(taskGroup.equals(supplyRoomConfig.getDefalutTaskGroup())){ sql += " union all select t.id id, t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," - + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime " + + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"') and t.reviewBasket_id =" + reviewedBasket.getId() @@ -479,7 +479,7 @@ //自定义器械包 if(taskGroup.equals(supplyRoomConfig.getCustomTousseDefaultTaskGroup())){ sql += " union all select t.id id, t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," - + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime " + + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"') and t.reviewBasket_id =" + reviewedBasket.getId() @@ -488,7 +488,7 @@ } //外部代理灭菌 sql += " union all select t.id id, t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," - + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime " + + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY+"') and t.reviewBasket_id =" + reviewedBasket.getId() @@ -497,23 +497,23 @@ }else{ //外来器械包、外来器械拆分小包 sql += " union all select t.id id, t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," - + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime " + + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGN+"','"+TousseDefinition.PACKAGE_TYPE_SPLIT+"') and t.reviewBasket_id =" + reviewedBasket.getId() + " and t.orgUnitCoding='"+currentOrgUnitCode+"'" + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'"; //自定义器械包 sql += " union all select t.id id, t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," - + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime " + + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_CUSTOM+"') and t.reviewBasket_id =" + reviewedBasket.getId() + " and t.orgUnitCoding='"+currentOrgUnitCode+"'" + " and t.status <> '" + TousseInstance.STATUS_DISCARD + "'"; //外部代理灭菌 sql += " union all select t.id id, t.tousseName name, td.tousseType, t.tousseName, b.barcode, t.validUntil, t.sterilingType," - + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime " + + "t.orgUnitCoding, t.orgUnitName, t.foreignProxyItem_Id, t.proxyDisinfection_Id,t.reviewTime,t.isUrgentTousse " + "from tousseinstance t, barcodedevice b , TousseDefinition td " + "where t.id = b.id and t.tousseDefinition_id=td.id and td.tousseType in ('"+TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY+"') and t.reviewBasket_id =" + reviewedBasket.getId() @@ -538,6 +538,7 @@ vo.setOrgUnitName(rs.getString("OrgUnitName")); vo.setValidUntil(rs.getString("ValidUntil")); vo.setSterilingType(rs.getString("SterilingType")); + vo.setIsUrgentTousse(rs.getString("isUrgentTousse")); vo.setForeignProxyItemId(rs.getLong("foreignProxyItem_Id")); vo.setProxyDisinfectionId(rs.getLong("proxyDisinfection_Id")); Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js =================================================================== diff -u -r14292 -r14333 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 14292) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 14333) @@ -864,6 +864,7 @@ var objAmount = 1; var type = clickNode.attributes.type; var array = new Array(); + var isBasketUrgent = false; if (type == '篮筐') { type = 'BASKET'; @@ -875,17 +876,44 @@ var childObjName = pNode.attributes.name; var childObjAmount = 1; var childType = 'TOUSSE_IN'; + var isUrgent = '否'; var childNode = createPendingSterilizationGoodsNode(childObjBarcode, childObjName, childObjAmount, childType); + DWREngine.setAsync(false); + //如果灭菌程序不能添加器械包,要清除灭菌物品列表 + SterilizationRecordTableManager.isTousseUrgent(childObjBarcode,function(result){ + if(result == true){ + isUrgent = '是'; + isBasketUrgent = true; + } + }); + DWREngine.setAsync(true); + childNode.attributes.isUrgent = isUrgent; array.push(childNode); }); } else { type = 'TOUSSE'; } var node = createPendingSterilizationGoodsNode(objBarcode, objName, objAmount, type); + if(type == 'TOUSSE'){ + var isUrgent = '否'; + DWREngine.setAsync(false); + //如果灭菌程序不能添加器械包,要清除灭菌物品列表 + SterilizationRecordTableManager.isTousseUrgent(node.attributes.objBarcode,function(result){ + if(result == true){ + isUrgent = '是'; + } + }); + DWREngine.setAsync(true); + node.attributes.isUrgent=isUrgent; + } if (type == 'BASKET') { + if(isBasketUrgent){ + node.attributes.isUrgent = '是'; + } node.appendChild(array); } + pendingSterilizationColumnTree.getRootNode().appendChild(node); } @@ -987,6 +1015,7 @@ columns:[ {header:'条码',width:110,dataIndex:'barcode'}, {header:'名称',width:170,dataIndex:'name'}, + {header:'加急',width:170,dataIndex:'isUrgent',hidden:true}, {header:'审核时间',width:170,dataIndex:'reviewTime',hidden:true}, {header:'删除',width:40,dataIndex:'type', renderer:function(v,p,record){ @@ -1058,6 +1087,17 @@ width : 35, dataIndex : 'objAmount' },{ + header : '加急', + width : 35, + dataIndex : 'isUrgent', + renderer : function(v, p, record) { + if (v == '是') { + return '' + v + ''; + }else{ + return '' + '否' + ''; + } + } + },{ header : '审核时间', width : 135, dataIndex : 'reviewTime'