Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManager.java =================================================================== diff -u -r19303 -r19311 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManager.java (.../ReviewedBasketManager.java) (revision 19303) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManager.java (.../ReviewedBasketManager.java) (revision 19311) @@ -29,15 +29,28 @@ * @return */ public List getDepartAllReviewedBasket(String departCode); - + + /** + * 删除审核篮筐. + * @param reviewedBasket + */ public void deleteReviewedBasket(ReviewedBasket reviewedBasket); + /** + * 根据barcode找篮筐,如果没找到则根据taskGroup新建一个. + * @param basketBarcode + * @return + */ public ReviewedBasket getReviewedBasketButNew(String basketBarcode); + /** + * 通过条形码获得本任务组正处于整理的篮筐. + * @param barcode 容器条码 + * @return + */ public ReviewedBasket getBasketByBarcode(String barcode); /** - * 根据条形码查找篮筐(sterilizeRecordId为空表示篮筐还未与灭菌记录绑定) - * + * 根据条形码查找篮筐(sterilizeRecordId为空表示篮筐还未与灭菌记录绑定). * @param barcode * @param sterilizeRecordId 调用的地方传的参数都是null,取消参数 * @return @@ -47,7 +60,7 @@ /** * 根据条形码查找篮筐(sterilizeRecordId为空表示篮筐还未与灭菌记录绑定) * ###为防止与其它功能冲突此方法只单独提供被SterilizationRecordManagerImpl.saveOrUpdateSterilizationRecord方法调用 - * 与上一个方法不同点是:如果sterilizeRecordId为空-即新建的灭菌单,除了查询不与任何灭菌单关联的篮筐,同时也查与灭菌失败的灭菌单关联的篮筐实例.以实现 + * 与上一个方法不同点是:如果sterilizeRecordId为空-即新建的灭菌单,除了查询不与任何灭菌单关联的篮筐,同时也查与灭菌失败的灭菌单关联的篮筐实例.以实现. * @param barcode 篮筐条码 * @param sterilizeRecordId 灭菌单id * @author SYF @@ -61,6 +74,9 @@ public void deleteAllTousse(String reviewBasketId); + /** + * 删除空白篮筐. + */ public void deleteEmptyBasket(); /** Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r19303 -r19311 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 19303) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 19311) @@ -86,14 +86,10 @@ public class SterilizationRecordManagerImpl extends BasePoManagerImpl implements SterilizationRecordManager { - private Logger logger = Logger.getLogger(SterilizationRecordManagerImpl.class); - private SerialNumManager serialNumManager; private SterilizerManager sterilizerManager; - private BarcodeManager barcodeManager; - private TousseInstanceManager tousseInstanceManager; private TousseStockManager tousseStockManager; @@ -140,10 +136,6 @@ this.sterilizerManager = sterilizerManager; } - public void setBarcodeManager(BarcodeManager barcodeManager) { - this.barcodeManager = barcodeManager; - } - public void setTousseInstanceManager( TousseInstanceManager tousseInstanceManager) { this.tousseInstanceManager = tousseInstanceManager; @@ -178,50 +170,6 @@ } - private void updateFirstSupplyRoomStock(SupplyRoomConfig firstSupplyRoom, - Map tousseMap,Map> tousseListMap) { - DepartmentStock supplyRoomStock = null; - if (tousseMap != null) { - Iterator itr = tousseMap.keySet().iterator(); - while (itr.hasNext()) { - String tousseName = itr.next(); - Integer amount = tousseMap.get(tousseName); - if (firstSupplyRoom != null) { - supplyRoomStock = departmentStockManager - .getByDepartCodingAndTousseName( - firstSupplyRoom.getOrgUnitCoding(), - tousseName); - } - - if (supplyRoomStock != null) { - supplyRoomStock.setAmount(supplyRoomStock.getAmount() - + amount); - } else { - supplyRoomStock = new DepartmentStock(); - supplyRoomStock.setAmount(amount); - supplyRoomStock.setCardinalNum(0); - supplyRoomStock.setDepartCoding(firstSupplyRoom - .getOrgUnitCoding()); - supplyRoomStock.setDepartName(firstSupplyRoom - .getOrgUnitName()); - supplyRoomStock.setTousseName(tousseName); - supplyRoomStock.setUsedAmount(0); - } - - List tousseInstanceList = tousseListMap.get(tousseName); - if(tousseInstanceList != null){ - for (TousseInstance tousseInstance : tousseInstanceList) { - - tousseInstance.setDepartmentStock_id(supplyRoomStock.getId()); - objectDao.save(tousseInstance); - } - } - - departmentStockManager.saveOrUpdata(supplyRoomStock); - } - } - } - /** * 更新旧的灭菌记录 有时器械包在灭菌后不合格需要重新灭菌,并非该炉灭菌失败,而是某几个器械包需要重新灭菌 * 这时需要将这些器械包重新扫入灭菌记录中,并用新的灭菌记录覆盖旧的灭菌记录 @@ -302,13 +250,23 @@ } } } + @Override public JSONObject completeSterilization(Collection sterilizationRecordIds, String orgUnitCode,String finishOperater){ if(StringUtils.isBlank(finishOperater)){ finishOperater = AcegiHelper.getLoginUserFullName(); } return completeSterilization(sterilizationRecordIds,orgUnitCode,finishOperater,finishOperater); } + + /** + * 灭菌完成. + * @param sterilizationRecordIds + * @param orgUnitCode + * @param finishOperater + * @param finishComfirmer + * @return + */ private JSONObject completeSterilization(Collection sterilizationRecordIds, String orgUnitCode,String finishOperater,String finishComfirmer){ return completeSterilization(sterilizationRecordIds,orgUnitCode,finishOperater,finishComfirmer,false); @@ -320,7 +278,6 @@ * @return */ private boolean checkIncludeImplant(SterilizationRecord sterilizationRecord) { - Collection allTousseInstances = CollectionUtils.emptyCollection(); //所有器械包,包括直接隶属的器械包和在篮筐里的器械包 allTousseInstances = CollectionUtils @@ -339,7 +296,6 @@ } } return false; - } @Override @@ -551,17 +507,9 @@ e.printStackTrace(); throw new RuntimeException(e.getMessage()); } - //更新库存(旧版本的库存不再使用,代码注释) - //updateTousseStock(tousseMap); - //updateFirstSupplyRoomStock(supplyRoomConfig,tousseMap,tousseListMap); - -// throw new RuntimeException("测试"); - return JSONUtil.buildJsonObject(true, "完成灭菌。"); } - /** - * 灭菌完成确认 - */ + @Override public JSONObject completeSterilizationConfirm(Long sterilizationRecordId, String confirmName,String barcodes,boolean isConfirmShowUnload){ SterilizationRecord sterilizationRecord = getSterilizationRecordById_ForUpdate(sterilizationRecordId); @@ -747,6 +695,13 @@ } } + /** + * 更新器械包实例的一些属性. + * @param sdf + * @param sterilizationRecord + * @param tousseInstance + * @param needFinishConfirm + */ private void updateTousseInstanceProperty(SimpleDateFormat sdf, SterilizationRecord sterilizationRecord, TousseInstance tousseInstance,Boolean needFinishConfirm) { @@ -789,37 +744,6 @@ } } - private void updateTousseStock(Map tousseMap){ - if(tousseMap != null){ - Iterator itr = tousseMap.keySet().iterator(); - while(itr.hasNext()){ - String tousseName = itr.next(); - Integer amount = tousseMap.get(tousseName); - // 更新器械包库存 - TousseStock tousseStock = tousseStockManager - .getTousseStockByTousseName(tousseName); - if (tousseStock == null) { - tousseStock = new TousseStock(); - tousseStock.setTousseName(tousseName); - tousseStock.setStockAmount(amount); - tousseStock.setTousseAmount(amount); - tousseStockManager - .saveOrUpdateTousseStock(tousseStock); - } else { - tousseStock.setTousseAmount(tousseStock - .getTousseAmount() + amount); - if (tousseStock.getTousseAmount() > tousseStock - .getStockAmount()) { - tousseStock.setStockAmount(tousseStock - .getTousseAmount()); - } - tousseStockManager - .saveOrUpdateTousseStock(tousseStock); - } - } - } - } - /** * 根据灭菌记录id获取SterilizationRecord.. * @param id 灭菌记录id @@ -830,11 +754,7 @@ return (SterilizationRecord) objectDao.getByProperty( SterilizationRecord.class.getSimpleName(), "id", id); } - /** - * 根据灭菌记录id获取SterilizationRecord..加锁 - * @param id 灭菌记录id - * @return - */ + @Override public SterilizationRecord getSterilizationRecordById_ForUpdate(Long id) { return (SterilizationRecord) objectDao.getByProperty_ForUpdate( @@ -845,7 +765,7 @@ return (SterilizationRecord) objectDao.getByProperty( SterilizationRecord.class.getSimpleName(), "id", Long.valueOf(id)); } - // 获取所有的温度和压力的灭菌记录 + @Override public List getSterilizaerRecordsById(Long id) { @@ -858,28 +778,18 @@ + " and s.machineNo = :machineNo" + " and s.cycleCounter = :cycleCounter"; Query query = session.createQuery(queryString); - String str = sr.getSterilizer().getDeviceInterfaceId(); - str = sr.getSterilizer().getMachineNumber(); +// String str = sr.getSterilizer().getDeviceInterfaceId(); +// str = sr.getSterilizer().getMachineNumber(); query.setParameter("devInterfaceId", sr.getSterilizer().getDeviceInterfaceId()); query.setParameter("machineNo", sr.getSterilizer().getMachineNumber()); query.setParameter("cycleCounter", sr.getCycleCounter()); List result = query.list(); if( !CollectionUtils.isEmpty(result)) return result; } -// int count = 0; -// Long result = (Long)query.uniqueResult(); -// if (result != null && StringUtils.isNumeric(result + "")){ -// count = result.intValue(); -// } return null; } - public SterilizationRecord getSterilizationRecordByID_ForUpdate(String id) { - return (SterilizationRecord) objectDao.getByProperty_ForUpdate( - SterilizationRecord.class.getSimpleName(), "id", id); - } - public void setSupplyRoomConfigManager( SupplyRoomConfigManager supplyRoomConfigManager) { this.supplyRoomConfigManager = supplyRoomConfigManager; @@ -891,13 +801,6 @@ } @Override - @SuppressWarnings("unchecked") - public List getAllSterilizationRecord() { - return objectDao.findAllObjects(SterilizationRecord.class - .getSimpleName()); - } - - @Override public int getMaxFrequency(Sterilizer sterilizer, Long id) { if (sterilizer != null && sterilizer.getId() != null) { if (id == null || id < 0) { @@ -983,13 +886,6 @@ return DEFALUT_VALUE; } - /** - * 获取某条灭菌记录所关联的接口数据的条数 - * @param devInterfaceId 设备接口的ID - * @param machineNo 设备的机器号 - * @param cycleCounter 设备的循环次数 - * @return - */ @Override public int getSterilerRecordsCount(String devInterfaceId, String machineNo, Long cycleCounter) { Session session = objectDao.getHibernateSession(); @@ -1044,6 +940,7 @@ } } } + @Override public boolean delete(String sterilizationRecordIdStr) { boolean success = false; @@ -1082,10 +979,7 @@ } return success; } - /** - * 保存或更新灭菌记录 - * 检查发现一旦有某一个器械包在其它灭菌单已完成灭菌,则给予提示,返回相应的提示消息至客户端 - */ + @Override public Map saveOrUpdateSterilizationRecord( SterilizationRecord sterilizationRecord, @@ -1095,11 +989,7 @@ return saveOrUpdateSterilizationRecord(sterilizationRecord,tousseInstanceBarcodes, containerBarcodes,originalSterilizationRecordId,null); } - /** - * 保存或更新灭菌记录 - * 检查发现一旦有某一个器械包在其它灭菌单已完成灭菌,则给予提示,返回相应的提示消息至客户端 - * 增加条码和位置信息 - */ + @Override public Map saveOrUpdateSterilizationRecord( SterilizationRecord sterilizationRecord, @@ -1379,10 +1269,13 @@ Log.MODEL_STERILIZATION, "U", "id:" + sterilizationRecord.getId() + ",data:" + param.toString() + msg); } -// throw new RuntimeException("保存测试"); return result; } - // 计算并更新灭菌记录的器械统计信息 + + /** + * 计算并更新灭菌记录的器械统计信息. + * @param sterilizationRecord + */ private void updateSterilizationRecordStatisticsInfo( SterilizationRecord sterilizationRecord) { updateSterilizationRecordStatisticsInfo(sterilizationRecord,null); @@ -1455,9 +1348,6 @@ saveOrUpdate(sterilizationRecord); } - /** - * 更新灭菌记录为灭菌失败(灭菌篮筐状态更新为灭菌装载,器械包实例状态更新为已审核) - */ @Override public void updateFailureSterilizedRecordStatus( Collection sterilizationRecordIds) { @@ -1536,9 +1426,7 @@ saveOrUpdate(sterilizationRecord); } } - /** - * 更新灭菌记录为灭菌中断 - */ + @Override public void updateSterilizedInerruptRecordStatus( Collection sterilizationRecordIds) { @@ -1581,14 +1469,10 @@ updateSterilizedInerruptRecordStatus(list); } } - /** - * 继续灭菌 - */ + @Override public void continueSterilization( Collection sterilizationRecordIds) { - SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager - .getSystemParamsObj(); for (Long id : sterilizationRecordIds) { SterilizationRecord sr = getSterilizationRecordById(id); if (sr == null @@ -1602,9 +1486,7 @@ saveOrUpdate(sr); } } - /** - * 获取中断记录 - */ + @Override public List getInerruptRecords(Long id){ if( id == null || id == 0L) @@ -1615,6 +1497,7 @@ SterilizationInterruptRecord.class.getName(), sql); return interruptRecordSet; } + /** * 为二级供应室生成发货单 * @param sterilizationRecord @@ -1714,6 +1597,12 @@ extractForeignTousseInvoice(foreignTousseInstances,deptName,deptCode); } + /** + * 生成外来器械包的发货单. + * @param foreignTousseInstances + * @param deptName + * @param deptCode + */ private void extractForeignTousseInvoice( List foreignTousseInstances, String deptName, String deptCode) { @@ -1810,10 +1699,15 @@ } objectDao.saveOrUpdate(invoice); } - } } + /** + * 生成普通器械包的发货单. + * @param tousseInstances + * @param deptName + * @param deptCode + */ private void extractTousseInvoice(List tousseInstances,String deptName,String deptCode) { if (tousseInstances.size() > 0) { Invoice invoice = new Invoice(); @@ -1894,46 +1788,6 @@ } } -// private void updateDepartmentStock(TousseInstance tousseinstance) { -// // 普通器械包 -// if (TousseDefinition.PACKAGE_TYPE_INSIDE.equals(tousseinstance -// .getTousseDefinition().getTousseType())) { -// List list = supplyRoomConfigManager -// .getSecondSupplyRoomList(); -// String departmentCoding = ""; -// String departmentName = ""; -// if (list != null && list.size() > 0) { -// departmentCoding = list.get(0).getOrgUnitCoding(); -// departmentName = list.get(0).getOrgUnitName(); -// } -// -// String tousseName = tousseinstance.getTousseName(); -// DepartmentStock departmentStock = departmentStockManager -// .getByDepartCodingAndTousseName(departmentCoding, -// tousseName); -// if (departmentStock != null -// && (departmentStock.getAmount() != null || departmentStock -// .getAmount() >= 0)) { -// departmentStock.setAmount(departmentStock.getAmount() + 1); -// } else { -// departmentStock = new DepartmentStock(); -// departmentStock.setAmount(1); -// departmentStock.setDepartCoding(departmentCoding); -// departmentStock.setDepartName(departmentName); -// departmentStock.setCardinalNum(0); -// departmentStock.setUsedAmount(0); -// departmentStock.setTousseName(tousseName); -// } -// -// tousseinstance.setDepartmentStock_id(departmentStock.getId()); -// -// departmentStockManager.saveOrUpdata(departmentStock); -// } -// } - - /** - * 为灭菌记录添加图片记录 - */ @Override public void saveRecordPicture(Long sterilizationRecordId, Collection pictures, String deletePicIds) { @@ -1957,8 +1811,7 @@ } /** - * 保存灭菌图片对象 - * + * 保存灭菌图片对象. * @param sterilizationRecordPic */ private void saveOrUpdate(SterilizationRecordPic sterilizationRecordPic) { @@ -1975,8 +1828,7 @@ } /** - * 根据Id获得灭菌记录图片 - * + * 根据Id获得灭菌记录图片. * @param picId * @return */ @@ -2002,7 +1854,6 @@ return list; } - @Override public List getSterilizationRecordByTousseInstanceId( String tousseInstanceId) { @@ -2013,7 +1864,6 @@ List list = getSterilizationRecordByReviewedbasketTousseInstanceId(tousseInstanceId); if (list == null || list.size() == 0){ - String sql = "select s.id from tousseinstance t,sterilizationrecord s," + "sterilization_tousseInstance st where st.sterilizationrecord_id = s.id " + "and st.tousseInstance_id = t.id and t.id=" @@ -2044,11 +1894,6 @@ return list; } - /** - * 新加的灭菌记录是否可以使用此灭菌炉(即:此灭菌炉不处于“灭菌中”、“灭菌中断”这两种状态).. - * @param sterilizerName 灭菌炉名称 - * @return - */ @SuppressWarnings("unchecked") @Override public boolean isAllSterilizationEnd(String sterilizerName) { @@ -2098,15 +1943,6 @@ } }; - @Override - public ReviewedBasket getReviewedBasketBySql(String sql) { - if (StringUtils.isNotBlank(sql)) { - return (ReviewedBasket) objectDao.getBySql( - ReviewedBasket.class.getSimpleName(), sql); - } - return null; - } - @SuppressWarnings("unchecked") @Override public Date findBeginTimeForRecall(String sterileName, String startDate, @@ -2228,9 +2064,6 @@ // } } - /** - * 灭菌参数干预保存 - */ @Override public void saveInterfereSterilizationParams(String id,String sterilizationRecord_id, String startDate, String endDate, String sterilizationType, String sterilizationUser) { @@ -2261,19 +2094,7 @@ appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_INTERFERE, Log.TYPE_UPDATE, description); } } - /** - * 灭菌记录干预 针对一条灭菌记录 - * @param sterilizationRecord_id 灭菌记录id - * @param startDate 灭菌开始时间 - * @param endDate 灭菌结束时间 - * @param sterilizationName 灭菌炉名称 - * @param status 灭菌记录的状态 - * @param sterilizationPurpose 灭菌目的 - * @param sterilizationMethod 灭菌程序 - * @param frequency 炉次 - * @param sterilizationUser 灭菌员 - * @param sterilizationRecordFinishConfirm 是否灭菌完成确认 - */ + @Override public JSONObject saveInterfereSterilizationRecord(String sterilizationRecord_id,String startDate,String endDate, String sterilizationName,String status,String sterilizationPurpose,String sterilizationMethod, @@ -2477,9 +2298,6 @@ return obj; } - /** - * 移动灭菌记录器械包保存 - */ @Override public void tousseConvertSterilizationRecord(Long tousseId,Long recordId,String isBasketConvert,Long reviewedBasketId,String sterilizationBasket){ TousseInstance ti = tousseInstanceManager.getTousseInstanceById(""+tousseId); @@ -2544,9 +2362,7 @@ appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_INTERFERE, "U", description); } } - /** - * 获取灭菌记录信息 - */ + @Override public String getSterilizationRecordInfo(String id){ if(StringUtils.isBlank(id)) @@ -2597,6 +2413,7 @@ } sterilizationRecord.setEndDate(endDate); } + /** * 获取灭菌记录信息 * @param srRecord @@ -2707,12 +2524,7 @@ } return params; } - /** - * 通过时间和灭菌炉名字,获取灭菌炉次 - * @param queryDate - * @param sterilizerName - * @return 炉号的列表 - */ + @Override public List getFrequency(String queryDate,String sterilizerName){ List retList = new ArrayList(); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r19303 -r19311 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 19303) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 19311) @@ -224,8 +224,6 @@ tousseInstanceManager.updateTousseValidUntil(sql); String sql2 = "where DATEDIFF(day,operationTime,validUntil) > 9 and (packageType = '棉布')"; tousseInstanceManager.updateTousseValidUntil(sql2); - - } /** * 签收器械包 Index: ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js =================================================================== diff -u -r19307 -r19311 --- ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 19307) +++ ssts-web/src/main/webapp/disinfectsystem/sterilizationmanager/sterilizationrecord/sterilizationRecordForm.js (.../sterilizationRecordForm.js) (revision 19311) @@ -891,13 +891,6 @@ try{ var objBarcodeInt = parseInt(pNode.attributes.objBarcode); var barcodeArray = barcode.split(";"); - - var start = barcodeArray[0]; - var end = barcodeArray[1]; - - var startInt = parseInt(start); - var endInt = parseInt(end); - if(parseInt(barcodeArray[0]) <= objBarcodeInt && parseInt(barcodeArray[1]) >= objBarcodeInt){ pNode.remove(); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r19303 -r19311 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 19303) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 19311) @@ -29,6 +29,10 @@ */ public interface TousseInstanceManager extends BasePoManager { + /** + * 保存或者更新器械包实例. + * @param tousseInstance + */ public void saveOrUpdate(TousseInstance tousseInstance); /** @@ -46,22 +50,35 @@ */ public void discardTousseInstance(Collection tousseInstances,String wasteReason); /** - * 废弃多个器械包 + * 废弃多个器械包(定时器会调用) * @param tousseInstances 器械包实例集合 * @param operateUser 废弃操作人 * @param wasteReason 废弃原因 */ public void discardTousseInstance(Collection tousseInstances,String operateUser,String wasteReason); + /** + * 根据id获取器械包实例. + * @param id 器械包实例id + * @return + */ public TousseInstance getTousseInstanceById(String id); + /** + * 根据条码获取器械包实例. + * @param barcode 器械包实例条码 + * @return + */ public TousseInstance getTousseInstanceByBarcode(String barcode); + /** + * 根据使用记录ID,查找所有在使用记录里的器械包. + * @param useRecordId 使用记录 + * @return + */ public List findTousseInstanceListByUseRecordId( Long useRecordId); - public boolean isBasketBeUsed(String barcode); - /*** * 获取已审核灭菌篮筐内的器械包VO集合,返回的是TousseInstanceVO值对象 * @param reviewedBasketId @@ -122,9 +139,6 @@ public List getTodayReviewedTousseInstanceByNameAndOrgUnitCode( String orgUnitCode,String name); - public List getTodayReviewedTousseInstanceByNameAndOrgUnitCode( - String orgUnitCode,String name,Integer page,Integer scanAmount); - public List addTousseInstanceToBasket(String basketBarcode, Collection tousseInstanceBarcodes, Collection excludeBarcodes); @@ -138,6 +152,13 @@ */ public JSONObject removeFromBasket(Collection tousseInstanceBarcodes); + /** + * 判断器械包状态是否正确 + * 如果是二级供应室的包,则已装配、已审核都可以通过 + * 如果是一级供应室的包,则只能是已审核通过. + * @param tousseInstance + * @return + */ public boolean isTousseStatusCorrect(TousseInstance tousseInstance); /** @@ -147,20 +168,42 @@ */ public boolean isTousseInstanceOutOfBasket(Long id); + /** + * 更新包的失效日期. + * @param barcode 器械包实例条码 + * @param validDate 失效日期 + */ public void updateTousseExpirationDate(String barcode, Date validDate); - public Set getReviewedBasketTousseInstanceByBarcodeAndRecordId( - String barcode, String id); - - public List getToussInstanceByForeignTousseApplicationID( - Long id); + /** + * 根据外来申请单申请的申请包. + * @param id 外来器械包申请单id + * @return + */ + public List getToussInstanceByForeignTousseApplicationID(Long id); + + /** + * 根据外来申请单申请的申请包. + * @param id 外来器械包申请单id + * @return + */ public List getToussInstanceByForeignTousseApplicationIdForInvoice(Long id); + /** + * 获取审核篮筐里面的器械包实例. + * @param basketId 审核篮筐id + * @return + */ public List getTousseInstanceByClassifyBasket(Long basketId); public boolean checkTousseInstanceHasRecallByTousseInstanceId( Long tousseInstanceId); + /** + * 导出器械包实例的信息. + * @param sql + * @param ops + */ public void exportQueryTousseInstance(String sql,OutputStream ops); /** @@ -202,33 +245,61 @@ */ public boolean deleteAllExpiredTousseGoods(String orgUnitCoding,String warningType,String reason,String userName); - public List getTousseInstanceByBasket(String barcode); /** * 验证器械包是否被召回 */ public Predicate checkTousseInstanceHasNotRecall(); + /** - * 验证器械包是否在预警期内。如果在预警期内,并且配置为预警期内不发货,那么返回false,否则返回true - * @return + * 根据sql子句更新器械包的失效日期. + * @param sql */ - public Predicate checkTousseInstanceNotInWarningPeriod(); - public void updateTousseValidUntil(String sql); + /** + * 统计灭菌记录关联的所有器械包(包括但不限于没有筐的和入筐的器械包). + * @param sterilizationRecord 灭菌记录 + * @return + */ public Map statisticToussesInSterilization( SterilizationRecord sterilizationRecord); + /** + * 根据器械包名称获取器械包实例. + * @param tousseName 器械包实例 + * @return + */ public TousseInstance getTousseInstanceByName(String tousseName); + /** + * 根据申请单id和器械包名称,获取器械包实例. + * @param tousseName 器械包名称 + * @param appid 申请单id + * @return + */ public TousseInstance getTousseInstanceByNameAndAPPID(String tousseName,String appid); + /** + * 根据申请单id获取器械包. + * @param appid 申请单id + * @return + */ public List getForeignTousseTousseInstance(String appid); + /** + * 根据sql语句获取器械包实例(带锁). + * @param sql + * @return + */ public List getBySql_ForUpdate(String sql); + + /** + * 通过where子句获取器械包实例(注意调用此方法时,sql必须至少有一个过滤条件). + * @param sql + * @return + */ public List getBySql(String sql); - public List getByIDs_ForUpdate(String ids); - /** * 获取器械包定义固定条码(该方法已废弃,不再使用) * @param tousseName 器械包名称 @@ -267,6 +338,7 @@ * @return */ public String signTousseInstanceByBarcode(String barcode,String orgUnitCoding,String signer); + /** * 批量签收器械包 * @param barcodes @@ -275,6 +347,7 @@ * @return */ public void batchSignTousseInstance(Collection barcodes,String orgUnitCoding,String signer); + /** * 器械包是否可以签收 * @param tousseInstance @@ -362,6 +435,11 @@ */ public void setToDefaultWareHouse(Collection tousseInstances,String orgUnitCoding); + /** + * 把tousseInstance转成json格式. + * @param tousseInstance + * @return + */ public JSONObject buildTousseInstanceSuccessJson(TousseInstance tousseInstance); /** * 获取虚拟筐中已装配的器械包 @@ -372,6 +450,12 @@ public void getVirtualBasketTousse(JSONObject json, String barcode, String barcodeEnd); + /** + * 把tousseInstance转成json格式. + * @param returnType + * @param tousseInstance + * @return + */ public JSONObject buildTousseInstanceSuccessJson(String returnType, TousseInstance tousseInstance); /** @@ -403,17 +487,19 @@ */ public WashAndDisinfectRecord getLastWashRecord(TousseInstance tousseInstance); /** - * 获取回收记录 - * @param recyclingRecordId + * 获取回收记录. + * @param recyclingRecordId 回收记录id * @return */ public RecyclingRecord getRecylingRecord(String recyclingRecordId); /** - * 获取器械包篮筐条码 + * 获取器械包实例的清洗篮筐条码(如果有多个,则用分号分隔). + * @param tousseInstance 器械包实例 */ public String getClassifyBasketBarcodes(TousseInstance tousseInstance); /** - * 获取申请记录 + * 获取申请记录. + * @param invoicePlanId 申请单id */ public InvoicePlan getInvoicePlan(String invoicePlanId); @@ -427,14 +513,14 @@ public TousseInstance getExpireNearest(TousseInstance tousseInstance,List acceptStatus,Collection scanedBarcodes); /** - * 重新计算虚拟篮筐状态 + * 重新计算虚拟篮筐状态(灭菌装载、审核、废弃、发货后都需要重新计算). * @param virtualBasketNameList 虚拟篮筐名称集合 */ public void countVirtualContainerStatus(List virtualBasketNameList); /** - * 根据器械包实例id获取使用记录(此方法使用聚合包实例,或者对应多条使用记录的器械包实例) - * @param tousseInstanceId + * 根据器械包实例id获取使用记录(此方法使用聚合包实例,或者对应多条使用记录的器械包实例). + * @param tousseInstanceId 器械包实例id * @return */ public List getUseRecordListByTousseInstanceId( @@ -473,14 +559,14 @@ */ public String getPackingClassifyids(); /** - * 合并包实例的丢失备注 - * @param tousseInstances + * 合并包实例的丢失备注. + * @param tousseInstances 器械包实例集合 * @return */ public String mergeErrorRemark(List tousseInstances); /** - * 合并包实例的报损备注 - * @param tousseInstances + * 合并包实例的报损备注. + * @param tousseInstances 器械包实例集合 * @return */ public String mergeDamageRemark(List tousseInstances); Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java =================================================================== diff -u -r19303 -r19311 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java (.../SterilizationRecordManager.java) (revision 19303) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java (.../SterilizationRecordManager.java) (revision 19311) @@ -9,7 +9,6 @@ import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; -import com.forgon.disinfectsystem.entity.packing.ReviewedBasket; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationInterruptRecord; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecordPic; @@ -22,10 +21,26 @@ */ public interface SterilizationRecordManager extends BasePoManager { + /** + * 保存获取更新灭菌记录. + * @param sterilizationRecord + */ public void saveOrUpdate(SterilizationRecord sterilizationRecord); + /** + * 更新旧的灭菌记录 有时器械包在灭菌后不合格需要重新灭菌,并非该炉灭菌失败,而是某几个器械包需要重新灭菌 + * 这时需要将这些器械包重新扫入灭菌记录中,并用新的灭菌记录覆盖旧的灭菌记录. + * @param tousseInstance + */ public void updateOldSterilization(TousseInstance tousseInstance); + /** + * 灭菌完成. + * @param sterilizationRecordIds + * @param orgUnitCode + * @param finishOperater + * @return + */ public JSONObject completeSterilization(Collection sterilizationRecordIds, String orgUnitCode,String finishOperater); /** @@ -53,12 +68,24 @@ */ public SterilizationRecord getSterilizationRecordById_ForUpdate(Long id); + /** + * 根据id获取灭菌记录. + * @param id + * @return + */ public SterilizationRecord getSterilizationRecordById(String id); + /** + * 获取所有的温度和压力的灭菌记录. + */ public List getSterilizaerRecordsById(Long id); public void deleteSterilizationRecordPicById(String picId); + /** + * 根据id删除灭菌记录. + * @param id + */ public void deleteSterilizationRecordById(Long id); /** * 删除灭菌记录实体对象,并做日志记录 @@ -75,20 +102,55 @@ @Override public boolean delete(String sterilizationRecordIdStr); - public List getAllSterilizationRecord(); - + /** + * 获取灭菌炉的最大炉次. + * @param sterilizer + * @param id + * @return + */ public int getMaxFrequency(Sterilizer sterilizer, Long id); + /** + * 获取灭菌炉的下一炉次. + * @param sterilizer + * @param id + * @return + */ public int getNextCycleCounter(Sterilizer sterilizer, Long id); + /** + * 获取某条灭菌记录所关联的接口数据的条数. + * @param devInterfaceId 设备接口的ID + * @param machineNo 设备的机器号 + * @param cycleCounter 设备的循环次数 + * @return + */ public int getSterilerRecordsCount(String devInterfaceId, String machineNo, Long cycleCounter); + /** + * 保存或更新灭菌记录 + * 检查发现一旦有某一个器械包在其它灭菌单已完成灭菌,则给予提示,返回相应的提示消息至客户端. + * @param sterilizationRecord + * @param tousseInstanceBarcodes + * @param containerBarcodes + * @param originalSterilizationRecordId + * @return + */ public Map saveOrUpdateSterilizationRecord( SterilizationRecord sterilizationRecord, Collection tousseInstanceBarcodes, Collection containerBarcodes, Long originalSterilizationRecordId); - // 重载更新灭菌记录函数,添加barcodePositionMap,里面包含器械包、篮筐条码和对应的位置 + + /** + * 重载更新灭菌记录函数,添加barcodePositionMap,里面包含器械包、篮筐条码和对应的位置. + * @param sterilizationRecord + * @param tousseInstanceBarcodes + * @param containerBarcodes + * @param originalSterilizationRecordId + * @param barcodePositionMap + * @return + */ public Map saveOrUpdateSterilizationRecord( SterilizationRecord sterilizationRecord, Collection tousseInstanceBarcodes, @@ -111,6 +173,12 @@ */ public void updateSterilizedInerruptRecordStatus(String sterilizationRecordId); + /** + * 为灭菌记录添加图片记录. + * @param sterilizationRecordId + * @param pictures + * @param deletePicId + */ public void saveRecordPicture(Long sterilizationRecordId, Collection pictures, String deletePicId); @@ -124,8 +192,13 @@ */ public boolean isAllSterilizationEnd(String sterilizerName); - public ReviewedBasket getReviewedBasketBySql(String sql); - + /** + * . + * @param sterileName + * @param startDate + * @param sterilizingFrequency_start + * @return + */ public Date findBeginTimeForRecall(String sterileName, String startDate, String sterilizingFrequency_start); @@ -139,6 +212,15 @@ public void addTousseInstanceToSterilizationRecord_TRANS_REQUIRED(String tousseInstanceIDs); + /** + * 灭菌参数干预保存. + * @param id + * @param sterilizationRecord_id + * @param startDate + * @param endDate + * @param sterilizationType + * @param sterilizationUser + */ public void saveInterfereSterilizationParams(String id,String sterilizationRecord_id,String startDate,String endDate,String sterilizationType,String sterilizationUser); /** * 灭菌记录干预 针对一条灭菌记录 @@ -154,17 +236,31 @@ * @param sterilizationRecordFinishConfirm 是否灭菌完成确认 */ public JSONObject saveInterfereSterilizationRecord(String sterilizationRecord_id,String startDate,String endDate,String sterilizationName,String status,String sterilizationPurpose,String sterilizationMethod,String frequency,String sterilizationUser,boolean sterilizationRecordFinishConfirm); + + /** + * 移动灭菌记录器械包保存. + * @param tousseId + * @param recordId + * @param isBasketConvert + * @param reviewedBasketId + * @param sterilizationBasket + */ public void tousseConvertSterilizationRecord(Long tousseId,Long recordId,String isBasketConvert,Long reviewedBasketId,String sterilizationBasket); /** * 获取灭菌记录信息 * @param id * @return */ public String getSterilizationRecordInfo(String id); + + /** + * 继续灭菌. + * @param sterilizationRecordIds + */ public void continueSterilization(Collection sterilizationRecordIds); /** - * 获取灭菌记录的中断记录 - * @param id + * 根据灭菌记录id获取灭菌记录的中断记录. + * @param id 灭菌记录id * @return */ public List getInerruptRecords(Long id); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManagerImpl.java =================================================================== diff -u -r19303 -r19311 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManagerImpl.java (.../ReviewedBasketManagerImpl.java) (revision 19303) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/container/service/ReviewedBasketManagerImpl.java (.../ReviewedBasketManagerImpl.java) (revision 19311) @@ -54,11 +54,6 @@ } - /** - * 删除篮筐 - * - * @param reviewedBasket - */ @Override public void deleteReviewedBasket(ReviewedBasket reviewedBasket) { if(reviewedBasket != null){ @@ -160,11 +155,6 @@ return baskets; } - /** - * 根据barcode找篮筐,如果没找到则根据taskGroup新建一个。 - * @param basketBarcode - * @return - */ @Override public ReviewedBasket getReviewedBasketButNew(String basketBarcode) { ReviewedBasket basket = null; @@ -185,12 +175,6 @@ return basket; } - /** - * 通过条形码获得本任务组正处于整理的篮筐 - * - * @param barcode - * @return - */ @Override public ReviewedBasket getBasketByBarcode(String barcode) { if (StringUtils.isNotBlank(barcode)) { @@ -240,16 +224,6 @@ return null; } - /** - * 根据条形码查找篮筐(sterilizeRecordId为空表示篮筐还未与灭菌记录绑定) - * ###为防止与其它功能冲突此方法只单独提供被SterilizationRecordManagerImpl.saveOrUpdateSterilizationRecord方法调用 - * 与上一个方法不同点是:如果sterilizeRecordId为空-即新建的灭菌单,除了查询不与任何灭菌单关联的篮筐,同时也查与灭菌失败的灭菌单关联的篮筐实例.以实现 - * @param barcode 篮筐条码 - * @param sterilizeRecordId 灭菌单id - * @author SYF - * @since 2015-11-27 - * @return - */ @Override public ReviewedBasket getReviewedBasketForSterilizeRecordNew(String barcode, Long sterilizeRecordId) { Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java =================================================================== diff -u -r19303 -r19311 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 19303) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/action/SterilizationRecordAction.java (.../SterilizationRecordAction.java) (revision 19311) @@ -211,6 +211,10 @@ } } + /** + * 保存灭菌记录. + * @return + */ public String savesterilizationRecord() { try { Long originalRecordId = null; @@ -270,7 +274,10 @@ return null; } - // 添加器械包到已有的记录 + /** + * 添加器械包到已有的记录. + * @return + */ public String addTousseInstanceToSterilizationRecord() { try { String tousseInstanceIDs = StrutsParamUtils.getPraramValue( @@ -341,6 +348,9 @@ } } + /** + * 加载灭菌记录. + */ public void loadSterilizationRecord() { try { StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); @@ -842,7 +852,7 @@ //判断是否有已装入至灭菌篮筐或虚拟篮筐的器械包实例,如果有,则返回失败并进行提示 for(int i = 0; i < tousseInstanceList.size(); i++){ tousseInstance = (TousseInstance)tousseInstanceList.get(i); - if (tousseInstance != null //这里 + if (tousseInstance != null && !DatabaseUtil.isPoIdValid(tousseInstance.getReviewBasket_id()) && StringUtils.isNotBlank(tousseInstance.getTousseName())) { JSONObject temp = new JSONObject(); @@ -1700,7 +1710,6 @@ StrutsResponseUtils.output(jSONObj); } - } /** * 通过灭菌时间和灭菌炉名称,获取灭菌的炉次 Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r19303 -r19311 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 19303) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 19311) @@ -129,8 +129,6 @@ private ReviewedBasketManager reviewedBasketManager; - private TousseStockManager tousseStockManager; - private SupplyRoomConfigManager supplyRoomConfigManager; private BarcodeManager barcodeManager; @@ -151,18 +149,12 @@ private WriteBackInventoryHelper writeBackInventoryHelper; - private BeCleanItemManager beCleanItemManager; - private ClassifyBasketManager classifyBasketManager; public void setClassifyBasketManager(ClassifyBasketManager classifyBasketManager) { this.classifyBasketManager = classifyBasketManager; } - public void setBeCleanItemManager(BeCleanItemManager beCleanItemManager) { - this.beCleanItemManager = beCleanItemManager; - } - public void setCssdHandleTousseManager( CssdHandleTousseManager cssdHandleTousseManager) { this.cssdHandleTousseManager = cssdHandleTousseManager; @@ -176,10 +168,6 @@ this.barcodeManager = barcodeManager; } - public void setTousseStockManager(TousseStockManager tousseStockManager) { - this.tousseStockManager = tousseStockManager; - } - public void setReviewedBasketManager(ReviewedBasketManager reviewedBasketManager) { this.reviewedBasketManager = reviewedBasketManager; } @@ -239,7 +227,7 @@ } /** - * 废弃包实例 + * 废弃包实例(定时器会调用) * @param tousseInstances 包实例集合可能存在聚合包实例及聚合包实例下属的普通器械包实例 * @param operateUser 操作人 * @param wasteReason 废弃原因 @@ -291,25 +279,19 @@ //状态为已装配或已审核的器械包实例将不扣减库存,包实例关联的篮筐实例属性清空 if(tousseInstance.isPacked() || tousseInstance.isReviewed() || tousseInstance.isSteriling()){ - // tousseInstance.setReviewBasket_id(null); tousseInstance.setStatus(TousseInstance.STATUS_DISCARD); objectDao.saveOrUpdate(tousseInstance); continue; } -// GoodsStock goodsStock = null; + if(!tousseInstance.isDiscarded()){ goodsStockManager.addToList(goodsStockList, tousseInstance); -// goodsStock = TousseInstanceUtils.newGoodsStock(tousseInstance); } //所属仓库清空(所在位置保留不清空) - //clearLocation(tousseInstance); clearWarehouseInfo(tousseInstance); tousseInstance.setStatus(TousseInstance.STATUS_DISCARD); objectDao.saveOrUpdate(tousseInstance); -// if(goodsStock != null){ -// goodsStockList.add(goodsStock); -// } } } if(CollectionUtils.isNotEmpty(virtualBasketNameList)){ @@ -323,8 +305,12 @@ autoDeductionDisposableGoods(tousseInstances); } } + + /** + * (定时器会调用) + * @param tousseInstances + */ private void autoDeductionDisposableGoods(Collection tousseInstances){ - Map> orgUnitToTousseInstancesMap = new HashMap>(); Map orgUnitCodingToorgUnitNameMap = new HashMap(); String operator = AcegiHelper.getLoginUserFullName(); @@ -378,7 +364,14 @@ } } - // 保存领用记录,增加并发控制的版本 + /** + * 保存领用记录,增加并发控制的版本(定时器会调用) + * @param orgUnitCoding + * @param orgUnitName + * @param operator + * @param tousseInstanceList + * @param disposableGoodsIds + */ private void saveReceiveRecord( String orgUnitCoding, String orgUnitName, @@ -585,6 +578,7 @@ public void discardTousseInstance(Collection tousseInstances,String wasteReason){ discardTousseInstance(tousseInstances,AcegiHelper.getLoginUserFullName(),wasteReason); } + @Override public void discardTousseInstance(TousseInstance tousseInstance,String operateUser,String wasteReason,Date wasteDate){ if(tousseInstance == null){ @@ -620,11 +614,7 @@ } - /** - * 根据使用记录ID,查找所有在使用记录里的器械包 - */ @Override - @SuppressWarnings("unchecked") public List findTousseInstanceListByUseRecordId( Long useRecordId) { if (!DatabaseUtil.isPoIdValid(useRecordId)) { @@ -643,25 +633,7 @@ return tousseInstances; } - - /** - * 验证篮筐是否处于灭菌中 - * - * @param barcode - * @return - */ @Override - public boolean isBasketBeUsed(String barcode) { - ReviewedBasket basket = reviewedBasketManager - .getBasketByBarcode(barcode); - if (basket != null) { - return false; - } - return true; - } - - - @Override public List getAllReviewedTousseInstanceWithOutBasket( String orgUnitCode , String beginDate , String endDate , String start , String limit, String searchKeyWord, Map sqlCondition){ String sql = " where po.comboTousseInstanceId is null and po.status = '" + TousseInstance.STATUS_REVIEWED @@ -709,9 +681,6 @@ return getAllReviewedTousseInstanceWithOutBasket(orgUnitCode , todayStr, todayStr , null , null , null , null); } - /** - * 将器械包从它所对应的篮筐中移除 - */ @Override public JSONObject removeFromBasket(Collection tousseInstanceBarcodes) { JSONObject jsonObject = new JSONObject(); @@ -755,17 +724,7 @@ return jsonObject; } - - /** - * 获得篮筐的还没有审核的器械包 - */ @Override - public List getTousseInstanceByBasket(String barcode) { - String sql = "where po.container.barcode = '"+ barcode + "'"; - return objectDao.findBySql(ReviewedBasket.class.getSimpleName(), sql, 0, 3, "id desc"); - } - - @Override public Set getReviewedTousseInstanceByBasket(String barcode) { String hql = "select po,s from " + ReviewedBasket.class.getSimpleName() @@ -816,7 +775,6 @@ @Override public List getTousseInstanceVOsInReviewedBasket( ReviewedBasket reviewedBasket, String taskGroup) { - logger.debug("getTousseInstanceVOsInReviewedBasket,篮筐名字:" + reviewedBasket.getContainer().getContainerName()); //科室供应室配置 SupplyRoomConfig supplyRoomConfig = supplyRoomConfigManager.getSystemParamsObj(); @@ -935,6 +893,7 @@ } return vos; } + /** * 将TousseInstance转换为TousseSimpleVO对象 * @param tousseInstance 器械包实例 @@ -964,6 +923,7 @@ } return null; } + @Override public List getReviewedTousseInstanceVOs( String sterileBasketBarcode) { @@ -980,24 +940,7 @@ return list; } - /** - * 根据灭菌灭菌记录id以及条码获得篮筐的所有器械包 - */ @Override - public Set getReviewedBasketTousseInstanceByBarcodeAndRecordId( - String barcode, String id) { - - String sql = "select po from " + ReviewedBasket.class.getSimpleName() - + " po left join po.sterilizationRecords s where s.id = " + id - + " and po.container.barcode = '" + barcode + "'"; - List basket = objectDao.findByHql(sql); - if (basket != null && basket.size() > 0) { - return ((ReviewedBasket) basket.get(0)).getTousseInstances(objectDao); - } - return new HashSet(); - } - - @Override public List addTousseInstanceToBasket(String basketBarcode, Collection tousseInstanceBarcodes, Collection excludeBarcodes) { ReviewedBasket basket = reviewedBasketManager @@ -1011,11 +954,6 @@ tousseInstanceBarcodes = CollectionUtils.subtract( tousseInstanceBarcodes, excludeBarcodes); } - /*for (String tousseBarcode : tousseInstanceBarcodes) { - TousseInstance tousseInstance = getTousseInstanceByBarcode(tousseBarcode); - tousseInstance.setReviewBasket_id(basket.getId()); - objectDao.saveOrUpdate(tousseInstance); - }*/ if(CollectionUtils.isNotEmpty(tousseInstanceBarcodes)){ JSONObject json = new JSONObject(); @@ -1044,11 +982,6 @@ virtualBasketNameList.add(virtualBasketSeqNum); } } - //必须先把虚拟篮筐编号清空(测试用例那边拿到时,并未拿到更新后的值) - /*Query updateQuery = objectDao.getHibernateSession().createQuery("update TousseInstance set virtualBasketSeqNum = null, reviewBasket_id=" + basket.getId() + - ",sterilizationBasket='" + basket.getContainer().getContainerName() + "' where barcode in :barcode"); - updateQuery.setParameterList("barcode", tousseInstanceBarcodes); - updateQuery.executeUpdate();*/ Query queryForUpate = objectDao.getHibernateSession().createQuery("from TousseInstance where barcode in :barcode"); queryForUpate.setParameterList("barcode", tousseInstanceBarcodes); @@ -1091,35 +1024,12 @@ boolean isTraceable = TousseDefinition.STR_NO .equals(tousseDefinition.getIsTraceable()); - Collection tousseInstanceBarcodes; -// if (isTraceable && tousseInstance.getUnTraceableTousse()) { -// String tousseName = tousseInstance.getTousseName(); -// Query query = objectDao.getHibernateSession().createQuery( -// "SELECT po.barcode FROM TousseInstance po" -// + " WHERE po.tousseName = :tousseName" -// + " AND po.unTraceableTousse = 1" -// + " AND po.status = :status"); -// query.setParameter("tousseName", tousseName); -// query.setParameter("status", TousseInstance.STATUS_REVIEWED); -// -// tousseInstanceBarcodes = query.list(); -// } else { -// -// } //传递的是唯一条码 - tousseInstanceBarcodes = Collections + Collection tousseInstanceBarcodes = Collections .singleton(tousseInstanceBarcode); addTousseInstanceToBasket(basketBarcode, tousseInstanceBarcodes, excludeBarcodes); } - /** - * 判断器械包状态是否正确 - * 如果是二级供应室的包,则已装配、已审核都可以通过 - * 如果是一级供应室的包,则只能是已审核通过 - * @param tousseInstance - * @param roomType - * @return - */ @Override public boolean isTousseStatusCorrect(TousseInstance tousseInstance) { String orgUnitCoding = tousseInstance.getOrgUnitCoding(); @@ -1138,7 +1048,7 @@ * @param roomType * @return */ - public boolean isTousseStatusCorrect(TousseInstance tousseInstance, int roomType) { + private boolean isTousseStatusCorrect(TousseInstance tousseInstance, int roomType) { String status = tousseInstance.getStatus(); if (SupplyRoomConfig.SUPPLYROOM_TYPE_2 == roomType) { if (TousseInstance.STATUS_PACKED.equals(status) @@ -1159,73 +1069,6 @@ return false; } -// private void updateOldSterilization(TousseInstance tousseInstance) { -// List sterilizationRecords = new ArrayList(); -// if (tousseInstance != null && tousseInstance.getId() != null) { -// -// sterilizationRecords -// .addAll(sterilizationRecordManager -// .getSterilizationRecordByTousseInstanceId(tousseInstance -// .getId().toString())); -// } -// ReviewedBasket reviewedBasket = reviewedBasketManager -// .getReviewedBasketByTousseInstanceId(tousseInstance.getId() -// .toString()); -// if (reviewedBasket != null -// && reviewedBasket.getSterilizationRecords() != null) { -// sterilizationRecords.addAll(reviewedBasket -// .getSterilizationRecords()); -// } -// if (sterilizationRecords != null) { -// for (SterilizationRecord record : sterilizationRecords) { -// if (SterilizationRecord.STERILIZATION_STATUS_END.equals(record -// .getStatus())) { -// String tousseType = tousseInstance.getTousseDefinition() -// .getTousseType(); -// if (TousseDefinition.PACKAGE_TYPE_DRESSING -// .equals(tousseType)) { -// if (tousseInstance.getProxyDisinfection() != null) { -// record.setProxyTousseAmount(record -// .getProxyTousseAmount() - 1); -// } else { -// record.setDressingTousseAmount(record -// .getDressingTousseAmount() - 1); -// } -// // 内部包 自定义器械包 灭菌物品 -// } else if (TousseDefinition.PACKAGE_TYPE_INSIDE -// .equals(tousseType) -// || TousseDefinition.PACKAGE_TYPE_CUSTOM -// .equals(tousseType) -// || TousseDefinition.PACKAGE_TYPE_STERILIZATION -// .equals(tousseType)) { -// if (tousseInstance.getProxyDisinfection() != null) { -// record.setProxyTousseAmount(record -// .getProxyTousseAmount() - 1); -// } else { -// record.setTousseAmount(record.getTousseAmount() - 1); -// } -// // 外来器械包 -// } else if (TousseDefinition.PACKAGE_TYPE_SPLIT -// .equals(tousseType) -// || TousseDefinition.PACKAGE_TYPE_FOREIGN -// .equals(tousseType)) { -// record.setForeignTousseAmount(record -// .getForeignTousseAmount() - 1); -// } else if (TousseDefinition.PACKAGE_TYPE_FOREIGNPROXY -// .equals(tousseType)) { -// record.setProxyTousseAmount(record -// .getProxyTousseAmount() - 1); -// } -// record.setAmount(record.getAmount() - 1); -// objectDao.saveOrUpdate(record); -// } -// } -// } -// } - - /** - * 通过器械包实例Id判断器械包是否还没入灭菌篮筐 - */ @Override public boolean isTousseInstanceOutOfBasket(Long id) { String sql = "select * from tousseinstance where id = " + id @@ -1243,20 +1086,15 @@ return false; } - /** - * 更新包的失效日期 - */ @Override public void updateTousseExpirationDate(String barcode, Date validDate) { - TousseInstance tousseInstance = this - .getTousseInstanceByBarcode(barcode); + TousseInstance tousseInstance = getTousseInstanceByBarcode(barcode); if (tousseInstance != null) { tousseInstance.setValidUntil(validDate); this.saveOrUpdate(tousseInstance); } } - @SuppressWarnings("unchecked") @Override public List getToussInstanceByForeignTousseApplicationID( Long id) { @@ -1288,7 +1126,6 @@ return null; } - @SuppressWarnings("unchecked") @Override public List getTousseInstanceByClassifyBasket(Long basketId) { return objectDao.findBySql( @@ -1324,11 +1161,9 @@ public void exportQueryTousseInstance(String sql, OutputStream ops) { List tousseList = new ArrayList(); if (StringUtils.isNotBlank(sql)) { - Query basketQr = objectDao.getHibernateSession().createQuery( - sql); + Query basketQr = objectDao.getHibernateSession().createQuery(sql); tousseList = basketQr.list(); } - //createExportFile(tousseList, ops); createExportFileByJxl(tousseList, ops); } @@ -1449,176 +1284,6 @@ } } - public void createExportFile(List tousseList, - OutputStream ops) { - String inputFile = Path.getWebAppRoot() - + "/disinfectsystem/reportforms/tousseInstance.xls"; - FileInputStream fos = null; - POIFSFileSystem fs = null; - HSSFWorkbook wb = null; - try { - fos = new FileInputStream(inputFile); - fs = new POIFSFileSystem(fos); - wb = new HSSFWorkbook(fs); - ExcelHelper.setWorkbook(wb); - ExcelCellStyle.iniAllStyles(); - HSSFSheet sheet = wb.getSheetAt(0); - - HSSFCellStyle cellStyle = wb.createCellStyle(); // 数据单元格格式 - cellStyle.setWrapText(true); - cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); - cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN); - cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN); - cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN); - cellStyle.setAlignment(HSSFCellStyle.ALIGN_LEFT); - HSSFFont font = wb.createFont(); - font.setFontHeightInPoints((short) 10); // 设置字体大小为10 - font.setFontName("宋体"); - cellStyle.setFont(font); - - HSSFRow operatingRow1 = sheet.createRow(0); - createStringCell(operatingRow1, cellStyle, 0, "器械包名称"); - createStringCell(operatingRow1, cellStyle, 1, "条码"); - createStringCell(operatingRow1, cellStyle, 2, "标识牌条码"); - createStringCell(operatingRow1, cellStyle, 3, "状态"); - createStringCell(operatingRow1, cellStyle, 4, "所属仓库"); - createStringCell(operatingRow1, cellStyle, 5, "清洗人"); - createStringCell(operatingRow1, cellStyle, 6, "清洗时间"); - createStringCell(operatingRow1, cellStyle, 7, "有效期至"); - createStringCell(operatingRow1, cellStyle, 8, "装配人"); - createStringCell(operatingRow1, cellStyle, 9, "装配时间"); - createStringCell(operatingRow1, cellStyle, 10, "审核人"); - createStringCell(operatingRow1, cellStyle, 11, "审核时间"); - createStringCell(operatingRow1, cellStyle, 12, "包装类型"); - createStringCell(operatingRow1, cellStyle, 13, "灭菌员"); - createStringCell(operatingRow1, cellStyle, 14, "灭菌完成时间"); - createStringCell(operatingRow1, cellStyle, 15, "灭菌程序"); - createStringCell(operatingRow1, cellStyle, 16, "灭菌批号"); - createStringCell(operatingRow1, cellStyle, 17, "发货人"); - createStringCell(operatingRow1, cellStyle, 18, "发货时间"); - createStringCell(operatingRow1, cellStyle, 19, "废弃时间"); - createStringCell(operatingRow1, cellStyle, 20, "废弃原因"); - createStringCell(operatingRow1, cellStyle, 21, "废弃操作人"); - - int row = 1; - for (TousseInstance tousseInstance : tousseList) { - HSSFRow operatingRow = sheet.createRow(row); - // 器械包名称,条码,标识牌条码,状态,所属仓库 - createStringCell(operatingRow, cellStyle, 0, - tousseInstance.getTousseName()); - createStringCell(operatingRow, cellStyle, 1, - tousseInstance.getBarcode()); - createStringCell(operatingRow, cellStyle, 2, - tousseInstance.getIdCardInstanceBarcode()); - createStringCell(operatingRow, cellStyle, 3, - tousseInstance.getStatus()); - createStringCell(operatingRow, cellStyle, 4, - tousseInstance.getWareHouseName()); - // 清洗人,清洗时间,有效期至,装配人,装配时间 - createStringCell(operatingRow, cellStyle, 5, - tousseInstance.getWashOperator()); - createStringCell(operatingRow, cellStyle, 6, - tousseInstance.getWashStartTime()); - createStringCell(operatingRow, cellStyle, 7, - tousseInstance.getValidUntilStr(Constants.SIMPLEDATEFORMAT_YYYYMMDD)); - createStringCell(operatingRow, cellStyle, 8, - tousseInstance.getOperator()); - Date operationTime = tousseInstance.getOperationTime(); - String operationTimeStr = ""; - if (operationTime != null) { - operationTimeStr = Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS - .format(operationTime); - } - createStringCell(operatingRow, cellStyle, 9, operationTimeStr); - // 审核人,审核时间,包装类型,灭菌员,灭菌完成时间 - createStringCell(operatingRow, cellStyle, 10, - tousseInstance.getReviewer()); - Date reviewTime = tousseInstance.getReviewTime(); - String reviewTimeStr = ""; - if (reviewTime != null) { - reviewTimeStr = Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS - .format(reviewTime); - } - createStringCell(operatingRow, cellStyle, 11, reviewTimeStr); - createStringCell(operatingRow, cellStyle, 12, - tousseInstance.getPackageType()); - createStringCell(operatingRow, cellStyle, 13, - tousseInstance.getSterilizationUser()); - createStringCell(operatingRow, cellStyle, 14, - tousseInstance.getSterileEndTime()); - // 灭菌程序,灭菌批号,发货人,发货时间,废弃时间 - createStringCell(operatingRow, cellStyle, 15, - tousseInstance.getSterilingType()); - String strilizerMsg = ""; - if(StringUtils.isNotBlank(tousseInstance.getSterilizerName())){ - strilizerMsg = tousseInstance.getSterilizerName() + ",第" +tousseInstance.getSterileFrequency()+"炉"; - } - createStringCell(operatingRow, cellStyle, 16,strilizerMsg); - createStringCell(operatingRow, cellStyle, 17, - tousseInstance.getInvoiceSender()); - Date invoiceSendTime = tousseInstance.getInvoiceSendTime(); - String invoiceSendTimeStr = ""; - if (invoiceSendTime != null) { - invoiceSendTimeStr = Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS - .format(invoiceSendTime); - } - createStringCell(operatingRow, cellStyle, 18, - invoiceSendTimeStr); - - Date waseDate = tousseInstance.getWasteDate(); - String waseDateStr = ""; - if (waseDate != null) { - waseDateStr = Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS - .format(waseDate); - } - createStringCell(operatingRow, cellStyle, 19, - waseDateStr); - //废弃原因,废弃操作人 - createStringCell(operatingRow, cellStyle, 20, - tousseInstance.getWasteReason()); - createStringCell(operatingRow, cellStyle, 21, - tousseInstance.getOperateUser()); - - row++; - } - wb.write(ops); - } catch (Exception e) { - e.printStackTrace(); - } finally { - try { - ops.close(); - fos.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - } - - @SuppressWarnings("deprecation") - private void createStringCell(HSSFRow row, HSSFCellStyle cellStyle, - int cellIndex, String value) { - HSSFCell cell = row.createCell(cellIndex); - cell.setCellStyle(cellStyle); - if (value != null) { - cell.setCellValue(value); - } - } - - private void createIntCell(HSSFRow row, HSSFCellStyle cellStyle, - int cellIndex, Integer value) { - HSSFCell cell = row.createCell(cellIndex); - cell.setCellStyle(cellStyle); - if (value != null) { - cell.setCellValue(value); - } - } - - /** - * 通过where子句获取TousseInstance - * @param sql - * @return - */ - @SuppressWarnings("unchecked") @Override public List getTousseInstanceBySql(String sql) { if (StringUtils.isNotBlank(sql)) { @@ -1628,7 +1293,6 @@ return null; } - @SuppressWarnings("unchecked") @Override public List getTodayReviewedTousseInstanceByNameAndOrgUnitCode( String orgUnitCode, String name) { @@ -1647,34 +1311,9 @@ List list = objectDao.findBySql( TousseInstance.class.getSimpleName(), sql); return list; - } - // - @SuppressWarnings("unchecked") @Override - public List getTodayReviewedTousseInstanceByNameAndOrgUnitCode( - String orgUnitCode, String name, Integer index, Integer scanAmount) { - - String sql = " where po.tousseName = '" + name + "'" - + " and po.status = '" + TousseInstance.STATUS_REVIEWED - + "' and reviewBasket_ID is null"; - String todayStr = DateTools.getCurrentDayByFormat("yyyy-MM-dd"); - sql += " and po.reviewTime >= " - + dateQueryAdapter.dateAdapter(todayStr + " 00:00:00") - + " and po.reviewTime <= " - + dateQueryAdapter.dateAdapter(todayStr + " 23:59:59") - + " and po.orgUnitCoding = '" + orgUnitCode + "'" - + " and po.unTraceableTousse = '1'" - + " order by operationTime"; - - List list = objectDao.findBySql( - TousseInstance.class.getSimpleName(), sql); - - return list; - - } - @Override public Collection getUnTraceableTousseInstanceListByFictitiousTousseDefinition( TousseDefinition tousseDefinition, Collection sqlWheres){ if(tousseDefinition == null){ @@ -1708,6 +1347,7 @@ return objectDao.countObjectBySql(TousseInstance.class.getSimpleName(), sbSqlWhere.toString()); } + @Override public Collection getUnTraceableTousseInstanceListByFictitiousTousseDefinition( TousseDefinition tousseDefinition, Collection sqlWheres,String orderBy, int needAmount) { @@ -1734,7 +1374,6 @@ sbSqlWhere.append(" order by "+orderBy); } - //final int needAmount = tousseDefinition.getScanAmount(); int firstIndex = 0; Collection resultTousseInstances = new ArrayList(needAmount); List tousseInstances = objectDao.findBySql( @@ -1749,7 +1388,6 @@ @Override public boolean deleteAllExpiredTousseGoods(String orgUnitCoding, String warningType ,String reason,String userName) { - boolean isCommandExecutedSuccessfully = true; SupplyRoomConfigManager supplyRoomConfigManager = (SupplyRoomConfigManager) SpringBeanManger.getBean("supplyRoomConfigManager"); int roomType = supplyRoomConfigManager.getSupplyRoomTypeByOrgUnitCoding(orgUnitCoding); @@ -1808,19 +1446,8 @@ return isCommandExecutedSuccessfully; } - public static Predicate isNotExpire(final Date date){ - // 验证器械包是否过期 - return new Predicate() { - @Override - public boolean evaluate(TousseInstance tousseInstance) { - return !DateTools.isExpire(tousseInstance.getValidUntil(), date); - } - }; - } - @Override public Predicate checkTousseInstanceHasNotRecall() { - return new Predicate() { @Override public boolean evaluate(TousseInstance tousseInstance) { @@ -1834,23 +1461,6 @@ } @Override - public Predicate checkTousseInstanceNotInWarningPeriod(){ - return new Predicate() { - @Override - public boolean evaluate(TousseInstance tousseInstance) { - if(supplyRoomConfigManager.getSystemParamsObj().getWarningTousseWhetherDelivery()){ - return true; - } - if (DateTools.isDuringWarningPeriod(tousseInstance.getValidUntil(), tousseInstance.getWarningUntil(), - new Date())) - return false; - else - return true; - } - }; - } - - @Override public void updateTousseValidUntil(String sql) { @SuppressWarnings("unchecked") List list = objectDao.findBySql(TousseInstance.class.getSimpleName(),sql); @@ -1867,7 +1477,6 @@ e.printStackTrace(); } } - } private Date getRightValidUntil(String packageType,Date errorValidUntil){ @@ -1926,13 +1535,6 @@ return map; } - - - private void initSupplyRoomConfigManager() { - supplyRoomConfigManager = (SupplyRoomConfigManager) SpringBeanManger - .getBean("supplyRoomConfigManager"); - } - @Override public TousseInstance getTousseInstanceByName(String tousseName) { if (StringUtils.isNotBlank(tousseName)) { @@ -1965,21 +1567,6 @@ } @Override - public List getByIDs_ForUpdate(String ids){ - if(StringUtils.isBlank(ids)){ - return null; - } - String sql = String.format(" where po.id in(%s)", ids); - List retList = objectDao.findBySql_ForUpdate( - TousseInstance.class.getSimpleName(), sql); - return retList; - } - /** - * 获取器械包定义固定条码 - * @param tousseName 器械包定义名称 - * @return - */ - @Override @Deprecated public String getTousseDefinitionFixedBarcode(String tousseName) { if (StringUtils.isNotBlank(tousseName)) { @@ -2038,19 +1625,6 @@ return null; } - /** - * 根据首尾器械包条码或虚拟篮筐别名查询相应的器械包实例(在审核打包、灭菌管理、发货计划等模块都可能会调用此方法) - * 参数约束条件及返回值释义 - * 1.basketOrInstanceNotFound 篮筐或器械包实例未找到 - * 2.notVirtualBasket 不为虚拟篮筐 - * 3.basketOrInstanceIsNull 篮筐或器械包实例为空 - * 4.notTheSame 首尾参数类型不一致 - * @param begin 必需参数,不能为空 - * @param end 可以为空,如不为空则必须与begin都为虚拟篮筐别名或器械包实例条码 - * @param tousseInstanceStatus 不同的地方调用传入不同的状态,如审核打包传递的TousseInstance.STATUS_PACKED - * 灭菌管理传入TousseInstance.STATUS_REVIEWED,发货计划传入TousseInstance.STATUS_STERILED - * @return - */ @Override public Map getTousseInstanceListByRange(String begin , String end , String tousseInstanceStatus){ Map result = new HashMap(); @@ -2140,10 +1714,6 @@ result.put("returnType", "tousseInstanceSuccess"); result.put("result", objectDao.findBySql("TousseInstance", sql)); - /*jsonStr = "{returnType:'tousseInstanceSuccess',tousseId:'"+tousseInstance.getId() - + "',tousseName:'"+tousseInstance.getShowTousseName() + "',taskGroup:'" - + tousseInstance.getTousseDefinition().getTaskGroup() + "',sterilingMethod:'" - + tousseInstance.getSterilingType() + "'}";*/ return result; } @@ -2166,7 +1736,7 @@ * @param signerOrgUnitCoding 签收人部门编号 * @return 执行结果的字符串,如果签收成功,返回的字符串为null,否则返回对错误的描述信息 */ - public String signTousseInstance(TousseInstance tousseInstance,String signer, + private String signTousseInstance(TousseInstance tousseInstance,String signer, String signerOrgUnitCoding) { String msg = null; if(StringUtils.isBlank(signer)){ @@ -2185,14 +1755,15 @@ } return msg; } + /** * 签收器械包 * @param tousseInstance * @param tousseOperationVo * @param updatePosition 是否同时更新器械包的位置信息 * @return */ - public void signTousseInstance(TousseInstance tousseInstance,TousseOperationVo tousseOperationVo){ + private void signTousseInstance(TousseInstance tousseInstance,TousseOperationVo tousseOperationVo){ if(tousseInstance == null){ return; } @@ -2245,6 +1816,7 @@ return signTousseInstanceByBarcode(barcode, currentUserOrgUnitCoding, loginUserFullName); } + @Override public void batchSignTousseInstance(Collection barcodes,String orgUnitCoding,String signer){ if(CollectionUtils.isEmpty(barcodes)){ @@ -2262,6 +1834,7 @@ } } } + @Override public String signTousseInstanceByBarcode(String barcode, String orgUnitCoding, String signer) { @@ -2332,21 +1905,25 @@ tousseInstance.setWareHouseId(wareHouse.getId()); tousseInstance.setWareHouseName(wareHouse.getName()); } + @Override public void setToWarehouse(TousseInstance tousseInstance,Long warehouseId,String warehouseName){ if(tousseInstance != null){ tousseInstance.setWareHouseId(warehouseId); tousseInstance.setWareHouseName(warehouseName); } } + @Override public void clearWarehouseInfo(TousseInstance tousseInstance){ setToWarehouse(tousseInstance,null,""); } + @Override public void clearLocation(TousseInstance tousseInstance){ setLocation(tousseInstance, "", ""); } + @Override public void setLocation(TousseInstance tousseInstance,String orgUnitCode,String orgUnitName){ if(tousseInstance != null){ @@ -2434,7 +2011,6 @@ return jsonObj; } - @SuppressWarnings("unchecked") @Override public List getForeignTousseTousseInstance(String appid) { return objectDao.findBySql( @@ -2475,9 +2051,7 @@ updateStatus(tousseInstance,status,model,Log.TYPE_UPDATE,description.toString()); } - /** - * 通过器械包实例id和灭菌记录id获取灭菌位置信息 - */ + @Override public String getSterilzerPositionMsg(String tousseInstanceId,String sterilizationID){ if(StringUtils.isBlank(tousseInstanceId) || StringUtils.isBlank(sterilizationID)){ @@ -2537,9 +2111,7 @@ } return positionMsg; } - /** - * 获取器械包实例的最后一条清洗记录 - */ + @Override public WashAndDisinfectRecord getLastWashRecord(TousseInstance tousseInstance){ if(tousseInstance == null){ @@ -2572,9 +2144,7 @@ } return record; } - /** - * 获取回收记录 - */ + @Override public RecyclingRecord getRecylingRecord(String recyclingRecordId){ if(StringUtils.isNumeric(recyclingRecordId)){ @@ -2596,9 +2166,7 @@ return null; } } - /** - * 获取器械包篮筐条码 - */ + @Override public String getClassifyBasketBarcodes(TousseInstance tousseInstance){ if(tousseInstance == null){ @@ -2647,10 +2215,6 @@ return getFirst(hql); } - /** - * 重新计算虚拟篮筐状态(灭菌装载、审核、废弃、发货后都需要重新计算) - * @param virtualBasketNameList 虚拟篮筐名称集合 - */ @Override public void countVirtualContainerStatus(List virtualBasketNameList) { if(CollectionUtils.isNotEmpty(virtualBasketNameList)){ @@ -2671,7 +2235,6 @@ @Override public void updateIsRoutineAttribute(Long sterilizationRecordId, Date biologicalMonitoringEndDate, String biologyResult) { - if (DatabaseUtil.isPoIdValid(sterilizationRecordId)) { String sql = String.format("select ti.id tousseId,ti.invoiceSendTime invoiceSendTime,sr.endDate endDate,s.biologicalMonitoringTime biologicalMonitoringTime,s.lagTime lagTime " + "from TousseInstance ti,TousseDefinition td,SterilizationRecord sr,Sterilizer s where ti.sterilizationRecord_id=sr.id and ti.tousseDefinition_id=td.id and s.id=sr.sterilizer_id " @@ -2715,32 +2278,20 @@ DatabaseUtil.closeResultSetAndStatement(result); } } - } - /** - * 根据器械包实例id获取使用记录(此方法适用于聚合包实例,或者对应多条使用记录的器械包实例) - * @param tousseInstanceId - * @return - */ @Override public List getUseRecordListByTousseInstanceId( String tousseInstanceId) { - List list = new ArrayList(); if (DatabaseUtil.isPoIdValid(tousseInstanceId)) { String sql = String.format("where po.id in(select useRecordId from TousseInstanceUseRecord where tousseInstanceId=%s))", tousseInstanceId); list = objectDao.findBySql("UseRecord", sql); } return list; - } - /** - * 通过器械包条码,判断是否需要提示录入定期监测 - * @param barcodes 格式如:'010222333','010444555' - * @return true 当器械包的灭菌炉有配了定期监测,并且没有录入了相关的定期监测记录;其他情况均返回false - */ + @Override public boolean isNeedRoutineMonitoringWarning(String barcodes){ boolean haveRoutineMonitoring = false; @@ -2790,9 +2341,9 @@ } } } + @Override public JSONObject getTodaySignedTousseInstanceOfUser(String departCode,String signedUser){ - String todayStr = Constants.SIMPLEDATEFORMAT_YYYYMMDD.format(new Date()); String hql = "select ti.tousseName,bd.barcode from " @@ -2824,6 +2375,7 @@ json.put("tousseSigns", array); return json; } + @Override public JSONObject getTodaySignedTousseInstanceSummary(String departCode) { String todayStr = Constants.SIMPLEDATEFORMAT_YYYYMMDD.format(new Date()); @@ -2879,9 +2431,7 @@ } } } - /** - * 获取所有已装配的清洗篮筐实例的id - */ + @Override public String getPackingClassifyids(){ String sql = " select distinct classifyBasketIds from TousseInstance ti "; @@ -3009,6 +2559,7 @@ objectDao.saveOrUpdate(tousseInstance); } } + private boolean changePositionIfNeeded(TousseOperationVo tousseOperationVo, TousseInstance tousseInstance) { if(tousseOperationVo == null || tousseInstance == null){