Index: ssts-web/src/main/java/com/forgon/disinfectsystem/directory/controller/UserController.java =================================================================== diff -u -r40564 -r40576 --- ssts-web/src/main/java/com/forgon/disinfectsystem/directory/controller/UserController.java (.../UserController.java) (revision 40564) +++ ssts-web/src/main/java/com/forgon/disinfectsystem/directory/controller/UserController.java (.../UserController.java) (revision 40576) @@ -3,6 +3,8 @@ */ package com.forgon.disinfectsystem.directory.controller; +import javax.transaction.SystemException; + import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; @@ -48,20 +50,35 @@ String fullName = ""; boolean printUserFullName = false; boolean success = false; - String barcode = SpringUtils.getPraramValue("barcode", null); - if (StringUtils.isNotBlank(barcode) - && (user = sysUserManager.getUserByBarcode(barcode)) != null) { - name = user.getName(); - fullName = user.getFullName(); - printUserFullName = supplyRoomConfigManager.getSystemParamsObj() - .isPrintUserFullName(); // 是否打印全名 - if (user.isBelongsToCurrentLoginUserOrgs()) { - obj.put("isSameOrgUnit", true); - } else { // 此用户所属科室不包含当前用户的当前科室 - obj.put("isNotSameOrgUnit", true); + try { + String barcode = SpringUtils.getPraramValue("barcode", null); + String orgUnitCode = SpringUtils.getPraramValue("orgUnitCode", null); + if (StringUtils.isNotBlank(barcode) + && (user = sysUserManager.getUserByBarcode(barcode)) != null) { + name = user.getName(); + fullName = user.getFullName(); + printUserFullName = supplyRoomConfigManager.getSystemParamsObj() + .isPrintUserFullName(); // 是否打印全名 + if (user.isBelongsToCurrentLoginUserOrgs()) { + obj.put("isSameOrgUnit", true); + } else { // 此用户所属科室不包含当前用户的当前科室 + obj.put("isNotSameOrgUnit", true); + } + obj.put("id", user.getId()); + if(!user.isEnabled()){ + throw new SystemException(user.getFullName() + "状态为停用"); + } + if(StringUtils.isNotBlank(orgUnitCode)){ + if(!isUserBelongsToOrgUnit(user, orgUnitCode)){ + throw new SystemException(user.getFullName() + "不是当前处理科室的用户"); + } + } + success = true; } - obj.put("id", user.getId()); - success = true; + } catch (Exception e) { + e.printStackTrace(); + obj.put("message", e.getMessage()); + success = false; } obj.put("name", name); @@ -73,6 +90,26 @@ } /** + * 判断用户是否某个科室的用户 + * @param user 用户 + * @param orgUnitCode 科室编码 + * @return true/false + */ + private boolean isUserBelongsToOrgUnit(User user, String orgUnitCode) { + String orgUnitCodes = user.getOrgUnitCodes(); + if (StringUtils.isNotBlank(orgUnitCodes)) { + String[] orgUnitCodesArray = orgUnitCodes + .split(User.ORGUNIT_ROLE_SEPARATOR); + for (String orgUnitCoding : orgUnitCodesArray) { + if (StringUtils.equals(orgUnitCoding, orgUnitCode)) { + return true; + } + } + } + return false; + } + + /** * 停用或者启用用户FSSDERMYY-22 */ @RequestMapping(value = "/disableOrEnableUser")