diff --git a/pom.xml b/pom.xml index b04abac..9e9a23c 100644 --- a/pom.xml +++ b/pom.xml @@ -170,7 +170,12 @@ org.apache.poi poi - 5.2.2 + 4.1.2 + + + org.apache.poi + poi-ooxml + 4.1.2 ws.schild diff --git a/src/main/java/com/zh/project0512/controller/manage/ReferenceController.java b/src/main/java/com/zh/project0512/controller/manage/ReferenceController.java index 97e6540..86fb6b5 100644 --- a/src/main/java/com/zh/project0512/controller/manage/ReferenceController.java +++ b/src/main/java/com/zh/project0512/controller/manage/ReferenceController.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.fasterxml.jackson.annotation.JsonFormat; import com.zh.project0512.annotation.AdminCheckAuthorityAnnotation; import com.zh.project0512.annotation.AdminTokenValid; import com.zh.project0512.model.*; @@ -266,6 +267,12 @@ public class ReferenceController { private Integer groupId; @Schema(title = "月份区间") private Integer month; + @Schema(title = "开始时间(yyyy-MM-dd HH:mm:ss)",description = "如果传入month以月份区间为条件") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime beginTime; + @Schema(title = "结束时间(yyyy-MM-dd HH:mm:ss)",description = "如果传入month以月份区间为条件") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; @Schema(title = "tagId数组") private List tagIdList; @Schema(title = "brandId数组") @@ -284,6 +291,9 @@ public class ReferenceController { } if (null != param.getMonth()) { qw.between("t1.creatAt", LocalDateTime.now().minusMonths(param.getMonth()), LocalDateTime.now()); + }else{ + qw.ge(param.getBeginTime()!=null,"t1.creatAt",param.getBeginTime()); + qw.le(param.getEndTime()!=null,"t1.creatAt",param.getEndTime()); } if (null != param.getKeyword()) { qw.like("t1.title", param.getKeyword()); diff --git a/src/main/java/com/zh/project0512/controller/manage/TaskController.java b/src/main/java/com/zh/project0512/controller/manage/TaskController.java index 38c6235..e2da8f8 100644 --- a/src/main/java/com/zh/project0512/controller/manage/TaskController.java +++ b/src/main/java/com/zh/project0512/controller/manage/TaskController.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.fasterxml.jackson.annotation.JsonFormat; import com.zh.project0512.annotation.AdminCheckAuthorityAnnotation; import com.zh.project0512.annotation.AdminTokenValid; import com.zh.project0512.model.*; @@ -14,6 +15,7 @@ import com.zh.project0512.model.validatedDemo.TaskValidGroup2; import com.zh.project0512.model.vo.FileUploadParamVo; import com.zh.project0512.service.*; import com.zh.project0512.utils.CustomUtil; +import com.zh.project0512.utils.ExcelUtil; import com.zh.project0512.utils.FileTypeUtil; import com.zh.project0512.utils.MybatisPlusUtil; import com.zh.project0512.utils.result.Result; @@ -21,13 +23,19 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.Data; +import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.Min; import javax.validation.constraints.NotNull; +import java.io.IOException; +import java.io.OutputStream; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.time.LocalDateTime; import java.util.*; @@ -334,12 +342,14 @@ public class TaskController { private int pageSize; @Schema(title = "任务状态", description = "0未上线;1已上线;2已结束") private Integer status; - @Schema(title = "开始时间",description = "如果传入month以月份区间为条件") - private LocalDateTime beginTime; - @Schema(title = "结束时间",description = "如果传入month以月份区间为条件") - private LocalDateTime endTime; @Schema(title = "月份区间") private Integer month; + @Schema(title = "开始时间(yyyy-MM-dd HH:mm:ss)",description = "如果传入month以月份区间为条件") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime beginTime; + @Schema(title = "结束时间(yyyy-MM-dd HH:mm:ss)",description = "如果传入month以月份区间为条件") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; @Schema(title = "tagId数组") private List tagIdList; @Schema(title = "brandId数组") @@ -359,7 +369,8 @@ public class TaskController { if (null != param.getMonth()) { qw.between("t1.creatAt", LocalDateTime.now().minusMonths(param.getMonth()), LocalDateTime.now()); }else{ - + qw.ge(param.getBeginTime()!=null,"t1.creatAt",param.getBeginTime()); + qw.le(param.getEndTime()!=null,"t1.creatAt",param.getEndTime()); } if (null != param.getKeyword()) { qw.like("t1.title", param.getKeyword()); @@ -436,6 +447,30 @@ public class TaskController { return Result.success(taskEffect); } + @Operation(summary = "导出excel",description = "任务成员传播效果") + @GetMapping("/excel") +// @AdminTokenValid + public void excel(HttpServletResponse response) throws IOException { + //这是表头 + String[] arr = {"名称","年龄"}; + + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("t2.id", 1).groupBy("t1.userId"); + List l = taskService.taskEffectData(qw); + + Workbook wb = ExcelUtil.writeToExcelByList(arr, l); + OutputStream output = response.getOutputStream(); + String fileName = "接入详情.xlsx"; + try { + fileName = URLEncoder.encode(fileName, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ";" + "filename*=utf-8''" + fileName); + wb.write(output); + output.close(); + } + @Data static class CNListParam { @Schema(title = "姓名") diff --git a/src/main/java/com/zh/project0512/controller/wxApp/QYWXUController.java b/src/main/java/com/zh/project0512/controller/wxApp/QYWXUController.java index 1144d15..7a3a29b 100644 --- a/src/main/java/com/zh/project0512/controller/wxApp/QYWXUController.java +++ b/src/main/java/com/zh/project0512/controller/wxApp/QYWXUController.java @@ -63,13 +63,12 @@ public class QYWXUController { } } - Integer sub_department = main_department; if (sub_department != null && sub_department != 1 && sub_department != 0) { sub_department = httpUtil.qywxDepartmentParentid(access_token, main_department, 0); } UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("openid", openid) + updateWrapper.eq("openid", openid).set("userid",userid) .set("main_department", main_department).set("sub_department",sub_department).set("updateAt", LocalDateTime.now()); userService.update(null, updateWrapper); return Result.success(res1); diff --git a/src/main/java/com/zh/project0512/controller/wxApp/ReferenceUController.java b/src/main/java/com/zh/project0512/controller/wxApp/ReferenceUController.java index 13ebc95..5400ef4 100644 --- a/src/main/java/com/zh/project0512/controller/wxApp/ReferenceUController.java +++ b/src/main/java/com/zh/project0512/controller/wxApp/ReferenceUController.java @@ -65,6 +65,12 @@ public class ReferenceUController { private Integer groupId; @Schema(title = "月份区间") private Integer month; + @Schema(title = "开始时间(yyyy-MM-dd HH:mm:ss)",description = "如果传入month以月份区间为条件") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime beginTime; + @Schema(title = "结束时间(yyyy-MM-dd HH:mm:ss)",description = "如果传入month以月份区间为条件") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; @Schema(title = "tagId数组") private List tagIdList; @Schema(title = "brandId数组") @@ -82,6 +88,9 @@ public class ReferenceUController { } if (null != param.getMonth()) { qw.between("t1.creatAt", LocalDateTime.now().minusMonths(param.getMonth()),LocalDateTime.now()); + }else{ + qw.ge(param.getBeginTime()!=null,"t1.creatAt",param.getBeginTime()); + qw.le(param.getEndTime()!=null,"t1.creatAt",param.getEndTime()); } if (null != param.getKeyword()) { qw.like("t1.title", param.getKeyword()); @@ -103,6 +112,9 @@ public class ReferenceUController { } if (null != param.getMonth()) { qw.between("t1.creatAt", LocalDateTime.now().minusMonths(param.getMonth()),LocalDateTime.now()); + }else{ + qw.ge(param.getBeginTime()!=null,"t1.creatAt",param.getBeginTime()); + qw.le(param.getEndTime()!=null,"t1.creatAt",param.getEndTime()); } if (null != param.getKeyword()) { qw.like("t1.title", param.getKeyword()); diff --git a/src/main/java/com/zh/project0512/controller/wxApp/TaskUController.java b/src/main/java/com/zh/project0512/controller/wxApp/TaskUController.java index ff52fb5..2436913 100644 --- a/src/main/java/com/zh/project0512/controller/wxApp/TaskUController.java +++ b/src/main/java/com/zh/project0512/controller/wxApp/TaskUController.java @@ -4,6 +4,7 @@ package com.zh.project0512.controller.wxApp; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.fasterxml.jackson.annotation.JsonFormat; import com.zh.project0512.annotation.TokenValid; import com.zh.project0512.model.*; import com.zh.project0512.model.vo.CommunicationEffectVo; @@ -71,6 +72,12 @@ public class TaskUController { private Integer status; @Schema(title = "月份区间") private Integer month; + @Schema(title = "开始时间(yyyy-MM-dd HH:mm:ss)",description = "如果传入month以月份区间为条件") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime beginTime; + @Schema(title = "结束时间(yyyy-MM-dd HH:mm:ss)",description = "如果传入month以月份区间为条件") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; @Schema(title = "tagId数组") private List tagIdList; @Schema(title = "brandId数组") @@ -98,6 +105,9 @@ public class TaskUController { } if (null != param.getMonth()) { qw.between("t1.creatAt", LocalDateTime.now().minusMonths(param.getMonth()), LocalDateTime.now()); + }else{ + qw.ge(param.getBeginTime()!=null,"t1.creatAt",param.getBeginTime()); + qw.le(param.getEndTime()!=null,"t1.creatAt",param.getEndTime()); } if (null != param.getKeyword()) { qw.like("t1.title", param.getKeyword()); diff --git a/src/main/java/com/zh/project0512/utils/ExcelUtil.java b/src/main/java/com/zh/project0512/utils/ExcelUtil.java new file mode 100644 index 0000000..c1afc24 --- /dev/null +++ b/src/main/java/com/zh/project0512/utils/ExcelUtil.java @@ -0,0 +1,63 @@ +package com.zh.project0512.utils; + + +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import java.util.List; +import java.util.Map; + +public class ExcelUtil { + + public static Workbook writeToExcelByList(String[] array, List list) { + //创建工作薄 + Workbook wb = new XSSFWorkbook(); + //标题和页码 + CellStyle titleStyle = wb.createCellStyle(); + // 设置单元格对齐方式,水平居左 + titleStyle.setAlignment(HorizontalAlignment.LEFT); + // 设置字体样式 + Font titleFont = wb.createFont(); + // 字体高度 + titleFont.setFontHeightInPoints((short) 12); + // 字体样式 + titleFont.setFontName("黑体"); + titleStyle.setFont(titleFont); + //创建sheet + Sheet sheet = wb.createSheet("接入详情"); + // 自动设置宽度 + sheet.autoSizeColumn(0); + // 在sheet中添加标题行// 行数从0开始 + Row row = sheet.createRow((int) 0); + for (int i = 0; i < array.length; i++) { + Cell cell = row.createCell(i); + cell.setCellValue(array[i]); + cell.setCellStyle(titleStyle); + } + // 数据样式 因为标题和数据样式不同 需要分开设置 不然会覆盖 + CellStyle dataStyle = wb.createCellStyle(); + // 设置居中样式,水平居中 + dataStyle.setAlignment(HorizontalAlignment.CENTER); + //数据从序号1开始 + try { + int index = 1; + for (Map value : list) { + // 默认的行数从0开始,为了统一格式设置从1开始,就是从excel的第二行开始 + row = sheet.createRow(index); + index++; + Map data = value; + for (int j = 0; j < data.size(); j++) { + Cell cell = row.createCell(j); + // 为当前列赋值 + cell.setCellValue(data.get(j).toString()); + //设置数据的样式 + cell.setCellStyle(dataStyle); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return wb; + } + +} diff --git a/src/main/java/com/zh/project0512/utils/excelUtil.java b/src/main/java/com/zh/project0512/utils/excelUtil.java deleted file mode 100644 index 2f96503..0000000 --- a/src/main/java/com/zh/project0512/utils/excelUtil.java +++ /dev/null @@ -1,87 +0,0 @@ -//package com.zh.project0512.utils; -// -//import org.apache.poi.hssf.usermodel.HSSFWorkbook; -//import org.springframework.stereotype.Service; -//import org.springframework.transaction.annotation.Transactional; -//import org.springframework.transaction.interceptor.TransactionAspectSupport; -// -//import javax.annotation.Resource; -//import javax.servlet.http.HttpServletRequest; -//import javax.servlet.http.HttpServletResponse; -//import java.io.OutputStream; -//import java.io.UnsupportedEncodingException; -//import java.text.SimpleDateFormat; -//import java.util.*; -// -//public class ExcelUtil { -// -// public void export(HttpServletRequest request, HttpServletResponse response,Integer chargesTemplateId) { -// //获取数据 -// SearchChargesTemplateDetail searchChargesTemplateDetail = new SearchChargesTemplateDetail(); -// searchChargesTemplateDetail.setChargesTemplateId(chargesTemplateId); -// List voChargesTemplateDetailList = sysChargesTemplateDetailDao.list(searchChargesTemplateDetail); -// -// //excel标题 -// String[] title = {"序号","费用名称","计费单价/单位","附加/固定费用","状态","创建人","更新时间"}; -// -// //excel文件名 -// String fileName = "收费标准管理表"+System.currentTimeMillis()+".xls"; -// -// //sheet名 -// String sheetName = "收费标准管理表"; -// -// -// //初始化内容容器1 -// String[][] content = new String[voChargesTemplateDetailList.size()][]; -// for (int i = 0; i < voChargesTemplateDetailList.size(); i++) { -// //初始化内容容器2 -// content[i] = new String[title.length]; -// //获取 当前物业收费标准明细Vo -// VoChargesTemplateDetail voChargesTemplateDetail = voChargesTemplateDetailList.get(i); -// //传入序号 -// content[i][0] = String.valueOf(i+1); -// //传入费用名称 -// content[i][1] = voChargesTemplateDetail.getName(); -// -// //传入计费单价/单位 -// //查询计费单位显示名称 -// String typeShowName = sysChargesTemplateDetailDao.findTypeShowNameByShowValue(voChargesTemplateDetail.getType()); -// content[i][2] = voChargesTemplateDetail.getUnitPrice().toString()+typeShowName; -// -// //传入附加/固定费用 -// List additionalCostList = sysChargesTemplateDetailDao.findAdditionalCostById(voChargesTemplateDetail.getId()); -// if (additionalCostList != null && additionalCostList.size()>0){ -// content[i][3] = ""; -// for (VoChargesTemplateAdditionalCost additionalCost : additionalCostList) { -// content[i][3] += additionalCost.getName()+":"+additionalCost.getCost()+"/r/n"; -// } -// }else { -// content[i][3] = "/"; -// } -// //传入状态 -// //查询状态显示名称 -// String statusShowName = sysChargesTemplateDetailDao.findStatusShowNameByShowValue(voChargesTemplateDetail.getStatus()); -// content[i][4] = statusShowName; -// //传入创建人 -// content[i][5] = voChargesTemplateDetail.getCreateName(); -// //传入更新时间 -// SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd HH:mm"); -// String format = formatter.format(voChargesTemplateDetail.getModifyDate()); -// content[i][6] = format; -// } -// -// //创建HSSFWorkbook -// HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName, title, content, null); -// -// //响应到客户端 -// try { -// this.setResponseHeader(response, fileName); -// OutputStream os = response.getOutputStream(); -// wb.write(os); -// os.flush(); -// os.close(); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// } -//}