Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r14238 -r14254 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 14238) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 14254) @@ -1104,33 +1104,55 @@ int roomType = supplyRoomConfigManager.getSupplyRoomTypeByOrgUnitCoding(orgUnitCoding); String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); - String sql = "update TousseInstance set status = '" + String wasteUpdateSql = "update TousseInstance set status = '" + TousseInstance.STATUS_DISCARD + "',wasteReason = '"+reason+"',operateUser = '"+userName+"'," // +"wasteDate = '"+date+"'"; +"wasteDate = "+dateQueryAdapter.dateAdapter(date); + + String sqlCondition = " where 1=1 "; //二级供应室 if(roomType == SupplyRoomConfig.SUPPLYROOM_TYPE_2){ - sql +=" where status ='" + TousseInstance.STATUS_SHIPPED+"'" + sqlCondition +=" and status ='" + TousseInstance.STATUS_SHIPPED+"'" + " and location = '" + orgUnitCoding + "'"; }else{//一级供应室 //locationfordisplay为空说明还未发货,还留在供应室 - sql += " where orgUnitCoding ='"+orgUnitCoding+"'"; - sql += " and " + SqlBuilder.build_IN_Statement("status", SqlBuilder.IN, + sqlCondition += " and orgUnitCoding ='"+orgUnitCoding+"'"; + sqlCondition += " and " + SqlBuilder.build_IN_Statement("status", SqlBuilder.IN, TousseInstance.STATUS_RETURNED, TousseInstance.STATUS_STERILED); } if (warningType .equals(SystemWarningItemVO.WARNING_TYPE_DISABLED_TOUSSE)) { - sql += " and validUntil < " + dateQueryAdapter.dateAdapter(date); + sqlCondition += " and validUntil < " + dateQueryAdapter.dateAdapter(date); } else {//即将过期 - sql += " and validUntil > " + dateQueryAdapter.dateAdapter(date) + sqlCondition += " and validUntil > " + dateQueryAdapter.dateAdapter(date) + " and warningUntil < " + dateQueryAdapter.dateAdapter(date); } try { - objectDao.excuteSQL(sql); + List waitWasteTousseInstanceList = + (List)objectDao.findBySql(TousseInstance.class.getSimpleName(),sqlCondition); + if(CollectionUtils.isNotEmpty(waitWasteTousseInstanceList)){ + //更新器械包库存 + List goodsStockList = new ArrayList(); + for(TousseInstance tousseInstance : waitWasteTousseInstanceList){ + GoodsStock goodsStock = new GoodsStock(); + goodsStock.setAmount(1); + goodsStock.setGoodsType(GoodsStock.TYPE_TOUSSE); + goodsStock.setName(tousseInstance.getTousseName()); + goodsStock.setTousseDefinitionId(tousseInstance.getTousseDefinition().getAncestorID()); + goodsStock.setWareHouseId(tousseInstance.getWareHouseId()); + + goodsStock.setWareHouseName(tousseInstance.getWareHouseName()); + goodsStockList.add(goodsStock); + } + goodsStockManager.saveOrUpdateGoodsStock(goodsStockList, GoodsStockManager.MODE_OUTSTOCK); + } + + //更新包实例状态为废弃 + objectDao.excuteSQL(wasteUpdateSql + sqlCondition); } catch (Exception e) { e.printStackTrace(); isCommandExecutedSuccessfully = false;