Browse Source

新增接口,查询项目评价得分

master
zxc 5 years ago
parent
commit
356451982c
  1. 6
      epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectEvaluateScoreResultDTO.java
  2. 14
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectSatisfactionStatisticsController.java
  3. 9
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionStatisticsDao.java
  4. 13
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectSatisfactionStatisticsEntity.java
  5. 10
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionStatisticsService.java
  6. 24
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionStatisticsServiceImpl.java
  7. 17
      epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionStatisticsDao.xml

6
epmet-module/gov-project/gov-project-client/src/main/java/com/epmet/dto/result/ProjectEvaluateScoreResultDTO.java

@ -1,6 +1,9 @@
package com.epmet.dto.result;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@ -9,6 +12,9 @@ import java.io.Serializable;
* @DateTime 2021/5/13 10:57 上午
* @DESC
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ProjectEvaluateScoreResultDTO implements Serializable {
private static final long serialVersionUID = 3317308221138082162L;

14
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/controller/ProjectSatisfactionStatisticsController.java

@ -26,6 +26,8 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.ProjectSatisfactionStatisticsDTO;
import com.epmet.dto.form.ProjectEvaluateScoreFormDTO;
import com.epmet.dto.result.ProjectEvaluateScoreResultDTO;
import com.epmet.excel.ProjectSatisfactionStatisticsExcel;
import com.epmet.service.ProjectSatisfactionStatisticsService;
import org.springframework.beans.factory.annotation.Autowired;
@ -91,4 +93,16 @@ public class ProjectSatisfactionStatisticsController {
ExcelUtils.exportExcelToTarget(response, null, list, ProjectSatisfactionStatisticsExcel.class);
}
/**
* @Description 项目评价分数
* @Param formDTO
* @author zxc
* @date 2021/5/13 11:18 上午
*/
@PostMapping("projectevaluatescore")
public Result<ProjectEvaluateScoreResultDTO> projectEvaluateScore(@RequestBody ProjectEvaluateScoreFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, ProjectEvaluateScoreFormDTO.ProjectEvaluateScoreForm.class);
return new Result<ProjectEvaluateScoreResultDTO>().ok(projectSatisfactionStatisticsService.projectEvaluateScore(formDTO));
}
}

9
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/dao/ProjectSatisfactionStatisticsDao.java

@ -20,6 +20,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.ProjectSatisfactionStatisticsEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 项目满意度调查统计表
@ -30,4 +31,12 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ProjectSatisfactionStatisticsDao extends BaseDao<ProjectSatisfactionStatisticsEntity> {
/**
* @Description 根据项目ID查询此项目评价信息
* @Param projectId
* @author zxc
* @date 2021/5/13 1:28 下午
*/
ProjectSatisfactionStatisticsEntity selectInfoByProjectId(@Param("projectId")String projectId);
}

13
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/entity/ProjectSatisfactionStatisticsEntity.java

@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import com.epmet.commons.tools.constant.NumConstant;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -60,9 +61,21 @@ public class ProjectSatisfactionStatisticsEntity extends BaseEpmetEntity {
*/
private Integer badCount;
/**
* 应评价人数等于实际表决人数
*/
private Integer shouldEvaluateCount;
/**
* 客户ID
*/
@TableField(fill = FieldFill.INSERT)
private String customerId;
public ProjectSatisfactionStatisticsEntity() {
this.goodCount = NumConstant.ZERO;
this.perfectCount = NumConstant.ZERO;
this.badCount = NumConstant.ZERO;
this.shouldEvaluateCount = NumConstant.ZERO;
}
}

10
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/ProjectSatisfactionStatisticsService.java

@ -20,6 +20,8 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.ProjectSatisfactionStatisticsDTO;
import com.epmet.dto.form.ProjectEvaluateScoreFormDTO;
import com.epmet.dto.result.ProjectEvaluateScoreResultDTO;
import com.epmet.entity.ProjectSatisfactionStatisticsEntity;
import java.util.List;
@ -92,4 +94,12 @@ public interface ProjectSatisfactionStatisticsService extends BaseService<Projec
* @date 2020-05-11
*/
void delete(String[] ids);
/**
* @Description 项目评价分数
* @Param formDTO
* @author zxc
* @date 2021/5/13 11:18 上午
*/
ProjectEvaluateScoreResultDTO projectEvaluateScore(ProjectEvaluateScoreFormDTO formDTO);
}

24
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectSatisfactionStatisticsServiceImpl.java

@ -20,11 +20,14 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.dao.ProjectSatisfactionStatisticsDao;
import com.epmet.dto.ProjectSatisfactionStatisticsDTO;
import com.epmet.dto.form.ProjectEvaluateScoreFormDTO;
import com.epmet.dto.result.ProjectEvaluateScoreResultDTO;
import com.epmet.entity.ProjectSatisfactionStatisticsEntity;
import com.epmet.redis.ProjectSatisfactionStatisticsRedis;
import com.epmet.service.ProjectSatisfactionStatisticsService;
@ -101,4 +104,25 @@ public class ProjectSatisfactionStatisticsServiceImpl extends BaseServiceImpl<Pr
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @Description 项目评价分数
* @Param formDTO
* @author zxc
* @date 2021/5/13 11:18 上午
*/
@Override
public ProjectEvaluateScoreResultDTO projectEvaluateScore(ProjectEvaluateScoreFormDTO formDTO) {
ProjectSatisfactionStatisticsEntity entity = baseDao.selectInfoByProjectId(formDTO.getProjectId());
Integer realEvalCount = entity.getBadCount() + entity.getGoodCount() + entity.getPerfectCount();
Integer shouldEvaluateCount = entity.getShouldEvaluateCount();
if (shouldEvaluateCount == NumConstant.ZERO){
return new ProjectEvaluateScoreResultDTO(NumConstant.ZERO);
}
// 未评价的给80分
Integer noEval = shouldEvaluateCount - realEvalCount;
Integer noEvalScore = noEval * NumConstant.EIGHTY;
Integer realEvalScore = entity.getBadCount() * NumConstant.SIXTY + entity.getGoodCount() * NumConstant.EIGHTY + entity.getPerfectCount() * NumConstant.ONE_HUNDRED;
return new ProjectEvaluateScoreResultDTO((noEvalScore + realEvalScore) / shouldEvaluateCount);
}
}

17
epmet-module/gov-project/gov-project-server/src/main/resources/mapper/ProjectSatisfactionStatisticsDao.xml

@ -3,19 +3,10 @@
<mapper namespace="com.epmet.dao.ProjectSatisfactionStatisticsDao">
<resultMap type="com.epmet.entity.ProjectSatisfactionStatisticsEntity" id="projectSatisfactionStatisticsMap">
<result property="id" column="ID"/>
<result property="projectId" column="PROJECT_ID"/>
<result property="goodCount" column="GOOD_COUNT"/>
<result property="perfectCount" column="PERFECT_COUNT"/>
<result property="badCount" column="BAD_COUNT"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<!-- 根据项目ID查询此项目评价信息 -->
<select id="selectInfoByProjectId" resultType="com.epmet.entity.ProjectSatisfactionStatisticsEntity">
select * from project_satisfaction_statistics where DEL_FLAG = '0' AND PROJECT_ID = #{projectId}
</select>
</mapper>
Loading…
Cancel
Save