Browse Source

Merge branch 'develop' into release_temp

master
zhaoqifeng 4 years ago
parent
commit
9dd6f1d4fe
  1. 19
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsGroupServiceImpl.java
  2. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyDailyService.java
  3. 2
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupGridDailyService.java
  4. 13
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyDailyServiceImpl.java
  5. 13
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupGridDailyServiceImpl.java
  6. 5
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/WorkDayServiceImpl.java
  7. 1
      epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/CalenderDao.xml
  8. 11
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java
  9. 8
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java
  10. 22
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml

19
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/impl/StatsGroupServiceImpl.java

@ -23,6 +23,7 @@ import com.epmet.service.stats.*;
import com.epmet.util.DimIdGenerator;
import com.epmet.util.ModuleConstant;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -89,10 +90,15 @@ public class StatsGroupServiceImpl implements StatsGroupService {
DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean(formDTO);
if (customerIds.size() != NumConstant.ZERO) {
customerIds.forEach(customerId -> {
Boolean status = true;
try {
List<GridIdListByCustomerResultDTO> gridsInfo = customerGridService.getCustomerGridIdList(customerId, dimIdBean.getDateId());
List<GroupGridDailyResultDTO> resultDTOS = groupDataService.groupGridDaily(customerId, dimIdBean, gridsInfo);
factGroupGridDailyService.statisticsGroupGridDaily(resultDTOS, customerId);
List<List<GridIdListByCustomerResultDTO>> partition = ListUtils.partition(gridsInfo, NumConstant.ONE_HUNDRED);
for (List<GridIdListByCustomerResultDTO> p : partition) {
List<GroupGridDailyResultDTO> resultDTOS = groupDataService.groupGridDaily(customerId, dimIdBean, p);
factGroupGridDailyService.statisticsGroupGridDaily(resultDTOS, customerId,status);
status = false;
}
} catch (Exception e) {
log.error(String.format(GroupConstant.STATS_FAILED_GRID_DAILY, customerId, LocalDate.now(), e));
}
@ -129,10 +135,15 @@ public class StatsGroupServiceImpl implements StatsGroupService {
if (customerIds.size() != NumConstant.ZERO) {
DimIdGenerator.DimIdBean dimIdBean = this.getDimIdBean(formDTO);
customerIds.forEach(customerId -> {
Boolean status = true;
try {
List<DimAgencyDTO> customerAgencyInfos = dimAgencyService.getAgencyInfoByCustomerId(customerId);
List<AgencyGroupDailyResultDTO> agencyGroupDaily = this.getAgencyGroupDaily(customerAgencyInfos, dimIdBean, customerId);
factGroupAgencyDailyService.insertGroupAgencyDaily(agencyGroupDaily, customerId);
List<List<DimAgencyDTO>> partition = ListUtils.partition(customerAgencyInfos, NumConstant.ONE_HUNDRED);
for (List<DimAgencyDTO> p : partition) {
List<AgencyGroupDailyResultDTO> agencyGroupDaily = this.getAgencyGroupDaily(p, dimIdBean, customerId);
factGroupAgencyDailyService.insertGroupAgencyDaily(agencyGroupDaily, customerId,status);
status = false;
}
} catch (Exception e) {
log.error(String.format(GroupConstant.STATS_FAILED_AGENCY_DAILY, customerId, LocalDate.now(), e));
}

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupAgencyDailyService.java

@ -101,7 +101,7 @@ public interface FactGroupAgencyDailyService extends BaseService<FactGroupAgency
* @param agencyList
* @author zxc
*/
void insertGroupAgencyDaily(List<AgencyGroupDailyResultDTO> agencyList,String customerId);
void insertGroupAgencyDaily(List<AgencyGroupDailyResultDTO> agencyList,String customerId,Boolean status);
/**
* @param

2
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/FactGroupGridDailyService.java

@ -99,5 +99,5 @@ public interface FactGroupGridDailyService extends BaseService<FactGroupGridDail
* @param formDto
* @author zxc
*/
void statisticsGroupGridDaily(List<GroupGridDailyResultDTO> formDto,String customerId);
void statisticsGroupGridDaily(List<GroupGridDailyResultDTO> formDto,String customerId,Boolean status);
}

13
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupAgencyDailyServiceImpl.java

@ -113,12 +113,15 @@ public class FactGroupAgencyDailyServiceImpl extends BaseServiceImpl<FactGroupAg
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void insertGroupAgencyDaily(List<AgencyGroupDailyResultDTO> agencyList,String customerId) {
public void insertGroupAgencyDaily(List<AgencyGroupDailyResultDTO> agencyList,String customerId,Boolean status) {
if (!CollectionUtils.isEmpty(agencyList)){
Integer delNum;
do {
delNum = baseDao.deleteInsertAgencyDailyByDateId(agencyList.get(NumConstant.ZERO).getDateId(),customerId);
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
// true 为当前客户第一回进入,需要删除历史数据
if (status){
Integer delNum;
do {
delNum = baseDao.deleteInsertAgencyDailyByDateId(agencyList.get(NumConstant.ZERO).getDateId(),customerId);
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
}
List<List<AgencyGroupDailyResultDTO>> partition = ListUtils.partition(agencyList, NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
baseDao.insertGroupAgencyDaily(p);

13
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/stats/impl/FactGroupGridDailyServiceImpl.java

@ -115,15 +115,18 @@ public class FactGroupGridDailyServiceImpl extends BaseServiceImpl<FactGroupGrid
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void statisticsGroupGridDaily(List<GroupGridDailyResultDTO> formDto,String customerId) {
public void statisticsGroupGridDaily(List<GroupGridDailyResultDTO> formDto,String customerId,Boolean status) {
if (CollectionUtils.isEmpty(formDto)){
return;
}
String dateId = formDto.get(NumConstant.ZERO).getDateId();
Integer delNum;
do {
delNum = baseDao.deleteInsertDateId(dateId,customerId);
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
// true 为当前客户第一回进入,需要删除历史数据
if (status){
Integer delNum;
do {
delNum = baseDao.deleteInsertDateId(dateId,customerId);
}while (delNum > NumConstant.ZERO && delNum == NumConstant.ONE_THOUSAND);
}
List<List<GroupGridDailyResultDTO>> partition = ListUtils.partition(formDto, NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
baseDao.insertGroupGridDaily(p);

5
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/WorkDayServiceImpl.java

@ -3,14 +3,13 @@ package com.epmet.service.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.constant.ProjectConstant;
import com.epmet.dao.CalenderDao;
import com.epmet.dto.form.CostDayFormDTO;
import com.epmet.dto.form.TimestampIntervalFormDTO;
import com.epmet.dto.form.WorkDayFormDTO;
import com.epmet.dto.result.CostDayResultDTO;
import com.epmet.dto.form.WorkMinuteFormDTO;
import com.epmet.dto.result.CostDayResultDTO;
import com.epmet.dto.result.WorkDayResultDTO;
import com.epmet.entity.CalenderEntity;
import com.epmet.service.WorkDayService;
@ -271,7 +270,7 @@ public class WorkDayServiceImpl implements WorkDayService {
LocalDateTime initialTime = LocalDateTime.ofInstant(right.toInstant(), ZoneId.systemDefault())
.withHour(NumConstant.ZERO).withMinute(NumConstant.ZERO).withSecond(NumConstant.ZERO).withNano(NumConstant.ZERO);
//ChronoUnit日期枚举类,between方法计算两个时间对象之间的时间量
costMin += ChronoUnit.SECONDS.between(localDateTime, initialTime)/NumConstant.SIXTY;
costMin += ChronoUnit.SECONDS.between(initialTime, localDateTime)/NumConstant.SIXTY;
}
if(NumConstant.TWO == list.size()) {
return costMin;

1
epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/CalenderDao.xml

@ -60,6 +60,7 @@
DEL_FLAG = '0'
AND QUERY_DATE BETWEEN #{begin}
AND #{end}
order by query_date asc
</select>
</mapper>

11
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectDao.java

@ -272,4 +272,15 @@ public interface ProjectDao extends BaseDao<ProjectEntity> {
* @Date 2022/1/4 16:45
*/
List<ApprovaledListResultDTO> getGridMemberProjectList(@Param("agencyId") String agencyId, @Param("staffId") String staffId, @Param("startTime") String startTime, @Param("endTime") String endTime);
/**
* 获取项目列表用来计算项目耗时
* @Param customerId
* @Param projectId
* @Param status
* @Return {@link List< ProjectEntity>}
* @Author zhaoqifeng
* @Date 2022/1/12 17:05
*/
List<ProjectEntity> getProjectListForWorkMinutes(@Param("customerId")String customerId, @Param("projectId")String projectId, @Param("status")String status);
}

8
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectServiceImpl.java

@ -18,7 +18,6 @@
package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
@ -59,6 +58,7 @@ import com.epmet.resi.mine.dto.from.MyPartProjectsFormDTO;
import com.epmet.send.SendMqMsgUtil;
import com.epmet.service.*;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.common.base.Joiner;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
@ -3079,11 +3079,7 @@ public class ProjectServiceImpl extends BaseServiceImpl<ProjectDao, ProjectEntit
pageNo = pageNo + NumConstant.ONE;
PageHelper.startPage(pageNo, PageSize);
//获取项目列表
LambdaQueryWrapper<ProjectEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(dto.getCustomerId()), ProjectEntity::getCustomerId, dto.getCustomerId());
wrapper.eq(StringUtils.isNotBlank(dto.getId()), ProjectEntity::getId, dto.getId());
wrapper.eq(StringUtils.isNotBlank(dto.getStatus()), ProjectEntity::getStatus, dto.getStatus());
list = baseDao.selectList(wrapper);
list = baseDao.getProjectListForWorkMinutes(dto.getCustomerId(), dto.getId(), dto.getStatus());;
if (CollectionUtils.isNotEmpty(list)) {
//提取项目ID,创建时间,更新时间
List<TimestampIntervalFormDTO> intervalList = list.stream().map(item -> {

22
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectDao.xml

@ -506,4 +506,26 @@
</if>
ORDER BY CREATED_TIME DESC
</select>
<select id="getProjectListForWorkMinutes" resultType="com.epmet.entity.ProjectEntity">
SELECT
a.ID,
a.`STATUS`,
a.CREATED_TIME,
b.CREATED_TIME AS "updatedTime"
FROM
project a
LEFT JOIN project_process b ON a.ID = b.PROJECT_ID
AND b.OPERATION = 'close'
WHERE
a.DEL_FLAG = '0'
<if test="customerId != null and customerId != ''">
AND a.CUSTOMER_ID = #{customerId}
</if>
<if test="projectId != null and projectId != ''">
AND a.ID = #{projectId}
</if>
<if test="status != null and status != ''">
AND a.`STATUS` = #{status}
</if>
</select>
</mapper>
Loading…
Cancel
Save