Browse Source

量化积分统计导出

dev
HAHA 3 years ago
parent
commit
dad0cbbb3b
  1. 48
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberExportFormDTO.java
  2. 72
      epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointExportResultDTO.java
  3. 76
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/IcPartyMemberPointController.java
  4. 5
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/IcPartyMemberPointDao.java
  5. 15
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberPointEntity.java
  6. 57
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/excel/IcPartyMemberPointExcel.java
  7. 12
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/IcPartyMemberPointService.java
  8. 21
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/IcPartyMemberPointServiceImpl.java
  9. 47
      epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/IcPartyMemberPointDao.xml

48
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/form/PartyMemberExportFormDTO.java

@ -0,0 +1,48 @@
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;
import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PartyMemberExportFormDTO extends PageFormDTO implements Serializable {
private static final long serialVersionUID = -1193821690622467766L;
/**
* 客户id
*/
private String customerId;
/**
* 所属党组织id
*/
private String orgId;
/**
* 姓名
*/
private String name;
/**
* 手机号
*/
private String mobile;
/**
* 身份证号
*/
private String idCard;
/**
* 评分年度
*/
private String year;
}

72
epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/dto/partymember/result/PartyMemberPointExportResultDTO.java

@ -0,0 +1,72 @@
package com.epmet.resi.partymember.dto.partymember.result;
import lombok.Data;
import java.io.Serializable;
@Data
public class PartyMemberPointExportResultDTO implements Serializable {
private static final long serialVersionUID = -3692594790475696502L;
/**
* 党员id
*/
private String partyMemberId;
/**
*
*/
private String year;
/**
* 季度
*/
private String quarter;
/**
* 基础积分分值
*/
private Integer basePoint;
/**
* 基础积分选项
*/
private String baseOptions;
/**
* 民主评议积分分值
*/
private Integer reviewPoint;
/**
* 民主评议积分选项
*/
private String reviewOptions;
/**
* 激励积分分值
*/
private Integer inspirePoint;
/**
* 激励积分选项
*/
private String inspireOptions;
/**
* 警示扣分分值
*/
private Integer warnPoint;
/**
* 警示扣分选项
*/
private String warnOptions;
/**
* 总分
*/
private Integer totalScore;
}

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

