Browse Source

修改统计逻辑

dev
HAHA 3 years ago
parent
commit
8ea57b61ef
  1. 5
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberPointDTO.java
  2. 3
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberPointListFormDTO.java
  3. 31
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointListResultDTO.java
  4. 6
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPointController.java
  5. 2
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPointDao.java
  6. 2
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberEntity.java
  7. 58
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberPointExcel.java
  8. 2
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPointService.java
  9. 52
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPointServiceImpl.java
  10. 11
      epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPointDao.xml

5
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/IcPartyMemberPointDTO.java

@ -81,6 +81,11 @@ public class IcPartyMemberPointDTO implements Serializable {
*/
private String warnOptions;
/**
* 总分
*/
private Integer totalScore;
/**
* 删除标识0.未删除 1.已删除
*/

3
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberPointListFormDTO.java

@ -1,5 +1,6 @@
package com.epmet.resi.partymember.dto.partymember.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -9,7 +10,7 @@ import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PartyMemberPointListFormDTO implements Serializable {
public class PartyMemberPointListFormDTO extends PageFormDTO implements Serializable {
private static final long serialVersionUID = 5659445492756209830L;

31
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointListResultDTO.java

@ -43,21 +43,41 @@ public class PartyMemberPointListResultDTO implements Serializable {
*/
private Integer basePoint;
/**
* 基础选项
*/
private String baseOptions;
/**
* 民主评议积分分值
*/
private Integer reviewPoint;
/**
* 民主评议选项
*/
private String reviewOptions;
/**
* 激励积分分值
*/
private Integer inspirePoint;
/**
* 激励积分选项
*/
private String inspireOptions;
/**
* 警示扣分分值
*/
private Integer warnPoint;
/**
* 警示扣分选项
*/
private String warnOptions;
/**
* 备注
*/
@ -68,4 +88,15 @@ public class PartyMemberPointListResultDTO implements Serializable {
*/
private String year;
/**
* 季度
*/
private Integer quarter;
/**
* id
*/
private String partyMemberId;
}

6
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPointController.java

@ -115,7 +115,7 @@ public class IcPartyMemberPointController {
* @date 2022/5/24 14:26
*/
@PostMapping("export")
public void export(@RequestBody PartyMemberExportFormDTO formDto,@LoginUser TokenDto tokenDto, HttpServletResponse response) throws Exception {
public void export(@RequestBody PartyMemberPointListFormDTO formDto, @LoginUser TokenDto tokenDto, HttpServletResponse response) throws Exception {
formDto.setIsPage(false);
formDto.setPageSize(NumConstant.TEN_THOUSAND);
@ -126,10 +126,10 @@ public class IcPartyMemberPointController {
try {
String fileName = "lhjf.xlsx";
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcPartyMemberPointExcel.class).build();
PageData<PartyMemberPointExportResultDTO> page = null;
PageData<PartyMemberPointListResultDTO> page = null;
WriteSheet writeSheet = EasyExcel.writerSheet("量化积分").registerWriteHandler(new FreezeAndFilter()).build();
do {
page = icPartyMemberPointService.getExport(formDto,tokenDto.getCustomerId());
page = icPartyMemberPointService.getExport(formDto, tokenDto);
List<IcPartyMemberPointExcel> list = ConvertUtils.sourceToTarget(page.getList(), IcPartyMemberPointExcel.class);
list.forEach(item -> {
item.setIndex(i.getAndIncrement());

2
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPointDao.java

@ -40,4 +40,6 @@ public interface IcPartyMemberPointDao extends BaseDao<IcPartyMemberPointEntity>
List<PartyMemberPointExportResultDTO> getExport(@Param("form") PartyMemberExportFormDTO form,
@Param("customerId") String customerId);
void updateMember(@Param("partyMemberId") String partyMemberId, @Param("totalScore") Integer totalScore);
}

2
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberEntity.java

@ -121,7 +121,7 @@ public class IcPartyMemberEntity extends BaseEpmetEntity {
/**
* 预留字段1
*/
private String field1;
private Integer totalScore;
/**
* 预留字段2

58
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberPointExcel.java

@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.annotation.Excel;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import kotlin.ExperimentalUnsignedTypes;
import lombok.Data;
import javax.validation.Valid;
@ -32,46 +33,75 @@ public class IcPartyMemberPointExcel {
@ExcelProperty(value = "党员ID",order = 2)
private String partyMemberId;
/**
* 所属党组织
*/
@ColumnWidth(20)
@ExcelProperty(value = "年份",order = 3)
private String year;
@ExcelProperty(value = "所属党组织",order = 3)
private String partyOrg;
/**
* 姓名
*/
@ColumnWidth(20)
@ExcelProperty(value = "姓名",order = 4)
private String name;
/**
* 手机号
*/
@ColumnWidth(20)
@ExcelProperty(value = "季度",order = 4)
@ExcelProperty(value = "手机号",order = 5)
private String mobile;
/**
* 身份证号
*/
@ColumnWidth(20)
@ExcelProperty(value = "身份证号",order = 6)
private String idCard;
@ColumnWidth(20)
@ExcelProperty(value = "年份",order = 7)
private String year;
@ExcelIgnore
private String quarter;
@ColumnWidth(20)
@ExcelProperty(value = "基础积分分值",order = 5)
@ExcelProperty(value = "基础积分分值",order = 8)
private Integer basePoint;
@ColumnWidth(20)
@ExcelProperty(value = "基础积分选项 英文逗号隔开",order = 6)
@ExcelIgnore
private String baseOptions;
@ColumnWidth(20)
@ExcelProperty(value = "民主评议积分分值",order = 7)
@ExcelProperty(value = "民主评议积分分值",order = 9)
private Integer reviewPoint;
@ColumnWidth(20)
@ExcelProperty(value = "民主评议积分选项",order = 8)
@ExcelIgnore
private String reviewOptions;
@ColumnWidth(20)
@ExcelProperty(value = "激励积分分值",order = 9)
@ExcelProperty(value = "激励积分分值",order = 10)
private Integer inspirePoint;
@ColumnWidth(20)
@ExcelProperty(value = "激励积分选项",order = 10)
@ExcelIgnore
private String inspireOptions;
@ColumnWidth(20)
@ExcelProperty(value = "警示扣分分值",order = 11)
private Integer warnPoint;
@ColumnWidth(20)
@ExcelProperty(value = "警示扣分选项",order = 12)
@ExcelIgnore
private String warnOptions;
@ColumnWidth(20)
@ExcelProperty(value = "总分" ,order = 12)
private Integer totalScore;
@ExcelIgnore
private Integer delFlag;

2
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPointService.java

@ -113,5 +113,5 @@ public interface IcPartyMemberPointService extends BaseService<IcPartyMemberPoin
* @author LZN
* @date 2022/5/24 14:26
*/
PageData<PartyMemberPointExportResultDTO> getExport(PartyMemberExportFormDTO form,String customerId);
PageData<PartyMemberPointListResultDTO> getExport(PartyMemberPointListFormDTO form, TokenDto tokenDto);
}

52
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPointServiceImpl.java

@ -81,6 +81,13 @@ public class IcPartyMemberPointServiceImpl extends BaseServiceImpl<IcPartyMember
@Transactional(rollbackFor = Exception.class)
public void save(IcPartyMemberPointDTO dto) {
IcPartyMemberPointEntity entity = ConvertUtils.sourceToTarget(dto, IcPartyMemberPointEntity.class);
dto.setTotalScore(dto.getBasePoint() + dto.getInspirePoint() + dto.getReviewPoint());
if (dto.getWarnPoint() > 0) {
dto.setTotalScore(dto.getTotalScore() - dto.getWarnPoint());
} else {
dto.setTotalScore(dto.getTotalScore() + dto.getWarnPoint());
}
baseDao.updateMember(dto.getPartyMemberId(), dto.getTotalScore());
insert(entity);
}
@ -111,36 +118,9 @@ public class IcPartyMemberPointServiceImpl extends BaseServiceImpl<IcPartyMember
public List<PartyMemberPointListResultDTO> getList(PartyMemberPointListFormDTO form, TokenDto tokenDto) {
List<PartyMemberPointListResultDTO> dto = baseDao.getList(form.getIdCard(), form.getMobile(), form.getName(),
form.getOrgId(), form.getYear(), tokenDto.getCustomerId());
List<PartyMemberPointListCountDTO> count = baseDao.getListCount(form.getYear(), tokenDto.getCustomerId());
// 处理统计的平均值
for (int i = 0; i < dto.size(); i++) {
// 基础积分分值平均值
if (dto.get(i).getBasePoint() != null && count.get(i).getBasePointCount() != NumConstant.ZERO) {
dto.get(i).setBasePoint(dto.get(i).getBasePoint() / count.get(i).getBasePointCount());
} else {
dto.get(i).setBasePoint(NumConstant.ZERO);
}
// 民主评议积分分值
if (dto.get(i).getInspirePoint() != null && count.get(i).getInspirePointCount() != NumConstant.ZERO) {
dto.get(i).setInspirePoint(dto.get(i).getInspirePoint() / count.get(i).getInspirePointCount());
} else {
dto.get(i).setInspirePoint(NumConstant.ZERO);
}
// 激励积分分值
if (dto.get(i).getReviewPoint() != null && count.get(i).getReviewPointCount() != NumConstant.ZERO) {
dto.get(i).setReviewPoint(dto.get(i).getReviewPoint() / count.get(i).getReviewPointCount());
} else {
dto.get(i).setReviewPoint(NumConstant.ZERO);
}
// 警示扣分分值
if (dto.get(i).getWarnPoint() != null && count.get(i).getWarnPointCount() != NumConstant.ZERO) {
dto.get(i).setWarnPoint(dto.get(i).getWarnPoint() / count.get(i).getWarnPointCount());
} else {
dto.get(i).setWarnPoint(NumConstant.ZERO);
}
// 总分
dto.get(i).setTotalScore(dto.get(i).getBasePoint() + dto.get(i).getInspirePoint() + dto.get(i).getReviewPoint() + dto.get(i).getWarnPoint());
}
dto.forEach(item -> {
item.setTotalScore(item.getTotalScore() / item.getQuarter());
});
return dto;
}
@ -167,11 +147,15 @@ public class IcPartyMemberPointServiceImpl extends BaseServiceImpl<IcPartyMember
* @date 2022/5/24 14:26
*/
@Override
public PageData<PartyMemberPointExportResultDTO> getExport(PartyMemberExportFormDTO form,String customerId) {
public PageData<PartyMemberPointListResultDTO> getExport(PartyMemberPointListFormDTO form, TokenDto tokenDto) {
PageHelper.startPage(form.getPageNo(), form.getPageSize(), form.getIsPage());
List<PartyMemberPointExportResultDTO> dto = baseDao.getExport(form,customerId);
PageInfo<PartyMemberPointExportResultDTO> pageInfo = new PageInfo<>(dto);
List<PartyMemberPointListResultDTO> dto = baseDao.getList(form.getIdCard(), form.getMobile(), form.getName(),
form.getOrgId(), form.getYear(), tokenDto.getCustomerId());
// 算总分
dto.forEach(item -> {
item.setTotalScore(item.getTotalScore() / item.getQuarter());
});
PageInfo<PartyMemberPointListResultDTO> pageInfo = new PageInfo<>(dto);
return new PageData<>(dto, pageInfo.getTotal());
}

11
epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPointDao.xml

@ -2,17 +2,26 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.modules.partymember.dao.IcPartyMemberPointDao">
<update id="updateMember">
UPDATE ic_party_member
SET TOTAL_SCORE = #{totalScore}
WHERE
id = #{partyMemberId}
</update>
<select id="getList"
resultType="com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointListResultDTO">
SELECT
a.year,
a.PARTY_MEMBER_ID,
sum( a.total_score ) as totalScore,
count(a.QUARTER) as quarter,
c.PARTY_ORG_NAME as partyOrg,
u.NAME,
u.MOBILE,
u.ID_CARD,
u.REMARK,
a.year,
sum( a.BASE_POINT ) AS BasePoint,
sum( a.REVIEW_POINT ) AS reviewPoint,
sum( a.INSPIRE_POINT ) AS inspirePoint,

Loading…
Cancel
Save