diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java index faaf5f2c3a..55793d7d56 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java @@ -374,13 +374,6 @@ public class DateUtils { return DateUtils.addDateDays(nextMonth, -1); } -// public static void main(String[] args) { -// //int weekOfYear = getWeekOfYear(new Date()); -// String format = String.format("%02d", 9); -// -// System.out.println(666); -// } - /** * 获取日期前一天 * @author zhaoqifeng @@ -825,24 +818,6 @@ public class DateUtils { return com.epmet.commons.tools.utils.DateUtils.format(nowDate, com.epmet.commons.tools.utils.DateUtils.DATE_PATTERN_YYYYMM); } - /** - * @Author sun - * @Description 获取当前日期的前一天日期(yyyy-mm-dd) - **/ - public static Date yesterDay() { - Date date = new Date(); - try { - DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - Calendar calendar = Calendar.getInstance(); - calendar.set(Calendar.HOUR_OF_DAY, -24); - String str = sdf.format(calendar.getTime()); - date = sdf.parse(str); - } catch (Exception e) { - e.printStackTrace(); - } - return date; - } - /** * 格式化日期 * @param dateStr String 字符型日期 @@ -864,9 +839,9 @@ public class DateUtils { * @Author sun * @Description 获取当前日期几个自然月之前的日期(yyyy-MM-dd HH:mm:ss) **/ - public static String getBeforeMonthDate(int beforMonth){ + public static String getBeforeMonthDate(int beforeMonth){ Calendar c = Calendar.getInstance(); - c.add(Calendar.MONTH, - beforMonth); + c.add(Calendar.MONTH, - beforeMonth); Date date = c.getTime(); return DateUtils.format(date,DateUtils.DATE_TIME_PATTERN); } @@ -882,63 +857,6 @@ public class DateUtils { return DateUtils.format(date,dateType); } - /** - * 获取指定日期的 所在周的第一天和和最后一天 - * @param dataStr - * @return - * @throws ParseException - */ - public static String getLastOfWeek(String dataStr) throws ParseException { - Calendar cal = Calendar.getInstance(); - if (StringUtils.isNotBlank(dataStr)){ - cal.setTime(new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD).parse(dataStr)); - } - - int d = 0; - if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { - d = -6; - } else { - d = 2 - cal.get(Calendar.DAY_OF_WEEK); - } - cal.add(Calendar.DAY_OF_WEEK, d); - // 所在周开始日期 - String data1 = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD).format(cal.getTime()); - cal.add(Calendar.DAY_OF_WEEK, 6); - // 所在周结束日期 - String data2 = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD).format(cal.getTime()); - return data1 + "-" + data2; - - } - - /** - * 获取指定日期的 所在周的第一天和和最后一天 - * @param dataStr - * @return - * @throws ParseException - */ - public static String getFirstOfWeek(String dataStr) throws ParseException { - Calendar cal = Calendar.getInstance(); - if (StringUtils.isNotBlank(dataStr)){ - cal.setTime(new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD).parse(dataStr)); - } - - int d = 0; - if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { - d = -6; - } else { - d = 2 - cal.get(Calendar.DAY_OF_WEEK); - } - cal.add(Calendar.DAY_OF_WEEK, d); - // 所在周开始日期 - String data1 = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD).format(cal.getTime()); - cal.add(Calendar.DAY_OF_WEEK, 6); - // 所在周结束日期 - String data2 = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD).format(cal.getTime()); - return data1 + "-" + data2; - - } - - /** * 获取本周的第一天 * @return String @@ -981,10 +899,8 @@ public class DateUtils { public static void main(String[] args) throws ParseException { - String first = DateUtils.getFirstOfWeek("20210801"); - System.out.println(first); - String fLastOfWeek = DateUtils.getLastOfWeek("20210801"); - System.out.println(fLastOfWeek); + Date dayOfMonth = DateUtils.getMonthEnd(DateUtils.addDateMonths(new Date(),-1)); + System.out.println(DateUtils.format(dayOfMonth, DateUtils.DATE_PATTERN_YYYYMMDD)); System.out.println(DateUtils.getWeekStart("20210801")); System.out.println(DateUtils.getWeekEnd("20210801")); diff --git a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/UserAndGroupTotalResultDTO.java b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/UserAndGroupTotalResultDTO.java index 7572ecd1ae..38b7cc273e 100644 --- a/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/UserAndGroupTotalResultDTO.java +++ b/epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/UserAndGroupTotalResultDTO.java @@ -11,10 +11,23 @@ import java.io.Serializable; @Data public class UserAndGroupTotalResultDTO implements Serializable { private static final long serialVersionUID = 3564816296202777303L; - //话题总数 + /** + * 话题总数 + */ private Integer userTotal = 0; - //小组总数 + /** + * 小组总数 + */ private Integer groupTotal = 0; - private Integer sort = 1; + + /** + * 用户新增 + */ + private Integer userIncr = 0; + + /** + * 小组新增 + */ + private Integer groupIncr = 0; } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java index 680d16023f..dab47ac8c4 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java @@ -97,7 +97,7 @@ public class PubController { */ @PostMapping("getUserAndGroupTotal") public Result getUserAndGroupTotal(@RequestBody BaseDataFormDTO formDTO) { - ValidatorUtils.validateEntity(formDTO, BaseDataFormDTO.AgencyIdAndLevel.class); + //ValidatorUtils.validateEntity(formDTO, BaseDataFormDTO.AgencyIdAndLevel.class); return new Result().ok(dataStatsService.getUserAndGroupTotal(formDTO)); } diff --git a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java index d89badcfaa..6a8896618d 100644 --- a/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java +++ b/epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java @@ -1803,10 +1803,10 @@ public class DataStatsServiceImpl implements DataStatsService { public UserAndGroupTotalResultDTO getUserAndGroupTotal(BaseDataFormDTO formDTO) { //入参有日期的则按具体时间执行,没有的则按当前时间前一天执行 if (StringUtils.isBlank(formDTO.getDateId())) { - Date yesterday = DateUtils.addDateDays(new Date(), -1); - SimpleDateFormat format = new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD); - formDTO.setDateId(format.format(yesterday)); + formDTO.setDateId(DateUtils.getBeforeNDay(1)); } + //格式不对 + String lastMonthDateId = DateUtils.format(DateUtils.getMonthEnd(DateUtils.addDateMonths(DateUtils.parseDate(formDTO.getDateId(),DateUtils.DATE_PATTERN_YYYYMMDD),-1)),DateUtils.DATE_PATTERN_YYYYMMDD); UserAndGroupTotalResultDTO result = new UserAndGroupTotalResultDTO(); //0.根据组织Id查询是否存在子客户,存在的按areaCode查询当前客户之外的客户组织列表 @@ -1816,9 +1816,17 @@ public class DataStatsServiceImpl implements DataStatsService { //3-2.查询组织下用户 TotalAndIncrResultDTO userTotal = dataStatsDao.getAgencySumUser(agencyList, formDTO.getDateId()); result.setUserTotal(userTotal == null? NumConstant.ZERO:userTotal.getTotal()); + + TotalAndIncrResultDTO userTotalLastMonthDay = dataStatsDao.getAgencySumUser(agencyList, lastMonthDateId); + int lastUser = userTotalLastMonthDay == null ? NumConstant.ZERO : userTotalLastMonthDay.getTotal(); + result.setUserIncr(result.getUserTotal()-lastUser); //3-3.查询直属下级组织小组日统计数据 TotalAndIncrResultDTO groupTotal = dataStatsDao.getAgencySumGroup(agencyList, formDTO.getDateId()); result.setGroupTotal(groupTotal == null? NumConstant.ZERO:groupTotal.getTotal()); + + TotalAndIncrResultDTO groupTotalLastMonthDay = dataStatsDao.getAgencySumGroup(agencyList, lastMonthDateId); + int lastGroup = groupTotalLastMonthDay == null ? NumConstant.ZERO : groupTotalLastMonthDay.getTotal(); + result.setGroupIncr(result.getGroupTotal()-lastGroup); return result; }