Commit e2860535 authored by suhuiguang's avatar suhuiguang

Merge branch 'developer' of http://172.16.10.76/moa/amos-boot-biz into developer

parents d0fb128c 667c954e
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;
import com.yeejoin.amos.boot.biz.common.dto.OptionDto;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -32,4 +35,45 @@ public class AmosFeignService {
dictionaryModel = FeignUtil.remoteCall(() -> Systemctl.dictionarieClient.dictValues(dictCode));
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;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.*;
/**
* @description: 时间工具类
......@@ -25,6 +24,15 @@ public class DateUtils {
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 当前日期时间
......@@ -521,15 +529,65 @@ public class DateUtils {
}
/**
* 当前日期毫秒.xls
* 根据年月返回第一天
*
* @param yearParam
* @param monthParam
* @return
*/
public static String formatName() {
Calendar calen = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
String name = sdf.format(calen.getTime());
return name;
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 {
......@@ -548,4 +606,16 @@ public class DateUtils {
/*System.out.println(dateFormat(maxDateOfMonth(dateParse("2016-02", "yyyy-MM")), 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;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import org.apache.commons.lang3.StringUtils;
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 javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
......@@ -27,6 +31,8 @@ import java.util.regex.Pattern;
**/
public class ExcelUtils {
private final static Logger log = LoggerFactory.getLogger(ExcelUtils.class);
/**
* excel 导出
*
......@@ -202,4 +208,41 @@ public class ExcelUtils {
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;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
......@@ -109,6 +111,19 @@ public class DutyCarController extends BaseController {
}
/**
* 车辆执勤导出
*
* @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);
}
/**
* 值班数据删除
* @param instanceId 实例id
* @return ResponseModel
......
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.common.biz.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
......@@ -46,6 +47,7 @@ public interface IDutyCommonService {
*/
String getGroupCode();
void downloadList(String beginDate, String endDate, HttpServletResponse response) throws ParseException;
/**
* 值班数据入库
......
......@@ -22,7 +22,9 @@ import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
......@@ -172,6 +174,32 @@ public class DutyCommonServiceImpl implements IDutyCommonService {
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);
}
@Override
public void saveImportData(List<Map<String, Object>> dataList) {
......
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