package com.norteksoft.acs.web.organization; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.springframework.beans.factory.annotation.Required; import com.norteksoft.acs.base.web.struts2.CRUDActionSupport; import com.norteksoft.acs.entity.authorization.BusinessSystem; import com.norteksoft.acs.entity.authorization.Role; import com.norteksoft.acs.entity.organization.Company; import com.norteksoft.acs.entity.organization.User; import com.norteksoft.acs.entity.organization.Workgroup; import com.norteksoft.acs.service.authorization.BusinessSystemManager; import com.norteksoft.acs.service.organization.CompanyManager; import com.norteksoft.acs.service.organization.UserInfoManager; import com.norteksoft.acs.service.organization.WorkGroupManager; import com.norteksoft.acs.web.eunms.AddOrRomoveState; import com.norteksoft.product.api.ApiFactory; import com.norteksoft.product.orm.Page; import com.norteksoft.product.util.ContextUtils; import com.norteksoft.product.util.PageUtils; /** * author 李洪超 * version 创建时间:2009-3-11 上午09:51:10 * 工作组管理Action */ @SuppressWarnings("deprecation") @Namespace("/organization") @ParentPackage("default") @Results( { @Result(name = CRUDActionSupport.RELOAD, location = "work-group", type = "redirectAction") }) public class WorkGroupAction extends CRUDActionSupport<Workgroup> { private static final long serialVersionUID = 4814560124772644966L; private WorkGroupManager workGroupManager; private CompanyManager companyManager; private UserInfoManager userInfoManager; private Page<Workgroup> page = new Page<Workgroup>(0, true);// 每页5项,自动查询计算总页数. private Page<User> userPage = new Page<User>(0, true);// 每页5项,自动查询计算总页数. private Page<Role> rolePage = new Page<Role>(20, true);// 每页5项,自动查询计算总页数. private Workgroup workGroup; private Long id; private Long companyId; private Long workGroupId; private String workGroupIdStr; private Long parentId; private List<Workgroup> allWorkGroup; private String workGroupName; private String workGroupCode; private List<Long> userIds; private List<Long> checkedRoleIds; private List<Long> roleIds; private Integer isAddOrRomove; private List<BusinessSystem> systems; private BusinessSystemManager businessSystemManager; private List<Role> roleList; private String ids; private String prems1; private String ides; private String wfType; private String comeFrom; /** * 验证工作组名称唯一性 */ public String checkWorkName() throws Exception{ boolean workGroup = false; if(id!=null){ workGroup = workGroupManager.checkWorkName(workGroupName,id); }else{ workGroup = workGroupManager.checkWorkName(workGroupName); } if(workGroup == false){ this.renderText("true"); }else{ this.renderText(workGroupName); } return null; } /** * 验证工作组编号唯一性 * liudongxia */ public String checkWorkCode() throws Exception{ boolean workGroup = false; if(id!=null){ workGroup = workGroupManager.checkWorkCode(workGroupCode,id); }else{ workGroup = workGroupManager.checkWorkCode(workGroupCode); } if(workGroup == false){ this.renderText("true"); }else{ this.renderText(workGroupCode); } return null; } /** * 新建工作组 */ public String inputWorkGroup() throws Exception{ companyId = companyManager.getCompanyId(); ApiFactory.getBussinessLogService().log("工作组管理", "新建工作组",ContextUtils.getSystemId("acs")); return "input"; } /** * 保存新建工作组 */ public void prepareSaveWorkGroup() throws Exception { prepareModel(); } /** * 保存新建工作组信息 */ public String saveWorkGroup() throws Exception{ boolean logSign=true;//该字段只是为了标识日志信息:true表示新建工作组、false表示修改工作组 if(id==null){ Company company = companyManager.getCompany(companyId); workGroup.setCompany(company); workGroupManager.saveWorkGroup(workGroup); }else{ workGroupManager.saveWorkGroup(workGroup); logSign=false; } if(logSign){ ApiFactory.getBussinessLogService().log("工作组管理", "新建工作组:"+workGroup.getName(),ContextUtils.getSystemId("acs")); }else{ ApiFactory.getBussinessLogService().log("工作组管理", "修改工作组:"+workGroup.getName(),ContextUtils.getSystemId("acs")); } return RELOAD; } public String checkSubmit()throws Exception{ boolean nameFlag = workGroupManager.checkWorkName(workGroupName,id); boolean codeFlag = workGroupManager.checkWorkCode(workGroupCode,id); if(!nameFlag && !codeFlag){ this.renderText("true"); }else{ if(nameFlag){ this.renderText("name-false"); }else{ this.renderText("code-false"); } } return null; } @Override public String delete() throws Exception { String logSign="";//该字段只是为了标识日志信息:工作组名称 String[] str=ides.split(","); for(String sid:str){ workGroup = workGroupManager.getWorkGroup(Long.valueOf(sid)); if(StringUtils.isNotEmpty(logSign)){ logSign+=","; } logSign+=workGroup.getName(); workGroupManager.deleteWorkGroup(Long.valueOf(sid)); } ApiFactory.getBussinessLogService().log("工作组管理", "删除工作组:"+logSign,ContextUtils.getSystemId("acs")); return null; } @Override @Action("work-group") public String list() throws Exception { if(page.getPageSize() <= 1){ return SUCCESS; }else{ page = workGroupManager.getAllWorkGroup(page); ApiFactory.getBussinessLogService().log("工作组管理", "查看工作组列表",ContextUtils.getSystemId("acs")); renderHtml(PageUtils.pageToJson(page)); return null; } } /** * 按条件查询 * * @return */ public void prepareSearch() throws Exception { prepareModel(); } public String search() throws Exception { page = workGroupManager.getSearchWorkGroup(page, workGroup, false); return SUCCESS; } public void prepareSaveUser() throws Exception { prepareModel(); } public void prepareAddWorkGroupToUsers() throws Exception { workGroup = workGroupManager.getWorkGroup(workGroupId); } /** * 跳转到工作组添加人员页面 */ public String addWorkGroupToUsers()throws Exception{ isAddOrRomove=AddOrRomoveState.ADD.code; if(userPage.getPageSize() <= 1){ return "user-list"; }else{ userPage = workGroupManager.workGroupToUsers(userPage, StringUtils.isEmpty(workGroupIdStr)?workGroupId:Long.parseLong(workGroupIdStr)); renderHtml(PageUtils.pageToJson(userPage)); return null; } } /** * 跳转到工作组移除人员页面 */ public void prepareRemoveWorkGroupToUsers() throws Exception { } public String removeWorkGroupToUsers()throws Exception{ workGroup = workGroupManager.getWorkGroup(StringUtils.isEmpty(workGroupIdStr)?workGroupId:Long.parseLong(workGroupIdStr)); userPage = workGroupManager.workGroupToRomoveUserList(userPage,null,workGroup.getId()); isAddOrRomove=AddOrRomoveState.ROMOVE.code; if(userPage.getPageSize() <= 1){ return "user-list"; }else{ renderHtml(PageUtils.pageToJson(userPage)); return null; } } /** * 工作组添加人员树 */ public String addUsersToWorkgroup()throws Exception{ return "user-tree"; } /** * 保存工作组添加用户 * @return * @throws Exception */ public String workgroupAddUser()throws Exception{ workGroupManager.workgroupAddUser(workGroupId, userIds, 0); ApiFactory.getBussinessLogService().log("工作组管理", "保存工作组添加人员",ContextUtils.getSystemId("acs")); return getUserByWorkGroup(); } /** * 工作组用户列表 * @return * @throws Exception */ public String getUserByWorkGroup() throws Exception{ if(userPage.getPageSize() <= 1){ return "users"; }else{ if(workGroupId != null){ userPage = userInfoManager.queryUsersByWorkGroup(userPage, workGroupId); } renderHtml(PageUtils.pageToJson(userPage)); return null; } } /** * 保存工作组移除用户 * @return * @throws Exception */ public String removeWorkgroupToUsers() throws Exception{ workGroupManager.workgroupAddUser(workGroupId, userIds, 1); ApiFactory.getBussinessLogService().log("工作组管理", "保存工作组移除人员",ContextUtils.getSystemId("acs")); return getUserByWorkGroup(); } /** *工作组添加人员(保存关系) */ public String workGroupAddUser() throws Exception { String[] arr=ids.split(","); List<Long> userids=new ArrayList<Long>(); for(String str:arr){ userids.add(Long.valueOf(str)); } workGroupManager.workGroupToUser(StringUtils.isEmpty(workGroupIdStr)?workGroupId:Long.parseLong(workGroupIdStr), userids,isAddOrRomove); return RELOAD; } /** * 工作组添加角色 */ public void prepareWorkGroupToRoleList() throws Exception { workGroup = workGroupManager.getWorkGroup(workGroupId); } public String workGroupToRoleList() throws Exception { systems = businessSystemManager.getAllBusiness(); checkedRoleIds = workGroupManager.getRoleIds(workGroupId); isAddOrRomove=AddOrRomoveState.ADD.code; return "role-list"; } public void prepareWorkGroupRomoveRoleList() throws Exception { workGroup = workGroupManager.getWorkGroup(workGroupId); } public String workGroupRomoveRoleList() throws Exception { systems = businessSystemManager.getAllBusiness(); roleList = workGroupManager.getRole(workGroupId); checkedRoleIds = workGroupManager.getRoleIds(workGroupId); isAddOrRomove=AddOrRomoveState.ROMOVE.code; return "role-list"; } public String workGroupAddRole() throws Exception { workGroupManager.workGroupAddRole(workGroupId, roleIds,isAddOrRomove); ApiFactory.getBussinessLogService().log("工作组管理", "工作组中添加角色",ContextUtils.getSystemId("acs")); return RELOAD; } @Override public String input() throws Exception { ApiFactory.getBussinessLogService().log("工作组管理", "修改工作组",ContextUtils.getSystemId("acs")); return INPUT; } @Override protected void prepareModel() throws Exception { if (id != null) { workGroup = workGroupManager.getWorkGroup(id); } else { workGroup = new Workgroup(); } } @Override public String save() throws Exception { workGroupManager.saveWorkGroup(workGroup); addActionMessage("保存工作组成功"); ApiFactory.getBussinessLogService().log("工作组管理", "保存工作组信息",ContextUtils.getSystemId("acs")); return RELOAD; } @Required public void setCompanyManager(CompanyManager companyManager) { this.companyManager = companyManager; } public Long getCompanyId() { return ContextUtils.getCompanyId(); } public void setCompanyId(Long companyId) { this.companyId = companyId; } public Page<User> getUserPage() { return userPage; } public void setUserPage(Page<User> userPage) { this.userPage = userPage; } public List<Long> getUserIds() { return userIds; } public void setUserIds(List<Long> userIds) { this.userIds = userIds; } public Long getWorkGroupId() { return workGroupId; } public void setWorkGroupId(Long workGroupId) { this.workGroupId = workGroupId; } public Long getParentId() { return parentId; } public void setParentId(Long parentId) { this.parentId = parentId; } public UserInfoManager getUserInfoManager() { return userInfoManager; } public void setUserInfoManager(UserInfoManager userInfoManager) { this.userInfoManager = userInfoManager; } public void setWorkGroup(Workgroup workGroup) { this.workGroup = workGroup; } public String getWorkGroupName() { return workGroupName; } public void setWorkGroupName(String workGroupName) { this.workGroupName = workGroupName; } public String getWorkGroupCode() { return workGroupCode; } public void setWorkGroupCode(String workGroupCode) { this.workGroupCode = workGroupCode; } public Workgroup getModel() { return workGroup; } public Page<Workgroup> getPage() { return page; } public void setPage(Page<Workgroup> page) { this.page = page; } public String temp() throws Exception { return SUCCESS; } @Required public void setWorkGroupManager(WorkGroupManager workGroupManager) { this.workGroupManager = workGroupManager; } public List<Workgroup> getAllWorkGroup() { return allWorkGroup; } public void setId(Long id) { this.id = id; } public Page<Role> getRolePage() { return rolePage; } public void setRolePage(Page<Role> rolePage) { this.rolePage = rolePage; } public List<Long> getCheckedRoleIds() { return checkedRoleIds; } public void setCheckedRoleIds(List<Long> checkedRoleIds) { this.checkedRoleIds = checkedRoleIds; } public List<Long> getRoleIds() { return roleIds; } public void setRoleIds(List<Long> roleIds) { this.roleIds = roleIds; } public Integer getIsAddOrRomove() { return isAddOrRomove; } public void setIsAddOrRomove(Integer isAddOrRomove) { this.isAddOrRomove = isAddOrRomove; } public List<BusinessSystem> getSystems() { return systems; } public void setSystems(List<BusinessSystem> systems) { this.systems = systems; } @Required public void setBusinessSystemManager(BusinessSystemManager businessSystemManager) { this.businessSystemManager = businessSystemManager; } public List<Role> getRoleList() { return roleList; } public void setRoleList(List<Role> roleList) { this.roleList = roleList; } public String getPrems1() { return prems1; } public void setPrems1(String prems1) { this.prems1 = prems1; } public String getIds() { return ids; } public void setIds(String ids) { this.ids = ids; } public String getIdes() { return ides; } public void setIdes(String ides) { this.ides = ides; } public String getWfType() { return wfType; } public void setWfType(String wfType) { this.wfType = wfType; } public String getComeFrom() { return comeFrom; } public void setComeFrom(String comeFrom) { this.comeFrom = comeFrom; } }