452 lines
17 KiB
Plaintext
452 lines
17 KiB
Plaintext
|
|
package com.nationalelectric.greenH5;
|
|||
|
|
|
|||
|
|
import java.text.ParseException;
|
|||
|
|
import java.text.SimpleDateFormat;
|
|||
|
|
import java.util.ArrayList;
|
|||
|
|
import java.util.Calendar;
|
|||
|
|
import java.util.Date;
|
|||
|
|
import java.util.HashMap;
|
|||
|
|
import java.util.List;
|
|||
|
|
import java.util.Map;
|
|||
|
|
import javax.annotation.Resource;
|
|||
|
|
|
|||
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|||
|
|
import org.springframework.stereotype.Controller;
|
|||
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|||
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|||
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|||
|
|
|
|||
|
|
import com.nationalelectirc.Constant.Constant;
|
|||
|
|
import com.nationalelectirc.utils.RestResult;
|
|||
|
|
import com.nationalelectric.greenH5.bizc.BaseServiceImpl;
|
|||
|
|
import com.nationalelectric.greenH5.bizc.IGreenApplyListBizc;
|
|||
|
|
import com.nationalelectric.greenH5.bizc.IGreenOperateLogBizc;
|
|||
|
|
import com.nationalelectric.greenH5.bizc.IGreenRetinueInfoBizc;
|
|||
|
|
import com.nationalelectric.greenH5.bizc.IGreenUserInfoBizc;
|
|||
|
|
import com.nationalelectric.greenH5.po.GreenUserInfo;
|
|||
|
|
import com.nationalelectric.greenH5.utils.DateTime;
|
|||
|
|
import com.nationalelectric.greenH5.utils.DateUtil;
|
|||
|
|
import com.sgcc.uap.persistence.IHibernateDao;
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <b>概述</b>:<br>
|
|||
|
|
* <p>
|
|||
|
|
* <b>功能</b>:<br>
|
|||
|
|
*
|
|||
|
|
* @author chenweikang
|
|||
|
|
*/
|
|||
|
|
@Controller
|
|||
|
|
@RequestMapping("/greenVisitorStatistics")
|
|||
|
|
public class GreenVisitorStatisticsController extends GreenBaseController {
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 我的申请service
|
|||
|
|
*/
|
|||
|
|
@Resource
|
|||
|
|
private IGreenApplyListBizc greenApplyListBizc;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 随行人员service
|
|||
|
|
*/
|
|||
|
|
@Resource
|
|||
|
|
private IGreenRetinueInfoBizc greenretinueinfoBizc;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 用户controller
|
|||
|
|
*/
|
|||
|
|
@Resource
|
|||
|
|
private GreenUserInfoController greenUserInfoController;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 用户service
|
|||
|
|
*/
|
|||
|
|
@Resource
|
|||
|
|
private IGreenUserInfoBizc greenuserinfoBizc;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 字典表controller
|
|||
|
|
*/
|
|||
|
|
@Resource
|
|||
|
|
private GreenDictionaryInfoController greenDictionaryInfoController;
|
|||
|
|
@Resource
|
|||
|
|
private IGreenOperateLogBizc greenOperateLogBizc;
|
|||
|
|
/**
|
|||
|
|
* HibernateDao逻辑构件
|
|||
|
|
*/
|
|||
|
|
@Autowired
|
|||
|
|
IHibernateDao hibernateDao;
|
|||
|
|
|
|||
|
|
@Autowired
|
|||
|
|
private BaseServiceImpl baseService;
|
|||
|
|
/**
|
|||
|
|
* 不可取消申请的状态集合
|
|||
|
|
*/
|
|||
|
|
private static final String[] IS_CANCEL_ARR = { "1", "2", "3", "9", "11" };
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取访客统计
|
|||
|
|
*
|
|||
|
|
* @param stime
|
|||
|
|
* @param etime
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
@SuppressWarnings({ "unchecked", "unused" })
|
|||
|
|
@RequestMapping(value = "/getVisitorStatistics", method = RequestMethod.POST)
|
|||
|
|
public @ResponseBody RestResult getVisitorStatistics(String startDate,String endDate,String userId) {
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
HashMap<String, Object> content = new HashMap<String, Object>();
|
|||
|
|
|
|||
|
|
GreenUserInfo userInfo = getUserInfo(userId);
|
|||
|
|
|
|||
|
|
if (userInfo == null) {
|
|||
|
|
return new RestResult(Constant.FAILED, "非法用户");
|
|||
|
|
}
|
|||
|
|
if(userInfo.getDepartmentName().equals("后勤工作部")){
|
|||
|
|
|
|||
|
|
}else{
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
String now = DateUtil.dateToStr(new Date(), "yyyy-MM-dd");
|
|||
|
|
String year = DateUtil.dateToStr(DateTime.strToDate(startDate, "yyyy-MM-dd"), "yyyy-MM-dd");
|
|||
|
|
endDate = DateUtil.dateToStr(DateTime.strToDate(endDate, "yyyy-MM-dd"), "yyyy-MM-dd");
|
|||
|
|
String startTime = year + " 00:00:01";
|
|||
|
|
String endTime = endDate + " 23:59:59";
|
|||
|
|
String visitorSql = "SELECT dp.name,COUNT(*) total,COUNT(if(apply.first_status=1, 1, null)) ty FROM green_apply_list apply "
|
|||
|
|
+ " LEFT JOIN green_visitor_info vi ON apply.detail_id = vi.id AND vi.is_deleted = 'N' "
|
|||
|
|
+ " LEFT JOIN green_user_info ui ON vi.visited_person_id = ui.id AND ui.is_deleted = 'N' "
|
|||
|
|
+ " LEFT JOIN green_department dp ON dp.code = ui.department_id AND dp.is_deleted = 'N' WHERE "
|
|||
|
|
+ " apply.apply_type = '02' AND apply.is_deleted = 'N' and dp.name is not null "
|
|||
|
|
+ " AND DATE_FORMAT(apply.apply_time,'%Y-%m-%d %T') > ? AND DATE_FORMAT(apply.apply_time,'%Y-%m-%d %T') < ? ";
|
|||
|
|
if(!userInfo.getDepartmentName().equals("后勤工作部")){
|
|||
|
|
visitorSql = visitorSql+ " AND dp.code = " +userInfo.getDepartmentId();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
visitorSql = visitorSql+ " GROUP BY ui.department_name";
|
|||
|
|
|
|||
|
|
|
|||
|
|
String retinuevisitorSql = "SELECT dp.name,COUNT(*) total,COUNT(if(apply.first_status=1, 1, null)) ty FROM green_apply_list apply "
|
|||
|
|
+ " LEFT JOIN green_visitor_info vi ON apply.detail_id = vi.id AND vi.is_deleted = 'N' "
|
|||
|
|
+ " LEFT JOIN green_user_info ui ON vi.visited_person_id = ui.id AND ui.is_deleted = 'N' "
|
|||
|
|
+ "LEFT JOIN green_department dp ON dp.code = ui.department_id AND dp.is_deleted = 'N' "
|
|||
|
|
+ " ,green_retinue_info ri WHERE apply.apply_type = '02' AND apply.is_deleted = 'N' and dp.name is not null AND ri.visitor_id = vi.id "
|
|||
|
|
+ " AND DATE_FORMAT(apply.apply_time,'%Y-%m-%d %T') > ? AND DATE_FORMAT(apply.apply_time,'%Y-%m-%d %T') < ? " ;
|
|||
|
|
|
|||
|
|
if(!userInfo.getDepartmentName().equals("后勤工作部")){
|
|||
|
|
retinuevisitorSql = retinuevisitorSql+ " AND dp.code = " +userInfo.getDepartmentId();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
retinuevisitorSql = retinuevisitorSql+ " GROUP BY ui.department_name ";
|
|||
|
|
// String nbuserSql = " SELECT count(t.name) total,t.name from (SELECT dp.name,cr.user_id,CR.capture_time "
|
|||
|
|
// + " FROM green_capture_record cr LEFT JOIN green_user_info ui on ui.id = cr.user_id AND ui.is_deleted = 'N' "
|
|||
|
|
// + " LEFT JOIN green_department dp on ui.department_id = dp.`code` AND dp.is_deleted='N' WHERE "
|
|||
|
|
// + " cr.is_deleted = 'N' AND cr.user_type = 1 AND DATE_FORMAT(cr.capture_time,'%Y-%m-%d %T') > ? AND DATE_FORMAT(cr.capture_time,'%Y-%m-%d %T') < ?"
|
|||
|
|
// + " GROUP BY dp.name,cr.user_id,DATE_FORMAT(cr.capture_time,'%Y-%m-%d') ) t GROUP BY t.NAME ";
|
|||
|
|
//
|
|||
|
|
String nbuserSql = " SELECT count(t.name) total,t.name from (SELECT dp.name,cr.user_id,CR.capture_time "
|
|||
|
|
+ " FROM green_capture_record cr LEFT JOIN green_internal_user ui on ui.job_num = cr.user_id "
|
|||
|
|
+ " ,green_department dp WHERE cr.is_deleted = 'N' AND cr.user_type = 1 and ui.department = dp.`name` AND dp.is_deleted='N' and "
|
|||
|
|
+ " cr.is_deleted = 'N' AND cr.user_type = 1 AND DATE_FORMAT(cr.capture_time,'%Y-%m-%d %T') > ? AND DATE_FORMAT(cr.capture_time,'%Y-%m-%d %T') < ?";
|
|||
|
|
|
|||
|
|
if(!userInfo.getDepartmentName().equals("后勤工作部")){
|
|||
|
|
nbuserSql = nbuserSql+ " AND dp.code = " +userInfo.getDepartmentId();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
nbuserSql = nbuserSql+ " GROUP BY dp.name,cr.user_id,DATE_FORMAT(cr.capture_time,'%Y-%m-%d') ) t GROUP BY t.NAME ";
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
List<HashMap<String, Object>> visitlist = hibernateDao.queryForListWithSql(visitorSql,
|
|||
|
|
new Object[] { startTime, endTime });
|
|||
|
|
|
|||
|
|
List<HashMap<String, Object>> retinuelist = hibernateDao.queryForListWithSql(retinuevisitorSql,
|
|||
|
|
new Object[] { startTime, endTime });
|
|||
|
|
|
|||
|
|
List<HashMap<String, Object>> userlist = hibernateDao.queryForListWithSql(nbuserSql,
|
|||
|
|
new Object[] { startTime, endTime });
|
|||
|
|
|
|||
|
|
ArrayList<String> depList = new ArrayList<String>();
|
|||
|
|
|
|||
|
|
for (int i = 0; i < visitlist.size(); i++) {
|
|||
|
|
depList.add(visitlist.get(i).get("name").toString());
|
|||
|
|
visitlist.get(i).put("usertotal",0);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
for (int j = 0; j < retinuelist.size(); j++) {
|
|||
|
|
for (int i = 0; i < visitlist.size(); i++) {
|
|||
|
|
if (visitlist.get(i).get("name").toString().equals(retinuelist.get(j).get("name").toString())) {
|
|||
|
|
Integer total = Integer.valueOf(visitlist.get(i).get("total").toString());
|
|||
|
|
Integer retinuetotal = Integer.valueOf(retinuelist.get(j).get("total").toString());
|
|||
|
|
visitlist.get(i).put("total", total + retinuetotal);
|
|||
|
|
|
|||
|
|
Integer tytotal = Integer.valueOf(visitlist.get(i).get("ty").toString());
|
|||
|
|
Integer tyretinuetotal = Integer.valueOf(retinuelist.get(j).get("ty").toString());
|
|||
|
|
visitlist.get(i).put("ty", tytotal + tyretinuetotal);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
for (int i = 0; i < visitlist.size(); i++) {
|
|||
|
|
for (int j = 0; j < userlist.size(); j++) {
|
|||
|
|
if (visitlist.get(i).get("name").toString().equals(userlist.get(j).get("name").toString())) {
|
|||
|
|
visitlist.get(i).put("usertotal", userlist.get(j).get("total").toString());
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
for (int j = 0; j < userlist.size(); j++) {
|
|||
|
|
if(!depList.contains(userlist.get(j).get("name"))){
|
|||
|
|
HashMap<String, Object> usermap = new HashMap<String, Object>();
|
|||
|
|
usermap.put("name", userlist.get(j).get("name"));
|
|||
|
|
usermap.put("total", 0);
|
|||
|
|
usermap.put("ty", 0);
|
|||
|
|
usermap.put("usertotal", userlist.get(j).get("total"));
|
|||
|
|
visitlist.add(usermap);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
depList.clear();
|
|||
|
|
depList.add("全部");
|
|||
|
|
|
|||
|
|
if(userInfo.getDepartmentName().equals("后勤工作部")){
|
|||
|
|
String queryAllDeptSql = "SELECT gd.id,gd.name FROM GREEN_DEPARTMENT gd WHERE 1=1 AND gd.dp_sort!=0 and gd.parent_id = '1' and gd.is_deleted='N' ORDER BY gd.seq ASC";
|
|||
|
|
List<Map<String,Object>> queryAllDeptList = hibernateDao.queryForListWithSql(queryAllDeptSql);
|
|||
|
|
|
|||
|
|
|
|||
|
|
for(int i=0; i<queryAllDeptList.size(); i++){
|
|||
|
|
depList.add(queryAllDeptList.get(i).get("name").toString());
|
|||
|
|
}
|
|||
|
|
} else{
|
|||
|
|
depList.add(userInfo.getDepartmentName());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
// [{name=互联网部, total=5, ty=0}, {name=发展策划部, total=1, ty=0}, {name=后勤工作部, total=2, ty=2}]
|
|||
|
|
Map<String, Object> rMap = new HashMap<String, Object>();
|
|||
|
|
int ty = 0;
|
|||
|
|
int total =0;
|
|||
|
|
int usertotal = 0;
|
|||
|
|
for (int i = 0; i < visitlist.size(); i++) {
|
|||
|
|
ty = ty+Integer.valueOf(visitlist.get(i).get("ty").toString());
|
|||
|
|
total = total+Integer.valueOf(visitlist.get(i).get("total").toString());
|
|||
|
|
usertotal = usertotal+Integer.valueOf(visitlist.get(i).get("usertotal").toString());
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
HashMap<String, Object> totalmap = new HashMap<String, Object>();
|
|||
|
|
totalmap.put("name", "合计");
|
|||
|
|
totalmap.put("ty", ty);
|
|||
|
|
totalmap.put("total", total);
|
|||
|
|
totalmap.put("usertotal", usertotal);
|
|||
|
|
visitlist.add(0,totalmap);
|
|||
|
|
rMap.put("depList", depList);
|
|||
|
|
rMap.put("visitlist", visitlist);
|
|||
|
|
return new RestResult(Constant.SUCCESS, "请求成功", rMap);
|
|||
|
|
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
return new RestResult(Constant.FAILED, "请求失败");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* 查询我的预约申请列表和我的邀约列表
|
|||
|
|
*
|
|||
|
|
* @param result
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
@SuppressWarnings("unchecked")
|
|||
|
|
@RequestMapping(value = "/getVisitorStatisticsDetailed", method = RequestMethod.POST)
|
|||
|
|
public @ResponseBody RestResult getVisitorStatisticsDetailed(String startDate,String endDate,String depName,String type,String page,String userId) {
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
// String userId = result.getUserId();
|
|||
|
|
// GreenUserInfo info = getUserInfo(userId);
|
|||
|
|
// GreenGrantAuth gaInfo = getGaInfo(userId);
|
|||
|
|
startDate = DateUtil.dateToStr(DateTime.strToDate(startDate, "yyyy-MM-dd"), "yyyy-MM-dd");
|
|||
|
|
endDate = DateUtil.dateToStr(DateTime.strToDate(endDate, "yyyy-MM-dd"), "yyyy-MM-dd");
|
|||
|
|
String startTime = startDate + " 00:00:01";
|
|||
|
|
String endTime = endDate + " 23:59:59";
|
|||
|
|
|
|||
|
|
GreenUserInfo userInfo = getUserInfo(userId);
|
|||
|
|
|
|||
|
|
if (userInfo == null) {
|
|||
|
|
return new RestResult(Constant.FAILED, "非法用户");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
String pageSize = "20";
|
|||
|
|
// if (info == null) {
|
|||
|
|
// return new RestResult(Constant.FAILED, "非法用户");
|
|||
|
|
// }
|
|||
|
|
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
|
|||
|
|
StringBuffer myWaitHandleListSql = new StringBuffer();
|
|||
|
|
myWaitHandleListSql.append("SELECT vi.push_state,apply.user_id,apply.detail_id, vi.visited_person_name,vi.visit_start_time, vi.visitor_name,"
|
|||
|
|
+ " apply.apply_time ,apply.first_status FROM green_apply_list apply LEFT JOIN green_visitor_info "
|
|||
|
|
+ " vi ON apply.detail_id = vi.id "
|
|||
|
|
+ " LEFT JOIN green_user_info ui ON vi.visited_person_id = ui.id LEFT JOIN green_department dp ON dp.code = ui.department_id "
|
|||
|
|
+ " WHERE apply.apply_type = '02' and dp.name is not null ");
|
|||
|
|
ArrayList<Object> params = new ArrayList<Object>();
|
|||
|
|
// if(!depName.equals("全部")){
|
|||
|
|
// myWaitHandleListSql.append(" and dp.name= ? ");
|
|||
|
|
// params.add(depName);
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
if(userInfo.getDepartmentName().equals("后勤工作部")){
|
|||
|
|
if(!depName.equals("全部")){
|
|||
|
|
myWaitHandleListSql.append(" and dp.name= ? ");
|
|||
|
|
params.add(depName);
|
|||
|
|
}
|
|||
|
|
}else{
|
|||
|
|
// if(!depName.equals("全部")){
|
|||
|
|
myWaitHandleListSql.append(" and dp.name= ? ");
|
|||
|
|
params.add(userInfo.getDepartmentName());
|
|||
|
|
// }
|
|||
|
|
}
|
|||
|
|
myWaitHandleListSql.append(" AND DATE_FORMAT(apply.apply_time,'%Y-%m-%d %T') > ? AND DATE_FORMAT(apply.apply_time,'%Y-%m-%d %T') < ? ");
|
|||
|
|
|
|||
|
|
params.add(startTime);
|
|||
|
|
params.add(endTime);
|
|||
|
|
if(type.equals("1")){
|
|||
|
|
myWaitHandleListSql.append("AND apply.first_status = 1");
|
|||
|
|
}else if(type.equals("2")){
|
|||
|
|
myWaitHandleListSql.append("AND apply.first_status <> 1");
|
|||
|
|
}else if(type.equals("3")){
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 排序
|
|||
|
|
if(page.matches("\\d+") && pageSize.matches("\\d+")){
|
|||
|
|
Integer x = Integer.valueOf(page);
|
|||
|
|
Integer y = Integer.valueOf(pageSize);
|
|||
|
|
params.add((x-1)*y);
|
|||
|
|
params.add(y);
|
|||
|
|
myWaitHandleListSql.append(" ORDER BY apply_time DESC LIMIT ?,?");
|
|||
|
|
}
|
|||
|
|
// 执行sql
|
|||
|
|
list = hibernateDao.queryForListWithSql(myWaitHandleListSql.toString(), params.toArray());
|
|||
|
|
|
|||
|
|
return new RestResult(Constant.SUCCESS, "查询成功", list);
|
|||
|
|
}catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
return new RestResult(Constant.FAILED, "查询失败!");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* 查询我的预约申请列表和我的邀约列表
|
|||
|
|
*
|
|||
|
|
* @param result
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
@SuppressWarnings("unchecked")
|
|||
|
|
@RequestMapping(value = "/getInsideList", method = RequestMethod.POST)
|
|||
|
|
public @ResponseBody RestResult getInsideList(String startDate,String endDate,String depName,String page,String userId) {
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
// String userId = result.getUserId();
|
|||
|
|
// GreenUserInfo info = getUserInfo(userId);
|
|||
|
|
// GreenGrantAuth gaInfo = getGaInfo(userId);
|
|||
|
|
GreenUserInfo userInfo = getUserInfo(userId);
|
|||
|
|
|
|||
|
|
if (userInfo == null) {
|
|||
|
|
return new RestResult(Constant.FAILED, "非法用户");
|
|||
|
|
}
|
|||
|
|
startDate = DateUtil.dateToStr(DateTime.strToDate(startDate, "yyyy-MM-dd"), "yyyy-MM-dd");
|
|||
|
|
endDate = DateUtil.dateToStr(DateTime.strToDate(endDate, "yyyy-MM-dd"), "yyyy-MM-dd");
|
|||
|
|
String startTime = startDate + " 00:00:01";
|
|||
|
|
String endTime = endDate + " 23:59:59";
|
|||
|
|
String pageSize = "20";
|
|||
|
|
// if (info == null) {
|
|||
|
|
// return new RestResult(Constant.FAILED, "非法用户");
|
|||
|
|
// }
|
|||
|
|
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
|
|||
|
|
StringBuffer myWaitHandleListSql = new StringBuffer();
|
|||
|
|
// myWaitHandleListSql.append(" SELECT dp.name dpName,DATE_FORMAT(CR.capture_time,'%Y-%m-%d %T') time,cr.user_name userName"
|
|||
|
|
// + " FROM green_capture_record cr LEFT JOIN (SELECT ui.job_num ,ui.department FROM green_internal_user ui where 1=1 "
|
|||
|
|
// + " GROUP BY ui.job_num,ui.department,ui.phone,ui.`name` ) ui on ui.job_num = cr.user_id "
|
|||
|
|
// + " ,green_department dp WHERE cr.is_deleted = 'N' AND cr.user_type = 1 and ui.department = dp.`name` "
|
|||
|
|
// + " AND dp.is_deleted='N' and "
|
|||
|
|
// + " cr.is_deleted = 'N' AND cr.user_type = 1 ");
|
|||
|
|
|
|||
|
|
|
|||
|
|
ArrayList<Object> params = new ArrayList<Object>();
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
myWaitHandleListSql.append(" SELECT CASE cr.device_id WHEN 1 THEN '一楼大厅' ELSE '负一层' END address,dp.name dpName,ui.name userName,MIN(DATE_FORMAT(cr.capture_time,'%m-%d %H:%i')) time "
|
|||
|
|
+ " FROM green_capture_record cr LEFT JOIN (SELECT ui.job_num ,ui.name,ui.department FROM green_internal_user ui where 1=1 "
|
|||
|
|
+ " GROUP BY ui.job_num,ui.department,ui.phone,ui.`name` ) ui on ui.job_num = cr.user_id "
|
|||
|
|
+ " ,green_department dp WHERE cr.is_deleted = 'N' AND cr.user_type = 1 and ui.department = dp.`name` "
|
|||
|
|
+ " AND dp.is_deleted='N' and cr.is_deleted = 'N' AND cr.user_type = 1 ");
|
|||
|
|
|
|||
|
|
if(userInfo.getDepartmentName().equals("后勤工作部")){
|
|||
|
|
if(!depName.equals("全部")){
|
|||
|
|
myWaitHandleListSql.append(" and dp.name= ? ");
|
|||
|
|
params.add(depName);
|
|||
|
|
}
|
|||
|
|
}else{
|
|||
|
|
// if(!depName.equals("全部")){
|
|||
|
|
myWaitHandleListSql.append(" and dp.name= ? ");
|
|||
|
|
params.add(userInfo.getDepartmentName());
|
|||
|
|
// }
|
|||
|
|
}
|
|||
|
|
myWaitHandleListSql.append(" AND DATE_FORMAT(capture_time,'%Y-%m-%d %T') > ? AND DATE_FORMAT(capture_time,'%Y-%m-%d %T') < ? ");
|
|||
|
|
params.add(startTime);
|
|||
|
|
params.add(endTime);
|
|||
|
|
// 排序
|
|||
|
|
if(page.matches("\\d+") && pageSize.matches("\\d+")){
|
|||
|
|
Integer x = Integer.valueOf(page);
|
|||
|
|
Integer y = Integer.valueOf(pageSize);
|
|||
|
|
params.add((x-1)*y);
|
|||
|
|
params.add(y);
|
|||
|
|
myWaitHandleListSql.append(" GROUP BY dp.`name`,cr.user_name ,DATE_FORMAT(capture_time,'%Y-%m-%d')"
|
|||
|
|
+ " order by MIN(DATE_FORMAT(cr.capture_time,'%Y-%m-%d %T')) DESC LIMIT ?,?");
|
|||
|
|
}
|
|||
|
|
// 执行sql
|
|||
|
|
list = hibernateDao.queryForListWithSql(myWaitHandleListSql.toString(), params.toArray());
|
|||
|
|
for (int i = 0; i < list.size(); i++) {
|
|||
|
|
list.get(i).put("userName", list.get(i).get("userName").toString().trim());
|
|||
|
|
}
|
|||
|
|
return new RestResult(Constant.SUCCESS, "查询成功", list);
|
|||
|
|
}catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
return new RestResult(Constant.FAILED, "查询失败!");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public static List<String> getBetweenDays(String stime, String etime) {
|
|||
|
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
|||
|
|
Date sdate = null;
|
|||
|
|
Date eDate = null;
|
|||
|
|
List<String> list = null;
|
|||
|
|
try {
|
|||
|
|
sdate = df.parse(stime);
|
|||
|
|
eDate = df.parse(etime);
|
|||
|
|
Calendar c = Calendar.getInstance();
|
|||
|
|
list = new ArrayList<String>();
|
|||
|
|
if (sdate != null & eDate != null) {
|
|||
|
|
while (sdate.getTime() <= eDate.getTime()) {
|
|||
|
|
list.add(df.format(sdate));
|
|||
|
|
c.setTime(sdate);
|
|||
|
|
c.add(Calendar.DATE, 1); // 日期加1天
|
|||
|
|
sdate = c.getTime();
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
} catch (ParseException e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return list;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|