diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml index cec8ec4..bb93eb3 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml @@ -4,7 +4,6 @@ --- mfa.id, asset_no, asset_type, equipment_name, equipment_no, is_fixed_assets, manufacturer, manufacturer_country, manufacturing_no, manufacturing_date, model_no, manager_state, ABC, label_bind, card_establishment_date, enable_date, mesure_type, mesure_cycle, mesure_range, uncertainty, use_dept,use_person, major_category, mesure_dept, mesure_date, valid_date, mesure_result, is_calibration_test_equipment, is_measure_account, is_standard_support_equipment, asset_source, equipment_specifications, equipment_category, equipment_type, capital_source, manager_level, purpose, technical_level, intact_state, overall_dimension, weight, single_price, install_incidental_expenses, install_place, origin_value, present_origin_value, depreciation_period, depreciation_method, attribute, version, remark, create_user, is_del, create_time, update_time mfa.* + diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml index cec8ec4..bb93eb3 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml @@ -4,7 +4,6 @@ --- mfa.id, asset_no, asset_type, equipment_name, equipment_no, is_fixed_assets, manufacturer, manufacturer_country, manufacturing_no, manufacturing_date, model_no, manager_state, ABC, label_bind, card_establishment_date, enable_date, mesure_type, mesure_cycle, mesure_range, uncertainty, use_dept,use_person, major_category, mesure_dept, mesure_date, valid_date, mesure_result, is_calibration_test_equipment, is_measure_account, is_standard_support_equipment, asset_source, equipment_specifications, equipment_category, equipment_type, capital_source, manager_level, purpose, technical_level, intact_state, overall_dimension, weight, single_price, install_incidental_expenses, install_place, origin_value, present_origin_value, depreciation_period, depreciation_method, attribute, version, remark, create_user, is_del, create_time, update_time mfa.* + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java index bf5f547..cf26b0d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,19 +16,28 @@ * @Author: wangpeng * @Date: 2023/4/11 19:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardBaseResponse { @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门", order = 1) @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; @ApiModelProperty(value = "人员id", dataType = "Long") private Long staffId; + @ExcelProperty(value = "人员", order = 2) @ApiModelProperty(value = "人员名字", dataType = "String") private String staffName; + @ExcelProperty(value = "检定样品数量", order = 3) @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "出具证书数量", order = 4) @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml index cec8ec4..bb93eb3 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml @@ -4,7 +4,6 @@ --- mfa.id, asset_no, asset_type, equipment_name, equipment_no, is_fixed_assets, manufacturer, manufacturer_country, manufacturing_no, manufacturing_date, model_no, manager_state, ABC, label_bind, card_establishment_date, enable_date, mesure_type, mesure_cycle, mesure_range, uncertainty, use_dept,use_person, major_category, mesure_dept, mesure_date, valid_date, mesure_result, is_calibration_test_equipment, is_measure_account, is_standard_support_equipment, asset_source, equipment_specifications, equipment_category, equipment_type, capital_source, manager_level, purpose, technical_level, intact_state, overall_dimension, weight, single_price, install_incidental_expenses, install_place, origin_value, present_origin_value, depreciation_period, depreciation_method, attribute, version, remark, create_user, is_del, create_time, update_time mfa.* + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java index bf5f547..cf26b0d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,19 +16,28 @@ * @Author: wangpeng * @Date: 2023/4/11 19:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardBaseResponse { @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门", order = 1) @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; @ApiModelProperty(value = "人员id", dataType = "Long") private Long staffId; + @ExcelProperty(value = "人员", order = 2) @ApiModelProperty(value = "人员名字", dataType = "String") private String staffName; + @ExcelProperty(value = "检定样品数量", order = 3) @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "出具证书数量", order = 4) @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java index 0f7c282..fed5905 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/12 9:55 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptComprehensiveResponse { @@ -19,22 +31,31 @@ private Long id; @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门") @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; + @ExcelProperty(value = "检定样品数量") @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "总样品数量") @ApiModelProperty(value = "总样品数量", dataType = "Integer") private Integer samplesTotal = 0; + @ExcelProperty(value = "出具证书数量") @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; + @ExcelProperty(value = "超期样品总数") @ApiModelProperty(value = "超期样品总数", dataType = "Integer") private Integer expireSamples = 0; + @ExcelProperty(value = "超期率") @ApiModelProperty(value = "超期率", dataType = "String") private String expireRate; + @ExcelProperty(value = "设备检定及时率") @ApiModelProperty(value = "设备检定及时率", dataType = "String") private String deviceTimelyRate; + @ExcelProperty(value = "设备检定合格率") @ApiModelProperty(value = "设备检定合格率", dataType = "String") private String deviceQualifyRate; + @ExcelProperty(value = "设备维修率") @ApiModelProperty(value = "设备维修率", dataType = "String") private String deviceRepairRate; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml index cec8ec4..bb93eb3 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml @@ -4,7 +4,6 @@ --- mfa.id, asset_no, asset_type, equipment_name, equipment_no, is_fixed_assets, manufacturer, manufacturer_country, manufacturing_no, manufacturing_date, model_no, manager_state, ABC, label_bind, card_establishment_date, enable_date, mesure_type, mesure_cycle, mesure_range, uncertainty, use_dept,use_person, major_category, mesure_dept, mesure_date, valid_date, mesure_result, is_calibration_test_equipment, is_measure_account, is_standard_support_equipment, asset_source, equipment_specifications, equipment_category, equipment_type, capital_source, manager_level, purpose, technical_level, intact_state, overall_dimension, weight, single_price, install_incidental_expenses, install_place, origin_value, present_origin_value, depreciation_period, depreciation_method, attribute, version, remark, create_user, is_del, create_time, update_time mfa.* + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java index bf5f547..cf26b0d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,19 +16,28 @@ * @Author: wangpeng * @Date: 2023/4/11 19:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardBaseResponse { @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门", order = 1) @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; @ApiModelProperty(value = "人员id", dataType = "Long") private Long staffId; + @ExcelProperty(value = "人员", order = 2) @ApiModelProperty(value = "人员名字", dataType = "String") private String staffName; + @ExcelProperty(value = "检定样品数量", order = 3) @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "出具证书数量", order = 4) @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java index 0f7c282..fed5905 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/12 9:55 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptComprehensiveResponse { @@ -19,22 +31,31 @@ private Long id; @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门") @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; + @ExcelProperty(value = "检定样品数量") @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "总样品数量") @ApiModelProperty(value = "总样品数量", dataType = "Integer") private Integer samplesTotal = 0; + @ExcelProperty(value = "出具证书数量") @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; + @ExcelProperty(value = "超期样品总数") @ApiModelProperty(value = "超期样品总数", dataType = "Integer") private Integer expireSamples = 0; + @ExcelProperty(value = "超期率") @ApiModelProperty(value = "超期率", dataType = "String") private String expireRate; + @ExcelProperty(value = "设备检定及时率") @ApiModelProperty(value = "设备检定及时率", dataType = "String") private String deviceTimelyRate; + @ExcelProperty(value = "设备检定合格率") @ApiModelProperty(value = "设备检定合格率", dataType = "String") private String deviceQualifyRate; + @ExcelProperty(value = "设备维修率") @ApiModelProperty(value = "设备维修率", dataType = "String") private String deviceRepairRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java index fd89146..a133482 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 15:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptOutputResponse extends BoardBaseResponse { + @ExcelProperty(value = "产值统计", order = 10) @ApiModelProperty(value = "产值统计(单位分)", dataType = "String") private String outPut; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml index cec8ec4..bb93eb3 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml @@ -4,7 +4,6 @@ --- mfa.id, asset_no, asset_type, equipment_name, equipment_no, is_fixed_assets, manufacturer, manufacturer_country, manufacturing_no, manufacturing_date, model_no, manager_state, ABC, label_bind, card_establishment_date, enable_date, mesure_type, mesure_cycle, mesure_range, uncertainty, use_dept,use_person, major_category, mesure_dept, mesure_date, valid_date, mesure_result, is_calibration_test_equipment, is_measure_account, is_standard_support_equipment, asset_source, equipment_specifications, equipment_category, equipment_type, capital_source, manager_level, purpose, technical_level, intact_state, overall_dimension, weight, single_price, install_incidental_expenses, install_place, origin_value, present_origin_value, depreciation_period, depreciation_method, attribute, version, remark, create_user, is_del, create_time, update_time mfa.* + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java index bf5f547..cf26b0d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,19 +16,28 @@ * @Author: wangpeng * @Date: 2023/4/11 19:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardBaseResponse { @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门", order = 1) @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; @ApiModelProperty(value = "人员id", dataType = "Long") private Long staffId; + @ExcelProperty(value = "人员", order = 2) @ApiModelProperty(value = "人员名字", dataType = "String") private String staffName; + @ExcelProperty(value = "检定样品数量", order = 3) @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "出具证书数量", order = 4) @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java index 0f7c282..fed5905 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/12 9:55 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptComprehensiveResponse { @@ -19,22 +31,31 @@ private Long id; @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门") @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; + @ExcelProperty(value = "检定样品数量") @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "总样品数量") @ApiModelProperty(value = "总样品数量", dataType = "Integer") private Integer samplesTotal = 0; + @ExcelProperty(value = "出具证书数量") @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; + @ExcelProperty(value = "超期样品总数") @ApiModelProperty(value = "超期样品总数", dataType = "Integer") private Integer expireSamples = 0; + @ExcelProperty(value = "超期率") @ApiModelProperty(value = "超期率", dataType = "String") private String expireRate; + @ExcelProperty(value = "设备检定及时率") @ApiModelProperty(value = "设备检定及时率", dataType = "String") private String deviceTimelyRate; + @ExcelProperty(value = "设备检定合格率") @ApiModelProperty(value = "设备检定合格率", dataType = "String") private String deviceQualifyRate; + @ExcelProperty(value = "设备维修率") @ApiModelProperty(value = "设备维修率", dataType = "String") private String deviceRepairRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java index fd89146..a133482 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 15:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptOutputResponse extends BoardBaseResponse { + @ExcelProperty(value = "产值统计", order = 10) @ApiModelProperty(value = "产值统计(单位分)", dataType = "String") private String outPut; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java index 0213ba8..0a0eb5a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/10 9:06 */ +@ColumnWidth(35) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkStatisticsResponse { @@ -21,30 +33,39 @@ @ApiModelProperty(value = "检测实验室id", dataType = "Long") private Long deptId; //实验室编号 + @ExcelProperty("实验室编号") @ApiModelProperty(value = "实验室编号", dataType = "String") private String organizeNo; //实验室名字 + @ExcelProperty("实验室名字") @ApiModelProperty(value = "实验室名字", dataType = "String") private String organizeName; //当日检测完样品 + @ExcelProperty("当日检测完样品") @ApiModelProperty(value = "当日检测完样品", dataType = "Integer") private Integer samplesCompletedToday; //当日检定员出具证书数 + @ExcelProperty("当日检定员出具证书数") @ApiModelProperty(value = "当日检定员出具证书数", dataType = "Integer") private Integer certificatesToday; //当日到期样品数 + @ExcelProperty("当日到期样品数") @ApiModelProperty(value = "当日到期样品数", dataType = "Integer") private Integer expireSamplesToday; //今年样品数(实验室今年所有状态的样品数) + @ExcelProperty("今年样品数") @ApiModelProperty(value = "今年样品数", dataType = "Integer") private Integer samplesYear; //今年超期样品总数 + @ExcelProperty("今年超期样品总数") @ApiModelProperty(value = "今年超期样品总数", dataType = "Integer") private Integer expireSamplesYear; //今年超期样品总数-检测中 + @ExcelProperty("今年超期样品总数-检测中") @ApiModelProperty(value = "今年超期样品总数-检测中", dataType = "Integer") private Integer inMeasureExpireSamplesYear; //超期率 + @ExcelProperty("超期率") @ApiModelProperty(value = "超期率", dataType = "Integer") private String expireRate; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml index cec8ec4..bb93eb3 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml @@ -4,7 +4,6 @@ --- mfa.id, asset_no, asset_type, equipment_name, equipment_no, is_fixed_assets, manufacturer, manufacturer_country, manufacturing_no, manufacturing_date, model_no, manager_state, ABC, label_bind, card_establishment_date, enable_date, mesure_type, mesure_cycle, mesure_range, uncertainty, use_dept,use_person, major_category, mesure_dept, mesure_date, valid_date, mesure_result, is_calibration_test_equipment, is_measure_account, is_standard_support_equipment, asset_source, equipment_specifications, equipment_category, equipment_type, capital_source, manager_level, purpose, technical_level, intact_state, overall_dimension, weight, single_price, install_incidental_expenses, install_place, origin_value, present_origin_value, depreciation_period, depreciation_method, attribute, version, remark, create_user, is_del, create_time, update_time mfa.* + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java index bf5f547..cf26b0d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,19 +16,28 @@ * @Author: wangpeng * @Date: 2023/4/11 19:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardBaseResponse { @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门", order = 1) @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; @ApiModelProperty(value = "人员id", dataType = "Long") private Long staffId; + @ExcelProperty(value = "人员", order = 2) @ApiModelProperty(value = "人员名字", dataType = "String") private String staffName; + @ExcelProperty(value = "检定样品数量", order = 3) @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "出具证书数量", order = 4) @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java index 0f7c282..fed5905 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/12 9:55 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptComprehensiveResponse { @@ -19,22 +31,31 @@ private Long id; @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门") @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; + @ExcelProperty(value = "检定样品数量") @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "总样品数量") @ApiModelProperty(value = "总样品数量", dataType = "Integer") private Integer samplesTotal = 0; + @ExcelProperty(value = "出具证书数量") @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; + @ExcelProperty(value = "超期样品总数") @ApiModelProperty(value = "超期样品总数", dataType = "Integer") private Integer expireSamples = 0; + @ExcelProperty(value = "超期率") @ApiModelProperty(value = "超期率", dataType = "String") private String expireRate; + @ExcelProperty(value = "设备检定及时率") @ApiModelProperty(value = "设备检定及时率", dataType = "String") private String deviceTimelyRate; + @ExcelProperty(value = "设备检定合格率") @ApiModelProperty(value = "设备检定合格率", dataType = "String") private String deviceQualifyRate; + @ExcelProperty(value = "设备维修率") @ApiModelProperty(value = "设备维修率", dataType = "String") private String deviceRepairRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java index fd89146..a133482 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 15:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptOutputResponse extends BoardBaseResponse { + @ExcelProperty(value = "产值统计", order = 10) @ApiModelProperty(value = "产值统计(单位分)", dataType = "String") private String outPut; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java index 0213ba8..0a0eb5a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/10 9:06 */ +@ColumnWidth(35) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkStatisticsResponse { @@ -21,30 +33,39 @@ @ApiModelProperty(value = "检测实验室id", dataType = "Long") private Long deptId; //实验室编号 + @ExcelProperty("实验室编号") @ApiModelProperty(value = "实验室编号", dataType = "String") private String organizeNo; //实验室名字 + @ExcelProperty("实验室名字") @ApiModelProperty(value = "实验室名字", dataType = "String") private String organizeName; //当日检测完样品 + @ExcelProperty("当日检测完样品") @ApiModelProperty(value = "当日检测完样品", dataType = "Integer") private Integer samplesCompletedToday; //当日检定员出具证书数 + @ExcelProperty("当日检定员出具证书数") @ApiModelProperty(value = "当日检定员出具证书数", dataType = "Integer") private Integer certificatesToday; //当日到期样品数 + @ExcelProperty("当日到期样品数") @ApiModelProperty(value = "当日到期样品数", dataType = "Integer") private Integer expireSamplesToday; //今年样品数(实验室今年所有状态的样品数) + @ExcelProperty("今年样品数") @ApiModelProperty(value = "今年样品数", dataType = "Integer") private Integer samplesYear; //今年超期样品总数 + @ExcelProperty("今年超期样品总数") @ApiModelProperty(value = "今年超期样品总数", dataType = "Integer") private Integer expireSamplesYear; //今年超期样品总数-检测中 + @ExcelProperty("今年超期样品总数-检测中") @ApiModelProperty(value = "今年超期样品总数-检测中", dataType = "Integer") private Integer inMeasureExpireSamplesYear; //超期率 + @ExcelProperty("超期率") @ApiModelProperty(value = "超期率", dataType = "Integer") private String expireRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java index 83928cb..2791a03 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 17:09 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkloadResponse extends BoardBaseResponse { + @ExcelProperty(value = "较上月工作量分析", order = 10) @ApiModelProperty(value = "较上月工作量分析", dataType = "String") private String compareLastMonth; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml index cec8ec4..bb93eb3 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml @@ -4,7 +4,6 @@ --- mfa.id, asset_no, asset_type, equipment_name, equipment_no, is_fixed_assets, manufacturer, manufacturer_country, manufacturing_no, manufacturing_date, model_no, manager_state, ABC, label_bind, card_establishment_date, enable_date, mesure_type, mesure_cycle, mesure_range, uncertainty, use_dept,use_person, major_category, mesure_dept, mesure_date, valid_date, mesure_result, is_calibration_test_equipment, is_measure_account, is_standard_support_equipment, asset_source, equipment_specifications, equipment_category, equipment_type, capital_source, manager_level, purpose, technical_level, intact_state, overall_dimension, weight, single_price, install_incidental_expenses, install_place, origin_value, present_origin_value, depreciation_period, depreciation_method, attribute, version, remark, create_user, is_del, create_time, update_time mfa.* + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java index bf5f547..cf26b0d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,19 +16,28 @@ * @Author: wangpeng * @Date: 2023/4/11 19:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardBaseResponse { @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门", order = 1) @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; @ApiModelProperty(value = "人员id", dataType = "Long") private Long staffId; + @ExcelProperty(value = "人员", order = 2) @ApiModelProperty(value = "人员名字", dataType = "String") private String staffName; + @ExcelProperty(value = "检定样品数量", order = 3) @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "出具证书数量", order = 4) @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java index 0f7c282..fed5905 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/12 9:55 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptComprehensiveResponse { @@ -19,22 +31,31 @@ private Long id; @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门") @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; + @ExcelProperty(value = "检定样品数量") @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "总样品数量") @ApiModelProperty(value = "总样品数量", dataType = "Integer") private Integer samplesTotal = 0; + @ExcelProperty(value = "出具证书数量") @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; + @ExcelProperty(value = "超期样品总数") @ApiModelProperty(value = "超期样品总数", dataType = "Integer") private Integer expireSamples = 0; + @ExcelProperty(value = "超期率") @ApiModelProperty(value = "超期率", dataType = "String") private String expireRate; + @ExcelProperty(value = "设备检定及时率") @ApiModelProperty(value = "设备检定及时率", dataType = "String") private String deviceTimelyRate; + @ExcelProperty(value = "设备检定合格率") @ApiModelProperty(value = "设备检定合格率", dataType = "String") private String deviceQualifyRate; + @ExcelProperty(value = "设备维修率") @ApiModelProperty(value = "设备维修率", dataType = "String") private String deviceRepairRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java index fd89146..a133482 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 15:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptOutputResponse extends BoardBaseResponse { + @ExcelProperty(value = "产值统计", order = 10) @ApiModelProperty(value = "产值统计(单位分)", dataType = "String") private String outPut; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java index 0213ba8..0a0eb5a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/10 9:06 */ +@ColumnWidth(35) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkStatisticsResponse { @@ -21,30 +33,39 @@ @ApiModelProperty(value = "检测实验室id", dataType = "Long") private Long deptId; //实验室编号 + @ExcelProperty("实验室编号") @ApiModelProperty(value = "实验室编号", dataType = "String") private String organizeNo; //实验室名字 + @ExcelProperty("实验室名字") @ApiModelProperty(value = "实验室名字", dataType = "String") private String organizeName; //当日检测完样品 + @ExcelProperty("当日检测完样品") @ApiModelProperty(value = "当日检测完样品", dataType = "Integer") private Integer samplesCompletedToday; //当日检定员出具证书数 + @ExcelProperty("当日检定员出具证书数") @ApiModelProperty(value = "当日检定员出具证书数", dataType = "Integer") private Integer certificatesToday; //当日到期样品数 + @ExcelProperty("当日到期样品数") @ApiModelProperty(value = "当日到期样品数", dataType = "Integer") private Integer expireSamplesToday; //今年样品数(实验室今年所有状态的样品数) + @ExcelProperty("今年样品数") @ApiModelProperty(value = "今年样品数", dataType = "Integer") private Integer samplesYear; //今年超期样品总数 + @ExcelProperty("今年超期样品总数") @ApiModelProperty(value = "今年超期样品总数", dataType = "Integer") private Integer expireSamplesYear; //今年超期样品总数-检测中 + @ExcelProperty("今年超期样品总数-检测中") @ApiModelProperty(value = "今年超期样品总数-检测中", dataType = "Integer") private Integer inMeasureExpireSamplesYear; //超期率 + @ExcelProperty("超期率") @ApiModelProperty(value = "超期率", dataType = "Integer") private String expireRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java index 83928cb..2791a03 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 17:09 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkloadResponse extends BoardBaseResponse { + @ExcelProperty(value = "较上月工作量分析", order = 10) @ApiModelProperty(value = "较上月工作量分析", dataType = "String") private String compareLastMonth; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java index 2e028b4..6907e9c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java @@ -135,6 +135,13 @@ /** * 主键集合,用于批量查询 */ + @ApiModelProperty(value = "导出ids", dataType = "List") private List ids; + /** + * 扫描标签id + */ + @ApiModelProperty(value = "扫描标签id", dataType = "List") + private String labelId; + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml index cec8ec4..bb93eb3 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml @@ -4,7 +4,6 @@ --- mfa.id, asset_no, asset_type, equipment_name, equipment_no, is_fixed_assets, manufacturer, manufacturer_country, manufacturing_no, manufacturing_date, model_no, manager_state, ABC, label_bind, card_establishment_date, enable_date, mesure_type, mesure_cycle, mesure_range, uncertainty, use_dept,use_person, major_category, mesure_dept, mesure_date, valid_date, mesure_result, is_calibration_test_equipment, is_measure_account, is_standard_support_equipment, asset_source, equipment_specifications, equipment_category, equipment_type, capital_source, manager_level, purpose, technical_level, intact_state, overall_dimension, weight, single_price, install_incidental_expenses, install_place, origin_value, present_origin_value, depreciation_period, depreciation_method, attribute, version, remark, create_user, is_del, create_time, update_time mfa.* + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java index bf5f547..cf26b0d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,19 +16,28 @@ * @Author: wangpeng * @Date: 2023/4/11 19:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardBaseResponse { @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门", order = 1) @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; @ApiModelProperty(value = "人员id", dataType = "Long") private Long staffId; + @ExcelProperty(value = "人员", order = 2) @ApiModelProperty(value = "人员名字", dataType = "String") private String staffName; + @ExcelProperty(value = "检定样品数量", order = 3) @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "出具证书数量", order = 4) @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java index 0f7c282..fed5905 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/12 9:55 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptComprehensiveResponse { @@ -19,22 +31,31 @@ private Long id; @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门") @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; + @ExcelProperty(value = "检定样品数量") @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "总样品数量") @ApiModelProperty(value = "总样品数量", dataType = "Integer") private Integer samplesTotal = 0; + @ExcelProperty(value = "出具证书数量") @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; + @ExcelProperty(value = "超期样品总数") @ApiModelProperty(value = "超期样品总数", dataType = "Integer") private Integer expireSamples = 0; + @ExcelProperty(value = "超期率") @ApiModelProperty(value = "超期率", dataType = "String") private String expireRate; + @ExcelProperty(value = "设备检定及时率") @ApiModelProperty(value = "设备检定及时率", dataType = "String") private String deviceTimelyRate; + @ExcelProperty(value = "设备检定合格率") @ApiModelProperty(value = "设备检定合格率", dataType = "String") private String deviceQualifyRate; + @ExcelProperty(value = "设备维修率") @ApiModelProperty(value = "设备维修率", dataType = "String") private String deviceRepairRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java index fd89146..a133482 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 15:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptOutputResponse extends BoardBaseResponse { + @ExcelProperty(value = "产值统计", order = 10) @ApiModelProperty(value = "产值统计(单位分)", dataType = "String") private String outPut; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java index 0213ba8..0a0eb5a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/10 9:06 */ +@ColumnWidth(35) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkStatisticsResponse { @@ -21,30 +33,39 @@ @ApiModelProperty(value = "检测实验室id", dataType = "Long") private Long deptId; //实验室编号 + @ExcelProperty("实验室编号") @ApiModelProperty(value = "实验室编号", dataType = "String") private String organizeNo; //实验室名字 + @ExcelProperty("实验室名字") @ApiModelProperty(value = "实验室名字", dataType = "String") private String organizeName; //当日检测完样品 + @ExcelProperty("当日检测完样品") @ApiModelProperty(value = "当日检测完样品", dataType = "Integer") private Integer samplesCompletedToday; //当日检定员出具证书数 + @ExcelProperty("当日检定员出具证书数") @ApiModelProperty(value = "当日检定员出具证书数", dataType = "Integer") private Integer certificatesToday; //当日到期样品数 + @ExcelProperty("当日到期样品数") @ApiModelProperty(value = "当日到期样品数", dataType = "Integer") private Integer expireSamplesToday; //今年样品数(实验室今年所有状态的样品数) + @ExcelProperty("今年样品数") @ApiModelProperty(value = "今年样品数", dataType = "Integer") private Integer samplesYear; //今年超期样品总数 + @ExcelProperty("今年超期样品总数") @ApiModelProperty(value = "今年超期样品总数", dataType = "Integer") private Integer expireSamplesYear; //今年超期样品总数-检测中 + @ExcelProperty("今年超期样品总数-检测中") @ApiModelProperty(value = "今年超期样品总数-检测中", dataType = "Integer") private Integer inMeasureExpireSamplesYear; //超期率 + @ExcelProperty("超期率") @ApiModelProperty(value = "超期率", dataType = "Integer") private String expireRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java index 83928cb..2791a03 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 17:09 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkloadResponse extends BoardBaseResponse { + @ExcelProperty(value = "较上月工作量分析", order = 10) @ApiModelProperty(value = "较上月工作量分析", dataType = "String") private String compareLastMonth; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java index 2e028b4..6907e9c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java @@ -135,6 +135,13 @@ /** * 主键集合,用于批量查询 */ + @ApiModelProperty(value = "导出ids", dataType = "List") private List ids; + /** + * 扫描标签id + */ + @ApiModelProperty(value = "扫描标签id", dataType = "List") + private String labelId; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java index d230b7c..aee4fe2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java @@ -128,6 +128,13 @@ private String time; /** + * 归还时间(设备借用) + */ + @TableField("back_time") + @ApiModelProperty(value = "归还时间(设备借用)", dataType = "String") + private String backTime; + + /** * 检修保养人(设备检修保养验收申请) */ @TableField("overhaul_person") diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml index cec8ec4..bb93eb3 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml @@ -4,7 +4,6 @@ --- mfa.id, asset_no, asset_type, equipment_name, equipment_no, is_fixed_assets, manufacturer, manufacturer_country, manufacturing_no, manufacturing_date, model_no, manager_state, ABC, label_bind, card_establishment_date, enable_date, mesure_type, mesure_cycle, mesure_range, uncertainty, use_dept,use_person, major_category, mesure_dept, mesure_date, valid_date, mesure_result, is_calibration_test_equipment, is_measure_account, is_standard_support_equipment, asset_source, equipment_specifications, equipment_category, equipment_type, capital_source, manager_level, purpose, technical_level, intact_state, overall_dimension, weight, single_price, install_incidental_expenses, install_place, origin_value, present_origin_value, depreciation_period, depreciation_method, attribute, version, remark, create_user, is_del, create_time, update_time mfa.* + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java index bf5f547..cf26b0d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,19 +16,28 @@ * @Author: wangpeng * @Date: 2023/4/11 19:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardBaseResponse { @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门", order = 1) @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; @ApiModelProperty(value = "人员id", dataType = "Long") private Long staffId; + @ExcelProperty(value = "人员", order = 2) @ApiModelProperty(value = "人员名字", dataType = "String") private String staffName; + @ExcelProperty(value = "检定样品数量", order = 3) @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "出具证书数量", order = 4) @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java index 0f7c282..fed5905 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/12 9:55 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptComprehensiveResponse { @@ -19,22 +31,31 @@ private Long id; @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门") @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; + @ExcelProperty(value = "检定样品数量") @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "总样品数量") @ApiModelProperty(value = "总样品数量", dataType = "Integer") private Integer samplesTotal = 0; + @ExcelProperty(value = "出具证书数量") @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; + @ExcelProperty(value = "超期样品总数") @ApiModelProperty(value = "超期样品总数", dataType = "Integer") private Integer expireSamples = 0; + @ExcelProperty(value = "超期率") @ApiModelProperty(value = "超期率", dataType = "String") private String expireRate; + @ExcelProperty(value = "设备检定及时率") @ApiModelProperty(value = "设备检定及时率", dataType = "String") private String deviceTimelyRate; + @ExcelProperty(value = "设备检定合格率") @ApiModelProperty(value = "设备检定合格率", dataType = "String") private String deviceQualifyRate; + @ExcelProperty(value = "设备维修率") @ApiModelProperty(value = "设备维修率", dataType = "String") private String deviceRepairRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java index fd89146..a133482 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 15:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptOutputResponse extends BoardBaseResponse { + @ExcelProperty(value = "产值统计", order = 10) @ApiModelProperty(value = "产值统计(单位分)", dataType = "String") private String outPut; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java index 0213ba8..0a0eb5a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/10 9:06 */ +@ColumnWidth(35) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkStatisticsResponse { @@ -21,30 +33,39 @@ @ApiModelProperty(value = "检测实验室id", dataType = "Long") private Long deptId; //实验室编号 + @ExcelProperty("实验室编号") @ApiModelProperty(value = "实验室编号", dataType = "String") private String organizeNo; //实验室名字 + @ExcelProperty("实验室名字") @ApiModelProperty(value = "实验室名字", dataType = "String") private String organizeName; //当日检测完样品 + @ExcelProperty("当日检测完样品") @ApiModelProperty(value = "当日检测完样品", dataType = "Integer") private Integer samplesCompletedToday; //当日检定员出具证书数 + @ExcelProperty("当日检定员出具证书数") @ApiModelProperty(value = "当日检定员出具证书数", dataType = "Integer") private Integer certificatesToday; //当日到期样品数 + @ExcelProperty("当日到期样品数") @ApiModelProperty(value = "当日到期样品数", dataType = "Integer") private Integer expireSamplesToday; //今年样品数(实验室今年所有状态的样品数) + @ExcelProperty("今年样品数") @ApiModelProperty(value = "今年样品数", dataType = "Integer") private Integer samplesYear; //今年超期样品总数 + @ExcelProperty("今年超期样品总数") @ApiModelProperty(value = "今年超期样品总数", dataType = "Integer") private Integer expireSamplesYear; //今年超期样品总数-检测中 + @ExcelProperty("今年超期样品总数-检测中") @ApiModelProperty(value = "今年超期样品总数-检测中", dataType = "Integer") private Integer inMeasureExpireSamplesYear; //超期率 + @ExcelProperty("超期率") @ApiModelProperty(value = "超期率", dataType = "Integer") private String expireRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java index 83928cb..2791a03 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 17:09 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkloadResponse extends BoardBaseResponse { + @ExcelProperty(value = "较上月工作量分析", order = 10) @ApiModelProperty(value = "较上月工作量分析", dataType = "String") private String compareLastMonth; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java index 2e028b4..6907e9c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java @@ -135,6 +135,13 @@ /** * 主键集合,用于批量查询 */ + @ApiModelProperty(value = "导出ids", dataType = "List") private List ids; + /** + * 扫描标签id + */ + @ApiModelProperty(value = "扫描标签id", dataType = "List") + private String labelId; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java index d230b7c..aee4fe2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java @@ -128,6 +128,13 @@ private String time; /** + * 归还时间(设备借用) + */ + @TableField("back_time") + @ApiModelProperty(value = "归还时间(设备借用)", dataType = "String") + private String backTime; + + /** * 检修保养人(设备检修保养验收申请) */ @TableField("overhaul_person") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentRemindExport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentRemindExport.java new file mode 100644 index 0000000..2cd2bb7 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentRemindExport.java @@ -0,0 +1,127 @@ +package com.casic.missiles.model.equipment; + +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.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class EquipmentRemindExport { + + /** + * 设备编号 + */ + @ExcelProperty("设备编号") + @ApiModelProperty(value = "设备编号", dataType = "String") + private String equipmentNo; + + /** + * 设备名称 + */ + @ExcelProperty("设备名称") + @ApiModelProperty(value = "设备名称", dataType = "String") + private String equipmentName; + + /** + * 型号 + */ + @ExcelProperty("型号") + @ApiModelProperty(value = "型号", dataType = "String") + private String modelNo; + + /** + * ABC-字典code + */ + @DictCodeField(message = "ABC不合法", cacheName = MeterDictCode.ABC) + @ApiModelProperty(value = "ABC", dataType = "String", required = false) + private String abc; + + /** + * abcName + */ + @ExcelProperty("ABC") + @ApiModelProperty(value = "abcName", dataType = "String", required = false) + private String abcName; + + /** + * 检定方式-字典code + */ + @ApiModelProperty(value = "检定方式", dataType = "String", required = false) + @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) + private String mesureType; + + /** + * 检定方式名称 + */ + @ExcelProperty("检定方式") + @ApiModelProperty(value = "检定方式名称", dataType = "String", required = false) + private String mesureTypeName; + + /** + * 管理状态-字典code + */ + @ApiModelProperty(value = "管理状态", dataType = "String", required = false) + @DictCodeField(message = "管理状态不合法", cacheName = MeterDictCode.MANAGER_STATE) + private String managerState; + /** + * 管理状态名称 + */ + @ExcelProperty("管理状态") + @ApiModelProperty(value = "管理状态名称", dataType = "String", required = false) + private String managerStateName; + + /** + * 使用人 + */ + @ApiModelProperty(value = "使用人", dataType = "Long", required = false) + private Long usePerson; + + /** + * 使用人名称 + */ + @ExcelProperty("使用人") + @ApiModelProperty(value = "使用人", dataType = "Long", required = false) + private String usePersonName; + + /** + * 使用部门 + */ + @ApiModelProperty(value = "使用部门", dataType = "Long", required = false) + private Long useDept; + + /** + * 使用部门名称 + */ + @ExcelProperty("使用单位") + @ApiModelProperty(value = "使用部门名称", dataType = "String", required = false) + private String useDeptName; + + /** + * 有效日期 + */ + @ExcelProperty("有效日期") + @ApiModelProperty(value = "有效日期", dataType = "String", required = false) + private String validDate; + + /** + * 备注 + */ + @ExcelProperty("备注") + @ApiModelProperty(value = "备注", dataType = "String", required = false) + private String remark; +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml index cec8ec4..bb93eb3 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml @@ -4,7 +4,6 @@ --- mfa.id, asset_no, asset_type, equipment_name, equipment_no, is_fixed_assets, manufacturer, manufacturer_country, manufacturing_no, manufacturing_date, model_no, manager_state, ABC, label_bind, card_establishment_date, enable_date, mesure_type, mesure_cycle, mesure_range, uncertainty, use_dept,use_person, major_category, mesure_dept, mesure_date, valid_date, mesure_result, is_calibration_test_equipment, is_measure_account, is_standard_support_equipment, asset_source, equipment_specifications, equipment_category, equipment_type, capital_source, manager_level, purpose, technical_level, intact_state, overall_dimension, weight, single_price, install_incidental_expenses, install_place, origin_value, present_origin_value, depreciation_period, depreciation_method, attribute, version, remark, create_user, is_del, create_time, update_time mfa.* + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java index bf5f547..cf26b0d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,19 +16,28 @@ * @Author: wangpeng * @Date: 2023/4/11 19:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardBaseResponse { @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门", order = 1) @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; @ApiModelProperty(value = "人员id", dataType = "Long") private Long staffId; + @ExcelProperty(value = "人员", order = 2) @ApiModelProperty(value = "人员名字", dataType = "String") private String staffName; + @ExcelProperty(value = "检定样品数量", order = 3) @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "出具证书数量", order = 4) @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java index 0f7c282..fed5905 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/12 9:55 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptComprehensiveResponse { @@ -19,22 +31,31 @@ private Long id; @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门") @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; + @ExcelProperty(value = "检定样品数量") @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "总样品数量") @ApiModelProperty(value = "总样品数量", dataType = "Integer") private Integer samplesTotal = 0; + @ExcelProperty(value = "出具证书数量") @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; + @ExcelProperty(value = "超期样品总数") @ApiModelProperty(value = "超期样品总数", dataType = "Integer") private Integer expireSamples = 0; + @ExcelProperty(value = "超期率") @ApiModelProperty(value = "超期率", dataType = "String") private String expireRate; + @ExcelProperty(value = "设备检定及时率") @ApiModelProperty(value = "设备检定及时率", dataType = "String") private String deviceTimelyRate; + @ExcelProperty(value = "设备检定合格率") @ApiModelProperty(value = "设备检定合格率", dataType = "String") private String deviceQualifyRate; + @ExcelProperty(value = "设备维修率") @ApiModelProperty(value = "设备维修率", dataType = "String") private String deviceRepairRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java index fd89146..a133482 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 15:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptOutputResponse extends BoardBaseResponse { + @ExcelProperty(value = "产值统计", order = 10) @ApiModelProperty(value = "产值统计(单位分)", dataType = "String") private String outPut; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java index 0213ba8..0a0eb5a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/10 9:06 */ +@ColumnWidth(35) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkStatisticsResponse { @@ -21,30 +33,39 @@ @ApiModelProperty(value = "检测实验室id", dataType = "Long") private Long deptId; //实验室编号 + @ExcelProperty("实验室编号") @ApiModelProperty(value = "实验室编号", dataType = "String") private String organizeNo; //实验室名字 + @ExcelProperty("实验室名字") @ApiModelProperty(value = "实验室名字", dataType = "String") private String organizeName; //当日检测完样品 + @ExcelProperty("当日检测完样品") @ApiModelProperty(value = "当日检测完样品", dataType = "Integer") private Integer samplesCompletedToday; //当日检定员出具证书数 + @ExcelProperty("当日检定员出具证书数") @ApiModelProperty(value = "当日检定员出具证书数", dataType = "Integer") private Integer certificatesToday; //当日到期样品数 + @ExcelProperty("当日到期样品数") @ApiModelProperty(value = "当日到期样品数", dataType = "Integer") private Integer expireSamplesToday; //今年样品数(实验室今年所有状态的样品数) + @ExcelProperty("今年样品数") @ApiModelProperty(value = "今年样品数", dataType = "Integer") private Integer samplesYear; //今年超期样品总数 + @ExcelProperty("今年超期样品总数") @ApiModelProperty(value = "今年超期样品总数", dataType = "Integer") private Integer expireSamplesYear; //今年超期样品总数-检测中 + @ExcelProperty("今年超期样品总数-检测中") @ApiModelProperty(value = "今年超期样品总数-检测中", dataType = "Integer") private Integer inMeasureExpireSamplesYear; //超期率 + @ExcelProperty("超期率") @ApiModelProperty(value = "超期率", dataType = "Integer") private String expireRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java index 83928cb..2791a03 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 17:09 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkloadResponse extends BoardBaseResponse { + @ExcelProperty(value = "较上月工作量分析", order = 10) @ApiModelProperty(value = "较上月工作量分析", dataType = "String") private String compareLastMonth; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java index 2e028b4..6907e9c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java @@ -135,6 +135,13 @@ /** * 主键集合,用于批量查询 */ + @ApiModelProperty(value = "导出ids", dataType = "List") private List ids; + /** + * 扫描标签id + */ + @ApiModelProperty(value = "扫描标签id", dataType = "List") + private String labelId; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java index d230b7c..aee4fe2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java @@ -128,6 +128,13 @@ private String time; /** + * 归还时间(设备借用) + */ + @TableField("back_time") + @ApiModelProperty(value = "归还时间(设备借用)", dataType = "String") + private String backTime; + + /** * 检修保养人(设备检修保养验收申请) */ @TableField("overhaul_person") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentRemindExport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentRemindExport.java new file mode 100644 index 0000000..2cd2bb7 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentRemindExport.java @@ -0,0 +1,127 @@ +package com.casic.missiles.model.equipment; + +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.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class EquipmentRemindExport { + + /** + * 设备编号 + */ + @ExcelProperty("设备编号") + @ApiModelProperty(value = "设备编号", dataType = "String") + private String equipmentNo; + + /** + * 设备名称 + */ + @ExcelProperty("设备名称") + @ApiModelProperty(value = "设备名称", dataType = "String") + private String equipmentName; + + /** + * 型号 + */ + @ExcelProperty("型号") + @ApiModelProperty(value = "型号", dataType = "String") + private String modelNo; + + /** + * ABC-字典code + */ + @DictCodeField(message = "ABC不合法", cacheName = MeterDictCode.ABC) + @ApiModelProperty(value = "ABC", dataType = "String", required = false) + private String abc; + + /** + * abcName + */ + @ExcelProperty("ABC") + @ApiModelProperty(value = "abcName", dataType = "String", required = false) + private String abcName; + + /** + * 检定方式-字典code + */ + @ApiModelProperty(value = "检定方式", dataType = "String", required = false) + @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) + private String mesureType; + + /** + * 检定方式名称 + */ + @ExcelProperty("检定方式") + @ApiModelProperty(value = "检定方式名称", dataType = "String", required = false) + private String mesureTypeName; + + /** + * 管理状态-字典code + */ + @ApiModelProperty(value = "管理状态", dataType = "String", required = false) + @DictCodeField(message = "管理状态不合法", cacheName = MeterDictCode.MANAGER_STATE) + private String managerState; + /** + * 管理状态名称 + */ + @ExcelProperty("管理状态") + @ApiModelProperty(value = "管理状态名称", dataType = "String", required = false) + private String managerStateName; + + /** + * 使用人 + */ + @ApiModelProperty(value = "使用人", dataType = "Long", required = false) + private Long usePerson; + + /** + * 使用人名称 + */ + @ExcelProperty("使用人") + @ApiModelProperty(value = "使用人", dataType = "Long", required = false) + private String usePersonName; + + /** + * 使用部门 + */ + @ApiModelProperty(value = "使用部门", dataType = "Long", required = false) + private Long useDept; + + /** + * 使用部门名称 + */ + @ExcelProperty("使用单位") + @ApiModelProperty(value = "使用部门名称", dataType = "String", required = false) + private String useDeptName; + + /** + * 有效日期 + */ + @ExcelProperty("有效日期") + @ApiModelProperty(value = "有效日期", dataType = "String", required = false) + private String validDate; + + /** + * 备注 + */ + @ExcelProperty("备注") + @ApiModelProperty(value = "备注", dataType = "String", required = false) + private String remark; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyServiceImpl.java index 093a56f..291e46f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyServiceImpl.java @@ -320,7 +320,7 @@ @Transactional public ReturnDTO returnEquipmentApply(IdDTO idDto) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id",idDto.getId()).set("process_result", EquipmentApplyProcessEnum.ALREADY_RETURN); + updateWrapper.eq("id",idDto.getId()).set("process_result", EquipmentApplyProcessEnum.ALREADY_RETURN).set("back_time",new Date()); if(equipmentApplyMapper.update(null, updateWrapper)>0){ // 修改设备使用记录表 this.updateEquipmentUseLog(idDto.getId()); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml index cec8ec4..bb93eb3 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml @@ -4,7 +4,6 @@ --- mfa.id, asset_no, asset_type, equipment_name, equipment_no, is_fixed_assets, manufacturer, manufacturer_country, manufacturing_no, manufacturing_date, model_no, manager_state, ABC, label_bind, card_establishment_date, enable_date, mesure_type, mesure_cycle, mesure_range, uncertainty, use_dept,use_person, major_category, mesure_dept, mesure_date, valid_date, mesure_result, is_calibration_test_equipment, is_measure_account, is_standard_support_equipment, asset_source, equipment_specifications, equipment_category, equipment_type, capital_source, manager_level, purpose, technical_level, intact_state, overall_dimension, weight, single_price, install_incidental_expenses, install_place, origin_value, present_origin_value, depreciation_period, depreciation_method, attribute, version, remark, create_user, is_del, create_time, update_time mfa.* + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java index bf5f547..cf26b0d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,19 +16,28 @@ * @Author: wangpeng * @Date: 2023/4/11 19:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardBaseResponse { @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门", order = 1) @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; @ApiModelProperty(value = "人员id", dataType = "Long") private Long staffId; + @ExcelProperty(value = "人员", order = 2) @ApiModelProperty(value = "人员名字", dataType = "String") private String staffName; + @ExcelProperty(value = "检定样品数量", order = 3) @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "出具证书数量", order = 4) @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java index 0f7c282..fed5905 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/12 9:55 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptComprehensiveResponse { @@ -19,22 +31,31 @@ private Long id; @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门") @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; + @ExcelProperty(value = "检定样品数量") @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "总样品数量") @ApiModelProperty(value = "总样品数量", dataType = "Integer") private Integer samplesTotal = 0; + @ExcelProperty(value = "出具证书数量") @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; + @ExcelProperty(value = "超期样品总数") @ApiModelProperty(value = "超期样品总数", dataType = "Integer") private Integer expireSamples = 0; + @ExcelProperty(value = "超期率") @ApiModelProperty(value = "超期率", dataType = "String") private String expireRate; + @ExcelProperty(value = "设备检定及时率") @ApiModelProperty(value = "设备检定及时率", dataType = "String") private String deviceTimelyRate; + @ExcelProperty(value = "设备检定合格率") @ApiModelProperty(value = "设备检定合格率", dataType = "String") private String deviceQualifyRate; + @ExcelProperty(value = "设备维修率") @ApiModelProperty(value = "设备维修率", dataType = "String") private String deviceRepairRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java index fd89146..a133482 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 15:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptOutputResponse extends BoardBaseResponse { + @ExcelProperty(value = "产值统计", order = 10) @ApiModelProperty(value = "产值统计(单位分)", dataType = "String") private String outPut; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java index 0213ba8..0a0eb5a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/10 9:06 */ +@ColumnWidth(35) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkStatisticsResponse { @@ -21,30 +33,39 @@ @ApiModelProperty(value = "检测实验室id", dataType = "Long") private Long deptId; //实验室编号 + @ExcelProperty("实验室编号") @ApiModelProperty(value = "实验室编号", dataType = "String") private String organizeNo; //实验室名字 + @ExcelProperty("实验室名字") @ApiModelProperty(value = "实验室名字", dataType = "String") private String organizeName; //当日检测完样品 + @ExcelProperty("当日检测完样品") @ApiModelProperty(value = "当日检测完样品", dataType = "Integer") private Integer samplesCompletedToday; //当日检定员出具证书数 + @ExcelProperty("当日检定员出具证书数") @ApiModelProperty(value = "当日检定员出具证书数", dataType = "Integer") private Integer certificatesToday; //当日到期样品数 + @ExcelProperty("当日到期样品数") @ApiModelProperty(value = "当日到期样品数", dataType = "Integer") private Integer expireSamplesToday; //今年样品数(实验室今年所有状态的样品数) + @ExcelProperty("今年样品数") @ApiModelProperty(value = "今年样品数", dataType = "Integer") private Integer samplesYear; //今年超期样品总数 + @ExcelProperty("今年超期样品总数") @ApiModelProperty(value = "今年超期样品总数", dataType = "Integer") private Integer expireSamplesYear; //今年超期样品总数-检测中 + @ExcelProperty("今年超期样品总数-检测中") @ApiModelProperty(value = "今年超期样品总数-检测中", dataType = "Integer") private Integer inMeasureExpireSamplesYear; //超期率 + @ExcelProperty("超期率") @ApiModelProperty(value = "超期率", dataType = "Integer") private String expireRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java index 83928cb..2791a03 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 17:09 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkloadResponse extends BoardBaseResponse { + @ExcelProperty(value = "较上月工作量分析", order = 10) @ApiModelProperty(value = "较上月工作量分析", dataType = "String") private String compareLastMonth; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java index 2e028b4..6907e9c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java @@ -135,6 +135,13 @@ /** * 主键集合,用于批量查询 */ + @ApiModelProperty(value = "导出ids", dataType = "List") private List ids; + /** + * 扫描标签id + */ + @ApiModelProperty(value = "扫描标签id", dataType = "List") + private String labelId; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java index d230b7c..aee4fe2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java @@ -128,6 +128,13 @@ private String time; /** + * 归还时间(设备借用) + */ + @TableField("back_time") + @ApiModelProperty(value = "归还时间(设备借用)", dataType = "String") + private String backTime; + + /** * 检修保养人(设备检修保养验收申请) */ @TableField("overhaul_person") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentRemindExport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentRemindExport.java new file mode 100644 index 0000000..2cd2bb7 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentRemindExport.java @@ -0,0 +1,127 @@ +package com.casic.missiles.model.equipment; + +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.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class EquipmentRemindExport { + + /** + * 设备编号 + */ + @ExcelProperty("设备编号") + @ApiModelProperty(value = "设备编号", dataType = "String") + private String equipmentNo; + + /** + * 设备名称 + */ + @ExcelProperty("设备名称") + @ApiModelProperty(value = "设备名称", dataType = "String") + private String equipmentName; + + /** + * 型号 + */ + @ExcelProperty("型号") + @ApiModelProperty(value = "型号", dataType = "String") + private String modelNo; + + /** + * ABC-字典code + */ + @DictCodeField(message = "ABC不合法", cacheName = MeterDictCode.ABC) + @ApiModelProperty(value = "ABC", dataType = "String", required = false) + private String abc; + + /** + * abcName + */ + @ExcelProperty("ABC") + @ApiModelProperty(value = "abcName", dataType = "String", required = false) + private String abcName; + + /** + * 检定方式-字典code + */ + @ApiModelProperty(value = "检定方式", dataType = "String", required = false) + @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) + private String mesureType; + + /** + * 检定方式名称 + */ + @ExcelProperty("检定方式") + @ApiModelProperty(value = "检定方式名称", dataType = "String", required = false) + private String mesureTypeName; + + /** + * 管理状态-字典code + */ + @ApiModelProperty(value = "管理状态", dataType = "String", required = false) + @DictCodeField(message = "管理状态不合法", cacheName = MeterDictCode.MANAGER_STATE) + private String managerState; + /** + * 管理状态名称 + */ + @ExcelProperty("管理状态") + @ApiModelProperty(value = "管理状态名称", dataType = "String", required = false) + private String managerStateName; + + /** + * 使用人 + */ + @ApiModelProperty(value = "使用人", dataType = "Long", required = false) + private Long usePerson; + + /** + * 使用人名称 + */ + @ExcelProperty("使用人") + @ApiModelProperty(value = "使用人", dataType = "Long", required = false) + private String usePersonName; + + /** + * 使用部门 + */ + @ApiModelProperty(value = "使用部门", dataType = "Long", required = false) + private Long useDept; + + /** + * 使用部门名称 + */ + @ExcelProperty("使用单位") + @ApiModelProperty(value = "使用部门名称", dataType = "String", required = false) + private String useDeptName; + + /** + * 有效日期 + */ + @ExcelProperty("有效日期") + @ApiModelProperty(value = "有效日期", dataType = "String", required = false) + private String validDate; + + /** + * 备注 + */ + @ExcelProperty("备注") + @ApiModelProperty(value = "备注", dataType = "String", required = false) + private String remark; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyServiceImpl.java index 093a56f..291e46f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyServiceImpl.java @@ -320,7 +320,7 @@ @Transactional public ReturnDTO returnEquipmentApply(IdDTO idDto) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id",idDto.getId()).set("process_result", EquipmentApplyProcessEnum.ALREADY_RETURN); + updateWrapper.eq("id",idDto.getId()).set("process_result", EquipmentApplyProcessEnum.ALREADY_RETURN).set("back_time",new Date()); if(equipmentApplyMapper.update(null, updateWrapper)>0){ // 修改设备使用记录表 this.updateEquipmentUseLog(idDto.getId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java index 33fc81a..0301a48 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java @@ -1,27 +1,39 @@ package com.casic.missiles.service.Impl.equipment; +import antlr.ASdebug.IASDebugStream; +import cn.hutool.core.lang.Assert; import com.alibaba.excel.util.DateUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.dto.equipment.StandardEquipmentApplyRequest; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.PrefixCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApprovalStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.MeterFixedAssetsMapper; import com.casic.missiles.mapper.equipment.EquipmentFixedAssetFileMapper; import com.casic.missiles.mapper.equipment.EquipmentStateChangeLogMapper; import com.casic.missiles.mapper.equipment.EquipmentUseLogMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; +import com.casic.missiles.model.business.BusinessLabExecutiveInfo; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.page.PageQuery; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.equipment.IEquipmentFixedAssetFileService; import com.casic.missiles.service.equipment.IEquipmentFixedAssetsService; import com.casic.missiles.utils.DictCodeUtils; @@ -29,16 +41,19 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import javax.validation.ConstraintViolation; import javax.validation.Validation; import java.util.Date; import java.util.List; +import java.util.Objects; import java.util.Set; /** @@ -68,6 +83,12 @@ @Resource private EquipmentStateChangeLogMapper stateChangeLogMapper; + @Resource + private WorkbenchRemindMessageMapper messageMapper; + + @Resource + private IBaseExportService iBaseExportService; + /** * 分页查询 * @@ -376,6 +397,38 @@ return meterFixedAssetsPage; } + @Override + public void exportList(FixedAssetRequest request, HttpServletResponse response) throws Exception { + List resultList; + if(!CollectionUtils.isEmpty(request.getIds())){ + FixedAssetRequest fixedAssetRequest = new FixedAssetRequest(); + fixedAssetRequest.setIds(request.getIds()); + resultList = meterFixedAssetsMapper.remindList(fixedAssetRequest); + }else{ + resultList = meterFixedAssetsMapper.remindList(request); + } + for (EquipmentRemindExport item: resultList) { + DictCodeUtils.convertDictCodeToName(item); + } + iBaseExportService.exportExcel(response, EquipmentRemindExport.class,resultList, ExportEnum.EQUIPMENT_REMIND.getSheetName()); + } + + @Override + public ReturnDTO remindWorker(IdDTO idDTO) { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + EquipmentFixedAssets fixedAssets = meterFixedAssetsMapper.selectById(idDTO.getId()); + if (fixedAssets != null) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(fixedAssets.getUsePerson(),fixedAssets.getUseDept(),idDTO.getId(),fixedAssets.getAssetNo(), MessageTypeEnum.MEASURING_EQUIPMENT.getCode(),MessageTypeEnum.MEASURING_EQUIPMENT.getValue(),fixedAssets.getEquipmentName(),0,user.getId(),user.getName()); + if (messageMapper.insert(remindMessage) > 0) { + return ReturnUtil.success(); + } + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + /** * 转换字典code * diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java index 7748ced..d5a0230 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessBoardController.java @@ -1,8 +1,10 @@ package com.casic.missiles.controller.business; +import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.board.*; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.service.business.IBusinessBoardService; @@ -14,11 +16,12 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.io.IOException; import java.util.List; /** * @Description: 业务看板 - * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的整 + * 注:所有证书统计相关sql都是统计部门/部门出具了非草稿状态的证书 * @Author: wangpeng * @Date: 2023/4/7 16:44 */ @@ -26,7 +29,7 @@ @Slf4j @RestController @RequestMapping("/business/board") -public class BusinessBoardController { +public class BusinessBoardController extends ExportController { @Autowired private IBusinessBoardService boardService; @@ -67,4 +70,35 @@ return ReturnUtil.success(boardService.deptComprehensive(request)); } + @ApiOperation("实时工作统计导出") + @GetMapping("/workStatistics/export") + public void workStatisticsExport() throws IOException { + List list = boardService.workStatistics(); + super.exportExcel(BoardWorkStatisticsResponse.class, list, ExportEnum.WORK_STATISTICS_EXPORT.getSheetName()); + } + + @ApiOperation("部门产值分析导出") + @PostMapping("/deptOutput/export") + public void deptOutputExport(@RequestBody BoardBaseRequest request) throws IOException { + List list = boardService.deptOutput(request); + super.exportExcel(BoardDeptOutputResponse.class, list, ExportEnum.DEPT_OUTPUT_EXPORT.getSheetName()); + } + + @ApiOperation("业务工作量分析导出") + @PostMapping("/workload/export") + public void workloadExport(@RequestBody @Validated(BoardWorkloadValid.class) BoardBaseRequest request, BindingResult bindingResult) throws IOException { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + List list = boardService.workload(request); + super.exportExcel(BoardWorkloadResponse.class, list, ExportEnum.WORKLOAD_EXPORT.getSheetName()); + } + + @ApiOperation("部门综合分析导出") + @PostMapping("/deptComprehensive/export") + public void deptComprehensiveExport(@RequestBody BoardDeptComprehensiveRequest request) throws IOException { + List list = boardService.deptComprehensive(request); + super.exportExcel(BoardDeptComprehensiveResponse.class, list, ExportEnum.DEPT_COMPREHENSIVE_EXPORT.getSheetName()); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java index faa16bf..0d98c0a 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentFixedAssetsController.java @@ -1,5 +1,6 @@ package com.casic.missiles.controller.equipment; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; import com.casic.missiles.core.page.PageFactory; @@ -7,10 +8,14 @@ import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.dispatch.DeviceStatusChangeDTO; +import com.casic.missiles.dto.equipment.EquipmentApplyRequest; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.dto.equipment.StandardSupportEquipmentExcelData; import com.casic.missiles.model.exception.enums.CoreExceptionEnum; @@ -25,6 +30,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; @@ -252,4 +258,27 @@ return ReturnUtil.success(super.packForBT(iEquipmentFixedAssetsService.remindListPage(page, request))); } + /** + * 设备到期列表导出 + */ + @ApiOperation("设备到期列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody @Valid FixedAssetRequest request, HttpServletResponse response) throws Exception{ + iEquipmentFixedAssetsService.exportList(request,response); + } + + + /** + * 催办会产生催办消息,对相关操作人员进行消息提示 + */ + @ApiOperation("催办") + @PostMapping("/remindWorker") + public ReturnDTO remindWorker(@RequestBody @Valid IdDTO idDTO, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return iEquipmentFixedAssetsService.remindWorker(idDTO); + } + } 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 15066f0..7015965 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 @@ -44,7 +44,12 @@ DOWNLOAD_TEMPLATE("downloadTemplate", "downloadTemplate", "页面配置"), OUTSOURCER_CERTIFICATE_EXPORT("outsourceCertificateData", "outsourceCertificateData", "分包证书"), SETTLEMENT_INFO_EXPORT("settlementInfoData", "settlementInfoData", "业务结算"), - AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"); + EQUIPMENT_REMIND("equipmentRemind", "equipmentRemind", "设备到期提醒"), + AGREEMENT_INFO_EXPORT("agreementInfoData", "agreementInfoData", "合同"), + WORK_STATISTICS_EXPORT("workStatisticsData", "workStatisticsData", "实时工作统计"), + DEPT_OUTPUT_EXPORT("deptOutputData", "deptOutputData", "部门产值分析"), + WORKLOAD_EXPORT("workloadData", "workloadData", "业务工作量分析"), + DEPT_COMPREHENSIVE_EXPORT("deptComprehensiveData", "deptComprehensiveData", "部门综合分析"); ExportEnum(String fileName, String sheetName, String description) { this.fileName = fileName; diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java index 0d19dcc..6024663 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterFixedAssetsMapper.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; import com.casic.missiles.model.equipment.EquipmentFixedAssets; +import com.casic.missiles.model.equipment.EquipmentRemindExport; import com.casic.missiles.model.equipment.EquipmentStandardSupportEquipment; import org.apache.ibatis.annotations.Param; @@ -31,4 +32,6 @@ List queryEquipmentInfo(@Param("oldEquipmentIds") List oldEquipmentIds); Page remindListPage(Page page, @Param("fixedAssetRequest")FixedAssetRequest request); + + List remindList(@Param("fixedAssetRequest")FixedAssetRequest request); } diff --git a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml index cec8ec4..bb93eb3 100644 --- a/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/equipment/EquipmentFixedAssetsMapper.xml @@ -4,7 +4,6 @@ --- mfa.id, asset_no, asset_type, equipment_name, equipment_no, is_fixed_assets, manufacturer, manufacturer_country, manufacturing_no, manufacturing_date, model_no, manager_state, ABC, label_bind, card_establishment_date, enable_date, mesure_type, mesure_cycle, mesure_range, uncertainty, use_dept,use_person, major_category, mesure_dept, mesure_date, valid_date, mesure_result, is_calibration_test_equipment, is_measure_account, is_standard_support_equipment, asset_source, equipment_specifications, equipment_category, equipment_type, capital_source, manager_level, purpose, technical_level, intact_state, overall_dimension, weight, single_price, install_incidental_expenses, install_place, origin_value, present_origin_value, depreciation_period, depreciation_method, attribute, version, remark, create_user, is_del, create_time, update_time mfa.* + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java index bf5f547..cf26b0d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardBaseResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,19 +16,28 @@ * @Author: wangpeng * @Date: 2023/4/11 19:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardBaseResponse { @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门", order = 1) @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; @ApiModelProperty(value = "人员id", dataType = "Long") private Long staffId; + @ExcelProperty(value = "人员", order = 2) @ApiModelProperty(value = "人员名字", dataType = "String") private String staffName; + @ExcelProperty(value = "检定样品数量", order = 3) @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "出具证书数量", order = 4) @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java index 0f7c282..fed5905 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptComprehensiveResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/12 9:55 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptComprehensiveResponse { @@ -19,22 +31,31 @@ private Long id; @ApiModelProperty(value = "部门id", dataType = "Long") private Long deptId; + @ExcelProperty(value = "部门") @ApiModelProperty(value = "部门名", dataType = "String") private String deptName; + @ExcelProperty(value = "检定样品数量") @ApiModelProperty(value = "检定样品数量(检定完成的数量)", dataType = "Integer") private Integer samples = 0; + @ExcelProperty(value = "总样品数量") @ApiModelProperty(value = "总样品数量", dataType = "Integer") private Integer samplesTotal = 0; + @ExcelProperty(value = "出具证书数量") @ApiModelProperty(value = "出具证书数量", dataType = "Integer") private Integer certificates = 0; + @ExcelProperty(value = "超期样品总数") @ApiModelProperty(value = "超期样品总数", dataType = "Integer") private Integer expireSamples = 0; + @ExcelProperty(value = "超期率") @ApiModelProperty(value = "超期率", dataType = "String") private String expireRate; + @ExcelProperty(value = "设备检定及时率") @ApiModelProperty(value = "设备检定及时率", dataType = "String") private String deviceTimelyRate; + @ExcelProperty(value = "设备检定合格率") @ApiModelProperty(value = "设备检定合格率", dataType = "String") private String deviceQualifyRate; + @ExcelProperty(value = "设备维修率") @ApiModelProperty(value = "设备维修率", dataType = "String") private String deviceRepairRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java index fd89146..a133482 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardDeptOutputResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 15:25 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardDeptOutputResponse extends BoardBaseResponse { + @ExcelProperty(value = "产值统计", order = 10) @ApiModelProperty(value = "产值统计(单位分)", dataType = "String") private String outPut; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java index 0213ba8..0a0eb5a 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkStatisticsResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -10,6 +17,11 @@ * @Author: wangpeng * @Date: 2023/4/10 9:06 */ +@ColumnWidth(35) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkStatisticsResponse { @@ -21,30 +33,39 @@ @ApiModelProperty(value = "检测实验室id", dataType = "Long") private Long deptId; //实验室编号 + @ExcelProperty("实验室编号") @ApiModelProperty(value = "实验室编号", dataType = "String") private String organizeNo; //实验室名字 + @ExcelProperty("实验室名字") @ApiModelProperty(value = "实验室名字", dataType = "String") private String organizeName; //当日检测完样品 + @ExcelProperty("当日检测完样品") @ApiModelProperty(value = "当日检测完样品", dataType = "Integer") private Integer samplesCompletedToday; //当日检定员出具证书数 + @ExcelProperty("当日检定员出具证书数") @ApiModelProperty(value = "当日检定员出具证书数", dataType = "Integer") private Integer certificatesToday; //当日到期样品数 + @ExcelProperty("当日到期样品数") @ApiModelProperty(value = "当日到期样品数", dataType = "Integer") private Integer expireSamplesToday; //今年样品数(实验室今年所有状态的样品数) + @ExcelProperty("今年样品数") @ApiModelProperty(value = "今年样品数", dataType = "Integer") private Integer samplesYear; //今年超期样品总数 + @ExcelProperty("今年超期样品总数") @ApiModelProperty(value = "今年超期样品总数", dataType = "Integer") private Integer expireSamplesYear; //今年超期样品总数-检测中 + @ExcelProperty("今年超期样品总数-检测中") @ApiModelProperty(value = "今年超期样品总数-检测中", dataType = "Integer") private Integer inMeasureExpireSamplesYear; //超期率 + @ExcelProperty("超期率") @ApiModelProperty(value = "超期率", dataType = "Integer") private String expireRate; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java index 83928cb..2791a03 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/board/BoardWorkloadResponse.java @@ -1,5 +1,12 @@ package com.casic.missiles.dto.business.board; +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 io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -9,9 +16,15 @@ * @Author: wangpeng * @Date: 2023/4/11 17:09 */ +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated @ApiModel @Data public class BoardWorkloadResponse extends BoardBaseResponse { + @ExcelProperty(value = "较上月工作量分析", order = 10) @ApiModelProperty(value = "较上月工作量分析", dataType = "String") private String compareLastMonth; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java index 2e028b4..6907e9c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/equipment/FixedAssetRequest.java @@ -135,6 +135,13 @@ /** * 主键集合,用于批量查询 */ + @ApiModelProperty(value = "导出ids", dataType = "List") private List ids; + /** + * 扫描标签id + */ + @ApiModelProperty(value = "扫描标签id", dataType = "List") + private String labelId; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java index d230b7c..aee4fe2 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentApply.java @@ -128,6 +128,13 @@ private String time; /** + * 归还时间(设备借用) + */ + @TableField("back_time") + @ApiModelProperty(value = "归还时间(设备借用)", dataType = "String") + private String backTime; + + /** * 检修保养人(设备检修保养验收申请) */ @TableField("overhaul_person") diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentRemindExport.java b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentRemindExport.java new file mode 100644 index 0000000..2cd2bb7 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/equipment/EquipmentRemindExport.java @@ -0,0 +1,127 @@ +package com.casic.missiles.model.equipment; + +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.TableName; +import com.casic.missiles.annotation.DictCodeField; +import com.casic.missiles.constants.MeterDictCode; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +@ApiModel +@Data +public class EquipmentRemindExport { + + /** + * 设备编号 + */ + @ExcelProperty("设备编号") + @ApiModelProperty(value = "设备编号", dataType = "String") + private String equipmentNo; + + /** + * 设备名称 + */ + @ExcelProperty("设备名称") + @ApiModelProperty(value = "设备名称", dataType = "String") + private String equipmentName; + + /** + * 型号 + */ + @ExcelProperty("型号") + @ApiModelProperty(value = "型号", dataType = "String") + private String modelNo; + + /** + * ABC-字典code + */ + @DictCodeField(message = "ABC不合法", cacheName = MeterDictCode.ABC) + @ApiModelProperty(value = "ABC", dataType = "String", required = false) + private String abc; + + /** + * abcName + */ + @ExcelProperty("ABC") + @ApiModelProperty(value = "abcName", dataType = "String", required = false) + private String abcName; + + /** + * 检定方式-字典code + */ + @ApiModelProperty(value = "检定方式", dataType = "String", required = false) + @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE) + private String mesureType; + + /** + * 检定方式名称 + */ + @ExcelProperty("检定方式") + @ApiModelProperty(value = "检定方式名称", dataType = "String", required = false) + private String mesureTypeName; + + /** + * 管理状态-字典code + */ + @ApiModelProperty(value = "管理状态", dataType = "String", required = false) + @DictCodeField(message = "管理状态不合法", cacheName = MeterDictCode.MANAGER_STATE) + private String managerState; + /** + * 管理状态名称 + */ + @ExcelProperty("管理状态") + @ApiModelProperty(value = "管理状态名称", dataType = "String", required = false) + private String managerStateName; + + /** + * 使用人 + */ + @ApiModelProperty(value = "使用人", dataType = "Long", required = false) + private Long usePerson; + + /** + * 使用人名称 + */ + @ExcelProperty("使用人") + @ApiModelProperty(value = "使用人", dataType = "Long", required = false) + private String usePersonName; + + /** + * 使用部门 + */ + @ApiModelProperty(value = "使用部门", dataType = "Long", required = false) + private Long useDept; + + /** + * 使用部门名称 + */ + @ExcelProperty("使用单位") + @ApiModelProperty(value = "使用部门名称", dataType = "String", required = false) + private String useDeptName; + + /** + * 有效日期 + */ + @ExcelProperty("有效日期") + @ApiModelProperty(value = "有效日期", dataType = "String", required = false) + private String validDate; + + /** + * 备注 + */ + @ExcelProperty("备注") + @ApiModelProperty(value = "备注", dataType = "String", required = false) + private String remark; +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyServiceImpl.java index 093a56f..291e46f 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentApplyServiceImpl.java @@ -320,7 +320,7 @@ @Transactional public ReturnDTO returnEquipmentApply(IdDTO idDto) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id",idDto.getId()).set("process_result", EquipmentApplyProcessEnum.ALREADY_RETURN); + updateWrapper.eq("id",idDto.getId()).set("process_result", EquipmentApplyProcessEnum.ALREADY_RETURN).set("back_time",new Date()); if(equipmentApplyMapper.update(null, updateWrapper)>0){ // 修改设备使用记录表 this.updateEquipmentUseLog(idDto.getId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java index 33fc81a..0301a48 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/equipment/EquipmentFixedAssetsServiceImpl.java @@ -1,27 +1,39 @@ package com.casic.missiles.service.Impl.equipment; +import antlr.ASdebug.IASDebugStream; +import cn.hutool.core.lang.Assert; import com.alibaba.excel.util.DateUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +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.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.dto.equipment.StandardEquipmentApplyRequest; import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.ExportEnum; import com.casic.missiles.enums.PrefixCodeEnum; import com.casic.missiles.enums.meter.MeterDictEnum; +import com.casic.missiles.enums.system.ApprovalStatusEnum; +import com.casic.missiles.enums.workbench.MessageTypeEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.MeterFixedAssetsMapper; import com.casic.missiles.mapper.equipment.EquipmentFixedAssetFileMapper; import com.casic.missiles.mapper.equipment.EquipmentStateChangeLogMapper; import com.casic.missiles.mapper.equipment.EquipmentUseLogMapper; +import com.casic.missiles.mapper.workbench.WorkbenchRemindMessageMapper; +import com.casic.missiles.model.business.BusinessLabExecutiveInfo; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.*; import com.casic.missiles.model.page.PageQuery; +import com.casic.missiles.model.workbench.WorkbenchRemindMessage; import com.casic.missiles.service.equipment.IEquipmentFixedAssetFileService; import com.casic.missiles.service.equipment.IEquipmentFixedAssetsService; import com.casic.missiles.utils.DictCodeUtils; @@ -29,16 +41,19 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jetbrains.annotations.NotNull; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import javax.validation.ConstraintViolation; import javax.validation.Validation; import java.util.Date; import java.util.List; +import java.util.Objects; import java.util.Set; /** @@ -68,6 +83,12 @@ @Resource private EquipmentStateChangeLogMapper stateChangeLogMapper; + @Resource + private WorkbenchRemindMessageMapper messageMapper; + + @Resource + private IBaseExportService iBaseExportService; + /** * 分页查询 * @@ -376,6 +397,38 @@ return meterFixedAssetsPage; } + @Override + public void exportList(FixedAssetRequest request, HttpServletResponse response) throws Exception { + List resultList; + if(!CollectionUtils.isEmpty(request.getIds())){ + FixedAssetRequest fixedAssetRequest = new FixedAssetRequest(); + fixedAssetRequest.setIds(request.getIds()); + resultList = meterFixedAssetsMapper.remindList(fixedAssetRequest); + }else{ + resultList = meterFixedAssetsMapper.remindList(request); + } + for (EquipmentRemindExport item: resultList) { + DictCodeUtils.convertDictCodeToName(item); + } + iBaseExportService.exportExcel(response, EquipmentRemindExport.class,resultList, ExportEnum.EQUIPMENT_REMIND.getSheetName()); + } + + @Override + public ReturnDTO remindWorker(IdDTO idDTO) { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + EquipmentFixedAssets fixedAssets = meterFixedAssetsMapper.selectById(idDTO.getId()); + if (fixedAssets != null) { + WorkbenchRemindMessage remindMessage = new WorkbenchRemindMessage(fixedAssets.getUsePerson(),fixedAssets.getUseDept(),idDTO.getId(),fixedAssets.getAssetNo(), MessageTypeEnum.MEASURING_EQUIPMENT.getCode(),MessageTypeEnum.MEASURING_EQUIPMENT.getValue(),fixedAssets.getEquipmentName(),0,user.getId(),user.getName()); + if (messageMapper.insert(remindMessage) > 0) { + return ReturnUtil.success(); + } + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + /** * 转换字典code * diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentFixedAssetsService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentFixedAssetsService.java index 2e79db7..96cd592 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentFixedAssetsService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentFixedAssetsService.java @@ -2,13 +2,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.equipment.EquipmentOrSampleDto; import com.casic.missiles.dto.equipment.FixedAssetRequest; +import com.casic.missiles.model.business.BusinessOrder; import com.casic.missiles.model.equipment.EquipmentFixedAssets; import com.casic.missiles.model.equipment.EquipmentStateChangeLog; import com.casic.missiles.model.equipment.EquipmentUseLog; +import javax.servlet.http.HttpServletResponse; import java.util.List; /** @@ -53,4 +56,8 @@ Page queryEquipment(Page page, EquipmentOrSampleDto request) throws Exception; Page remindListPage(Page page, FixedAssetRequest request) throws Exception; + + void exportList(FixedAssetRequest request, HttpServletResponse response) throws Exception; + + ReturnDTO remindWorker(IdDTO idDTO); }