Commit 40ef6a63 authored by 徐俊's avatar 徐俊
parents 2f2b4814 2465f544
......@@ -21,6 +21,4 @@ public interface ComProjectAssignDAO extends BaseMapper<ComProjectAssign>, BaseD
List<AssignCount> getAssignCount(String expertId);
List<ComProjectGroupDTO> getProjectGroupAssignById(String id, String expertId);
void updateAssignState(ComProject comProject);
}
......@@ -91,6 +91,21 @@ public class ComProject extends BaseEntity {
/** 平均分 */
@ApiModelProperty(value = "平均分", position = 4)
private BigDecimal averageScore;
/** 技术专家总分 */
@ApiModelProperty(value = "技术专家总分", position = 4)
private BigDecimal technologyScore;
/** 技术专家平均分 */
@ApiModelProperty(value = "技术专家平均分", position = 4)
private BigDecimal technologyAverageScore;
/** 财务专家总分 */
@ApiModelProperty(value = "财务专家总分", position = 4)
private BigDecimal economyScore;
/** 财务专家平均分 */
@ApiModelProperty(value = "财务专家平均分", position = 4)
private BigDecimal economyAverageScore;
/** 计算得分 */
@ApiModelProperty(value = "计算得分", position = 4)
private BigDecimal calculateScore;
/** 项目完成状态 */
@ApiModelProperty(value = "项目完成状态", position = 38 )
private String completeStatus;
......
......@@ -92,6 +92,21 @@ public class ComProjectDTO extends BaseDTO {
/** 平均分 */
@ApiModelProperty(value = "平均分", position = 4)
private BigDecimal averageScore;
/** 技术专家总分 */
@ApiModelProperty(value = "技术专家总分", position = 4)
private BigDecimal technologyScore;
/** 技术专家平均分 */
@ApiModelProperty(value = "技术专家平均分", position = 4)
private BigDecimal technologyAverageScore;
/** 财务专家总分 */
@ApiModelProperty(value = "财务专家总分", position = 4)
private BigDecimal economyScore;
/** 财务专家平均分 */
@ApiModelProperty(value = "财务专家平均分", position = 4)
private BigDecimal economyAverageScore;
/** 计算得分 */
@ApiModelProperty(value = "计算得分", position = 4)
private BigDecimal calculateScore;
/** 项目Id */
......
......@@ -91,6 +91,21 @@ public class ComProjectQueryVO extends PaginationVO{
/** 平均分 */
@ApiModelProperty(value = "平均分", position = 4)
private BigDecimal averageScore;
/** 技术专家总分 */
@ApiModelProperty(value = "技术专家总分", position = 4)
private BigDecimal technologyScore;
/** 技术专家平均分 */
@ApiModelProperty(value = "技术专家平均分", position = 4)
private BigDecimal technologyAverageScore;
/** 财务专家总分 */
@ApiModelProperty(value = "财务专家总分", position = 4)
private BigDecimal economyScore;
/** 财务专家平均分 */
@ApiModelProperty(value = "财务专家平均分", position = 4)
private BigDecimal economyAverageScore;
/** 计算得分 */
@ApiModelProperty(value = "计算得分", position = 4)
private BigDecimal calculateScore;
/** 项目完成状态 */
@ApiModelProperty(value = "项目完成状态", position = 38 )
......
......@@ -239,10 +239,10 @@ public class ComPersonServiceImpl extends BaseServiceImpl<ComPersonDAO, ComPerso
ComPersonDTO dto = comPersonDAO.getPersonById(id);
if (dto != null && !SecurityUserHolder.getRoles().contains(CommonEnum.systemRole.sys.getCode().toString()) && !SecurityUserHolder.getRoles().contains(CommonEnum.systemRole.personal.getCode().toString())) {
if (Objects.nonNull(dto.getCertId())) {
dto.setCertId(hideAllIdCardNum(dto.getCertId()));
// dto.setCertId(hideAllIdCardNum(dto.getCertId()));
}
if (Objects.nonNull(dto.getMobile())) {
dto.setMobile(hideAllPhoneNum(dto.getMobile()));
// dto.setMobile(hideAllPhoneNum(dto.getMobile()));
}
}
return dto;
......
......@@ -37,6 +37,10 @@ public class ComProjectAssignServiceImpl extends BaseServiceImpl<ComProjectAssig
private ComBatchService comBatchService;
@Autowired
private ComExpertSpecService comExpertSpecService;
@Autowired
private ComProjectService comProjectService;
@Autowired
private SystemParameterService systemParameterService;
......@@ -183,43 +187,72 @@ public class ComProjectAssignServiceImpl extends BaseServiceImpl<ComProjectAssig
public void updateAssignState(String projectId) {
Integer assignState;
Integer completed;
BigDecimal totalScore = new BigDecimal(0);
BigDecimal averageScore = new BigDecimal(0);
BigDecimal calculateScore = new BigDecimal(0);
BigDecimal technologyScore = new BigDecimal(0);
BigDecimal technologyAverageScore = new BigDecimal(0);
BigDecimal economyScore = new BigDecimal(0);
BigDecimal economyAverageScore = new BigDecimal(0);
List<ComProjectAssignDTO> list = this.getAssignExpertList(projectId);
if (null == list || list.size() == 0) {
completed = 0;
assignState = 0;
} else {
int scoreCount = 0;
int technologyCount = 0;
int economyCount = 0;
int personCount = 0;
for (ComProjectAssignDTO obj : list) {
if (Objects.nonNull(obj.getTotalScore()) && Objects.nonNull(obj.getAuditState()) && obj.getAuditState().equals(2)) {
scoreCount++;
totalScore = totalScore.add(obj.getTotalScore());
if (Objects.nonNull(obj.getAuditState()) && obj.getAuditState().equals(2)) {
personCount++;
if (Objects.nonNull(obj.getTotalScore())) {
if (obj.getExpertType().equals(1)) {
technologyCount++;
technologyScore = technologyScore.add(obj.getTotalScore());
} else {
economyCount++;
economyScore = economyScore.add(obj.getTotalScore());
}
}
}
}
if (scoreCount > 0) {
DecimalFormat df1 = new DecimalFormat("0.00");
averageScore = totalScore.divide(new BigDecimal(scoreCount),2,BigDecimal.ROUND_HALF_UP);
totalScore = new BigDecimal(df1.format(totalScore));
DecimalFormat df1 = new DecimalFormat("0.00");
if (technologyCount > 0) {
technologyAverageScore = technologyScore.divide(new BigDecimal(technologyCount), 2, BigDecimal.ROUND_HALF_UP);
technologyScore = new BigDecimal(df1.format(technologyScore));
}
if (economyCount > 0) {
economyAverageScore = economyScore.divide(new BigDecimal(economyCount), 2, BigDecimal.ROUND_HALF_UP);
economyScore = new BigDecimal(df1.format(economyScore));
}
if (list.size() > scoreCount)
totalScore = technologyScore.add(economyScore);
calculateScore = technologyAverageScore.multiply(new BigDecimal(0.8)).add(economyAverageScore.multiply(new BigDecimal(0.2)));
calculateScore = new BigDecimal(df1.format(calculateScore));
if (list.size() > personCount)
completed = 0;
else
completed = 1;
assignState = 1;
}
this.updateAssignState(projectId, assignState, completed, totalScore, averageScore);
this.updateAssignState(projectId, assignState, completed, totalScore, technologyScore, technologyAverageScore, economyScore, economyAverageScore, calculateScore);
}
public void updateAssignState(String projectId, Integer assignState, Integer completed, BigDecimal totalScore, BigDecimal averageScore) {
public void updateAssignState(String projectId, Integer assignState, Integer completed, BigDecimal totalScore, BigDecimal technologyScore, BigDecimal technologyAverageScore, BigDecimal economyScore, BigDecimal economyAverageScore, BigDecimal calculateScore) {
ComProject comProject = new ComProject();
comProject.setId(projectId);
comProject.setAssignState(assignState);
comProject.setCompleted(completed);
comProject.setTotalScore(totalScore);
comProject.setAverageScore(averageScore);
comProject.setTechnologyScore(technologyScore);
comProject.setTechnologyAverageScore(technologyAverageScore);
comProject.setEconomyScore(economyScore);
comProject.setEconomyAverageScore(economyAverageScore);
comProject.setCalculateScore(calculateScore);
comProject.setUpdated(new Date());
comProjectAssignDAO.updateAssignState(comProject);
comProjectService.update(comProject);
}
public List<ComProjectGroupDTO> getProjectGroupAssignById(String id, String expertId) {
......
......@@ -585,6 +585,7 @@ public class ComProjectServiceImpl extends BaseServiceImpl<ComProjectDAO, ComPro
private void loadPersonInfo(ComProjectDTO dto, ComPersonDTO comPersonDTO) {
dto.setAppPersonName(comPersonDTO.getPersonName());
dto.setCertId(comPersonDTO.getCertId());
dto.setSex(comPersonDTO.getSex());
dto.setBirthday(comPersonDTO.getBirthday());
dto.setNationName(comPersonDTO.getNationName());
......
......@@ -67,16 +67,5 @@
where a.id = #{id} and c.expert_id = #{expertId} and d.id is not null
</select>
<update id="updateAssignState">
update com_project
<set>
assign_state = #{assignState},
completed = #{completed},
total_score = #{totalScore},
average_score = #{averageScore},
updated = #{updated,jdbcType=TIMESTAMP},
</set>
where id = #{id}
</update>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment