فهرست منبع

修改部门优化

HD_wangm 10 ماه پیش
والد
کامیت
1e2369121b
1فایلهای تغییر یافته به همراه68 افزوده شده و 0 حذف شده
  1. 68 0
      src/main/core/com/yw/eu/base/user/action/SubmitGroup.java

+ 68 - 0
src/main/core/com/yw/eu/base/user/action/SubmitGroup.java

@@ -2,6 +2,7 @@
 package com.yw.eu.base.user.action;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
@@ -21,6 +22,7 @@ import com.yw.eu.base.user.model.Group;
 import com.yw.eu.base.user.model.GroupTree;
 import com.yw.eu.base.user.service.GroupService;
 import com.yw.eu.base.user.service.UserService;
+import com.yw.hr.utils.MathUtils;
 
 public class SubmitGroup extends PermitDataAction {
 	
@@ -96,6 +98,13 @@ public class SubmitGroup extends PermitDataAction {
 			editGroup(group, id);
 			Map groupMap = ClassUtil.fillMap(group);
 			BundleContext.sendThreadEvent("com.yw.iface.eu.handler.GroupModifyHandler",groupMap);
+//			List<Group> childGroups = groupService.loadGroupsByPid(id);
+//			if(childGroups.size() > 0) {
+//				for(Group childGroup : childGroups) {
+//					childGroup.setLevel(String.valueOf(Integer.parseInt(level) + 1));
+//					editChildGroup(childGroup, childGroup.getId().toString());
+//				}
+//			}
 		}
 		request.setAttribute("msgEvent", "1");
 		this.path = "EditGroup.do?chain=1&pid="+ancestorID;
@@ -211,6 +220,13 @@ public class SubmitGroup extends PermitDataAction {
 		}else{
 			this.addError(msg);
 		}
+		List<Group> childGroups = groupService.loadGroupsByPid(id);
+		if(childGroups.size() > 0) {
+			for(Group childGroup : childGroups) {
+				childGroup.setLevel(String.valueOf(level + 1));
+				editChildGroup(childGroup, childGroup.getId().toString());
+			}
+		}
 		String logInfo = processDifferentInfo(oldGroup,group);
 		this.insertActionLog("修改部门", "修改部门"+oldGroup.getGroupName(), logInfo);
 	}
@@ -226,4 +242,56 @@ public class SubmitGroup extends PermitDataAction {
 		cols.put("level",pr.getProperty("eu_grp_level"));
 		return CommonUtil.processLogInfo(beforeUser,afterUser,cols);
 	}
+	
+	/**
+	 * 修改部门/公司	
+	 * @param group
+	 * @param id
+	 * @throws Exception
+	 */
+		private void editChildGroup(Group group,String id) throws Exception{
+			boolean flag = false;
+			Group oldGroup =  groupService.findGroupById(Long.valueOf(id));
+			if(!oldGroup.getAncestorID().equals(group.getAncestorID())){
+				Group oldUnit = groupTree.getGroupRoot(oldGroup.getAncestorID(),Constant.ORG_LEVEL_UNIT);
+				Group unit = groupTree.getGroupRoot(group.getAncestorID(),Constant.ORG_LEVEL_UNIT);
+				if(!oldUnit.getId().equals(unit.getId())){
+					userService.updateUnit(oldUnit.getId(),unit.getId());
+				}
+			}
+			Group parentGroup = groupService.findGroupById(Long.valueOf(group.getAncestorID()));
+			String gtlevel = group.getGtLevel();
+			String msg = "修改失败!";
+			group.setRelation(groupService.loadReation(parentGroup));
+			Long level = Long.valueOf(group.getLevel());
+			if(level>2){
+				String companyId = groupService.loadCompanyId(group.getRelation());
+				if(!StringUtil.isEmpty(companyId)){
+					group.setCompanyId(Long.valueOf(companyId));
+				}
+			}else{
+				group.setCompanyId(oldGroup.getCompanyId());
+			}	
+			group.setId(new Long(id));
+			if(Long.valueOf(group.getAncestorID()).equals(group.getId())){
+				msg = "父部门不能为当前部门!";
+			}else{
+				flag = groupService.editGroup(group);
+			}		
+			conn.commit();
+			if(flag){
+				this.addInfo("修改成功!");
+			}else{
+				this.addError(msg);
+			}
+			List<Group> childGroups = groupService.loadGroupsByPid(id);
+			if(childGroups.size() > 0) {
+				for(Group childGroup : childGroups) {
+					childGroup.setLevel(String.valueOf(level + 1));
+					editChildGroup(childGroup, childGroup.getId().toString());
+				}
+			}
+			String logInfo = processDifferentInfo(oldGroup,group);
+			this.insertActionLog("修改部门", "修改部门"+oldGroup.getGroupName(), logInfo);
+		}
 }