Commit 7419e5e1 authored by 周健威's avatar 周健威

修改代码

parent f95afa48
package com.github.wxiaoqi.security.common.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
// Retention注解决定MyAnnotation注解的生命周期
@Retention(RetentionPolicy.RUNTIME)
// Target注解决定MyAnnotation注解可以加在哪些成分上,如加在类身上,或者属性身上,或者方法身上等成分
@Target({ ElementType.FIELD, ElementType.TYPE })
public @interface HeadName {
/**
* 注解的默认属性值
*
* @return 属性值
*/
String value() default "";
}
\ No newline at end of file
package com.github.wxiaoqi.security.common.rest;
import cn.hutool.core.annotation.AnnotationUtil;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import com.github.wxiaoqi.security.common.annotation.HeadName;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.msg.TableResultResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.ReflectionUtils;
import com.github.wxiaoqi.security.common.util.excel.ExcelImport;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Field;
import java.util.List;
import java.util.Map;
import java.util.function.Supplier;
/**
* ${DESCRIPTION}
......@@ -154,4 +166,107 @@ public class BaseController<Biz extends BaseBiz,Entity> extends CommonBaseContro
public static class BaseDetailDTO {
Integer id;
}
public <T>void export(Class<T> classz, Supplier<List<Object>> function, String fileName) throws Exception {
HttpServletResponse httpServletResponse = getResponse();
ExcelWriter writer = ExcelUtil.getWriter(true);
if(StrUtil.isBlank(fileName)) {
fileName = System.currentTimeMillis()+ "";
}
try {
//封装表头
handleHead(classz, writer);
log.info("======export==== ");
//处理数据
List<Object> listObject = function.get();
List<Map> list = CollUtil.newArrayList();
for(Object object : listObject) {
list.add(BeanUtil.beanToMap(object,false, false));
}
if (list.size() == 0) {
Map<String, Object> map = CollUtil.newHashMap();
for(Field field : classz.getDeclaredFields()) {
String value = AnnotationUtil.getAnnotationValue(field, HeadName.class);
writer.addHeaderAlias(field.getName(), "");
}
list.add(map);
}
log.info("list: {} ", JSONUtil.toJsonStr(list));
writer.write(list);
httpServletResponse.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
// httpServletResponse.setContentType("application/vnd.ms-excel;charset=utf-8");
// httpServletResponse.setHeader("Content-Disposition","attachment;filename="+ URLEncoder
// .encode(fileName+ ".xls","utf-8"));
httpServletResponse.setHeader("Content-Disposition","attachment;filename="+ new String(fileName.getBytes(), "iso8859-1"));
writer.flush(httpServletResponse.getOutputStream());
}catch (Exception ex) {
log.error(ex.getMessage(), ex);
throw ex;
}finally {
writer.close();
}
}
private <T> void handleHead(Class<T> classz, ExcelWriter writer) {
if(classz == Object.class) {
return;
}else {
handleHead(classz.getSuperclass(), writer);
}
for(Field field : classz.getDeclaredFields()) {
String value = AnnotationUtil.getAnnotationValue(field, HeadName.class);
writer.addHeaderAlias(field.getName(), value);
}
}
private <T> void handleHeadRead(Class<T> classz, Map map) {
if(classz == Object.class) {
return;
}else {
handleHeadRead(classz.getSuperclass(), map);
}
for(Field field : classz.getDeclaredFields()) {
String value = AnnotationUtil.getAnnotationValue(field, HeadName.class);
map.put(value, field.getName());
}
}
public <T> List<T> read(Class<T> beanType, MultipartFile cardExcel) {
List<String[]> cardDatas = ExcelImport.getExcelData(cardExcel);
String[] headStrArr = cardDatas.get(0);
cardDatas.remove(0);
if (Map.class.isAssignableFrom(beanType)) {
return CollUtil.newArrayList();
} else {
List<T> beanList = CollUtil.newArrayList();
//中--数
Map<String, Integer> mapInt = CollUtil.newHashMap();
for (int i = 0; i < headStrArr.length; i++) {
mapInt.put(headStrArr[i], i);
}
//中--英
Map<String, String> mapStr = CollUtil.newHashMap();
handleHeadRead(beanType, mapStr);
for(String[] data : cardDatas) {
Map<Integer, Object> dataMap = CollUtil.newHashMap();
for(int i = 0; i < data.length; i++) {
String s = data[i];
dataMap.put(i, s);
}
Map<String, String> headMap = CollUtil.newHashMap();
Map<String, Object> map2 = CollUtil.newHashMap();
for(String keySet : mapStr.keySet()) {
map2.put(mapStr.get(keySet), dataMap.get(mapInt.get(keySet)));
}
beanList.add(BeanUtil.toBean(map2, beanType));
}
return beanList;
}
}
}
......@@ -199,7 +199,7 @@ public class RscpImageDataTotalController extends BaseController<RscpImageDataTo
List<RscpImagePrice> list = rscpImagePriceBiz.selectByWeekend(w -> {
w.andEqualTo(RscpImagePrice::getStatus, SYS_TRUE);
return w;
}, " daily_sort asc");
}, " daily_sort asc ");
List<Long> longs = CollUtil.toList(ids.split(",")).parallelStream().map(e -> Long.valueOf(e)).collect(Collectors.toList());
List<RscpImageDataTotal> list2 = baseBiz.selectByAttrs(RscpImageDataTotal::getId, longs);
List<ImageDataVO> list3 = CollUtil.newArrayList();
......
......@@ -19,6 +19,8 @@ public class GainDataDTO extends PageParam {
private Boolean needLog = false;
private Boolean needFile = false;
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date crtTimeStart;
......
package com.upyuns.platform.rs.website.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
......@@ -53,6 +55,7 @@ public class GainDataBiz extends BaseBiz<GainDataMapper,GainData> {
@Autowired
GaindataLogBiz gaindataLogBiz;
public DataMenu getTopMenu(Map<Integer, DataMenu> dataMenuMap, DataMenu dataMenu){
if(dataMenu != null && dataMenu.getParentId() != null && dataMenu.getParentId() != -1) {
if(null == dataMenuMap.get(dataMenu.getParentId())) {
......@@ -182,9 +185,10 @@ public class GainDataBiz extends BaseBiz<GainDataMapper,GainData> {
}
public PageDataVO<AdminGaindataController.GainDataVO> selectPageVO(GainDataDTO dto) {
Example example = new Example(GainData.class);
Example example = initExample(dto);
// Example example = new Example(GainData.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("isDel", 0);
// criteria.andEqualTo("isDel", 0);
example.setOrderByClause("crt_time desc");
PageDataVO<AdminGaindataController.GainDataVO> pageDataVO = PageDataVO.pageInfo(dto.initQuery(), ()->selectByExample(example), AdminGaindataController.GainDataVO.class);
if(dto.getNeedLog()) {
......@@ -197,4 +201,30 @@ public class GainDataBiz extends BaseBiz<GainDataMapper,GainData> {
}
return pageDataVO;
}
public List<AdminGaindataController.GainDataVO> selectNoPageVO(GainDataDTO dto) {
Example example = initExample(dto);
// Example example = new Example(GainData.class);
Example.Criteria criteria = example.createCriteria();
// criteria.andEqualTo("isDel", 0);
example.setOrderByClause("crt_time desc");
List<AdminGaindataController.GainDataVO> pageDataVO = Convert.toList(AdminGaindataController.GainDataVO.class, selectByExample(example));
if(dto.getNeedLog() || dto.getNeedFile()) {
pageDataVO.forEach(gainDataVO -> {
if(dto.getNeedLog()) {
gainDataVO.setGaindataLogs(gaindataLogBiz.selectAll(new GaindataLog(){{
setGainId(gainDataVO.getId());
setIsDel(SYS_FALSE);
}}));
}
if(dto.getNeedFile()) {
gainDataVO.setGaindataFiles(fileDataBiz.selectAll(new FileData(){{
setGainId(gainDataVO.getId());
setIsDel(SYS_FALSE);
}}));
}
});
}
return pageDataVO;
}
}
\ No newline at end of file
......@@ -2,15 +2,16 @@ package com.upyuns.platform.rs.website.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.admin.constant.AdminCommonConstant;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.annotation.HeadName;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.upyuns.platform.rs.gtdata.GdLoginVO;
import com.upyuns.platform.rs.gtdata.GtDataRestClient;
import com.upyuns.platform.rs.gtdata.GtFileInfo;
import com.upyuns.platform.rs.website.biz.DataMenuBiz;
......@@ -25,14 +26,12 @@ import com.upyuns.platform.rs.website.vo.DataMenuTree;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
import java.util.Date;
import java.util.HashMap;
import javax.persistence.Column;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
......@@ -89,6 +88,7 @@ public class AdminGaindataController extends BaseController<GainDataBiz, GainDat
@Data
static public class GainDataVO extends GainData {
public List<GaindataLog> gaindataLogs;
public List<FileData> gaindataFiles;
}
@RequestMapping(value = "/deleteById",method = RequestMethod.DELETE)
......@@ -308,4 +308,104 @@ public class AdminGaindataController extends BaseController<GainDataBiz, GainDat
public static final int STATISTICSTYPE_TOPMENU = 2;
private Integer statisticsType;
}
@GetMapping("getPageListExport")
public void pageLogicExport(GainDataDTO gainDataDTO) throws Exception{
gainDataDTO.setNeedLog(true);
try {
export(GainDataHead.class, () -> {
List<GainDataVO> datas = baseBiz.selectNoPageVO(gainDataDTO);
List<Object> list = CollUtil.newArrayList();
Map<Integer, DataMenu> dataMenuMap = CollUtil.newHashMap();
for(int i = 0; i < datas.size(); i++) {
//OrderNo Name IdCard
GainDataVO vo = datas.get(i);
GainDataHead head1 = new GainDataHead();
DataMenu dataMenu = getDataMenu(dataMenuMap, vo.getMenuId());
if(dataMenu.getParentId() != AdminCommonConstant.ROOT) {
head1.setSecondMenuName(dataMenu.getTitle());
DataMenu pDataMenu = getDataMenu(dataMenuMap, vo.getMenuId());
head1.setFirstMenuName(pDataMenu.getTitle());
}else {
head1.setFirstMenuName(dataMenu.getTitle());
head1.setSecondMenuName("无");
}
head1.setName(vo.getName());
head1.setSupplier(vo.getSupplier());
head1.setOpNum(vo.getGaindataLogs().size()+ "");
head1.setFileNum(vo.getGaindataFiles().size()+ "");
// head1.setAppUserMobile(vo.getAppUserMobile());
// head1.setAppUserNickname(vo.getAppUserNickname());
// head1.setAppUserRealName(vo.getAppUserRealName());
// head1.setIdcard(vo.getIdcard());
// head1.setBeforePositionName(vo.getBeforePositionName());
// head1.setPositionName(vo.getPositionName());
// head1.setRemark(vo.getRemark());
// if(StrUtil.isBlank(head1.getBeforePositionName())) {
// head1.setBeforePositionName("普通用户");
// }
// if(StrUtil.isBlank(head1.getPositionName())) {
// head1.setPositionName("普通用户");
// }
// switch (vo.getStatus()) {
// case AgentForm.STATUS_TOBE :
// head1.setStatus("未处理");
// break;
// case AgentForm.STATUS_ING :
// head1.setStatus("已处理");
// break;
// case AgentForm.STATUS_REFUSE :
// head1.setStatus("拒绝");
// break;
// }
head1.setCrtTime(DateUtil.date(vo.getCrtTime()).toString());
list.add(head1);
}
return list;
},"报表导出");
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
private DataMenu getDataMenu(Map<Integer, DataMenu> dataMenuMap, Integer menuId) {
DataMenu dataMenu = dataMenuMap.get(menuId);
if(dataMenu == null) {
dataMenu = dataMenuBiz.selectById(menuId);
dataMenuMap.put(menuId, dataMenu);
}
return dataMenu;
}
@Data
public static class GainDataHead {
@HeadName("App用户手机号")
private String firstMenuName;
@HeadName("App用户昵称")
private String secondMenuName;
@HeadName("名称")
private String name;
@HeadName("供应商")
private String supplier;
@HeadName("文件数")
private String fileNum;
@HeadName("操作次数")
private String opNum;
// @HeadName("状态")
// private String status;
@HeadName("备注")
private String remark;
@HeadName("提交时间")
private String crtTime;
}
}
......@@ -36,7 +36,8 @@ public class GaindataLogController extends BaseController<GaindataLogBiz,Gaindat
@ResponseBody
public ObjectRestResponse<GaindataLog> appunauthBaseAdd(@RequestBody GaindataLog entity){
// if(GaindataLog.TYPE_1001.equals())
String content = "进行了一次{}操作";
String content = "";
// "进行了一次{}操作";
if(null != entity.getGainId()) {
GainData gainData = gainDataBiz.selectById(entity.getGainId());
if(null != gainData) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment