diff --git a/casic-service-person/pom.xml b/casic-service-person/pom.xml index c9f86cc..0f992bb 100644 --- a/casic-service-person/pom.xml +++ b/casic-service-person/pom.xml @@ -44,7 +44,11 @@ 3.17 - + + com.casic + casic-export-support + ${admin.version} + diff --git a/casic-service-person/pom.xml b/casic-service-person/pom.xml index c9f86cc..0f992bb 100644 --- a/casic-service-person/pom.xml +++ b/casic-service-person/pom.xml @@ -44,7 +44,11 @@ 3.17 - + + com.casic + casic-export-support + ${admin.version} + diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/controller/PersonAttendanceLogController.java b/casic-service-person/src/main/java/com/casic/missiles/modular/system/controller/PersonAttendanceLogController.java index 245e67f..dabd72a 100644 --- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/controller/PersonAttendanceLogController.java +++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/controller/PersonAttendanceLogController.java @@ -3,14 +3,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dto.PersonAttendDTO; +import com.casic.missiles.modular.system.enums.PersonRecordExportEnum; import com.casic.missiles.modular.system.model.PersonAttendanceLog; import com.casic.missiles.modular.system.service.IPersonAttendanceLogService; +import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; @@ -19,6 +22,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; +import java.util.stream.Collectors; import static com.casic.missiles.modular.constant.PersonConstant.*; @@ -30,7 +34,7 @@ */ @Controller @RequestMapping("/staff") -public class PersonAttendanceLogController extends BaseController { +public class PersonAttendanceLogController extends ExportController { @Autowired @@ -44,22 +48,44 @@ @ResponseBody public Object attendanceList(String keywords, String startTime, String endTime) { Page page = new PageFactory().defaultPage(); + page.setRecords(listPage(page, keywords, startTime, endTime)); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 获取作业管理分页列表 + */ + @SneakyThrows + @RequestMapping(value = "/attendance/export") + @ResponseBody + public void export(String keywords, String startTime, String endTime) { + Page page = new PageFactory().defaultPage(); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + exportExcel(PersonRecordExportEnum.PERSON_JOB_RECORD, listPage(page, keywords, startTime, endTime).stream().map(personAttendDTO -> (Object) personAttendDTO).collect(Collectors.toList())); + } + + /** + * 考勤记录分页读取 + * + * @param page 分页参数 + * @param keywords 关键字 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return + */ + private List listPage(Page page, String keywords, String startTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); - DataScope scope = null; - if(ToolUtil.isNotEmpty(startTime)){ - query.ge(CREATE_TIME,startTime); + if (ToolUtil.isNotEmpty(startTime)) { + query.ge(CREATE_TIME, startTime); } - if(ToolUtil.isNotEmpty(endTime)){ - query.le(CREATE_TIME,endTime); + if (ToolUtil.isNotEmpty(endTime)) { + query.le(CREATE_TIME, endTime); } if (ToolUtil.isNotEmpty(keywords)) { query.andNew().like(NAME, keywords).or().eq(ID_CARD, keywords).or().eq(TEL, keywords); } - - - List personAttendDTOS = personAttendanceLogService.selectDataScopePage(scope, page, query); - page.setRecords(personAttendDTOS); - return ResponseData.success(super.packForBT(page)); + return personAttendanceLogService.selectDataScopePage(null, page, query); } /** diff --git a/casic-service-person/pom.xml b/casic-service-person/pom.xml index c9f86cc..0f992bb 100644 --- a/casic-service-person/pom.xml +++ b/casic-service-person/pom.xml @@ -44,7 +44,11 @@ 3.17 - + + com.casic + casic-export-support + ${admin.version} + diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/controller/PersonAttendanceLogController.java b/casic-service-person/src/main/java/com/casic/missiles/modular/system/controller/PersonAttendanceLogController.java index 245e67f..dabd72a 100644 --- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/controller/PersonAttendanceLogController.java +++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/controller/PersonAttendanceLogController.java @@ -3,14 +3,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dto.PersonAttendDTO; +import com.casic.missiles.modular.system.enums.PersonRecordExportEnum; import com.casic.missiles.modular.system.model.PersonAttendanceLog; import com.casic.missiles.modular.system.service.IPersonAttendanceLogService; +import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; @@ -19,6 +22,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; +import java.util.stream.Collectors; import static com.casic.missiles.modular.constant.PersonConstant.*; @@ -30,7 +34,7 @@ */ @Controller @RequestMapping("/staff") -public class PersonAttendanceLogController extends BaseController { +public class PersonAttendanceLogController extends ExportController { @Autowired @@ -44,22 +48,44 @@ @ResponseBody public Object attendanceList(String keywords, String startTime, String endTime) { Page page = new PageFactory().defaultPage(); + page.setRecords(listPage(page, keywords, startTime, endTime)); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 获取作业管理分页列表 + */ + @SneakyThrows + @RequestMapping(value = "/attendance/export") + @ResponseBody + public void export(String keywords, String startTime, String endTime) { + Page page = new PageFactory().defaultPage(); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + exportExcel(PersonRecordExportEnum.PERSON_JOB_RECORD, listPage(page, keywords, startTime, endTime).stream().map(personAttendDTO -> (Object) personAttendDTO).collect(Collectors.toList())); + } + + /** + * 考勤记录分页读取 + * + * @param page 分页参数 + * @param keywords 关键字 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return + */ + private List listPage(Page page, String keywords, String startTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); - DataScope scope = null; - if(ToolUtil.isNotEmpty(startTime)){ - query.ge(CREATE_TIME,startTime); + if (ToolUtil.isNotEmpty(startTime)) { + query.ge(CREATE_TIME, startTime); } - if(ToolUtil.isNotEmpty(endTime)){ - query.le(CREATE_TIME,endTime); + if (ToolUtil.isNotEmpty(endTime)) { + query.le(CREATE_TIME, endTime); } if (ToolUtil.isNotEmpty(keywords)) { query.andNew().like(NAME, keywords).or().eq(ID_CARD, keywords).or().eq(TEL, keywords); } - - - List personAttendDTOS = personAttendanceLogService.selectDataScopePage(scope, page, query); - page.setRecords(personAttendDTOS); - return ResponseData.success(super.packForBT(page)); + return personAttendanceLogService.selectDataScopePage(null, page, query); } /** diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/enums/PersonRecordExportEnum.java b/casic-service-person/src/main/java/com/casic/missiles/modular/system/enums/PersonRecordExportEnum.java new file mode 100644 index 0000000..97f6977 --- /dev/null +++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/enums/PersonRecordExportEnum.java @@ -0,0 +1,67 @@ +package com.casic.missiles.modular.system.enums; + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 人员出勤记录导出配置 + * @author lwh + */ +public enum PersonRecordExportEnum implements ExportExcelHeaderEnum { + /** + * 车辆作业导出配置 + */ + PERSON_JOB_RECORD("person.xlsx", "人员出勤记录导出配置", new HashMap() {{ + this.put("姓名", (short) 6000); + this.put("性别", (short) 9000); + this.put("身份证号", (short) 6000); + this.put("类型", (short) 7000); + this.put("岗位", (short) 7000); + this.put("打卡日期", (short) 7000); + this.put("打卡时间", (short) 7000); + }}, new ArrayList
() {{ + this.add(new Header("姓名", "name")); + this.add(new Header("性别", "sexName")); + this.add(new Header("身份证号", "idcard")); + this.add(new Header("类型", "typeName")); + this.add(new Header("岗位", "postName")); + this.add(new Header("打卡日期", "hireDate")); + this.add(new Header("打卡时间", "onJobTime")); + }}); + private String fileName; + private String description; + private Map customColumnStyle; + private List
headers; + + PersonRecordExportEnum(String fileName, String description, Map customColumnStyle, List
headers) { + this.fileName = fileName; + this.description = description; + this.customColumnStyle = customColumnStyle; + this.headers = headers; + } + + @Override + public List
getHeaders() { + return this.headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return customColumnStyle; + } +} diff --git a/casic-service-person/pom.xml b/casic-service-person/pom.xml index c9f86cc..0f992bb 100644 --- a/casic-service-person/pom.xml +++ b/casic-service-person/pom.xml @@ -44,7 +44,11 @@ 3.17 - + + com.casic + casic-export-support + ${admin.version} + diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/controller/PersonAttendanceLogController.java b/casic-service-person/src/main/java/com/casic/missiles/modular/system/controller/PersonAttendanceLogController.java index 245e67f..dabd72a 100644 --- a/casic-service-person/src/main/java/com/casic/missiles/modular/system/controller/PersonAttendanceLogController.java +++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/controller/PersonAttendanceLogController.java @@ -3,14 +3,17 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.base.response.ResponseData; import com.casic.missiles.core.common.constant.factory.PageFactory; import com.casic.missiles.core.common.service.ICommonPermissionService; import com.casic.missiles.core.datascope.DataScope; import com.casic.missiles.core.util.ToolUtil; import com.casic.missiles.modular.system.dto.PersonAttendDTO; +import com.casic.missiles.modular.system.enums.PersonRecordExportEnum; import com.casic.missiles.modular.system.model.PersonAttendanceLog; import com.casic.missiles.modular.system.service.IPersonAttendanceLogService; +import lombok.SneakyThrows; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; @@ -19,6 +22,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import java.util.List; +import java.util.stream.Collectors; import static com.casic.missiles.modular.constant.PersonConstant.*; @@ -30,7 +34,7 @@ */ @Controller @RequestMapping("/staff") -public class PersonAttendanceLogController extends BaseController { +public class PersonAttendanceLogController extends ExportController { @Autowired @@ -44,22 +48,44 @@ @ResponseBody public Object attendanceList(String keywords, String startTime, String endTime) { Page page = new PageFactory().defaultPage(); + page.setRecords(listPage(page, keywords, startTime, endTime)); + return ResponseData.success(super.packForBT(page)); + } + + /** + * 获取作业管理分页列表 + */ + @SneakyThrows + @RequestMapping(value = "/attendance/export") + @ResponseBody + public void export(String keywords, String startTime, String endTime) { + Page page = new PageFactory().defaultPage(); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + exportExcel(PersonRecordExportEnum.PERSON_JOB_RECORD, listPage(page, keywords, startTime, endTime).stream().map(personAttendDTO -> (Object) personAttendDTO).collect(Collectors.toList())); + } + + /** + * 考勤记录分页读取 + * + * @param page 分页参数 + * @param keywords 关键字 + * @param startTime 开始时间 + * @param endTime 结束时间 + * @return + */ + private List listPage(Page page, String keywords, String startTime, String endTime) { EntityWrapper query = new EntityWrapper<>(); - DataScope scope = null; - if(ToolUtil.isNotEmpty(startTime)){ - query.ge(CREATE_TIME,startTime); + if (ToolUtil.isNotEmpty(startTime)) { + query.ge(CREATE_TIME, startTime); } - if(ToolUtil.isNotEmpty(endTime)){ - query.le(CREATE_TIME,endTime); + if (ToolUtil.isNotEmpty(endTime)) { + query.le(CREATE_TIME, endTime); } if (ToolUtil.isNotEmpty(keywords)) { query.andNew().like(NAME, keywords).or().eq(ID_CARD, keywords).or().eq(TEL, keywords); } - - - List personAttendDTOS = personAttendanceLogService.selectDataScopePage(scope, page, query); - page.setRecords(personAttendDTOS); - return ResponseData.success(super.packForBT(page)); + return personAttendanceLogService.selectDataScopePage(null, page, query); } /** diff --git a/casic-service-person/src/main/java/com/casic/missiles/modular/system/enums/PersonRecordExportEnum.java b/casic-service-person/src/main/java/com/casic/missiles/modular/system/enums/PersonRecordExportEnum.java new file mode 100644 index 0000000..97f6977 --- /dev/null +++ b/casic-service-person/src/main/java/com/casic/missiles/modular/system/enums/PersonRecordExportEnum.java @@ -0,0 +1,67 @@ +package com.casic.missiles.modular.system.enums; + +import com.casic.missiles.core.enums.ExportExcelHeaderEnum; +import org.hswebframework.expands.office.excel.config.Header; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 人员出勤记录导出配置 + * @author lwh + */ +public enum PersonRecordExportEnum implements ExportExcelHeaderEnum { + /** + * 车辆作业导出配置 + */ + PERSON_JOB_RECORD("person.xlsx", "人员出勤记录导出配置", new HashMap() {{ + this.put("姓名", (short) 6000); + this.put("性别", (short) 9000); + this.put("身份证号", (short) 6000); + this.put("类型", (short) 7000); + this.put("岗位", (short) 7000); + this.put("打卡日期", (short) 7000); + this.put("打卡时间", (short) 7000); + }}, new ArrayList
() {{ + this.add(new Header("姓名", "name")); + this.add(new Header("性别", "sexName")); + this.add(new Header("身份证号", "idcard")); + this.add(new Header("类型", "typeName")); + this.add(new Header("岗位", "postName")); + this.add(new Header("打卡日期", "hireDate")); + this.add(new Header("打卡时间", "onJobTime")); + }}); + private String fileName; + private String description; + private Map customColumnStyle; + private List
headers; + + PersonRecordExportEnum(String fileName, String description, Map customColumnStyle, List
headers) { + this.fileName = fileName; + this.description = description; + this.customColumnStyle = customColumnStyle; + this.headers = headers; + } + + @Override + public List
getHeaders() { + return this.headers; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Map getCustomColumnStyle() { + return customColumnStyle; + } +} diff --git a/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/service/Impl/ToiletEvaluateServiceImpl.java b/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/service/Impl/ToiletEvaluateServiceImpl.java index bdde9fa..1c67924 100644 --- a/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/service/Impl/ToiletEvaluateServiceImpl.java +++ b/casic-service-toilet/src/main/java/com/casic/missiles/modular/toilet/service/Impl/ToiletEvaluateServiceImpl.java @@ -74,10 +74,10 @@ eQuery.ge("CREATE_TIME", beginDate); } if (ToolUtil.isNotEmpty(endDate)) { - eQuery.ge("CREATE_TIME", endDate); + eQuery.le("CREATE_TIME", endDate); } List toiletEvaluates = this.selectList(eQuery); - map.put("recordsCount", toiletEvaluates.size()); + map.put("recordsCount", toiletEvaluates.size()-1); //计算平均值 map.put("avgScore", new BigDecimal(toiletEvaluates.stream().mapToDouble(ToiletEvaluate::getScore).average().orElse(0D)).setScale(1, BigDecimal.ROUND_HALF_UP));