工作日历改动

This commit is contained in:
梁州 2026-01-09 17:02:32 +08:00
parent 25ce3ec144
commit 3fe7085ae8
5 changed files with 72 additions and 14 deletions

View File

@ -181,7 +181,7 @@ public class ExcelController {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
uploadFileHashStringList.remove(fileVo.getHash()); uploadFileHashStringList.remove(fileVo.getHash());
response.setCode(ResponseCode.ERROR.getCode()); response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("导入工作日历异常"); response.setMessage("导入工作日历异常" + e.getMessage());
return convertJsonString(response); return convertJsonString(response);
} }
} }
@ -222,7 +222,7 @@ public class ExcelController {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
uploadFileHashStringList.remove(fileVo.getHash()); uploadFileHashStringList.remove(fileVo.getHash());
response.setCode(ResponseCode.ERROR.getCode()); response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("导入DBS异常"); response.setMessage("导入DBS异常" + e.getMessage());
return convertJsonString(response); return convertJsonString(response);
} }
} }
@ -263,7 +263,7 @@ public class ExcelController {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
uploadFileHashStringList.remove(fileVo.getHash()); uploadFileHashStringList.remove(fileVo.getHash());
response.setCode(ResponseCode.ERROR.getCode()); response.setCode(ResponseCode.ERROR.getCode());
response.setMessage("导入工单异常"); response.setMessage("导入工单异常:" + e.getMessage());
return convertJsonString(response); return convertJsonString(response);
} }
} }
@ -804,6 +804,36 @@ public class ExcelController {
.sheet("工作分析报表") .sheet("工作分析报表")
.doWrite(goodsList.stream().map(WorkSummaryExcelVo::of).toList()); .doWrite(goodsList.stream().map(WorkSummaryExcelVo::of).toList());
} }
/**
* 导出工单
*
* @param response 请求
*/
@PostMapping("/downloadKateOrdersExcel")
@ResponseBody
public void downloadKateOrdersExcel(@RequestBody KateOrdersQuery kateOrdersQuery, HttpServletResponse response) throws IOException {
logger.info("导出工单,筛选参数:{}请求ip{}", convertJsonString(kateOrdersQuery), getIpAddr(servletRequest));
//设置响应格式
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
String fileName = URLEncoder.encode("工单报表", StandardCharsets.UTF_8).replaceAll("\\+", "%20");
response.setHeader("Content-Disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
// 内容样式
HorizontalCellStyleStrategy horizontalCellStyleStrategy = ExcelContentStyle.getContentStyle();
// 查询参数
LambdaQueryWrapper<KateOrders> kateOrdersLamdaQueryWrapper = new LambdaQueryWrapper<KateOrders>()
.eq(kateOrdersQuery.getPlanStartDate() != null, KateOrders::getPlanStartDate, kateOrdersQuery.getPlanStartDate())
.eq(kateOrdersQuery.getOrderStatus() != null, KateOrders::getOrderStatus, kateOrdersQuery.getOrderStatus());
List<KateOrders> kateOrdersList = kateOrdersService.list(kateOrdersLamdaQueryWrapper);
EasyExcel.write(response.getOutputStream(), KateOrdersExcelVo.class)
.excelType(ExcelTypeEnum.XLSX)
.registerWriteHandler(horizontalCellStyleStrategy)
.sheet("工单报表")
.doWrite(kateOrdersList.stream().map(KateOrdersExcelVo::of).toList());
}
/** /**
* 导出工作流总结 * 导出工作流总结
* *

View File

@ -964,7 +964,7 @@ public class KateWorkQueryController {
*/ */
@PostMapping("/queryWorkDate") @PostMapping("/queryWorkDate")
@ResponseBody @ResponseBody
public String getOrders(@RequestBody WorkDateQuery workDateQuery) { public String queryWorkDate(@RequestBody WorkDateQuery workDateQuery) {
logger.info("接收到查询工作日历请求:{}请求ip{}", convertJsonString(workDateQuery), HttpUtils.getIpAddr(servletRequest)); logger.info("接收到查询工作日历请求:{}请求ip{}", convertJsonString(workDateQuery), HttpUtils.getIpAddr(servletRequest));
ResponseEntity response = new ResponseEntity(); ResponseEntity response = new ResponseEntity();
try { try {
@ -977,17 +977,23 @@ public class KateWorkQueryController {
if (workDateQuery.getSourceType() == 1) { if (workDateQuery.getSourceType() == 1) {
// 查询当前正在使用的 // 查询当前正在使用的
List<WorkDateVo> workDateVoList = new ArrayList<>(); List<WorkDateVo> workDateVoList = new ArrayList<>();
int index = 1; int index = 0;
for (LocalDate workDate : localWorkDateList) { for (LocalDate workDate : localWorkDateList) {
index++;
if (workDateQuery.getWorkDate() != null && !workDate.equals(workDateQuery.getWorkDate())) {
// 此处用于查询工作日期
continue;
}
WorkDateVo workDateVo = new WorkDateVo(); WorkDateVo workDateVo = new WorkDateVo();
workDateVo.setKeyId(index); workDateVo.setKeyId(index);
workDateVo.setWorkDate(workDate); workDateVo.setWorkDate(workDate);
workDateVoList.add(workDateVo); workDateVoList.add(workDateVo);
index++;
} }
// 获取分页信息
PageDto<WorkDateVo> pageDto = PageDto.ofList(workDateVoList.size(), (workDateVoList.size() + workDateQuery.getPageSize()) / workDateQuery.getPageSize(), workDateQuery.getPageNo(), workDateQuery.getPageSize(), workDateVoList);
response.setCode(ResponseCode.OK.getCode()); response.setCode(ResponseCode.OK.getCode());
response.setMessage("查询工作日历成功"); response.setMessage("查询工作日历成功");
response.setReturnData(workDateVoList); response.setReturnData(pageDto);
return convertJsonString(response); return convertJsonString(response);
} else if (workDateQuery.getSourceType() == 2) { } else if (workDateQuery.getSourceType() == 2) {
// 查询数据库 // 查询数据库

View File

@ -40,4 +40,26 @@ public class PageDto<T> {
pageDto.setLists(page.getRecords().stream().map(converter).toList()); pageDto.setLists(page.getRecords().stream().map(converter).toList());
return pageDto; return pageDto;
} }
/**
* 将列表集合转换为分页结果
* @param total 总数
* @param pages 总页数
* @param voList 列表集合
* @return
* @param <VO>
*/
public static <VO> PageDto<VO> ofList(long total, long pages, long pageNo, long pageSize, List<VO> voList) {
PageDto<VO> pageDto = new PageDto<>();
// 设置总数
pageDto.setTotal(total);
// 设置总页数
pageDto.setPages(pages);
if (voList.isEmpty()) {
pageDto.setLists(Collections.emptyList());
return pageDto;
}
pageDto.setLists(voList.subList((int) ((pageNo - 1) * pageSize), (int) Math.min(pageNo * pageSize, total)));
return pageDto;
}
} }

View File

@ -53,7 +53,7 @@ public class UploadDbsListener implements ReadListener<KateDbsExcelVo> {
public void onException(Exception exception, AnalysisContext context) throws Exception { public void onException(Exception exception, AnalysisContext context) throws Exception {
int rowCount = context.readRowHolder().getRowIndex() + 1; int rowCount = context.readRowHolder().getRowIndex() + 1;
logger.error("处理Dbs数据发生异常第{}行发生异常。", rowCount); logger.error("处理Dbs数据发生异常第{}行发生异常。", rowCount);
throw new Exception("" + rowCount + "行数据异常" + exception.getMessage()); throw new Exception("" + rowCount + "行数据异常" + exception.getMessage());
} }
/** /**
@ -74,7 +74,7 @@ public class UploadDbsListener implements ReadListener<KateDbsExcelVo> {
if (indexOfCurrentDate == -1) { if (indexOfCurrentDate == -1) {
// 工作日不包含此开工日期 // 工作日不包含此开工日期
logger.error("第{}行DBS开工日期为非工作日。", rowCount); logger.error("第{}行DBS开工日期为非工作日。", rowCount);
throw new RuntimeException("" + rowCount + "行DBS开工日期为非工作日。"); throw new RuntimeException("" + rowCount + "行DBS开工日期" + kateDbsExcelVo.getPlanStartDate().toLocalDate() + "为非工作日。");
} }
cachedDataList.add(kateDbsExcelVo); cachedDataList.add(kateDbsExcelVo);
} }

View File

@ -53,7 +53,7 @@ public class UploadKateOrdersListener implements ReadListener<KateOrdersExcelVo>
public void onException(Exception exception, AnalysisContext context) throws Exception { public void onException(Exception exception, AnalysisContext context) throws Exception {
int rowCount = context.readRowHolder().getRowIndex() + 1; int rowCount = context.readRowHolder().getRowIndex() + 1;
logger.error("处理工单数据发生异常,第{}行发生异常。", rowCount); logger.error("处理工单数据发生异常,第{}行发生异常。", rowCount);
throw new Exception("" + rowCount + "行数据异常" + exception.getMessage()); throw new Exception("" + rowCount + "行数据异常" + exception.getMessage());
} }
/** /**
@ -79,14 +79,14 @@ public class UploadKateOrdersListener implements ReadListener<KateOrdersExcelVo>
if (indexOfCurrentDate == -1) { if (indexOfCurrentDate == -1) {
// 工作日不包含此开工日期 // 工作日不包含此开工日期
logger.error("第{}行工单需求日期为非工作日。", rowCount); logger.error("第{}行工单需求日期为非工作日。", rowCount);
throw new RuntimeException("" + rowCount + "行工单需求日期为非工作日。"); throw new RuntimeException("" + rowCount + "行工单需求日期" + kateOrdersExcelVo.getPlanStartDate() + "为非工作日。");
} }
cachedDataList.add(kateOrdersExcelVo); cachedDataList.add(kateOrdersExcelVo);
} }
if (!isAddReqmtDate) { if (isAddReqmtDate) {
// 缺少开工日期 // 缺少开工日期
logger.error("第{}行工单缺少开工日期。", rowCount); logger.error("第{}行工单缺少需求日期。", rowCount);
throw new RuntimeException("" + rowCount + "行工单缺少开工日期。"); throw new RuntimeException("" + rowCount + "行工单缺少需求日期。");
} }
} }
} }