Index: forgon-core/src/main/java/com/forgon/security/service/UserManagerImpl.java =================================================================== diff -u -r13744 -r13977 --- forgon-core/src/main/java/com/forgon/security/service/UserManagerImpl.java (.../UserManagerImpl.java) (revision 13744) +++ forgon-core/src/main/java/com/forgon/security/service/UserManagerImpl.java (.../UserManagerImpl.java) (revision 13977) @@ -470,5 +470,22 @@ } return user; + } + + @Override + public boolean isSterileUser(User user) { + if(user != null){ + String[] permitOperationIds = new String[]{"SSTS_Sterilization_remove","SSTS_Sterilization_Loading", + "SSTS_Sterilization_Update","SSTS_Sterilization_Delete","SSTS_Sterilization_Create", + "SSTS_Sterilization_Select"}; + for(Role role : user.getRoles()){ + for(String operationId : role.getOperationIdArr()){ + if(ArrayUtils.contains(permitOperationIds, operationId)){ + return true; + } + } + } + } + return false; } } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java =================================================================== diff -u -r13694 -r13977 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java (.../SterilizationRecordTableManager.java) (revision 13694) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java (.../SterilizationRecordTableManager.java) (revision 13977) @@ -11,6 +11,8 @@ import java.util.Map.Entry; import java.util.Set; +import net.sf.json.JSONObject; + import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -28,6 +30,8 @@ import com.forgon.disinfectsystem.entity.packing.ReviewedBasket; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; import com.forgon.disinfectsystem.sterilizationmanager.sterilizationrecord.service.SterilizationRecordManager; +import com.forgon.security.model.User; +import com.forgon.security.service.UserManager; import com.forgon.systemsetting.service.HttpOptionManager; import com.forgon.tools.SpringBeanManger; import com.forgon.tools.db.DatabaseUtil; @@ -56,6 +60,8 @@ private DateQueryAdapter dateQueryAdapter; private HttpOptionManager httpOptionManager; + + private UserManager userManager; public void setHttpOptionManager(HttpOptionManager httpOptionManager) { this.httpOptionManager = httpOptionManager; @@ -102,6 +108,10 @@ return null; } + public void setUserManager(UserManager userManager) { + this.userManager = userManager; + } + /** * 取得灭菌目的 * @param name @@ -453,4 +463,35 @@ } return false; } + /** + * 根据条码获取灭菌员 + * @param barcode + * @return + */ + public String getSterilizationUserByBarcode(String barcode){ + JSONObject json = new JSONObject(); + String msg = ""; + BarcodeDevice barcodeDevice = barcodeManager + .getBarcodeByBarcode(barcode); + if (barcodeDevice instanceof User) { + User user = (User) barcodeDevice; + if(user.isBelongsToCurrentLoginUserOrgs()){ + if(userManager.isSterileUser(user)){ + json.put("name", user.getName()); + json.put("fullName", user.getFullName()); + json.put("barcode", barcode); + json.put("success", true); + return json.toString(); + } + msg = "扫描的人员至少需要拥有灭菌管理模块的一项权限"; + }else{ + msg = "只能扫描本科室的人员"; + } + } else { + msg = "没有找到对应的人员信息"; + } + json.put("success", false); + json.put("message", msg); + return json.toString(); + } } Index: forgon-core/src/main/java/com/forgon/security/service/UserManager.java =================================================================== diff -u -r13744 -r13977 --- forgon-core/src/main/java/com/forgon/security/service/UserManager.java (.../UserManager.java) (revision 13744) +++ forgon-core/src/main/java/com/forgon/security/service/UserManager.java (.../UserManager.java) (revision 13977) @@ -60,4 +60,10 @@ boolean searchUserOfNoOrg); public List findUserBySql(String sql); long getMaxUserOrder(Long orgUnitId); + /** + * 判断用户是否拥有灭菌模块的权限 + * @param user + * @return + */ + public boolean isSterileUser(User user); }