diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java index e99f022..cdad1d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -52,7 +55,9 @@ @ResponseBody public Object listPage(String condition) { Page page = PageFactory.defaultPage(); - page=businessConnectTestrecordService.page(page); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("CREATE_TIME"); + page=businessConnectTestrecordService.page(page,queryWrapper); List businessConnectTestrecordList = page.getRecords(); businessConnectTestrecordList.forEach(businessConnectTestrecord -> { businessConnectTestrecord.setTestResult(DictEnum.TEST_STATUS.equals(businessConnectTestrecord.getTestResult()) ? @@ -83,12 +88,25 @@ Assert.isFalse(Objects.isNull(file), () -> { throw new BusinessException(BusinessExceptionEnum.FILE_NULL); }); - List urlList = businessConnectTestrecordService.parseSourceFile(file); + List> urlList = businessConnectTestrecordService.parseSourceFile(file); return businessConnectTestrecordService.saveBatchBusinessConnectTestRecord(urlList) ? ResponseData.success() : ResponseData.error(BusinessExceptionEnum.SAVE_FAILED.getMessage()); } + + /** + * 批量导出测试记录 + */ + @RequestMapping(value = "/fileExport") + @ResponseBody + public void fileExport(HttpServletResponse response) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("createTime"); + businessConnectTestrecordService.exportUsersToExcel(businessConnectTestrecordService.list(queryWrapper), response); + } + + /** * 修改测试链接记录表 */ diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java index e99f022..cdad1d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -52,7 +55,9 @@ @ResponseBody public Object listPage(String condition) { Page page = PageFactory.defaultPage(); - page=businessConnectTestrecordService.page(page); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("CREATE_TIME"); + page=businessConnectTestrecordService.page(page,queryWrapper); List businessConnectTestrecordList = page.getRecords(); businessConnectTestrecordList.forEach(businessConnectTestrecord -> { businessConnectTestrecord.setTestResult(DictEnum.TEST_STATUS.equals(businessConnectTestrecord.getTestResult()) ? @@ -83,12 +88,25 @@ Assert.isFalse(Objects.isNull(file), () -> { throw new BusinessException(BusinessExceptionEnum.FILE_NULL); }); - List urlList = businessConnectTestrecordService.parseSourceFile(file); + List> urlList = businessConnectTestrecordService.parseSourceFile(file); return businessConnectTestrecordService.saveBatchBusinessConnectTestRecord(urlList) ? ResponseData.success() : ResponseData.error(BusinessExceptionEnum.SAVE_FAILED.getMessage()); } + + /** + * 批量导出测试记录 + */ + @RequestMapping(value = "/fileExport") + @ResponseBody + public void fileExport(HttpServletResponse response) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("createTime"); + businessConnectTestrecordService.exportUsersToExcel(businessConnectTestrecordService.list(queryWrapper), response); + } + + /** * 修改测试链接记录表 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index 1a7e6f4..242d540 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -5,15 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; /** @@ -40,6 +40,26 @@ return businessReportInfoService.list(null); } + + /** + * 时间趋势分析接口 + */ + @RequestMapping(value = "/statisticsByTime") + @ResponseBody + public Object statisticsByTime(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByTime(businessReportInfoRequest); + } + + + /** + * 发布平台统计接口 + */ + @RequestMapping(value = "/statisticsByPlate") + @ResponseBody + public Object statisticsByPlate(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByPlate(businessReportInfoRequest); + } + // /** // * 获取上报记录信息分页列表 // */ @@ -51,15 +71,16 @@ // page = businessReportInfoService.list(page,query); // return super.packForBT(page); // } -// /** -// * 新增上报记录信息 -// */ -// @RequestMapping(value = "/add") -// @ResponseBody -// public Object add(BusinessReportInfo businessReportInfo) { -// businessReportInfoService.insert(businessReportInfo); -// return SUCCESS_TIP; -// } + + /** + * 新增上报记录信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(BusinessReportInfo businessReportInfo) { + businessReportInfoService.save(businessReportInfo); + return ResponseData.success(); + } // // /** // * 删除上报记录信息 diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java index e99f022..cdad1d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -52,7 +55,9 @@ @ResponseBody public Object listPage(String condition) { Page page = PageFactory.defaultPage(); - page=businessConnectTestrecordService.page(page); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("CREATE_TIME"); + page=businessConnectTestrecordService.page(page,queryWrapper); List businessConnectTestrecordList = page.getRecords(); businessConnectTestrecordList.forEach(businessConnectTestrecord -> { businessConnectTestrecord.setTestResult(DictEnum.TEST_STATUS.equals(businessConnectTestrecord.getTestResult()) ? @@ -83,12 +88,25 @@ Assert.isFalse(Objects.isNull(file), () -> { throw new BusinessException(BusinessExceptionEnum.FILE_NULL); }); - List urlList = businessConnectTestrecordService.parseSourceFile(file); + List> urlList = businessConnectTestrecordService.parseSourceFile(file); return businessConnectTestrecordService.saveBatchBusinessConnectTestRecord(urlList) ? ResponseData.success() : ResponseData.error(BusinessExceptionEnum.SAVE_FAILED.getMessage()); } + + /** + * 批量导出测试记录 + */ + @RequestMapping(value = "/fileExport") + @ResponseBody + public void fileExport(HttpServletResponse response) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("createTime"); + businessConnectTestrecordService.exportUsersToExcel(businessConnectTestrecordService.list(queryWrapper), response); + } + + /** * 修改测试链接记录表 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index 1a7e6f4..242d540 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -5,15 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; /** @@ -40,6 +40,26 @@ return businessReportInfoService.list(null); } + + /** + * 时间趋势分析接口 + */ + @RequestMapping(value = "/statisticsByTime") + @ResponseBody + public Object statisticsByTime(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByTime(businessReportInfoRequest); + } + + + /** + * 发布平台统计接口 + */ + @RequestMapping(value = "/statisticsByPlate") + @ResponseBody + public Object statisticsByPlate(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByPlate(businessReportInfoRequest); + } + // /** // * 获取上报记录信息分页列表 // */ @@ -51,15 +71,16 @@ // page = businessReportInfoService.list(page,query); // return super.packForBT(page); // } -// /** -// * 新增上报记录信息 -// */ -// @RequestMapping(value = "/add") -// @ResponseBody -// public Object add(BusinessReportInfo businessReportInfo) { -// businessReportInfoService.insert(businessReportInfo); -// return SUCCESS_TIP; -// } + + /** + * 新增上报记录信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(BusinessReportInfo businessReportInfo) { + businessReportInfoService.save(businessReportInfo); + return ResponseData.success(); + } // // /** // * 删除上报记录信息 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java new file mode 100644 index 0000000..7593ab1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.system.dto; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; +import com.ibiz.excel.picture.support.annotation.ExportModel; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + + +@Data +public class BusinessConnectRecordDTO implements Serializable { + + private static final long serialVersionUID = 1L; + @ExportModel(sort = 0, title = "平台类型") + private String testPlatform; + @ExportModel(sort = 1, title = "链接地址") + private String testUrl; + @ExportModel(sort = 2, title = "测试时间") + private String createTime; + @ExportModel(sort = 3, title = "消耗时间/ms") + private String testTime; + @ExportModel(sort = 4, title = "测试状态") + private String testResult; + + + public static List convert(List testrecordList) { + List businessConnectRecordDTOList = new ArrayList<>(); + testrecordList.forEach(testrecord -> { + businessConnectRecordDTOList.add(new BusinessConnectRecordDTO(testrecord)); + }); + return businessConnectRecordDTOList; + } + + + public BusinessConnectRecordDTO(BusinessConnectTestrecord testrecord) { + this.testPlatform = testrecord.getTestPlatform(); + this.testResult = DictEnum.TEST_STATUS.equals(testrecord.getTestResult()) ? DictEnum.TEST_PASSED : DictEnum.TEST_FAILED; + this.testTime = testrecord.getTestTime(); + this.createTime = DateUtil.formatDateTime(testrecord.getCreateTime()); + this.testUrl = testrecord.getTestUrl(); + } + + public BusinessConnectRecordDTO() { + } +} diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java index e99f022..cdad1d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -52,7 +55,9 @@ @ResponseBody public Object listPage(String condition) { Page page = PageFactory.defaultPage(); - page=businessConnectTestrecordService.page(page); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("CREATE_TIME"); + page=businessConnectTestrecordService.page(page,queryWrapper); List businessConnectTestrecordList = page.getRecords(); businessConnectTestrecordList.forEach(businessConnectTestrecord -> { businessConnectTestrecord.setTestResult(DictEnum.TEST_STATUS.equals(businessConnectTestrecord.getTestResult()) ? @@ -83,12 +88,25 @@ Assert.isFalse(Objects.isNull(file), () -> { throw new BusinessException(BusinessExceptionEnum.FILE_NULL); }); - List urlList = businessConnectTestrecordService.parseSourceFile(file); + List> urlList = businessConnectTestrecordService.parseSourceFile(file); return businessConnectTestrecordService.saveBatchBusinessConnectTestRecord(urlList) ? ResponseData.success() : ResponseData.error(BusinessExceptionEnum.SAVE_FAILED.getMessage()); } + + /** + * 批量导出测试记录 + */ + @RequestMapping(value = "/fileExport") + @ResponseBody + public void fileExport(HttpServletResponse response) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("createTime"); + businessConnectTestrecordService.exportUsersToExcel(businessConnectTestrecordService.list(queryWrapper), response); + } + + /** * 修改测试链接记录表 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index 1a7e6f4..242d540 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -5,15 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; /** @@ -40,6 +40,26 @@ return businessReportInfoService.list(null); } + + /** + * 时间趋势分析接口 + */ + @RequestMapping(value = "/statisticsByTime") + @ResponseBody + public Object statisticsByTime(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByTime(businessReportInfoRequest); + } + + + /** + * 发布平台统计接口 + */ + @RequestMapping(value = "/statisticsByPlate") + @ResponseBody + public Object statisticsByPlate(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByPlate(businessReportInfoRequest); + } + // /** // * 获取上报记录信息分页列表 // */ @@ -51,15 +71,16 @@ // page = businessReportInfoService.list(page,query); // return super.packForBT(page); // } -// /** -// * 新增上报记录信息 -// */ -// @RequestMapping(value = "/add") -// @ResponseBody -// public Object add(BusinessReportInfo businessReportInfo) { -// businessReportInfoService.insert(businessReportInfo); -// return SUCCESS_TIP; -// } + + /** + * 新增上报记录信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(BusinessReportInfo businessReportInfo) { + businessReportInfoService.save(businessReportInfo); + return ResponseData.success(); + } // // /** // * 删除上报记录信息 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java new file mode 100644 index 0000000..7593ab1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.system.dto; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; +import com.ibiz.excel.picture.support.annotation.ExportModel; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + + +@Data +public class BusinessConnectRecordDTO implements Serializable { + + private static final long serialVersionUID = 1L; + @ExportModel(sort = 0, title = "平台类型") + private String testPlatform; + @ExportModel(sort = 1, title = "链接地址") + private String testUrl; + @ExportModel(sort = 2, title = "测试时间") + private String createTime; + @ExportModel(sort = 3, title = "消耗时间/ms") + private String testTime; + @ExportModel(sort = 4, title = "测试状态") + private String testResult; + + + public static List convert(List testrecordList) { + List businessConnectRecordDTOList = new ArrayList<>(); + testrecordList.forEach(testrecord -> { + businessConnectRecordDTOList.add(new BusinessConnectRecordDTO(testrecord)); + }); + return businessConnectRecordDTOList; + } + + + public BusinessConnectRecordDTO(BusinessConnectTestrecord testrecord) { + this.testPlatform = testrecord.getTestPlatform(); + this.testResult = DictEnum.TEST_STATUS.equals(testrecord.getTestResult()) ? DictEnum.TEST_PASSED : DictEnum.TEST_FAILED; + this.testTime = testrecord.getTestTime(); + this.createTime = DateUtil.formatDateTime(testrecord.getCreateTime()); + this.testUrl = testrecord.getTestUrl(); + } + + public BusinessConnectRecordDTO() { + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java new file mode 100644 index 0000000..2857128 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoRequest { + + private String specialItem; + + private String beginTime; + + private String endTime; + +} diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java index e99f022..cdad1d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -52,7 +55,9 @@ @ResponseBody public Object listPage(String condition) { Page page = PageFactory.defaultPage(); - page=businessConnectTestrecordService.page(page); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("CREATE_TIME"); + page=businessConnectTestrecordService.page(page,queryWrapper); List businessConnectTestrecordList = page.getRecords(); businessConnectTestrecordList.forEach(businessConnectTestrecord -> { businessConnectTestrecord.setTestResult(DictEnum.TEST_STATUS.equals(businessConnectTestrecord.getTestResult()) ? @@ -83,12 +88,25 @@ Assert.isFalse(Objects.isNull(file), () -> { throw new BusinessException(BusinessExceptionEnum.FILE_NULL); }); - List urlList = businessConnectTestrecordService.parseSourceFile(file); + List> urlList = businessConnectTestrecordService.parseSourceFile(file); return businessConnectTestrecordService.saveBatchBusinessConnectTestRecord(urlList) ? ResponseData.success() : ResponseData.error(BusinessExceptionEnum.SAVE_FAILED.getMessage()); } + + /** + * 批量导出测试记录 + */ + @RequestMapping(value = "/fileExport") + @ResponseBody + public void fileExport(HttpServletResponse response) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("createTime"); + businessConnectTestrecordService.exportUsersToExcel(businessConnectTestrecordService.list(queryWrapper), response); + } + + /** * 修改测试链接记录表 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index 1a7e6f4..242d540 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -5,15 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; /** @@ -40,6 +40,26 @@ return businessReportInfoService.list(null); } + + /** + * 时间趋势分析接口 + */ + @RequestMapping(value = "/statisticsByTime") + @ResponseBody + public Object statisticsByTime(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByTime(businessReportInfoRequest); + } + + + /** + * 发布平台统计接口 + */ + @RequestMapping(value = "/statisticsByPlate") + @ResponseBody + public Object statisticsByPlate(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByPlate(businessReportInfoRequest); + } + // /** // * 获取上报记录信息分页列表 // */ @@ -51,15 +71,16 @@ // page = businessReportInfoService.list(page,query); // return super.packForBT(page); // } -// /** -// * 新增上报记录信息 -// */ -// @RequestMapping(value = "/add") -// @ResponseBody -// public Object add(BusinessReportInfo businessReportInfo) { -// businessReportInfoService.insert(businessReportInfo); -// return SUCCESS_TIP; -// } + + /** + * 新增上报记录信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(BusinessReportInfo businessReportInfo) { + businessReportInfoService.save(businessReportInfo); + return ResponseData.success(); + } // // /** // * 删除上报记录信息 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java new file mode 100644 index 0000000..7593ab1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.system.dto; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; +import com.ibiz.excel.picture.support.annotation.ExportModel; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + + +@Data +public class BusinessConnectRecordDTO implements Serializable { + + private static final long serialVersionUID = 1L; + @ExportModel(sort = 0, title = "平台类型") + private String testPlatform; + @ExportModel(sort = 1, title = "链接地址") + private String testUrl; + @ExportModel(sort = 2, title = "测试时间") + private String createTime; + @ExportModel(sort = 3, title = "消耗时间/ms") + private String testTime; + @ExportModel(sort = 4, title = "测试状态") + private String testResult; + + + public static List convert(List testrecordList) { + List businessConnectRecordDTOList = new ArrayList<>(); + testrecordList.forEach(testrecord -> { + businessConnectRecordDTOList.add(new BusinessConnectRecordDTO(testrecord)); + }); + return businessConnectRecordDTOList; + } + + + public BusinessConnectRecordDTO(BusinessConnectTestrecord testrecord) { + this.testPlatform = testrecord.getTestPlatform(); + this.testResult = DictEnum.TEST_STATUS.equals(testrecord.getTestResult()) ? DictEnum.TEST_PASSED : DictEnum.TEST_FAILED; + this.testTime = testrecord.getTestTime(); + this.createTime = DateUtil.formatDateTime(testrecord.getCreateTime()); + this.testUrl = testrecord.getTestUrl(); + } + + public BusinessConnectRecordDTO() { + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java new file mode 100644 index 0000000..2857128 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoRequest { + + private String specialItem; + + private String beginTime; + + private String endTime; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java new file mode 100644 index 0000000..720c6d2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoResponse { + + private String value; + + private String time; + +} diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java index e99f022..cdad1d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -52,7 +55,9 @@ @ResponseBody public Object listPage(String condition) { Page page = PageFactory.defaultPage(); - page=businessConnectTestrecordService.page(page); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("CREATE_TIME"); + page=businessConnectTestrecordService.page(page,queryWrapper); List businessConnectTestrecordList = page.getRecords(); businessConnectTestrecordList.forEach(businessConnectTestrecord -> { businessConnectTestrecord.setTestResult(DictEnum.TEST_STATUS.equals(businessConnectTestrecord.getTestResult()) ? @@ -83,12 +88,25 @@ Assert.isFalse(Objects.isNull(file), () -> { throw new BusinessException(BusinessExceptionEnum.FILE_NULL); }); - List urlList = businessConnectTestrecordService.parseSourceFile(file); + List> urlList = businessConnectTestrecordService.parseSourceFile(file); return businessConnectTestrecordService.saveBatchBusinessConnectTestRecord(urlList) ? ResponseData.success() : ResponseData.error(BusinessExceptionEnum.SAVE_FAILED.getMessage()); } + + /** + * 批量导出测试记录 + */ + @RequestMapping(value = "/fileExport") + @ResponseBody + public void fileExport(HttpServletResponse response) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("createTime"); + businessConnectTestrecordService.exportUsersToExcel(businessConnectTestrecordService.list(queryWrapper), response); + } + + /** * 修改测试链接记录表 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index 1a7e6f4..242d540 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -5,15 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; /** @@ -40,6 +40,26 @@ return businessReportInfoService.list(null); } + + /** + * 时间趋势分析接口 + */ + @RequestMapping(value = "/statisticsByTime") + @ResponseBody + public Object statisticsByTime(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByTime(businessReportInfoRequest); + } + + + /** + * 发布平台统计接口 + */ + @RequestMapping(value = "/statisticsByPlate") + @ResponseBody + public Object statisticsByPlate(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByPlate(businessReportInfoRequest); + } + // /** // * 获取上报记录信息分页列表 // */ @@ -51,15 +71,16 @@ // page = businessReportInfoService.list(page,query); // return super.packForBT(page); // } -// /** -// * 新增上报记录信息 -// */ -// @RequestMapping(value = "/add") -// @ResponseBody -// public Object add(BusinessReportInfo businessReportInfo) { -// businessReportInfoService.insert(businessReportInfo); -// return SUCCESS_TIP; -// } + + /** + * 新增上报记录信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(BusinessReportInfo businessReportInfo) { + businessReportInfoService.save(businessReportInfo); + return ResponseData.success(); + } // // /** // * 删除上报记录信息 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java new file mode 100644 index 0000000..7593ab1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.system.dto; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; +import com.ibiz.excel.picture.support.annotation.ExportModel; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + + +@Data +public class BusinessConnectRecordDTO implements Serializable { + + private static final long serialVersionUID = 1L; + @ExportModel(sort = 0, title = "平台类型") + private String testPlatform; + @ExportModel(sort = 1, title = "链接地址") + private String testUrl; + @ExportModel(sort = 2, title = "测试时间") + private String createTime; + @ExportModel(sort = 3, title = "消耗时间/ms") + private String testTime; + @ExportModel(sort = 4, title = "测试状态") + private String testResult; + + + public static List convert(List testrecordList) { + List businessConnectRecordDTOList = new ArrayList<>(); + testrecordList.forEach(testrecord -> { + businessConnectRecordDTOList.add(new BusinessConnectRecordDTO(testrecord)); + }); + return businessConnectRecordDTOList; + } + + + public BusinessConnectRecordDTO(BusinessConnectTestrecord testrecord) { + this.testPlatform = testrecord.getTestPlatform(); + this.testResult = DictEnum.TEST_STATUS.equals(testrecord.getTestResult()) ? DictEnum.TEST_PASSED : DictEnum.TEST_FAILED; + this.testTime = testrecord.getTestTime(); + this.createTime = DateUtil.formatDateTime(testrecord.getCreateTime()); + this.testUrl = testrecord.getTestUrl(); + } + + public BusinessConnectRecordDTO() { + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java new file mode 100644 index 0000000..2857128 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoRequest { + + private String specialItem; + + private String beginTime; + + private String endTime; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java new file mode 100644 index 0000000..720c6d2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoResponse { + + private String value; + + private String time; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java index 480e5bc..9eef54d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -12,4 +12,6 @@ String TEST_FAILED = "不通过"; //测试状态 String TEST_STATUS = "1"; + //发布平台 + String PLATE = "plate"; } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java index e99f022..cdad1d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -52,7 +55,9 @@ @ResponseBody public Object listPage(String condition) { Page page = PageFactory.defaultPage(); - page=businessConnectTestrecordService.page(page); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("CREATE_TIME"); + page=businessConnectTestrecordService.page(page,queryWrapper); List businessConnectTestrecordList = page.getRecords(); businessConnectTestrecordList.forEach(businessConnectTestrecord -> { businessConnectTestrecord.setTestResult(DictEnum.TEST_STATUS.equals(businessConnectTestrecord.getTestResult()) ? @@ -83,12 +88,25 @@ Assert.isFalse(Objects.isNull(file), () -> { throw new BusinessException(BusinessExceptionEnum.FILE_NULL); }); - List urlList = businessConnectTestrecordService.parseSourceFile(file); + List> urlList = businessConnectTestrecordService.parseSourceFile(file); return businessConnectTestrecordService.saveBatchBusinessConnectTestRecord(urlList) ? ResponseData.success() : ResponseData.error(BusinessExceptionEnum.SAVE_FAILED.getMessage()); } + + /** + * 批量导出测试记录 + */ + @RequestMapping(value = "/fileExport") + @ResponseBody + public void fileExport(HttpServletResponse response) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("createTime"); + businessConnectTestrecordService.exportUsersToExcel(businessConnectTestrecordService.list(queryWrapper), response); + } + + /** * 修改测试链接记录表 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index 1a7e6f4..242d540 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -5,15 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; /** @@ -40,6 +40,26 @@ return businessReportInfoService.list(null); } + + /** + * 时间趋势分析接口 + */ + @RequestMapping(value = "/statisticsByTime") + @ResponseBody + public Object statisticsByTime(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByTime(businessReportInfoRequest); + } + + + /** + * 发布平台统计接口 + */ + @RequestMapping(value = "/statisticsByPlate") + @ResponseBody + public Object statisticsByPlate(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByPlate(businessReportInfoRequest); + } + // /** // * 获取上报记录信息分页列表 // */ @@ -51,15 +71,16 @@ // page = businessReportInfoService.list(page,query); // return super.packForBT(page); // } -// /** -// * 新增上报记录信息 -// */ -// @RequestMapping(value = "/add") -// @ResponseBody -// public Object add(BusinessReportInfo businessReportInfo) { -// businessReportInfoService.insert(businessReportInfo); -// return SUCCESS_TIP; -// } + + /** + * 新增上报记录信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(BusinessReportInfo businessReportInfo) { + businessReportInfoService.save(businessReportInfo); + return ResponseData.success(); + } // // /** // * 删除上报记录信息 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java new file mode 100644 index 0000000..7593ab1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.system.dto; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; +import com.ibiz.excel.picture.support.annotation.ExportModel; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + + +@Data +public class BusinessConnectRecordDTO implements Serializable { + + private static final long serialVersionUID = 1L; + @ExportModel(sort = 0, title = "平台类型") + private String testPlatform; + @ExportModel(sort = 1, title = "链接地址") + private String testUrl; + @ExportModel(sort = 2, title = "测试时间") + private String createTime; + @ExportModel(sort = 3, title = "消耗时间/ms") + private String testTime; + @ExportModel(sort = 4, title = "测试状态") + private String testResult; + + + public static List convert(List testrecordList) { + List businessConnectRecordDTOList = new ArrayList<>(); + testrecordList.forEach(testrecord -> { + businessConnectRecordDTOList.add(new BusinessConnectRecordDTO(testrecord)); + }); + return businessConnectRecordDTOList; + } + + + public BusinessConnectRecordDTO(BusinessConnectTestrecord testrecord) { + this.testPlatform = testrecord.getTestPlatform(); + this.testResult = DictEnum.TEST_STATUS.equals(testrecord.getTestResult()) ? DictEnum.TEST_PASSED : DictEnum.TEST_FAILED; + this.testTime = testrecord.getTestTime(); + this.createTime = DateUtil.formatDateTime(testrecord.getCreateTime()); + this.testUrl = testrecord.getTestUrl(); + } + + public BusinessConnectRecordDTO() { + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java new file mode 100644 index 0000000..2857128 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoRequest { + + private String specialItem; + + private String beginTime; + + private String endTime; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java new file mode 100644 index 0000000..720c6d2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoResponse { + + private String value; + + private String time; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java index 480e5bc..9eef54d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -12,4 +12,6 @@ String TEST_FAILED = "不通过"; //测试状态 String TEST_STATUS = "1"; + //发布平台 + String PLATE = "plate"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java index d52bb99..78e7f0d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java @@ -62,7 +62,8 @@ public BusinessConnectTestrecord() { } - public BusinessConnectTestrecord(String[] dto) { + public BusinessConnectTestrecord(String[] dto,String plate) { + this.testPlatform =plate; this.testUrl = dto[0]; this.testTime = dto[1]; this.createTime = new Date(); diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java index e99f022..cdad1d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -52,7 +55,9 @@ @ResponseBody public Object listPage(String condition) { Page page = PageFactory.defaultPage(); - page=businessConnectTestrecordService.page(page); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("CREATE_TIME"); + page=businessConnectTestrecordService.page(page,queryWrapper); List businessConnectTestrecordList = page.getRecords(); businessConnectTestrecordList.forEach(businessConnectTestrecord -> { businessConnectTestrecord.setTestResult(DictEnum.TEST_STATUS.equals(businessConnectTestrecord.getTestResult()) ? @@ -83,12 +88,25 @@ Assert.isFalse(Objects.isNull(file), () -> { throw new BusinessException(BusinessExceptionEnum.FILE_NULL); }); - List urlList = businessConnectTestrecordService.parseSourceFile(file); + List> urlList = businessConnectTestrecordService.parseSourceFile(file); return businessConnectTestrecordService.saveBatchBusinessConnectTestRecord(urlList) ? ResponseData.success() : ResponseData.error(BusinessExceptionEnum.SAVE_FAILED.getMessage()); } + + /** + * 批量导出测试记录 + */ + @RequestMapping(value = "/fileExport") + @ResponseBody + public void fileExport(HttpServletResponse response) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("createTime"); + businessConnectTestrecordService.exportUsersToExcel(businessConnectTestrecordService.list(queryWrapper), response); + } + + /** * 修改测试链接记录表 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index 1a7e6f4..242d540 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -5,15 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; /** @@ -40,6 +40,26 @@ return businessReportInfoService.list(null); } + + /** + * 时间趋势分析接口 + */ + @RequestMapping(value = "/statisticsByTime") + @ResponseBody + public Object statisticsByTime(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByTime(businessReportInfoRequest); + } + + + /** + * 发布平台统计接口 + */ + @RequestMapping(value = "/statisticsByPlate") + @ResponseBody + public Object statisticsByPlate(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByPlate(businessReportInfoRequest); + } + // /** // * 获取上报记录信息分页列表 // */ @@ -51,15 +71,16 @@ // page = businessReportInfoService.list(page,query); // return super.packForBT(page); // } -// /** -// * 新增上报记录信息 -// */ -// @RequestMapping(value = "/add") -// @ResponseBody -// public Object add(BusinessReportInfo businessReportInfo) { -// businessReportInfoService.insert(businessReportInfo); -// return SUCCESS_TIP; -// } + + /** + * 新增上报记录信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(BusinessReportInfo businessReportInfo) { + businessReportInfoService.save(businessReportInfo); + return ResponseData.success(); + } // // /** // * 删除上报记录信息 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java new file mode 100644 index 0000000..7593ab1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.system.dto; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; +import com.ibiz.excel.picture.support.annotation.ExportModel; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + + +@Data +public class BusinessConnectRecordDTO implements Serializable { + + private static final long serialVersionUID = 1L; + @ExportModel(sort = 0, title = "平台类型") + private String testPlatform; + @ExportModel(sort = 1, title = "链接地址") + private String testUrl; + @ExportModel(sort = 2, title = "测试时间") + private String createTime; + @ExportModel(sort = 3, title = "消耗时间/ms") + private String testTime; + @ExportModel(sort = 4, title = "测试状态") + private String testResult; + + + public static List convert(List testrecordList) { + List businessConnectRecordDTOList = new ArrayList<>(); + testrecordList.forEach(testrecord -> { + businessConnectRecordDTOList.add(new BusinessConnectRecordDTO(testrecord)); + }); + return businessConnectRecordDTOList; + } + + + public BusinessConnectRecordDTO(BusinessConnectTestrecord testrecord) { + this.testPlatform = testrecord.getTestPlatform(); + this.testResult = DictEnum.TEST_STATUS.equals(testrecord.getTestResult()) ? DictEnum.TEST_PASSED : DictEnum.TEST_FAILED; + this.testTime = testrecord.getTestTime(); + this.createTime = DateUtil.formatDateTime(testrecord.getCreateTime()); + this.testUrl = testrecord.getTestUrl(); + } + + public BusinessConnectRecordDTO() { + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java new file mode 100644 index 0000000..2857128 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoRequest { + + private String specialItem; + + private String beginTime; + + private String endTime; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java new file mode 100644 index 0000000..720c6d2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoResponse { + + private String value; + + private String time; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java index 480e5bc..9eef54d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -12,4 +12,6 @@ String TEST_FAILED = "不通过"; //测试状态 String TEST_STATUS = "1"; + //发布平台 + String PLATE = "plate"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java index d52bb99..78e7f0d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java @@ -62,7 +62,8 @@ public BusinessConnectTestrecord() { } - public BusinessConnectTestrecord(String[] dto) { + public BusinessConnectTestrecord(String[] dto,String plate) { + this.testPlatform =plate; this.testUrl = dto[0]; this.testTime = dto[1]; this.createTime = new Date(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java index f13bb3c..87f01ba 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java @@ -67,6 +67,12 @@ */ @TableField("DESCRIPTION") private String description; + + /** + * 所属专项 + */ + @TableField("SPECIAL_ITEM") + private String specialItem; /** * 上报时间 */ diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java index e99f022..cdad1d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -52,7 +55,9 @@ @ResponseBody public Object listPage(String condition) { Page page = PageFactory.defaultPage(); - page=businessConnectTestrecordService.page(page); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("CREATE_TIME"); + page=businessConnectTestrecordService.page(page,queryWrapper); List businessConnectTestrecordList = page.getRecords(); businessConnectTestrecordList.forEach(businessConnectTestrecord -> { businessConnectTestrecord.setTestResult(DictEnum.TEST_STATUS.equals(businessConnectTestrecord.getTestResult()) ? @@ -83,12 +88,25 @@ Assert.isFalse(Objects.isNull(file), () -> { throw new BusinessException(BusinessExceptionEnum.FILE_NULL); }); - List urlList = businessConnectTestrecordService.parseSourceFile(file); + List> urlList = businessConnectTestrecordService.parseSourceFile(file); return businessConnectTestrecordService.saveBatchBusinessConnectTestRecord(urlList) ? ResponseData.success() : ResponseData.error(BusinessExceptionEnum.SAVE_FAILED.getMessage()); } + + /** + * 批量导出测试记录 + */ + @RequestMapping(value = "/fileExport") + @ResponseBody + public void fileExport(HttpServletResponse response) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("createTime"); + businessConnectTestrecordService.exportUsersToExcel(businessConnectTestrecordService.list(queryWrapper), response); + } + + /** * 修改测试链接记录表 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index 1a7e6f4..242d540 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -5,15 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; /** @@ -40,6 +40,26 @@ return businessReportInfoService.list(null); } + + /** + * 时间趋势分析接口 + */ + @RequestMapping(value = "/statisticsByTime") + @ResponseBody + public Object statisticsByTime(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByTime(businessReportInfoRequest); + } + + + /** + * 发布平台统计接口 + */ + @RequestMapping(value = "/statisticsByPlate") + @ResponseBody + public Object statisticsByPlate(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByPlate(businessReportInfoRequest); + } + // /** // * 获取上报记录信息分页列表 // */ @@ -51,15 +71,16 @@ // page = businessReportInfoService.list(page,query); // return super.packForBT(page); // } -// /** -// * 新增上报记录信息 -// */ -// @RequestMapping(value = "/add") -// @ResponseBody -// public Object add(BusinessReportInfo businessReportInfo) { -// businessReportInfoService.insert(businessReportInfo); -// return SUCCESS_TIP; -// } + + /** + * 新增上报记录信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(BusinessReportInfo businessReportInfo) { + businessReportInfoService.save(businessReportInfo); + return ResponseData.success(); + } // // /** // * 删除上报记录信息 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java new file mode 100644 index 0000000..7593ab1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.system.dto; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; +import com.ibiz.excel.picture.support.annotation.ExportModel; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + + +@Data +public class BusinessConnectRecordDTO implements Serializable { + + private static final long serialVersionUID = 1L; + @ExportModel(sort = 0, title = "平台类型") + private String testPlatform; + @ExportModel(sort = 1, title = "链接地址") + private String testUrl; + @ExportModel(sort = 2, title = "测试时间") + private String createTime; + @ExportModel(sort = 3, title = "消耗时间/ms") + private String testTime; + @ExportModel(sort = 4, title = "测试状态") + private String testResult; + + + public static List convert(List testrecordList) { + List businessConnectRecordDTOList = new ArrayList<>(); + testrecordList.forEach(testrecord -> { + businessConnectRecordDTOList.add(new BusinessConnectRecordDTO(testrecord)); + }); + return businessConnectRecordDTOList; + } + + + public BusinessConnectRecordDTO(BusinessConnectTestrecord testrecord) { + this.testPlatform = testrecord.getTestPlatform(); + this.testResult = DictEnum.TEST_STATUS.equals(testrecord.getTestResult()) ? DictEnum.TEST_PASSED : DictEnum.TEST_FAILED; + this.testTime = testrecord.getTestTime(); + this.createTime = DateUtil.formatDateTime(testrecord.getCreateTime()); + this.testUrl = testrecord.getTestUrl(); + } + + public BusinessConnectRecordDTO() { + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java new file mode 100644 index 0000000..2857128 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoRequest { + + private String specialItem; + + private String beginTime; + + private String endTime; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java new file mode 100644 index 0000000..720c6d2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoResponse { + + private String value; + + private String time; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java index 480e5bc..9eef54d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -12,4 +12,6 @@ String TEST_FAILED = "不通过"; //测试状态 String TEST_STATUS = "1"; + //发布平台 + String PLATE = "plate"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java index d52bb99..78e7f0d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java @@ -62,7 +62,8 @@ public BusinessConnectTestrecord() { } - public BusinessConnectTestrecord(String[] dto) { + public BusinessConnectTestrecord(String[] dto,String plate) { + this.testPlatform =plate; this.testUrl = dto[0]; this.testTime = dto[1]; this.createTime = new Date(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java index f13bb3c..87f01ba 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java @@ -67,6 +67,12 @@ */ @TableField("DESCRIPTION") private String description; + + /** + * 所属专项 + */ + @TableField("SPECIAL_ITEM") + private String specialItem; /** * 上报时间 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java index 4b23c72..9c5df31 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java @@ -4,6 +4,8 @@ import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; import java.util.List; /** @@ -19,9 +21,11 @@ boolean saveBusinessConnectTestRecord(String url); - boolean saveBatchBusinessConnectTestRecord(List urls); + boolean saveBatchBusinessConnectTestRecord(List> urls); //解析文件流 - List parseSourceFile(MultipartFile file); + List> parseSourceFile(MultipartFile file); + + void exportUsersToExcel(List list, HttpServletResponse response); } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java index e99f022..cdad1d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -52,7 +55,9 @@ @ResponseBody public Object listPage(String condition) { Page page = PageFactory.defaultPage(); - page=businessConnectTestrecordService.page(page); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("CREATE_TIME"); + page=businessConnectTestrecordService.page(page,queryWrapper); List businessConnectTestrecordList = page.getRecords(); businessConnectTestrecordList.forEach(businessConnectTestrecord -> { businessConnectTestrecord.setTestResult(DictEnum.TEST_STATUS.equals(businessConnectTestrecord.getTestResult()) ? @@ -83,12 +88,25 @@ Assert.isFalse(Objects.isNull(file), () -> { throw new BusinessException(BusinessExceptionEnum.FILE_NULL); }); - List urlList = businessConnectTestrecordService.parseSourceFile(file); + List> urlList = businessConnectTestrecordService.parseSourceFile(file); return businessConnectTestrecordService.saveBatchBusinessConnectTestRecord(urlList) ? ResponseData.success() : ResponseData.error(BusinessExceptionEnum.SAVE_FAILED.getMessage()); } + + /** + * 批量导出测试记录 + */ + @RequestMapping(value = "/fileExport") + @ResponseBody + public void fileExport(HttpServletResponse response) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("createTime"); + businessConnectTestrecordService.exportUsersToExcel(businessConnectTestrecordService.list(queryWrapper), response); + } + + /** * 修改测试链接记录表 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index 1a7e6f4..242d540 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -5,15 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; /** @@ -40,6 +40,26 @@ return businessReportInfoService.list(null); } + + /** + * 时间趋势分析接口 + */ + @RequestMapping(value = "/statisticsByTime") + @ResponseBody + public Object statisticsByTime(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByTime(businessReportInfoRequest); + } + + + /** + * 发布平台统计接口 + */ + @RequestMapping(value = "/statisticsByPlate") + @ResponseBody + public Object statisticsByPlate(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByPlate(businessReportInfoRequest); + } + // /** // * 获取上报记录信息分页列表 // */ @@ -51,15 +71,16 @@ // page = businessReportInfoService.list(page,query); // return super.packForBT(page); // } -// /** -// * 新增上报记录信息 -// */ -// @RequestMapping(value = "/add") -// @ResponseBody -// public Object add(BusinessReportInfo businessReportInfo) { -// businessReportInfoService.insert(businessReportInfo); -// return SUCCESS_TIP; -// } + + /** + * 新增上报记录信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(BusinessReportInfo businessReportInfo) { + businessReportInfoService.save(businessReportInfo); + return ResponseData.success(); + } // // /** // * 删除上报记录信息 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java new file mode 100644 index 0000000..7593ab1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.system.dto; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; +import com.ibiz.excel.picture.support.annotation.ExportModel; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + + +@Data +public class BusinessConnectRecordDTO implements Serializable { + + private static final long serialVersionUID = 1L; + @ExportModel(sort = 0, title = "平台类型") + private String testPlatform; + @ExportModel(sort = 1, title = "链接地址") + private String testUrl; + @ExportModel(sort = 2, title = "测试时间") + private String createTime; + @ExportModel(sort = 3, title = "消耗时间/ms") + private String testTime; + @ExportModel(sort = 4, title = "测试状态") + private String testResult; + + + public static List convert(List testrecordList) { + List businessConnectRecordDTOList = new ArrayList<>(); + testrecordList.forEach(testrecord -> { + businessConnectRecordDTOList.add(new BusinessConnectRecordDTO(testrecord)); + }); + return businessConnectRecordDTOList; + } + + + public BusinessConnectRecordDTO(BusinessConnectTestrecord testrecord) { + this.testPlatform = testrecord.getTestPlatform(); + this.testResult = DictEnum.TEST_STATUS.equals(testrecord.getTestResult()) ? DictEnum.TEST_PASSED : DictEnum.TEST_FAILED; + this.testTime = testrecord.getTestTime(); + this.createTime = DateUtil.formatDateTime(testrecord.getCreateTime()); + this.testUrl = testrecord.getTestUrl(); + } + + public BusinessConnectRecordDTO() { + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java new file mode 100644 index 0000000..2857128 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoRequest { + + private String specialItem; + + private String beginTime; + + private String endTime; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java new file mode 100644 index 0000000..720c6d2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoResponse { + + private String value; + + private String time; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java index 480e5bc..9eef54d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -12,4 +12,6 @@ String TEST_FAILED = "不通过"; //测试状态 String TEST_STATUS = "1"; + //发布平台 + String PLATE = "plate"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java index d52bb99..78e7f0d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java @@ -62,7 +62,8 @@ public BusinessConnectTestrecord() { } - public BusinessConnectTestrecord(String[] dto) { + public BusinessConnectTestrecord(String[] dto,String plate) { + this.testPlatform =plate; this.testUrl = dto[0]; this.testTime = dto[1]; this.createTime = new Date(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java index f13bb3c..87f01ba 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java @@ -67,6 +67,12 @@ */ @TableField("DESCRIPTION") private String description; + + /** + * 所属专项 + */ + @TableField("SPECIAL_ITEM") + private String specialItem; /** * 上报时间 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java index 4b23c72..9c5df31 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java @@ -4,6 +4,8 @@ import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; import java.util.List; /** @@ -19,9 +21,11 @@ boolean saveBusinessConnectTestRecord(String url); - boolean saveBatchBusinessConnectTestRecord(List urls); + boolean saveBatchBusinessConnectTestRecord(List> urls); //解析文件流 - List parseSourceFile(MultipartFile file); + List> parseSourceFile(MultipartFile file); + + void exportUsersToExcel(List list, HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessReportInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessReportInfoService.java index cc38194..5de037f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessReportInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessReportInfoService.java @@ -2,8 +2,12 @@ import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; +import java.util.HashMap; +import java.util.List; + /** *

* 上报信息记录 服务类 @@ -14,4 +18,9 @@ */ public interface IBusinessReportInfoService extends IService { + + List> statisticsByTime(BusinessReportInfoRequest businessReportInfoRequest); + + List> statisticsByPlate(BusinessReportInfoRequest businessReportInfoRequest); + } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java index e99f022..cdad1d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -52,7 +55,9 @@ @ResponseBody public Object listPage(String condition) { Page page = PageFactory.defaultPage(); - page=businessConnectTestrecordService.page(page); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("CREATE_TIME"); + page=businessConnectTestrecordService.page(page,queryWrapper); List businessConnectTestrecordList = page.getRecords(); businessConnectTestrecordList.forEach(businessConnectTestrecord -> { businessConnectTestrecord.setTestResult(DictEnum.TEST_STATUS.equals(businessConnectTestrecord.getTestResult()) ? @@ -83,12 +88,25 @@ Assert.isFalse(Objects.isNull(file), () -> { throw new BusinessException(BusinessExceptionEnum.FILE_NULL); }); - List urlList = businessConnectTestrecordService.parseSourceFile(file); + List> urlList = businessConnectTestrecordService.parseSourceFile(file); return businessConnectTestrecordService.saveBatchBusinessConnectTestRecord(urlList) ? ResponseData.success() : ResponseData.error(BusinessExceptionEnum.SAVE_FAILED.getMessage()); } + + /** + * 批量导出测试记录 + */ + @RequestMapping(value = "/fileExport") + @ResponseBody + public void fileExport(HttpServletResponse response) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("createTime"); + businessConnectTestrecordService.exportUsersToExcel(businessConnectTestrecordService.list(queryWrapper), response); + } + + /** * 修改测试链接记录表 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index 1a7e6f4..242d540 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -5,15 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; /** @@ -40,6 +40,26 @@ return businessReportInfoService.list(null); } + + /** + * 时间趋势分析接口 + */ + @RequestMapping(value = "/statisticsByTime") + @ResponseBody + public Object statisticsByTime(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByTime(businessReportInfoRequest); + } + + + /** + * 发布平台统计接口 + */ + @RequestMapping(value = "/statisticsByPlate") + @ResponseBody + public Object statisticsByPlate(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByPlate(businessReportInfoRequest); + } + // /** // * 获取上报记录信息分页列表 // */ @@ -51,15 +71,16 @@ // page = businessReportInfoService.list(page,query); // return super.packForBT(page); // } -// /** -// * 新增上报记录信息 -// */ -// @RequestMapping(value = "/add") -// @ResponseBody -// public Object add(BusinessReportInfo businessReportInfo) { -// businessReportInfoService.insert(businessReportInfo); -// return SUCCESS_TIP; -// } + + /** + * 新增上报记录信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(BusinessReportInfo businessReportInfo) { + businessReportInfoService.save(businessReportInfo); + return ResponseData.success(); + } // // /** // * 删除上报记录信息 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java new file mode 100644 index 0000000..7593ab1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.system.dto; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; +import com.ibiz.excel.picture.support.annotation.ExportModel; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + + +@Data +public class BusinessConnectRecordDTO implements Serializable { + + private static final long serialVersionUID = 1L; + @ExportModel(sort = 0, title = "平台类型") + private String testPlatform; + @ExportModel(sort = 1, title = "链接地址") + private String testUrl; + @ExportModel(sort = 2, title = "测试时间") + private String createTime; + @ExportModel(sort = 3, title = "消耗时间/ms") + private String testTime; + @ExportModel(sort = 4, title = "测试状态") + private String testResult; + + + public static List convert(List testrecordList) { + List businessConnectRecordDTOList = new ArrayList<>(); + testrecordList.forEach(testrecord -> { + businessConnectRecordDTOList.add(new BusinessConnectRecordDTO(testrecord)); + }); + return businessConnectRecordDTOList; + } + + + public BusinessConnectRecordDTO(BusinessConnectTestrecord testrecord) { + this.testPlatform = testrecord.getTestPlatform(); + this.testResult = DictEnum.TEST_STATUS.equals(testrecord.getTestResult()) ? DictEnum.TEST_PASSED : DictEnum.TEST_FAILED; + this.testTime = testrecord.getTestTime(); + this.createTime = DateUtil.formatDateTime(testrecord.getCreateTime()); + this.testUrl = testrecord.getTestUrl(); + } + + public BusinessConnectRecordDTO() { + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java new file mode 100644 index 0000000..2857128 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoRequest { + + private String specialItem; + + private String beginTime; + + private String endTime; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java new file mode 100644 index 0000000..720c6d2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoResponse { + + private String value; + + private String time; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java index 480e5bc..9eef54d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -12,4 +12,6 @@ String TEST_FAILED = "不通过"; //测试状态 String TEST_STATUS = "1"; + //发布平台 + String PLATE = "plate"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java index d52bb99..78e7f0d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java @@ -62,7 +62,8 @@ public BusinessConnectTestrecord() { } - public BusinessConnectTestrecord(String[] dto) { + public BusinessConnectTestrecord(String[] dto,String plate) { + this.testPlatform =plate; this.testUrl = dto[0]; this.testTime = dto[1]; this.createTime = new Date(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java index f13bb3c..87f01ba 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java @@ -67,6 +67,12 @@ */ @TableField("DESCRIPTION") private String description; + + /** + * 所属专项 + */ + @TableField("SPECIAL_ITEM") + private String specialItem; /** * 上报时间 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java index 4b23c72..9c5df31 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java @@ -4,6 +4,8 @@ import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; import java.util.List; /** @@ -19,9 +21,11 @@ boolean saveBusinessConnectTestRecord(String url); - boolean saveBatchBusinessConnectTestRecord(List urls); + boolean saveBatchBusinessConnectTestRecord(List> urls); //解析文件流 - List parseSourceFile(MultipartFile file); + List> parseSourceFile(MultipartFile file); + + void exportUsersToExcel(List list, HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessReportInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessReportInfoService.java index cc38194..5de037f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessReportInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessReportInfoService.java @@ -2,8 +2,12 @@ import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; +import java.util.HashMap; +import java.util.List; + /** *

* 上报信息记录 服务类 @@ -14,4 +18,9 @@ */ public interface IBusinessReportInfoService extends IService { + + List> statisticsByTime(BusinessReportInfoRequest businessReportInfoRequest); + + List> statisticsByPlate(BusinessReportInfoRequest businessReportInfoRequest); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessConnectTestrecordServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessConnectTestrecordServiceImpl.java index 3cb69eb..0a3a448 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessConnectTestrecordServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessConnectTestrecordServiceImpl.java @@ -1,21 +1,28 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.system.config.PoolConfig; import com.casic.missiles.modular.system.dao.BusinessConnectTestrecordMapper; +import com.casic.missiles.modular.system.dto.BusinessConnectRecordDTO; import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; import com.casic.missiles.modular.system.service.IBusinessConnectTestrecordService; import com.casic.missiles.modular.system.ssl.LinkTestUtil; import com.casic.missiles.modular.system.util.ExcelUtils; +import com.ibiz.excel.picture.support.model.CellStyle; +import com.ibiz.excel.picture.support.model.Sheet; +import com.ibiz.excel.picture.support.model.Workbook; +import com.ibiz.excel.picture.support.util.WebUtil; import org.apache.commons.collections4.ListUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -50,20 +57,31 @@ public boolean saveBusinessConnectTestRecord(String url) { String result = LinkTestUtil.testUrl(url); - return this.save(new BusinessConnectTestrecord(result.split(","))); + return this.save(new BusinessConnectTestrecord(result.split(","), "")); } @Override - public boolean saveBatchBusinessConnectTestRecord(List urls) { - List> listList = ListUtils.partition(urls, 50); + public boolean saveBatchBusinessConnectTestRecord(List> urls) { + //小于50个测试地址直接返回,大于50用线程返回 + if (ObjectUtil.isNotEmpty(urls) && urls.size() <= 50) { + List testrecordList = new ArrayList<>(); + urls.forEach(s -> { + String result = LinkTestUtil.testUrl(s.get("url") + ""); + testrecordList.add(new BusinessConnectTestrecord(result.split(","), s.get("plate") + "")); + }); + return this.saveBatch(testrecordList); + } + List>> listList = ListUtils.partition(urls, 50); listList.forEach(list -> { threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + List testrecordList = new ArrayList<>(); list.forEach(s -> { - String result = LinkTestUtil.testUrl(s); - save(new BusinessConnectTestrecord(result.split(","))); + String result = LinkTestUtil.testUrl(s.get("url") + ""); + testrecordList.add(new BusinessConnectTestrecord(result.split(","), s.get("plate") + "")); }); + saveBatch(testrecordList); } }); }); @@ -71,21 +89,52 @@ } @Override - public List parseSourceFile(MultipartFile file) { - List stringList = new ArrayList<>(); + public List> parseSourceFile(MultipartFile file) { + List> stringList = new ArrayList<>(); try { - - File Filefile = new File(downloadPath + file.getOriginalFilename()); + File Filefile = new File(downloadPath + System.currentTimeMillis() + file.getOriginalFilename()); + if (!Filefile.exists()) { + Filefile.mkdirs(); + } file.transferTo(Filefile); FileInputStream inputStream = new FileInputStream(Filefile); List> list = ExcelUtils.getListByExcel(inputStream, file.getOriginalFilename()); for (int i = 1; i < list.size(); i++) { + HashMap map = new HashMap<>(); List rows = list.get(i); - stringList.add(rows.get(0) + ""); + if (ObjectUtil.isEmpty(rows.get(0))) continue; + map.put("url", rows.get(0)); + map.put("plate", rows.get(1)); + stringList.add(map); } } catch (Exception e) { e.printStackTrace(); } return stringList; } + + + @Override + public void exportUsersToExcel(List list, HttpServletResponse response) { + Workbook workBook = Workbook.getInstance(1); + + Sheet sheet = workBook.createSheet("测试结果导出"); + // 给标题行加上背景色,加颜色时,会对字体加粗 + sheet.addCellStyle(new CellStyle(0, "66cc66")); + + sheet.write(BusinessConnectRecordDTO.class).createRow(BusinessConnectRecordDTO.convert(list)); + try { + + response.reset(); + response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("fileName", "UTF-8")); + response.setContentType("application/octet-stream"); + + ServletOutputStream os = response.getOutputStream(); + WebUtil.writeExcel(workBook, "测试结果导出".concat(String.valueOf(System.currentTimeMillis())).concat(".xlsx"), response); + workBook.write(os); + } catch (IOException e) { + e.printStackTrace(); + + } + } } diff --git a/casic-server/pom.xml b/casic-server/pom.xml index 19e8eb1..ac337c3 100644 --- a/casic-server/pom.xml +++ b/casic-server/pom.xml @@ -46,7 +46,11 @@ - + + top.minwk + excel-x + 2.4.0 + com.dameng DmJdbcDriver18 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java index e99f022..cdad1d8 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessConnectTestrecordController.java @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -17,7 +18,9 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.util.HashMap; import java.util.List; import java.util.Objects; @@ -52,7 +55,9 @@ @ResponseBody public Object listPage(String condition) { Page page = PageFactory.defaultPage(); - page=businessConnectTestrecordService.page(page); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("CREATE_TIME"); + page=businessConnectTestrecordService.page(page,queryWrapper); List businessConnectTestrecordList = page.getRecords(); businessConnectTestrecordList.forEach(businessConnectTestrecord -> { businessConnectTestrecord.setTestResult(DictEnum.TEST_STATUS.equals(businessConnectTestrecord.getTestResult()) ? @@ -83,12 +88,25 @@ Assert.isFalse(Objects.isNull(file), () -> { throw new BusinessException(BusinessExceptionEnum.FILE_NULL); }); - List urlList = businessConnectTestrecordService.parseSourceFile(file); + List> urlList = businessConnectTestrecordService.parseSourceFile(file); return businessConnectTestrecordService.saveBatchBusinessConnectTestRecord(urlList) ? ResponseData.success() : ResponseData.error(BusinessExceptionEnum.SAVE_FAILED.getMessage()); } + + /** + * 批量导出测试记录 + */ + @RequestMapping(value = "/fileExport") + @ResponseBody + public void fileExport(HttpServletResponse response) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.orderByDesc("createTime"); + businessConnectTestrecordService.exportUsersToExcel(businessConnectTestrecordService.list(queryWrapper), response); + } + + /** * 修改测试链接记录表 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java index 1a7e6f4..242d540 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/BusinessReportInfoController.java @@ -5,15 +5,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; /** @@ -40,6 +40,26 @@ return businessReportInfoService.list(null); } + + /** + * 时间趋势分析接口 + */ + @RequestMapping(value = "/statisticsByTime") + @ResponseBody + public Object statisticsByTime(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByTime(businessReportInfoRequest); + } + + + /** + * 发布平台统计接口 + */ + @RequestMapping(value = "/statisticsByPlate") + @ResponseBody + public Object statisticsByPlate(@RequestBody BusinessReportInfoRequest businessReportInfoRequest) { + return businessReportInfoService.statisticsByPlate(businessReportInfoRequest); + } + // /** // * 获取上报记录信息分页列表 // */ @@ -51,15 +71,16 @@ // page = businessReportInfoService.list(page,query); // return super.packForBT(page); // } -// /** -// * 新增上报记录信息 -// */ -// @RequestMapping(value = "/add") -// @ResponseBody -// public Object add(BusinessReportInfo businessReportInfo) { -// businessReportInfoService.insert(businessReportInfo); -// return SUCCESS_TIP; -// } + + /** + * 新增上报记录信息 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(BusinessReportInfo businessReportInfo) { + businessReportInfoService.save(businessReportInfo); + return ResponseData.success(); + } // // /** // * 删除上报记录信息 diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java new file mode 100644 index 0000000..7593ab1 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessConnectRecordDTO.java @@ -0,0 +1,51 @@ +package com.casic.missiles.modular.system.dto; + + +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.casic.missiles.modular.system.enums.DictEnum; +import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; +import com.ibiz.excel.picture.support.annotation.ExportModel; +import lombok.Data; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + + +@Data +public class BusinessConnectRecordDTO implements Serializable { + + private static final long serialVersionUID = 1L; + @ExportModel(sort = 0, title = "平台类型") + private String testPlatform; + @ExportModel(sort = 1, title = "链接地址") + private String testUrl; + @ExportModel(sort = 2, title = "测试时间") + private String createTime; + @ExportModel(sort = 3, title = "消耗时间/ms") + private String testTime; + @ExportModel(sort = 4, title = "测试状态") + private String testResult; + + + public static List convert(List testrecordList) { + List businessConnectRecordDTOList = new ArrayList<>(); + testrecordList.forEach(testrecord -> { + businessConnectRecordDTOList.add(new BusinessConnectRecordDTO(testrecord)); + }); + return businessConnectRecordDTOList; + } + + + public BusinessConnectRecordDTO(BusinessConnectTestrecord testrecord) { + this.testPlatform = testrecord.getTestPlatform(); + this.testResult = DictEnum.TEST_STATUS.equals(testrecord.getTestResult()) ? DictEnum.TEST_PASSED : DictEnum.TEST_FAILED; + this.testTime = testrecord.getTestTime(); + this.createTime = DateUtil.formatDateTime(testrecord.getCreateTime()); + this.testUrl = testrecord.getTestUrl(); + } + + public BusinessConnectRecordDTO() { + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java new file mode 100644 index 0000000..2857128 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoRequest.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoRequest { + + private String specialItem; + + private String beginTime; + + private String endTime; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java new file mode 100644 index 0000000..720c6d2 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/BusinessReportInfoResponse.java @@ -0,0 +1,12 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class BusinessReportInfoResponse { + + private String value; + + private String time; + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java index 480e5bc..9eef54d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DictEnum.java @@ -12,4 +12,6 @@ String TEST_FAILED = "不通过"; //测试状态 String TEST_STATUS = "1"; + //发布平台 + String PLATE = "plate"; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java index d52bb99..78e7f0d 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessConnectTestrecord.java @@ -62,7 +62,8 @@ public BusinessConnectTestrecord() { } - public BusinessConnectTestrecord(String[] dto) { + public BusinessConnectTestrecord(String[] dto,String plate) { + this.testPlatform =plate; this.testUrl = dto[0]; this.testTime = dto[1]; this.createTime = new Date(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java index f13bb3c..87f01ba 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/BusinessReportInfo.java @@ -67,6 +67,12 @@ */ @TableField("DESCRIPTION") private String description; + + /** + * 所属专项 + */ + @TableField("SPECIAL_ITEM") + private String specialItem; /** * 上报时间 */ diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java index 4b23c72..9c5df31 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessConnectTestrecordService.java @@ -4,6 +4,8 @@ import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; import java.util.List; /** @@ -19,9 +21,11 @@ boolean saveBusinessConnectTestRecord(String url); - boolean saveBatchBusinessConnectTestRecord(List urls); + boolean saveBatchBusinessConnectTestRecord(List> urls); //解析文件流 - List parseSourceFile(MultipartFile file); + List> parseSourceFile(MultipartFile file); + + void exportUsersToExcel(List list, HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessReportInfoService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessReportInfoService.java index cc38194..5de037f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessReportInfoService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IBusinessReportInfoService.java @@ -2,8 +2,12 @@ import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; +import java.util.HashMap; +import java.util.List; + /** *

* 上报信息记录 服务类 @@ -14,4 +18,9 @@ */ public interface IBusinessReportInfoService extends IService { + + List> statisticsByTime(BusinessReportInfoRequest businessReportInfoRequest); + + List> statisticsByPlate(BusinessReportInfoRequest businessReportInfoRequest); + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessConnectTestrecordServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessConnectTestrecordServiceImpl.java index 3cb69eb..0a3a448 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessConnectTestrecordServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessConnectTestrecordServiceImpl.java @@ -1,21 +1,28 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.modular.system.config.PoolConfig; import com.casic.missiles.modular.system.dao.BusinessConnectTestrecordMapper; +import com.casic.missiles.modular.system.dto.BusinessConnectRecordDTO; import com.casic.missiles.modular.system.model.BusinessConnectTestrecord; import com.casic.missiles.modular.system.service.IBusinessConnectTestrecordService; import com.casic.missiles.modular.system.ssl.LinkTestUtil; import com.casic.missiles.modular.system.util.ExcelUtils; +import com.ibiz.excel.picture.support.model.CellStyle; +import com.ibiz.excel.picture.support.model.Sheet; +import com.ibiz.excel.picture.support.model.Workbook; +import com.ibiz.excel.picture.support.util.WebUtil; import org.apache.commons.collections4.ListUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -50,20 +57,31 @@ public boolean saveBusinessConnectTestRecord(String url) { String result = LinkTestUtil.testUrl(url); - return this.save(new BusinessConnectTestrecord(result.split(","))); + return this.save(new BusinessConnectTestrecord(result.split(","), "")); } @Override - public boolean saveBatchBusinessConnectTestRecord(List urls) { - List> listList = ListUtils.partition(urls, 50); + public boolean saveBatchBusinessConnectTestRecord(List> urls) { + //小于50个测试地址直接返回,大于50用线程返回 + if (ObjectUtil.isNotEmpty(urls) && urls.size() <= 50) { + List testrecordList = new ArrayList<>(); + urls.forEach(s -> { + String result = LinkTestUtil.testUrl(s.get("url") + ""); + testrecordList.add(new BusinessConnectTestrecord(result.split(","), s.get("plate") + "")); + }); + return this.saveBatch(testrecordList); + } + List>> listList = ListUtils.partition(urls, 50); listList.forEach(list -> { threadPoolTaskExecutor.taskExecutor().execute(new Runnable() { @Override public void run() { + List testrecordList = new ArrayList<>(); list.forEach(s -> { - String result = LinkTestUtil.testUrl(s); - save(new BusinessConnectTestrecord(result.split(","))); + String result = LinkTestUtil.testUrl(s.get("url") + ""); + testrecordList.add(new BusinessConnectTestrecord(result.split(","), s.get("plate") + "")); }); + saveBatch(testrecordList); } }); }); @@ -71,21 +89,52 @@ } @Override - public List parseSourceFile(MultipartFile file) { - List stringList = new ArrayList<>(); + public List> parseSourceFile(MultipartFile file) { + List> stringList = new ArrayList<>(); try { - - File Filefile = new File(downloadPath + file.getOriginalFilename()); + File Filefile = new File(downloadPath + System.currentTimeMillis() + file.getOriginalFilename()); + if (!Filefile.exists()) { + Filefile.mkdirs(); + } file.transferTo(Filefile); FileInputStream inputStream = new FileInputStream(Filefile); List> list = ExcelUtils.getListByExcel(inputStream, file.getOriginalFilename()); for (int i = 1; i < list.size(); i++) { + HashMap map = new HashMap<>(); List rows = list.get(i); - stringList.add(rows.get(0) + ""); + if (ObjectUtil.isEmpty(rows.get(0))) continue; + map.put("url", rows.get(0)); + map.put("plate", rows.get(1)); + stringList.add(map); } } catch (Exception e) { e.printStackTrace(); } return stringList; } + + + @Override + public void exportUsersToExcel(List list, HttpServletResponse response) { + Workbook workBook = Workbook.getInstance(1); + + Sheet sheet = workBook.createSheet("测试结果导出"); + // 给标题行加上背景色,加颜色时,会对字体加粗 + sheet.addCellStyle(new CellStyle(0, "66cc66")); + + sheet.write(BusinessConnectRecordDTO.class).createRow(BusinessConnectRecordDTO.convert(list)); + try { + + response.reset(); + response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode("fileName", "UTF-8")); + response.setContentType("application/octet-stream"); + + ServletOutputStream os = response.getOutputStream(); + WebUtil.writeExcel(workBook, "测试结果导出".concat(String.valueOf(System.currentTimeMillis())).concat(".xlsx"), response); + workBook.write(os); + } catch (IOException e) { + e.printStackTrace(); + + } + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessReportInfoServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessReportInfoServiceImpl.java index 2348d97..f557257 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessReportInfoServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/BusinessReportInfoServiceImpl.java @@ -1,12 +1,19 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.modular.system.dao.BusinessReportInfoMapper; +import com.casic.missiles.modular.system.dto.BusinessReportInfoRequest; import com.casic.missiles.modular.system.model.BusinessReportInfo; import com.casic.missiles.modular.system.service.IBusinessReportInfoService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.HashMap; +import java.util.List; + /** *

* 上报信息记录 服务实现类 @@ -18,4 +25,24 @@ @Service public class BusinessReportInfoServiceImpl extends ServiceImpl implements IBusinessReportInfoService { + + @Autowired + private AbstractDictService dictService; + + @Override + public List> statisticsByTime(BusinessReportInfoRequest businessReportInfoRequest) { + return null; + } + + @Override + public List> statisticsByPlate(BusinessReportInfoRequest businessReportInfoRequest) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("SPECIAL_ITEM",businessReportInfoRequest.getSpecialItem()); + List reportInfoRequestList = this.baseMapper.selectList(queryWrapper); + HashMap map = new HashMap<>(); + reportInfoRequestList.forEach(ri->{ +// ri.getPlatform() + }); + return null; + } }