diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index a7f20b8..2b55435 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -56,4 +56,7 @@ //现场登记 String SITE_EXECUTIVE_LOG_PREFIX = "xcdj"; + //下载中心 + String DOWNLOAD_NO = "xzzx"; + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index a7f20b8..2b55435 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -56,4 +56,7 @@ //现场登记 String SITE_EXECUTIVE_LOG_PREFIX = "xcdj"; + //下载中心 + String DOWNLOAD_NO = "xzzx"; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java new file mode 100644 index 0000000..4a75170 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java @@ -0,0 +1,22 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.model.system.DownloadCenter; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cz + * @since 2023-04-03 + */ +public interface DownloadCenterMapper extends BaseMapper { + + Long selectMaxCOrderNo(); + String getFileNameByBusiness(@Param("request") DownloadFileRequest downloadFileRequest); + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index a7f20b8..2b55435 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -56,4 +56,7 @@ //现场登记 String SITE_EXECUTIVE_LOG_PREFIX = "xcdj"; + //下载中心 + String DOWNLOAD_NO = "xzzx"; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java new file mode 100644 index 0000000..4a75170 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java @@ -0,0 +1,22 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.model.system.DownloadCenter; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cz + * @since 2023-04-03 + */ +public interface DownloadCenterMapper extends BaseMapper { + + Long selectMaxCOrderNo(); + String getFileNameByBusiness(@Param("request") DownloadFileRequest downloadFileRequest); + +} diff --git a/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml new file mode 100644 index 0000000..1063077 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + id + , download_no, business_module_name, business_download_type, minio_file_name, file_name, desc, create_user, update_user, is_del, create_time, update_time + + + + + + + + diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index a7f20b8..2b55435 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -56,4 +56,7 @@ //现场登记 String SITE_EXECUTIVE_LOG_PREFIX = "xcdj"; + //下载中心 + String DOWNLOAD_NO = "xzzx"; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java new file mode 100644 index 0000000..4a75170 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java @@ -0,0 +1,22 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.model.system.DownloadCenter; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cz + * @since 2023-04-03 + */ +public interface DownloadCenterMapper extends BaseMapper { + + Long selectMaxCOrderNo(); + String getFileNameByBusiness(@Param("request") DownloadFileRequest downloadFileRequest); + +} diff --git a/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml new file mode 100644 index 0000000..1063077 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + id + , download_no, business_module_name, business_download_type, minio_file_name, file_name, desc, create_user, update_user, is_del, create_time, update_time + + + + + + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java index 1d9bef9..f5723a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java @@ -65,7 +65,7 @@ private String measurePersonId; @ApiModelProperty(value = "证书类型", dataType = "String") - @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateType; @ApiModelProperty(value = "证书类型名称", dataType = "String") diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index a7f20b8..2b55435 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -56,4 +56,7 @@ //现场登记 String SITE_EXECUTIVE_LOG_PREFIX = "xcdj"; + //下载中心 + String DOWNLOAD_NO = "xzzx"; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java new file mode 100644 index 0000000..4a75170 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java @@ -0,0 +1,22 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.model.system.DownloadCenter; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cz + * @since 2023-04-03 + */ +public interface DownloadCenterMapper extends BaseMapper { + + Long selectMaxCOrderNo(); + String getFileNameByBusiness(@Param("request") DownloadFileRequest downloadFileRequest); + +} diff --git a/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml new file mode 100644 index 0000000..1063077 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + id + , download_no, business_module_name, business_download_type, minio_file_name, file_name, desc, create_user, update_user, is_del, create_time, update_time + + + + + + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java index 1d9bef9..f5723a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java @@ -65,7 +65,7 @@ private String measurePersonId; @ApiModelProperty(value = "证书类型", dataType = "String") - @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateType; @ApiModelProperty(value = "证书类型名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java new file mode 100644 index 0000000..26566fa --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel("下载中心请求参数") +@Data +public class DownloadFileRequest { + + private String moduleName; + + private String businessDownloadType; + + private String fileName; + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index a7f20b8..2b55435 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -56,4 +56,7 @@ //现场登记 String SITE_EXECUTIVE_LOG_PREFIX = "xcdj"; + //下载中心 + String DOWNLOAD_NO = "xzzx"; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java new file mode 100644 index 0000000..4a75170 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java @@ -0,0 +1,22 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.model.system.DownloadCenter; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cz + * @since 2023-04-03 + */ +public interface DownloadCenterMapper extends BaseMapper { + + Long selectMaxCOrderNo(); + String getFileNameByBusiness(@Param("request") DownloadFileRequest downloadFileRequest); + +} diff --git a/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml new file mode 100644 index 0000000..1063077 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + id + , download_no, business_module_name, business_download_type, minio_file_name, file_name, desc, create_user, update_user, is_del, create_time, update_time + + + + + + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java index 1d9bef9..f5723a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java @@ -65,7 +65,7 @@ private String measurePersonId; @ApiModelProperty(value = "证书类型", dataType = "String") - @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateType; @ApiModelProperty(value = "证书类型名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java new file mode 100644 index 0000000..26566fa --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel("下载中心请求参数") +@Data +public class DownloadFileRequest { + + private String moduleName; + + private String businessDownloadType; + + private String fileName; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java new file mode 100644 index 0000000..b855ced --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java @@ -0,0 +1,41 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + * @date 2023-04-03 + */ +@ApiModel("下载中心请求参数") +@Data +public class DownloadListRequest { + + @ApiModelProperty("编号") + private String downloadNo; + + @ApiModelProperty("模块名称") + private String moduleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ApiModelProperty("开始时间") + private String endTime; + + @ApiModelProperty("结束时间") + private String startTime; + + @ApiModelProperty(value = "筛选ids", dataType = "List") + private List ids; + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index a7f20b8..2b55435 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -56,4 +56,7 @@ //现场登记 String SITE_EXECUTIVE_LOG_PREFIX = "xcdj"; + //下载中心 + String DOWNLOAD_NO = "xzzx"; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java new file mode 100644 index 0000000..4a75170 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java @@ -0,0 +1,22 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.model.system.DownloadCenter; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cz + * @since 2023-04-03 + */ +public interface DownloadCenterMapper extends BaseMapper { + + Long selectMaxCOrderNo(); + String getFileNameByBusiness(@Param("request") DownloadFileRequest downloadFileRequest); + +} diff --git a/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml new file mode 100644 index 0000000..1063077 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + id + , download_no, business_module_name, business_download_type, minio_file_name, file_name, desc, create_user, update_user, is_del, create_time, update_time + + + + + + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java index 1d9bef9..f5723a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java @@ -65,7 +65,7 @@ private String measurePersonId; @ApiModelProperty(value = "证书类型", dataType = "String") - @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateType; @ApiModelProperty(value = "证书类型名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java new file mode 100644 index 0000000..26566fa --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel("下载中心请求参数") +@Data +public class DownloadFileRequest { + + private String moduleName; + + private String businessDownloadType; + + private String fileName; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java new file mode 100644 index 0000000..b855ced --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java @@ -0,0 +1,41 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + * @date 2023-04-03 + */ +@ApiModel("下载中心请求参数") +@Data +public class DownloadListRequest { + + @ApiModelProperty("编号") + private String downloadNo; + + @ApiModelProperty("模块名称") + private String moduleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ApiModelProperty("开始时间") + private String endTime; + + @ApiModelProperty("结束时间") + private String startTime; + + @ApiModelProperty(value = "筛选ids", dataType = "List") + private List ids; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java new file mode 100644 index 0000000..0151de1 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java @@ -0,0 +1,81 @@ +package com.casic.missiles.dto.system; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author cz + * @date 2023-04-03 + */ +@Data +@ApiModel("文件列表") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DownloadListResponse { + + private Long id; + + @ApiModelProperty("下载编号") + @ExcelProperty(value = "文件编号", order = 0) + private String downloadNo; + + @ApiModelProperty("业务模块名称") + @ExcelProperty(value = "业务模块名称", order = 1) + private String metaModuleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @TableField(exist = false) + @ExcelProperty(value = "业务类型", order =2 ) + private String businessDownloadTypeName; + + @ApiModelProperty("minio存储文件名") + @ExcelProperty(value = "minio存储文件名", order = 3) + private String minioFileName; + + @ApiModelProperty("文件名称") + @ExcelProperty(value = "文件名称", order = 4) + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ExcelProperty(value = "文件类型", order = 5) + private String fileTypeName; + + @ApiModelProperty("描述备注") + @ExcelProperty(value = "描述备注", order = 6) + private String desc; + + @ApiModelProperty("创建人id") + private Long createUser; + + @ApiModelProperty("更新人id") + @ExcelProperty(value = "描述备注", order = 6) + private Long updateUser; + + @ApiModelProperty("创建时间") + @ExcelProperty(value = "创建时间", order = 7) + private LocalDateTime createTime; + + @ApiModelProperty("更新时间") + @ExcelProperty(value = "更新时间", order = 8) + private LocalDateTime updateTime; + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index a7f20b8..2b55435 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -56,4 +56,7 @@ //现场登记 String SITE_EXECUTIVE_LOG_PREFIX = "xcdj"; + //下载中心 + String DOWNLOAD_NO = "xzzx"; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java new file mode 100644 index 0000000..4a75170 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java @@ -0,0 +1,22 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.model.system.DownloadCenter; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cz + * @since 2023-04-03 + */ +public interface DownloadCenterMapper extends BaseMapper { + + Long selectMaxCOrderNo(); + String getFileNameByBusiness(@Param("request") DownloadFileRequest downloadFileRequest); + +} diff --git a/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml new file mode 100644 index 0000000..1063077 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + id + , download_no, business_module_name, business_download_type, minio_file_name, file_name, desc, create_user, update_user, is_del, create_time, update_time + + + + + + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java index 1d9bef9..f5723a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java @@ -65,7 +65,7 @@ private String measurePersonId; @ApiModelProperty(value = "证书类型", dataType = "String") - @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateType; @ApiModelProperty(value = "证书类型名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java new file mode 100644 index 0000000..26566fa --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel("下载中心请求参数") +@Data +public class DownloadFileRequest { + + private String moduleName; + + private String businessDownloadType; + + private String fileName; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java new file mode 100644 index 0000000..b855ced --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java @@ -0,0 +1,41 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + * @date 2023-04-03 + */ +@ApiModel("下载中心请求参数") +@Data +public class DownloadListRequest { + + @ApiModelProperty("编号") + private String downloadNo; + + @ApiModelProperty("模块名称") + private String moduleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ApiModelProperty("开始时间") + private String endTime; + + @ApiModelProperty("结束时间") + private String startTime; + + @ApiModelProperty(value = "筛选ids", dataType = "List") + private List ids; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java new file mode 100644 index 0000000..0151de1 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java @@ -0,0 +1,81 @@ +package com.casic.missiles.dto.system; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author cz + * @date 2023-04-03 + */ +@Data +@ApiModel("文件列表") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DownloadListResponse { + + private Long id; + + @ApiModelProperty("下载编号") + @ExcelProperty(value = "文件编号", order = 0) + private String downloadNo; + + @ApiModelProperty("业务模块名称") + @ExcelProperty(value = "业务模块名称", order = 1) + private String metaModuleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @TableField(exist = false) + @ExcelProperty(value = "业务类型", order =2 ) + private String businessDownloadTypeName; + + @ApiModelProperty("minio存储文件名") + @ExcelProperty(value = "minio存储文件名", order = 3) + private String minioFileName; + + @ApiModelProperty("文件名称") + @ExcelProperty(value = "文件名称", order = 4) + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ExcelProperty(value = "文件类型", order = 5) + private String fileTypeName; + + @ApiModelProperty("描述备注") + @ExcelProperty(value = "描述备注", order = 6) + private String desc; + + @ApiModelProperty("创建人id") + private Long createUser; + + @ApiModelProperty("更新人id") + @ExcelProperty(value = "描述备注", order = 6) + private Long updateUser; + + @ApiModelProperty("创建时间") + @ExcelProperty(value = "创建时间", order = 7) + private LocalDateTime createTime; + + @ApiModelProperty("更新时间") + @ExcelProperty(value = "更新时间", order = 8) + private LocalDateTime updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java index 8853c7d..d80e679 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java @@ -64,6 +64,9 @@ @ApiModelProperty(value = "客户id", dataType = "String") private Long customerId; + @ApiModelProperty(value = "投诉图片", dataType = "String") + private String adviceImages; + @ApiModelProperty(value = "投诉内容", dataType = "String") @ExcelProperty(value = "投诉内容", order = 6) private String content; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index a7f20b8..2b55435 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -56,4 +56,7 @@ //现场登记 String SITE_EXECUTIVE_LOG_PREFIX = "xcdj"; + //下载中心 + String DOWNLOAD_NO = "xzzx"; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java new file mode 100644 index 0000000..4a75170 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java @@ -0,0 +1,22 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.model.system.DownloadCenter; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cz + * @since 2023-04-03 + */ +public interface DownloadCenterMapper extends BaseMapper { + + Long selectMaxCOrderNo(); + String getFileNameByBusiness(@Param("request") DownloadFileRequest downloadFileRequest); + +} diff --git a/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml new file mode 100644 index 0000000..1063077 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + id + , download_no, business_module_name, business_download_type, minio_file_name, file_name, desc, create_user, update_user, is_del, create_time, update_time + + + + + + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java index 1d9bef9..f5723a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java @@ -65,7 +65,7 @@ private String measurePersonId; @ApiModelProperty(value = "证书类型", dataType = "String") - @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateType; @ApiModelProperty(value = "证书类型名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java new file mode 100644 index 0000000..26566fa --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel("下载中心请求参数") +@Data +public class DownloadFileRequest { + + private String moduleName; + + private String businessDownloadType; + + private String fileName; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java new file mode 100644 index 0000000..b855ced --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java @@ -0,0 +1,41 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + * @date 2023-04-03 + */ +@ApiModel("下载中心请求参数") +@Data +public class DownloadListRequest { + + @ApiModelProperty("编号") + private String downloadNo; + + @ApiModelProperty("模块名称") + private String moduleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ApiModelProperty("开始时间") + private String endTime; + + @ApiModelProperty("结束时间") + private String startTime; + + @ApiModelProperty(value = "筛选ids", dataType = "List") + private List ids; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java new file mode 100644 index 0000000..0151de1 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java @@ -0,0 +1,81 @@ +package com.casic.missiles.dto.system; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author cz + * @date 2023-04-03 + */ +@Data +@ApiModel("文件列表") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DownloadListResponse { + + private Long id; + + @ApiModelProperty("下载编号") + @ExcelProperty(value = "文件编号", order = 0) + private String downloadNo; + + @ApiModelProperty("业务模块名称") + @ExcelProperty(value = "业务模块名称", order = 1) + private String metaModuleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @TableField(exist = false) + @ExcelProperty(value = "业务类型", order =2 ) + private String businessDownloadTypeName; + + @ApiModelProperty("minio存储文件名") + @ExcelProperty(value = "minio存储文件名", order = 3) + private String minioFileName; + + @ApiModelProperty("文件名称") + @ExcelProperty(value = "文件名称", order = 4) + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ExcelProperty(value = "文件类型", order = 5) + private String fileTypeName; + + @ApiModelProperty("描述备注") + @ExcelProperty(value = "描述备注", order = 6) + private String desc; + + @ApiModelProperty("创建人id") + private Long createUser; + + @ApiModelProperty("更新人id") + @ExcelProperty(value = "描述备注", order = 6) + private Long updateUser; + + @ApiModelProperty("创建时间") + @ExcelProperty(value = "创建时间", order = 7) + private LocalDateTime createTime; + + @ApiModelProperty("更新时间") + @ExcelProperty(value = "更新时间", order = 8) + private LocalDateTime updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java index 8853c7d..d80e679 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java @@ -64,6 +64,9 @@ @ApiModelProperty(value = "客户id", dataType = "String") private Long customerId; + @ApiModelProperty(value = "投诉图片", dataType = "String") + private String adviceImages; + @ApiModelProperty(value = "投诉内容", dataType = "String") @ExcelProperty(value = "投诉内容", order = 6) private String content; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/DownloadCenter.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/DownloadCenter.java new file mode 100644 index 0000000..cb60f73 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/DownloadCenter.java @@ -0,0 +1,93 @@ +package com.casic.missiles.model.system; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotNull; + +/** + *