@ -1,30 +1,54 @@
package com.epmet.modules.partymember.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter;
import com.epmet.commons.tools.validator.AssertUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.IcFollowUpRecordDTO;
import com.epmet.dto.result.IcMoveInListResultDTO;
import com.epmet.dto.result.IcVaccineListResultDTO;
import com.epmet.modules.partymember.entity.IcPartyMemberPointEntity;
import com.epmet.modules.partymember.excel.IcPartyMemberExcel;
import com.epmet.modules.partymember.excel.IcPartyMemberPointExcel;
import com.epmet.modules.partymember.service.IcPartyMemberPointService;
import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPointDTO;
import com.epmet.resi.partymember.dto.partymember.PartyMemberPointListCountDTO;
import com.epmet.resi.partymember.dto.partymember.form.PartyMemberExportFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.PartyMemberPointEchoFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.PartyMemberPointListFormDTO;
import com.epmet.resi.partymember.dto.partymember.result.IcPartyMemberResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointEchoResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointExportResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointListResultDTO;
import jdk.nashorn.internal.parser.Token;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
/**
@ -35,6 +59,7 @@ import java.util.Map;
*/
@RestController
@RequestMapping("icPartyMemberPoint")
@Slf4j
public class IcPartyMemberPointController {
@Autowired
@ -80,10 +105,53 @@ public class IcPartyMemberPointController {
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<IcPartyMemberPointDTO> list = icPartyMemberPointService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, IcPartyMemberPointExcel.class);
/**
* 量化积分统计导出
*
* @param formDto
* @param response
* @return void
* @author LZN
* @date 2022/5/24 14:26
*/
@PostMapping("export")
public void export(@RequestBody PartyMemberExportFormDTO formDto, HttpServletResponse response) throws Exception {
formDto.setIsPage(false);
formDto.setPageSize(NumConstant.TEN_THOUSAND);
ExcelWriter excelWriter = null;
AtomicInteger i = new AtomicInteger(1);
try {
String fileName = "lhjf.xlsx";
excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcPartyMemberPointExcel.class).build();
PageData<PartyMemberPointExportResultDTO> page = null;
WriteSheet writeSheet = EasyExcel.writerSheet("量化积分").registerWriteHandler(new FreezeAndFilter()).build();
do {
page = icPartyMemberPointService.getExport(formDto);
List<IcPartyMemberPointExcel> list = ConvertUtils.sourceToTarget(page.getList(), IcPartyMemberPointExcel.class);
list.forEach(item -> {
item.setIndex(i.getAndIncrement());
});
excelWriter.write(list, writeSheet);
formDto.setPageNo(formDto.getPageNo() + NumConstant.ONE);
} while (CollectionUtils.isNotEmpty(page.getList()) && page.getList().size() == formDto.getPageSize());
} catch (EpmetException e) {
response.reset();
response.setCharacterEncoding("UTF-8");
response.setHeader("content-type", "application/json; charset=UTF-8");
PrintWriter printWriter = response.getWriter();
Result<Object> result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg());
printWriter.write(JSON.toJSONString(result));
printWriter.close();
} catch (Exception e) {
log.error("export exception", e);
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
/**

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

@ -2,9 +2,12 @@ package com.epmet.modules.partymember.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.commons.tools.page.PageData;
import com.epmet.modules.partymember.entity.IcPartyMemberPointEntity;
import com.epmet.resi.partymember.dto.partymember.PartyMemberPointListCountDTO;
import com.epmet.resi.partymember.dto.partymember.form.PartyMemberExportFormDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointEchoResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointExportResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointListResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -34,4 +37,6 @@ public interface IcPartyMemberPointDao extends BaseDao<IcPartyMemberPointEntity>
@Param("quarter") String quarter,
@Param("year") String year,
@Param("customerId") String customerId);
List<PartyMemberPointExportResultDTO> getExport(@Param("form") PartyMemberExportFormDTO form);
}

15
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/entity/IcPartyMemberPointEntity.java

@ -1,5 +1,7 @@
package com.epmet.modules.partymember.entity;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
@ -24,66 +26,79 @@ public class IcPartyMemberPointEntity extends BaseEpmetEntity {
/**
* 客户Id (customer.id)
*/
@ExcelIgnore
private String customerId;
/**
* 党员ID
*/
@ExcelIgnore
private String partyMemberId;
/**
*
*/
@ExcelProperty(index = 1,value = "年份")
private String year;
/**
* 季度
*/
@ExcelProperty(index = 2,value = "季度")
private String quarter;
/**
* 基础积分分值
*/
@ExcelProperty(index = 3,value = "基础积分分值")
private Integer basePoint;
/**
* 基础积分选项 英文逗号隔开
*/
@ExcelIgnore
private String baseOptions;
/**
* 民主评议积分分值
*/
@ExcelProperty(index = 4,value = "民主评议积分分值")
private Integer reviewPoint;
/**
* 民主评议积分选项
*/
@ExcelIgnore
private String reviewOptions;
/**
* 激励积分分值
*/
@ExcelProperty(index = 5,value = "激励积分分值")
private Integer inspirePoint;
/**
* 激励积分选项
*/
@ExcelIgnore
private String inspireOptions;
/**
* 警示扣分分值
*/
@ExcelProperty(index = 6,value = "警示扣分分值")
private Integer warnPoint;
/**
* 警示扣分选项
*/
@ExcelIgnore
private String warnOptions;
/**
* 总分
*/
@ExcelProperty(index = 7,value = "总分")
private Integer totalScore;
}

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

@ -1,8 +1,12 @@
package com.epmet.modules.partymember.excel;
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 lombok.Data;
import javax.validation.Valid;
import java.util.Date;
/**
@ -14,61 +18,76 @@ import java.util.Date;
@Data
public class IcPartyMemberPointExcel {
@Excel(name = "唯一标识")
@ColumnWidth(10)
@ExcelProperty(value = "序号",order = 1)
private Integer index;
@ExcelIgnore
private String id;
@Excel(name = "客户Id (customer.id)")
@ExcelIgnore
private String customerId;
@Excel(name = "党员ID")
@ColumnWidth(20)
@ExcelProperty(value = "党员ID",order = 2)
private String partyMemberId;
@Excel(name = "年")
@ColumnWidth(20)
@ExcelProperty(value = "年份",order = 3)
private String year;
@Excel(name = "季度")
@ColumnWidth(20)
@ExcelProperty(value = "季度",order = 4)
private String quarter;
@Excel(name = "基础积分分值")
@ColumnWidth(20)
@ExcelProperty(value = "基础积分分值",order = 5)
private Integer basePoint;
@Excel(name = "基础积分选项 英文逗号隔开")
@ColumnWidth(20)
@ExcelProperty(value = "基础积分选项 英文逗号隔开",order = 6)
private String baseOptions;
@Excel(name = "民主评议积分分值")
@ColumnWidth(20)
@ExcelProperty(value = "民主评议积分分值",order = 7)
private Integer reviewPoint;
@Excel(name = "民主评议积分选项")
@ColumnWidth(20)
@ExcelProperty(value = "民主评议积分选项",order = 8)
private String reviewOptions;
@Excel(name = "激励积分分值")
@ColumnWidth(20)
@ExcelProperty(value = "激励积分分值",order = 9)
private Integer inspirePoint;
@Excel(name = "激励积分选项")
@ColumnWidth(20)
@ExcelProperty(value = "激励积分选项",order = 10)
private String inspireOptions;
@Excel(name = "警示扣分分值")
@ColumnWidth(20)
@ExcelProperty(value = "警示扣分分值",order = 11)
private Integer warnPoint;
@Excel(name = "警示扣分选项")
@ColumnWidth(20)
@ExcelProperty(value = "警示扣分选项",order = 12)
private String warnOptions;
@Excel(name = "删除标识:0.未删除 1.已删除")
@ExcelIgnore
private Integer delFlag;
@Excel(name = "乐观锁")
@ExcelIgnore
private Integer revision;
@Excel(name = "创建人")
@ExcelIgnore
private String createdBy;
@Excel(name = "创建时间")
@ExcelIgnore
private Date createdTime;
@Excel(name = "更新人")
@ExcelIgnore
private String updatedBy;
@Excel(name = "更新时间")
@ExcelIgnore
private Date updatedTime;

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

@ -6,9 +6,11 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.modules.partymember.entity.IcPartyMemberPointEntity;
import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPointDTO;
import com.epmet.resi.partymember.dto.partymember.PartyMemberPointListCountDTO;
import com.epmet.resi.partymember.dto.partymember.form.PartyMemberExportFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.PartyMemberPointEchoFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.PartyMemberPointListFormDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointEchoResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointExportResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointListResultDTO;
@ -102,4 +104,14 @@ public interface IcPartyMemberPointService extends BaseService<IcPartyMemberPoin
* @date 2022/5/18 18:18
*/
List<PartyMemberPointEchoResultDTO> getEchoPartyMemberPoint(PartyMemberPointEchoFormDTO form, String customerId);
/**
* 量化积分统计导出
*
* @param form
* @return com.epmet.commons.tools.page.PageData<com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointExportResultDTO>
* @author LZN
* @date 2022/5/24 14:26
*/
PageData<PartyMemberPointExportResultDTO> getExport(PartyMemberExportFormDTO form);
}

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

