Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r35578 -r35711 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 35578) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 35711) @@ -10166,4 +10166,65 @@ } return packingRecordToPackageTypeMap; } + @Override + public JSONArray verifyTousseCanBeAggregated(Set tdIds) { + if(CollectionUtils.isEmpty(tdIds)){ + return null; + } + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append("select tdcom.name comTousseName,td.name tdName,td.id from "); + stringBuffer.append(ComboTousseComposite.class.getSimpleName()); + stringBuffer.append(" c join "); + stringBuffer.append(TousseDefinition.class.getSimpleName()); + stringBuffer.append(" tdcom on tdcom.id=c.comboTousseDefinitionId join "); + stringBuffer.append(TousseDefinition.class.getSimpleName()); + stringBuffer.append(" tdc on tdc.id=c.TousseDefinitionId join "); + stringBuffer.append(TousseDefinition.class.getSimpleName()); + stringBuffer.append(" td on td.ancestorID=tdc.id where "); + stringBuffer.append(SqlUtils.getNonStringFieldInLargeCollectionsPredicate("td.id", tdIds)); + stringBuffer.append(" order by tdcom.id desc"); + ResultSet rs = null; + Map infoMap = new HashMap(); + JSONArray arr = new JSONArray(); + try { + rs = objectDao.executeSql(stringBuffer.toString()); + while(rs.next()){ + String comTousseName = rs.getString("comTousseName"); + String tdName = rs.getString("tdName"); + Long tdId = rs.getLong("id"); + JSONObject infos = null; + if(infoMap.containsKey(tdId)){ + infos = infoMap.get(tdId); + }else{ + infos = new JSONObject(); + infos.put("tdId", tdId); + } + String msg = infos.optString("msg", ""); + if("".equals(msg)){ + msg = tdName + "属于如下的聚合包,确定要装配此包吗?
" + comTousseName; + }else{ + msg += "、" + comTousseName; + } + int count = infos.optInt("count"); + if(count >= 5){//最多验证属于5个聚合包 + msg += "、......"; + infos.put("msg", msg); + break; + } + infos.put("msg", msg); + infos.put("count", count + 1); + infoMap.put(tdId, infos); + } + }catch (Exception e) { + e.printStackTrace(); + }finally{ + DatabaseUtil.closeResultSetAndStatement(rs); + } + if(MapUtils.isNotEmpty(infoMap)){ + for (JSONObject obj : infoMap.values()) { + arr.add(obj); + } + } + return arr; + } } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java =================================================================== diff -u -r35578 -r35711 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 35578) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/PackingAction.java (.../PackingAction.java) (revision 35711) @@ -1455,4 +1455,22 @@ retObj.put("success", true); StrutsResponseUtils.output(retObj); } + /** + * 验证器械包是否可以被聚合 + */ + public void verifyTousseCanBeAggregated(){ + JSONObject retObj = null; + try { + String tdIds = StrutsParamUtils.getPraramValue("tdIds", null); + if(StringUtils.isBlank(tdIds)){ + throw new SystemException("参数异常tdIds为空"); + } + JSONArray infoArr = packingManager.verifyTousseCanBeAggregated(SqlUtils.splitStringToSet(tdIds, ",")); + retObj = JSONUtil.buildJsonObject(true,infoArr); + } catch (Exception e) { + e.printStackTrace(); + retObj = JSONUtil.buildJsonObject(false,e.getMessage()); + } + StrutsResponseUtils.output(retObj); + } } Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java =================================================================== diff -u -r34770 -r35711 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 34770) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManager.java (.../PackingManager.java) (revision 35711) @@ -380,4 +380,10 @@ * @return */ public int getPackingTaskTousseNameCount(String taskGroup, String tousseOrDepart); + /** + * 验证器械包是否可以被聚合 + * @param tdIds 包定义ids + * @return + */ + public JSONArray verifyTousseCanBeAggregated(Set tdIds); }