diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 29c162d..ef7fce5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -50,6 +50,8 @@ List remindList(EquipmentRemindQueryForm queryForm); + void remind(Long equipmentId); + List expireTrend(String type); Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 29c162d..ef7fce5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -50,6 +50,8 @@ List remindList(EquipmentRemindQueryForm queryForm); + void remind(Long equipmentId); + List expireTrend(String type); Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 58df953..187b0ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -30,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; @@ -188,6 +185,29 @@ } @Override + public List toApprovalList(String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return new ArrayList<>(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + List list = this.list(queryWrapper); + for (T approval : list) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + return list; + } + + @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); if (CollUtil.isEmpty(approvedIds)) { @@ -201,6 +221,19 @@ } @Override + public List approvedList(String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return new ArrayList<>(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", approvedIds); + List list = this.list(queryWrapper); + list.forEach(this::warpper); + return list; + } + + @Override public Page allPage(Page page, Q queryForm) { Long t1 = System.currentTimeMillis(); QueryWrapper queryWrapper = commonQuery(queryForm); @@ -249,9 +282,15 @@ public T warpper(T obj) { try { DictCodeUtils.convertDictCodeToName(obj); + setBizNo(obj); }catch (Exception e){ log.error(e.getMessage()); } return obj; } + + @Override + public void setBizNo(T obj) { + + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 29c162d..ef7fce5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -50,6 +50,8 @@ List remindList(EquipmentRemindQueryForm queryForm); + void remind(Long equipmentId); + List expireTrend(String type); Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 58df953..187b0ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -30,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; @@ -188,6 +185,29 @@ } @Override + public List toApprovalList(String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return new ArrayList<>(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + List list = this.list(queryWrapper); + for (T approval : list) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + return list; + } + + @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); if (CollUtil.isEmpty(approvedIds)) { @@ -201,6 +221,19 @@ } @Override + public List approvedList(String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return new ArrayList<>(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", approvedIds); + List list = this.list(queryWrapper); + list.forEach(this::warpper); + return list; + } + + @Override public Page allPage(Page page, Q queryForm) { Long t1 = System.currentTimeMillis(); QueryWrapper queryWrapper = commonQuery(queryForm); @@ -249,9 +282,15 @@ public T warpper(T obj) { try { DictCodeUtils.convertDictCodeToName(obj); + setBizNo(obj); }catch (Exception e){ log.error(e.getMessage()); } return obj; } + + @Override + public void setBizNo(T obj) { + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java index 953f4c7..d24f084 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.board; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -9,25 +11,43 @@ 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.BaseQueryForm; import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum; import com.casic.missiles.enums.system.ApplyFromIdEnum; +import com.casic.missiles.model.CommonApproval; import com.casic.missiles.model.board.BoardMessage; import com.casic.missiles.mapper.board.BoardMessageMapper; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.board.IBoardMessageService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; +import com.casic.missiles.service.plan.IInspectionApprovalService; +import com.casic.missiles.service.plan.IPlanService; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.subcontract.ISubcontractReviewService; +import com.casic.missiles.service.subcontract.ISubcontractorService; import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.ACTION_STATUS_MAP; +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.EQUIPMENT_APPROVAL; /** *

@@ -43,7 +63,7 @@ private final AbstractPermissionContext permissionContext; private final ISystemDeptService systemDeptService; - private final IBaseApprovalService baseApprovalService; + @Override public Page listPage(BoardMessageQueryForm queryForm) { @@ -68,10 +88,12 @@ private Page checkMessage(Page page, BoardMessageQueryForm queryForm) { QueryWrapper queryWrapper = this.commonQuery(queryForm); queryWrapper.eq("notify_dept_id",systemDeptService.getUserCompany().getId()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); if(!isAdmin()){ - queryWrapper.eq("notify_user_id",permissionContext.getAuthService().getLoginUser().getId()); + queryWrapper.eq("notify_user_id",userId); } - List list = this.baseMapper.checkMessagePage(page,queryWrapper); + List list = this.baseMapper.checkMessagePage(page,queryWrapper,userId); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -80,7 +102,9 @@ QueryWrapper queryWrapper = this.commonQuery(queryForm); Dept company = systemDeptService.getUserCompany(); queryWrapper.eq("notify_dept_id",company.getId()); - List list = this.baseMapper.noticeMessagePage(page,queryWrapper,company.getId(),company.getFullName()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); + List list = this.baseMapper.noticeMessagePage(page,queryWrapper,userId,company.getId(),company.getFullName()); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -93,6 +117,7 @@ i.eq("notify_user_id",user.getId()).or().eq("notify_dept_id",company.getId()); }); List list = this.baseMapper.remindMessagePage(page,queryWrapper,user.getId(),user.getName()); + list.forEach(i->i.setNotifyUserId(user.getId())); page.setRecords(list); return page; } @@ -121,50 +146,186 @@ this.update(updateWrapper); } +// @Override +// public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { +// Page page = PageFactory.defaultPage(); +// List resultList = new ArrayList<>(); +// +// Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { +// if(applyFromIdEnum.getValue().contains("计量业务")){ +// return; +// } +// if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ +// return; +// } +// +// List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); +// if(CollectionUtils.isEmpty(toBeApprovedList)){ +// return; +// } +// toBeApprovedList.forEach(a -> { +// BoardMessage message = new BoardMessage(); +// message.setMessageModule("审批提醒"); +// message.setMessageType("审批提醒"); +// message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); +// message.setSourceModule(applyFromIdEnum.getSource()); +// message.setReadStatus("待审批"); +// message.setBizId(Long.valueOf(a.getBusinessKey())); +// message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); +// +// message.setFormId(applyFromIdEnum.getCode()); +// message.setProcessId(a.getProcessId()); +// message.setTaskId(a.getTaskId()); +// message.setDecisionItem(a.getDecisionItem()); +// +// resultList.add(message); +// }); +// }); +// getMessagePage(page, resultList,queryForm); +// return page; +// } + @Override public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { Page page = PageFactory.defaultPage(); List resultList = new ArrayList<>(); - - Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { - if(applyFromIdEnum.getValue().contains("计量业务")){ - return; + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; } - - List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); - if(CollectionUtils.isEmpty(toBeApprovedList)){ - return; + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; } - toBeApprovedList.forEach(a -> { + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertTobeApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertTobeApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.toApprovalList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ BoardMessage message = new BoardMessage(); message.setMessageModule("审批提醒"); message.setMessageType("审批提醒"); - message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "待审批"); message.setSourceModule(applyFromIdEnum.getSource()); - message.setReadStatus("0"); - message.setBizId(Long.valueOf(a.getBusinessKey())); - message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); + message.setReadStatus("待审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); message.setFormId(applyFromIdEnum.getCode()); - message.setProcessId(a.getProcessId()); - message.setTaskId(a.getTaskId()); - message.setDecisionItem(a.getDecisionItem()); - + message.setProcessId(item.getProcessId()); + message.setTaskId(item.getTaskId()); + message.setDecisionItem(item.getDecisionItem()); resultList.add(message); }); - }); + } + } + + + public Page approvedListPage(BoardMessageQueryForm queryForm){ + Page page = PageFactory.defaultPage(); + List resultList = new ArrayList<>(); + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; + } + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; + } + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.approvedList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ + BoardMessage message = new BoardMessage(); + message.setMessageModule("审批提醒"); + message.setMessageType("审批提醒"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "已审批"); + message.setSourceModule(applyFromIdEnum.getSource()); + message.setReadStatus("已审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); + message.setFormId(applyFromIdEnum.getCode()); + resultList.add(message); + }); + } + } + + private void getMessagePage(Page page, List resultList,BoardMessageQueryForm queryForm) { + if(ObjectUtil.isNotEmpty(queryForm.getMessageStartTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().before(DateUtil.parseDateTime(queryForm.getMessageStartTime()))).collect(Collectors.toList()); + } + if(ObjectUtil.isNotEmpty(queryForm.getMessageEndTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().after(DateUtil.parseDateTime(queryForm.getMessageEndTime()))).collect(Collectors.toList()); + } resultList.sort((o1, o2) -> o2.getMessageTime().compareTo(o1.getMessageTime())); page.setTotal(resultList.size()); int startIdx = Math.toIntExact((page.getCurrent() - 1) * page.getSize()); int endIdx = Math.toIntExact((page.getCurrent()) * page.getSize()); if(startIdx > page.getTotal()){ page.setRecords(new ArrayList<>()); - return page; + return; } if(endIdx > page.getTotal()){ endIdx = Math.toIntExact(page.getTotal()); } page.setRecords(resultList.subList(startIdx,endIdx)); - return page; + } + + @Override + public void remindEquipment(EquipmentInfo equipmentInfo) { + List userList = permissionContext.getUserService().getUsersByRoleTips(null,null); + + User notifyUser = userList.stream().filter(u->u.getName().equals(equipmentInfo.getDirectorName())).findAny().orElse(null); + if(ObjectUtil.isEmpty(notifyUser)){ + return; + } + QueryWrapper checkWrapper = new QueryWrapper<>(); + checkWrapper.eq("biz_id",equipmentInfo.getId()); + checkWrapper.eq("message_module","工作提醒"); + checkWrapper.eq("message_type","设备到期"); + checkWrapper.eq("notify_user_id",notifyUser.getId()); + if(this.count(checkWrapper) > 0){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("biz_id",equipmentInfo.getId()); + updateWrapper.eq("message_module","工作提醒"); + updateWrapper.eq("message_type","设备到期"); + updateWrapper.eq("notify_user_id",notifyUser.getId()); + updateWrapper.set("message_time",new Date()); + this.update(updateWrapper); + }else { + BoardMessage boardMessage = new BoardMessage(); + boardMessage.setMessageModule("工作提醒"); + boardMessage.setMessageType("设备到期"); + boardMessage.setMessageTopic(equipmentInfo.getEquipmentName()+equipmentInfo.getEquipmentNo()+"已超有效期"); + boardMessage.setSourceModule("设备台账"); + boardMessage.setReadStatus("0"); + boardMessage.setNotifyUserId(notifyUser.getId()); + boardMessage.setBizId(equipmentInfo.getId()); + boardMessage.setMessageTime(new Date()); + boardMessage.setSetTop(0); + this.save(boardMessage); + } + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 29c162d..ef7fce5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -50,6 +50,8 @@ List remindList(EquipmentRemindQueryForm queryForm); + void remind(Long equipmentId); + List expireTrend(String type); Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 58df953..187b0ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -30,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; @@ -188,6 +185,29 @@ } @Override + public List toApprovalList(String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return new ArrayList<>(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + List list = this.list(queryWrapper); + for (T approval : list) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + return list; + } + + @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); if (CollUtil.isEmpty(approvedIds)) { @@ -201,6 +221,19 @@ } @Override + public List approvedList(String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return new ArrayList<>(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", approvedIds); + List list = this.list(queryWrapper); + list.forEach(this::warpper); + return list; + } + + @Override public Page allPage(Page page, Q queryForm) { Long t1 = System.currentTimeMillis(); QueryWrapper queryWrapper = commonQuery(queryForm); @@ -249,9 +282,15 @@ public T warpper(T obj) { try { DictCodeUtils.convertDictCodeToName(obj); + setBizNo(obj); }catch (Exception e){ log.error(e.getMessage()); } return obj; } + + @Override + public void setBizNo(T obj) { + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java index 953f4c7..d24f084 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.board; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -9,25 +11,43 @@ 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.BaseQueryForm; import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum; import com.casic.missiles.enums.system.ApplyFromIdEnum; +import com.casic.missiles.model.CommonApproval; import com.casic.missiles.model.board.BoardMessage; import com.casic.missiles.mapper.board.BoardMessageMapper; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.board.IBoardMessageService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; +import com.casic.missiles.service.plan.IInspectionApprovalService; +import com.casic.missiles.service.plan.IPlanService; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.subcontract.ISubcontractReviewService; +import com.casic.missiles.service.subcontract.ISubcontractorService; import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.ACTION_STATUS_MAP; +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.EQUIPMENT_APPROVAL; /** *

@@ -43,7 +63,7 @@ private final AbstractPermissionContext permissionContext; private final ISystemDeptService systemDeptService; - private final IBaseApprovalService baseApprovalService; + @Override public Page listPage(BoardMessageQueryForm queryForm) { @@ -68,10 +88,12 @@ private Page checkMessage(Page page, BoardMessageQueryForm queryForm) { QueryWrapper queryWrapper = this.commonQuery(queryForm); queryWrapper.eq("notify_dept_id",systemDeptService.getUserCompany().getId()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); if(!isAdmin()){ - queryWrapper.eq("notify_user_id",permissionContext.getAuthService().getLoginUser().getId()); + queryWrapper.eq("notify_user_id",userId); } - List list = this.baseMapper.checkMessagePage(page,queryWrapper); + List list = this.baseMapper.checkMessagePage(page,queryWrapper,userId); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -80,7 +102,9 @@ QueryWrapper queryWrapper = this.commonQuery(queryForm); Dept company = systemDeptService.getUserCompany(); queryWrapper.eq("notify_dept_id",company.getId()); - List list = this.baseMapper.noticeMessagePage(page,queryWrapper,company.getId(),company.getFullName()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); + List list = this.baseMapper.noticeMessagePage(page,queryWrapper,userId,company.getId(),company.getFullName()); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -93,6 +117,7 @@ i.eq("notify_user_id",user.getId()).or().eq("notify_dept_id",company.getId()); }); List list = this.baseMapper.remindMessagePage(page,queryWrapper,user.getId(),user.getName()); + list.forEach(i->i.setNotifyUserId(user.getId())); page.setRecords(list); return page; } @@ -121,50 +146,186 @@ this.update(updateWrapper); } +// @Override +// public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { +// Page page = PageFactory.defaultPage(); +// List resultList = new ArrayList<>(); +// +// Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { +// if(applyFromIdEnum.getValue().contains("计量业务")){ +// return; +// } +// if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ +// return; +// } +// +// List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); +// if(CollectionUtils.isEmpty(toBeApprovedList)){ +// return; +// } +// toBeApprovedList.forEach(a -> { +// BoardMessage message = new BoardMessage(); +// message.setMessageModule("审批提醒"); +// message.setMessageType("审批提醒"); +// message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); +// message.setSourceModule(applyFromIdEnum.getSource()); +// message.setReadStatus("待审批"); +// message.setBizId(Long.valueOf(a.getBusinessKey())); +// message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); +// +// message.setFormId(applyFromIdEnum.getCode()); +// message.setProcessId(a.getProcessId()); +// message.setTaskId(a.getTaskId()); +// message.setDecisionItem(a.getDecisionItem()); +// +// resultList.add(message); +// }); +// }); +// getMessagePage(page, resultList,queryForm); +// return page; +// } + @Override public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { Page page = PageFactory.defaultPage(); List resultList = new ArrayList<>(); - - Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { - if(applyFromIdEnum.getValue().contains("计量业务")){ - return; + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; } - - List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); - if(CollectionUtils.isEmpty(toBeApprovedList)){ - return; + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; } - toBeApprovedList.forEach(a -> { + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertTobeApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertTobeApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.toApprovalList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ BoardMessage message = new BoardMessage(); message.setMessageModule("审批提醒"); message.setMessageType("审批提醒"); - message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "待审批"); message.setSourceModule(applyFromIdEnum.getSource()); - message.setReadStatus("0"); - message.setBizId(Long.valueOf(a.getBusinessKey())); - message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); + message.setReadStatus("待审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); message.setFormId(applyFromIdEnum.getCode()); - message.setProcessId(a.getProcessId()); - message.setTaskId(a.getTaskId()); - message.setDecisionItem(a.getDecisionItem()); - + message.setProcessId(item.getProcessId()); + message.setTaskId(item.getTaskId()); + message.setDecisionItem(item.getDecisionItem()); resultList.add(message); }); - }); + } + } + + + public Page approvedListPage(BoardMessageQueryForm queryForm){ + Page page = PageFactory.defaultPage(); + List resultList = new ArrayList<>(); + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; + } + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; + } + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.approvedList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ + BoardMessage message = new BoardMessage(); + message.setMessageModule("审批提醒"); + message.setMessageType("审批提醒"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "已审批"); + message.setSourceModule(applyFromIdEnum.getSource()); + message.setReadStatus("已审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); + message.setFormId(applyFromIdEnum.getCode()); + resultList.add(message); + }); + } + } + + private void getMessagePage(Page page, List resultList,BoardMessageQueryForm queryForm) { + if(ObjectUtil.isNotEmpty(queryForm.getMessageStartTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().before(DateUtil.parseDateTime(queryForm.getMessageStartTime()))).collect(Collectors.toList()); + } + if(ObjectUtil.isNotEmpty(queryForm.getMessageEndTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().after(DateUtil.parseDateTime(queryForm.getMessageEndTime()))).collect(Collectors.toList()); + } resultList.sort((o1, o2) -> o2.getMessageTime().compareTo(o1.getMessageTime())); page.setTotal(resultList.size()); int startIdx = Math.toIntExact((page.getCurrent() - 1) * page.getSize()); int endIdx = Math.toIntExact((page.getCurrent()) * page.getSize()); if(startIdx > page.getTotal()){ page.setRecords(new ArrayList<>()); - return page; + return; } if(endIdx > page.getTotal()){ endIdx = Math.toIntExact(page.getTotal()); } page.setRecords(resultList.subList(startIdx,endIdx)); - return page; + } + + @Override + public void remindEquipment(EquipmentInfo equipmentInfo) { + List userList = permissionContext.getUserService().getUsersByRoleTips(null,null); + + User notifyUser = userList.stream().filter(u->u.getName().equals(equipmentInfo.getDirectorName())).findAny().orElse(null); + if(ObjectUtil.isEmpty(notifyUser)){ + return; + } + QueryWrapper checkWrapper = new QueryWrapper<>(); + checkWrapper.eq("biz_id",equipmentInfo.getId()); + checkWrapper.eq("message_module","工作提醒"); + checkWrapper.eq("message_type","设备到期"); + checkWrapper.eq("notify_user_id",notifyUser.getId()); + if(this.count(checkWrapper) > 0){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("biz_id",equipmentInfo.getId()); + updateWrapper.eq("message_module","工作提醒"); + updateWrapper.eq("message_type","设备到期"); + updateWrapper.eq("notify_user_id",notifyUser.getId()); + updateWrapper.set("message_time",new Date()); + this.update(updateWrapper); + }else { + BoardMessage boardMessage = new BoardMessage(); + boardMessage.setMessageModule("工作提醒"); + boardMessage.setMessageType("设备到期"); + boardMessage.setMessageTopic(equipmentInfo.getEquipmentName()+equipmentInfo.getEquipmentNo()+"已超有效期"); + boardMessage.setSourceModule("设备台账"); + boardMessage.setReadStatus("0"); + boardMessage.setNotifyUserId(notifyUser.getId()); + boardMessage.setBizId(equipmentInfo.getId()); + boardMessage.setMessageTime(new Date()); + boardMessage.setSetTop(0); + this.save(boardMessage); + } + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index ce36e9d..7f28a62 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -184,6 +184,7 @@ commonAggr.setName(dictService.getDictNameByCode(dictConvert,commonAggr.getName())); } } + resList = resList.stream().filter(i->StrUtil.isNotEmpty(i.getName())).collect(Collectors.toList()); return resList; } @@ -325,7 +326,7 @@ queryWrapper.in(CollUtil.isNotEmpty(deptIds),"e.dept_id",deptIds); queryWrapper.eq("e.equipment_type",EQUIPMENT_TYPE_NORMAL); queryWrapper.eq("e.is_del","0"); - queryWrapper.in("r.sample_status",InCheckSampleStatus); + queryWrapper.in("r.sample_status",SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus)); return queryWrapper; } @@ -357,7 +358,10 @@ List companyAggrList = new ArrayList<>(); Map> groupMap = list.stream().collect(Collectors.groupingBy(classifier)); for (String key : groupMap.keySet()) { - String keyName = dictService.getDictNameByCode(dictConvert,key); + String keyName = key; + if(StrUtil.isNotEmpty(dictConvert)){ + keyName = dictService.getDictNameByCode(dictConvert,key); + } if(StrUtil.isNotEmpty(keyName)){ companyAggrList.add(new EquipmentCommonAggr(keyName,groupMap.get(key).size())); } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 29c162d..ef7fce5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -50,6 +50,8 @@ List remindList(EquipmentRemindQueryForm queryForm); + void remind(Long equipmentId); + List expireTrend(String type); Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 58df953..187b0ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -30,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; @@ -188,6 +185,29 @@ } @Override + public List toApprovalList(String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return new ArrayList<>(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + List list = this.list(queryWrapper); + for (T approval : list) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + return list; + } + + @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); if (CollUtil.isEmpty(approvedIds)) { @@ -201,6 +221,19 @@ } @Override + public List approvedList(String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return new ArrayList<>(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", approvedIds); + List list = this.list(queryWrapper); + list.forEach(this::warpper); + return list; + } + + @Override public Page allPage(Page page, Q queryForm) { Long t1 = System.currentTimeMillis(); QueryWrapper queryWrapper = commonQuery(queryForm); @@ -249,9 +282,15 @@ public T warpper(T obj) { try { DictCodeUtils.convertDictCodeToName(obj); + setBizNo(obj); }catch (Exception e){ log.error(e.getMessage()); } return obj; } + + @Override + public void setBizNo(T obj) { + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java index 953f4c7..d24f084 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.board; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -9,25 +11,43 @@ 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.BaseQueryForm; import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum; import com.casic.missiles.enums.system.ApplyFromIdEnum; +import com.casic.missiles.model.CommonApproval; import com.casic.missiles.model.board.BoardMessage; import com.casic.missiles.mapper.board.BoardMessageMapper; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.board.IBoardMessageService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; +import com.casic.missiles.service.plan.IInspectionApprovalService; +import com.casic.missiles.service.plan.IPlanService; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.subcontract.ISubcontractReviewService; +import com.casic.missiles.service.subcontract.ISubcontractorService; import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.ACTION_STATUS_MAP; +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.EQUIPMENT_APPROVAL; /** *

@@ -43,7 +63,7 @@ private final AbstractPermissionContext permissionContext; private final ISystemDeptService systemDeptService; - private final IBaseApprovalService baseApprovalService; + @Override public Page listPage(BoardMessageQueryForm queryForm) { @@ -68,10 +88,12 @@ private Page checkMessage(Page page, BoardMessageQueryForm queryForm) { QueryWrapper queryWrapper = this.commonQuery(queryForm); queryWrapper.eq("notify_dept_id",systemDeptService.getUserCompany().getId()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); if(!isAdmin()){ - queryWrapper.eq("notify_user_id",permissionContext.getAuthService().getLoginUser().getId()); + queryWrapper.eq("notify_user_id",userId); } - List list = this.baseMapper.checkMessagePage(page,queryWrapper); + List list = this.baseMapper.checkMessagePage(page,queryWrapper,userId); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -80,7 +102,9 @@ QueryWrapper queryWrapper = this.commonQuery(queryForm); Dept company = systemDeptService.getUserCompany(); queryWrapper.eq("notify_dept_id",company.getId()); - List list = this.baseMapper.noticeMessagePage(page,queryWrapper,company.getId(),company.getFullName()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); + List list = this.baseMapper.noticeMessagePage(page,queryWrapper,userId,company.getId(),company.getFullName()); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -93,6 +117,7 @@ i.eq("notify_user_id",user.getId()).or().eq("notify_dept_id",company.getId()); }); List list = this.baseMapper.remindMessagePage(page,queryWrapper,user.getId(),user.getName()); + list.forEach(i->i.setNotifyUserId(user.getId())); page.setRecords(list); return page; } @@ -121,50 +146,186 @@ this.update(updateWrapper); } +// @Override +// public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { +// Page page = PageFactory.defaultPage(); +// List resultList = new ArrayList<>(); +// +// Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { +// if(applyFromIdEnum.getValue().contains("计量业务")){ +// return; +// } +// if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ +// return; +// } +// +// List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); +// if(CollectionUtils.isEmpty(toBeApprovedList)){ +// return; +// } +// toBeApprovedList.forEach(a -> { +// BoardMessage message = new BoardMessage(); +// message.setMessageModule("审批提醒"); +// message.setMessageType("审批提醒"); +// message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); +// message.setSourceModule(applyFromIdEnum.getSource()); +// message.setReadStatus("待审批"); +// message.setBizId(Long.valueOf(a.getBusinessKey())); +// message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); +// +// message.setFormId(applyFromIdEnum.getCode()); +// message.setProcessId(a.getProcessId()); +// message.setTaskId(a.getTaskId()); +// message.setDecisionItem(a.getDecisionItem()); +// +// resultList.add(message); +// }); +// }); +// getMessagePage(page, resultList,queryForm); +// return page; +// } + @Override public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { Page page = PageFactory.defaultPage(); List resultList = new ArrayList<>(); - - Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { - if(applyFromIdEnum.getValue().contains("计量业务")){ - return; + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; } - - List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); - if(CollectionUtils.isEmpty(toBeApprovedList)){ - return; + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; } - toBeApprovedList.forEach(a -> { + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertTobeApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertTobeApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.toApprovalList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ BoardMessage message = new BoardMessage(); message.setMessageModule("审批提醒"); message.setMessageType("审批提醒"); - message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "待审批"); message.setSourceModule(applyFromIdEnum.getSource()); - message.setReadStatus("0"); - message.setBizId(Long.valueOf(a.getBusinessKey())); - message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); + message.setReadStatus("待审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); message.setFormId(applyFromIdEnum.getCode()); - message.setProcessId(a.getProcessId()); - message.setTaskId(a.getTaskId()); - message.setDecisionItem(a.getDecisionItem()); - + message.setProcessId(item.getProcessId()); + message.setTaskId(item.getTaskId()); + message.setDecisionItem(item.getDecisionItem()); resultList.add(message); }); - }); + } + } + + + public Page approvedListPage(BoardMessageQueryForm queryForm){ + Page page = PageFactory.defaultPage(); + List resultList = new ArrayList<>(); + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; + } + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; + } + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.approvedList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ + BoardMessage message = new BoardMessage(); + message.setMessageModule("审批提醒"); + message.setMessageType("审批提醒"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "已审批"); + message.setSourceModule(applyFromIdEnum.getSource()); + message.setReadStatus("已审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); + message.setFormId(applyFromIdEnum.getCode()); + resultList.add(message); + }); + } + } + + private void getMessagePage(Page page, List resultList,BoardMessageQueryForm queryForm) { + if(ObjectUtil.isNotEmpty(queryForm.getMessageStartTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().before(DateUtil.parseDateTime(queryForm.getMessageStartTime()))).collect(Collectors.toList()); + } + if(ObjectUtil.isNotEmpty(queryForm.getMessageEndTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().after(DateUtil.parseDateTime(queryForm.getMessageEndTime()))).collect(Collectors.toList()); + } resultList.sort((o1, o2) -> o2.getMessageTime().compareTo(o1.getMessageTime())); page.setTotal(resultList.size()); int startIdx = Math.toIntExact((page.getCurrent() - 1) * page.getSize()); int endIdx = Math.toIntExact((page.getCurrent()) * page.getSize()); if(startIdx > page.getTotal()){ page.setRecords(new ArrayList<>()); - return page; + return; } if(endIdx > page.getTotal()){ endIdx = Math.toIntExact(page.getTotal()); } page.setRecords(resultList.subList(startIdx,endIdx)); - return page; + } + + @Override + public void remindEquipment(EquipmentInfo equipmentInfo) { + List userList = permissionContext.getUserService().getUsersByRoleTips(null,null); + + User notifyUser = userList.stream().filter(u->u.getName().equals(equipmentInfo.getDirectorName())).findAny().orElse(null); + if(ObjectUtil.isEmpty(notifyUser)){ + return; + } + QueryWrapper checkWrapper = new QueryWrapper<>(); + checkWrapper.eq("biz_id",equipmentInfo.getId()); + checkWrapper.eq("message_module","工作提醒"); + checkWrapper.eq("message_type","设备到期"); + checkWrapper.eq("notify_user_id",notifyUser.getId()); + if(this.count(checkWrapper) > 0){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("biz_id",equipmentInfo.getId()); + updateWrapper.eq("message_module","工作提醒"); + updateWrapper.eq("message_type","设备到期"); + updateWrapper.eq("notify_user_id",notifyUser.getId()); + updateWrapper.set("message_time",new Date()); + this.update(updateWrapper); + }else { + BoardMessage boardMessage = new BoardMessage(); + boardMessage.setMessageModule("工作提醒"); + boardMessage.setMessageType("设备到期"); + boardMessage.setMessageTopic(equipmentInfo.getEquipmentName()+equipmentInfo.getEquipmentNo()+"已超有效期"); + boardMessage.setSourceModule("设备台账"); + boardMessage.setReadStatus("0"); + boardMessage.setNotifyUserId(notifyUser.getId()); + boardMessage.setBizId(equipmentInfo.getId()); + boardMessage.setMessageTime(new Date()); + boardMessage.setSetTop(0); + this.save(boardMessage); + } + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index ce36e9d..7f28a62 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -184,6 +184,7 @@ commonAggr.setName(dictService.getDictNameByCode(dictConvert,commonAggr.getName())); } } + resList = resList.stream().filter(i->StrUtil.isNotEmpty(i.getName())).collect(Collectors.toList()); return resList; } @@ -325,7 +326,7 @@ queryWrapper.in(CollUtil.isNotEmpty(deptIds),"e.dept_id",deptIds); queryWrapper.eq("e.equipment_type",EQUIPMENT_TYPE_NORMAL); queryWrapper.eq("e.is_del","0"); - queryWrapper.in("r.sample_status",InCheckSampleStatus); + queryWrapper.in("r.sample_status",SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus)); return queryWrapper; } @@ -357,7 +358,10 @@ List companyAggrList = new ArrayList<>(); Map> groupMap = list.stream().collect(Collectors.groupingBy(classifier)); for (String key : groupMap.keySet()) { - String keyName = dictService.getDictNameByCode(dictConvert,key); + String keyName = key; + if(StrUtil.isNotEmpty(dictConvert)){ + keyName = dictService.getDictNameByCode(dictConvert,key); + } if(StrUtil.isNotEmpty(keyName)){ companyAggrList.add(new EquipmentCommonAggr(keyName,groupMap.get(key).size())); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 519efaa..e00f517 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -253,9 +253,11 @@ @Override public EquipmentInfoApproval warpper(EquipmentInfoApproval approval) { try { + super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - DictCodeUtils.convertDictCodeToName(approval); + //DictCodeUtils.convertDictCodeToName(approval); + } catch (Exception e) { throw new RuntimeException(e); } @@ -321,4 +323,9 @@ updateWrapper.set("instructions_file",modelInfo.getInstructionsFile()); this.update(updateWrapper); } + + @Override + public void setBizNo(EquipmentInfoApproval obj) { + obj.setBizNo(obj.getEquipmentNo()); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 29c162d..ef7fce5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -50,6 +50,8 @@ List remindList(EquipmentRemindQueryForm queryForm); + void remind(Long equipmentId); + List expireTrend(String type); Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 58df953..187b0ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -30,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; @@ -188,6 +185,29 @@ } @Override + public List toApprovalList(String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return new ArrayList<>(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + List list = this.list(queryWrapper); + for (T approval : list) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + return list; + } + + @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); if (CollUtil.isEmpty(approvedIds)) { @@ -201,6 +221,19 @@ } @Override + public List approvedList(String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return new ArrayList<>(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", approvedIds); + List list = this.list(queryWrapper); + list.forEach(this::warpper); + return list; + } + + @Override public Page allPage(Page page, Q queryForm) { Long t1 = System.currentTimeMillis(); QueryWrapper queryWrapper = commonQuery(queryForm); @@ -249,9 +282,15 @@ public T warpper(T obj) { try { DictCodeUtils.convertDictCodeToName(obj); + setBizNo(obj); }catch (Exception e){ log.error(e.getMessage()); } return obj; } + + @Override + public void setBizNo(T obj) { + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java index 953f4c7..d24f084 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.board; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -9,25 +11,43 @@ 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.BaseQueryForm; import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum; import com.casic.missiles.enums.system.ApplyFromIdEnum; +import com.casic.missiles.model.CommonApproval; import com.casic.missiles.model.board.BoardMessage; import com.casic.missiles.mapper.board.BoardMessageMapper; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.board.IBoardMessageService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; +import com.casic.missiles.service.plan.IInspectionApprovalService; +import com.casic.missiles.service.plan.IPlanService; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.subcontract.ISubcontractReviewService; +import com.casic.missiles.service.subcontract.ISubcontractorService; import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.ACTION_STATUS_MAP; +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.EQUIPMENT_APPROVAL; /** *

@@ -43,7 +63,7 @@ private final AbstractPermissionContext permissionContext; private final ISystemDeptService systemDeptService; - private final IBaseApprovalService baseApprovalService; + @Override public Page listPage(BoardMessageQueryForm queryForm) { @@ -68,10 +88,12 @@ private Page checkMessage(Page page, BoardMessageQueryForm queryForm) { QueryWrapper queryWrapper = this.commonQuery(queryForm); queryWrapper.eq("notify_dept_id",systemDeptService.getUserCompany().getId()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); if(!isAdmin()){ - queryWrapper.eq("notify_user_id",permissionContext.getAuthService().getLoginUser().getId()); + queryWrapper.eq("notify_user_id",userId); } - List list = this.baseMapper.checkMessagePage(page,queryWrapper); + List list = this.baseMapper.checkMessagePage(page,queryWrapper,userId); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -80,7 +102,9 @@ QueryWrapper queryWrapper = this.commonQuery(queryForm); Dept company = systemDeptService.getUserCompany(); queryWrapper.eq("notify_dept_id",company.getId()); - List list = this.baseMapper.noticeMessagePage(page,queryWrapper,company.getId(),company.getFullName()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); + List list = this.baseMapper.noticeMessagePage(page,queryWrapper,userId,company.getId(),company.getFullName()); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -93,6 +117,7 @@ i.eq("notify_user_id",user.getId()).or().eq("notify_dept_id",company.getId()); }); List list = this.baseMapper.remindMessagePage(page,queryWrapper,user.getId(),user.getName()); + list.forEach(i->i.setNotifyUserId(user.getId())); page.setRecords(list); return page; } @@ -121,50 +146,186 @@ this.update(updateWrapper); } +// @Override +// public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { +// Page page = PageFactory.defaultPage(); +// List resultList = new ArrayList<>(); +// +// Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { +// if(applyFromIdEnum.getValue().contains("计量业务")){ +// return; +// } +// if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ +// return; +// } +// +// List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); +// if(CollectionUtils.isEmpty(toBeApprovedList)){ +// return; +// } +// toBeApprovedList.forEach(a -> { +// BoardMessage message = new BoardMessage(); +// message.setMessageModule("审批提醒"); +// message.setMessageType("审批提醒"); +// message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); +// message.setSourceModule(applyFromIdEnum.getSource()); +// message.setReadStatus("待审批"); +// message.setBizId(Long.valueOf(a.getBusinessKey())); +// message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); +// +// message.setFormId(applyFromIdEnum.getCode()); +// message.setProcessId(a.getProcessId()); +// message.setTaskId(a.getTaskId()); +// message.setDecisionItem(a.getDecisionItem()); +// +// resultList.add(message); +// }); +// }); +// getMessagePage(page, resultList,queryForm); +// return page; +// } + @Override public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { Page page = PageFactory.defaultPage(); List resultList = new ArrayList<>(); - - Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { - if(applyFromIdEnum.getValue().contains("计量业务")){ - return; + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; } - - List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); - if(CollectionUtils.isEmpty(toBeApprovedList)){ - return; + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; } - toBeApprovedList.forEach(a -> { + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertTobeApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertTobeApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.toApprovalList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ BoardMessage message = new BoardMessage(); message.setMessageModule("审批提醒"); message.setMessageType("审批提醒"); - message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "待审批"); message.setSourceModule(applyFromIdEnum.getSource()); - message.setReadStatus("0"); - message.setBizId(Long.valueOf(a.getBusinessKey())); - message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); + message.setReadStatus("待审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); message.setFormId(applyFromIdEnum.getCode()); - message.setProcessId(a.getProcessId()); - message.setTaskId(a.getTaskId()); - message.setDecisionItem(a.getDecisionItem()); - + message.setProcessId(item.getProcessId()); + message.setTaskId(item.getTaskId()); + message.setDecisionItem(item.getDecisionItem()); resultList.add(message); }); - }); + } + } + + + public Page approvedListPage(BoardMessageQueryForm queryForm){ + Page page = PageFactory.defaultPage(); + List resultList = new ArrayList<>(); + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; + } + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; + } + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.approvedList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ + BoardMessage message = new BoardMessage(); + message.setMessageModule("审批提醒"); + message.setMessageType("审批提醒"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "已审批"); + message.setSourceModule(applyFromIdEnum.getSource()); + message.setReadStatus("已审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); + message.setFormId(applyFromIdEnum.getCode()); + resultList.add(message); + }); + } + } + + private void getMessagePage(Page page, List resultList,BoardMessageQueryForm queryForm) { + if(ObjectUtil.isNotEmpty(queryForm.getMessageStartTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().before(DateUtil.parseDateTime(queryForm.getMessageStartTime()))).collect(Collectors.toList()); + } + if(ObjectUtil.isNotEmpty(queryForm.getMessageEndTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().after(DateUtil.parseDateTime(queryForm.getMessageEndTime()))).collect(Collectors.toList()); + } resultList.sort((o1, o2) -> o2.getMessageTime().compareTo(o1.getMessageTime())); page.setTotal(resultList.size()); int startIdx = Math.toIntExact((page.getCurrent() - 1) * page.getSize()); int endIdx = Math.toIntExact((page.getCurrent()) * page.getSize()); if(startIdx > page.getTotal()){ page.setRecords(new ArrayList<>()); - return page; + return; } if(endIdx > page.getTotal()){ endIdx = Math.toIntExact(page.getTotal()); } page.setRecords(resultList.subList(startIdx,endIdx)); - return page; + } + + @Override + public void remindEquipment(EquipmentInfo equipmentInfo) { + List userList = permissionContext.getUserService().getUsersByRoleTips(null,null); + + User notifyUser = userList.stream().filter(u->u.getName().equals(equipmentInfo.getDirectorName())).findAny().orElse(null); + if(ObjectUtil.isEmpty(notifyUser)){ + return; + } + QueryWrapper checkWrapper = new QueryWrapper<>(); + checkWrapper.eq("biz_id",equipmentInfo.getId()); + checkWrapper.eq("message_module","工作提醒"); + checkWrapper.eq("message_type","设备到期"); + checkWrapper.eq("notify_user_id",notifyUser.getId()); + if(this.count(checkWrapper) > 0){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("biz_id",equipmentInfo.getId()); + updateWrapper.eq("message_module","工作提醒"); + updateWrapper.eq("message_type","设备到期"); + updateWrapper.eq("notify_user_id",notifyUser.getId()); + updateWrapper.set("message_time",new Date()); + this.update(updateWrapper); + }else { + BoardMessage boardMessage = new BoardMessage(); + boardMessage.setMessageModule("工作提醒"); + boardMessage.setMessageType("设备到期"); + boardMessage.setMessageTopic(equipmentInfo.getEquipmentName()+equipmentInfo.getEquipmentNo()+"已超有效期"); + boardMessage.setSourceModule("设备台账"); + boardMessage.setReadStatus("0"); + boardMessage.setNotifyUserId(notifyUser.getId()); + boardMessage.setBizId(equipmentInfo.getId()); + boardMessage.setMessageTime(new Date()); + boardMessage.setSetTop(0); + this.save(boardMessage); + } + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index ce36e9d..7f28a62 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -184,6 +184,7 @@ commonAggr.setName(dictService.getDictNameByCode(dictConvert,commonAggr.getName())); } } + resList = resList.stream().filter(i->StrUtil.isNotEmpty(i.getName())).collect(Collectors.toList()); return resList; } @@ -325,7 +326,7 @@ queryWrapper.in(CollUtil.isNotEmpty(deptIds),"e.dept_id",deptIds); queryWrapper.eq("e.equipment_type",EQUIPMENT_TYPE_NORMAL); queryWrapper.eq("e.is_del","0"); - queryWrapper.in("r.sample_status",InCheckSampleStatus); + queryWrapper.in("r.sample_status",SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus)); return queryWrapper; } @@ -357,7 +358,10 @@ List companyAggrList = new ArrayList<>(); Map> groupMap = list.stream().collect(Collectors.groupingBy(classifier)); for (String key : groupMap.keySet()) { - String keyName = dictService.getDictNameByCode(dictConvert,key); + String keyName = key; + if(StrUtil.isNotEmpty(dictConvert)){ + keyName = dictService.getDictNameByCode(dictConvert,key); + } if(StrUtil.isNotEmpty(keyName)){ companyAggrList.add(new EquipmentCommonAggr(keyName,groupMap.get(key).size())); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 519efaa..e00f517 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -253,9 +253,11 @@ @Override public EquipmentInfoApproval warpper(EquipmentInfoApproval approval) { try { + super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - DictCodeUtils.convertDictCodeToName(approval); + //DictCodeUtils.convertDictCodeToName(approval); + } catch (Exception e) { throw new RuntimeException(e); } @@ -321,4 +323,9 @@ updateWrapper.set("instructions_file",modelInfo.getInstructionsFile()); this.update(updateWrapper); } + + @Override + public void setBizNo(EquipmentInfoApproval obj) { + obj.setBizNo(obj.getEquipmentNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 3169b84..fa01eb3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -31,6 +31,7 @@ import com.casic.missiles.model.equipment.*; import com.casic.missiles.mapper.equipment.EquipmentInfoMapper; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.service.board.IBoardMessageService; import com.casic.missiles.service.equipment.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.service.status.IEquipmentStatusLogService; @@ -75,8 +76,10 @@ private final IEquipmentTurnoverLogService turnoverLogService; private final IEquipmentTaskRelationService taskRelationService; private final IEquipmentTaskInfoService taskInfoService; + private final IBoardMessageService boardMessageService; private ISubcontractCertificateService subcontractCertificateService; + @Autowired public void setSubcontractCertificateService(ISubcontractCertificateService subcontractCertificateService) { this.subcontractCertificateService = subcontractCertificateService; @@ -162,7 +165,7 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.apply(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext) like '%{0}%'",queryForm.getInstallLocation()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); @@ -424,6 +427,14 @@ return list; } + @Override + public void remind(Long equipmentId) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + boardMessageService.remindEquipment(equipmentInfo); + } + } + private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 29c162d..ef7fce5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -50,6 +50,8 @@ List remindList(EquipmentRemindQueryForm queryForm); + void remind(Long equipmentId); + List expireTrend(String type); Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 58df953..187b0ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -30,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; @@ -188,6 +185,29 @@ } @Override + public List toApprovalList(String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return new ArrayList<>(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + List list = this.list(queryWrapper); + for (T approval : list) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + return list; + } + + @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); if (CollUtil.isEmpty(approvedIds)) { @@ -201,6 +221,19 @@ } @Override + public List approvedList(String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return new ArrayList<>(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", approvedIds); + List list = this.list(queryWrapper); + list.forEach(this::warpper); + return list; + } + + @Override public Page allPage(Page page, Q queryForm) { Long t1 = System.currentTimeMillis(); QueryWrapper queryWrapper = commonQuery(queryForm); @@ -249,9 +282,15 @@ public T warpper(T obj) { try { DictCodeUtils.convertDictCodeToName(obj); + setBizNo(obj); }catch (Exception e){ log.error(e.getMessage()); } return obj; } + + @Override + public void setBizNo(T obj) { + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java index 953f4c7..d24f084 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.board; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -9,25 +11,43 @@ 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.BaseQueryForm; import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum; import com.casic.missiles.enums.system.ApplyFromIdEnum; +import com.casic.missiles.model.CommonApproval; import com.casic.missiles.model.board.BoardMessage; import com.casic.missiles.mapper.board.BoardMessageMapper; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.board.IBoardMessageService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; +import com.casic.missiles.service.plan.IInspectionApprovalService; +import com.casic.missiles.service.plan.IPlanService; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.subcontract.ISubcontractReviewService; +import com.casic.missiles.service.subcontract.ISubcontractorService; import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.ACTION_STATUS_MAP; +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.EQUIPMENT_APPROVAL; /** *

@@ -43,7 +63,7 @@ private final AbstractPermissionContext permissionContext; private final ISystemDeptService systemDeptService; - private final IBaseApprovalService baseApprovalService; + @Override public Page listPage(BoardMessageQueryForm queryForm) { @@ -68,10 +88,12 @@ private Page checkMessage(Page page, BoardMessageQueryForm queryForm) { QueryWrapper queryWrapper = this.commonQuery(queryForm); queryWrapper.eq("notify_dept_id",systemDeptService.getUserCompany().getId()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); if(!isAdmin()){ - queryWrapper.eq("notify_user_id",permissionContext.getAuthService().getLoginUser().getId()); + queryWrapper.eq("notify_user_id",userId); } - List list = this.baseMapper.checkMessagePage(page,queryWrapper); + List list = this.baseMapper.checkMessagePage(page,queryWrapper,userId); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -80,7 +102,9 @@ QueryWrapper queryWrapper = this.commonQuery(queryForm); Dept company = systemDeptService.getUserCompany(); queryWrapper.eq("notify_dept_id",company.getId()); - List list = this.baseMapper.noticeMessagePage(page,queryWrapper,company.getId(),company.getFullName()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); + List list = this.baseMapper.noticeMessagePage(page,queryWrapper,userId,company.getId(),company.getFullName()); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -93,6 +117,7 @@ i.eq("notify_user_id",user.getId()).or().eq("notify_dept_id",company.getId()); }); List list = this.baseMapper.remindMessagePage(page,queryWrapper,user.getId(),user.getName()); + list.forEach(i->i.setNotifyUserId(user.getId())); page.setRecords(list); return page; } @@ -121,50 +146,186 @@ this.update(updateWrapper); } +// @Override +// public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { +// Page page = PageFactory.defaultPage(); +// List resultList = new ArrayList<>(); +// +// Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { +// if(applyFromIdEnum.getValue().contains("计量业务")){ +// return; +// } +// if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ +// return; +// } +// +// List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); +// if(CollectionUtils.isEmpty(toBeApprovedList)){ +// return; +// } +// toBeApprovedList.forEach(a -> { +// BoardMessage message = new BoardMessage(); +// message.setMessageModule("审批提醒"); +// message.setMessageType("审批提醒"); +// message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); +// message.setSourceModule(applyFromIdEnum.getSource()); +// message.setReadStatus("待审批"); +// message.setBizId(Long.valueOf(a.getBusinessKey())); +// message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); +// +// message.setFormId(applyFromIdEnum.getCode()); +// message.setProcessId(a.getProcessId()); +// message.setTaskId(a.getTaskId()); +// message.setDecisionItem(a.getDecisionItem()); +// +// resultList.add(message); +// }); +// }); +// getMessagePage(page, resultList,queryForm); +// return page; +// } + @Override public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { Page page = PageFactory.defaultPage(); List resultList = new ArrayList<>(); - - Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { - if(applyFromIdEnum.getValue().contains("计量业务")){ - return; + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; } - - List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); - if(CollectionUtils.isEmpty(toBeApprovedList)){ - return; + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; } - toBeApprovedList.forEach(a -> { + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertTobeApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertTobeApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.toApprovalList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ BoardMessage message = new BoardMessage(); message.setMessageModule("审批提醒"); message.setMessageType("审批提醒"); - message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "待审批"); message.setSourceModule(applyFromIdEnum.getSource()); - message.setReadStatus("0"); - message.setBizId(Long.valueOf(a.getBusinessKey())); - message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); + message.setReadStatus("待审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); message.setFormId(applyFromIdEnum.getCode()); - message.setProcessId(a.getProcessId()); - message.setTaskId(a.getTaskId()); - message.setDecisionItem(a.getDecisionItem()); - + message.setProcessId(item.getProcessId()); + message.setTaskId(item.getTaskId()); + message.setDecisionItem(item.getDecisionItem()); resultList.add(message); }); - }); + } + } + + + public Page approvedListPage(BoardMessageQueryForm queryForm){ + Page page = PageFactory.defaultPage(); + List resultList = new ArrayList<>(); + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; + } + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; + } + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.approvedList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ + BoardMessage message = new BoardMessage(); + message.setMessageModule("审批提醒"); + message.setMessageType("审批提醒"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "已审批"); + message.setSourceModule(applyFromIdEnum.getSource()); + message.setReadStatus("已审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); + message.setFormId(applyFromIdEnum.getCode()); + resultList.add(message); + }); + } + } + + private void getMessagePage(Page page, List resultList,BoardMessageQueryForm queryForm) { + if(ObjectUtil.isNotEmpty(queryForm.getMessageStartTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().before(DateUtil.parseDateTime(queryForm.getMessageStartTime()))).collect(Collectors.toList()); + } + if(ObjectUtil.isNotEmpty(queryForm.getMessageEndTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().after(DateUtil.parseDateTime(queryForm.getMessageEndTime()))).collect(Collectors.toList()); + } resultList.sort((o1, o2) -> o2.getMessageTime().compareTo(o1.getMessageTime())); page.setTotal(resultList.size()); int startIdx = Math.toIntExact((page.getCurrent() - 1) * page.getSize()); int endIdx = Math.toIntExact((page.getCurrent()) * page.getSize()); if(startIdx > page.getTotal()){ page.setRecords(new ArrayList<>()); - return page; + return; } if(endIdx > page.getTotal()){ endIdx = Math.toIntExact(page.getTotal()); } page.setRecords(resultList.subList(startIdx,endIdx)); - return page; + } + + @Override + public void remindEquipment(EquipmentInfo equipmentInfo) { + List userList = permissionContext.getUserService().getUsersByRoleTips(null,null); + + User notifyUser = userList.stream().filter(u->u.getName().equals(equipmentInfo.getDirectorName())).findAny().orElse(null); + if(ObjectUtil.isEmpty(notifyUser)){ + return; + } + QueryWrapper checkWrapper = new QueryWrapper<>(); + checkWrapper.eq("biz_id",equipmentInfo.getId()); + checkWrapper.eq("message_module","工作提醒"); + checkWrapper.eq("message_type","设备到期"); + checkWrapper.eq("notify_user_id",notifyUser.getId()); + if(this.count(checkWrapper) > 0){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("biz_id",equipmentInfo.getId()); + updateWrapper.eq("message_module","工作提醒"); + updateWrapper.eq("message_type","设备到期"); + updateWrapper.eq("notify_user_id",notifyUser.getId()); + updateWrapper.set("message_time",new Date()); + this.update(updateWrapper); + }else { + BoardMessage boardMessage = new BoardMessage(); + boardMessage.setMessageModule("工作提醒"); + boardMessage.setMessageType("设备到期"); + boardMessage.setMessageTopic(equipmentInfo.getEquipmentName()+equipmentInfo.getEquipmentNo()+"已超有效期"); + boardMessage.setSourceModule("设备台账"); + boardMessage.setReadStatus("0"); + boardMessage.setNotifyUserId(notifyUser.getId()); + boardMessage.setBizId(equipmentInfo.getId()); + boardMessage.setMessageTime(new Date()); + boardMessage.setSetTop(0); + this.save(boardMessage); + } + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index ce36e9d..7f28a62 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -184,6 +184,7 @@ commonAggr.setName(dictService.getDictNameByCode(dictConvert,commonAggr.getName())); } } + resList = resList.stream().filter(i->StrUtil.isNotEmpty(i.getName())).collect(Collectors.toList()); return resList; } @@ -325,7 +326,7 @@ queryWrapper.in(CollUtil.isNotEmpty(deptIds),"e.dept_id",deptIds); queryWrapper.eq("e.equipment_type",EQUIPMENT_TYPE_NORMAL); queryWrapper.eq("e.is_del","0"); - queryWrapper.in("r.sample_status",InCheckSampleStatus); + queryWrapper.in("r.sample_status",SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus)); return queryWrapper; } @@ -357,7 +358,10 @@ List companyAggrList = new ArrayList<>(); Map> groupMap = list.stream().collect(Collectors.groupingBy(classifier)); for (String key : groupMap.keySet()) { - String keyName = dictService.getDictNameByCode(dictConvert,key); + String keyName = key; + if(StrUtil.isNotEmpty(dictConvert)){ + keyName = dictService.getDictNameByCode(dictConvert,key); + } if(StrUtil.isNotEmpty(keyName)){ companyAggrList.add(new EquipmentCommonAggr(keyName,groupMap.get(key).size())); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 519efaa..e00f517 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -253,9 +253,11 @@ @Override public EquipmentInfoApproval warpper(EquipmentInfoApproval approval) { try { + super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - DictCodeUtils.convertDictCodeToName(approval); + //DictCodeUtils.convertDictCodeToName(approval); + } catch (Exception e) { throw new RuntimeException(e); } @@ -321,4 +323,9 @@ updateWrapper.set("instructions_file",modelInfo.getInstructionsFile()); this.update(updateWrapper); } + + @Override + public void setBizNo(EquipmentInfoApproval obj) { + obj.setBizNo(obj.getEquipmentNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 3169b84..fa01eb3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -31,6 +31,7 @@ import com.casic.missiles.model.equipment.*; import com.casic.missiles.mapper.equipment.EquipmentInfoMapper; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.service.board.IBoardMessageService; import com.casic.missiles.service.equipment.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.service.status.IEquipmentStatusLogService; @@ -75,8 +76,10 @@ private final IEquipmentTurnoverLogService turnoverLogService; private final IEquipmentTaskRelationService taskRelationService; private final IEquipmentTaskInfoService taskInfoService; + private final IBoardMessageService boardMessageService; private ISubcontractCertificateService subcontractCertificateService; + @Autowired public void setSubcontractCertificateService(ISubcontractCertificateService subcontractCertificateService) { this.subcontractCertificateService = subcontractCertificateService; @@ -162,7 +165,7 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.apply(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext) like '%{0}%'",queryForm.getInstallLocation()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); @@ -424,6 +427,14 @@ return list; } + @Override + public void remind(Long equipmentId) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + boardMessageService.remindEquipment(equipmentInfo); + } + } + private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java index a726353..aec2020 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java @@ -119,4 +119,9 @@ public InspectionApproval warpper(InspectionApproval obj) { return super.warpper(obj); } + + @Override + public void setBizNo(InspectionApproval obj) { + obj.setBizNo(obj.getApprovalNo()); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 29c162d..ef7fce5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -50,6 +50,8 @@ List remindList(EquipmentRemindQueryForm queryForm); + void remind(Long equipmentId); + List expireTrend(String type); Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 58df953..187b0ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -30,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; @@ -188,6 +185,29 @@ } @Override + public List toApprovalList(String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return new ArrayList<>(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + List list = this.list(queryWrapper); + for (T approval : list) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + return list; + } + + @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); if (CollUtil.isEmpty(approvedIds)) { @@ -201,6 +221,19 @@ } @Override + public List approvedList(String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return new ArrayList<>(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", approvedIds); + List list = this.list(queryWrapper); + list.forEach(this::warpper); + return list; + } + + @Override public Page allPage(Page page, Q queryForm) { Long t1 = System.currentTimeMillis(); QueryWrapper queryWrapper = commonQuery(queryForm); @@ -249,9 +282,15 @@ public T warpper(T obj) { try { DictCodeUtils.convertDictCodeToName(obj); + setBizNo(obj); }catch (Exception e){ log.error(e.getMessage()); } return obj; } + + @Override + public void setBizNo(T obj) { + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java index 953f4c7..d24f084 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.board; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -9,25 +11,43 @@ 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.BaseQueryForm; import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum; import com.casic.missiles.enums.system.ApplyFromIdEnum; +import com.casic.missiles.model.CommonApproval; import com.casic.missiles.model.board.BoardMessage; import com.casic.missiles.mapper.board.BoardMessageMapper; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.board.IBoardMessageService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; +import com.casic.missiles.service.plan.IInspectionApprovalService; +import com.casic.missiles.service.plan.IPlanService; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.subcontract.ISubcontractReviewService; +import com.casic.missiles.service.subcontract.ISubcontractorService; import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.ACTION_STATUS_MAP; +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.EQUIPMENT_APPROVAL; /** *

@@ -43,7 +63,7 @@ private final AbstractPermissionContext permissionContext; private final ISystemDeptService systemDeptService; - private final IBaseApprovalService baseApprovalService; + @Override public Page listPage(BoardMessageQueryForm queryForm) { @@ -68,10 +88,12 @@ private Page checkMessage(Page page, BoardMessageQueryForm queryForm) { QueryWrapper queryWrapper = this.commonQuery(queryForm); queryWrapper.eq("notify_dept_id",systemDeptService.getUserCompany().getId()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); if(!isAdmin()){ - queryWrapper.eq("notify_user_id",permissionContext.getAuthService().getLoginUser().getId()); + queryWrapper.eq("notify_user_id",userId); } - List list = this.baseMapper.checkMessagePage(page,queryWrapper); + List list = this.baseMapper.checkMessagePage(page,queryWrapper,userId); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -80,7 +102,9 @@ QueryWrapper queryWrapper = this.commonQuery(queryForm); Dept company = systemDeptService.getUserCompany(); queryWrapper.eq("notify_dept_id",company.getId()); - List list = this.baseMapper.noticeMessagePage(page,queryWrapper,company.getId(),company.getFullName()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); + List list = this.baseMapper.noticeMessagePage(page,queryWrapper,userId,company.getId(),company.getFullName()); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -93,6 +117,7 @@ i.eq("notify_user_id",user.getId()).or().eq("notify_dept_id",company.getId()); }); List list = this.baseMapper.remindMessagePage(page,queryWrapper,user.getId(),user.getName()); + list.forEach(i->i.setNotifyUserId(user.getId())); page.setRecords(list); return page; } @@ -121,50 +146,186 @@ this.update(updateWrapper); } +// @Override +// public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { +// Page page = PageFactory.defaultPage(); +// List resultList = new ArrayList<>(); +// +// Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { +// if(applyFromIdEnum.getValue().contains("计量业务")){ +// return; +// } +// if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ +// return; +// } +// +// List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); +// if(CollectionUtils.isEmpty(toBeApprovedList)){ +// return; +// } +// toBeApprovedList.forEach(a -> { +// BoardMessage message = new BoardMessage(); +// message.setMessageModule("审批提醒"); +// message.setMessageType("审批提醒"); +// message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); +// message.setSourceModule(applyFromIdEnum.getSource()); +// message.setReadStatus("待审批"); +// message.setBizId(Long.valueOf(a.getBusinessKey())); +// message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); +// +// message.setFormId(applyFromIdEnum.getCode()); +// message.setProcessId(a.getProcessId()); +// message.setTaskId(a.getTaskId()); +// message.setDecisionItem(a.getDecisionItem()); +// +// resultList.add(message); +// }); +// }); +// getMessagePage(page, resultList,queryForm); +// return page; +// } + @Override public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { Page page = PageFactory.defaultPage(); List resultList = new ArrayList<>(); - - Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { - if(applyFromIdEnum.getValue().contains("计量业务")){ - return; + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; } - - List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); - if(CollectionUtils.isEmpty(toBeApprovedList)){ - return; + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; } - toBeApprovedList.forEach(a -> { + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertTobeApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertTobeApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.toApprovalList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ BoardMessage message = new BoardMessage(); message.setMessageModule("审批提醒"); message.setMessageType("审批提醒"); - message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "待审批"); message.setSourceModule(applyFromIdEnum.getSource()); - message.setReadStatus("0"); - message.setBizId(Long.valueOf(a.getBusinessKey())); - message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); + message.setReadStatus("待审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); message.setFormId(applyFromIdEnum.getCode()); - message.setProcessId(a.getProcessId()); - message.setTaskId(a.getTaskId()); - message.setDecisionItem(a.getDecisionItem()); - + message.setProcessId(item.getProcessId()); + message.setTaskId(item.getTaskId()); + message.setDecisionItem(item.getDecisionItem()); resultList.add(message); }); - }); + } + } + + + public Page approvedListPage(BoardMessageQueryForm queryForm){ + Page page = PageFactory.defaultPage(); + List resultList = new ArrayList<>(); + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; + } + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; + } + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.approvedList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ + BoardMessage message = new BoardMessage(); + message.setMessageModule("审批提醒"); + message.setMessageType("审批提醒"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "已审批"); + message.setSourceModule(applyFromIdEnum.getSource()); + message.setReadStatus("已审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); + message.setFormId(applyFromIdEnum.getCode()); + resultList.add(message); + }); + } + } + + private void getMessagePage(Page page, List resultList,BoardMessageQueryForm queryForm) { + if(ObjectUtil.isNotEmpty(queryForm.getMessageStartTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().before(DateUtil.parseDateTime(queryForm.getMessageStartTime()))).collect(Collectors.toList()); + } + if(ObjectUtil.isNotEmpty(queryForm.getMessageEndTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().after(DateUtil.parseDateTime(queryForm.getMessageEndTime()))).collect(Collectors.toList()); + } resultList.sort((o1, o2) -> o2.getMessageTime().compareTo(o1.getMessageTime())); page.setTotal(resultList.size()); int startIdx = Math.toIntExact((page.getCurrent() - 1) * page.getSize()); int endIdx = Math.toIntExact((page.getCurrent()) * page.getSize()); if(startIdx > page.getTotal()){ page.setRecords(new ArrayList<>()); - return page; + return; } if(endIdx > page.getTotal()){ endIdx = Math.toIntExact(page.getTotal()); } page.setRecords(resultList.subList(startIdx,endIdx)); - return page; + } + + @Override + public void remindEquipment(EquipmentInfo equipmentInfo) { + List userList = permissionContext.getUserService().getUsersByRoleTips(null,null); + + User notifyUser = userList.stream().filter(u->u.getName().equals(equipmentInfo.getDirectorName())).findAny().orElse(null); + if(ObjectUtil.isEmpty(notifyUser)){ + return; + } + QueryWrapper checkWrapper = new QueryWrapper<>(); + checkWrapper.eq("biz_id",equipmentInfo.getId()); + checkWrapper.eq("message_module","工作提醒"); + checkWrapper.eq("message_type","设备到期"); + checkWrapper.eq("notify_user_id",notifyUser.getId()); + if(this.count(checkWrapper) > 0){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("biz_id",equipmentInfo.getId()); + updateWrapper.eq("message_module","工作提醒"); + updateWrapper.eq("message_type","设备到期"); + updateWrapper.eq("notify_user_id",notifyUser.getId()); + updateWrapper.set("message_time",new Date()); + this.update(updateWrapper); + }else { + BoardMessage boardMessage = new BoardMessage(); + boardMessage.setMessageModule("工作提醒"); + boardMessage.setMessageType("设备到期"); + boardMessage.setMessageTopic(equipmentInfo.getEquipmentName()+equipmentInfo.getEquipmentNo()+"已超有效期"); + boardMessage.setSourceModule("设备台账"); + boardMessage.setReadStatus("0"); + boardMessage.setNotifyUserId(notifyUser.getId()); + boardMessage.setBizId(equipmentInfo.getId()); + boardMessage.setMessageTime(new Date()); + boardMessage.setSetTop(0); + this.save(boardMessage); + } + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index ce36e9d..7f28a62 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -184,6 +184,7 @@ commonAggr.setName(dictService.getDictNameByCode(dictConvert,commonAggr.getName())); } } + resList = resList.stream().filter(i->StrUtil.isNotEmpty(i.getName())).collect(Collectors.toList()); return resList; } @@ -325,7 +326,7 @@ queryWrapper.in(CollUtil.isNotEmpty(deptIds),"e.dept_id",deptIds); queryWrapper.eq("e.equipment_type",EQUIPMENT_TYPE_NORMAL); queryWrapper.eq("e.is_del","0"); - queryWrapper.in("r.sample_status",InCheckSampleStatus); + queryWrapper.in("r.sample_status",SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus)); return queryWrapper; } @@ -357,7 +358,10 @@ List companyAggrList = new ArrayList<>(); Map> groupMap = list.stream().collect(Collectors.groupingBy(classifier)); for (String key : groupMap.keySet()) { - String keyName = dictService.getDictNameByCode(dictConvert,key); + String keyName = key; + if(StrUtil.isNotEmpty(dictConvert)){ + keyName = dictService.getDictNameByCode(dictConvert,key); + } if(StrUtil.isNotEmpty(keyName)){ companyAggrList.add(new EquipmentCommonAggr(keyName,groupMap.get(key).size())); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 519efaa..e00f517 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -253,9 +253,11 @@ @Override public EquipmentInfoApproval warpper(EquipmentInfoApproval approval) { try { + super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - DictCodeUtils.convertDictCodeToName(approval); + //DictCodeUtils.convertDictCodeToName(approval); + } catch (Exception e) { throw new RuntimeException(e); } @@ -321,4 +323,9 @@ updateWrapper.set("instructions_file",modelInfo.getInstructionsFile()); this.update(updateWrapper); } + + @Override + public void setBizNo(EquipmentInfoApproval obj) { + obj.setBizNo(obj.getEquipmentNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 3169b84..fa01eb3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -31,6 +31,7 @@ import com.casic.missiles.model.equipment.*; import com.casic.missiles.mapper.equipment.EquipmentInfoMapper; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.service.board.IBoardMessageService; import com.casic.missiles.service.equipment.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.service.status.IEquipmentStatusLogService; @@ -75,8 +76,10 @@ private final IEquipmentTurnoverLogService turnoverLogService; private final IEquipmentTaskRelationService taskRelationService; private final IEquipmentTaskInfoService taskInfoService; + private final IBoardMessageService boardMessageService; private ISubcontractCertificateService subcontractCertificateService; + @Autowired public void setSubcontractCertificateService(ISubcontractCertificateService subcontractCertificateService) { this.subcontractCertificateService = subcontractCertificateService; @@ -162,7 +165,7 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.apply(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext) like '%{0}%'",queryForm.getInstallLocation()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); @@ -424,6 +427,14 @@ return list; } + @Override + public void remind(Long equipmentId) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + boardMessageService.remindEquipment(equipmentInfo); + } + } + private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java index a726353..aec2020 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java @@ -119,4 +119,9 @@ public InspectionApproval warpper(InspectionApproval obj) { return super.warpper(obj); } + + @Override + public void setBizNo(InspectionApproval obj) { + obj.setBizNo(obj.getApprovalNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java index 28fa227..3945ec8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java @@ -118,4 +118,8 @@ return super.warpper(obj); } + @Override + public void setBizNo(Plan obj) { + obj.setBizNo(obj.getPlanNo()); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 29c162d..ef7fce5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -50,6 +50,8 @@ List remindList(EquipmentRemindQueryForm queryForm); + void remind(Long equipmentId); + List expireTrend(String type); Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 58df953..187b0ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -30,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; @@ -188,6 +185,29 @@ } @Override + public List toApprovalList(String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return new ArrayList<>(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + List list = this.list(queryWrapper); + for (T approval : list) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + return list; + } + + @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); if (CollUtil.isEmpty(approvedIds)) { @@ -201,6 +221,19 @@ } @Override + public List approvedList(String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return new ArrayList<>(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", approvedIds); + List list = this.list(queryWrapper); + list.forEach(this::warpper); + return list; + } + + @Override public Page allPage(Page page, Q queryForm) { Long t1 = System.currentTimeMillis(); QueryWrapper queryWrapper = commonQuery(queryForm); @@ -249,9 +282,15 @@ public T warpper(T obj) { try { DictCodeUtils.convertDictCodeToName(obj); + setBizNo(obj); }catch (Exception e){ log.error(e.getMessage()); } return obj; } + + @Override + public void setBizNo(T obj) { + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java index 953f4c7..d24f084 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.board; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -9,25 +11,43 @@ 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.BaseQueryForm; import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum; import com.casic.missiles.enums.system.ApplyFromIdEnum; +import com.casic.missiles.model.CommonApproval; import com.casic.missiles.model.board.BoardMessage; import com.casic.missiles.mapper.board.BoardMessageMapper; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.board.IBoardMessageService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; +import com.casic.missiles.service.plan.IInspectionApprovalService; +import com.casic.missiles.service.plan.IPlanService; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.subcontract.ISubcontractReviewService; +import com.casic.missiles.service.subcontract.ISubcontractorService; import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.ACTION_STATUS_MAP; +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.EQUIPMENT_APPROVAL; /** *

@@ -43,7 +63,7 @@ private final AbstractPermissionContext permissionContext; private final ISystemDeptService systemDeptService; - private final IBaseApprovalService baseApprovalService; + @Override public Page listPage(BoardMessageQueryForm queryForm) { @@ -68,10 +88,12 @@ private Page checkMessage(Page page, BoardMessageQueryForm queryForm) { QueryWrapper queryWrapper = this.commonQuery(queryForm); queryWrapper.eq("notify_dept_id",systemDeptService.getUserCompany().getId()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); if(!isAdmin()){ - queryWrapper.eq("notify_user_id",permissionContext.getAuthService().getLoginUser().getId()); + queryWrapper.eq("notify_user_id",userId); } - List list = this.baseMapper.checkMessagePage(page,queryWrapper); + List list = this.baseMapper.checkMessagePage(page,queryWrapper,userId); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -80,7 +102,9 @@ QueryWrapper queryWrapper = this.commonQuery(queryForm); Dept company = systemDeptService.getUserCompany(); queryWrapper.eq("notify_dept_id",company.getId()); - List list = this.baseMapper.noticeMessagePage(page,queryWrapper,company.getId(),company.getFullName()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); + List list = this.baseMapper.noticeMessagePage(page,queryWrapper,userId,company.getId(),company.getFullName()); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -93,6 +117,7 @@ i.eq("notify_user_id",user.getId()).or().eq("notify_dept_id",company.getId()); }); List list = this.baseMapper.remindMessagePage(page,queryWrapper,user.getId(),user.getName()); + list.forEach(i->i.setNotifyUserId(user.getId())); page.setRecords(list); return page; } @@ -121,50 +146,186 @@ this.update(updateWrapper); } +// @Override +// public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { +// Page page = PageFactory.defaultPage(); +// List resultList = new ArrayList<>(); +// +// Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { +// if(applyFromIdEnum.getValue().contains("计量业务")){ +// return; +// } +// if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ +// return; +// } +// +// List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); +// if(CollectionUtils.isEmpty(toBeApprovedList)){ +// return; +// } +// toBeApprovedList.forEach(a -> { +// BoardMessage message = new BoardMessage(); +// message.setMessageModule("审批提醒"); +// message.setMessageType("审批提醒"); +// message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); +// message.setSourceModule(applyFromIdEnum.getSource()); +// message.setReadStatus("待审批"); +// message.setBizId(Long.valueOf(a.getBusinessKey())); +// message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); +// +// message.setFormId(applyFromIdEnum.getCode()); +// message.setProcessId(a.getProcessId()); +// message.setTaskId(a.getTaskId()); +// message.setDecisionItem(a.getDecisionItem()); +// +// resultList.add(message); +// }); +// }); +// getMessagePage(page, resultList,queryForm); +// return page; +// } + @Override public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { Page page = PageFactory.defaultPage(); List resultList = new ArrayList<>(); - - Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { - if(applyFromIdEnum.getValue().contains("计量业务")){ - return; + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; } - - List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); - if(CollectionUtils.isEmpty(toBeApprovedList)){ - return; + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; } - toBeApprovedList.forEach(a -> { + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertTobeApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertTobeApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.toApprovalList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ BoardMessage message = new BoardMessage(); message.setMessageModule("审批提醒"); message.setMessageType("审批提醒"); - message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "待审批"); message.setSourceModule(applyFromIdEnum.getSource()); - message.setReadStatus("0"); - message.setBizId(Long.valueOf(a.getBusinessKey())); - message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); + message.setReadStatus("待审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); message.setFormId(applyFromIdEnum.getCode()); - message.setProcessId(a.getProcessId()); - message.setTaskId(a.getTaskId()); - message.setDecisionItem(a.getDecisionItem()); - + message.setProcessId(item.getProcessId()); + message.setTaskId(item.getTaskId()); + message.setDecisionItem(item.getDecisionItem()); resultList.add(message); }); - }); + } + } + + + public Page approvedListPage(BoardMessageQueryForm queryForm){ + Page page = PageFactory.defaultPage(); + List resultList = new ArrayList<>(); + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; + } + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; + } + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.approvedList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ + BoardMessage message = new BoardMessage(); + message.setMessageModule("审批提醒"); + message.setMessageType("审批提醒"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "已审批"); + message.setSourceModule(applyFromIdEnum.getSource()); + message.setReadStatus("已审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); + message.setFormId(applyFromIdEnum.getCode()); + resultList.add(message); + }); + } + } + + private void getMessagePage(Page page, List resultList,BoardMessageQueryForm queryForm) { + if(ObjectUtil.isNotEmpty(queryForm.getMessageStartTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().before(DateUtil.parseDateTime(queryForm.getMessageStartTime()))).collect(Collectors.toList()); + } + if(ObjectUtil.isNotEmpty(queryForm.getMessageEndTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().after(DateUtil.parseDateTime(queryForm.getMessageEndTime()))).collect(Collectors.toList()); + } resultList.sort((o1, o2) -> o2.getMessageTime().compareTo(o1.getMessageTime())); page.setTotal(resultList.size()); int startIdx = Math.toIntExact((page.getCurrent() - 1) * page.getSize()); int endIdx = Math.toIntExact((page.getCurrent()) * page.getSize()); if(startIdx > page.getTotal()){ page.setRecords(new ArrayList<>()); - return page; + return; } if(endIdx > page.getTotal()){ endIdx = Math.toIntExact(page.getTotal()); } page.setRecords(resultList.subList(startIdx,endIdx)); - return page; + } + + @Override + public void remindEquipment(EquipmentInfo equipmentInfo) { + List userList = permissionContext.getUserService().getUsersByRoleTips(null,null); + + User notifyUser = userList.stream().filter(u->u.getName().equals(equipmentInfo.getDirectorName())).findAny().orElse(null); + if(ObjectUtil.isEmpty(notifyUser)){ + return; + } + QueryWrapper checkWrapper = new QueryWrapper<>(); + checkWrapper.eq("biz_id",equipmentInfo.getId()); + checkWrapper.eq("message_module","工作提醒"); + checkWrapper.eq("message_type","设备到期"); + checkWrapper.eq("notify_user_id",notifyUser.getId()); + if(this.count(checkWrapper) > 0){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("biz_id",equipmentInfo.getId()); + updateWrapper.eq("message_module","工作提醒"); + updateWrapper.eq("message_type","设备到期"); + updateWrapper.eq("notify_user_id",notifyUser.getId()); + updateWrapper.set("message_time",new Date()); + this.update(updateWrapper); + }else { + BoardMessage boardMessage = new BoardMessage(); + boardMessage.setMessageModule("工作提醒"); + boardMessage.setMessageType("设备到期"); + boardMessage.setMessageTopic(equipmentInfo.getEquipmentName()+equipmentInfo.getEquipmentNo()+"已超有效期"); + boardMessage.setSourceModule("设备台账"); + boardMessage.setReadStatus("0"); + boardMessage.setNotifyUserId(notifyUser.getId()); + boardMessage.setBizId(equipmentInfo.getId()); + boardMessage.setMessageTime(new Date()); + boardMessage.setSetTop(0); + this.save(boardMessage); + } + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index ce36e9d..7f28a62 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -184,6 +184,7 @@ commonAggr.setName(dictService.getDictNameByCode(dictConvert,commonAggr.getName())); } } + resList = resList.stream().filter(i->StrUtil.isNotEmpty(i.getName())).collect(Collectors.toList()); return resList; } @@ -325,7 +326,7 @@ queryWrapper.in(CollUtil.isNotEmpty(deptIds),"e.dept_id",deptIds); queryWrapper.eq("e.equipment_type",EQUIPMENT_TYPE_NORMAL); queryWrapper.eq("e.is_del","0"); - queryWrapper.in("r.sample_status",InCheckSampleStatus); + queryWrapper.in("r.sample_status",SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus)); return queryWrapper; } @@ -357,7 +358,10 @@ List companyAggrList = new ArrayList<>(); Map> groupMap = list.stream().collect(Collectors.groupingBy(classifier)); for (String key : groupMap.keySet()) { - String keyName = dictService.getDictNameByCode(dictConvert,key); + String keyName = key; + if(StrUtil.isNotEmpty(dictConvert)){ + keyName = dictService.getDictNameByCode(dictConvert,key); + } if(StrUtil.isNotEmpty(keyName)){ companyAggrList.add(new EquipmentCommonAggr(keyName,groupMap.get(key).size())); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 519efaa..e00f517 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -253,9 +253,11 @@ @Override public EquipmentInfoApproval warpper(EquipmentInfoApproval approval) { try { + super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - DictCodeUtils.convertDictCodeToName(approval); + //DictCodeUtils.convertDictCodeToName(approval); + } catch (Exception e) { throw new RuntimeException(e); } @@ -321,4 +323,9 @@ updateWrapper.set("instructions_file",modelInfo.getInstructionsFile()); this.update(updateWrapper); } + + @Override + public void setBizNo(EquipmentInfoApproval obj) { + obj.setBizNo(obj.getEquipmentNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 3169b84..fa01eb3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -31,6 +31,7 @@ import com.casic.missiles.model.equipment.*; import com.casic.missiles.mapper.equipment.EquipmentInfoMapper; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.service.board.IBoardMessageService; import com.casic.missiles.service.equipment.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.service.status.IEquipmentStatusLogService; @@ -75,8 +76,10 @@ private final IEquipmentTurnoverLogService turnoverLogService; private final IEquipmentTaskRelationService taskRelationService; private final IEquipmentTaskInfoService taskInfoService; + private final IBoardMessageService boardMessageService; private ISubcontractCertificateService subcontractCertificateService; + @Autowired public void setSubcontractCertificateService(ISubcontractCertificateService subcontractCertificateService) { this.subcontractCertificateService = subcontractCertificateService; @@ -162,7 +165,7 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.apply(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext) like '%{0}%'",queryForm.getInstallLocation()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); @@ -424,6 +427,14 @@ return list; } + @Override + public void remind(Long equipmentId) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + boardMessageService.remindEquipment(equipmentInfo); + } + } + private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java index a726353..aec2020 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java @@ -119,4 +119,9 @@ public InspectionApproval warpper(InspectionApproval obj) { return super.warpper(obj); } + + @Override + public void setBizNo(InspectionApproval obj) { + obj.setBizNo(obj.getApprovalNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java index 28fa227..3945ec8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java @@ -118,4 +118,8 @@ return super.warpper(obj); } + @Override + public void setBizNo(Plan obj) { + obj.setBizNo(obj.getPlanNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index 90bf7c4..6dceac4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -226,4 +226,9 @@ } return queryWrapper; } + + @Override + public void setBizNo(EquipmentStatusApproval obj) { + obj.setBizNo(obj.getApprovalNo()); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 29c162d..ef7fce5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -50,6 +50,8 @@ List remindList(EquipmentRemindQueryForm queryForm); + void remind(Long equipmentId); + List expireTrend(String type); Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 58df953..187b0ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -30,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; @@ -188,6 +185,29 @@ } @Override + public List toApprovalList(String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return new ArrayList<>(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + List list = this.list(queryWrapper); + for (T approval : list) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + return list; + } + + @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); if (CollUtil.isEmpty(approvedIds)) { @@ -201,6 +221,19 @@ } @Override + public List approvedList(String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return new ArrayList<>(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", approvedIds); + List list = this.list(queryWrapper); + list.forEach(this::warpper); + return list; + } + + @Override public Page allPage(Page page, Q queryForm) { Long t1 = System.currentTimeMillis(); QueryWrapper queryWrapper = commonQuery(queryForm); @@ -249,9 +282,15 @@ public T warpper(T obj) { try { DictCodeUtils.convertDictCodeToName(obj); + setBizNo(obj); }catch (Exception e){ log.error(e.getMessage()); } return obj; } + + @Override + public void setBizNo(T obj) { + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java index 953f4c7..d24f084 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.board; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -9,25 +11,43 @@ 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.BaseQueryForm; import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum; import com.casic.missiles.enums.system.ApplyFromIdEnum; +import com.casic.missiles.model.CommonApproval; import com.casic.missiles.model.board.BoardMessage; import com.casic.missiles.mapper.board.BoardMessageMapper; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.board.IBoardMessageService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; +import com.casic.missiles.service.plan.IInspectionApprovalService; +import com.casic.missiles.service.plan.IPlanService; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.subcontract.ISubcontractReviewService; +import com.casic.missiles.service.subcontract.ISubcontractorService; import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.ACTION_STATUS_MAP; +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.EQUIPMENT_APPROVAL; /** *

@@ -43,7 +63,7 @@ private final AbstractPermissionContext permissionContext; private final ISystemDeptService systemDeptService; - private final IBaseApprovalService baseApprovalService; + @Override public Page listPage(BoardMessageQueryForm queryForm) { @@ -68,10 +88,12 @@ private Page checkMessage(Page page, BoardMessageQueryForm queryForm) { QueryWrapper queryWrapper = this.commonQuery(queryForm); queryWrapper.eq("notify_dept_id",systemDeptService.getUserCompany().getId()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); if(!isAdmin()){ - queryWrapper.eq("notify_user_id",permissionContext.getAuthService().getLoginUser().getId()); + queryWrapper.eq("notify_user_id",userId); } - List list = this.baseMapper.checkMessagePage(page,queryWrapper); + List list = this.baseMapper.checkMessagePage(page,queryWrapper,userId); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -80,7 +102,9 @@ QueryWrapper queryWrapper = this.commonQuery(queryForm); Dept company = systemDeptService.getUserCompany(); queryWrapper.eq("notify_dept_id",company.getId()); - List list = this.baseMapper.noticeMessagePage(page,queryWrapper,company.getId(),company.getFullName()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); + List list = this.baseMapper.noticeMessagePage(page,queryWrapper,userId,company.getId(),company.getFullName()); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -93,6 +117,7 @@ i.eq("notify_user_id",user.getId()).or().eq("notify_dept_id",company.getId()); }); List list = this.baseMapper.remindMessagePage(page,queryWrapper,user.getId(),user.getName()); + list.forEach(i->i.setNotifyUserId(user.getId())); page.setRecords(list); return page; } @@ -121,50 +146,186 @@ this.update(updateWrapper); } +// @Override +// public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { +// Page page = PageFactory.defaultPage(); +// List resultList = new ArrayList<>(); +// +// Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { +// if(applyFromIdEnum.getValue().contains("计量业务")){ +// return; +// } +// if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ +// return; +// } +// +// List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); +// if(CollectionUtils.isEmpty(toBeApprovedList)){ +// return; +// } +// toBeApprovedList.forEach(a -> { +// BoardMessage message = new BoardMessage(); +// message.setMessageModule("审批提醒"); +// message.setMessageType("审批提醒"); +// message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); +// message.setSourceModule(applyFromIdEnum.getSource()); +// message.setReadStatus("待审批"); +// message.setBizId(Long.valueOf(a.getBusinessKey())); +// message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); +// +// message.setFormId(applyFromIdEnum.getCode()); +// message.setProcessId(a.getProcessId()); +// message.setTaskId(a.getTaskId()); +// message.setDecisionItem(a.getDecisionItem()); +// +// resultList.add(message); +// }); +// }); +// getMessagePage(page, resultList,queryForm); +// return page; +// } + @Override public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { Page page = PageFactory.defaultPage(); List resultList = new ArrayList<>(); - - Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { - if(applyFromIdEnum.getValue().contains("计量业务")){ - return; + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; } - - List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); - if(CollectionUtils.isEmpty(toBeApprovedList)){ - return; + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; } - toBeApprovedList.forEach(a -> { + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertTobeApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertTobeApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.toApprovalList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ BoardMessage message = new BoardMessage(); message.setMessageModule("审批提醒"); message.setMessageType("审批提醒"); - message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "待审批"); message.setSourceModule(applyFromIdEnum.getSource()); - message.setReadStatus("0"); - message.setBizId(Long.valueOf(a.getBusinessKey())); - message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); + message.setReadStatus("待审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); message.setFormId(applyFromIdEnum.getCode()); - message.setProcessId(a.getProcessId()); - message.setTaskId(a.getTaskId()); - message.setDecisionItem(a.getDecisionItem()); - + message.setProcessId(item.getProcessId()); + message.setTaskId(item.getTaskId()); + message.setDecisionItem(item.getDecisionItem()); resultList.add(message); }); - }); + } + } + + + public Page approvedListPage(BoardMessageQueryForm queryForm){ + Page page = PageFactory.defaultPage(); + List resultList = new ArrayList<>(); + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; + } + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; + } + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.approvedList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ + BoardMessage message = new BoardMessage(); + message.setMessageModule("审批提醒"); + message.setMessageType("审批提醒"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "已审批"); + message.setSourceModule(applyFromIdEnum.getSource()); + message.setReadStatus("已审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); + message.setFormId(applyFromIdEnum.getCode()); + resultList.add(message); + }); + } + } + + private void getMessagePage(Page page, List resultList,BoardMessageQueryForm queryForm) { + if(ObjectUtil.isNotEmpty(queryForm.getMessageStartTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().before(DateUtil.parseDateTime(queryForm.getMessageStartTime()))).collect(Collectors.toList()); + } + if(ObjectUtil.isNotEmpty(queryForm.getMessageEndTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().after(DateUtil.parseDateTime(queryForm.getMessageEndTime()))).collect(Collectors.toList()); + } resultList.sort((o1, o2) -> o2.getMessageTime().compareTo(o1.getMessageTime())); page.setTotal(resultList.size()); int startIdx = Math.toIntExact((page.getCurrent() - 1) * page.getSize()); int endIdx = Math.toIntExact((page.getCurrent()) * page.getSize()); if(startIdx > page.getTotal()){ page.setRecords(new ArrayList<>()); - return page; + return; } if(endIdx > page.getTotal()){ endIdx = Math.toIntExact(page.getTotal()); } page.setRecords(resultList.subList(startIdx,endIdx)); - return page; + } + + @Override + public void remindEquipment(EquipmentInfo equipmentInfo) { + List userList = permissionContext.getUserService().getUsersByRoleTips(null,null); + + User notifyUser = userList.stream().filter(u->u.getName().equals(equipmentInfo.getDirectorName())).findAny().orElse(null); + if(ObjectUtil.isEmpty(notifyUser)){ + return; + } + QueryWrapper checkWrapper = new QueryWrapper<>(); + checkWrapper.eq("biz_id",equipmentInfo.getId()); + checkWrapper.eq("message_module","工作提醒"); + checkWrapper.eq("message_type","设备到期"); + checkWrapper.eq("notify_user_id",notifyUser.getId()); + if(this.count(checkWrapper) > 0){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("biz_id",equipmentInfo.getId()); + updateWrapper.eq("message_module","工作提醒"); + updateWrapper.eq("message_type","设备到期"); + updateWrapper.eq("notify_user_id",notifyUser.getId()); + updateWrapper.set("message_time",new Date()); + this.update(updateWrapper); + }else { + BoardMessage boardMessage = new BoardMessage(); + boardMessage.setMessageModule("工作提醒"); + boardMessage.setMessageType("设备到期"); + boardMessage.setMessageTopic(equipmentInfo.getEquipmentName()+equipmentInfo.getEquipmentNo()+"已超有效期"); + boardMessage.setSourceModule("设备台账"); + boardMessage.setReadStatus("0"); + boardMessage.setNotifyUserId(notifyUser.getId()); + boardMessage.setBizId(equipmentInfo.getId()); + boardMessage.setMessageTime(new Date()); + boardMessage.setSetTop(0); + this.save(boardMessage); + } + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index ce36e9d..7f28a62 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -184,6 +184,7 @@ commonAggr.setName(dictService.getDictNameByCode(dictConvert,commonAggr.getName())); } } + resList = resList.stream().filter(i->StrUtil.isNotEmpty(i.getName())).collect(Collectors.toList()); return resList; } @@ -325,7 +326,7 @@ queryWrapper.in(CollUtil.isNotEmpty(deptIds),"e.dept_id",deptIds); queryWrapper.eq("e.equipment_type",EQUIPMENT_TYPE_NORMAL); queryWrapper.eq("e.is_del","0"); - queryWrapper.in("r.sample_status",InCheckSampleStatus); + queryWrapper.in("r.sample_status",SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus)); return queryWrapper; } @@ -357,7 +358,10 @@ List companyAggrList = new ArrayList<>(); Map> groupMap = list.stream().collect(Collectors.groupingBy(classifier)); for (String key : groupMap.keySet()) { - String keyName = dictService.getDictNameByCode(dictConvert,key); + String keyName = key; + if(StrUtil.isNotEmpty(dictConvert)){ + keyName = dictService.getDictNameByCode(dictConvert,key); + } if(StrUtil.isNotEmpty(keyName)){ companyAggrList.add(new EquipmentCommonAggr(keyName,groupMap.get(key).size())); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 519efaa..e00f517 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -253,9 +253,11 @@ @Override public EquipmentInfoApproval warpper(EquipmentInfoApproval approval) { try { + super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - DictCodeUtils.convertDictCodeToName(approval); + //DictCodeUtils.convertDictCodeToName(approval); + } catch (Exception e) { throw new RuntimeException(e); } @@ -321,4 +323,9 @@ updateWrapper.set("instructions_file",modelInfo.getInstructionsFile()); this.update(updateWrapper); } + + @Override + public void setBizNo(EquipmentInfoApproval obj) { + obj.setBizNo(obj.getEquipmentNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 3169b84..fa01eb3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -31,6 +31,7 @@ import com.casic.missiles.model.equipment.*; import com.casic.missiles.mapper.equipment.EquipmentInfoMapper; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.service.board.IBoardMessageService; import com.casic.missiles.service.equipment.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.service.status.IEquipmentStatusLogService; @@ -75,8 +76,10 @@ private final IEquipmentTurnoverLogService turnoverLogService; private final IEquipmentTaskRelationService taskRelationService; private final IEquipmentTaskInfoService taskInfoService; + private final IBoardMessageService boardMessageService; private ISubcontractCertificateService subcontractCertificateService; + @Autowired public void setSubcontractCertificateService(ISubcontractCertificateService subcontractCertificateService) { this.subcontractCertificateService = subcontractCertificateService; @@ -162,7 +165,7 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.apply(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext) like '%{0}%'",queryForm.getInstallLocation()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); @@ -424,6 +427,14 @@ return list; } + @Override + public void remind(Long equipmentId) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + boardMessageService.remindEquipment(equipmentInfo); + } + } + private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java index a726353..aec2020 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java @@ -119,4 +119,9 @@ public InspectionApproval warpper(InspectionApproval obj) { return super.warpper(obj); } + + @Override + public void setBizNo(InspectionApproval obj) { + obj.setBizNo(obj.getApprovalNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java index 28fa227..3945ec8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java @@ -118,4 +118,8 @@ return super.warpper(obj); } + @Override + public void setBizNo(Plan obj) { + obj.setBizNo(obj.getPlanNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index 90bf7c4..6dceac4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -226,4 +226,9 @@ } return queryWrapper; } + + @Override + public void setBizNo(EquipmentStatusApproval obj) { + obj.setBizNo(obj.getApprovalNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractReviewServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractReviewServiceImpl.java index 7a09d2f..2fdc0ac 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractReviewServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractReviewServiceImpl.java @@ -96,4 +96,9 @@ } return queryWrapper; } + + @Override + public void setBizNo(SubcontractReview obj) { + obj.setBizNo(obj.getReviewNo()); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 29c162d..ef7fce5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -50,6 +50,8 @@ List remindList(EquipmentRemindQueryForm queryForm); + void remind(Long equipmentId); + List expireTrend(String type); Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 58df953..187b0ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -30,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; @@ -188,6 +185,29 @@ } @Override + public List toApprovalList(String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return new ArrayList<>(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + List list = this.list(queryWrapper); + for (T approval : list) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + return list; + } + + @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); if (CollUtil.isEmpty(approvedIds)) { @@ -201,6 +221,19 @@ } @Override + public List approvedList(String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return new ArrayList<>(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", approvedIds); + List list = this.list(queryWrapper); + list.forEach(this::warpper); + return list; + } + + @Override public Page allPage(Page page, Q queryForm) { Long t1 = System.currentTimeMillis(); QueryWrapper queryWrapper = commonQuery(queryForm); @@ -249,9 +282,15 @@ public T warpper(T obj) { try { DictCodeUtils.convertDictCodeToName(obj); + setBizNo(obj); }catch (Exception e){ log.error(e.getMessage()); } return obj; } + + @Override + public void setBizNo(T obj) { + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java index 953f4c7..d24f084 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.board; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -9,25 +11,43 @@ 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.BaseQueryForm; import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum; import com.casic.missiles.enums.system.ApplyFromIdEnum; +import com.casic.missiles.model.CommonApproval; import com.casic.missiles.model.board.BoardMessage; import com.casic.missiles.mapper.board.BoardMessageMapper; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.board.IBoardMessageService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; +import com.casic.missiles.service.plan.IInspectionApprovalService; +import com.casic.missiles.service.plan.IPlanService; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.subcontract.ISubcontractReviewService; +import com.casic.missiles.service.subcontract.ISubcontractorService; import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.ACTION_STATUS_MAP; +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.EQUIPMENT_APPROVAL; /** *

@@ -43,7 +63,7 @@ private final AbstractPermissionContext permissionContext; private final ISystemDeptService systemDeptService; - private final IBaseApprovalService baseApprovalService; + @Override public Page listPage(BoardMessageQueryForm queryForm) { @@ -68,10 +88,12 @@ private Page checkMessage(Page page, BoardMessageQueryForm queryForm) { QueryWrapper queryWrapper = this.commonQuery(queryForm); queryWrapper.eq("notify_dept_id",systemDeptService.getUserCompany().getId()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); if(!isAdmin()){ - queryWrapper.eq("notify_user_id",permissionContext.getAuthService().getLoginUser().getId()); + queryWrapper.eq("notify_user_id",userId); } - List list = this.baseMapper.checkMessagePage(page,queryWrapper); + List list = this.baseMapper.checkMessagePage(page,queryWrapper,userId); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -80,7 +102,9 @@ QueryWrapper queryWrapper = this.commonQuery(queryForm); Dept company = systemDeptService.getUserCompany(); queryWrapper.eq("notify_dept_id",company.getId()); - List list = this.baseMapper.noticeMessagePage(page,queryWrapper,company.getId(),company.getFullName()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); + List list = this.baseMapper.noticeMessagePage(page,queryWrapper,userId,company.getId(),company.getFullName()); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -93,6 +117,7 @@ i.eq("notify_user_id",user.getId()).or().eq("notify_dept_id",company.getId()); }); List list = this.baseMapper.remindMessagePage(page,queryWrapper,user.getId(),user.getName()); + list.forEach(i->i.setNotifyUserId(user.getId())); page.setRecords(list); return page; } @@ -121,50 +146,186 @@ this.update(updateWrapper); } +// @Override +// public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { +// Page page = PageFactory.defaultPage(); +// List resultList = new ArrayList<>(); +// +// Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { +// if(applyFromIdEnum.getValue().contains("计量业务")){ +// return; +// } +// if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ +// return; +// } +// +// List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); +// if(CollectionUtils.isEmpty(toBeApprovedList)){ +// return; +// } +// toBeApprovedList.forEach(a -> { +// BoardMessage message = new BoardMessage(); +// message.setMessageModule("审批提醒"); +// message.setMessageType("审批提醒"); +// message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); +// message.setSourceModule(applyFromIdEnum.getSource()); +// message.setReadStatus("待审批"); +// message.setBizId(Long.valueOf(a.getBusinessKey())); +// message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); +// +// message.setFormId(applyFromIdEnum.getCode()); +// message.setProcessId(a.getProcessId()); +// message.setTaskId(a.getTaskId()); +// message.setDecisionItem(a.getDecisionItem()); +// +// resultList.add(message); +// }); +// }); +// getMessagePage(page, resultList,queryForm); +// return page; +// } + @Override public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { Page page = PageFactory.defaultPage(); List resultList = new ArrayList<>(); - - Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { - if(applyFromIdEnum.getValue().contains("计量业务")){ - return; + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; } - - List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); - if(CollectionUtils.isEmpty(toBeApprovedList)){ - return; + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; } - toBeApprovedList.forEach(a -> { + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertTobeApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertTobeApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.toApprovalList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ BoardMessage message = new BoardMessage(); message.setMessageModule("审批提醒"); message.setMessageType("审批提醒"); - message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "待审批"); message.setSourceModule(applyFromIdEnum.getSource()); - message.setReadStatus("0"); - message.setBizId(Long.valueOf(a.getBusinessKey())); - message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); + message.setReadStatus("待审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); message.setFormId(applyFromIdEnum.getCode()); - message.setProcessId(a.getProcessId()); - message.setTaskId(a.getTaskId()); - message.setDecisionItem(a.getDecisionItem()); - + message.setProcessId(item.getProcessId()); + message.setTaskId(item.getTaskId()); + message.setDecisionItem(item.getDecisionItem()); resultList.add(message); }); - }); + } + } + + + public Page approvedListPage(BoardMessageQueryForm queryForm){ + Page page = PageFactory.defaultPage(); + List resultList = new ArrayList<>(); + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; + } + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; + } + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.approvedList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ + BoardMessage message = new BoardMessage(); + message.setMessageModule("审批提醒"); + message.setMessageType("审批提醒"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "已审批"); + message.setSourceModule(applyFromIdEnum.getSource()); + message.setReadStatus("已审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); + message.setFormId(applyFromIdEnum.getCode()); + resultList.add(message); + }); + } + } + + private void getMessagePage(Page page, List resultList,BoardMessageQueryForm queryForm) { + if(ObjectUtil.isNotEmpty(queryForm.getMessageStartTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().before(DateUtil.parseDateTime(queryForm.getMessageStartTime()))).collect(Collectors.toList()); + } + if(ObjectUtil.isNotEmpty(queryForm.getMessageEndTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().after(DateUtil.parseDateTime(queryForm.getMessageEndTime()))).collect(Collectors.toList()); + } resultList.sort((o1, o2) -> o2.getMessageTime().compareTo(o1.getMessageTime())); page.setTotal(resultList.size()); int startIdx = Math.toIntExact((page.getCurrent() - 1) * page.getSize()); int endIdx = Math.toIntExact((page.getCurrent()) * page.getSize()); if(startIdx > page.getTotal()){ page.setRecords(new ArrayList<>()); - return page; + return; } if(endIdx > page.getTotal()){ endIdx = Math.toIntExact(page.getTotal()); } page.setRecords(resultList.subList(startIdx,endIdx)); - return page; + } + + @Override + public void remindEquipment(EquipmentInfo equipmentInfo) { + List userList = permissionContext.getUserService().getUsersByRoleTips(null,null); + + User notifyUser = userList.stream().filter(u->u.getName().equals(equipmentInfo.getDirectorName())).findAny().orElse(null); + if(ObjectUtil.isEmpty(notifyUser)){ + return; + } + QueryWrapper checkWrapper = new QueryWrapper<>(); + checkWrapper.eq("biz_id",equipmentInfo.getId()); + checkWrapper.eq("message_module","工作提醒"); + checkWrapper.eq("message_type","设备到期"); + checkWrapper.eq("notify_user_id",notifyUser.getId()); + if(this.count(checkWrapper) > 0){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("biz_id",equipmentInfo.getId()); + updateWrapper.eq("message_module","工作提醒"); + updateWrapper.eq("message_type","设备到期"); + updateWrapper.eq("notify_user_id",notifyUser.getId()); + updateWrapper.set("message_time",new Date()); + this.update(updateWrapper); + }else { + BoardMessage boardMessage = new BoardMessage(); + boardMessage.setMessageModule("工作提醒"); + boardMessage.setMessageType("设备到期"); + boardMessage.setMessageTopic(equipmentInfo.getEquipmentName()+equipmentInfo.getEquipmentNo()+"已超有效期"); + boardMessage.setSourceModule("设备台账"); + boardMessage.setReadStatus("0"); + boardMessage.setNotifyUserId(notifyUser.getId()); + boardMessage.setBizId(equipmentInfo.getId()); + boardMessage.setMessageTime(new Date()); + boardMessage.setSetTop(0); + this.save(boardMessage); + } + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index ce36e9d..7f28a62 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -184,6 +184,7 @@ commonAggr.setName(dictService.getDictNameByCode(dictConvert,commonAggr.getName())); } } + resList = resList.stream().filter(i->StrUtil.isNotEmpty(i.getName())).collect(Collectors.toList()); return resList; } @@ -325,7 +326,7 @@ queryWrapper.in(CollUtil.isNotEmpty(deptIds),"e.dept_id",deptIds); queryWrapper.eq("e.equipment_type",EQUIPMENT_TYPE_NORMAL); queryWrapper.eq("e.is_del","0"); - queryWrapper.in("r.sample_status",InCheckSampleStatus); + queryWrapper.in("r.sample_status",SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus)); return queryWrapper; } @@ -357,7 +358,10 @@ List companyAggrList = new ArrayList<>(); Map> groupMap = list.stream().collect(Collectors.groupingBy(classifier)); for (String key : groupMap.keySet()) { - String keyName = dictService.getDictNameByCode(dictConvert,key); + String keyName = key; + if(StrUtil.isNotEmpty(dictConvert)){ + keyName = dictService.getDictNameByCode(dictConvert,key); + } if(StrUtil.isNotEmpty(keyName)){ companyAggrList.add(new EquipmentCommonAggr(keyName,groupMap.get(key).size())); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 519efaa..e00f517 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -253,9 +253,11 @@ @Override public EquipmentInfoApproval warpper(EquipmentInfoApproval approval) { try { + super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - DictCodeUtils.convertDictCodeToName(approval); + //DictCodeUtils.convertDictCodeToName(approval); + } catch (Exception e) { throw new RuntimeException(e); } @@ -321,4 +323,9 @@ updateWrapper.set("instructions_file",modelInfo.getInstructionsFile()); this.update(updateWrapper); } + + @Override + public void setBizNo(EquipmentInfoApproval obj) { + obj.setBizNo(obj.getEquipmentNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 3169b84..fa01eb3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -31,6 +31,7 @@ import com.casic.missiles.model.equipment.*; import com.casic.missiles.mapper.equipment.EquipmentInfoMapper; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.service.board.IBoardMessageService; import com.casic.missiles.service.equipment.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.service.status.IEquipmentStatusLogService; @@ -75,8 +76,10 @@ private final IEquipmentTurnoverLogService turnoverLogService; private final IEquipmentTaskRelationService taskRelationService; private final IEquipmentTaskInfoService taskInfoService; + private final IBoardMessageService boardMessageService; private ISubcontractCertificateService subcontractCertificateService; + @Autowired public void setSubcontractCertificateService(ISubcontractCertificateService subcontractCertificateService) { this.subcontractCertificateService = subcontractCertificateService; @@ -162,7 +165,7 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.apply(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext) like '%{0}%'",queryForm.getInstallLocation()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); @@ -424,6 +427,14 @@ return list; } + @Override + public void remind(Long equipmentId) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + boardMessageService.remindEquipment(equipmentInfo); + } + } + private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java index a726353..aec2020 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java @@ -119,4 +119,9 @@ public InspectionApproval warpper(InspectionApproval obj) { return super.warpper(obj); } + + @Override + public void setBizNo(InspectionApproval obj) { + obj.setBizNo(obj.getApprovalNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java index 28fa227..3945ec8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java @@ -118,4 +118,8 @@ return super.warpper(obj); } + @Override + public void setBizNo(Plan obj) { + obj.setBizNo(obj.getPlanNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index 90bf7c4..6dceac4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -226,4 +226,9 @@ } return queryWrapper; } + + @Override + public void setBizNo(EquipmentStatusApproval obj) { + obj.setBizNo(obj.getApprovalNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractReviewServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractReviewServiceImpl.java index 7a09d2f..2fdc0ac 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractReviewServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractReviewServiceImpl.java @@ -96,4 +96,9 @@ } return queryWrapper; } + + @Override + public void setBizNo(SubcontractReview obj) { + obj.setBizNo(obj.getReviewNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java index c799af8..a96deef 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java @@ -121,4 +121,9 @@ queryWrapper.like("test_ability",equipmentName); return this.list(queryWrapper); } + + @Override + public void setBizNo(Subcontractor obj) { + obj.setBizNo(obj.getSubcontractorNo()); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index d4003c6..0f1c661 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -42,4 +42,13 @@ public String getValue() { return value; } + + public static ApplyFromIdEnum getByCode(String code){ + for (ApplyFromIdEnum value : ApplyFromIdEnum.values()) { + if(code.equals(value.code)){ + return value; + } + } + return null; + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java index 281c3db..f8fdff4 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/board/BoardMessageMapper.java @@ -18,9 +18,11 @@ */ public interface BoardMessageMapper extends BaseMapper { - List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew); + List checkMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId); List noticeMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, + @Param("userId") Long userId, @Param("userCompanyId") Long userCompanyId, @Param("userCompanyName") String userCompanyName); List remindMessagePage(@Param("page") Page page, @Param("ew") QueryWrapper ew, diff --git a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml index 306172d..0012e50 100644 --- a/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/board/BoardMessageMapper.xml @@ -26,7 +26,7 @@ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java index 2eb29c2..f21359b 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/MockController.java @@ -44,7 +44,7 @@ super.getSession().setAttribute(PermissionConstants.IS_APP, false); SuccessResponseData resultData = new SuccessResponseData(); if (StrUtil.hasEmpty(username, password)) { - username = "cz"; + username = "zyj"; password = "111111"; } Subject currentUser = ShiroKit.getSubject(); diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java index 8c00bff..8098bfc 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/board/NoticeBoardController.java @@ -136,7 +136,7 @@ @GetMapping("/overview/equipmentCategory") @ResponseBody public ReturnDTO equipmentCategory(@RequestParam("deptIds")List deptIds){ - return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,null)); + return ReturnUtil.success(noticeBoardService.equipmentStatistics("category",deptIds,MeterDictCode.EQUIPMENT_CATEGORY)); } @ApiOperation("设备状态统计") @@ -248,7 +248,7 @@ @ApiOperation("检定趋势") @GetMapping("/check/trend") - public ReturnDTO checkTrend(){ + public ReturnDTO checkTrend(){ return ReturnUtil.success(noticeBoardService.checkStatisticsList()); } @@ -264,6 +264,12 @@ return ReturnUtil.success(super.packForBT(boardMessageService.toBeApprovedListPage(queryForm))); } + @ApiOperation("审批提醒消息(已处理)") + @PostMapping("/message/approvedListPage") + public ReturnDTO> approvedListPage(@RequestBody BoardMessageQueryForm queryForm){ + return ReturnUtil.success(super.packForBT(boardMessageService.approvedListPage(queryForm))); + } + @ApiOperation("消息已读") @PostMapping("/message/setRead") public ReturnDTO messageRead(@RequestBody BoardMessage boardMessage){ diff --git a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java index b78aec0..f237a1a 100644 --- a/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java +++ b/casic-metering-eqpt-api/src/main/java/com/casic/missiles/controller/equipment/EquipmentInfoController.java @@ -112,6 +112,14 @@ return ReturnUtil.success(equipmentInfoService.expireTrend(type)); } + @ApiOperation("到期提醒-提醒") + @GetMapping("/remind/remind") + @ResponseBody + public ReturnDTO remind(Long equipmentId){ + equipmentInfoService.remind(equipmentId); + return ReturnUtil.success(); + } + @ApiOperation("证书管理分页列表") @PostMapping("/certificate/listPage") @ResponseBody diff --git a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml index 4d8acc2..c888087 100644 --- a/casic-metering-eqpt-api/src/main/resources/config/application-test.yml +++ b/casic-metering-eqpt-api/src/main/resources/config/application-test.yml @@ -3,7 +3,7 @@ ################### spring配置 ################### spring: datasource: - driver-class-name: com.mysql.cj.jdbc.Driver +# driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3307/casic_metering_xichang?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=UTC&&allowMultiQueries=true&nullCatalogMeansCurrent=true username: root password: root diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java index 0d7102c..12eda7c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/board/EquipmentMultiAggr.java @@ -5,6 +5,7 @@ import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.ArrayList; import java.util.List; @Getter @@ -13,25 +14,25 @@ public class EquipmentMultiAggr { @ApiModelProperty("设备态势[在检设备、待检设备]") - private List statistic; + private List statistic = new ArrayList<>(); @ApiModelProperty("受检单位排行榜[在检设备、待检设备]") - private List companyAggrList; + private List companyAggrList = new ArrayList<>(); @ApiModelProperty("负责人排行榜[在检设备、待检设备]") - private List dircetorAggrList; + private List dircetorAggrList = new ArrayList<>(); @ApiModelProperty("按单位统计列表[在检设备、待检设备]") - private List companyList; + private List companyList = new ArrayList<>(); @ApiModelProperty("按部门统计列表[在检设备、待检设备]") - private List deptList; + private List deptList = new ArrayList<>(); @ApiModelProperty("在用设备计量标识[在用设备]") - private List meterAggrList; + private List meterAggrList = new ArrayList<>(); @ApiModelProperty("在用设备类型[在用设备]") - private List nameAggrList; + private List nameAggrList = new ArrayList<>(); @Getter @Setter @NoArgsConstructor diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java index d4b7ab5..2441e81 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/CommonApproval.java @@ -13,6 +13,8 @@ import lombok.Getter; import lombok.Setter; +import java.util.Date; + @Getter @Setter @ExcelIgnoreUnannotated @@ -42,4 +44,9 @@ @TableField(exist = false) private Integer decisionItem; + private Date createTime; + + @TableField(exist = false) + private String bizNo; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java index 401957a..186cf5d 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/board/BoardMessage.java @@ -1,5 +1,6 @@ package com.casic.missiles.model.board; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; @@ -8,6 +9,10 @@ import java.time.LocalDateTime; import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.DateSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; @@ -94,6 +99,7 @@ */ @ApiModelProperty("消息时间") @TableField("message_time") + @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date messageTime; /** diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java index 4476c7a..9d8b60a 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/ICommonApprovalService.java @@ -31,8 +31,12 @@ Page toApprovalListPage(Page page, Q queryForm); + List toApprovalList(String formId); + Page approvedListPage(Page page, Q queryForm); + List approvedList(String formId); + Page allPage(Page page, Q queryForm); List allExport(Q queryForm); @@ -40,4 +44,6 @@ QueryWrapper commonQuery(Q queryForm); T warpper(T obj); + + void setBizNo(T obj); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java index acf1a0b..c78b203 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/board/IBoardMessageService.java @@ -4,6 +4,7 @@ import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.model.board.BoardMessage; import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.equipment.EquipmentInfo; import liquibase.pro.packaged.S; /** @@ -23,4 +24,8 @@ void changeTop(Long noticeId,Integer setTop); Page toBeApprovedListPage(BoardMessageQueryForm queryForm); + + Page approvedListPage(BoardMessageQueryForm queryForm); + + void remindEquipment(EquipmentInfo equipmentInfo); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java index c4a1efa..be450b8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBizBusinessOutsourceNoticeService.java @@ -22,4 +22,6 @@ Page listPage(Page page, OutsourceNoticeApprovalListRequest queryRequest) throws Exception; void exportFile(ExportDTO exportDTO, HttpServletResponse response); + + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java index 29c162d..ef7fce5 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/equipment/IEquipmentInfoService.java @@ -50,6 +50,8 @@ List remindList(EquipmentRemindQueryForm queryForm); + void remind(Long equipmentId); + List expireTrend(String type); Page certificateListPage(Page page, EquipmentCertificateQueryForm queryForm); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java index 58df953..187b0ee 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/CommonApprovalServiceImpl.java @@ -30,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import java.io.Serializable; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static com.casic.missiles.core.datascope.ScopeEnums.ALL_TYPE; @@ -188,6 +185,29 @@ } @Override + public List toApprovalList(String formId) { + List toBeApprovedList = baseApprovalService.getToBeApprovedList(formId); + if (CollUtil.isEmpty(toBeApprovedList)) { + return new ArrayList<>(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + List toApprovalIds = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList()); + queryWrapper.in("id", toApprovalIds); + List list = this.list(queryWrapper); + for (T approval : list) { + Optional toBeApprovedOpt = toBeApprovedList.stream().filter(i -> i.getBusinessKey().equals(approval.getId().toString())).findAny(); + if (toBeApprovedOpt.isPresent()) { + ToBeApprovedDTO toBeApprovedDTO = toBeApprovedOpt.get(); + approval.setTaskId(toBeApprovedDTO.getTaskId()); + approval.setDecisionItem(toBeApprovedDTO.getDecisionItem()); + } + warpper(approval); + } + return list; + } + + @Override public Page approvedListPage(Page page, Q queryForm) { List approvedIds = baseApprovalService.getAlreadyApprovalList(queryForm.getFormId()); if (CollUtil.isEmpty(approvedIds)) { @@ -201,6 +221,19 @@ } @Override + public List approvedList(String formId) { + List approvedIds = baseApprovalService.getAlreadyApprovalList(formId); + if (CollUtil.isEmpty(approvedIds)) { + return new ArrayList<>(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("id", approvedIds); + List list = this.list(queryWrapper); + list.forEach(this::warpper); + return list; + } + + @Override public Page allPage(Page page, Q queryForm) { Long t1 = System.currentTimeMillis(); QueryWrapper queryWrapper = commonQuery(queryForm); @@ -249,9 +282,15 @@ public T warpper(T obj) { try { DictCodeUtils.convertDictCodeToName(obj); + setBizNo(obj); }catch (Exception e){ log.error(e.getMessage()); } return obj; } + + @Override + public void setBizNo(T obj) { + + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java index 953f4c7..d24f084 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/BoardMessageServiceImpl.java @@ -1,6 +1,8 @@ package com.casic.missiles.service.impl.board; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -9,25 +11,43 @@ 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.BaseQueryForm; import com.casic.missiles.dto.board.BoardMessageQueryForm; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; +import com.casic.missiles.enums.notifyevent.AwareActionStatusEnum; import com.casic.missiles.enums.system.ApplyFromIdEnum; +import com.casic.missiles.model.CommonApproval; import com.casic.missiles.model.board.BoardMessage; import com.casic.missiles.mapper.board.BoardMessageMapper; +import com.casic.missiles.model.equipment.EquipmentInfo; +import com.casic.missiles.model.equipment.EquipmentInfoApproval; +import com.casic.missiles.model.plan.Plan; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.modular.system.model.User; import com.casic.missiles.service.IBaseApprovalService; +import com.casic.missiles.service.ICommonApprovalService; import com.casic.missiles.service.board.IBoardMessageService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.service.equipment.IEquipmentInfoApprovalService; +import com.casic.missiles.service.plan.IInspectionApprovalService; +import com.casic.missiles.service.plan.IPlanService; +import com.casic.missiles.service.status.IEquipmentStatusApprovalService; +import com.casic.missiles.service.subcontract.ISubcontractReviewService; +import com.casic.missiles.service.subcontract.ISubcontractorService; import com.casic.missiles.service.system.ISystemDeptService; +import com.casic.missiles.utils.SpringContextUtil; +import liquibase.pro.packaged.S; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.Nullable; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; + +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.ACTION_STATUS_MAP; +import static com.casic.missiles.enums.notifyevent.AwareActionStatusEnum.EQUIPMENT_APPROVAL; /** *