@ -15,10 +15,15 @@ import com.epmet.modules.partymember.redis.IcPartyMemberPointRedis;
import com.epmet.modules.partymember.service.IcPartyMemberPointService;
import com.epmet.resi.partymember.dto.partymember.IcPartyMemberPointDTO;
import com.epmet.resi.partymember.dto.partymember.PartyMemberPointListCountDTO;
import com.epmet.resi.partymember.dto.partymember.form.PartyMemberExportFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.PartyMemberPointEchoFormDTO;
import com.epmet.resi.partymember.dto.partymember.form.PartyMemberPointListFormDTO;
import com.epmet.resi.partymember.dto.partymember.result.IcPartyMemberResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointEchoResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointExportResultDTO;
import com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointListResultDTO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import jdk.nashorn.internal.parser.Token;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -153,5 +158,21 @@ public class IcPartyMemberPointServiceImpl extends BaseServiceImpl<IcPartyMember
return dto;
}
/**
* 量化积分统计导出
*
* @param form
* @return com.epmet.commons.tools.page.PageData<com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointExportResultDTO>
* @author LZN
* @date 2022/5/24 14:26
*/
@Override
public PageData<PartyMemberPointExportResultDTO> getExport(PartyMemberExportFormDTO form) {
PageHelper.startPage(form.getPageNo(), form.getPageSize(), form.getIsPage());
List<PartyMemberPointExportResultDTO> list = baseDao.getExport(form);
PageInfo<PartyMemberPointExportResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
}

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

@ -97,6 +97,53 @@
AND CUSTOMER_ID = #{customerId}
order by CREATED_TIME
</select>
<select id="getExport"
resultType="com.epmet.resi.partymember.dto.partymember.result.PartyMemberPointExportResultDTO">
SELECT
a.year,
a.QUARTER,
a.BASE_OPTIONS,
a.REVIEW_OPTIONS,
a.INSPIRE_OPTIONS,
a.WARN_OPTIONS,
a.TOTAL_SCORE,
a.PARTY_MEMBER_ID,
a.BASE_POINT,
a.REVIEW_POINT,
a.INSPIRE_POINT,
a.WARN_POINT
FROM
ic_party_member u
LEFT JOIN ic_party_member_point a ON a.PARTY_MEMBER_ID = u.id
AND a.DEL_FLAG = '0'
LEFT JOIN ic_party_org c ON c.id = u.sszb
AND c.DEL_FLAG = '0'
<where>
u.DEL_FLAG = '0'
<if test="form.name != null and form.name != ''">
AND u.NAME = #{form.name}
</if>
<if test="form.mobile != null and form.mobile != ''">
AND u.MOBILE = #{form.mobile}
</if>
<if test="form.idCard != null and form.idCard != ''">
AND u.ID_CARD = #{form.idCard}
</if>
<if test="form.year != null and form.year != ''">
AND a.YEAR = #{form.year}
</if>
<if test="form.orgId != null and form.orgId != ''">
AND c.id = #{form.orgId}
</if>
</where>
GROUP BY u.ID
ORDER BY
a.YEAR DESC,
u.sszb ASC,
a.total_score ASC,
a.CREATED_TIME
</select>
</mapper>
Loading…
Cancel
Save