diff --git a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/result/HistoryScoreDetailResultDTO.java b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/result/HistoryScoreDetailResultDTO.java index 97a60160b4..35981cc764 100644 --- a/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/result/HistoryScoreDetailResultDTO.java +++ b/epmet-module/data-statistical/data-statistical-client/src/main/java/com/epmet/dto/indexcollect/result/HistoryScoreDetailResultDTO.java @@ -3,7 +3,6 @@ package com.epmet.dto.indexcollect.result; import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; -import javax.validation.constraints.NotBlank; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; @@ -14,8 +13,11 @@ public class HistoryScoreDetailResultDTO implements Serializable { private static final long serialVersionUID = 1L; - public interface Add extends CustomerClientShowGroup {} - public interface Edit extends CustomerClientShowGroup {} + public interface Add extends CustomerClientShowGroup { + } + + public interface Edit extends CustomerClientShowGroup { + } /** * id @@ -54,6 +56,16 @@ public class HistoryScoreDetailResultDTO implements Serializable { @Data public static class Detail implements Serializable { + /** + * id + */ + private String id; + + /** + * screen_py_history_score.id + */ + private String historyScoreId; + /** * 街道组织Id */ diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenPyHistoryScoreController.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenPyHistoryScoreController.java index 80ec8ea225..db203c81c9 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenPyHistoryScoreController.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/controller/ScreenPyHistoryScoreController.java @@ -1,10 +1,23 @@ package com.epmet.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.CustomerTitleHandler; +import com.epmet.commons.tools.utils.poi.excel.handler.ExcelFillCellMergeStrategy; +import com.epmet.commons.tools.utils.poi.excel.handler.FreezeAndFilter; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.indexcollect.form.HistoryScoreComputeFormDTO; import com.epmet.dto.indexcollect.form.HistoryScoreFormDTO; @@ -12,14 +25,23 @@ import com.epmet.dto.indexcollect.form.HistoryScoreListFormDTO; import com.epmet.dto.indexcollect.result.HistoryScoreComputeResultDTO; import com.epmet.dto.indexcollect.result.HistoryScoreDetailResultDTO; import com.epmet.dto.indexcollect.result.HistoryScoreListResultDTO; +import com.epmet.excel.HistoryScoreDetailExcel; +import com.epmet.service.evaluationindex.indexcoll.ScreenPyHistoryScoreDetailService; import com.epmet.service.evaluationindex.indexcoll.ScreenPyHistoryScoreService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.Date; +import java.util.List; + /** * 平阴历史得分主表 * @@ -32,6 +54,8 @@ public class ScreenPyHistoryScoreController { @Autowired private ScreenPyHistoryScoreService screenPyHistoryScoreService; + @Autowired + private ScreenPyHistoryScoreDetailService screenPyHistoryScoreDetailService; @RequestMapping("list") @@ -76,32 +100,39 @@ public class ScreenPyHistoryScoreController { return new Result().ok(screenPyHistoryScoreService.detail(formDTO)); } - /*@PostMapping("export") + @PostMapping("export") public void export(@LoginUser TokenDto tokenDto, @RequestBody HistoryScoreListFormDTO formDTO, HttpServletResponse response) throws IOException { formDTO.setCustomerId(tokenDto.getCustomerId()); formDTO.setUserId(tokenDto.getUserId()); + formDTO.setIsPage(false); ExcelWriter excelWriter = null; formDTO.setPageNo(NumConstant.ONE); - formDTO.setPageSize(NumConstant.TEN_THOUSAND); + formDTO.setPageSize(NumConstant.FIVE_HUNDRED); try { - String fileName = "迁入管理" + DateUtils.format(new Date()) + ".xlsx"; - excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), IcMoveInRecordExcel.class).build(); - WriteSheet writeSheet = EasyExcel.writerSheet("Sheet1").registerWriteHandler(new FreezeAndFilter()).build(); - PageData data = null; - List list = null; + String fileName = "历史得分" + DateUtils.format(new Date()) + ".xlsx"; + excelWriter = EasyExcel.write(ExcelUtils.getOutputStreamForExcel(fileName, response), HistoryScoreDetailExcel.class).build(); + //String title= "11月-12月"; + PageData data = null; + List list = null; do { - data = screenPyHistoryScoreService.list(formDTO); - list = ConvertUtils.sourceToTarget(data.getList(), IcMoveInRecordExcel.class); + data = screenPyHistoryScoreDetailService.selectScoreDetailList(formDTO); + + for (HistoryScoreDetailResultDTO d : data.getList()){ + list = ConvertUtils.sourceToTarget(d.getDetailList(), HistoryScoreDetailExcel.class); + //一跳一条记录一个sheet页 + WriteSheet writeSheet = EasyExcel.writerSheet(d.getTitle()).registerWriteHandler(new FreezeAndFilter()).build(); + //WriteSheet writeSheet = EasyExcel.writerSheet(d.getTitle()).registerWriteHandler(new CustomerTitleHandler(title)).build(); + excelWriter.write(list, writeSheet); + } formDTO.setPageNo(formDTO.getPageNo() + NumConstant.ONE); - excelWriter.write(list, writeSheet); } while (CollectionUtils.isNotEmpty(list) && list.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 result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), e.getMsg()); + Result result = new Result<>().error(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),e.getMsg()); printWriter.write(JSON.toJSONString(result)); printWriter.close(); } catch (Exception e) { @@ -111,7 +142,7 @@ public class ScreenPyHistoryScoreController { excelWriter.finish(); } } - }*/ + } @RequestMapping("computescore") public Result computeScore(@LoginUser TokenDto tokenDto, @RequestBody HistoryScoreComputeFormDTO formDTO) { diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/ScreenPyHistoryScoreDetailDao.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/ScreenPyHistoryScoreDetailDao.java index 50823809c2..0a39d1186f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/ScreenPyHistoryScoreDetailDao.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/dao/evaluationindex/indexcoll/ScreenPyHistoryScoreDetailDao.java @@ -17,10 +17,14 @@ package com.epmet.dao.evaluationindex.indexcoll; /** import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.indexcollect.form.HistoryScoreListFormDTO; +import com.epmet.dto.indexcollect.result.HistoryScoreDetailResultDTO; import com.epmet.entity.evaluationindex.indexcoll.ScreenPyHistoryScoreDetailEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 平阴历史得分明细表 * @@ -31,4 +35,6 @@ public interface ScreenPyHistoryScoreDetailDao extends BaseDao selectScoreDetailList(HistoryScoreListFormDTO formDTO); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/excel/HistoryScoreDetailExcel.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/excel/HistoryScoreDetailExcel.java new file mode 100644 index 0000000000..c4e519cd00 --- /dev/null +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/excel/HistoryScoreDetailExcel.java @@ -0,0 +1,54 @@ +package com.epmet.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.HeadStyle; +import com.alibaba.excel.enums.poi.FillPatternTypeEnum; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 政法能力历史得分-导出 + * + * @author generator generator@elink-cn.com + */ +@HeadStyle(fillPatternType = FillPatternTypeEnum.SOLID_FOREGROUND, fillForegroundColor = 44) +@Data +public class HistoryScoreDetailExcel implements Serializable { + + private static final long serialVersionUID = -12110233388005838L; + @ExcelProperty(value = "下级单位") + @ColumnWidth(15) + private String agencyName; + + @ExcelProperty(value = "网格活跃度") + @ColumnWidth(15) + private BigDecimal wghyd; + + @ExcelProperty(value = "事件赋值得分") + @ColumnWidth(20) + private BigDecimal sjff; + + @ExcelProperty(value = "雪亮工程") + @ColumnWidth(15) + private BigDecimal xlgc; + + @ExcelProperty(value = "日核周调") + @ColumnWidth(15) + private BigDecimal rhzt; + + @ExcelProperty(value = "亮点工作") + @ColumnWidth(15) + private BigDecimal ldgz; + + @ExcelProperty(value = "其他工作") + @ColumnWidth(15) + private BigDecimal qtgz; + + @ExcelProperty(value = "能力得分") + @ColumnWidth(15) + private BigDecimal nldf; + +} diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/ScreenPyHistoryScoreDetailService.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/ScreenPyHistoryScoreDetailService.java index e12ce41e1c..0fea59c676 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/ScreenPyHistoryScoreDetailService.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/ScreenPyHistoryScoreDetailService.java @@ -1,5 +1,11 @@ package com.epmet.service.evaluationindex.indexcoll; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.indexcollect.form.HistoryScoreListFormDTO; +import com.epmet.dto.indexcollect.result.HistoryScoreDetailResultDTO; + +import java.util.List; + /** * 平阴历史得分明细表 * @@ -7,4 +13,6 @@ package com.epmet.service.evaluationindex.indexcoll; */ public interface ScreenPyHistoryScoreDetailService { + PageData selectScoreDetailList(HistoryScoreListFormDTO formDTO); + } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/ScreenPyHistoryScoreDetailServiceImpl.java b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/ScreenPyHistoryScoreDetailServiceImpl.java index ace200d468..aab939444f 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/ScreenPyHistoryScoreDetailServiceImpl.java +++ b/epmet-module/data-statistical/data-statistical-server/src/main/java/com/epmet/service/evaluationindex/indexcoll/impl/ScreenPyHistoryScoreDetailServiceImpl.java @@ -2,14 +2,22 @@ package com.epmet.service.evaluationindex.indexcoll.impl; import com.epmet.commons.dynamic.datasource.annotation.DataSource; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.page.PageData; import com.epmet.constant.DataSourceConstant; import com.epmet.dao.evaluationindex.indexcoll.ScreenPyHistoryScoreDetailDao; +import com.epmet.dto.indexcollect.form.HistoryScoreListFormDTO; +import com.epmet.dto.indexcollect.result.HistoryScoreDetailResultDTO; +import com.epmet.dto.indexcollect.result.HistoryScoreListResultDTO; import com.epmet.entity.evaluationindex.indexcoll.ScreenPyHistoryScoreDetailEntity; import com.epmet.service.evaluationindex.indexcoll.ScreenPyHistoryScoreDetailService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * 平阴历史得分明细表 * @@ -17,11 +25,16 @@ import org.springframework.stereotype.Service; */ @Slf4j @Service -@DataSource(DataSourceConstant.EVALUATION_INDEX_READ) +@DataSource(DataSourceConstant.EVALUATION_INDEX) public class ScreenPyHistoryScoreDetailServiceImpl extends BaseServiceImpl implements ScreenPyHistoryScoreDetailService { - @Autowired - private ScreenPyHistoryScoreDetailDao screenPyHistoryScoreDetailDao; + @Override + public PageData selectScoreDetailList(HistoryScoreListFormDTO formDTO) { + PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage()); + List list = baseDao.selectScoreDetailList(formDTO); + PageInfo pageInfo = new PageInfo<>(list); + return new PageData<>(list, pageInfo.getTotal()); + } } diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/ScreenPyHistoryScoreDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/ScreenPyHistoryScoreDao.xml index 055e9672d6..1d1e0c7276 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/ScreenPyHistoryScoreDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/ScreenPyHistoryScoreDao.xml @@ -21,10 +21,10 @@ AND a.title LIKE concat('%', #{title}, '%') - AND a.start_time >= #{startTime} + AND DATE_FORMAT(a.start_time,'%Y-%m-%d') >= #{startTime} - + ORDER BY a.start_time DESC diff --git a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/ScreenPyHistoryScoreDetailDao.xml b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/ScreenPyHistoryScoreDetailDao.xml index fa2d907120..2f7462a6d4 100644 --- a/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/ScreenPyHistoryScoreDetailDao.xml +++ b/epmet-module/data-statistical/data-statistical-server/src/main/resources/mapper/evaluationindex/indexcoll/ScreenPyHistoryScoreDetailDao.xml @@ -15,4 +15,49 @@ AND del_flag = '0' + + + + + + + +