+ * + *

+ * + * @author cz + * @since 2023-04-03 + */ +@Getter +@Setter +@TableName("system_download_center") +public class DownloadCenter implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + private Long id; + + @ApiModelProperty("下载编号") + @TableField("download_no") + private String downloadNo; + + @NotNull + @ApiModelProperty("业务模块名称") + @TableField("module_name") + private String moduleName; + + @NotNull + @ApiModelProperty("业务类型(字典)") + @TableField("business_download_type") + private String businessDownloadType; + + @ApiModelProperty("minio存储文件名") + @TableField("minio_file_name") + private String minioFileName; + + @TableField("file_name") + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件类型") + @TableField("file_type") + private String fileType; + + @ApiModelProperty("描述备注") + @TableField("desc") + private String desc; + + /** + * 创建人id + */ + @TableField("create_user") + private Long createUser; + + /** + * 更新人id + */ + @TableField("update_user") + private Long updateUser; + + /** + * 删除标记 + */ + @TableField("is_del") + private Boolean isDel; + + /** + * 创建时间 + */ + @TableField("create_time") + private LocalDateTime createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private LocalDateTime updateTime; + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index a7f20b8..2b55435 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -56,4 +56,7 @@ //现场登记 String SITE_EXECUTIVE_LOG_PREFIX = "xcdj"; + //下载中心 + String DOWNLOAD_NO = "xzzx"; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java new file mode 100644 index 0000000..4a75170 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java @@ -0,0 +1,22 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.model.system.DownloadCenter; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cz + * @since 2023-04-03 + */ +public interface DownloadCenterMapper extends BaseMapper { + + Long selectMaxCOrderNo(); + String getFileNameByBusiness(@Param("request") DownloadFileRequest downloadFileRequest); + +} diff --git a/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml new file mode 100644 index 0000000..1063077 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + id + , download_no, business_module_name, business_download_type, minio_file_name, file_name, desc, create_user, update_user, is_del, create_time, update_time + + + + + + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java index 1d9bef9..f5723a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java @@ -65,7 +65,7 @@ private String measurePersonId; @ApiModelProperty(value = "证书类型", dataType = "String") - @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateType; @ApiModelProperty(value = "证书类型名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java new file mode 100644 index 0000000..26566fa --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel("下载中心请求参数") +@Data +public class DownloadFileRequest { + + private String moduleName; + + private String businessDownloadType; + + private String fileName; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java new file mode 100644 index 0000000..b855ced --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java @@ -0,0 +1,41 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + * @date 2023-04-03 + */ +@ApiModel("下载中心请求参数") +@Data +public class DownloadListRequest { + + @ApiModelProperty("编号") + private String downloadNo; + + @ApiModelProperty("模块名称") + private String moduleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ApiModelProperty("开始时间") + private String endTime; + + @ApiModelProperty("结束时间") + private String startTime; + + @ApiModelProperty(value = "筛选ids", dataType = "List") + private List ids; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java new file mode 100644 index 0000000..0151de1 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java @@ -0,0 +1,81 @@ +package com.casic.missiles.dto.system; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author cz + * @date 2023-04-03 + */ +@Data +@ApiModel("文件列表") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DownloadListResponse { + + private Long id; + + @ApiModelProperty("下载编号") + @ExcelProperty(value = "文件编号", order = 0) + private String downloadNo; + + @ApiModelProperty("业务模块名称") + @ExcelProperty(value = "业务模块名称", order = 1) + private String metaModuleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @TableField(exist = false) + @ExcelProperty(value = "业务类型", order =2 ) + private String businessDownloadTypeName; + + @ApiModelProperty("minio存储文件名") + @ExcelProperty(value = "minio存储文件名", order = 3) + private String minioFileName; + + @ApiModelProperty("文件名称") + @ExcelProperty(value = "文件名称", order = 4) + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ExcelProperty(value = "文件类型", order = 5) + private String fileTypeName; + + @ApiModelProperty("描述备注") + @ExcelProperty(value = "描述备注", order = 6) + private String desc; + + @ApiModelProperty("创建人id") + private Long createUser; + + @ApiModelProperty("更新人id") + @ExcelProperty(value = "描述备注", order = 6) + private Long updateUser; + + @ApiModelProperty("创建时间") + @ExcelProperty(value = "创建时间", order = 7) + private LocalDateTime createTime; + + @ApiModelProperty("更新时间") + @ExcelProperty(value = "更新时间", order = 8) + private LocalDateTime updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java index 8853c7d..d80e679 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java @@ -64,6 +64,9 @@ @ApiModelProperty(value = "客户id", dataType = "String") private Long customerId; + @ApiModelProperty(value = "投诉图片", dataType = "String") + private String adviceImages; + @ApiModelProperty(value = "投诉内容", dataType = "String") @ExcelProperty(value = "投诉内容", order = 6) private String content; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/DownloadCenter.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/DownloadCenter.java new file mode 100644 index 0000000..cb60f73 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/DownloadCenter.java @@ -0,0 +1,93 @@ +package com.casic.missiles.model.system; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotNull; + +/** + *

+ * + *

+ * + * @author cz + * @since 2023-04-03 + */ +@Getter +@Setter +@TableName("system_download_center") +public class DownloadCenter implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + private Long id; + + @ApiModelProperty("下载编号") + @TableField("download_no") + private String downloadNo; + + @NotNull + @ApiModelProperty("业务模块名称") + @TableField("module_name") + private String moduleName; + + @NotNull + @ApiModelProperty("业务类型(字典)") + @TableField("business_download_type") + private String businessDownloadType; + + @ApiModelProperty("minio存储文件名") + @TableField("minio_file_name") + private String minioFileName; + + @TableField("file_name") + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件类型") + @TableField("file_type") + private String fileType; + + @ApiModelProperty("描述备注") + @TableField("desc") + private String desc; + + /** + * 创建人id + */ + @TableField("create_user") + private Long createUser; + + /** + * 更新人id + */ + @TableField("update_user") + private Long updateUser; + + /** + * 删除标记 + */ + @TableField("is_del") + private Boolean isDel; + + /** + * 创建时间 + */ + @TableField("create_time") + private LocalDateTime createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private LocalDateTime updateTime; + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/DownloadCenterServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/DownloadCenterServiceImpl.java new file mode 100644 index 0000000..23684ba --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/DownloadCenterServiceImpl.java @@ -0,0 +1,155 @@ +package com.casic.missiles.service.Impl.system; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.meter.TraceSupplierApprovalListResponse; +import com.casic.missiles.dto.meter.TrainLogListRequest; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.mapper.system.DownloadCenterMapper; +import com.casic.missiles.model.meter.MeterTrainLog; +import com.casic.missiles.model.system.DownloadCenter; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.system.IDownloadCenterService; +import com.casic.missiles.utils.ConvertUtils; +import com.casic.missiles.utils.MinioUtil; +import com.casic.missiles.utils.NumberGeneratorUtil; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@Service +@AllArgsConstructor +public class DownloadCenterServiceImpl extends ServiceImpl implements IDownloadCenterService { + + private final MinioUtil minioUtil; + private final IBaseExportService iBaseExportService; + + + @Override + public Page listPage(Page page, DownloadListRequest request) { + QueryWrapper queryWrapper = getWrapper(request); + Page downloadListResponsePage = PageFactory.defaultPage(); + Page downloadCenterPage = this.baseMapper.selectPage(page, queryWrapper); + downloadListResponsePage.setRecords(ConvertUtils.sourceToTarget(downloadCenterPage.getRecords(), DownloadListResponse.class)); + return downloadListResponsePage; + } + + @Override + public void downloadFileExport(DownloadListRequest request, HttpServletResponse response) throws IOException { + Page page = PageFactory.defaultPage(); + Page downloadListResponsePage = PageFactory.defaultPage(); + if (!CollectionUtils.isEmpty(request.getIds())) { + List downloadCenterPage = this.baseMapper.selectBatchIds(request.getIds()); + page.setRecords(downloadCenterPage); + downloadListResponsePage.setRecords(ConvertUtils.sourceToTarget(page.getRecords(), DownloadListResponse.class)); + } else { + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + request.setIds(null); + downloadListResponsePage = listPage(page, request); + } + iBaseExportService.exportExcel(response, DownloadListResponse.class, downloadListResponsePage.getRecords(), ExportEnum.DOWNLOAD_TEMPLATE.getSheetName()); + } + + + @Override + public ReturnDTO addDownloadFile(DownloadCenter downloadCenter) { + initDownloadFile(downloadCenter); + int addFlag = this.baseMapper.insert(downloadCenter); + if (addFlag > 0) { + return ReturnUtil.success(); + } + return null; + } + + /** + * 查询,删除之前的文件 + * 上传新的文件 + */ + @Override + public ReturnDTO updateDownloadFile(DownloadCenter downloadCenter) { + AuthUser authUser = ShiroKit.getUser(); + downloadCenter.setUpdateUser(authUser.getId()); + int updateFlag = this.baseMapper.updateById(downloadCenter); + if (updateFlag > 0) { + return ReturnUtil.success(); + } + return ReturnUtil.failed("更新失败"); + } + + @Override + public DownloadCenter downloadFileDetail(Long id) { + DownloadCenter downloadCenter = this.baseMapper.selectById(id); + return downloadCenter; + } + + @Override + public ReturnDTO deleteDownloadFile(Long id) { + int deleteFlag = this.baseMapper.deleteById(id); + if (deleteFlag > 0) { + return ReturnUtil.success(); + } + return ReturnUtil.failed("删除失败"); + } + + @Override + public ReturnDTO downloadFile(DownloadFileRequest downloadFileRequest) { + if (StringUtils.isEmpty(downloadFileRequest.getFileName())) { + downloadFileRequest.setFileName(this.baseMapper.getFileNameByBusiness(downloadFileRequest)); + } + ResponseEntity download = minioUtil.download(downloadFileRequest.getFileName()); + return ReturnUtil.success(download); + } + + private QueryWrapper getWrapper(DownloadListRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(request.getDownloadNo()), "download_no", request.getDownloadNo()); + wrapper.like(StringUtils.isNotBlank(request.getModuleName()), "module_name", request.getModuleName()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.like(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); + wrapper.apply(StringUtils.isNotBlank(request.getStartTime()), + "{0} <= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEndTime()), + "{0} >= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getEndTime().split(" ")[0]); + wrapper.eq("is_del", 0); + return wrapper; + } + + private void initDownloadFile(DownloadCenter downloadCenter) { + Long maxNo = this.baseMapper.selectMaxCOrderNo(); + String downloadNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.DOWNLOAD_NO, maxNo); + AuthUser authUser = ShiroKit.getUser(); + downloadCenter.setCreateUser(authUser.getId()); + downloadCenter.setUpdateUser(authUser.getId()); + downloadCenter.setDownloadNo(downloadNo); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index a7f20b8..2b55435 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -56,4 +56,7 @@ //现场登记 String SITE_EXECUTIVE_LOG_PREFIX = "xcdj"; + //下载中心 + String DOWNLOAD_NO = "xzzx"; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java new file mode 100644 index 0000000..4a75170 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java @@ -0,0 +1,22 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.model.system.DownloadCenter; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cz + * @since 2023-04-03 + */ +public interface DownloadCenterMapper extends BaseMapper { + + Long selectMaxCOrderNo(); + String getFileNameByBusiness(@Param("request") DownloadFileRequest downloadFileRequest); + +} diff --git a/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml new file mode 100644 index 0000000..1063077 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + id + , download_no, business_module_name, business_download_type, minio_file_name, file_name, desc, create_user, update_user, is_del, create_time, update_time + + + + + + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java index 1d9bef9..f5723a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java @@ -65,7 +65,7 @@ private String measurePersonId; @ApiModelProperty(value = "证书类型", dataType = "String") - @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateType; @ApiModelProperty(value = "证书类型名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java new file mode 100644 index 0000000..26566fa --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel("下载中心请求参数") +@Data +public class DownloadFileRequest { + + private String moduleName; + + private String businessDownloadType; + + private String fileName; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java new file mode 100644 index 0000000..b855ced --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java @@ -0,0 +1,41 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + * @date 2023-04-03 + */ +@ApiModel("下载中心请求参数") +@Data +public class DownloadListRequest { + + @ApiModelProperty("编号") + private String downloadNo; + + @ApiModelProperty("模块名称") + private String moduleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ApiModelProperty("开始时间") + private String endTime; + + @ApiModelProperty("结束时间") + private String startTime; + + @ApiModelProperty(value = "筛选ids", dataType = "List") + private List ids; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java new file mode 100644 index 0000000..0151de1 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java @@ -0,0 +1,81 @@ +package com.casic.missiles.dto.system; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author cz + * @date 2023-04-03 + */ +@Data +@ApiModel("文件列表") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DownloadListResponse { + + private Long id; + + @ApiModelProperty("下载编号") + @ExcelProperty(value = "文件编号", order = 0) + private String downloadNo; + + @ApiModelProperty("业务模块名称") + @ExcelProperty(value = "业务模块名称", order = 1) + private String metaModuleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @TableField(exist = false) + @ExcelProperty(value = "业务类型", order =2 ) + private String businessDownloadTypeName; + + @ApiModelProperty("minio存储文件名") + @ExcelProperty(value = "minio存储文件名", order = 3) + private String minioFileName; + + @ApiModelProperty("文件名称") + @ExcelProperty(value = "文件名称", order = 4) + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ExcelProperty(value = "文件类型", order = 5) + private String fileTypeName; + + @ApiModelProperty("描述备注") + @ExcelProperty(value = "描述备注", order = 6) + private String desc; + + @ApiModelProperty("创建人id") + private Long createUser; + + @ApiModelProperty("更新人id") + @ExcelProperty(value = "描述备注", order = 6) + private Long updateUser; + + @ApiModelProperty("创建时间") + @ExcelProperty(value = "创建时间", order = 7) + private LocalDateTime createTime; + + @ApiModelProperty("更新时间") + @ExcelProperty(value = "更新时间", order = 8) + private LocalDateTime updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java index 8853c7d..d80e679 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java @@ -64,6 +64,9 @@ @ApiModelProperty(value = "客户id", dataType = "String") private Long customerId; + @ApiModelProperty(value = "投诉图片", dataType = "String") + private String adviceImages; + @ApiModelProperty(value = "投诉内容", dataType = "String") @ExcelProperty(value = "投诉内容", order = 6) private String content; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/DownloadCenter.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/DownloadCenter.java new file mode 100644 index 0000000..cb60f73 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/DownloadCenter.java @@ -0,0 +1,93 @@ +package com.casic.missiles.model.system; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotNull; + +/** + *

+ * + *

+ * + * @author cz + * @since 2023-04-03 + */ +@Getter +@Setter +@TableName("system_download_center") +public class DownloadCenter implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + private Long id; + + @ApiModelProperty("下载编号") + @TableField("download_no") + private String downloadNo; + + @NotNull + @ApiModelProperty("业务模块名称") + @TableField("module_name") + private String moduleName; + + @NotNull + @ApiModelProperty("业务类型(字典)") + @TableField("business_download_type") + private String businessDownloadType; + + @ApiModelProperty("minio存储文件名") + @TableField("minio_file_name") + private String minioFileName; + + @TableField("file_name") + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件类型") + @TableField("file_type") + private String fileType; + + @ApiModelProperty("描述备注") + @TableField("desc") + private String desc; + + /** + * 创建人id + */ + @TableField("create_user") + private Long createUser; + + /** + * 更新人id + */ + @TableField("update_user") + private Long updateUser; + + /** + * 删除标记 + */ + @TableField("is_del") + private Boolean isDel; + + /** + * 创建时间 + */ + @TableField("create_time") + private LocalDateTime createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private LocalDateTime updateTime; + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/DownloadCenterServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/DownloadCenterServiceImpl.java new file mode 100644 index 0000000..23684ba --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/DownloadCenterServiceImpl.java @@ -0,0 +1,155 @@ +package com.casic.missiles.service.Impl.system; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.meter.TraceSupplierApprovalListResponse; +import com.casic.missiles.dto.meter.TrainLogListRequest; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.mapper.system.DownloadCenterMapper; +import com.casic.missiles.model.meter.MeterTrainLog; +import com.casic.missiles.model.system.DownloadCenter; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.system.IDownloadCenterService; +import com.casic.missiles.utils.ConvertUtils; +import com.casic.missiles.utils.MinioUtil; +import com.casic.missiles.utils.NumberGeneratorUtil; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@Service +@AllArgsConstructor +public class DownloadCenterServiceImpl extends ServiceImpl implements IDownloadCenterService { + + private final MinioUtil minioUtil; + private final IBaseExportService iBaseExportService; + + + @Override + public Page listPage(Page page, DownloadListRequest request) { + QueryWrapper queryWrapper = getWrapper(request); + Page downloadListResponsePage = PageFactory.defaultPage(); + Page downloadCenterPage = this.baseMapper.selectPage(page, queryWrapper); + downloadListResponsePage.setRecords(ConvertUtils.sourceToTarget(downloadCenterPage.getRecords(), DownloadListResponse.class)); + return downloadListResponsePage; + } + + @Override + public void downloadFileExport(DownloadListRequest request, HttpServletResponse response) throws IOException { + Page page = PageFactory.defaultPage(); + Page downloadListResponsePage = PageFactory.defaultPage(); + if (!CollectionUtils.isEmpty(request.getIds())) { + List downloadCenterPage = this.baseMapper.selectBatchIds(request.getIds()); + page.setRecords(downloadCenterPage); + downloadListResponsePage.setRecords(ConvertUtils.sourceToTarget(page.getRecords(), DownloadListResponse.class)); + } else { + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + request.setIds(null); + downloadListResponsePage = listPage(page, request); + } + iBaseExportService.exportExcel(response, DownloadListResponse.class, downloadListResponsePage.getRecords(), ExportEnum.DOWNLOAD_TEMPLATE.getSheetName()); + } + + + @Override + public ReturnDTO addDownloadFile(DownloadCenter downloadCenter) { + initDownloadFile(downloadCenter); + int addFlag = this.baseMapper.insert(downloadCenter); + if (addFlag > 0) { + return ReturnUtil.success(); + } + return null; + } + + /** + * 查询,删除之前的文件 + * 上传新的文件 + */ + @Override + public ReturnDTO updateDownloadFile(DownloadCenter downloadCenter) { + AuthUser authUser = ShiroKit.getUser(); + downloadCenter.setUpdateUser(authUser.getId()); + int updateFlag = this.baseMapper.updateById(downloadCenter); + if (updateFlag > 0) { + return ReturnUtil.success(); + } + return ReturnUtil.failed("更新失败"); + } + + @Override + public DownloadCenter downloadFileDetail(Long id) { + DownloadCenter downloadCenter = this.baseMapper.selectById(id); + return downloadCenter; + } + + @Override + public ReturnDTO deleteDownloadFile(Long id) { + int deleteFlag = this.baseMapper.deleteById(id); + if (deleteFlag > 0) { + return ReturnUtil.success(); + } + return ReturnUtil.failed("删除失败"); + } + + @Override + public ReturnDTO downloadFile(DownloadFileRequest downloadFileRequest) { + if (StringUtils.isEmpty(downloadFileRequest.getFileName())) { + downloadFileRequest.setFileName(this.baseMapper.getFileNameByBusiness(downloadFileRequest)); + } + ResponseEntity download = minioUtil.download(downloadFileRequest.getFileName()); + return ReturnUtil.success(download); + } + + private QueryWrapper getWrapper(DownloadListRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(request.getDownloadNo()), "download_no", request.getDownloadNo()); + wrapper.like(StringUtils.isNotBlank(request.getModuleName()), "module_name", request.getModuleName()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.like(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); + wrapper.apply(StringUtils.isNotBlank(request.getStartTime()), + "{0} <= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEndTime()), + "{0} >= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getEndTime().split(" ")[0]); + wrapper.eq("is_del", 0); + return wrapper; + } + + private void initDownloadFile(DownloadCenter downloadCenter) { + Long maxNo = this.baseMapper.selectMaxCOrderNo(); + String downloadNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.DOWNLOAD_NO, maxNo); + AuthUser authUser = ShiroKit.getUser(); + downloadCenter.setCreateUser(authUser.getId()); + downloadCenter.setUpdateUser(authUser.getId()); + downloadCenter.setDownloadNo(downloadNo); + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java index febd2da..5322230 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java @@ -88,15 +88,15 @@ certificateReport = certificateReportMapper.selectById(id); //进行证书报告生成,并在远程注册服务器注册 PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = ""; try { DictCodeUtils.convertDictCodeToName(certificateReport); - printFileName = printFileRegister.registerPrintFile(certificateReport, certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile(certificateReport, certificateReport.getCertificateReportTypeName()); + //生成证书打印信息 + CertificatePrintBuilder(certificateReport, printFileName); } catch (Exception ex) { log.error("打印异常,证书报告信息为{},异常信息为{}", JSONObject.toJSON(certificateReport), ex); } - //生成证书打印信息 - CertificatePrintBuilder(certificateReport, printFileName); + } /** diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java new file mode 100644 index 0000000..40a1867 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/download/DownloadCenterController.java @@ -0,0 +1,124 @@ +package com.casic.missiles.controller.system.download; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.dto.system.SignListRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.model.system.DownloadCenter; +import com.casic.missiles.model.system.SystemSign; +import com.casic.missiles.service.system.IDownloadCenterService; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 前端控制器 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@RestController +@RequestMapping("/download/center") +@AllArgsConstructor +public class DownloadCenterController extends ExportController { + + private final IDownloadCenterService downloadCenterService; + + + @ApiOperation("下载文件分页") + @PostMapping("/listPage") + @ResponseBody + public ReturnDTO> downloadFileListPage(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(downloadCenterService.listPage(page, request))); + } + + @ResponseBody + @ApiOperation("更新下载文件") + @PostMapping("/update") + public ReturnDTO updateDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.updateDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/add") + public ReturnDTO addDownloadFile(@RequestBody @Valid DownloadCenter downloadCenter, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.addDownloadFile(downloadCenter); + } + + @ResponseBody + @ApiOperation("下载文件详情") + @PostMapping("/detail") + public ReturnDTO downloadFileDetail(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return ReturnUtil.success(downloadCenterService.downloadFileDetail(idDTO.getId())); + } + + @ResponseBody + @ApiOperation("删除下载文件") + @PostMapping("/delete") + public ReturnDTO deleteDownloadFile(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return downloadCenterService.deleteDownloadFile(idDTO.getId()); + } + + @ResponseBody + @ApiOperation("新增下载文件") + @PostMapping("/downloadFile") + public ReturnDTO downloadFile(@RequestBody @Valid DownloadFileRequest downloadFileRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return downloadCenterService.downloadFile(downloadFileRequest); + + } + + + @ApiOperation("文件导出") + @PostMapping("/listExport") + @ResponseBody + public void export(@RequestBody @Valid DownloadListRequest request, BindingResult bindingResult, HttpServletResponse response) throws IOException { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + downloadCenterService.downloadFileExport(request,response); + } +} diff --git a/casic-metering-api/src/main/resources/config/application.yml b/casic-metering-api/src/main/resources/config/application.yml index abf5fb0..c749975 100644 --- a/casic-metering-api/src/main/resources/config/application.yml +++ b/casic-metering-api/src/main/resources/config/application.yml @@ -119,9 +119,9 @@ code: generate: #作者 - author: wangpeng + author: cz #待生成对象表名 - table-name: business_certificate_print + table-name: system_download_center reminder: #节点--common模块config包 ReminderNodeConfig配置 node: diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java index ac65bf4..ed820ff 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java @@ -40,7 +40,8 @@ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"), HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表"), OUTSOURCER_EXPORT("outsourcerData", "outsourcerData", "分包方"), - CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"); + CERTIFICATE_PRINT_EXPORT("certificatePrintData", "certificatePrintData", "证书打印"), + DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java index a7f20b8..2b55435 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/PrefixCodeEnum.java @@ -56,4 +56,7 @@ //现场登记 String SITE_EXECUTIVE_LOG_PREFIX = "xcdj"; + //下载中心 + String DOWNLOAD_NO = "xzzx"; + } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java new file mode 100644 index 0000000..4a75170 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/DownloadCenterMapper.java @@ -0,0 +1,22 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.model.system.DownloadCenter; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + *

+ * Mapper 接口 + *

+ * + * @author cz + * @since 2023-04-03 + */ +public interface DownloadCenterMapper extends BaseMapper { + + Long selectMaxCOrderNo(); + String getFileNameByBusiness(@Param("request") DownloadFileRequest downloadFileRequest); + +} diff --git a/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml new file mode 100644 index 0000000..1063077 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/DownloadCenterMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + id + , download_no, business_module_name, business_download_type, minio_file_name, file_name, desc, create_user, update_user, is_del, create_time, update_time + + + + + + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java index 1d9bef9..f5723a0 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java @@ -65,7 +65,7 @@ private String measurePersonId; @ApiModelProperty(value = "证书类型", dataType = "String") - @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE) + @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_CLASS) private String certificateType; @ApiModelProperty(value = "证书类型名称", dataType = "String") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java new file mode 100644 index 0000000..26566fa --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadFileRequest.java @@ -0,0 +1,19 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@ApiModel("下载中心请求参数") +@Data +public class DownloadFileRequest { + + private String moduleName; + + private String businessDownloadType; + + private String fileName; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java new file mode 100644 index 0000000..b855ced --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListRequest.java @@ -0,0 +1,41 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author cz + * @date 2023-04-03 + */ +@ApiModel("下载中心请求参数") +@Data +public class DownloadListRequest { + + @ApiModelProperty("编号") + private String downloadNo; + + @ApiModelProperty("模块名称") + private String moduleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ApiModelProperty("开始时间") + private String endTime; + + @ApiModelProperty("结束时间") + private String startTime; + + @ApiModelProperty(value = "筛选ids", dataType = "List") + private List ids; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java new file mode 100644 index 0000000..0151de1 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/DownloadListResponse.java @@ -0,0 +1,81 @@ +package com.casic.missiles.dto.system; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author cz + * @date 2023-04-03 + */ +@Data +@ApiModel("文件列表") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class DownloadListResponse { + + private Long id; + + @ApiModelProperty("下载编号") + @ExcelProperty(value = "文件编号", order = 0) + private String downloadNo; + + @ApiModelProperty("业务模块名称") + @ExcelProperty(value = "业务模块名称", order = 1) + private String metaModuleName; + + @ApiModelProperty("业务类型") + private String businessDownloadType; + + @TableField(exist = false) + @ExcelProperty(value = "业务类型", order =2 ) + private String businessDownloadTypeName; + + @ApiModelProperty("minio存储文件名") + @ExcelProperty(value = "minio存储文件名", order = 3) + private String minioFileName; + + @ApiModelProperty("文件名称") + @ExcelProperty(value = "文件名称", order = 4) + private String fileName; + + @ApiModelProperty("文件类型") + private String fileType; + + @ExcelProperty(value = "文件类型", order = 5) + private String fileTypeName; + + @ApiModelProperty("描述备注") + @ExcelProperty(value = "描述备注", order = 6) + private String desc; + + @ApiModelProperty("创建人id") + private Long createUser; + + @ApiModelProperty("更新人id") + @ExcelProperty(value = "描述备注", order = 6) + private Long updateUser; + + @ApiModelProperty("创建时间") + @ExcelProperty(value = "创建时间", order = 7) + private LocalDateTime createTime; + + @ApiModelProperty("更新时间") + @ExcelProperty(value = "更新时间", order = 8) + private LocalDateTime updateTime; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java index 8853c7d..d80e679 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/customer/CustomerAdviceInfo.java @@ -64,6 +64,9 @@ @ApiModelProperty(value = "客户id", dataType = "String") private Long customerId; + @ApiModelProperty(value = "投诉图片", dataType = "String") + private String adviceImages; + @ApiModelProperty(value = "投诉内容", dataType = "String") @ExcelProperty(value = "投诉内容", order = 6) private String content; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/DownloadCenter.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/DownloadCenter.java new file mode 100644 index 0000000..cb60f73 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/DownloadCenter.java @@ -0,0 +1,93 @@ +package com.casic.missiles.model.system; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotNull; + +/** + *

+ * + *

+ * + * @author cz + * @since 2023-04-03 + */ +@Getter +@Setter +@TableName("system_download_center") +public class DownloadCenter implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + private Long id; + + @ApiModelProperty("下载编号") + @TableField("download_no") + private String downloadNo; + + @NotNull + @ApiModelProperty("业务模块名称") + @TableField("module_name") + private String moduleName; + + @NotNull + @ApiModelProperty("业务类型(字典)") + @TableField("business_download_type") + private String businessDownloadType; + + @ApiModelProperty("minio存储文件名") + @TableField("minio_file_name") + private String minioFileName; + + @TableField("file_name") + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件类型") + @TableField("file_type") + private String fileType; + + @ApiModelProperty("描述备注") + @TableField("desc") + private String desc; + + /** + * 创建人id + */ + @TableField("create_user") + private Long createUser; + + /** + * 更新人id + */ + @TableField("update_user") + private Long updateUser; + + /** + * 删除标记 + */ + @TableField("is_del") + private Boolean isDel; + + /** + * 创建时间 + */ + @TableField("create_time") + private LocalDateTime createTime; + + /** + * 更新时间 + */ + @TableField("update_time") + private LocalDateTime updateTime; + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/DownloadCenterServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/DownloadCenterServiceImpl.java new file mode 100644 index 0000000..23684ba --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/DownloadCenterServiceImpl.java @@ -0,0 +1,155 @@ +package com.casic.missiles.service.Impl.system; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.shiro.ShiroKit; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; +import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.meter.TraceSupplierApprovalListResponse; +import com.casic.missiles.dto.meter.TrainLogListRequest; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.enums.ExportEnum; +import com.casic.missiles.enums.PrefixCodeEnum; +import com.casic.missiles.mapper.system.DownloadCenterMapper; +import com.casic.missiles.model.meter.MeterTrainLog; +import com.casic.missiles.model.system.DownloadCenter; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.system.IDownloadCenterService; +import com.casic.missiles.utils.ConvertUtils; +import com.casic.missiles.utils.MinioUtil; +import com.casic.missiles.utils.NumberGeneratorUtil; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + +/** + *

+ * 服务实现类 + *

+ * + * @author cz + * @since 2023-04-03 + */ +@Service +@AllArgsConstructor +public class DownloadCenterServiceImpl extends ServiceImpl implements IDownloadCenterService { + + private final MinioUtil minioUtil; + private final IBaseExportService iBaseExportService; + + + @Override + public Page listPage(Page page, DownloadListRequest request) { + QueryWrapper queryWrapper = getWrapper(request); + Page downloadListResponsePage = PageFactory.defaultPage(); + Page downloadCenterPage = this.baseMapper.selectPage(page, queryWrapper); + downloadListResponsePage.setRecords(ConvertUtils.sourceToTarget(downloadCenterPage.getRecords(), DownloadListResponse.class)); + return downloadListResponsePage; + } + + @Override + public void downloadFileExport(DownloadListRequest request, HttpServletResponse response) throws IOException { + Page page = PageFactory.defaultPage(); + Page downloadListResponsePage = PageFactory.defaultPage(); + if (!CollectionUtils.isEmpty(request.getIds())) { + List downloadCenterPage = this.baseMapper.selectBatchIds(request.getIds()); + page.setRecords(downloadCenterPage); + downloadListResponsePage.setRecords(ConvertUtils.sourceToTarget(page.getRecords(), DownloadListResponse.class)); + } else { + page.setCurrent(1); + page.setSearchCount(false); + page.setSize(Integer.MAX_VALUE); + request.setIds(null); + downloadListResponsePage = listPage(page, request); + } + iBaseExportService.exportExcel(response, DownloadListResponse.class, downloadListResponsePage.getRecords(), ExportEnum.DOWNLOAD_TEMPLATE.getSheetName()); + } + + + @Override + public ReturnDTO addDownloadFile(DownloadCenter downloadCenter) { + initDownloadFile(downloadCenter); + int addFlag = this.baseMapper.insert(downloadCenter); + if (addFlag > 0) { + return ReturnUtil.success(); + } + return null; + } + + /** + * 查询,删除之前的文件 + * 上传新的文件 + */ + @Override + public ReturnDTO updateDownloadFile(DownloadCenter downloadCenter) { + AuthUser authUser = ShiroKit.getUser(); + downloadCenter.setUpdateUser(authUser.getId()); + int updateFlag = this.baseMapper.updateById(downloadCenter); + if (updateFlag > 0) { + return ReturnUtil.success(); + } + return ReturnUtil.failed("更新失败"); + } + + @Override + public DownloadCenter downloadFileDetail(Long id) { + DownloadCenter downloadCenter = this.baseMapper.selectById(id); + return downloadCenter; + } + + @Override + public ReturnDTO deleteDownloadFile(Long id) { + int deleteFlag = this.baseMapper.deleteById(id); + if (deleteFlag > 0) { + return ReturnUtil.success(); + } + return ReturnUtil.failed("删除失败"); + } + + @Override + public ReturnDTO downloadFile(DownloadFileRequest downloadFileRequest) { + if (StringUtils.isEmpty(downloadFileRequest.getFileName())) { + downloadFileRequest.setFileName(this.baseMapper.getFileNameByBusiness(downloadFileRequest)); + } + ResponseEntity download = minioUtil.download(downloadFileRequest.getFileName()); + return ReturnUtil.success(download); + } + + private QueryWrapper getWrapper(DownloadListRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.like(StringUtils.isNotBlank(request.getDownloadNo()), "download_no", request.getDownloadNo()); + wrapper.like(StringUtils.isNotBlank(request.getModuleName()), "module_name", request.getModuleName()); + wrapper.like(StringUtils.isNotBlank(request.getFileName()), "file_name", request.getFileName()); + wrapper.like(StringUtils.isNotBlank(request.getFileType()), "file_type", request.getFileType()); + wrapper.apply(StringUtils.isNotBlank(request.getStartTime()), + "{0} <= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getStartTime().split(" ")[0]); + wrapper.apply(StringUtils.isNotBlank(request.getEndTime()), + "{0} >= DATE_FORMAT(create_time,'%Y-%m-%d')", request.getEndTime().split(" ")[0]); + wrapper.eq("is_del", 0); + return wrapper; + } + + private void initDownloadFile(DownloadCenter downloadCenter) { + Long maxNo = this.baseMapper.selectMaxCOrderNo(); + String downloadNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.DOWNLOAD_NO, maxNo); + AuthUser authUser = ShiroKit.getUser(); + downloadCenter.setCreateUser(authUser.getId()); + downloadCenter.setUpdateUser(authUser.getId()); + downloadCenter.setDownloadNo(downloadNo); + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java index febd2da..5322230 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/CertificateReportEventPostProcessor.java @@ -88,15 +88,15 @@ certificateReport = certificateReportMapper.selectById(id); //进行证书报告生成,并在远程注册服务器注册 PrintFileRegister printFileRegister = SpringContextUtil.getBean(PrintFileRegister.class); - String printFileName = ""; try { DictCodeUtils.convertDictCodeToName(certificateReport); - printFileName = printFileRegister.registerPrintFile(certificateReport, certificateReport.getCertificateReportTypeName()); + String printFileName = printFileRegister.registerPrintFile(certificateReport, certificateReport.getCertificateReportTypeName()); + //生成证书打印信息 + CertificatePrintBuilder(certificateReport, printFileName); } catch (Exception ex) { log.error("打印异常,证书报告信息为{},异常信息为{}", JSONObject.toJSON(certificateReport), ex); } - //生成证书打印信息 - CertificatePrintBuilder(certificateReport, printFileName); + } /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/IDownloadCenterService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/IDownloadCenterService.java new file mode 100644 index 0000000..dacc27a --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/IDownloadCenterService.java @@ -0,0 +1,37 @@ +package com.casic.missiles.service.system; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.system.DownloadFileRequest; +import com.casic.missiles.dto.system.DownloadListRequest; +import com.casic.missiles.dto.system.DownloadListResponse; +import com.casic.missiles.model.system.DownloadCenter; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + *

+ * 服务类 + *

+ * + * @author cz + * @since 2023-04-03 + */ +public interface IDownloadCenterService extends IService { + + Page listPage(Page page, DownloadListRequest request); + + void downloadFileExport(DownloadListRequest request, HttpServletResponse response) throws IOException; + + ReturnDTO addDownloadFile(DownloadCenter downloadCenter); + + ReturnDTO updateDownloadFile(DownloadCenter downloadCenter); + + DownloadCenter downloadFileDetail(Long id); + + ReturnDTO deleteDownloadFile(Long id); + + ReturnDTO downloadFile(DownloadFileRequest downloadFileRequest); +}