Commit f7d4a0b0 authored by KeYong's avatar KeYong

暂存提交

parent 019f4245
package com.yeejoin.amos.boot.biz.common.dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.io.Serializable;
/**
* 下拉列表通用返回实体
*
* @author system_generator
* @date 2021-07-06
*/
@Data
@ApiModel(value="OptionDto", description="下拉列表通用返回实体")
public class OptionDto implements Serializable {
private String key;
private String label;
private String labelDesc;
}
package com.yeejoin.amos.boot.biz.common.feign; package com.yeejoin.amos.boot.biz.common.feign;
import com.yeejoin.amos.boot.biz.common.dto.OptionDto;
import com.yeejoin.amos.component.feign.utils.FeignUtil; import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.systemctl.Systemctl; import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel; import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -32,4 +35,45 @@ public class AmosFeignService { ...@@ -32,4 +35,45 @@ public class AmosFeignService {
dictionaryModel = FeignUtil.remoteCall(() -> Systemctl.dictionarieClient.dictValues(dictCode)); dictionaryModel = FeignUtil.remoteCall(() -> Systemctl.dictionarieClient.dictValues(dictCode));
return dictionaryModel; return dictionaryModel;
} }
/**
* 根据Code查询指定的字典信息.
*
* @param dictCode
* @param isScreen 是否过滤数据
* @return
*/
public List<OptionDto> listDictionaryByDictCode(String dictCode, boolean isScreen) {
List<DictionarieValueModel> dictionarieModel = null;
try {
dictionarieModel = FeignUtil.remoteCall(() -> Systemctl.dictionarieClient.dictValues(dictCode));
return getOptionsMo(dictionarieModel, isScreen);
} catch (Exception e) {
throw new RuntimeException("获取字典数据出错");
}
}
/**
* 返回数据转成key - value键值对
*
* @param dictionariesModel
* @param isScreen 是否过滤数据
* @return
*/
private List<OptionDto> getOptionsMo(List<DictionarieValueModel> dictionariesModel, boolean isScreen) {
List<OptionDto> optionsMoList = new ArrayList();
dictionariesModel.forEach(
dictionaries -> {
if (isScreen && ObjectUtils.isEmpty(dictionaries.getDictDataDesc())) {
return;
}
OptionDto optionsMo = new OptionDto();
optionsMo.setKey(dictionaries.getDictDataKey());
optionsMo.setLabel(dictionaries.getDictDataValue());
optionsMo.setLabelDesc(dictionaries.getDictDataDesc());
optionsMoList.add(optionsMo);
}
);
return optionsMoList;
}
} }
...@@ -5,8 +5,7 @@ import org.apache.commons.lang3.StringUtils; ...@@ -5,8 +5,7 @@ import org.apache.commons.lang3.StringUtils;
import java.text.ParseException; import java.text.ParseException;
import java.text.ParsePosition; import java.text.ParsePosition;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.*;
import java.util.Date;
/** /**
* @description: 时间工具类 * @description: 时间工具类
...@@ -25,6 +24,15 @@ public class DateUtils { ...@@ -25,6 +24,15 @@ public class DateUtils {
public static final String HOUR_ONLY_PATTERN = "HH"; public static final String HOUR_ONLY_PATTERN = "HH";
/** /**
* 获取 当前年、半年、季度、月、日、小时 开始结束时间
*/
private static final SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
private static final SimpleDateFormat longHourSdf = new SimpleDateFormat("yyyy-MM-dd HH");
private static final SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private static final Calendar calendar = Calendar.getInstance();
private static final SimpleDateFormat shortDateNew = new SimpleDateFormat("yyyy/M/d");
/**
* 获取当前时间 * 获取当前时间
* *
* @return 当前日期时间 * @return 当前日期时间
...@@ -520,6 +528,67 @@ public class DateUtils { ...@@ -520,6 +528,67 @@ public class DateUtils {
return dateParse(dateFormat(date, MONTH_PATTERN) + "-" + value, null); return dateParse(dateFormat(date, MONTH_PATTERN) + "-" + value, null);
} }
/**
* 根据年月返回第一天
*
* @param yearParam
* @param monthParam
* @return
*/
public static Date getFirstDayByMonth(int yearParam, int monthParam) {
Calendar c = Calendar.getInstance(Locale.CHINA);
c.set(yearParam, monthParam - 1, 1);
try {
Date date = shortSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
return date;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 获取某月的日期List
*
* @param yearParam
* @param monthParam
* @return
*/
public static List<String> getDayByMonth(int yearParam, int monthParam) {
List list = new ArrayList();
Calendar aCalendar = Calendar.getInstance(Locale.CHINA);
aCalendar.set(yearParam, monthParam - 1, 1);
int year = aCalendar.get(Calendar.YEAR);//年份
int month = aCalendar.get(Calendar.MONTH) + 1;//月份
int day = aCalendar.getActualMaximum(Calendar.DATE);
for (int i = 1; i <= day; i++) {
list.add(year + "/" + month + "/" + i);
}
return list;
}
/**
* 当前月的结束时间,即2012-01-31 23:59:59
*
* @return
*/
public static Date getCurrentMonthEndTime(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
Date now = null;
c.set(Calendar.DATE, 1);
c.add(Calendar.MONTH, 1);
c.add(Calendar.DATE, -1);
try {
now = longSdf.parse(shortSdf.format(c.getTime()) + " 23:59:59");
} catch (ParseException e) {
e.printStackTrace();
}
return now;
}
public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {
/*System.out.println(dateTimeToDate(new Date())); /*System.out.println(dateTimeToDate(new Date()));
System.out.println(dateParse("2017-02-04 14:58:20", null)); System.out.println(dateParse("2017-02-04 14:58:20", null));
...@@ -535,4 +604,16 @@ public class DateUtils { ...@@ -535,4 +604,16 @@ public class DateUtils {
/*System.out.println(dateFormat(maxDateOfMonth(dateParse("2016-02", "yyyy-MM")), null)); /*System.out.println(dateFormat(maxDateOfMonth(dateParse("2016-02", "yyyy-MM")), null));
System.out.println(dateFormat(minDateOfMonth(dateParse("2016-03-31", null)), null));*/ System.out.println(dateFormat(minDateOfMonth(dateParse("2016-03-31", null)), null));*/
} }
/**
* 当前日期毫秒.xls
*
* @return
*/
public static String formatName() {
Calendar calen = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
String name = sdf.format(calen.getTime());
return name;
}
} }
...@@ -8,11 +8,15 @@ import cn.afterturn.easypoi.excel.entity.ImportParams; ...@@ -8,11 +8,15 @@ import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -27,6 +31,8 @@ import java.util.regex.Pattern; ...@@ -27,6 +31,8 @@ import java.util.regex.Pattern;
**/ **/
public class ExcelUtils { public class ExcelUtils {
private final static Logger log = LoggerFactory.getLogger(ExcelUtils.class);
/** /**
* excel 导出 * excel 导出
* *
...@@ -202,4 +208,41 @@ public class ExcelUtils { ...@@ -202,4 +208,41 @@ public class ExcelUtils {
return s; return s;
} }
/**
* 导出Excel
*
* @param workbook workbook流
* @param fileName 文件名
* @param response 响应
*/
public static void exportExcel(Workbook workbook, String fileName, HttpServletResponse response) {
if (ObjectUtils.isEmpty(fileName)){
fileName = DateUtils.formatName();
}
//输出文件
try (OutputStream out = response.getOutputStream()) {
//获取文件名并转码
String name = URLEncoder.encode(fileName, "UTF-8");
//编码
response.setCharacterEncoding("UTF-8");
// 设置强制下载不打开
response.setContentType("application/force-download");
// 下载文件的默认名称
response.setHeader("Content-Disposition", "attachment;filename=" + name + ".xls");
//输出表格
workbook.write(out);
} catch (IOException e) {
log.error("文件导出异常,详情如下:", e);
} finally {
try {
if (workbook != null) {
//关闭输出流
workbook.close();
}
} catch (IOException e) {
log.error("文件导出异常,详情如下:", e);
}
}
}
} }
...@@ -14,6 +14,8 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation; ...@@ -14,6 +14,8 @@ import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException; import java.text.ParseException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -107,4 +109,18 @@ public class DutyCarController extends BaseController { ...@@ -107,4 +109,18 @@ public class DutyCarController extends BaseController {
@RequestBody DutyCarDto dutyCarDto) { @RequestBody DutyCarDto dutyCarDto) {
return ResponseHelper.buildResponse(iDutyCarService.update(instanceId, dutyCarDto)); return ResponseHelper.buildResponse(iDutyCarService.update(instanceId, dutyCarDto));
} }
/**
* 车辆执勤导出
*
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping("/exportExcel")
@ApiOperation(httpMethod = "GET", value = "车辆执勤导出", notes = "车辆执勤导出")
public void exportExcel(HttpServletResponse response, @ApiParam(value = "开始日期", required = true) @RequestParam String beginDate,
@ApiParam(value = "结束日期", required = true) @RequestParam String endDate) throws ParseException {
iDutyCarService.downloadList(beginDate, endDate, response);
}
} }
package com.yeejoin.amos.boot.module.common.biz.service; package com.yeejoin.amos.boot.module.common.biz.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.common.api.dto.DownloadCarDto;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException; import java.text.ParseException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -43,4 +45,6 @@ public interface IDutyCommonService { ...@@ -43,4 +45,6 @@ public interface IDutyCommonService {
* @return String * @return String
*/ */
String getGroupCode(); String getGroupCode();
void downloadList(String beginDate, String endDate, HttpServletResponse response) throws ParseException;
} }
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence; import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.common.api.entity.DutyPersonShift; import com.yeejoin.amos.boot.module.common.api.entity.DutyPersonShift;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn; import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.enums.DutyViewTypeEnum; import com.yeejoin.amos.boot.module.common.api.enums.DutyViewTypeEnum;
...@@ -13,11 +14,10 @@ import org.springframework.stereotype.Service; ...@@ -13,11 +14,10 @@ import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext; import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean; import org.typroject.tyboot.core.foundation.utils.Bean;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException; import java.text.ParseException;
import java.util.ArrayList; import java.text.SimpleDateFormat;
import java.util.LinkedHashMap; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -130,4 +130,32 @@ public class DutyCommonServiceImpl implements IDutyCommonService { ...@@ -130,4 +130,32 @@ public class DutyCommonServiceImpl implements IDutyCommonService {
public String getGroupCode() { public String getGroupCode() {
return null; return null;
} }
@Override
public void downloadList(String beginDate, String endDate, HttpServletResponse response) throws ParseException {
List<Map<String, Object>> maps = this.list(beginDate, endDate);
String groupCode = this.getGroupCode();
SimpleDateFormat sdf = new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN);
Date d = sdf.parse(beginDate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(d);
List<String> dayByMonth = DateUtils.getDayByMonth(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH));
List<Map<String, Object>> contentList = new ArrayList<>();
String fileName;
if (0 < maps.size()) {
for (Map<String, Object> map : maps) {
}
}
if ("dutyCar".equals(groupCode)) {
fileName = "车辆执勤值班表";
} else {
fileName = "消防人员值班表";
}
// Workbook workbook = initExcel(appKey, orgCode, getTitleMap(year, mouth), contentList);
// ExcelUtils.exportExcel(workbook, fileName, response);
}
} }
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