|
|
@@ -20,12 +20,17 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
import com.xintong.visualinspection.bean.*;
|
|
|
import com.xintong.visualinspection.dao.master.CheckOtherDao;
|
|
|
import com.xintong.visualinspection.dao.master.CheckTaskPeriodDao;
|
|
|
+import com.xintong.visualinspection.dao.master.CheckUserStatisticsDao;
|
|
|
+import com.xintong.visualinspection.pojo.StatisiticPojo;
|
|
|
import com.xintong.visualinspection.pojo.UserRankingData;
|
|
|
+import com.xintong.visualinspection.service.CheckTaskPeriodService;
|
|
|
+import com.xintong.visualinspection.service.ThreadTaskService;
|
|
|
import org.jxls.common.Context;
|
|
|
import org.jxls.util.JxlsHelper;
|
|
|
import org.jxls.util.Util;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.thymeleaf.util.DateUtils;
|
|
|
|
|
|
@@ -63,6 +68,17 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
|
|
|
@Autowired
|
|
|
private CheckOtherDao checkOtherDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CheckUserStatisticsDao checkUserStatisticsDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ThreadTaskService threadTaskService;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public List<UserChangeStation> getUserChangeStation(StatisticsBean obj) {
|
|
|
return statisticsDao.selectuserchangestation(obj);
|
|
|
@@ -298,9 +314,17 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ //更新数据库统计
|
|
|
+
|
|
|
+ threadTaskService.saveUserStatic(reList,obj.getStart_date().getTime(),obj.getEnd_date().getTime());
|
|
|
+
|
|
|
return reList;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public List<StatisticsBean> getFeeStationCheckedScore(StatisticsBean obj) {
|
|
|
// 获取收费站信息收费站人数
|
|
|
@@ -1242,9 +1266,15 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
|
|
|
return lists.subList(lists.size() - 20, lists.size());
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
return lists;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public List<StatisticsBean> getFSUp5Person(StatisticsBean obj) {
|
|
|
obj.setQueryType(2);
|
|
|
@@ -2360,4 +2390,106 @@ public class StatisticsServiceImpl extends BaseService implements StatisticsServ
|
|
|
});
|
|
|
return tmpList;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<StatisiticPojo> getuserStatistic(UserStatistic obj) {
|
|
|
+ //
|
|
|
+ List<CheckTaskPeriod> checkTaskPeriods = checkTaskPeriodDao.select(new CheckTaskPeriod());
|
|
|
+
|
|
|
+ for (CheckTaskPeriod p : checkTaskPeriods) {
|
|
|
+ if (obj.getStart_date() + 1 * 1000 * 60 * 60 == p.getEndtime().getTime()) {
|
|
|
+ obj.setStartperiod_id(p.getId());
|
|
|
+ }
|
|
|
+ if (obj.getEnd_date() + 1 * 1000 * 60 * 60 == p.getEndtime().getTime()) {
|
|
|
+ obj.setEndperiod_id(p.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(obj.getStart_date()>(checkTaskPeriods.get(checkTaskPeriods.size()-1).getEndtime().getTime()- 1 * 1000 * 60 * 60)){
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ if(obj.getEnd_date()<(checkTaskPeriods.get(0).getEndtime().getTime()- 1 * 1000 * 60 * 60)){
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ if(obj.getStart_date()<(checkTaskPeriods.get(0).getEndtime().getTime()- 1 * 1000 * 60 * 60)){
|
|
|
+ obj.setStartperiod_id(checkTaskPeriods.get(0).getId());
|
|
|
+ }
|
|
|
+ if(obj.getEnd_date()>(checkTaskPeriods.get(checkTaskPeriods.size()-1).getEndtime().getTime()- 1 * 1000 * 60 * 60)){
|
|
|
+ obj.setEndperiod_id(checkTaskPeriods.get(checkTaskPeriods.size()-1).getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ List<CheckTaskPeriod> temp_p = new ArrayList<>();
|
|
|
+ for (CheckTaskPeriod p : checkTaskPeriods) {
|
|
|
+ if(p.getId()>=obj.getStartperiod_id() && p.getId()<=obj.getEndperiod_id()){
|
|
|
+ temp_p.add(p);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM");
|
|
|
+ //获取满足条件的人员
|
|
|
+ List<UserStatistic> userStatistics = checkUserStatisticsDao.selectlimituser(obj);
|
|
|
+
|
|
|
+ HashMap<Integer,List<UserStatistic>> usm = new HashMap<>();
|
|
|
+
|
|
|
+ for (UserStatistic c:userStatistics
|
|
|
+ ) {
|
|
|
+ List<UserStatistic> s = usm.get(c.getUser_id());
|
|
|
+ if(s==null){s = new ArrayList<>();}
|
|
|
+ s.add(c);
|
|
|
+ usm.put(c.getUser_id(),s);
|
|
|
+ for (CheckTaskPeriod p : checkTaskPeriods) {
|
|
|
+ if(c.getPeriod_id().equals(p.getId())){
|
|
|
+ c.setP_str(simpleDateFormat.format(p.getEndtime()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ List<StatisiticPojo> user_ids = new ArrayList<>();
|
|
|
+
|
|
|
+ //判断是否连续
|
|
|
+ for(Integer k : usm.keySet()){
|
|
|
+
|
|
|
+ boolean isM = false;
|
|
|
+
|
|
|
+ List<UserStatistic> pp = new ArrayList<>();
|
|
|
+ //获取得分
|
|
|
+ List<UserStatistic> ll = usm.get(k);
|
|
|
+ int count=0;
|
|
|
+ for (CheckTaskPeriod p : temp_p
|
|
|
+ ) {
|
|
|
+ boolean isfond = false;
|
|
|
+ for (UserStatistic s:ll
|
|
|
+ ) {
|
|
|
+ if(s.getPeriod_id().equals(p.getId())){
|
|
|
+ isfond = true;
|
|
|
+ pp.add(s);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(isfond){
|
|
|
+ count++;
|
|
|
+ if(count>=obj.getLimitnumber()){isM = true;break; }
|
|
|
+ }else{
|
|
|
+ if(count>=obj.getLimitnumber()){isM = true;break; }
|
|
|
+ count=0;
|
|
|
+ pp.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if(isM) {
|
|
|
+ StatisiticPojo p = new StatisiticPojo();
|
|
|
+ p.setUser(CacheUtil.getUserFromMap(k.longValue()));
|
|
|
+ p.setDept(CacheUtil.getOrgannameFromMap(p.getUser().getOrganid().longValue()));
|
|
|
+ p.setUserStatistics(pp);
|
|
|
+ user_ids.add(p);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return user_ids;
|
|
|
+ }
|
|
|
}
|