|
@@ -319,8 +319,8 @@ public class AreaStaffService extends TreeService<AreaStaffDao, AreaStaffInfo>
|
|
|
|
|
|
public AreaStaffInfo getEffectiveArea(String officeId,String areaId) {
|
|
|
//根据地区id查询是否存在
|
|
|
- AreaStaffInfo info = dao.getEffectiveArea(areaId);
|
|
|
- if(null != info){
|
|
|
+ List<AreaStaffInfo> infoList = dao.getEffectiveArea(areaId);
|
|
|
+ for (AreaStaffInfo info : infoList) {
|
|
|
if(StringUtils.isNotBlank(info.getParentIds())){
|
|
|
String[] parentIds = info.getParentIds().split(",");
|
|
|
List<String> parentIdList = Arrays.asList(parentIds);
|
|
@@ -415,22 +415,42 @@ public class AreaStaffService extends TreeService<AreaStaffDao, AreaStaffInfo>
|
|
|
List<AreaStaffInfo> areaInfo = dao.getAreaStaffInfoByParentIdAndStandardDetail(directorApplication.getArea().getId(), officeInfo.getId());
|
|
|
if(null != areaInfo && areaInfo.size()>0){
|
|
|
//如果地区不为空,则查询地区下是否存在地区负责人项,若存在,则直接添加人员信息
|
|
|
- List<AreaStaffInfo> masterType = dao.getAreaStaffInfoByParentIdAndType("master", officeInfo.getId());
|
|
|
+ List<AreaStaffInfo> masterType = dao.getAreaStaffInfoByParentIdAndType("master", areaInfo.get(0).getId());
|
|
|
if(null != masterType && masterType.size()>0){
|
|
|
+ //查询该地区下是否已经存在该人员信息
|
|
|
//如果地区负责人标签存在则直接添加人员信息
|
|
|
- this.saveUser(masterType.get(0),user);
|
|
|
+ List<AreaStaffInfo> userList = dao.getAreaStaffInfoByParentIdAndStandardDetail(user.getId(), masterType.get(0).getId());
|
|
|
+ if(userList.size() == 0){
|
|
|
+ this.saveUser(masterType.get(0),user);
|
|
|
+ }else{
|
|
|
+ map.put("success",false);
|
|
|
+ map.put("message","申请人已经是该地区负责人,无法重复添加");
|
|
|
+ return map;
|
|
|
+ }
|
|
|
}else{
|
|
|
//如果地区负责人标签不存在,则需添加标签后再添加人员信息
|
|
|
//添加地区负责人和区域员工分支
|
|
|
AreaStaffInfo areaMasterInfo = this.saveMasterType(areaInfo.get(0));
|
|
|
this.saveUser(areaMasterInfo,user);
|
|
|
}
|
|
|
+
|
|
|
+ List<AreaStaffInfo> staffType = dao.getAreaStaffInfoByParentIdAndType("staff", areaInfo.get(0).getId());
|
|
|
+
|
|
|
+ if(null != staffType && staffType.size()>0){
|
|
|
+
|
|
|
+ }else{
|
|
|
+ //如果地区员工标签不存在,则需添加标签
|
|
|
+ this.saveStaffType(areaInfo.get(0));
|
|
|
+ }
|
|
|
}else{
|
|
|
//如果地区为空则进行地区添加和地区负责人添加
|
|
|
AreaStaffInfo areaStaffInfo = this.saveAreaType(officeInfo, directorApplication.getArea().getId());
|
|
|
//添加地区负责人和区域员工分支
|
|
|
AreaStaffInfo areaMasterInfo = this.saveMasterType(areaStaffInfo);
|
|
|
+ //如果地区员工标签不存在,则需添加标签
|
|
|
+ this.saveStaffType(areaStaffInfo);
|
|
|
this.saveUser(areaMasterInfo,user);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}else{
|
|
@@ -440,10 +460,14 @@ public class AreaStaffService extends TreeService<AreaStaffDao, AreaStaffInfo>
|
|
|
AreaStaffInfo areaStaffInfo = this.saveAreaType(areaOfficeInfo, directorApplication.getArea().getId());
|
|
|
//添加地区负责人和区域员工分支
|
|
|
AreaStaffInfo areaMasterInfo = this.saveMasterType(areaStaffInfo);
|
|
|
+ //如果地区员工标签不存在,则需添加标签
|
|
|
+ this.saveStaffType(areaStaffInfo);
|
|
|
this.saveUser(areaMasterInfo,user);
|
|
|
}
|
|
|
}
|
|
|
- return null;
|
|
|
+ map.put("success",true);
|
|
|
+ map.put("message","添加成功");
|
|
|
+ return map;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -467,6 +491,28 @@ public class AreaStaffService extends TreeService<AreaStaffDao, AreaStaffInfo>
|
|
|
return areaMasterInfo;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 添加地区负责人层级参数
|
|
|
+ * @param areaInfo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public AreaStaffInfo saveStaffType(AreaStaffInfo areaInfo){
|
|
|
+ AreaStaffInfo areaMasterInfo = new AreaStaffInfo();
|
|
|
+ areaMasterInfo.setParent(areaInfo);
|
|
|
+ if(StringUtils.isNotBlank(areaInfo.getHierarchy())){
|
|
|
+ areaMasterInfo.setHierarchy(String.valueOf(Integer.parseInt(areaInfo.getHierarchy()) + 1));
|
|
|
+ }else{
|
|
|
+ areaMasterInfo.setHierarchy("3");
|
|
|
+ }
|
|
|
+ areaMasterInfo.setStandardDetail("地区员工");
|
|
|
+ areaMasterInfo.setType("staff");
|
|
|
+ areaMasterInfo.setOrderNum(areaMasterInfo.getParent().getOrderNum() + "01");
|
|
|
+ areaMasterInfo.setCompanyId(UserUtils.getSelectCompany().getId());
|
|
|
+ super.save(areaMasterInfo);
|
|
|
+ return areaMasterInfo;
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 添加地区信息参数
|
|
|
* @param officeInfo
|