diff --git a/src/main/java/cn/timer/api/bean/crm/CrmBusinessGroup.java b/src/main/java/cn/timer/api/bean/crm/CrmBusinessGroup.java
index 7c3ca95..fdf2fa1 100644
--- a/src/main/java/cn/timer/api/bean/crm/CrmBusinessGroup.java
+++ b/src/main/java/cn/timer/api/bean/crm/CrmBusinessGroup.java
@@ -87,7 +87,7 @@ public class CrmBusinessGroup extends Model<CrmBusinessGroup> {
 	@Transient
 	@TableField(exist = false)
 	@ApiModelProperty(value = "组管理员id")
-	private Integer[] managerIds;
+	private List<Integer> managerIds;
 
 	@Transient
 	@TableField(exist = false)
@@ -97,7 +97,7 @@ public class CrmBusinessGroup extends Model<CrmBusinessGroup> {
 	@Transient
 	@TableField(exist = false)
 	@ApiModelProperty(value = "组成员id")
-	private Integer[] memberIds;
+	private List<Integer> memberIds;
 
 	@Transient
 	@TableField(exist = false)
diff --git a/src/main/java/cn/timer/api/controller/crm/CrmController.java b/src/main/java/cn/timer/api/controller/crm/CrmController.java
index 94b40fa..52f2a35 100644
--- a/src/main/java/cn/timer/api/controller/crm/CrmController.java
+++ b/src/main/java/cn/timer/api/controller/crm/CrmController.java
@@ -112,40 +112,74 @@ public class CrmController {
 
 	@PostMapping("addBusinessGroup")
 	@Transactional
-	@ApiOperation(value = "新增业务组", httpMethod = "POST", notes = "接口发布说明")
+	@ApiOperation(value = "新增/编辑业务组", httpMethod = "POST", notes = "接口发布说明")
 	public Result<Object> addBusinessGroup(@CurrentUser UserBean userBean,
 			@RequestBody CrmBusinessGroup crmBusinessGroup) {
 		Integer orgCode = getOrgCode(userBean);
 		Integer empNum = getEmpNum(userBean);
-		CrmBusinessGroup crmBusinessGroupOld = CrmBusinessGroup.builder().build()
-				.selectOne(new QueryWrapper<CrmBusinessGroup>().lambda().eq(CrmBusinessGroup::getOrgCode, orgCode)
-						.select(CrmBusinessGroup::getSort).last("limit 1").orderByDesc(CrmBusinessGroup::getId));
-		if (crmBusinessGroupOld == null)
-			crmBusinessGroup.setSort(1);
-		else
-			crmBusinessGroup.setSort(crmBusinessGroupOld.getSort() + 1);// 排序
-//		crmBusinessGroup.setManagerName(getEmpName(orgCode, empNum)); // 设置管理员姓名
-		crmBusinessGroup.setCreateUser(empNum); // 创建人
-		crmBusinessGroup.setModifyUser(empNum); // 修改人
-		crmBusinessGroup.setOrgCode(orgCode);
-//		crmBusinessGroup.setMember(member); // ,字符串拼接
-		boolean result = crmBusinessGroup.insert();
-		if (!result)
-			return ResultUtil.success("新增失败");
 		Integer gid = crmBusinessGroup.getId();
-		Integer[] memberIds = crmBusinessGroup.getMemberIds();
-		for (Integer empId : memberIds) {
-			CrmBusinessGroupMember.builder().gid(gid).empNum(empId).orgCode(orgCode).type(0).build().insert();
+		crmBusinessGroup.setModifyUser(empNum); // 修改人
+		if (gid == null) {
+			CrmBusinessGroup crmBusinessGroupOld = CrmBusinessGroup.builder().build()
+					.selectOne(new QueryWrapper<CrmBusinessGroup>().lambda().eq(CrmBusinessGroup::getOrgCode, orgCode)
+							.select(CrmBusinessGroup::getSort).last("limit 1").orderByDesc(CrmBusinessGroup::getId));
+			if (crmBusinessGroupOld == null)
+				crmBusinessGroup.setSort(1);
+			else
+				crmBusinessGroup.setSort(crmBusinessGroupOld.getSort() + 1);// 排序
+			crmBusinessGroup.setCreateUser(empNum); // 创建人
+			crmBusinessGroup.setOrgCode(orgCode);
+			boolean result = crmBusinessGroup.insert();
+			if (!result)
+				return ResultUtil.success("新增失败");
+			gid = crmBusinessGroup.getId();
+			List<Integer> memberIds = crmBusinessGroup.getMemberIds();
+			for (Integer empId : memberIds) {
+				insertMembers(gid, empId, orgCode, 0);
+			}
+			List<Integer> managerIds = crmBusinessGroup.getManagerIds();
+			for (Integer empId : managerIds) {
+				insertMembers(gid, empId, orgCode, 1);
+			}
+			CrmSeaRule crmSeaRule = crmBusinessGroup.getCrmSeaRules();
+			crmSeaRule.setGid(gid);
+			crmSeaRule.insert();
+		} else {
+			List<Integer> memberIds = crmBusinessGroup.getMemberIds();
+			List<Integer> managerIds = crmBusinessGroup.getManagerIds();
+			// 更新组成员
+			updateMembers(orgCode, gid, memberIds, 0);
+			updateMembers(orgCode, gid, managerIds, 1);
+			// 更新公海规则
+			crmBusinessGroup.getCrmSeaRules().update(new LambdaQueryWrapper<CrmSeaRule>().eq(CrmSeaRule::getGid, gid));
 		}
-		Integer[] managerIds = crmBusinessGroup.getManagerIds();
-		for (Integer empId : managerIds) {
-			CrmBusinessGroupMember.builder().gid(gid).empNum(empId).orgCode(orgCode).type(1).build().insert();
+		return ResultUtil.success("新增业务组成功");
+	}
+
+	private void insertMembers(Integer gid, Integer empId, Integer orgCode, Integer type) {
+		CrmBusinessGroupMember.builder().gid(gid).empNum(empId).orgCode(orgCode).type(type).build().insert();
+	}
+
+	private void updateMembers(Integer orgCode, Integer gid, List<Integer> memberIds, Integer type) {
+		List<CrmBusinessGroupMember> oldMembers = CrmBusinessGroupMember.builder().build()
+				.selectList(new LambdaQueryWrapper<CrmBusinessGroupMember>().eq(CrmBusinessGroupMember::getGid, gid)
+						.eq(CrmBusinessGroupMember::getType, type).select(CrmBusinessGroupMember::getEmpNum));
+		// 旧组成员idlist
+		List<Integer> oldIdsList = oldMembers.stream().map(CrmBusinessGroupMember::getEmpNum)
+				.collect(Collectors.toList());
+
+		List<Integer> deList = CheckUtil.reduce(oldIdsList, memberIds); // 删
+		for (Integer integer : deList) {
+			CrmBusinessGroupMember.builder().build()
+					.delete(new LambdaQueryWrapper<CrmBusinessGroupMember>()
+							.eq(CrmBusinessGroupMember::getEmpNum, integer).eq(CrmBusinessGroupMember::getGid, gid)
+							.eq(CrmBusinessGroupMember::getOrgCode, orgCode).eq(CrmBusinessGroupMember::getType, type));
 		}
 
-		CrmSeaRule crmSeaRule = crmBusinessGroup.getCrmSeaRules();
-		crmSeaRule.setGid(gid);
-		crmSeaRule.insert();
-		return ResultUtil.success("新增业务组成功");
+		List<Integer> addList = CheckUtil.reduce(memberIds, oldIdsList); // 增
+		for (Integer integer : addList) {
+			CrmBusinessGroupMember.builder().empNum(integer).gid(gid).orgCode(orgCode).type(type).build().insert();
+		}
 	}
 
 	@GetMapping("getBusinessGroup")
@@ -169,6 +203,7 @@ public class CrmController {
 				String name = getEmpName(getOrgCode(userBean), empNum);
 				Map<String, Object> map = new HashMap<String, Object>();
 				map.put("name", name);
+				map.put("empNum", empNum);
 				managers.add(map);
 			}
 			crmBusinessGroup.setManagers(managers);
@@ -179,6 +214,7 @@ public class CrmController {
 				String name = getEmpName(getOrgCode(userBean), empNum);
 				Map<String, Object> map = new HashMap<String, Object>();
 				map.put("name", name);
+				map.put("empNum", empNum);
 				members.add(map);
 			}
 			crmBusinessGroup.setMembers(members);