@@ -43,7 +63,7 @@ private final AbstractPermissionContext permissionContext; private final ISystemDeptService systemDeptService; - private final IBaseApprovalService baseApprovalService; + @Override public Page listPage(BoardMessageQueryForm queryForm) { @@ -68,10 +88,12 @@ private Page checkMessage(Page page, BoardMessageQueryForm queryForm) { QueryWrapper queryWrapper = this.commonQuery(queryForm); queryWrapper.eq("notify_dept_id",systemDeptService.getUserCompany().getId()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); if(!isAdmin()){ - queryWrapper.eq("notify_user_id",permissionContext.getAuthService().getLoginUser().getId()); + queryWrapper.eq("notify_user_id",userId); } - List list = this.baseMapper.checkMessagePage(page,queryWrapper); + List list = this.baseMapper.checkMessagePage(page,queryWrapper,userId); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -80,7 +102,9 @@ QueryWrapper queryWrapper = this.commonQuery(queryForm); Dept company = systemDeptService.getUserCompany(); queryWrapper.eq("notify_dept_id",company.getId()); - List list = this.baseMapper.noticeMessagePage(page,queryWrapper,company.getId(),company.getFullName()); + Long userId = permissionContext.getAuthService().getLoginUser().getId(); + List list = this.baseMapper.noticeMessagePage(page,queryWrapper,userId,company.getId(),company.getFullName()); + list.forEach(i->i.setNotifyUserId(userId)); page.setRecords(list); return page; } @@ -93,6 +117,7 @@ i.eq("notify_user_id",user.getId()).or().eq("notify_dept_id",company.getId()); }); List list = this.baseMapper.remindMessagePage(page,queryWrapper,user.getId(),user.getName()); + list.forEach(i->i.setNotifyUserId(user.getId())); page.setRecords(list); return page; } @@ -121,50 +146,186 @@ this.update(updateWrapper); } +// @Override +// public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { +// Page page = PageFactory.defaultPage(); +// List resultList = new ArrayList<>(); +// +// Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { +// if(applyFromIdEnum.getValue().contains("计量业务")){ +// return; +// } +// if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ +// return; +// } +// +// List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); +// if(CollectionUtils.isEmpty(toBeApprovedList)){ +// return; +// } +// toBeApprovedList.forEach(a -> { +// BoardMessage message = new BoardMessage(); +// message.setMessageModule("审批提醒"); +// message.setMessageType("审批提醒"); +// message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); +// message.setSourceModule(applyFromIdEnum.getSource()); +// message.setReadStatus("待审批"); +// message.setBizId(Long.valueOf(a.getBusinessKey())); +// message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); +// +// message.setFormId(applyFromIdEnum.getCode()); +// message.setProcessId(a.getProcessId()); +// message.setTaskId(a.getTaskId()); +// message.setDecisionItem(a.getDecisionItem()); +// +// resultList.add(message); +// }); +// }); +// getMessagePage(page, resultList,queryForm); +// return page; +// } + @Override public Page toBeApprovedListPage(BoardMessageQueryForm queryForm) { Page page = PageFactory.defaultPage(); List resultList = new ArrayList<>(); - - Arrays.stream(ApplyFromIdEnum.values()).forEach(applyFromIdEnum -> { - if(applyFromIdEnum.getValue().contains("计量业务")){ - return; + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; } - - List toBeApprovedList = baseApprovalService.getToBeApprovedList(applyFromIdEnum.getCode()); - if(CollectionUtils.isEmpty(toBeApprovedList)){ - return; + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; } - toBeApprovedList.forEach(a -> { + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertTobeApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertTobeApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.toApprovalList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ BoardMessage message = new BoardMessage(); message.setMessageModule("审批提醒"); message.setMessageType("审批提醒"); - message.setMessageTopic(applyFromIdEnum.getValue() + "待审批"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "待审批"); message.setSourceModule(applyFromIdEnum.getSource()); - message.setReadStatus("0"); - message.setBizId(Long.valueOf(a.getBusinessKey())); - message.setMessageTime(DateUtil.parseDateTime(a.getCreateTime())); + message.setReadStatus("待审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); message.setFormId(applyFromIdEnum.getCode()); - message.setProcessId(a.getProcessId()); - message.setTaskId(a.getTaskId()); - message.setDecisionItem(a.getDecisionItem()); - + message.setProcessId(item.getProcessId()); + message.setTaskId(item.getTaskId()); + message.setDecisionItem(item.getDecisionItem()); resultList.add(message); }); - }); + } + } + + + public Page approvedListPage(BoardMessageQueryForm queryForm){ + Page page = PageFactory.defaultPage(); + List resultList = new ArrayList<>(); + Map actionStatusMap = ACTION_STATUS_MAP.getActionStatusMap(); + for (String formId : actionStatusMap.keySet()) { + ApplyFromIdEnum applyFromIdEnum = ApplyFromIdEnum.getByCode(formId); + if(ObjectUtil.isEmpty(applyFromIdEnum)){ + continue; + } + if(StrUtil.isNotEmpty(queryForm.getSourceModule()) && !applyFromIdEnum.getSource().contains(queryForm.getSourceModule())){ + continue; + } + String beanName = actionStatusMap.get(formId).getActionBeanName(); + if(ApplyFromIdEnum.EQUIPMENT_APPROVAL.getCode().equals(formId)){ + beanName = "equipmentInfoApprovalServiceImpl"; + } + convertApproved(SpringContextUtil.getBean(beanName),ApplyFromIdEnum.getByCode(formId),resultList); + } + getMessagePage(page, resultList,queryForm); + return page; + } + + private void convertApproved(S service,ApplyFromIdEnum applyFromIdEnum,List resultList){ + List bizList = service.approvedList(applyFromIdEnum.getCode()); + if(CollUtil.isNotEmpty(bizList)){ + bizList.forEach(item->{ + BoardMessage message = new BoardMessage(); + message.setMessageModule("审批提醒"); + message.setMessageType("审批提醒"); + message.setMessageTopic(applyFromIdEnum.getValue() + item.getBizNo() + "已审批"); + message.setSourceModule(applyFromIdEnum.getSource()); + message.setReadStatus("已审批"); + message.setBizId(item.getId()); + message.setMessageTime(item.getCreateTime()); + message.setFormId(applyFromIdEnum.getCode()); + resultList.add(message); + }); + } + } + + private void getMessagePage(Page page, List resultList,BoardMessageQueryForm queryForm) { + if(ObjectUtil.isNotEmpty(queryForm.getMessageStartTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().before(DateUtil.parseDateTime(queryForm.getMessageStartTime()))).collect(Collectors.toList()); + } + if(ObjectUtil.isNotEmpty(queryForm.getMessageEndTime())){ + resultList = resultList.stream().filter(i->!i.getMessageTime().after(DateUtil.parseDateTime(queryForm.getMessageEndTime()))).collect(Collectors.toList()); + } resultList.sort((o1, o2) -> o2.getMessageTime().compareTo(o1.getMessageTime())); page.setTotal(resultList.size()); int startIdx = Math.toIntExact((page.getCurrent() - 1) * page.getSize()); int endIdx = Math.toIntExact((page.getCurrent()) * page.getSize()); if(startIdx > page.getTotal()){ page.setRecords(new ArrayList<>()); - return page; + return; } if(endIdx > page.getTotal()){ endIdx = Math.toIntExact(page.getTotal()); } page.setRecords(resultList.subList(startIdx,endIdx)); - return page; + } + + @Override + public void remindEquipment(EquipmentInfo equipmentInfo) { + List userList = permissionContext.getUserService().getUsersByRoleTips(null,null); + + User notifyUser = userList.stream().filter(u->u.getName().equals(equipmentInfo.getDirectorName())).findAny().orElse(null); + if(ObjectUtil.isEmpty(notifyUser)){ + return; + } + QueryWrapper checkWrapper = new QueryWrapper<>(); + checkWrapper.eq("biz_id",equipmentInfo.getId()); + checkWrapper.eq("message_module","工作提醒"); + checkWrapper.eq("message_type","设备到期"); + checkWrapper.eq("notify_user_id",notifyUser.getId()); + if(this.count(checkWrapper) > 0){ + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("biz_id",equipmentInfo.getId()); + updateWrapper.eq("message_module","工作提醒"); + updateWrapper.eq("message_type","设备到期"); + updateWrapper.eq("notify_user_id",notifyUser.getId()); + updateWrapper.set("message_time",new Date()); + this.update(updateWrapper); + }else { + BoardMessage boardMessage = new BoardMessage(); + boardMessage.setMessageModule("工作提醒"); + boardMessage.setMessageType("设备到期"); + boardMessage.setMessageTopic(equipmentInfo.getEquipmentName()+equipmentInfo.getEquipmentNo()+"已超有效期"); + boardMessage.setSourceModule("设备台账"); + boardMessage.setReadStatus("0"); + boardMessage.setNotifyUserId(notifyUser.getId()); + boardMessage.setBizId(equipmentInfo.getId()); + boardMessage.setMessageTime(new Date()); + boardMessage.setSetTop(0); + this.save(boardMessage); + } + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java index ce36e9d..7f28a62 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/board/NoticeBoardServiceImpl.java @@ -184,6 +184,7 @@ commonAggr.setName(dictService.getDictNameByCode(dictConvert,commonAggr.getName())); } } + resList = resList.stream().filter(i->StrUtil.isNotEmpty(i.getName())).collect(Collectors.toList()); return resList; } @@ -325,7 +326,7 @@ queryWrapper.in(CollUtil.isNotEmpty(deptIds),"e.dept_id",deptIds); queryWrapper.eq("e.equipment_type",EQUIPMENT_TYPE_NORMAL); queryWrapper.eq("e.is_del","0"); - queryWrapper.in("r.sample_status",InCheckSampleStatus); + queryWrapper.in("r.sample_status",SampleStatusEnum.getSampleStatusByCompletion(InCheckSampleStatus)); return queryWrapper; } @@ -357,7 +358,10 @@ List companyAggrList = new ArrayList<>(); Map> groupMap = list.stream().collect(Collectors.groupingBy(classifier)); for (String key : groupMap.keySet()) { - String keyName = dictService.getDictNameByCode(dictConvert,key); + String keyName = key; + if(StrUtil.isNotEmpty(dictConvert)){ + keyName = dictService.getDictNameByCode(dictConvert,key); + } if(StrUtil.isNotEmpty(keyName)){ companyAggrList.add(new EquipmentCommonAggr(keyName,groupMap.get(key).size())); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java index 519efaa..e00f517 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoApprovalServiceImpl.java @@ -253,9 +253,11 @@ @Override public EquipmentInfoApproval warpper(EquipmentInfoApproval approval) { try { + super.warpper(approval); approval.setCompanyName(permissionContext.getDeptService().getDeptName(approval.getCompanyId())); approval.setDeptName(permissionContext.getDeptService().getDeptName(approval.getDeptId())); - DictCodeUtils.convertDictCodeToName(approval); + //DictCodeUtils.convertDictCodeToName(approval); + } catch (Exception e) { throw new RuntimeException(e); } @@ -321,4 +323,9 @@ updateWrapper.set("instructions_file",modelInfo.getInstructionsFile()); this.update(updateWrapper); } + + @Override + public void setBizNo(EquipmentInfoApproval obj) { + obj.setBizNo(obj.getEquipmentNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java index 3169b84..fa01eb3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/equipment/EquipmentInfoServiceImpl.java @@ -31,6 +31,7 @@ import com.casic.missiles.model.equipment.*; import com.casic.missiles.mapper.equipment.EquipmentInfoMapper; import com.casic.missiles.modular.system.model.Dept; +import com.casic.missiles.service.board.IBoardMessageService; import com.casic.missiles.service.equipment.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.casic.missiles.service.status.IEquipmentStatusLogService; @@ -75,8 +76,10 @@ private final IEquipmentTurnoverLogService turnoverLogService; private final IEquipmentTaskRelationService taskRelationService; private final IEquipmentTaskInfoService taskInfoService; + private final IBoardMessageService boardMessageService; private ISubcontractCertificateService subcontractCertificateService; + @Autowired public void setSubcontractCertificateService(ISubcontractCertificateService subcontractCertificateService) { this.subcontractCertificateService = subcontractCertificateService; @@ -162,7 +165,7 @@ queryWrapper.eq(ObjectUtil.isNotEmpty(queryForm.getCompanyId()),"company_id",queryForm.getCompanyId()); queryWrapper.like(StrUtil.isNotEmpty(queryForm.getDirectorName()),"director_name",queryForm.getDirectorName()); queryWrapper.eq(StrUtil.isNotEmpty(queryForm.getUseSign()),"use_sign",queryForm.getUseSign()); - queryWrapper.apply(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext) like '%{0}%'",queryForm.getInstallLocation()); + queryWrapper.like(StrUtil.isNotEmpty(queryForm.getInstallLocation()),"CONCAT(install_location,install_location_ext)",queryForm.getInstallLocation()); if(ObjectUtil.isNotEmpty(queryForm.getTaskId())){ String existSql = String.format("(select id from eqpt_equipment_task_relation where task_id = %d and equipment_id = eqpt_equipment_info.id)",queryForm.getTaskId()); @@ -424,6 +427,14 @@ return list; } + @Override + public void remind(Long equipmentId) { + EquipmentInfo equipmentInfo = this.getById(equipmentId); + if(ObjectUtil.isNotEmpty(equipmentInfo)){ + boardMessageService.remindEquipment(equipmentInfo); + } + } + private QueryWrapper remindQuery(EquipmentRemindQueryForm queryForm){ QueryWrapper queryWrapper = new QueryWrapper<>(); if (CollUtil.isNotEmpty(queryForm.getIds())) { diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java index a726353..aec2020 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/InspectionApprovalServiceImpl.java @@ -119,4 +119,9 @@ public InspectionApproval warpper(InspectionApproval obj) { return super.warpper(obj); } + + @Override + public void setBizNo(InspectionApproval obj) { + obj.setBizNo(obj.getApprovalNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java index 28fa227..3945ec8 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/plan/PlanServiceImpl.java @@ -118,4 +118,8 @@ return super.warpper(obj); } + @Override + public void setBizNo(Plan obj) { + obj.setBizNo(obj.getPlanNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java index 90bf7c4..6dceac4 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/status/EquipmentStatusApprovalServiceImpl.java @@ -226,4 +226,9 @@ } return queryWrapper; } + + @Override + public void setBizNo(EquipmentStatusApproval obj) { + obj.setBizNo(obj.getApprovalNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractReviewServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractReviewServiceImpl.java index 7a09d2f..2fdc0ac 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractReviewServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractReviewServiceImpl.java @@ -96,4 +96,9 @@ } return queryWrapper; } + + @Override + public void setBizNo(SubcontractReview obj) { + obj.setBizNo(obj.getReviewNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java index c799af8..a96deef 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/impl/subcontract/SubcontractorServiceImpl.java @@ -121,4 +121,9 @@ queryWrapper.like("test_ability",equipmentName); return this.list(queryWrapper); } + + @Override + public void setBizNo(Subcontractor obj) { + obj.setBizNo(obj.getSubcontractorNo()); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceCustomerExamineFormService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceCustomerExamineFormService.java index b71e22d..51e6f74 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceCustomerExamineFormService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/resource/IBizResourceCustomerExamineFormService.java @@ -28,4 +28,6 @@ void exportFile(ExportDTO exportDTO, HttpServletResponse response); + String exportFileUrl(ExportDTO exportDTO, HttpServletResponse response); + }