Browse Source

screenProjectGridDaily

screenProjectQuantityGrid
master
zxc 5 years ago
parent
commit
3d4ad49b29
  1. 18
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/PingYinConstants.java
  2. 19
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ClosedIncrResultDTO.java
  3. 20
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/EvaluateTotalResultDTO.java
  4. 19
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectIncrResultDTO.java
  5. 18
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectTotalResultDTO.java
  6. 18
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ResolvedNumResultDTO.java
  7. 19
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/UnClosedTotalResultDTO.java
  8. 15
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectGridDailyDTO.java
  9. 12
      epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectQuantityGridMonthlyDTO.java
  10. 20
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java
  11. 56
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java
  12. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerGridDao.java
  13. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectGridDailyDao.java
  14. 56
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java
  15. 99
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java
  16. 8
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectGridDailyService.java
  17. 9
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectQuantityGridMonthlyService.java
  18. 148
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectGridDailyServiceImpl.java
  19. 124
      epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityGridMonthlyServiceImpl.java
  20. 94
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml
  21. 16
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml
  22. 49
      epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectGridDailyDao.xml

18
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/constant/PingYinConstants.java

@ -0,0 +1,18 @@
package com.epmet.constant;
/**
* @Author zxc
* @DateTime 2021/1/28 下午3:20
*/
public interface PingYinConstants {
String GRID_INFO_IS_ZERO = "客户【%s】下的网格信息为空......";
String EVALUATE_BAD = "bad";
String EVALUATE_GOOD = "good";
String EVALUATE_PERFECT = "perfect";
String UN_CLOSED = "unClosed";
String CLOSED = "closed";
}

19
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ClosedIncrResultDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.pingyin.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/2/1 上午9:22
*/
@Data
public class ClosedIncrResultDTO implements Serializable {
private static final long serialVersionUID = 4907953818631953766L;
private String gridId;
private Integer closedIncr;
}

20
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/EvaluateTotalResultDTO.java

@ -0,0 +1,20 @@
package com.epmet.dto.pingyin.result;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/1/29 上午9:08
*/
@Data
public class EvaluateTotalResultDTO implements Serializable {
private static final long serialVersionUID = -4734985200452228738L;
private String orgId;
private Integer evaluateCount = NumConstant.ZERO;
}

19
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectIncrResultDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.pingyin.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/1/29 下午2:28
*/
@Data
public class ProjectIncrResultDTO implements Serializable {
private static final long serialVersionUID = -1452144390062903633L;
private String gridId;
private Integer projectIncr;
}

18
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ProjectTotalResultDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.pingyin.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/1/28 下午3:15
*/
@Data
public class ProjectTotalResultDTO implements Serializable {
private static final long serialVersionUID = 6071988402600005617L;
private String gridId;
private Integer projectTotal;
}

18
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/ResolvedNumResultDTO.java

@ -0,0 +1,18 @@
package com.epmet.dto.pingyin.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/1/28 下午3:15
*/
@Data
public class ResolvedNumResultDTO implements Serializable {
private static final long serialVersionUID = 607198840261205617L;
private String gridId;
private Integer resolvedNum;
}

19
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/pingyin/result/UnClosedTotalResultDTO.java

@ -0,0 +1,19 @@
package com.epmet.dto.pingyin.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @DateTime 2021/1/29 下午2:59
*/
@Data
public class UnClosedTotalResultDTO implements Serializable {
private static final long serialVersionUID = -722723608888414454L;
private String gridId;
private Integer projectCount;
}

15
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectGridDailyDTO.java

@ -17,6 +17,7 @@
package com.epmet.dto.screen;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
@ -134,4 +135,18 @@ public class ScreenProjectGridDailyDTO implements Serializable {
*/
private Date updatedTime;
public ScreenProjectGridDailyDTO() {
this.projectTotal = NumConstant.ZERO;
this.resolvedNum = NumConstant.ZERO;
this.resolvedRatio = NumConstant.ZERO_DECIMAL;
this.evaluateTotal = NumConstant.ZERO;
this.goodTotal = NumConstant.ZERO;
this.badTotal = NumConstant.ZERO;
this.goodRatio = NumConstant.ZERO_DECIMAL;
this.badRatio = NumConstant.ZERO_DECIMAL;
this.createdBy = "APP_USER";
this.updatedBy = "APP_USER";
this.delFlag = NumConstant.ZERO_STR;
this.revision = NumConstant.ZERO;
}
}

12
epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/screen/ScreenProjectQuantityGridMonthlyDTO.java

@ -17,6 +17,7 @@
package com.epmet.dto.screen;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import java.io.Serializable;
@ -119,4 +120,15 @@ public class ScreenProjectQuantityGridMonthlyDTO implements Serializable {
*/
private Date updatedTime;
public ScreenProjectQuantityGridMonthlyDTO() {
this.projectIncr = NumConstant.ZERO;
this.projectTotal = NumConstant.ZERO;
this.unClosedTotal = NumConstant.ZERO;
this.closedTotal = NumConstant.ZERO;
this.closedIncr = NumConstant.ZERO;
this.delFlag = NumConstant.ZERO_STR;
this.revision = NumConstant.ZERO;
this.createdBy = "APP_USER";
this.updatedBy = "APP_USER";
}
}

20
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/DemoController.java

@ -36,6 +36,8 @@ import com.epmet.service.evaluationindex.extract.dataToIndex.*;
import com.epmet.service.evaluationindex.extract.todata.FactOriginTopicMainDailyService;
import com.epmet.service.evaluationindex.extract.toscreen.*;
import com.epmet.service.evaluationindex.indexcal.*;
import com.epmet.service.evaluationindex.screen.ScreenProjectGridDailyService;
import com.epmet.service.evaluationindex.screen.ScreenProjectQuantityGridMonthlyService;
import com.epmet.service.stats.DimAgencyService;
import com.epmet.service.stats.DimCustomerPartymemberService;
import lombok.extern.slf4j.Slf4j;
@ -743,4 +745,22 @@ public class DemoController {
log.info("影响行数="+updateNum);
return new Result();
}
@Autowired
private ScreenProjectGridDailyService screenProjectGridDailyService;
@Autowired
private ScreenProjectQuantityGridMonthlyService screenProjectQuantityGridMonthlyService;
@PostMapping("screenProjectGridDaily")
public Result screenProjectGridDaily(@RequestParam("customerId")String customerId,@RequestParam("dateId")String dateId){
screenProjectGridDailyService.extractionProjectGridDaily(customerId,dateId);
return new Result();
}
@PostMapping("screenProjectQuantityGrid")
public Result screenProjectQuantityGrid(@RequestParam("customerId")String customerId,@RequestParam("monthId")String monthId){
screenProjectQuantityGridMonthlyService.extractionProjectGridMonthly(customerId,monthId);
return new Result();
}
}

56
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/extract/FactOriginProjectMainDailyDao.java

@ -23,6 +23,7 @@ import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO;
import com.epmet.dto.extract.result.OrgStatisticsResultDTO;
import com.epmet.dto.extract.result.TransferRightRatioResultDTO;
import com.epmet.dto.indexcollect.result.CpcIndexCommonDTO;
import com.epmet.dto.pingyin.result.*;
import com.epmet.dto.screen.form.ProjectSourceMapFormDTO;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity;
import com.epmet.entity.evaluationindex.screen.ScreenDifficultyDataEntity;
@ -217,4 +218,59 @@ public interface FactOriginProjectMainDailyDao extends BaseDao<FactOriginProject
*/
List<OrgStatisticsResultDTO> getOrgProjectCount(@Param("customerId") String customerId, @Param("monthId")String monthId,
@Param("level") String level);
/**
* @Description 查询项目总数
* @Param customerId
* @Param dateId
* @author zxc
* @date 2021/1/28 下午4:01
*/
List<ProjectTotalResultDTO> selectProjectTotal(@Param("customerId")String customerId, @Param("dateId")String dateId, @Param("monthId")String monthId);
/**
* @Description 查询已解决项目数
* @Param customerId
* @Param dateId
* @author zxc
* @date 2021/1/28 下午4:15
*/
List<ResolvedNumResultDTO> selectResolvedNum(@Param("customerId")String customerId, @Param("dateId")String dateId);
/**
* @Description 查询 满意度评价次数
* @Param customerId
* @Param dateId
* @author zxc
* @date 2021/1/29 上午9:10
*/
List<EvaluateTotalResultDTO> selectEvaluateCount(@Param("customerId")String customerId, @Param("dateId")String dateId, @Param("activeCodes") List<String> activeCodes);
/**
* @Description 查询本月新增项目数
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/1/29 下午2:31
*/
List<ProjectIncrResultDTO> selectProjectIncr(@Param("customerId")String customerId, @Param("monthId")String monthId);
/**
* @Description 根据状态查询项目数
* @Param customerId
* @Param monthId
* @Param status
* @author zxc
* @date 2021/1/29 下午3:25
*/
List<UnClosedTotalResultDTO> selectProjectCount(@Param("customerId")String customerId, @Param("monthId")String monthId, @Param("status") String status);
/**
* @Description 本月新增结案项目数
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/2/1 上午9:25
*/
List<ClosedIncrResultDTO> selectClosedIncr(@Param("customerId")String customerId, @Param("monthId")String monthId);
}

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenCustomerGridDao.java

@ -23,6 +23,7 @@ import com.epmet.dto.extract.form.*;
import com.epmet.dto.extract.result.GridInfoResultDTO;
import com.epmet.dto.extract.result.OrgNameResultDTO;
import com.epmet.dto.indexcal.PageQueryGridFormDTO;
import com.epmet.dto.screen.ScreenProjectGridDailyDTO;
import com.epmet.dto.screencoll.form.CustomerGridFormDTO;
import com.epmet.entity.evaluationindex.screen.ScreenCustomerGridEntity;
import org.apache.ibatis.annotations.Mapper;
@ -185,4 +186,12 @@ public interface ScreenCustomerGridDao extends BaseDao<ScreenCustomerGridEntity>
* @date 2020/9/18 10:47 上午
*/
List<GovernAbilityGridMonthlyFormDTO> selectAllGridInfo(@Param("customerId") String customerId);
/**
* @Description 查询客户下的网格信息
* @Param customerId
* @author zxc
* @date 2021/1/28 下午3:18
*/
List<ScreenProjectGridDailyDTO> selectGridInfoByCustomerId(@Param("customerId") String customerId);
}

8
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/screen/ScreenProjectGridDailyDao.java

@ -39,5 +39,11 @@ public interface ScreenProjectGridDailyDao extends BaseDao<ScreenProjectGridDail
int deleteByDateIdAndCustomerId(@Param("customerId") String customerId, @Param("dateId") String dateId);
/**
* @Description 插入
* @Param list
* @author zxc
* @date 2021/1/29 上午10:44
*/
void insertScreenProjectGridDaily(@Param("list") List<ScreenProjectGridDailyDTO> list);
}

56
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/FactOriginProjectMainDailyService.java

@ -24,6 +24,7 @@ import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO;
import com.epmet.dto.extract.result.OrgStatisticsResultDTO;
import com.epmet.dto.extract.result.TransferRightRatioResultDTO;
import com.epmet.dto.indexcollect.result.CpcIndexCommonDTO;
import com.epmet.dto.pingyin.result.*;
import com.epmet.dto.screen.form.ProjectSourceMapFormDTO;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity;
import com.epmet.entity.evaluationindex.screen.ScreenDifficultyDataEntity;
@ -263,4 +264,59 @@ public interface FactOriginProjectMainDailyService extends BaseService<FactOrigi
* @date 2020.09.28 14:10
*/
List<ProjectSourceMapFormDTO> getNewProject(String customerId, List<String> list);
/**
* @Description 查询项目总数
* @Param customerId
* @Param dateId
* @author zxc
* @date 2021/1/28 下午3:59
*/
List<ProjectTotalResultDTO> selectProjectTotal(String customerId,String dateId,String monthId);
/**
* @Description 查询已解决项目数
* @Param customerId
* @Param dateId
* @author zxc
* @date 2021/1/28 下午4:15
*/
List<ResolvedNumResultDTO> selectResolvedNum(String customerId, String dateId);
/**
* @Description 查询 满意度评价次数
* @Param customerId
* @Param dateId
* @author zxc
* @date 2021/1/29 上午9:10
*/
List<EvaluateTotalResultDTO> selectEvaluateCount(String customerId, String dateId,List<String> activeCodes);
/**
* @Description 查询本月新增项目数
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/1/29 下午2:29
*/
List<ProjectIncrResultDTO> selectProjectIncr(String customerId, String monthId);
/**
* @Description 根据状态查询项目数
* @Param customerId
* @Param monthId
* @Param status
* @author zxc
* @date 2021/1/29 下午3:25
*/
List<UnClosedTotalResultDTO> selectProjectCount(String customerId, String monthId, String status);
/**
* @Description 本月新增结案项目数
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/2/1 上午9:24
*/
List<ClosedIncrResultDTO> selectClosedIncr(String customerId, String monthId);
}

99
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/extract/todata/impl/FactOriginProjectMainDailyServiceImpl.java

@ -32,6 +32,7 @@ import com.epmet.dto.extract.result.GridProjectClosedTotalResultDTO;
import com.epmet.dto.extract.result.OrgStatisticsResultDTO;
import com.epmet.dto.extract.result.TransferRightRatioResultDTO;
import com.epmet.dto.indexcollect.result.CpcIndexCommonDTO;
import com.epmet.dto.pingyin.result.*;
import com.epmet.dto.screen.form.ProjectSourceMapFormDTO;
import com.epmet.entity.evaluationindex.extract.FactOriginProjectMainDailyEntity;
import com.epmet.entity.evaluationindex.screen.ScreenDifficultyDataEntity;
@ -41,6 +42,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -259,4 +261,101 @@ public class FactOriginProjectMainDailyServiceImpl extends BaseServiceImpl<FactO
public List<ProjectSourceMapFormDTO > getNewProject(String customerId, List<String> list) {
return baseDao.selectNewProject(customerId,list);
}
/**
* @Description 查询项目总数
* @Param customerId
* @Param dateId
* @author zxc
* @date 2021/1/28 下午3:59
*/
@Override
public List<ProjectTotalResultDTO> selectProjectTotal(String customerId, String dateId,String monthId) {
if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(dateId)){
List<ProjectTotalResultDTO> projectTotalResultDTOS = baseDao.selectProjectTotal(customerId, dateId, monthId);
return projectTotalResultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 查询已解决项目数
* @Param customerId
* @Param dateId
* @author zxc
* @date 2021/1/28 下午4:15
*/
@Override
public List<ResolvedNumResultDTO> selectResolvedNum(String customerId, String dateId) {
if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(dateId)){
List<ResolvedNumResultDTO> resolvedNumResultDTOS = baseDao.selectResolvedNum(customerId, dateId);
return resolvedNumResultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 查询 满意度评价次数
* @Param customerId
* @Param dateId
* @author zxc
* @date 2021/1/29 上午9:10
*/
@Override
public List<EvaluateTotalResultDTO> selectEvaluateCount(String customerId, String dateId, List<String> activeCodes) {
if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(dateId) && !CollectionUtils.isEmpty(activeCodes)){
List<EvaluateTotalResultDTO> evaluateTotalResultDTOS = baseDao.selectEvaluateCount(customerId, dateId, activeCodes);
return evaluateTotalResultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 查询本月新增项目数
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/1/29 下午2:29
*/
@Override
public List<ProjectIncrResultDTO> selectProjectIncr(String customerId, String monthId) {
if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(monthId)){
List<ProjectIncrResultDTO> projectIncrResultDTOS = baseDao.selectProjectIncr(customerId, monthId);
return projectIncrResultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 根据状态查询项目数
* @Param customerId
* @Param monthId
* @Param status
* @author zxc
* @date 2021/1/29 下午3:25
*/
@Override
public List<UnClosedTotalResultDTO> selectProjectCount(String customerId, String monthId, String status) {
if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(monthId)){
List<UnClosedTotalResultDTO> resultDTOS = baseDao.selectProjectCount(customerId, monthId, status);
return resultDTOS;
}
return new ArrayList<>();
}
/**
* @Description 本月新增结案项目数
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/2/1 上午9:24
*/
@Override
public List<ClosedIncrResultDTO> selectClosedIncr(String customerId, String monthId) {
if (StringUtils.isNotBlank(customerId) && StringUtils.isNotBlank(monthId)){
List<ClosedIncrResultDTO> result = baseDao.selectClosedIncr(customerId, monthId);
return result;
}
return new ArrayList<>();
}
}

8
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectGridDailyService.java

@ -103,4 +103,12 @@ public interface ScreenProjectGridDailyService extends BaseService<ScreenProject
* @date 2021.01.28 09:33
*/
void collect(String customerId, ScreenCollFormDTO<ScreenProjectGridDailyDTO> data);
/**
* @Description 数据抽取网格-
* @Param
* @author zxc
* @date 2021/1/28 下午3:05
*/
void extractionProjectGridDaily(String customerId,String dateId);
}

9
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/ScreenProjectQuantityGridMonthlyService.java

@ -102,4 +102,13 @@ public interface ScreenProjectQuantityGridMonthlyService extends BaseService<Scr
* @date 2021.01.28 09:33
*/
void collect(String customerId, ScreenCollFormDTO<ScreenProjectQuantityGridMonthlyDTO> data);
/**
* @Description 数据抽取 网格-
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/1/29 下午1:57
*/
void extractionProjectGridMonthly(String customerId,String monthId);
}

148
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectGridDailyServiceImpl.java

@ -22,18 +22,31 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.constant.DataSourceConstant;
import com.epmet.constant.PingYinConstants;
import com.epmet.dao.evaluationindex.screen.ScreenCustomerGridDao;
import com.epmet.dao.evaluationindex.screen.ScreenProjectGridDailyDao;
import com.epmet.dto.pingyin.result.EvaluateTotalResultDTO;
import com.epmet.dto.pingyin.result.ProjectTotalResultDTO;
import com.epmet.dto.pingyin.result.ResolvedNumResultDTO;
import com.epmet.dto.screen.ScreenProjectGridDailyDTO;
import com.epmet.dto.screencoll.ScreenCollFormDTO;
import com.epmet.entity.evaluationindex.screen.ScreenProjectGridDailyEntity;
import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService;
import com.epmet.service.evaluationindex.screen.ScreenProjectGridDailyService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -45,8 +58,15 @@ import java.util.Map;
* @since v1.0.0 2021-01-27
*/
@Service
@Slf4j
@DataSource(DataSourceConstant.EVALUATION_INDEX)
public class ScreenProjectGridDailyServiceImpl extends BaseServiceImpl<ScreenProjectGridDailyDao, ScreenProjectGridDailyEntity> implements ScreenProjectGridDailyService {
@Autowired
private ScreenCustomerGridDao gridDao;
@Autowired
private FactOriginProjectMainDailyService projectMainDailyService;
@Override
public PageData<ScreenProjectGridDailyDTO> page(Map<String, Object> params) {
@ -121,4 +141,132 @@ public class ScreenProjectGridDailyServiceImpl extends BaseServiceImpl<ScreenPro
baseDao.insertBatch(data.getDataList(),customerId,"APP_USER",data.getDateId());
}
/**
* @Description 数据抽取网格-
* @Param
* @author zxc
* @date 2021/1/28 下午3:05
*/
@Override
public void extractionProjectGridDaily(String customerId, String dateId) {
// 查询客户下所有网格
List<ScreenProjectGridDailyDTO> gridInfos = gridDao.selectGridInfoByCustomerId(customerId);
if (CollectionUtils.isEmpty(gridInfos)){
throw new RenException(String.format(PingYinConstants.GRID_INFO_IS_ZERO,customerId));
}
// 查询 项目总数
List<ProjectTotalResultDTO> projectTotal = projectMainDailyService.selectProjectTotal(customerId, dateId, null);
// 查询 项目解决数
List<ResolvedNumResultDTO> resolvedNum = projectMainDailyService.selectResolvedNum(customerId, dateId);
//查询 参与满意度评价的总次数
String[] activeCodesAll = {PingYinConstants.EVALUATE_BAD,PingYinConstants.EVALUATE_GOOD,PingYinConstants.EVALUATE_PERFECT};
List<EvaluateTotalResultDTO> evaluateTotal = projectMainDailyService.selectEvaluateCount(customerId, dateId, getActiveCode(activeCodesAll));
//查询 满意+非常满意的总次数
String[] activeCodesGood = {PingYinConstants.EVALUATE_GOOD,PingYinConstants.EVALUATE_PERFECT};
List<EvaluateTotalResultDTO> evaluateGood = projectMainDailyService.selectEvaluateCount(customerId, dateId, getActiveCode(activeCodesGood));
gridInfos.forEach(g -> {
g.setDateId(dateId);
// 项目总数赋值
if (!CollectionUtils.isEmpty(projectTotal)){
projectTotal.forEach(pt -> {
if (g.getGridId().equals(pt.getGridId())){
g.setProjectTotal(pt.getProjectTotal());
}
});
}
// 项目解决数赋值
if (!CollectionUtils.isEmpty(resolvedNum)){
resolvedNum.forEach(rn -> {
if (g.getGridId().equals(rn.getGridId())){
g.setResolvedNum(rn.getResolvedNum());
}
});
}
// 解决率
g.setResolvedRatio(getRatio(g.getResolvedNum(),g.getProjectTotal()));
// 参与满意度评价的总次数 赋值
if (!CollectionUtils.isEmpty(evaluateTotal)){
evaluateTotal.forEach(et -> {
if (g.getGridId().equals(et.getOrgId())){
g.setEvaluateTotal(et.getEvaluateCount());
}
});
}
// 满意+非常满意的总次数 赋值
if (!CollectionUtils.isEmpty(evaluateGood)){
evaluateGood.forEach(eg -> {
if (g.getGridId().equals(eg.getOrgId())){
g.setGoodTotal(eg.getEvaluateCount());
}
});
}
// 不满意总次数
g.setBadTotal(g.getEvaluateTotal()==NumConstant.ZERO ? NumConstant.ZERO : g.getEvaluateTotal() - g.getGoodTotal());
// 满意率
g.setGoodRatio(getRatio(g.getGoodTotal(),g.getEvaluateTotal()));
// 不满意率
g.setBadRatio(getRatio(g.getBadTotal(),g.getEvaluateTotal()));
});
log.info(gridInfos.toString());
delScreenProjectGridDaily(customerId, dateId);
insertScreenProjectGridDaily(gridInfos);
}
/**
* @Description activeCode处理
* @Param actCode
* @author zxc
* @date 2021/1/29 上午9:33
*/
public List<String> getActiveCode(String[] actCode){
List<String> activeCodes = Arrays.asList(actCode);
return activeCodes;
}
/**
* @Description
* @Param a
* @Param b 分母
* @author zxc
* @date 2021/1/29 上午10:10
*/
public BigDecimal getRatio(Integer a , Integer b){
if (b==NumConstant.ZERO){
return new BigDecimal(NumConstant.ZERO);
}
BigDecimal bigDecimalA = new BigDecimal(a);
BigDecimal bigDecimalB = new BigDecimal(b);
BigDecimal divide = bigDecimalA.divide(bigDecimalB, NumConstant.FOUR, BigDecimal.ROUND_HALF_UP);
return divide;
}
/**
* @Description 新增
* @Param list
* @author zxc
* @date 2021/2/1 上午10:24
*/
@Transactional(rollbackFor = Exception.class)
public void insertScreenProjectGridDaily(List<ScreenProjectGridDailyDTO> list){
List<List<ScreenProjectGridDailyDTO>> partition = ListUtils.partition(list, NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
baseDao.insertScreenProjectGridDaily(p);
});
}
/**
* @Description 删除
* @Param customerId
* @Param dateId
* @author zxc
* @date 2021/2/1 上午10:24
*/
@Transactional(rollbackFor = Exception.class)
public void delScreenProjectGridDaily(String customerId,String dateId){
Integer flag;
do {
flag = baseDao.deleteByDateIdAndCustomerId(customerId,dateId);
}while (flag > NumConstant.ZERO && flag == NumConstant.ONE_THOUSAND);
}
}

124
epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/screen/impl/ScreenProjectQuantityGridMonthlyServiceImpl.java

@ -22,17 +22,31 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.constant.DataSourceConstant;
import com.epmet.constant.PingYinConstants;
import com.epmet.dao.evaluationindex.screen.ScreenCustomerGridDao;
import com.epmet.dao.evaluationindex.screen.ScreenProjectQuantityGridMonthlyDao;
import com.epmet.dto.pingyin.result.ClosedIncrResultDTO;
import com.epmet.dto.pingyin.result.ProjectIncrResultDTO;
import com.epmet.dto.pingyin.result.ProjectTotalResultDTO;
import com.epmet.dto.pingyin.result.UnClosedTotalResultDTO;
import com.epmet.dto.screen.ScreenProjectGridDailyDTO;
import com.epmet.dto.screen.ScreenProjectQuantityGridMonthlyDTO;
import com.epmet.dto.screencoll.ScreenCollFormDTO;
import com.epmet.entity.evaluationindex.screen.ScreenProjectQuantityGridMonthlyEntity;
import com.epmet.service.evaluationindex.extract.todata.FactOriginProjectMainDailyService;
import com.epmet.service.evaluationindex.screen.ScreenProjectQuantityGridMonthlyService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.List;
@ -45,8 +59,15 @@ import java.util.Map;
* @since v1.0.0 2021-01-27
*/
@Service
@Slf4j
@DataSource(DataSourceConstant.EVALUATION_INDEX)
public class ScreenProjectQuantityGridMonthlyServiceImpl extends BaseServiceImpl<ScreenProjectQuantityGridMonthlyDao, ScreenProjectQuantityGridMonthlyEntity> implements ScreenProjectQuantityGridMonthlyService {
@Autowired
private ScreenCustomerGridDao gridDao;
@Autowired
private FactOriginProjectMainDailyService projectMainDailyService;
@Override
public PageData<ScreenProjectQuantityGridMonthlyDTO> page(Map<String, Object> params) {
@ -121,4 +142,107 @@ public class ScreenProjectQuantityGridMonthlyServiceImpl extends BaseServiceImpl
baseDao.insertBatch(data.getDataList(),customerId,"APP_USER",data.getMonthId());
}
/**
* @Description 数据抽取 网格-
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/1/29 下午1:57
*/
@Override
public void extractionProjectGridMonthly(String customerId, String monthId) {
// 查询客户下所有网格
List<ScreenProjectGridDailyDTO> screenProjectGridDailyDTOS = gridDao.selectGridInfoByCustomerId(customerId);
if (CollectionUtils.isEmpty(screenProjectGridDailyDTOS)){
throw new RenException(String.format(PingYinConstants.GRID_INFO_IS_ZERO,customerId));
}
List<ScreenProjectQuantityGridMonthlyDTO> gridInfos = ConvertUtils.sourceToTarget(screenProjectGridDailyDTOS, ScreenProjectQuantityGridMonthlyDTO.class);
// 本月新增的项目数量 转项目日期在当前月份内
List<ProjectIncrResultDTO> projectIncr = projectMainDailyService.selectProjectIncr(customerId, monthId);
// 截止到当前月份:累计项目总数
List<ProjectTotalResultDTO> projectTotal = projectMainDailyService.selectProjectTotal(customerId, null, monthId);
// 截止到当前月份:累计未结项目总数
List<UnClosedTotalResultDTO> projectUnClosed = projectMainDailyService.selectProjectCount(customerId, monthId, PingYinConstants.UN_CLOSED);
// 截止到当前月份:累计已结项目
List<UnClosedTotalResultDTO> projectClosed = projectMainDailyService.selectProjectCount(customerId, monthId, PingYinConstants.CLOSED);
// 本月新增结案项目数
List<ClosedIncrResultDTO> closedIncr = projectMainDailyService.selectClosedIncr(customerId, monthId);
gridInfos.forEach(g -> {
g.setMonthId(monthId);
// 本月新增的项目数量 转项目日期在当前月份内
if (!CollectionUtils.isEmpty(projectIncr)){
projectIncr.forEach(p -> {
if (g.getGridId().equals(p.getGridId())){
g.setProjectIncr(p.getProjectIncr());
}
});
}
// 截止到当前月份:累计项目总数
if (!CollectionUtils.isEmpty(projectTotal)){
projectTotal.forEach(p -> {
if (g.getGridId().equals(p.getGridId())){
g.setProjectTotal(p.getProjectTotal());
}
});
}
// 截止到当前月份:累计未结项目总数
if (!CollectionUtils.isEmpty(projectUnClosed)){
projectUnClosed.forEach(p -> {
if (g.getGridId().equals(p.getGridId())){
g.setUnClosedTotal(p.getProjectCount());
}
});
}
// 截止到当前月份:累计已结项目
if (!CollectionUtils.isEmpty(projectClosed)){
projectClosed.forEach(p -> {
if (g.getGridId().equals(p.getGridId())){
g.setClosedTotal(p.getProjectCount());
}
});
}
// 本月新增结案项目数
if (!CollectionUtils.isEmpty(closedIncr)){
closedIncr.forEach(p -> {
if (g.getGridId().equals(p.getGridId())){
g.setClosedIncr(p.getClosedIncr());
}
});
}
});
log.info(gridInfos.toString());
del(customerId, monthId);
insert(gridInfos,customerId,monthId);
}
/**
* @Description 删除
* @Param customerId
* @Param monthId
* @author zxc
* @date 2021/2/1 上午10:13
*/
@Transactional(rollbackFor = Exception.class)
public void del(String customerId,String monthId){
Integer flag;
do {
flag = baseDao.deleteByMonthIdAndCustomerId(customerId, monthId);
}while (flag > NumConstant.ZERO && flag == NumConstant.ONE_THOUSAND);
}
/**
* @Description 新增
* @Param list
* @author zxc
* @date 2021/2/1 上午10:16
*/
@Transactional(rollbackFor = Exception.class)
public void insert(List<ScreenProjectQuantityGridMonthlyDTO> list,String customerId,String monthId){
List<List<ScreenProjectQuantityGridMonthlyDTO>> partition = ListUtils.partition(list, NumConstant.ONE_HUNDRED);
partition.forEach(p -> {
baseDao.insertBatch(p,customerId,"APP_USER",monthId);
});
}
}

94
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/extract/FactOriginProjectMainDailyDao.xml

@ -440,4 +440,98 @@
CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
</select>
<!-- 查询项目总数 -->
<select id="selectProjectTotal" resultType="com.epmet.dto.pingyin.result.ProjectTotalResultDTO">
SELECT
GRID_ID,
COUNT(ID) AS projectTotal
FROM fact_origin_project_main_daily
WHERE DEL_FLAG = 0
AND CUSTOMER_ID = #{customerId}
<if test="dateId != null and dateId != '' ">
AND DATE_ID <![CDATA[ <= ]]> #{dateId}
</if>
<if test="monthId != null and monthId != '' ">
AND MONTH_ID <![CDATA[ <= ]]> #{monthId}
</if>
GROUP BY GRID_ID
</select>
<!-- 查询已解决项目数 -->
<select id="selectResolvedNum" resultType="com.epmet.dto.pingyin.result.ResolvedNumResultDTO">
SELECT
GRID_ID,
COUNT(ID) AS resolvedNum
FROM fact_origin_project_main_daily
WHERE DEL_FLAG = 0
AND CUSTOMER_ID = #{customerId}
AND DATE_ID <![CDATA[ <= ]]> #{dateId}
AND PROJECT_STATUS = 'closed'
AND IS_RESOLVED = 'resolved'
GROUP BY GRID_ID
</select>
<!-- 查询 满意度评价次数 -->
<select id="selectEvaluateCount" resultType="com.epmet.dto.pingyin.result.EvaluateTotalResultDTO">
SELECT
ORG_ID,
COUNT(PROJECT_ID) AS evaluateCount
FROM fact_origin_project_log_daily
WHERE DEL_FLAG = 0
AND ORG_TYPE = 'grid'
AND DATE_ID <![CDATA[ <= ]]> #{dateId}
AND CUSTOMER_ID = #{customerId}
AND IS_ACTIVE = 1
AND (
<foreach collection="activeCodes" item="code" separator=" OR ">
ACTION_CODE = #{code}
</foreach>
)
GROUP BY ORG_ID
</select>
<!-- 查询本月新增项目数 -->
<select id="selectProjectIncr" resultType="com.epmet.dto.pingyin.result.ProjectIncrResultDTO">
SELECT
GRID_ID,
COUNT(ID) AS projectIncr
FROM fact_origin_project_main_daily
WHERE DEL_FLAG = 0
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
GROUP BY GRID_ID
</select>
<!-- 根据状态查询项目数 -->
<select id="selectProjectCount" resultType="com.epmet.dto.pingyin.result.UnClosedTotalResultDTO">
SELECT
GRID_ID,
COUNT(ID) AS projectCount
FROM fact_origin_project_main_daily
WHERE DEL_FLAG = 0
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID <![CDATA[ <= ]]> #{monthId}
<if test="status == 'unClosed' ">
AND PROJECT_STATUS != 'closed'
</if>
<if test="status == 'closed' ">
AND PROJECT_STATUS = 'closed'
</if>
GROUP BY GRID_ID
</select>
<!-- 本月新增结案项目数 -->
<select id="selectClosedIncr" resultType="com.epmet.dto.pingyin.result.ClosedIncrResultDTO">
SELECT
GRID_ID,
COUNT( ID ) AS closedIncr
FROM fact_origin_project_main_daily
WHERE
DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId}
AND MONTH_ID = #{monthId}
AND PROJECT_STATUS = 'closed'
GROUP BY GRID_ID
</select>
</mapper>

