Commit 55dab5de authored by huagnxiner's avatar huagnxiner

回访报表跟踪统计修改权限

parent 8c2c2eaa
...@@ -3594,29 +3594,28 @@ public class StatisticController extends BaseController { ...@@ -3594,29 +3594,28 @@ public class StatisticController extends BaseController {
public String callBackTraceStatistic(Integer number, Integer pageSize,Model model, HttpServletRequest request) { public String callBackTraceStatistic(Integer number, Integer pageSize,Model model, HttpServletRequest request) {
UserEntity userEntity = (UserEntity) request.getSession().getAttribute(SessionConstants.THREAD_USER_KEY); UserEntity userEntity = (UserEntity) request.getSession().getAttribute(SessionConstants.THREAD_USER_KEY);
boolean isDirector = user.isDirector(userEntity.getId()); boolean isDirector = user.isDirector(userEntity.getId());
List<DepartmentEntity> departmentEntities = user.getChildDepartList(userEntity.getDeptId()); List<DepartmentEntity> departmentEntities = user.getChildDepartList(userEntity.getDeptId());
//默认返回合肥的数据,只有合肥(deptid=243)需要这个报表
List<DepartmentEntity> hfDepartmentEntityList=new ArrayList<>();
for (DepartmentEntity dep : departmentEntities) {
if(isValidDept(dep.getUrlPath(),"243")){
hfDepartmentEntityList.add(dep);
}
}
departmentEntities.clear();
departmentEntities.addAll(hfDepartmentEntityList);
if (departmentEntities != null && departmentEntities.isEmpty()) { if (departmentEntities != null && departmentEntities.isEmpty()) {
model.addAttribute("departments", departmentEntities); model.addAttribute("departments", departmentEntities);
return getAutoUrl(); return getAutoUrl();
} }
//get user list //get user list
Page page = new Page(pageSize == null ? 20 : pageSize); Page page = new Page(pageSize == null ? 20 : pageSize);
if (null != number) { if (null != number) {
page.setCurrentPage(number); page.setCurrentPage(number);
} }
//默认返回合肥的数据,只有合肥(deptid=243)需要这个报表
DepartmentEntity depet = null;
for (DepartmentEntity dep : departmentEntities) {
if (dep.getId() == 243) {
depet = dep;
}
}
if (depet == null) {
model.addAttribute("department", null);
return getAutoUrl();
}
// 获取查询条件 // 获取查询条件
String startTime = request.getParameter("startTime"); String startTime = request.getParameter("startTime");
String endTime = request.getParameter("endTime"); String endTime = request.getParameter("endTime");
...@@ -3636,65 +3635,84 @@ public class StatisticController extends BaseController { ...@@ -3636,65 +3635,84 @@ public class StatisticController extends BaseController {
endTime = endTime + " 23:59:59"; endTime = endTime + " 23:59:59";
} }
Map<String, Object> searchParams = Servlets.getParametersStartingWith(request, "search_");
UserListResponse ulr = user.getUserListByDept(depet, searchParams, page); if (CollectionUtils.isNotEmpty(departmentEntities)) {
List<UserEntity> userEntities = ulr.getObjectList(); DepartmentEntity dep = departmentEntities.get(0);
if (searchParams.containsKey("LIKE_realName") && StringUtils.isNotBlank(String.valueOf(searchParams.get("LIKE_realName")))) { String deptId = request.getParameter("deptId") == null ? "" : request.getParameter("deptId");
if (userEntity.getRealName().contains(searchParams.get("LIKE_realName").toString())) { if (!Strings.isNullOrEmpty(deptId)) {
userEntities.add(userEntity); dep = department.getDepartmentById(Integer.valueOf(deptId)).getEntity();
} }
} else { // 获取查询条件
userEntities.add(userEntity); Map<String, Object> searchParams = Servlets.getParametersStartingWith(request, "search_");
} UserListResponse ulr = user.getUserListByDept(dep, searchParams, page);
page = ulr.getPaging(); List<UserEntity> userEntities = ulr.getObjectList();
//填充数据
List<ManagerVO> managerVOS = new ArrayList<>(); if (searchParams.containsKey("LIKE_realName") && StringUtils.isNotBlank(String.valueOf(searchParams.get("LIKE_realName")))) {
for (UserEntity ue : userEntities) { if (userEntity.getRealName().contains(searchParams.get("LIKE_realName").toString())) {
ManagerVO vo = new ManagerVO(); userEntities.add(userEntity);
vo.setManagerId(ue.getId()); }
vo.setManagerName(ue.getRealName());
//total:累计客户; waitCount:待回访客户; callCount:回访客户; cloudSent:云迹派工数; cloudWait:云迹数据待回访数
Map<String, Object> map = iStatisticReport.getStatisticSummary(ue.getId().toString(), startTime, endTime);
vo.setTotal(String.valueOf(map.get("allCount")));
vo.setWaitCount(String.valueOf(map.get("waitCount")));
vo.setCallCount(String.valueOf(map.get("callCount")));
vo.setCloudSent(String.valueOf(map.get("cloudSent")));
vo.setCloudWait(String.valueOf(map.get("cloudWait")));
Map<String, Object> search = new HashMap<>(10);
search.put("EQ_starUserId", ue.getId());
search.put("EQ_userId", userEntity.getId());
UserStarListRequest cul = new UserStarListRequest();
cul.setPaging(new Page(1));
cul.setSearchParams(search);
UserStarListResponse res = userStar.getUserStarList(cul);
if (res.getObjectList() != null && !res.getObjectList().isEmpty()) {
UserStarEntity entity = res.getObjectList().get(0);
vo.setStar(entity.getStar() == 1 ? "on" : "off");
} else { } else {
vo.setStar("off"); userEntities.add(userEntity);
} }
Map<String, Object> managerIdMap = new HashMap<>(10); page = ulr.getPaging();
managerIdMap.put("managerId", ue.getId()); //填充数据
Integer customers = customer.getCustomersById(managerIdMap); List<ManagerVO> managerVOS = new ArrayList<>();
if (customers > 0) { for (UserEntity ue : userEntities) {
vo.setIsClear("1");//0:无客户,1:有客户 ManagerVO vo = new ManagerVO();
vo.setManagerId(ue.getId());
vo.setManagerName(ue.getRealName());
//total:累计客户; waitCount:待回访客户; callCount:回访客户; cloudSent:云迹派工数; cloudWait:云迹数据待回访数
Map<String, Object> map = iStatisticReport.getStatisticSummary(ue.getId().toString(), startTime, endTime);
vo.setTotal(String.valueOf(map.get("allCount")));
vo.setWaitCount(String.valueOf(map.get("waitCount")));
vo.setCallCount(String.valueOf(map.get("callCount")));
vo.setCloudSent(String.valueOf(map.get("cloudSent")));
vo.setCloudWait(String.valueOf(map.get("cloudWait")));
Map<String, Object> search = new HashMap<>(10);
search.put("EQ_starUserId", ue.getId());
search.put("EQ_userId", userEntity.getId());
UserStarListRequest cul = new UserStarListRequest();
cul.setPaging(new Page(1));
cul.setSearchParams(search);
UserStarListResponse res = userStar.getUserStarList(cul);
if (res.getObjectList() != null && !res.getObjectList().isEmpty()) {
UserStarEntity entity = res.getObjectList().get(0);
vo.setStar(entity.getStar() == 1 ? "on" : "off");
} else {
vo.setStar("off");
}
Map<String, Object> managerIdMap = new HashMap<>(10);
managerIdMap.put("managerId", ue.getId());
Integer customers = customer.getCustomersById(managerIdMap);
if (customers > 0) {
vo.setIsClear("1");//0:无客户,1:有客户
} else {
vo.setIsClear("0");//0:无客户,1:有客户
}
LOGGER.info("ManagerVO:" + vo.toString());
managerVOS.add(vo);
}
if (isDirector) {
model.addAttribute("isDirector", "1");//1:是主管
} else { } else {
vo.setIsClear("0");//0:无客户,1:有客户 model.addAttribute("isDirector", "0");//0:普通顾问
} }
LOGGER.info("ManagerVO:"+vo.toString()); model.addAttribute("deptId", dep.getId());
managerVOS.add(vo); model.addAttribute("list", managerVOS);
} model.addAttribute("page", page);
if (isDirector) { model.addAttribute("departments", departmentEntities);
model.addAttribute("isDirector", "1");//1:是主管 model.addAttribute("searchParams", Servlets.encodeParameterStringWithPrefix(searchParams, "search_"));
} else { return getAutoUrl();
model.addAttribute("isDirector", "0");//0:普通顾问
} }
model.addAttribute("deptId", depet.getId());
model.addAttribute("list", managerVOS);
model.addAttribute("page", page);
model.addAttribute("department", depet);
model.addAttribute("searchParams", Servlets.encodeParameterStringWithPrefix(searchParams, "search_"));
return getAutoUrl(); return getAutoUrl();
} }
/**
* 判断该部门是否包含对于部门
*/
private boolean isValidDept(String urlPath,String dept){
Set<String> set=new HashSet<>();
set.addAll(Arrays.asList(urlPath.trim().split("/")));
return set.contains(dept);
}
} }
...@@ -68,9 +68,11 @@ ...@@ -68,9 +68,11 @@
<li> <li>
<a tabindex="-1" href="${ctx}/statistic/cloudCusReport/">云迹数据统计表</a> <a tabindex="-1" href="${ctx}/statistic/cloudCusReport/">云迹数据统计表</a>
</li> </li>
<li> <shiro:hasPermission name="CBTS">
<a tabindex="-1" href="${ctx}/statistic/callBackTraceStatistic/">回访跟进统计</a> <li>
</li> <a tabindex="-1" href="${ctx}/statistic/callBackTraceStatistic/">回访跟进统计</a>
</li>
</shiro:hasPermission>
</ul> </ul>
</li> </li>
</shiro:hasPermission> </shiro:hasPermission>
......
...@@ -21,32 +21,48 @@ ...@@ -21,32 +21,48 @@
<div class="page-container"> <div class="page-container">
<div class="row${fluid}"> <div class="row${fluid}">
<form id="filterForm" name="filterForm" class="form-inline filterForm"
action="${ctx}/statistic/callBackTraceStatistic" method="get">
<div style="margin-top:10px;">
&nbsp;&nbsp;数据日期:&nbsp;&nbsp;
<input type="text" name="startTime" id="startTime" value="${startTime}"
style="width: 120px;" class="m-wrap small mydate span2" placeholder="起始时间">
<input type="text" name="endTime" id="endTime" value="${endTime}"
style="width: 120px;" class="m-wrap small mydate span2" placeholder="截止时间">
&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" placeholder="搜索置业顾问" name="search_LIKE_realName" value="${param['search_LIKE_realName']}">
<div class="inputSearch__btn" onclick="$('#filterForm').submit();"
style="display: inline-block; position: relative; top: 9px;left: 5px;"
></div>
</div>
<input type="hidden" name="deptId" id="deptId" value="${deptId}">
<input type="hidden" name="pageSize" id="pageSize" value="${param['pageSize']}">
</form>
<c:choose> <c:choose>
<c:when test="${department== null}"> <c:when test="${departments!= null && fn:length(departments) == 0}">
<div style="width: 90%;height: 40%;text-align: center;font-size: larger;margin-top: 30px;">名下暂无安家顾问数据</div> <div style="width: 90%;height: 40%;text-align: center;font-size: larger;margin-top: 30px;">名下暂无置业顾问数据
</div>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<form id="filterForm" name="filterForm" class="form-inline filterForm"
action="${ctx}/statistic/callBackTraceStatistic" method="get">
<c:forEach items="${departments}" var="dept">
<li <c:if test="${dept.id == deptId}">class="active"</c:if>>
<c:choose>
<c:when test="${dept.id == deptId}">
<a href="#">${dept.name}</a>
</c:when>
<c:when test="${dept.id != deptId}">
<a href="${ctx}/statistic/callBackTraceStatistic?deptId=${dept.id}&pageSize=${param['pageSize']}">${dept.name}</a>
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
</li>
</c:forEach>
<div style="margin-top:10px;">
&nbsp;&nbsp;数据日期:&nbsp;&nbsp;
<input type="text" name="startTime" id="startTime" value="${startTime}"
style="width: 120px;" class="m-wrap small mydate span2" placeholder="起始时间">
<input type="text" name="endTime" id="endTime" value="${endTime}"
style="width: 120px;" class="m-wrap small mydate span2" placeholder="截止时间">
&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="text" placeholder="搜索置业顾问" name="search_LIKE_realName"
value="${param['search_LIKE_realName']}">
<div class="inputSearch__btn" onclick="$('#filterForm').submit();"
style="display: inline-block; position: relative; top: 9px;left: 5px;"
></div>
</div>
<input type="hidden" name="deptId" id="deptId" value="${deptId}">
<input type="hidden" name="pageSize" id="pageSize" value="${param['pageSize']}">
</form>
<c:choose> <c:choose>
<c:when test="${list!= null && fn:length(list) == 0}"> <c:when test="${list!= null && fn:length(list) == 0}">
<div style="width: 90%;height: 40%;text-align: center;font-size: larger;margin-top: 30px;"> <div style="width: 90%;height: 40%;text-align: center;font-size: larger;margin-top: 30px;">
...@@ -56,7 +72,6 @@ ...@@ -56,7 +72,6 @@
<c:otherwise> <c:otherwise>
<table class="table table-advance table-hover"> <table class="table table-advance table-hover">
<tbody> <tbody>
<c:forEach items="${list}" var="user" varStatus="n"> <c:forEach items="${list}" var="user" varStatus="n">
<c:choose> <c:choose>
<c:when test="${n.index % 2!=0 && user.star=='off'}"> <c:when test="${n.index % 2!=0 && user.star=='off'}">
...@@ -130,7 +145,6 @@ ...@@ -130,7 +145,6 @@
</td> </td>
</tr> </tr>
</c:forEach> </c:forEach>
</tbody> </tbody>
</table> </table>
<div class="row${fluid}"> <div class="row${fluid}">
...@@ -138,11 +152,9 @@ ...@@ -138,11 +152,9 @@
</div> </div>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</div> </div>
</div> </div>
<input type="hidden" value="${queryUser}" name="queryUser" id="queryUser"> <input type="hidden" value="${queryUser}" name="queryUser" id="queryUser">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment