|
|
@@ -365,8 +365,8 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @Cacheable(cacheNames = "selectAllUser#500",key = "'selectAllUser:depId:'+#depId+'startTime:'+#startTime+" +
|
|
|
- "'endTime:'+#endTime+'aName:'+#aName")
|
|
|
+// @Cacheable(cacheNames = "selectAllUser#500",key = "'selectAllUser:depId:'+#depId+'startTime:'+#startTime+" +
|
|
|
+// "'endTime:'+#endTime+'aName:'+#aName")
|
|
|
public depCountBo selectAllUser(String depId, String startTime, String endTime,String aName) {
|
|
|
depCountBo acb=new depCountBo();
|
|
|
if (endTime!=null)endTime=endTime+" 23:59:59";
|
|
|
@@ -379,66 +379,72 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
|
|
|
}else {
|
|
|
OrganizationListOut oo=organizationManagementMapper.selectAllById(depId);
|
|
|
acb.setName(oo.getName());
|
|
|
+ acb.setId(depId);
|
|
|
deps=organizationManagementMapper.selectBysuperId(oo.getId());
|
|
|
}
|
|
|
- //迭代查出所有层级并计算
|
|
|
- acb.setList(nestingList(deps,startTime, endTime,aName));
|
|
|
- //计算顶层
|
|
|
- acb.setaList(organizationManagementMapper.getDepAll(depId,aName,startTime, endTime));
|
|
|
- sumCount(acb,0);
|
|
|
- //
|
|
|
+ List<AdminCustomerBo> list =organizationManagementMapper.testAlldepCount(startTime, endTime);
|
|
|
+ for (AdminCustomerBo ad : list) {
|
|
|
+ if (acb.getId().equals(ad.getDepId())){
|
|
|
+ acb.getaList().add(ad);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (depCountBo dep : deps) {
|
|
|
+ dep.setList(iterationDeps(dep.getId(),list));
|
|
|
+ for (AdminCustomerBo ad : list) {
|
|
|
+ if (dep.getId().equals(ad.getDepId())){
|
|
|
+ dep.getaList().add(ad);
|
|
|
+ }
|
|
|
+ sumCount(dep);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ acb.setList(deps);
|
|
|
+ sumCount(acb);
|
|
|
return acb;
|
|
|
}
|
|
|
|
|
|
- private List<depCountBo> nestingList(List<depCountBo>deps,String startTime, String endTime,String name) {
|
|
|
- List<depCountBo> res=new ArrayList<>();
|
|
|
- //循环取出其中
|
|
|
- for (depCountBo ab : deps) {
|
|
|
- //找出每一个部门的直部门,并嵌套下去,先获取然后将
|
|
|
- List<depCountBo >deps2=organizationManagementMapper.selectBysuperId(ab.getId());
|
|
|
- //查找所有部门的人的信息
|
|
|
- List<AdminCustomerBo> aList=organizationManagementMapper.getDepAll(ab.getId(),name,startTime, endTime);
|
|
|
- ab.setList(nestingList(deps2,startTime, endTime,name));
|
|
|
- ab.setaList(aList);
|
|
|
- //计算总数
|
|
|
- sumCount(ab,1);
|
|
|
- if (ab.getCompleteCount() != 0 || ab.getReceiveCount() != 0 || ab.getUserCount() != 0
|
|
|
- || ab.getSignCount() != 0 || ab.getChannelCount() != 0|| ab.getNewCount() != 0
|
|
|
- || ab.getChannelNewCount() != 0|| ab.getChannelCompleteCount() != 0) {
|
|
|
- res.add(ab);
|
|
|
+ //迭代获取所有部门与部门员工并计算出部门数量
|
|
|
+ private List<depCountBo> iterationDeps(String id,List<AdminCustomerBo> list) {
|
|
|
+ List<depCountBo> deps =organizationManagementMapper.selectBysuperId(id);
|
|
|
+ for (depCountBo dep : deps) {
|
|
|
+ dep.setList(iterationDeps(dep.getId(),list));
|
|
|
+ for (AdminCustomerBo ad : list) {
|
|
|
+ if (dep.getId().equals(ad.getDepId())){
|
|
|
+ dep.getaList().add(ad);
|
|
|
+ }
|
|
|
}
|
|
|
+ sumCount(dep);
|
|
|
}
|
|
|
- return res;
|
|
|
+ return deps;
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
*
|
|
|
* @param ab
|
|
|
- * @param type 0 部门计算 1人员计算
|
|
|
*/
|
|
|
- private void sumCount(depCountBo ab,int type ) {
|
|
|
+ private void sumCount(depCountBo ab) {
|
|
|
int completeCount=0,receiveCount=0,userCount=0,signCount=0,channelCount=0,newCount=0,channelNewCount=0,channelCompleteCount=0;
|
|
|
if (ab.getList()!=null&&!ab.getList().isEmpty()) {
|
|
|
for (depCountBo a : ab.getList()) {
|
|
|
- if ( a.getCompleteCount()!=0) completeCount+=a.getCompleteCount();
|
|
|
- if ( a.getReceiveCount()!=0) receiveCount+=a.getReceiveCount();
|
|
|
- if ( a.getUserCount()!=0) userCount+=a.getUserCount();
|
|
|
- if ( a.getSignCount()!=0) signCount+=a.getSignCount();
|
|
|
- if ( a.getChannelCount()!=0) channelCount+=a.getChannelCount();
|
|
|
- if ( a.getNewCount()!=0) newCount+=a.getNewCount();
|
|
|
- if ( a.getChannelNewCount()!=0) channelNewCount+=a.getChannelNewCount();
|
|
|
- if ( a.getChannelCompleteCount()!=0) channelCompleteCount+=a.getChannelCompleteCount();
|
|
|
+ if (a.getCompleteCount()!=null&& a.getCompleteCount()!=0) completeCount+=a.getCompleteCount();
|
|
|
+ if (a.getReceiveCount()!=null&& a.getReceiveCount()!=0) receiveCount+=a.getReceiveCount();
|
|
|
+ if (a.getUserCount()!=null&& a.getUserCount()!=0) userCount+=a.getUserCount();
|
|
|
+ if (a.getSignCount()!=null&& a.getSignCount()!=0) signCount+=a.getSignCount();
|
|
|
+ if (a.getChannelCount()!=null&& a.getChannelCount()!=0) channelCount+=a.getChannelCount();
|
|
|
+ if (a.getNewCount()!=null&& a.getNewCount()!=0) newCount+=a.getNewCount();
|
|
|
+ if (a.getChannelNewCount()!=null&& a.getChannelNewCount()!=0) channelNewCount+=a.getChannelNewCount();
|
|
|
+ if (a.getChannelCompleteCount()!=null&& a.getChannelCompleteCount()!=0) channelCompleteCount+=a.getChannelCompleteCount();
|
|
|
}
|
|
|
}
|
|
|
if (ab.getaList()!=null&&!ab.getaList().isEmpty()) {
|
|
|
for (AdminCustomerBo a : ab.getaList()) {
|
|
|
- if ( a.getCompleteCount()!=0) completeCount+=a.getCompleteCount();
|
|
|
- if ( a.getReceiveCount()!=0) receiveCount+=a.getReceiveCount();
|
|
|
- if ( a.getUserCount()!=0) userCount+=a.getUserCount();
|
|
|
- if ( a.getSignCount()!=0) signCount+=a.getSignCount();
|
|
|
- if ( a.getChannelCount()!=0) channelCount+=a.getChannelCount();
|
|
|
- if ( a.getNewCount()!=0) newCount+=a.getNewCount();
|
|
|
- if ( a.getChannelNewCount()!=0) channelNewCount+=a.getChannelNewCount();
|
|
|
- if ( a.getChannelCompleteCount()!=0) channelCompleteCount+=a.getChannelCompleteCount();
|
|
|
+ if (a.getCompleteCount()!=null&& a.getCompleteCount()!=0) completeCount+=a.getCompleteCount();
|
|
|
+ if (a.getReceiveCount()!=null&& a.getReceiveCount()!=0) receiveCount+=a.getReceiveCount();
|
|
|
+ if (a.getUserCount()!=null&& a.getUserCount()!=0) userCount+=a.getUserCount();
|
|
|
+ if (a.getSignCount()!=null&& a.getSignCount()!=0) signCount+=a.getSignCount();
|
|
|
+ if (a.getChannelCount()!=null&& a.getChannelCount()!=0) channelCount+=a.getChannelCount();
|
|
|
+ if (a.getNewCount()!=null&& a.getNewCount()!=0) newCount+=a.getNewCount();
|
|
|
+ if (a.getChannelNewCount()!=null&& a.getChannelNewCount()!=0) channelNewCount+=a.getChannelNewCount();
|
|
|
+ if (a.getChannelCompleteCount()!=null&& a.getChannelCompleteCount()!=0) channelCompleteCount+=a.getChannelCompleteCount();
|
|
|
}
|
|
|
}
|
|
|
ab.setCompleteCount(completeCount);
|