Browse Source

代码暂存

dev_shibei_match
jianjun 4 years ago
parent
commit
810972aae1
  1. 143
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java
  2. 34
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/BaseDataFormDTO.java
  3. 24
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/WorkFactResultDTO.java
  4. 25
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java
  5. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java
  6. 39
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java

143
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/DateUtils.java

@ -664,15 +664,6 @@ public class DateUtils {
return result;
}
public static void main(String[] args) {
Date today=new Date();
Date yesterDay=DateUtils.parse("2020-07-28 15:33:00","yyyy-MM-dd HH:mm:ss");
Date tomorrow=DateUtils.parse("2020-07-30 15:33:00","yyyy-MM-dd HH:mm:ss");
System.out.println(comparteDate(today,today));
System.out.println(comparteDate(yesterDay,today));
System.out.println(comparteDate(tomorrow,today));
}
public static String getYearId(String monthId) {
if (StringUtils.isNotBlank(monthId) && monthId.length() > 4) {
return monthId.substring(NumConstant.ZERO, NumConstant.FOUR);
@ -874,4 +865,138 @@ 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
* **/
public static String getWeekStart(String dateId){
Calendar cal=Calendar.getInstance();
if (StringUtils.isNotBlank(dateId)){
cal.setTime(DateUtils.parseDate(dateId,DateUtils.DATE_PATTERN_YYYYMMDD));
}
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);
Date time=cal.getTime();
return new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD).format(time);
}
/**
* 获取本周的最后一天
* @return String
* **/
public static String getWeekEnd(String dateId){
Calendar cal=Calendar.getInstance();
if (StringUtils.isNotBlank(dateId)){
cal.setTime(DateUtils.parseDate(dateId,DateUtils.DATE_PATTERN_YYYYMMDD));
}
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);
cal.add(Calendar.DAY_OF_WEEK, 6);
Date time=cal.getTime();
return new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMMDD).format(time);
}
/**
* 获取本月开始日期
* @return String
* **/
public static String getMonthStart(){
Calendar cal=Calendar.getInstance();
cal.add(Calendar.MONTH, 0);
cal.set(Calendar.DAY_OF_MONTH, 1);
Date time=cal.getTime();
return new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMM).format(time);
}
/**
* 获取本月最后一天
* @return String
* **/
public static String getMonthEnd(){
Calendar cal=Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
Date time=cal.getTime();
return new SimpleDateFormat(DateUtils.DATE_PATTERN_YYYYMM).format(time);
}
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);
System.out.println(DateUtils.getWeekStart("20210801"));
System.out.println(DateUtils.getWeekEnd("20210801"));
Date dateIdDate = DateUtils.parse("20210801", DateUtils.DATE_PATTERN_YYYYMMDD);
String format = DateUtils.format(DateUtils.getMonthStart(dateIdDate), DateUtils.DATE_PATTERN_YYYYMMDD);
System.out.println(format);
format = DateUtils.format(DateUtils.getMonthEnd(dateIdDate), DateUtils.DATE_PATTERN_YYYYMMDD);
System.out.println(format);
}
}

34
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/form/BaseDataFormDTO.java

@ -0,0 +1,34 @@
package com.epmet.dataaggre.dto.datastats.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description 基础参数实体类
* @Auth sun
*/
@Data
public class BaseDataFormDTO implements Serializable {
private static final long serialVersionUID = 6766797386944333123L;
/**
* 组织Id
*/
@NotBlank(message = "组织ID不能为空",groups = {BaseDataFormDTO.BaseData.class,BaseDataFormDTO.WorkFact.class})
private String agencyId;
@NotBlank(message = "组织级别不能为空",groups = BaseDataFormDTO.WorkFact.class)
private String agencyLevel;
private String type;
/**
* 日维度Id
*/
private String dateId;
private String startDateId;
private String endDateId;
public interface BaseData extends CustomerClientShowGroup{}
public interface WorkFact extends CustomerClientShowGroup{}
}

24
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/datastats/result/WorkFactResultDTO.java

@ -0,0 +1,24 @@
package com.epmet.dataaggre.dto.datastats.result;
import lombok.Data;
import java.io.Serializable;
/**
* desc:
*
* @author: LiuJanJun
* @date: 2021/8/5 4:51 下午
* @version: 1.0
*/
@Data
public class WorkFactResultDTO implements Serializable {
private static final long serialVersionUID = -8149310637601355664L;
private double topicToIssueTotal;
private double issueToProjectTotal;
private double closedProjectTotal;
private double patrolTotal;
private String patrolTotalTime;
private String orgId;
private String orgName;
}

