Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r31988 -r32290 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 31988) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 32290) @@ -3461,4 +3461,46 @@ } } + /** + * 修复没有材料MD5码的消毒物品包定义 + */ + public void generateMaterialsMD5(){ + JSONObject json = JSONUtil.buildJsonObject(true, "升级成功!"); + String sql = String.format("select id from %s where (select sum(count) from %s where tousse_id=TousseDefinition.id)>0" + + " and (materialsMD5 = '' OR materialsMD5 is null) and tousseType = '%s'", + TousseDefinition.class.getSimpleName(), + MaterialInstance.class.getSimpleName(), + TousseDefinition.PACKAGE_TYPE_DISINFECTION); + + ResultSet rs = null; + List tousseDefinitionIDList = new ArrayList(); + try { + rs = objectDao.executeSql(sql); + while(rs.next()){ + tousseDefinitionIDList.add(rs.getLong("id")); + } + } catch (SQLException e) { + e.printStackTrace(); + }finally{ + DatabaseUtil.closeResultSetAndStatement(rs); + } + + if(CollectionUtils.isEmpty(tousseDefinitionIDList)){ + json = JSONUtil.buildJsonObject(true, "没有需要修复MD5的消毒物品器械包定义!"); + }else{ + String hql = String.format("select po from %s po where %s", + TousseDefinition.class.getSimpleName(), + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("id", tousseDefinitionIDList)); + @SuppressWarnings("unchecked") + List list = objectDao.findByHql(hql); + if(CollectionUtils.isNotEmpty(list)){ + for (TousseDefinition td : list) { + td.generateMaterialsMD5(); + } + objectDao.batchSaveOrUpdate(list); + } + } + StrutsResponseUtils.output(json); + } + }