Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java =================================================================== diff -u -r33332 -r33383 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 33332) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/action/JasperreportsAction.java (.../JasperreportsAction.java) (revision 33383) @@ -4332,18 +4332,50 @@ String value = goodsOption.getValue(); if(StringUtils.isNotBlank(value)){ String[] nameArray = value.split(";"); - for (String name : nameArray) { - JSONObject jSONObject = new JSONObject(); - jSONObject.put("name", name); - jSONArray.add(jSONObject); + if(isTousseDefinitionIds(model) && DatabaseUtil.isPoIdValid(nameArray[0])){ + Set ids = SqlUtils.splitStringToSet(value, ";", true); + List tds = objectDao.findByHql("select po from " + TousseDefinition.class.getSimpleName() + " po where " + + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.id", ids)); + if(CollectionUtils.isNotEmpty(tds)){ + Map tdMap = new HashMap(); + for (TousseDefinition td : tds) { + tdMap.put(td.getId() + "", td); + } + for (String idStr : nameArray) { + JSONObject jSONObject = new JSONObject(); + TousseDefinition td = tdMap.get(idStr); + if(td == null){ + continue; + } + jSONObject.put("name", td.getName()); + jSONObject.put("id", td.getId()); + jSONArray.add(jSONObject); + } + } + }else{ + for (String name : nameArray) { + JSONObject jSONObject = new JSONObject(); + jSONObject.put("name", name); + jSONArray.add(jSONObject); + } } } } StrutsResponseUtils.output(jSONArray); } } - /** + * 判断GoodsOption表的字段value存的是不是包定义id + * @param model GoodsOption.model + * @return + */ + private boolean isTousseDefinitionIds(String model){ + if(GoodsOption.MODEL_TOUSSEWORKLOAD.equals(model)){ + return true; + } + return false; + } + /** * 获取工作评分标准配置 */ public void getWorkScoreConfig(){ Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/reportoption/GoodsOption.java =================================================================== diff -u -r27360 -r33383 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/reportoption/GoodsOption.java (.../GoodsOption.java) (revision 27360) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/reportoption/GoodsOption.java (.../GoodsOption.java) (revision 33383) @@ -2,18 +2,27 @@ import javax.persistence.Column; import javax.persistence.Entity; + +import org.hibernate.annotations.Cascade; +import org.hibernate.annotations.CascadeType; import org.hibernate.annotations.DynamicInsert; import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import javax.persistence.JoinColumn; import javax.persistence.Lob; +import javax.persistence.ManyToOne; import javax.persistence.Table; import org.hibernate.annotations.Cache; import org.hibernate.annotations.CacheConcurrencyStrategy; +import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; + @Entity @DynamicInsert(false) @DynamicUpdate(true) @@ -52,7 +61,10 @@ private String code; private String value; - + /** + * 包定义 + */ + private TousseDefinition tousseDefinition; @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { @@ -88,5 +100,16 @@ public void setValue(String value) { this.value = value; } + + @ManyToOne(fetch = FetchType.EAGER) + @Cascade(value = { CascadeType.SAVE_UPDATE, CascadeType.DELETE}) + @JoinColumn(name = "tousseDefinition_id") + public TousseDefinition getTousseDefinition() { + return tousseDefinition; + } + + public void setTousseDefinition(TousseDefinition tousseDefinition) { + this.tousseDefinition = tousseDefinition; + } } Index: ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java =================================================================== diff -u -r33365 -r33383 --- ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33365) +++ ssts-reports/src/main/java/com/forgon/disinfectsystem/jasperreports/service/JasperReportManagerImpl.java (.../JasperReportManagerImpl.java) (revision 33383) @@ -12347,10 +12347,21 @@ if (option != null && StringUtils.isNotBlank(option.getValue())) { // 选择的包名称 String[] selectedGoodsNameArray = option.getValue().split(";"); - - for (String selectedGoodsName : selectedGoodsNameArray) { - selectedTousseNameMap.put(selectedGoodsName, - selectedGoodsName); + if(DatabaseUtil.isPoIdValid(selectedGoodsNameArray[0])){ + Set ids = SqlUtils.splitStringToSet(option.getValue(), ";", true); + List tds = objectDao.findByHql("select po from " + TousseDefinition.class.getSimpleName() + " po where " + + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.id", ids)); + if(CollectionUtils.isNotEmpty(tds)){ + for (TousseDefinition td : tds) { + selectedTousseNameMap.put(td.getName(), + td.getName()); + } + } + }else{ + for (String selectedGoodsName : selectedGoodsNameArray) { + selectedTousseNameMap.put(selectedGoodsName, + selectedGoodsName); + } } } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r32905 -r33383 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 32905) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 33383) @@ -3337,7 +3337,7 @@ List> list = null; if(GoodsOption.MODEL_TOUSSEWORKLOAD.equals(model)){ list = tousseDefinitionManager - .searchTousseByKeywordAndTousseTypeArr(false, spell, tousseTypeArray, true); + .searchTousseByKeywordAndTousseTypeArr(true, spell, tousseTypeArray, true); }else{ list = tousseDefinitionManager .searchTousseByKeywordAndTousseTypeArr(spell, tousseTypeArray, true ,false,false,null,true); Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java =================================================================== diff -u -r33307 -r33383 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 33307) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseDefinitionManagerImpl.java (.../TousseDefinitionManagerImpl.java) (revision 33383) @@ -2411,13 +2411,14 @@ if(StringUtils.isNotBlank(keyword)){ orderBy = String.format(" order by %s, po.name ", strlen); } - String querySql = String.format("select distinct %s, name from %s po %s", strlen, TousseDefinition.class.getSimpleName() ,sql+orderBy); + String querySql = String.format("select distinct %s,id, name from %s po %s", strlen, TousseDefinition.class.getSimpleName() ,sql+orderBy); try { rs = objectDao.executeSql(querySql); while(rs.next()){ Map temp = new HashMap(); String name = rs.getString("name"); temp.put("name", name); + temp.put("id", rs.getLong("id")); mapList.add(temp); } } catch (SQLException e) {