25
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/pub/PubController.java

@ -2,9 +2,9 @@ package com.epmet.dataaggre.controller.pub;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dataaggre.dto.app.form.AppFootBarFormDTO;
import com.epmet.dataaggre.dto.datastats.form.AgenctBasicDataFormDTO;
import com.epmet.dataaggre.dto.datastats.form.BaseDataFormDTO;
import com.epmet.dataaggre.dto.datastats.result.BaseStatsDataResultDTO;
import com.epmet.dataaggre.dto.datastats.result.WorkFactResultDTO;
import com.epmet.dataaggre.service.datastats.DataStatsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
@ -33,9 +33,22 @@ public class PubController {
* @date 2021/7/27 18:59
*/
@PostMapping("baseDataAgg")
public Result<BaseStatsDataResultDTO> getBaseStatsData(@RequestBody AgenctBasicDataFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,AppFootBarFormDTO.AddUserInternalGroup.class);
BaseStatsDataResultDTO resultDTO=dataStatsService.getBaseStatsData(formDTO);
return new Result<BaseStatsDataResultDTO>().ok(resultDTO);
public Result<BaseStatsDataResultDTO> getBaseStatsData(@RequestBody BaseDataFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,BaseDataFormDTO.BaseData.class);
return new Result<BaseStatsDataResultDTO>().ok(dataStatsService.getBaseStatsData(formDTO));
}
/**
* 查询下级工作实况
*
* @param formDTO
* @return com.epmet.dataaggre.dto.app.result.AppFootBarResultDTO
* @author yinzuomei
* @date 2021/7/27 18:59
*/
@PostMapping("subWorkFact")
public Result<WorkFactResultDTO> getSubWorkFact(@RequestBody BaseDataFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO,BaseDataFormDTO.WorkFact.class);
return new Result<WorkFactResultDTO>().ok(dataStatsService.getSubWorkFact(formDTO));
}
}

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/DataStatsService.java

@ -182,6 +182,7 @@ public interface DataStatsService {
*/
GridMemberDataAnalysisResultDTO getGridMemberIssueProjectStats(String staffId);
BaseStatsDataResultDTO getBaseStatsData(AgenctBasicDataFormDTO formDTO);
BaseStatsDataResultDTO getBaseStatsData(BaseDataFormDTO formDTO);
WorkFactResultDTO getSubWorkFact(BaseDataFormDTO formDTO);
}

39
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/datastats/impl/DataStatsServiceImpl.java

@ -1427,7 +1427,7 @@ public class DataStatsServiceImpl implements DataStatsService {
}
@Override
public BaseStatsDataResultDTO getBaseStatsData(AgenctBasicDataFormDTO formDTO) {
public BaseStatsDataResultDTO getBaseStatsData(BaseDataFormDTO formDTO) {
//入参有日期的则按具体时间执行,没有的则按当前时间前一天执行
if (StringUtils.isBlank(formDTO.getDateId())) {
Date yesterday = DateUtils.addDateDays(new Date(), -1);
@ -1468,6 +1468,43 @@ public class DataStatsServiceImpl implements DataStatsService {
return result;
}
@Override
public WorkFactResultDTO getSubWorkFact(BaseDataFormDTO formDTO) {
//入参有日期的则按具体时间执行,没有的则按当前时间前一天执行
if (StringUtils.isBlank(formDTO.getType())){
formDTO.setType("yesterday");
}
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));
}
String startDate,endDate;
Date dateIdDate = DateUtils.parse(formDTO.getDateId(), DateUtils.DATE_PATTERN_YYYYMMDD);
boolean isYesterday = DateUtils.getBeforeNDay(1,DateUtils.DATE_PATTERN_YYYYMMDD).equals(formDTO.getDateId());
switch (formDTO.getType()){
case "yesterday":
startDate = DateUtils.getBeforeNDay(NumConstant.ONE);
endDate = startDate;
break;
case "thisWeek":
startDate = DateUtils.getWeekStart(formDTO.getDateId());
if (!isYesterday){
endDate = DateUtils.getWeekEnd(formDTO.getDateId());
}
break;
case "thisMonth":
startDate = DateUtils.format(DateUtils.getMonthStart(dateIdDate),DateUtils.DATE_PATTERN_YYYYMMDD);
if (!isYesterday) {
endDate = DateUtils.format(DateUtils.getMonthEnd(dateIdDate), DateUtils.DATE_PATTERN_YYYYMMDD);
}
}
return null;
}
private String getPercentage(Integer countInt, Integer totalInt) {
if (NumConstant.ZERO == totalInt) {
return "0%";

Loading…
Cancel
Save