Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java =================================================================== diff -u -r33595 -r33750 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 33595) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManagerImpl.java (.../OrgUnitManagerImpl.java) (revision 33750) @@ -2251,13 +2251,22 @@ return arr; } - + @SuppressWarnings("unchecked") @Override public List searchOrgUnitAndParentBySpellOrWbCode(String simpleSpell, String related) { List result = new ArrayList(); - List searchOrgUnitList = this.searchOrgUnitBySpellOrWbCode(simpleSpell, related); - if(CollectionUtils.isNotEmpty(searchOrgUnitList) && StringUtils.isNotBlank(simpleSpell)){ + List searchOrgUnitList = new ArrayList(); + if(StringUtils.isBlank(simpleSpell)){ + String hql = String.format("select po from %s po where po.status is null or po.status = %s", OrgUnit.class.getSimpleName(), OrgUnit.STATUS_ENSABLED); + searchOrgUnitList = objectDao.findByHql(hql); + }else{ + searchOrgUnitList = this.searchOrgUnitBySpellOrWbCode(simpleSpell, related); + } + if(CollectionUtils.isNotEmpty(searchOrgUnitList)){ for (OrgUnit orgUnit : searchOrgUnitList) { + if(orgUnit.getStatus() != null && orgUnit.getStatus().intValue() == OrgUnit.STATUS_DISABLED.intValue()){ + continue; + } if(!result.contains(orgUnit)){ result.add(orgUnit); } @@ -2280,5 +2289,32 @@ } } } + + @Override + public String valideOrgUnit(String orgUnitCodes) { + if(StringUtils.isBlank(orgUnitCodes)){ + return ""; + } + List orgUnitList = getByCodes(orgUnitCodes); + Map orgUnitMap = new HashMap(); + if(CollectionUtils.isNotEmpty(orgUnitList)){ + for (OrgUnit orgUnit : orgUnitList) { + orgUnitMap.put(orgUnit.getOrgUnitCoding(), orgUnit); + } + } + + String[] orgUnitCodeArr = orgUnitCodes.split(","); + for (String orgUnitCode : orgUnitCodeArr) { + OrgUnit orgUnit = orgUnitMap.get(orgUnitCode); + if(orgUnit == null){ + return "科室编码为【" + orgUnitCode + "】的科室已经不存在!"; + } + if(OrgUnit.STATUS_DISABLED.equals(orgUnit.getStatus())){ + return "【" + orgUnit.getName() + "】已经停用!"; + } + } + return ""; + } + } Index: forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java =================================================================== diff -u -r33595 -r33750 --- forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 33595) +++ forgon-core/src/main/java/com/forgon/directory/service/OrgUnitManager.java (.../OrgUnitManager.java) (revision 33750) @@ -287,5 +287,12 @@ * @return */ public List searchOrgUnitAndParentBySpellOrWbCode(String spell, String related); + + /** + * 检查科室是否合法 + * @param orgUnitCodes + * @return + */ + public String valideOrgUnit(String orgUnitCodes); } Index: forgon-core/src/main/java/com/forgon/directory/action/OrgUnitAction.java =================================================================== diff -u -r33595 -r33750 --- forgon-core/src/main/java/com/forgon/directory/action/OrgUnitAction.java (.../OrgUnitAction.java) (revision 33595) +++ forgon-core/src/main/java/com/forgon/directory/action/OrgUnitAction.java (.../OrgUnitAction.java) (revision 33750) @@ -559,12 +559,7 @@ result.put("code", 0); result.put("msg", "操作成功"); JSONArray data = new JSONArray(); - List orgUnitList = new ArrayList(); - if(StringUtils.isNotBlank(spell)){ - orgUnitList = orgUnitManager.searchOrgUnitAndParentBySpellOrWbCode(spell, "false"); - }else{ - orgUnitList = orgUnitManager.findAllOrgUnit(); - } + List orgUnitList = orgUnitManager.searchOrgUnitAndParentBySpellOrWbCode(spell, "false"); JSONObject root = new JSONObject(); root.put("id", 0); root.put("title", "组织机构"); @@ -603,4 +598,22 @@ StrutsResponseUtils.output(result); } + /** + * 检查科室是否停用或者科室不存在 + */ + public void valideOrgUnit(){ + JSONObject result = JSONUtil.buildJsonObject(true); + String orgUnitCodes = StrutsParamUtils.getPraramValue("orgUnitCodes", ""); + try { + String valideResult = orgUnitManager.valideOrgUnit(orgUnitCodes); + if(StringUtils.isNotBlank(valideResult)){ + result = JSONUtil.buildJsonObject(false, valideResult); + } + } catch (Exception e) { + e.printStackTrace(); + result = JSONUtil.buildJsonObject(false, e.getMessage()); + } + StrutsResponseUtils.output(result); + } + }