Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/sterilizationmanager/sterilizationrecord/SterilizationRecord.java =================================================================== diff -u -r29469 -r29472 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/sterilizationmanager/sterilizationrecord/SterilizationRecord.java (.../SterilizationRecord.java) (revision 29469) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/sterilizationmanager/sterilizationrecord/SterilizationRecord.java (.../SterilizationRecord.java) (revision 29472) @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Entity; @@ -36,6 +37,7 @@ import com.forgon.disinfectsystem.entity.packing.ReviewedBasket; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizerrecord.SterilizerGrossRecord; import com.forgon.disinfectsystem.entity.urgent.UrgentLevel; +import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.util.ForgonDateUtils; /** @@ -359,7 +361,7 @@ public static final String STATUS_NOTUNLOAD = "未卸载"; /** - * 灭菌物品是否包含植入物 + * 灭菌物品是否包含植入物(不保存到数据库) */ private String includeImplant = Constants.STR_NO; @@ -979,12 +981,51 @@ this.disinfectionAmount = disinfectionAmount; } + @Transient public String getIncludeImplant() { return includeImplant; } public void setIncludeImplant(String includeImplant) { this.includeImplant = includeImplant; } + + /** + * 获取灭菌记录的灭菌物品是否包含植入物 + * @param objectDao + * @return + */ + public String getIncludeImplant(ObjectDao objectDao) { + if(CollectionUtils.isNotEmpty(tousseInstanceList)){ + for (TousseInstance tousseInstance : tousseInstanceList) { + TousseDefinition td = tousseInstance.getTousseDefinition(); + if(StringUtils.equals(td.getIncludeImplantStr(), Constants.STR_YES)){ + return Constants.STR_YES; + } + } + } + if(CollectionUtils.isNotEmpty(reviewedBaskets)){ + for (ReviewedBasket reviewedBasket : reviewedBaskets) { + Set tiList = reviewedBasket.getTousseInstances(objectDao); + if(CollectionUtils.isNotEmpty(tiList)){ + for (TousseInstance tousseInstance : tiList) { + TousseDefinition td = tousseInstance.getTousseDefinition(); + if(StringUtils.equals(td.getIncludeImplantStr(), Constants.STR_YES)){ + return Constants.STR_YES; + } + } + } + } + } + return Constants.STR_NO; + } + + /** + * 灭菌记录的灭菌物品是否包含植入物 + * @param objectDao + */ + public void setIncludeImplant(ObjectDao objectDao) { + includeImplant = getIncludeImplant(objectDao); + } } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java =================================================================== diff -u -r29469 -r29472 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 29469) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 29472) @@ -540,7 +540,7 @@ sterilizationRecordManager.fillBarcodeToListFromSterilizationRecordWithoutReviewedBasket(sterilizationRecord, barcodes, fixedBarcodes); } } - + sterilizationRecord.setIncludeImplant(objectDao); Map map = new HashMap(); map.put("success", true); map.put("data", sterilizationRecord); Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r29469 -r29472 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 29469) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 29472) @@ -1640,7 +1640,6 @@ } } - sterilizationRecord.setIncludeImplant(TousseDefinition.STR_NO); // 设置新器械包列表 List tousseInstanceList = new ArrayList( tousseInstanceBarcodes.size()); @@ -1660,13 +1659,6 @@ tousseInstanceList.add(tousseInstance); } } - for (TousseInstance tousseInstance : list) { - TousseDefinition tousseDefinition = tousseInstance.getTousseDefinition(); - if(StringUtils.equals(tousseDefinition.getIncludeImplantStr(), TousseDefinition.STR_YES)){ - sterilizationRecord.setIncludeImplant(TousseDefinition.STR_YES); - break; - } - } } } sterilizationRecord.setTousseInstanceList(tousseInstanceList); @@ -1713,15 +1705,6 @@ allNewTousseInstances, tousseInstances); } - if(CollectionUtils.isNotEmpty(tousseInstances)){ - for (TousseInstance tousseInstance : tousseInstances) { - TousseDefinition tousseDefinition = tousseInstance.getTousseDefinition(); - if(StringUtils.equals(tousseDefinition.getIncludeImplantStr(), TousseDefinition.STR_YES)){ - sterilizationRecord.setIncludeImplant(TousseDefinition.STR_YES); - break; - } - } - } } //验证该炉灭菌记录所有包(不追溯的包除外)的灭菌方式是否有不同,如果有则进行提示并抛出异常给前端 @@ -4935,7 +4918,6 @@ WareHouse defaultWareHouse = wareHouseManager.getDefaultWareHouseByUnitCode(orgUnitCode); //=====================1、处理器械包 //=========================处理新增器械包 - sr.setIncludeImplant(TousseDefinition.STR_NO); if(CollectionUtils.isNotEmpty(tousseInstanceBarcodes)){ for(String tousseInstanceBarcode : tousseInstanceBarcodes){ tousseInstanceBarcodesInclude.add(tousseInstanceBarcode); @@ -4976,13 +4958,6 @@ tousseInstanceManager.setToWarehouse(ti, defaultWareHouse); } } - for (TousseInstance ti : tiList) { - TousseDefinition tousseDefinition = ti.getTousseDefinition(); - if(StringUtils.equals(tousseDefinition.getIncludeImplantStr(), TousseDefinition.STR_YES)){ - sr.setIncludeImplant(TousseDefinition.STR_YES); - break; - } - } } catch (Exception e) { e.printStackTrace(); result.put(JSONUtil.JSON_KEY_SUCCESS, false); @@ -5092,15 +5067,6 @@ ti.setSterileFrequency(sterileFrequency); objectDao.saveOrUpdate(ti); } - if(StringUtils.equals(sr.getIncludeImplant(), TousseDefinition.STR_NO)){ - for (TousseInstance ti : tiList) { - TousseDefinition tousseDefinition = ti.getTousseDefinition(); - if(StringUtils.equals(tousseDefinition.getIncludeImplantStr(), TousseDefinition.STR_YES)){ - sr.setIncludeImplant(TousseDefinition.STR_YES); - break; - } - } - } rb.getContainer().setStatus( Container.CONTAINER_STATUS_FREE);//设置篮筐为空闲 objectDao.saveOrUpdate(rb.getContainer()); objectDao.saveOrUpdate(rb); Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java =================================================================== diff -u -r29470 -r29472 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java (.../SterilizationRecordTableManager.java) (revision 29470) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java (.../SterilizationRecordTableManager.java) (revision 29472) @@ -15,6 +15,7 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -228,8 +229,10 @@ JSONObject obj=JSONObject.fromObject(renderGrid); JSONArray arry = obj.getJSONArray("rows"); JSONArray tempArray=new JSONArray(); + List sterilizationRecordIdList = new ArrayList(); for (int i = 0; i < arry.size(); i++) { JSONObject jsObj =JSONObject.fromObject(arry.get(i)); + sterilizationRecordIdList.add(jsObj.optLong("id")); int count = objectDao.countBySql("select count(*) from "+SterilizationRecordPic.class.getSimpleName()+" where sterilizationRecord_id = "+jsObj.opt("id")+" "); if(count==0){ tempArray.add(jsObj); @@ -238,10 +241,37 @@ jsObj.put("isExist", true); tempArray.add(jsObj); } + tempArray = setIncludeImplant(tempArray, sterilizationRecordIdList); obj.put("rows", tempArray); return obj.toString(); } + /** + * 灭菌记录的物品是否包含植入物 + * @param arry + * @param sterilizationRecordIdList + * @return + */ + private JSONArray setIncludeImplant(JSONArray arry, List sterilizationRecordIdList) { + @SuppressWarnings("unchecked") + List sterilizationRecordList = objectDao.findByIds(SterilizationRecord.class.getSimpleName(), sterilizationRecordIdList); + if(CollectionUtils.isNotEmpty(sterilizationRecordList)){ + JSONArray newArray = new JSONArray(); + Map includeImplantMap = new HashMap(); + for (SterilizationRecord sterilizationRecord : sterilizationRecordList) { + includeImplantMap.put(sterilizationRecord.getId(), sterilizationRecord.getIncludeImplant(objectDao)); + } + for (int i = 0; i < arry.size(); i++) { + JSONObject jsObj =JSONObject.fromObject(arry.get(i)); + Long recordId = jsObj.optLong("id"); + jsObj.put("includeImplant", includeImplantMap.get(recordId)); + newArray.add(jsObj); + } + return newArray; + } + return arry; + } + public String getSterilizationShelfByBarcode(String barcode) { String result = null; BarcodeDevice barcodeDevice = barcodeManager