16
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenCustomerGridDao.xml

@ -343,4 +343,20 @@
del_flag = '0'
AND CUSTOMER_ID = #{customerId}
</select>
<!-- 查询客户下的网格信息 -->
<select id="selectGridInfoByCustomerId" resultType="com.epmet.dto.screen.ScreenProjectGridDailyDTO">
SELECT
cg.CUSTOMER_ID,
cg.GRID_ID,
cg.GRID_NAME,
cg.PARENT_AGENCY_ID AS pid,
cg.AREA_CODE,
ca.pids
FROM screen_customer_grid cg
LEFT JOIN screen_customer_agency ca ON ca.AGENCY_ID = cg.PARENT_AGENCY_ID
WHERE cg.DEL_FLAG = 0
AND cg.CUSTOMER_ID = #{customerId}
</select>
</mapper>

49
epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/screen/ScreenProjectGridDailyDao.xml

@ -94,6 +94,55 @@
)
</foreach>
</insert>
<insert id="insertScreenProjectGridDaily">
INSERT INTO screen_project_grid_daily
(
id,
customer_id,
date_id,
grid_id,
pid,
pids,
project_total,
resolved_num,
resolved_ratio,
evaluate_total,
good_total,
bad_total,
good_ratio,
bad_ratio,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
) values
<foreach collection="list" item="item" index="index" separator=",">
(
REPLACE(UUID(), '-', ''),
#{item.customerId},
#{item.dateId},
#{item.gridId},
#{item.pid},
#{item.pids},
#{item.projectTotal},
#{item.resolvedNum},
#{item.resolvedRatio},
#{item.evaluateTotal},
#{item.goodTotal},
#{item.badTotal},
#{item.goodRatio},
#{item.badRatio},
#{item.delFlag},
#{item.revision},
#{item.createdBy},
now(),
#{item.createdBy},
now()
)
</foreach>
</insert>
<delete id="deleteByDateIdAndCustomerId">

Loading…
Cancel
Save