diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index bbaf1a9..9e6f188 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -18,7 +18,7 @@ t.major, t.technology_exam FROM - meter_staff t) t2 + meter_staff t where t.is_del = 0) t2 and t2.staff_no like CONCAT('%',#{request.staffNo},'%') @@ -37,6 +37,58 @@ + + + UPDATE meter_staff + SET `name` = #{meterStaff.name}, + `id_card` = #{meterStaff.idCard}, + `account` = #{meterStaff.account}, + `staff_no` = #{meterStaff.staffNo}, + `birthday` = DATE_FORMAT(#{meterStaff.birthday},'%Y-%m-%d %H:%i:%S'), + `education` = #{meterStaff.education}, + `technology_job` = #{meterStaff.technologyJob}, + `administration_job` = #{meterStaff.administrationJob}, + `dept_id` = #{meterStaff.deptId}, + `major` = #{meterStaff.major}, + `certificate_company` = #{meterStaff.certificateCompany}, + `verifier_certificate_no` = #{meterStaff.verifierCertificateNo}, + `certificate_date` = DATE_FORMAT(#{meterStaff.certificateDate},'%Y-%m-%d %H:%i:%S'), + `work_date` = DATE_FORMAT(#{meterStaff.workDate},'%Y-%m-%d %H:%i:%S'), + `technology_exam` = #{meterStaff.technologyExam}, + `main_examiner` = #{meterStaff.mainExaminer}, + `special_operator` = #{meterStaff.specialOperator}, + `remark` = #{meterStaff.remark}, + `update_time` = DATE_FORMAT(#{meterStaff.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{meterStaff.id} + UPDATE meter_staff SET `is_del` = 1 WHERE `id` = #{id} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index bbaf1a9..9e6f188 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -18,7 +18,7 @@ t.major, t.technology_exam FROM - meter_staff t) t2 + meter_staff t where t.is_del = 0) t2 and t2.staff_no like CONCAT('%',#{request.staffNo},'%') @@ -37,6 +37,58 @@ + + + UPDATE meter_staff + SET `name` = #{meterStaff.name}, + `id_card` = #{meterStaff.idCard}, + `account` = #{meterStaff.account}, + `staff_no` = #{meterStaff.staffNo}, + `birthday` = DATE_FORMAT(#{meterStaff.birthday},'%Y-%m-%d %H:%i:%S'), + `education` = #{meterStaff.education}, + `technology_job` = #{meterStaff.technologyJob}, + `administration_job` = #{meterStaff.administrationJob}, + `dept_id` = #{meterStaff.deptId}, + `major` = #{meterStaff.major}, + `certificate_company` = #{meterStaff.certificateCompany}, + `verifier_certificate_no` = #{meterStaff.verifierCertificateNo}, + `certificate_date` = DATE_FORMAT(#{meterStaff.certificateDate},'%Y-%m-%d %H:%i:%S'), + `work_date` = DATE_FORMAT(#{meterStaff.workDate},'%Y-%m-%d %H:%i:%S'), + `technology_exam` = #{meterStaff.technologyExam}, + `main_examiner` = #{meterStaff.mainExaminer}, + `special_operator` = #{meterStaff.specialOperator}, + `remark` = #{meterStaff.remark}, + `update_time` = DATE_FORMAT(#{meterStaff.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{meterStaff.id} + UPDATE meter_staff SET `is_del` = 1 WHERE `id` = #{id} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java new file mode 100644 index 0000000..7879fac --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class MeterCertificateDto { + + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @ApiModelProperty(value = "计量人员表id", dataType = "Long") + private String staffId; + + @ExcelProperty(value = "人员编号",order = 0) + @ApiModelProperty(value = "人员编号", dataType = "String") + private String staffNo; + + @ExcelProperty(value = "姓名",order = 1) + @ApiModelProperty(value = "姓名", dataType = "String") + private String name; + + @ExcelProperty(value = "性别",order = 2) + @ApiModelProperty(value = "性别", dataType = "String") + private String sex; + + @ApiModelProperty(value = "文化程度", dataType = "String") + private String education; + + @ExcelProperty(value = "技术职位",order = 4) + @ApiModelProperty(value = "技术职位", dataType = "String") + private String technologyJob; + + @ExcelProperty(value = "行政职务",order = 5) + @ApiModelProperty(value = "行政职务", dataType = "String") + private String administrationJob; + + @ExcelProperty(value = "工作部门",order = 3) + @ApiModelProperty(value = "组织部门", dataType = "String") + private String deptName; + + @ApiModelProperty(value = "部门id", dataType = "String") + private String deptId; + + @ExcelProperty(value = "证书号",order = 6) + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @ExcelProperty(value = "发证日期",order = 8) + @ApiModelProperty(value = "发证日期", dataType = "String") + private String certificateDate; + + @ExcelProperty(value = "发证单位",order = 7) + @ApiModelProperty(value = "发证单位", dataType = "String") + private String certificateCompany; + + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @ExcelProperty(value = "证书状况",order = 9) + @ApiModelProperty(value = "证书状况", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "minio存储文件名", dataType = "String") + private String minioFileName; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index bbaf1a9..9e6f188 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -18,7 +18,7 @@ t.major, t.technology_exam FROM - meter_staff t) t2 + meter_staff t where t.is_del = 0) t2 and t2.staff_no like CONCAT('%',#{request.staffNo},'%') @@ -37,6 +37,58 @@ + + + UPDATE meter_staff + SET `name` = #{meterStaff.name}, + `id_card` = #{meterStaff.idCard}, + `account` = #{meterStaff.account}, + `staff_no` = #{meterStaff.staffNo}, + `birthday` = DATE_FORMAT(#{meterStaff.birthday},'%Y-%m-%d %H:%i:%S'), + `education` = #{meterStaff.education}, + `technology_job` = #{meterStaff.technologyJob}, + `administration_job` = #{meterStaff.administrationJob}, + `dept_id` = #{meterStaff.deptId}, + `major` = #{meterStaff.major}, + `certificate_company` = #{meterStaff.certificateCompany}, + `verifier_certificate_no` = #{meterStaff.verifierCertificateNo}, + `certificate_date` = DATE_FORMAT(#{meterStaff.certificateDate},'%Y-%m-%d %H:%i:%S'), + `work_date` = DATE_FORMAT(#{meterStaff.workDate},'%Y-%m-%d %H:%i:%S'), + `technology_exam` = #{meterStaff.technologyExam}, + `main_examiner` = #{meterStaff.mainExaminer}, + `special_operator` = #{meterStaff.specialOperator}, + `remark` = #{meterStaff.remark}, + `update_time` = DATE_FORMAT(#{meterStaff.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{meterStaff.id} + UPDATE meter_staff SET `is_del` = 1 WHERE `id` = #{id} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java new file mode 100644 index 0000000..7879fac --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class MeterCertificateDto { + + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @ApiModelProperty(value = "计量人员表id", dataType = "Long") + private String staffId; + + @ExcelProperty(value = "人员编号",order = 0) + @ApiModelProperty(value = "人员编号", dataType = "String") + private String staffNo; + + @ExcelProperty(value = "姓名",order = 1) + @ApiModelProperty(value = "姓名", dataType = "String") + private String name; + + @ExcelProperty(value = "性别",order = 2) + @ApiModelProperty(value = "性别", dataType = "String") + private String sex; + + @ApiModelProperty(value = "文化程度", dataType = "String") + private String education; + + @ExcelProperty(value = "技术职位",order = 4) + @ApiModelProperty(value = "技术职位", dataType = "String") + private String technologyJob; + + @ExcelProperty(value = "行政职务",order = 5) + @ApiModelProperty(value = "行政职务", dataType = "String") + private String administrationJob; + + @ExcelProperty(value = "工作部门",order = 3) + @ApiModelProperty(value = "组织部门", dataType = "String") + private String deptName; + + @ApiModelProperty(value = "部门id", dataType = "String") + private String deptId; + + @ExcelProperty(value = "证书号",order = 6) + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @ExcelProperty(value = "发证日期",order = 8) + @ApiModelProperty(value = "发证日期", dataType = "String") + private String certificateDate; + + @ExcelProperty(value = "发证单位",order = 7) + @ApiModelProperty(value = "发证单位", dataType = "String") + private String certificateCompany; + + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @ExcelProperty(value = "证书状况",order = 9) + @ApiModelProperty(value = "证书状况", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "minio存储文件名", dataType = "String") + private String minioFileName; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java index ba07cd2..7e95296 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java @@ -44,5 +44,11 @@ @ApiModelProperty(value = "证书号", dataType = "String") private String verifierCertificateNo; + /** + * 证书状态 + */ + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index bbaf1a9..9e6f188 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -18,7 +18,7 @@ t.major, t.technology_exam FROM - meter_staff t) t2 + meter_staff t where t.is_del = 0) t2 and t2.staff_no like CONCAT('%',#{request.staffNo},'%') @@ -37,6 +37,58 @@ + + + UPDATE meter_staff + SET `name` = #{meterStaff.name}, + `id_card` = #{meterStaff.idCard}, + `account` = #{meterStaff.account}, + `staff_no` = #{meterStaff.staffNo}, + `birthday` = DATE_FORMAT(#{meterStaff.birthday},'%Y-%m-%d %H:%i:%S'), + `education` = #{meterStaff.education}, + `technology_job` = #{meterStaff.technologyJob}, + `administration_job` = #{meterStaff.administrationJob}, + `dept_id` = #{meterStaff.deptId}, + `major` = #{meterStaff.major}, + `certificate_company` = #{meterStaff.certificateCompany}, + `verifier_certificate_no` = #{meterStaff.verifierCertificateNo}, + `certificate_date` = DATE_FORMAT(#{meterStaff.certificateDate},'%Y-%m-%d %H:%i:%S'), + `work_date` = DATE_FORMAT(#{meterStaff.workDate},'%Y-%m-%d %H:%i:%S'), + `technology_exam` = #{meterStaff.technologyExam}, + `main_examiner` = #{meterStaff.mainExaminer}, + `special_operator` = #{meterStaff.specialOperator}, + `remark` = #{meterStaff.remark}, + `update_time` = DATE_FORMAT(#{meterStaff.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{meterStaff.id} + UPDATE meter_staff SET `is_del` = 1 WHERE `id` = #{id} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java new file mode 100644 index 0000000..7879fac --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class MeterCertificateDto { + + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @ApiModelProperty(value = "计量人员表id", dataType = "Long") + private String staffId; + + @ExcelProperty(value = "人员编号",order = 0) + @ApiModelProperty(value = "人员编号", dataType = "String") + private String staffNo; + + @ExcelProperty(value = "姓名",order = 1) + @ApiModelProperty(value = "姓名", dataType = "String") + private String name; + + @ExcelProperty(value = "性别",order = 2) + @ApiModelProperty(value = "性别", dataType = "String") + private String sex; + + @ApiModelProperty(value = "文化程度", dataType = "String") + private String education; + + @ExcelProperty(value = "技术职位",order = 4) + @ApiModelProperty(value = "技术职位", dataType = "String") + private String technologyJob; + + @ExcelProperty(value = "行政职务",order = 5) + @ApiModelProperty(value = "行政职务", dataType = "String") + private String administrationJob; + + @ExcelProperty(value = "工作部门",order = 3) + @ApiModelProperty(value = "组织部门", dataType = "String") + private String deptName; + + @ApiModelProperty(value = "部门id", dataType = "String") + private String deptId; + + @ExcelProperty(value = "证书号",order = 6) + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @ExcelProperty(value = "发证日期",order = 8) + @ApiModelProperty(value = "发证日期", dataType = "String") + private String certificateDate; + + @ExcelProperty(value = "发证单位",order = 7) + @ApiModelProperty(value = "发证单位", dataType = "String") + private String certificateCompany; + + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @ExcelProperty(value = "证书状况",order = 9) + @ApiModelProperty(value = "证书状况", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "minio存储文件名", dataType = "String") + private String minioFileName; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java index ba07cd2..7e95296 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java @@ -44,5 +44,11 @@ @ApiModelProperty(value = "证书号", dataType = "String") private String verifierCertificateNo; + /** + * 证书状态 + */ + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java index a6c7a35..06df96c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java @@ -67,5 +67,9 @@ @ApiModelProperty(value = "更新时间", dataType = "String") private String updateTime; + @ApiModelProperty(value = "人员信息", dataType = "Object") + @TableField(exist = false) + private MeterStaff meterStaff; + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index bbaf1a9..9e6f188 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -18,7 +18,7 @@ t.major, t.technology_exam FROM - meter_staff t) t2 + meter_staff t where t.is_del = 0) t2 and t2.staff_no like CONCAT('%',#{request.staffNo},'%') @@ -37,6 +37,58 @@ + + + UPDATE meter_staff + SET `name` = #{meterStaff.name}, + `id_card` = #{meterStaff.idCard}, + `account` = #{meterStaff.account}, + `staff_no` = #{meterStaff.staffNo}, + `birthday` = DATE_FORMAT(#{meterStaff.birthday},'%Y-%m-%d %H:%i:%S'), + `education` = #{meterStaff.education}, + `technology_job` = #{meterStaff.technologyJob}, + `administration_job` = #{meterStaff.administrationJob}, + `dept_id` = #{meterStaff.deptId}, + `major` = #{meterStaff.major}, + `certificate_company` = #{meterStaff.certificateCompany}, + `verifier_certificate_no` = #{meterStaff.verifierCertificateNo}, + `certificate_date` = DATE_FORMAT(#{meterStaff.certificateDate},'%Y-%m-%d %H:%i:%S'), + `work_date` = DATE_FORMAT(#{meterStaff.workDate},'%Y-%m-%d %H:%i:%S'), + `technology_exam` = #{meterStaff.technologyExam}, + `main_examiner` = #{meterStaff.mainExaminer}, + `special_operator` = #{meterStaff.specialOperator}, + `remark` = #{meterStaff.remark}, + `update_time` = DATE_FORMAT(#{meterStaff.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{meterStaff.id} + UPDATE meter_staff SET `is_del` = 1 WHERE `id` = #{id} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java new file mode 100644 index 0000000..7879fac --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class MeterCertificateDto { + + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @ApiModelProperty(value = "计量人员表id", dataType = "Long") + private String staffId; + + @ExcelProperty(value = "人员编号",order = 0) + @ApiModelProperty(value = "人员编号", dataType = "String") + private String staffNo; + + @ExcelProperty(value = "姓名",order = 1) + @ApiModelProperty(value = "姓名", dataType = "String") + private String name; + + @ExcelProperty(value = "性别",order = 2) + @ApiModelProperty(value = "性别", dataType = "String") + private String sex; + + @ApiModelProperty(value = "文化程度", dataType = "String") + private String education; + + @ExcelProperty(value = "技术职位",order = 4) + @ApiModelProperty(value = "技术职位", dataType = "String") + private String technologyJob; + + @ExcelProperty(value = "行政职务",order = 5) + @ApiModelProperty(value = "行政职务", dataType = "String") + private String administrationJob; + + @ExcelProperty(value = "工作部门",order = 3) + @ApiModelProperty(value = "组织部门", dataType = "String") + private String deptName; + + @ApiModelProperty(value = "部门id", dataType = "String") + private String deptId; + + @ExcelProperty(value = "证书号",order = 6) + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @ExcelProperty(value = "发证日期",order = 8) + @ApiModelProperty(value = "发证日期", dataType = "String") + private String certificateDate; + + @ExcelProperty(value = "发证单位",order = 7) + @ApiModelProperty(value = "发证单位", dataType = "String") + private String certificateCompany; + + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @ExcelProperty(value = "证书状况",order = 9) + @ApiModelProperty(value = "证书状况", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "minio存储文件名", dataType = "String") + private String minioFileName; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java index ba07cd2..7e95296 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java @@ -44,5 +44,11 @@ @ApiModelProperty(value = "证书号", dataType = "String") private String verifierCertificateNo; + /** + * 证书状态 + */ + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java index a6c7a35..06df96c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java @@ -67,5 +67,9 @@ @ApiModelProperty(value = "更新时间", dataType = "String") private String updateTime; + @ApiModelProperty(value = "人员信息", dataType = "Object") + @TableField(exist = false) + private MeterStaff meterStaff; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java new file mode 100644 index 0000000..29d06bd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java @@ -0,0 +1,71 @@ +package com.casic.missiles.model; + + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("meter_certificate_expire_message") +public class MeterCertificateExpireMessage implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @TableField("staff_id") + @ApiModelProperty(value = "计量人员表id", dataType = "String") + private String staffId; + + @TableField("certificate_id") + @ApiModelProperty(value = "证书表id", dataType = "String") + private String certificateId; + + @TableField("staff_no") + @ApiModelProperty(value = "人员编号(登录账号)", dataType = "String") + private String staffNo; + + @TableField("certificate_no") + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @TableField("certificate_name") + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @TableField("valid_date") + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @TableField("status") + @ApiModelProperty(value = "1已读,0未读", dataType = "Integer") + private Integer status; + + @TableField("create_time") + @ApiModelProperty(value = "创建时间", dataType = "String") + private String createTime; + + @TableField("update_time") + @ApiModelProperty(value = "更新时间", dataType = "String") + private String updateTime; + + public MeterCertificateExpireMessage(Long id, String staffId, String certificateId, String staffNo, String certificateNo, String certificateName, String validDate, Integer status) { + this.id = id; + this.staffId = staffId; + this.certificateId = certificateId; + this.staffNo = staffNo; + this.certificateNo = certificateNo; + this.certificateName = certificateName; + this.validDate = validDate; + this.status = status; + } + + public MeterCertificateExpireMessage() { + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index bbaf1a9..9e6f188 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -18,7 +18,7 @@ t.major, t.technology_exam FROM - meter_staff t) t2 + meter_staff t where t.is_del = 0) t2 and t2.staff_no like CONCAT('%',#{request.staffNo},'%') @@ -37,6 +37,58 @@ + + + UPDATE meter_staff + SET `name` = #{meterStaff.name}, + `id_card` = #{meterStaff.idCard}, + `account` = #{meterStaff.account}, + `staff_no` = #{meterStaff.staffNo}, + `birthday` = DATE_FORMAT(#{meterStaff.birthday},'%Y-%m-%d %H:%i:%S'), + `education` = #{meterStaff.education}, + `technology_job` = #{meterStaff.technologyJob}, + `administration_job` = #{meterStaff.administrationJob}, + `dept_id` = #{meterStaff.deptId}, + `major` = #{meterStaff.major}, + `certificate_company` = #{meterStaff.certificateCompany}, + `verifier_certificate_no` = #{meterStaff.verifierCertificateNo}, + `certificate_date` = DATE_FORMAT(#{meterStaff.certificateDate},'%Y-%m-%d %H:%i:%S'), + `work_date` = DATE_FORMAT(#{meterStaff.workDate},'%Y-%m-%d %H:%i:%S'), + `technology_exam` = #{meterStaff.technologyExam}, + `main_examiner` = #{meterStaff.mainExaminer}, + `special_operator` = #{meterStaff.specialOperator}, + `remark` = #{meterStaff.remark}, + `update_time` = DATE_FORMAT(#{meterStaff.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{meterStaff.id} + UPDATE meter_staff SET `is_del` = 1 WHERE `id` = #{id} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java new file mode 100644 index 0000000..7879fac --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class MeterCertificateDto { + + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @ApiModelProperty(value = "计量人员表id", dataType = "Long") + private String staffId; + + @ExcelProperty(value = "人员编号",order = 0) + @ApiModelProperty(value = "人员编号", dataType = "String") + private String staffNo; + + @ExcelProperty(value = "姓名",order = 1) + @ApiModelProperty(value = "姓名", dataType = "String") + private String name; + + @ExcelProperty(value = "性别",order = 2) + @ApiModelProperty(value = "性别", dataType = "String") + private String sex; + + @ApiModelProperty(value = "文化程度", dataType = "String") + private String education; + + @ExcelProperty(value = "技术职位",order = 4) + @ApiModelProperty(value = "技术职位", dataType = "String") + private String technologyJob; + + @ExcelProperty(value = "行政职务",order = 5) + @ApiModelProperty(value = "行政职务", dataType = "String") + private String administrationJob; + + @ExcelProperty(value = "工作部门",order = 3) + @ApiModelProperty(value = "组织部门", dataType = "String") + private String deptName; + + @ApiModelProperty(value = "部门id", dataType = "String") + private String deptId; + + @ExcelProperty(value = "证书号",order = 6) + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @ExcelProperty(value = "发证日期",order = 8) + @ApiModelProperty(value = "发证日期", dataType = "String") + private String certificateDate; + + @ExcelProperty(value = "发证单位",order = 7) + @ApiModelProperty(value = "发证单位", dataType = "String") + private String certificateCompany; + + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @ExcelProperty(value = "证书状况",order = 9) + @ApiModelProperty(value = "证书状况", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "minio存储文件名", dataType = "String") + private String minioFileName; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java index ba07cd2..7e95296 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java @@ -44,5 +44,11 @@ @ApiModelProperty(value = "证书号", dataType = "String") private String verifierCertificateNo; + /** + * 证书状态 + */ + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java index a6c7a35..06df96c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java @@ -67,5 +67,9 @@ @ApiModelProperty(value = "更新时间", dataType = "String") private String updateTime; + @ApiModelProperty(value = "人员信息", dataType = "Object") + @TableField(exist = false) + private MeterStaff meterStaff; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java new file mode 100644 index 0000000..29d06bd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java @@ -0,0 +1,71 @@ +package com.casic.missiles.model; + + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("meter_certificate_expire_message") +public class MeterCertificateExpireMessage implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @TableField("staff_id") + @ApiModelProperty(value = "计量人员表id", dataType = "String") + private String staffId; + + @TableField("certificate_id") + @ApiModelProperty(value = "证书表id", dataType = "String") + private String certificateId; + + @TableField("staff_no") + @ApiModelProperty(value = "人员编号(登录账号)", dataType = "String") + private String staffNo; + + @TableField("certificate_no") + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @TableField("certificate_name") + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @TableField("valid_date") + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @TableField("status") + @ApiModelProperty(value = "1已读,0未读", dataType = "Integer") + private Integer status; + + @TableField("create_time") + @ApiModelProperty(value = "创建时间", dataType = "String") + private String createTime; + + @TableField("update_time") + @ApiModelProperty(value = "更新时间", dataType = "String") + private String updateTime; + + public MeterCertificateExpireMessage(Long id, String staffId, String certificateId, String staffNo, String certificateNo, String certificateName, String validDate, Integer status) { + this.id = id; + this.staffId = staffId; + this.certificateId = certificateId; + this.staffNo = staffNo; + this.certificateNo = certificateNo; + this.certificateName = certificateName; + this.validDate = validDate; + this.status = status; + } + + public MeterCertificateExpireMessage() { + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java index 007a415..7d0182c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java @@ -36,6 +36,10 @@ @ExcelProperty(value = "姓名",order = 1) private String name; + @TableField("minio_file_name") + @ApiModelProperty(value = "人员照片(调用上传文件接口,返回的文件id)", dataType = "String") + private String minioFileName; + @TableField("id_card") @ApiModelProperty(value = "身份证号", dataType = "String") private String idCard; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index bbaf1a9..9e6f188 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -18,7 +18,7 @@ t.major, t.technology_exam FROM - meter_staff t) t2 + meter_staff t where t.is_del = 0) t2 and t2.staff_no like CONCAT('%',#{request.staffNo},'%') @@ -37,6 +37,58 @@ + + + UPDATE meter_staff + SET `name` = #{meterStaff.name}, + `id_card` = #{meterStaff.idCard}, + `account` = #{meterStaff.account}, + `staff_no` = #{meterStaff.staffNo}, + `birthday` = DATE_FORMAT(#{meterStaff.birthday},'%Y-%m-%d %H:%i:%S'), + `education` = #{meterStaff.education}, + `technology_job` = #{meterStaff.technologyJob}, + `administration_job` = #{meterStaff.administrationJob}, + `dept_id` = #{meterStaff.deptId}, + `major` = #{meterStaff.major}, + `certificate_company` = #{meterStaff.certificateCompany}, + `verifier_certificate_no` = #{meterStaff.verifierCertificateNo}, + `certificate_date` = DATE_FORMAT(#{meterStaff.certificateDate},'%Y-%m-%d %H:%i:%S'), + `work_date` = DATE_FORMAT(#{meterStaff.workDate},'%Y-%m-%d %H:%i:%S'), + `technology_exam` = #{meterStaff.technologyExam}, + `main_examiner` = #{meterStaff.mainExaminer}, + `special_operator` = #{meterStaff.specialOperator}, + `remark` = #{meterStaff.remark}, + `update_time` = DATE_FORMAT(#{meterStaff.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{meterStaff.id} + UPDATE meter_staff SET `is_del` = 1 WHERE `id` = #{id} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java new file mode 100644 index 0000000..7879fac --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class MeterCertificateDto { + + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @ApiModelProperty(value = "计量人员表id", dataType = "Long") + private String staffId; + + @ExcelProperty(value = "人员编号",order = 0) + @ApiModelProperty(value = "人员编号", dataType = "String") + private String staffNo; + + @ExcelProperty(value = "姓名",order = 1) + @ApiModelProperty(value = "姓名", dataType = "String") + private String name; + + @ExcelProperty(value = "性别",order = 2) + @ApiModelProperty(value = "性别", dataType = "String") + private String sex; + + @ApiModelProperty(value = "文化程度", dataType = "String") + private String education; + + @ExcelProperty(value = "技术职位",order = 4) + @ApiModelProperty(value = "技术职位", dataType = "String") + private String technologyJob; + + @ExcelProperty(value = "行政职务",order = 5) + @ApiModelProperty(value = "行政职务", dataType = "String") + private String administrationJob; + + @ExcelProperty(value = "工作部门",order = 3) + @ApiModelProperty(value = "组织部门", dataType = "String") + private String deptName; + + @ApiModelProperty(value = "部门id", dataType = "String") + private String deptId; + + @ExcelProperty(value = "证书号",order = 6) + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @ExcelProperty(value = "发证日期",order = 8) + @ApiModelProperty(value = "发证日期", dataType = "String") + private String certificateDate; + + @ExcelProperty(value = "发证单位",order = 7) + @ApiModelProperty(value = "发证单位", dataType = "String") + private String certificateCompany; + + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @ExcelProperty(value = "证书状况",order = 9) + @ApiModelProperty(value = "证书状况", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "minio存储文件名", dataType = "String") + private String minioFileName; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java index ba07cd2..7e95296 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java @@ -44,5 +44,11 @@ @ApiModelProperty(value = "证书号", dataType = "String") private String verifierCertificateNo; + /** + * 证书状态 + */ + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java index a6c7a35..06df96c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java @@ -67,5 +67,9 @@ @ApiModelProperty(value = "更新时间", dataType = "String") private String updateTime; + @ApiModelProperty(value = "人员信息", dataType = "Object") + @TableField(exist = false) + private MeterStaff meterStaff; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java new file mode 100644 index 0000000..29d06bd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java @@ -0,0 +1,71 @@ +package com.casic.missiles.model; + + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("meter_certificate_expire_message") +public class MeterCertificateExpireMessage implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @TableField("staff_id") + @ApiModelProperty(value = "计量人员表id", dataType = "String") + private String staffId; + + @TableField("certificate_id") + @ApiModelProperty(value = "证书表id", dataType = "String") + private String certificateId; + + @TableField("staff_no") + @ApiModelProperty(value = "人员编号(登录账号)", dataType = "String") + private String staffNo; + + @TableField("certificate_no") + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @TableField("certificate_name") + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @TableField("valid_date") + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @TableField("status") + @ApiModelProperty(value = "1已读,0未读", dataType = "Integer") + private Integer status; + + @TableField("create_time") + @ApiModelProperty(value = "创建时间", dataType = "String") + private String createTime; + + @TableField("update_time") + @ApiModelProperty(value = "更新时间", dataType = "String") + private String updateTime; + + public MeterCertificateExpireMessage(Long id, String staffId, String certificateId, String staffNo, String certificateNo, String certificateName, String validDate, Integer status) { + this.id = id; + this.staffId = staffId; + this.certificateId = certificateId; + this.staffNo = staffNo; + this.certificateNo = certificateNo; + this.certificateName = certificateName; + this.validDate = validDate; + this.status = status; + } + + public MeterCertificateExpireMessage() { + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java index 007a415..7d0182c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java @@ -36,6 +36,10 @@ @ExcelProperty(value = "姓名",order = 1) private String name; + @TableField("minio_file_name") + @ApiModelProperty(value = "人员照片(调用上传文件接口,返回的文件id)", dataType = "String") + private String minioFileName; + @TableField("id_card") @ApiModelProperty(value = "身份证号", dataType = "String") private String idCard; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java new file mode 100644 index 0000000..fdb36a0 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java @@ -0,0 +1,33 @@ +package com.casic.missiles.service.Impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.mapper.MeterCertificateExpireMessageMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Service("MeterCertificateExpireMessageService") +public class MeterCertificateExpireMessageServiceImpl implements MeterCertificateExpireMessageService { + + @Resource + private MeterCertificateExpireMessageMapper messageMapper; + + @Override + public Page queryMessageList(Page page, MeterStaffRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("staff_no",request.getStaffNo()); + return messageMapper.selectPage(page,wrapper); + } + + @Override + public void readMessage(IdDTO idDto) { + messageMapper.readMessage(idDto.getId()); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index bbaf1a9..9e6f188 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -18,7 +18,7 @@ t.major, t.technology_exam FROM - meter_staff t) t2 + meter_staff t where t.is_del = 0) t2 and t2.staff_no like CONCAT('%',#{request.staffNo},'%') @@ -37,6 +37,58 @@ + + + UPDATE meter_staff + SET `name` = #{meterStaff.name}, + `id_card` = #{meterStaff.idCard}, + `account` = #{meterStaff.account}, + `staff_no` = #{meterStaff.staffNo}, + `birthday` = DATE_FORMAT(#{meterStaff.birthday},'%Y-%m-%d %H:%i:%S'), + `education` = #{meterStaff.education}, + `technology_job` = #{meterStaff.technologyJob}, + `administration_job` = #{meterStaff.administrationJob}, + `dept_id` = #{meterStaff.deptId}, + `major` = #{meterStaff.major}, + `certificate_company` = #{meterStaff.certificateCompany}, + `verifier_certificate_no` = #{meterStaff.verifierCertificateNo}, + `certificate_date` = DATE_FORMAT(#{meterStaff.certificateDate},'%Y-%m-%d %H:%i:%S'), + `work_date` = DATE_FORMAT(#{meterStaff.workDate},'%Y-%m-%d %H:%i:%S'), + `technology_exam` = #{meterStaff.technologyExam}, + `main_examiner` = #{meterStaff.mainExaminer}, + `special_operator` = #{meterStaff.specialOperator}, + `remark` = #{meterStaff.remark}, + `update_time` = DATE_FORMAT(#{meterStaff.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{meterStaff.id} + UPDATE meter_staff SET `is_del` = 1 WHERE `id` = #{id} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java new file mode 100644 index 0000000..7879fac --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class MeterCertificateDto { + + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @ApiModelProperty(value = "计量人员表id", dataType = "Long") + private String staffId; + + @ExcelProperty(value = "人员编号",order = 0) + @ApiModelProperty(value = "人员编号", dataType = "String") + private String staffNo; + + @ExcelProperty(value = "姓名",order = 1) + @ApiModelProperty(value = "姓名", dataType = "String") + private String name; + + @ExcelProperty(value = "性别",order = 2) + @ApiModelProperty(value = "性别", dataType = "String") + private String sex; + + @ApiModelProperty(value = "文化程度", dataType = "String") + private String education; + + @ExcelProperty(value = "技术职位",order = 4) + @ApiModelProperty(value = "技术职位", dataType = "String") + private String technologyJob; + + @ExcelProperty(value = "行政职务",order = 5) + @ApiModelProperty(value = "行政职务", dataType = "String") + private String administrationJob; + + @ExcelProperty(value = "工作部门",order = 3) + @ApiModelProperty(value = "组织部门", dataType = "String") + private String deptName; + + @ApiModelProperty(value = "部门id", dataType = "String") + private String deptId; + + @ExcelProperty(value = "证书号",order = 6) + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @ExcelProperty(value = "发证日期",order = 8) + @ApiModelProperty(value = "发证日期", dataType = "String") + private String certificateDate; + + @ExcelProperty(value = "发证单位",order = 7) + @ApiModelProperty(value = "发证单位", dataType = "String") + private String certificateCompany; + + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @ExcelProperty(value = "证书状况",order = 9) + @ApiModelProperty(value = "证书状况", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "minio存储文件名", dataType = "String") + private String minioFileName; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java index ba07cd2..7e95296 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java @@ -44,5 +44,11 @@ @ApiModelProperty(value = "证书号", dataType = "String") private String verifierCertificateNo; + /** + * 证书状态 + */ + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java index a6c7a35..06df96c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java @@ -67,5 +67,9 @@ @ApiModelProperty(value = "更新时间", dataType = "String") private String updateTime; + @ApiModelProperty(value = "人员信息", dataType = "Object") + @TableField(exist = false) + private MeterStaff meterStaff; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java new file mode 100644 index 0000000..29d06bd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java @@ -0,0 +1,71 @@ +package com.casic.missiles.model; + + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("meter_certificate_expire_message") +public class MeterCertificateExpireMessage implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @TableField("staff_id") + @ApiModelProperty(value = "计量人员表id", dataType = "String") + private String staffId; + + @TableField("certificate_id") + @ApiModelProperty(value = "证书表id", dataType = "String") + private String certificateId; + + @TableField("staff_no") + @ApiModelProperty(value = "人员编号(登录账号)", dataType = "String") + private String staffNo; + + @TableField("certificate_no") + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @TableField("certificate_name") + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @TableField("valid_date") + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @TableField("status") + @ApiModelProperty(value = "1已读,0未读", dataType = "Integer") + private Integer status; + + @TableField("create_time") + @ApiModelProperty(value = "创建时间", dataType = "String") + private String createTime; + + @TableField("update_time") + @ApiModelProperty(value = "更新时间", dataType = "String") + private String updateTime; + + public MeterCertificateExpireMessage(Long id, String staffId, String certificateId, String staffNo, String certificateNo, String certificateName, String validDate, Integer status) { + this.id = id; + this.staffId = staffId; + this.certificateId = certificateId; + this.staffNo = staffNo; + this.certificateNo = certificateNo; + this.certificateName = certificateName; + this.validDate = validDate; + this.status = status; + } + + public MeterCertificateExpireMessage() { + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java index 007a415..7d0182c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java @@ -36,6 +36,10 @@ @ExcelProperty(value = "姓名",order = 1) private String name; + @TableField("minio_file_name") + @ApiModelProperty(value = "人员照片(调用上传文件接口,返回的文件id)", dataType = "String") + private String minioFileName; + @TableField("id_card") @ApiModelProperty(value = "身份证号", dataType = "String") private String idCard; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java new file mode 100644 index 0000000..fdb36a0 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java @@ -0,0 +1,33 @@ +package com.casic.missiles.service.Impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.mapper.MeterCertificateExpireMessageMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Service("MeterCertificateExpireMessageService") +public class MeterCertificateExpireMessageServiceImpl implements MeterCertificateExpireMessageService { + + @Resource + private MeterCertificateExpireMessageMapper messageMapper; + + @Override + public Page queryMessageList(Page page, MeterStaffRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("staff_no",request.getStaffNo()); + return messageMapper.selectPage(page,wrapper); + } + + @Override + public void readMessage(IdDTO idDto) { + messageMapper.readMessage(idDto.getId()); + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java new file mode 100644 index 0000000..8079cef --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java @@ -0,0 +1,123 @@ +package com.casic.missiles.service.Impl; + + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.mapper.MeterCertificateExpireMessageMapper; +import com.casic.missiles.mapper.MeterCertificateMapper; +import com.casic.missiles.mapper.MeterStaffMapper; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.model.MeterStaff; +import com.casic.missiles.service.MeterCertificateService; +import com.casic.missiles.utils.ExportUtils; +import com.casic.missiles.utils.UuidUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service("MeterCertificateService") +@Slf4j +public class MeterCertificateServiceImpl implements MeterCertificateService { + + @Resource + private MeterCertificateMapper meterCertificateMapper; + + @Resource + private MeterStaffMapper meterStaffMapper; + + @Resource + private MeterCertificateExpireMessageMapper messageMapper; + + @Override + public Page queryCertificateList(Page page ,MeterStaffRequest meterStaffRequest) { + return meterCertificateMapper.queryCertificateList(page, meterStaffRequest); + } + + @Override + public void addStaffCertificate(List list) { + list.forEach(bean->{ + bean.setId(Long.parseLong(UuidUtils.getId())); + }); + meterCertificateMapper.addStaffCertificate(list); + } + + @Override + public MeterCertificate queryStaffCertificateInfo(IdDTO idDto) { + MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(meterCertificate.getStaffId()); + meterCertificate.setMeterStaff(meterStaff); + return meterCertificate; + } + + @Override + public void updateStaffCertificateInfo(MeterCertificate meterCertificate) { + meterCertificate.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterCertificateMapper.updateStaffCertificate(meterCertificate); + } + + @Override + public void exportCertificateList(MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + List meterCertificateList = meterCertificateMapper.queryCertificateList(meterStaffRequest); + meterCertificateList.forEach(bean->{ + bean.setSex(bean.getSex().equals("0")?"女":"男"); + bean.setCertificateStatus(bean.getCertificateStatus().equals("0")?"正常":"已失效"); + }); + ExportUtils.writeExcel(response,meterCertificateList,"export"+new Date().getTime(),"sheet1",MeterCertificateDto.class); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void deleteCertificate(IdDTO idDto) { + meterCertificateMapper.deleteCertificate(idDto.getId()); + } + + @Override + public void expirationReminder(IdDTO idDto) { + MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectById(meterCertificate.getStaffId()); + MeterCertificateExpireMessage message = new MeterCertificateExpireMessage(Long.parseLong(UuidUtils.getId()),meterCertificate.getStaffId(),String.valueOf(meterCertificate.getId()),meterStaff.getAccount(),meterCertificate.getCertificateNo(),meterCertificate.getCertificateName(),meterCertificate.getValidDate(),0); + messageMapper.insert(message); + } + + @Override + public void regularExpirationReminder() { + List messageList = new ArrayList<>(); + List list = meterCertificateMapper.queryReminderList(); + if(null != list && list.size()!=0){ + List idList = new ArrayList<>(); + list.forEach(bean -> { + bean.setId(Long.parseLong(UuidUtils.getId())); + idList.add(bean.getCertificateId()); + }); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("certificate_id"); + wrapper.in("certificate_id", idList); + List messageIds = messageMapper.selectObjs(wrapper); + Map> collect = list.parallelStream().collect(Collectors.groupingBy(MeterCertificateExpireMessage::getCertificateId)); + messageIds.forEach(id -> { + collect.remove(id.toString()); + }); + collect.keySet().forEach(dtoList -> { + messageList.addAll(collect.get(dtoList)); + }); + if(messageList.size()!=0){ + messageMapper.addMessageList(messageList); + } + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index bbaf1a9..9e6f188 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -18,7 +18,7 @@ t.major, t.technology_exam FROM - meter_staff t) t2 + meter_staff t where t.is_del = 0) t2 and t2.staff_no like CONCAT('%',#{request.staffNo},'%') @@ -37,6 +37,58 @@ + + + UPDATE meter_staff + SET `name` = #{meterStaff.name}, + `id_card` = #{meterStaff.idCard}, + `account` = #{meterStaff.account}, + `staff_no` = #{meterStaff.staffNo}, + `birthday` = DATE_FORMAT(#{meterStaff.birthday},'%Y-%m-%d %H:%i:%S'), + `education` = #{meterStaff.education}, + `technology_job` = #{meterStaff.technologyJob}, + `administration_job` = #{meterStaff.administrationJob}, + `dept_id` = #{meterStaff.deptId}, + `major` = #{meterStaff.major}, + `certificate_company` = #{meterStaff.certificateCompany}, + `verifier_certificate_no` = #{meterStaff.verifierCertificateNo}, + `certificate_date` = DATE_FORMAT(#{meterStaff.certificateDate},'%Y-%m-%d %H:%i:%S'), + `work_date` = DATE_FORMAT(#{meterStaff.workDate},'%Y-%m-%d %H:%i:%S'), + `technology_exam` = #{meterStaff.technologyExam}, + `main_examiner` = #{meterStaff.mainExaminer}, + `special_operator` = #{meterStaff.specialOperator}, + `remark` = #{meterStaff.remark}, + `update_time` = DATE_FORMAT(#{meterStaff.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{meterStaff.id} + UPDATE meter_staff SET `is_del` = 1 WHERE `id` = #{id} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java new file mode 100644 index 0000000..7879fac --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class MeterCertificateDto { + + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @ApiModelProperty(value = "计量人员表id", dataType = "Long") + private String staffId; + + @ExcelProperty(value = "人员编号",order = 0) + @ApiModelProperty(value = "人员编号", dataType = "String") + private String staffNo; + + @ExcelProperty(value = "姓名",order = 1) + @ApiModelProperty(value = "姓名", dataType = "String") + private String name; + + @ExcelProperty(value = "性别",order = 2) + @ApiModelProperty(value = "性别", dataType = "String") + private String sex; + + @ApiModelProperty(value = "文化程度", dataType = "String") + private String education; + + @ExcelProperty(value = "技术职位",order = 4) + @ApiModelProperty(value = "技术职位", dataType = "String") + private String technologyJob; + + @ExcelProperty(value = "行政职务",order = 5) + @ApiModelProperty(value = "行政职务", dataType = "String") + private String administrationJob; + + @ExcelProperty(value = "工作部门",order = 3) + @ApiModelProperty(value = "组织部门", dataType = "String") + private String deptName; + + @ApiModelProperty(value = "部门id", dataType = "String") + private String deptId; + + @ExcelProperty(value = "证书号",order = 6) + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @ExcelProperty(value = "发证日期",order = 8) + @ApiModelProperty(value = "发证日期", dataType = "String") + private String certificateDate; + + @ExcelProperty(value = "发证单位",order = 7) + @ApiModelProperty(value = "发证单位", dataType = "String") + private String certificateCompany; + + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @ExcelProperty(value = "证书状况",order = 9) + @ApiModelProperty(value = "证书状况", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "minio存储文件名", dataType = "String") + private String minioFileName; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java index ba07cd2..7e95296 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java @@ -44,5 +44,11 @@ @ApiModelProperty(value = "证书号", dataType = "String") private String verifierCertificateNo; + /** + * 证书状态 + */ + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java index a6c7a35..06df96c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java @@ -67,5 +67,9 @@ @ApiModelProperty(value = "更新时间", dataType = "String") private String updateTime; + @ApiModelProperty(value = "人员信息", dataType = "Object") + @TableField(exist = false) + private MeterStaff meterStaff; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java new file mode 100644 index 0000000..29d06bd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java @@ -0,0 +1,71 @@ +package com.casic.missiles.model; + + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("meter_certificate_expire_message") +public class MeterCertificateExpireMessage implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @TableField("staff_id") + @ApiModelProperty(value = "计量人员表id", dataType = "String") + private String staffId; + + @TableField("certificate_id") + @ApiModelProperty(value = "证书表id", dataType = "String") + private String certificateId; + + @TableField("staff_no") + @ApiModelProperty(value = "人员编号(登录账号)", dataType = "String") + private String staffNo; + + @TableField("certificate_no") + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @TableField("certificate_name") + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @TableField("valid_date") + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @TableField("status") + @ApiModelProperty(value = "1已读,0未读", dataType = "Integer") + private Integer status; + + @TableField("create_time") + @ApiModelProperty(value = "创建时间", dataType = "String") + private String createTime; + + @TableField("update_time") + @ApiModelProperty(value = "更新时间", dataType = "String") + private String updateTime; + + public MeterCertificateExpireMessage(Long id, String staffId, String certificateId, String staffNo, String certificateNo, String certificateName, String validDate, Integer status) { + this.id = id; + this.staffId = staffId; + this.certificateId = certificateId; + this.staffNo = staffNo; + this.certificateNo = certificateNo; + this.certificateName = certificateName; + this.validDate = validDate; + this.status = status; + } + + public MeterCertificateExpireMessage() { + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java index 007a415..7d0182c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java @@ -36,6 +36,10 @@ @ExcelProperty(value = "姓名",order = 1) private String name; + @TableField("minio_file_name") + @ApiModelProperty(value = "人员照片(调用上传文件接口,返回的文件id)", dataType = "String") + private String minioFileName; + @TableField("id_card") @ApiModelProperty(value = "身份证号", dataType = "String") private String idCard; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java new file mode 100644 index 0000000..fdb36a0 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java @@ -0,0 +1,33 @@ +package com.casic.missiles.service.Impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.mapper.MeterCertificateExpireMessageMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Service("MeterCertificateExpireMessageService") +public class MeterCertificateExpireMessageServiceImpl implements MeterCertificateExpireMessageService { + + @Resource + private MeterCertificateExpireMessageMapper messageMapper; + + @Override + public Page queryMessageList(Page page, MeterStaffRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("staff_no",request.getStaffNo()); + return messageMapper.selectPage(page,wrapper); + } + + @Override + public void readMessage(IdDTO idDto) { + messageMapper.readMessage(idDto.getId()); + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java new file mode 100644 index 0000000..8079cef --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java @@ -0,0 +1,123 @@ +package com.casic.missiles.service.Impl; + + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.mapper.MeterCertificateExpireMessageMapper; +import com.casic.missiles.mapper.MeterCertificateMapper; +import com.casic.missiles.mapper.MeterStaffMapper; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.model.MeterStaff; +import com.casic.missiles.service.MeterCertificateService; +import com.casic.missiles.utils.ExportUtils; +import com.casic.missiles.utils.UuidUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service("MeterCertificateService") +@Slf4j +public class MeterCertificateServiceImpl implements MeterCertificateService { + + @Resource + private MeterCertificateMapper meterCertificateMapper; + + @Resource + private MeterStaffMapper meterStaffMapper; + + @Resource + private MeterCertificateExpireMessageMapper messageMapper; + + @Override + public Page queryCertificateList(Page page ,MeterStaffRequest meterStaffRequest) { + return meterCertificateMapper.queryCertificateList(page, meterStaffRequest); + } + + @Override + public void addStaffCertificate(List list) { + list.forEach(bean->{ + bean.setId(Long.parseLong(UuidUtils.getId())); + }); + meterCertificateMapper.addStaffCertificate(list); + } + + @Override + public MeterCertificate queryStaffCertificateInfo(IdDTO idDto) { + MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(meterCertificate.getStaffId()); + meterCertificate.setMeterStaff(meterStaff); + return meterCertificate; + } + + @Override + public void updateStaffCertificateInfo(MeterCertificate meterCertificate) { + meterCertificate.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterCertificateMapper.updateStaffCertificate(meterCertificate); + } + + @Override + public void exportCertificateList(MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + List meterCertificateList = meterCertificateMapper.queryCertificateList(meterStaffRequest); + meterCertificateList.forEach(bean->{ + bean.setSex(bean.getSex().equals("0")?"女":"男"); + bean.setCertificateStatus(bean.getCertificateStatus().equals("0")?"正常":"已失效"); + }); + ExportUtils.writeExcel(response,meterCertificateList,"export"+new Date().getTime(),"sheet1",MeterCertificateDto.class); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void deleteCertificate(IdDTO idDto) { + meterCertificateMapper.deleteCertificate(idDto.getId()); + } + + @Override + public void expirationReminder(IdDTO idDto) { + MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectById(meterCertificate.getStaffId()); + MeterCertificateExpireMessage message = new MeterCertificateExpireMessage(Long.parseLong(UuidUtils.getId()),meterCertificate.getStaffId(),String.valueOf(meterCertificate.getId()),meterStaff.getAccount(),meterCertificate.getCertificateNo(),meterCertificate.getCertificateName(),meterCertificate.getValidDate(),0); + messageMapper.insert(message); + } + + @Override + public void regularExpirationReminder() { + List messageList = new ArrayList<>(); + List list = meterCertificateMapper.queryReminderList(); + if(null != list && list.size()!=0){ + List idList = new ArrayList<>(); + list.forEach(bean -> { + bean.setId(Long.parseLong(UuidUtils.getId())); + idList.add(bean.getCertificateId()); + }); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("certificate_id"); + wrapper.in("certificate_id", idList); + List messageIds = messageMapper.selectObjs(wrapper); + Map> collect = list.parallelStream().collect(Collectors.groupingBy(MeterCertificateExpireMessage::getCertificateId)); + messageIds.forEach(id -> { + collect.remove(id.toString()); + }); + collect.keySet().forEach(dtoList -> { + messageList.addAll(collect.get(dtoList)); + }); + if(messageList.size()!=0){ + messageMapper.addMessageList(messageList); + } + } + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java index f3d207c..058d550 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java @@ -1,15 +1,11 @@ package com.casic.missiles.service.Impl; -import com.alibaba.excel.EasyExcel; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.service.AbstractDictService; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.enums.MeterDictEnum; import com.casic.missiles.mapper.MeterCertificateMapper; import com.casic.missiles.mapper.MeterStaffMapper; import com.casic.missiles.mapper.UserInfoMapper; @@ -17,19 +13,17 @@ import com.casic.missiles.model.MeterStaff; import com.casic.missiles.model.UserInfo; import com.casic.missiles.modular.system.dao.DeptMapper; -import com.casic.missiles.modular.system.dao.DictMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.service.MeterStaffService; import com.casic.missiles.utils.ExportUtils; import com.casic.missiles.utils.NumberGeneratorUtil; import com.casic.missiles.utils.UuidUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.velocity.runtime.directive.Foreach; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.List; /** @@ -60,7 +54,7 @@ @Override public MeterStaff selectStaffInfo(IdDTO idDto) { - MeterStaff meterStaff = meterStaffMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(String.valueOf(idDto.getId())); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("staff_id",idDto.getId()); List meterCertificates = meterCertificateMapper.selectList(wrapper); @@ -105,7 +99,11 @@ public void exportStaffList(MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { List meterStaffList = meterStaffMapper.selectStaffList(meterStaffRequest); - ExportUtils.writeExcel(response,meterStaffList,"计量人员导出","sheet1",MeterStaff.class); + meterStaffList.forEach(bean->{ + bean.setSex(bean.getSex().equals("0")?"女":"男"); + bean.setTechnologyExam(bean.getTechnologyExam().equals("0")?"已考核":"未考核"); + }); + ExportUtils.writeExcel(response,meterStaffList,"export"+new Date().getTime(),"sheet1",MeterStaff.class); } catch (Exception e) { e.printStackTrace(); } @@ -113,7 +111,12 @@ @Override public void updateStaffInfo(MeterStaff meterStaff) { - + meterStaff.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterStaffMapper.updateStaffInfo(meterStaff); + meterStaff.getCertificateList().forEach(bean->{ + bean.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterCertificateMapper.updateStaffCertificate(bean); + }); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index bbaf1a9..9e6f188 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -18,7 +18,7 @@ t.major, t.technology_exam FROM - meter_staff t) t2 + meter_staff t where t.is_del = 0) t2 and t2.staff_no like CONCAT('%',#{request.staffNo},'%') @@ -37,6 +37,58 @@ + + + UPDATE meter_staff + SET `name` = #{meterStaff.name}, + `id_card` = #{meterStaff.idCard}, + `account` = #{meterStaff.account}, + `staff_no` = #{meterStaff.staffNo}, + `birthday` = DATE_FORMAT(#{meterStaff.birthday},'%Y-%m-%d %H:%i:%S'), + `education` = #{meterStaff.education}, + `technology_job` = #{meterStaff.technologyJob}, + `administration_job` = #{meterStaff.administrationJob}, + `dept_id` = #{meterStaff.deptId}, + `major` = #{meterStaff.major}, + `certificate_company` = #{meterStaff.certificateCompany}, + `verifier_certificate_no` = #{meterStaff.verifierCertificateNo}, + `certificate_date` = DATE_FORMAT(#{meterStaff.certificateDate},'%Y-%m-%d %H:%i:%S'), + `work_date` = DATE_FORMAT(#{meterStaff.workDate},'%Y-%m-%d %H:%i:%S'), + `technology_exam` = #{meterStaff.technologyExam}, + `main_examiner` = #{meterStaff.mainExaminer}, + `special_operator` = #{meterStaff.specialOperator}, + `remark` = #{meterStaff.remark}, + `update_time` = DATE_FORMAT(#{meterStaff.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{meterStaff.id} + UPDATE meter_staff SET `is_del` = 1 WHERE `id` = #{id} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java new file mode 100644 index 0000000..7879fac --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class MeterCertificateDto { + + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @ApiModelProperty(value = "计量人员表id", dataType = "Long") + private String staffId; + + @ExcelProperty(value = "人员编号",order = 0) + @ApiModelProperty(value = "人员编号", dataType = "String") + private String staffNo; + + @ExcelProperty(value = "姓名",order = 1) + @ApiModelProperty(value = "姓名", dataType = "String") + private String name; + + @ExcelProperty(value = "性别",order = 2) + @ApiModelProperty(value = "性别", dataType = "String") + private String sex; + + @ApiModelProperty(value = "文化程度", dataType = "String") + private String education; + + @ExcelProperty(value = "技术职位",order = 4) + @ApiModelProperty(value = "技术职位", dataType = "String") + private String technologyJob; + + @ExcelProperty(value = "行政职务",order = 5) + @ApiModelProperty(value = "行政职务", dataType = "String") + private String administrationJob; + + @ExcelProperty(value = "工作部门",order = 3) + @ApiModelProperty(value = "组织部门", dataType = "String") + private String deptName; + + @ApiModelProperty(value = "部门id", dataType = "String") + private String deptId; + + @ExcelProperty(value = "证书号",order = 6) + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @ExcelProperty(value = "发证日期",order = 8) + @ApiModelProperty(value = "发证日期", dataType = "String") + private String certificateDate; + + @ExcelProperty(value = "发证单位",order = 7) + @ApiModelProperty(value = "发证单位", dataType = "String") + private String certificateCompany; + + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @ExcelProperty(value = "证书状况",order = 9) + @ApiModelProperty(value = "证书状况", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "minio存储文件名", dataType = "String") + private String minioFileName; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java index ba07cd2..7e95296 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java @@ -44,5 +44,11 @@ @ApiModelProperty(value = "证书号", dataType = "String") private String verifierCertificateNo; + /** + * 证书状态 + */ + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java index a6c7a35..06df96c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java @@ -67,5 +67,9 @@ @ApiModelProperty(value = "更新时间", dataType = "String") private String updateTime; + @ApiModelProperty(value = "人员信息", dataType = "Object") + @TableField(exist = false) + private MeterStaff meterStaff; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java new file mode 100644 index 0000000..29d06bd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java @@ -0,0 +1,71 @@ +package com.casic.missiles.model; + + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("meter_certificate_expire_message") +public class MeterCertificateExpireMessage implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @TableField("staff_id") + @ApiModelProperty(value = "计量人员表id", dataType = "String") + private String staffId; + + @TableField("certificate_id") + @ApiModelProperty(value = "证书表id", dataType = "String") + private String certificateId; + + @TableField("staff_no") + @ApiModelProperty(value = "人员编号(登录账号)", dataType = "String") + private String staffNo; + + @TableField("certificate_no") + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @TableField("certificate_name") + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @TableField("valid_date") + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @TableField("status") + @ApiModelProperty(value = "1已读,0未读", dataType = "Integer") + private Integer status; + + @TableField("create_time") + @ApiModelProperty(value = "创建时间", dataType = "String") + private String createTime; + + @TableField("update_time") + @ApiModelProperty(value = "更新时间", dataType = "String") + private String updateTime; + + public MeterCertificateExpireMessage(Long id, String staffId, String certificateId, String staffNo, String certificateNo, String certificateName, String validDate, Integer status) { + this.id = id; + this.staffId = staffId; + this.certificateId = certificateId; + this.staffNo = staffNo; + this.certificateNo = certificateNo; + this.certificateName = certificateName; + this.validDate = validDate; + this.status = status; + } + + public MeterCertificateExpireMessage() { + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java index 007a415..7d0182c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java @@ -36,6 +36,10 @@ @ExcelProperty(value = "姓名",order = 1) private String name; + @TableField("minio_file_name") + @ApiModelProperty(value = "人员照片(调用上传文件接口,返回的文件id)", dataType = "String") + private String minioFileName; + @TableField("id_card") @ApiModelProperty(value = "身份证号", dataType = "String") private String idCard; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java new file mode 100644 index 0000000..fdb36a0 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java @@ -0,0 +1,33 @@ +package com.casic.missiles.service.Impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.mapper.MeterCertificateExpireMessageMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Service("MeterCertificateExpireMessageService") +public class MeterCertificateExpireMessageServiceImpl implements MeterCertificateExpireMessageService { + + @Resource + private MeterCertificateExpireMessageMapper messageMapper; + + @Override + public Page queryMessageList(Page page, MeterStaffRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("staff_no",request.getStaffNo()); + return messageMapper.selectPage(page,wrapper); + } + + @Override + public void readMessage(IdDTO idDto) { + messageMapper.readMessage(idDto.getId()); + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java new file mode 100644 index 0000000..8079cef --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java @@ -0,0 +1,123 @@ +package com.casic.missiles.service.Impl; + + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.mapper.MeterCertificateExpireMessageMapper; +import com.casic.missiles.mapper.MeterCertificateMapper; +import com.casic.missiles.mapper.MeterStaffMapper; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.model.MeterStaff; +import com.casic.missiles.service.MeterCertificateService; +import com.casic.missiles.utils.ExportUtils; +import com.casic.missiles.utils.UuidUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service("MeterCertificateService") +@Slf4j +public class MeterCertificateServiceImpl implements MeterCertificateService { + + @Resource + private MeterCertificateMapper meterCertificateMapper; + + @Resource + private MeterStaffMapper meterStaffMapper; + + @Resource + private MeterCertificateExpireMessageMapper messageMapper; + + @Override + public Page queryCertificateList(Page page ,MeterStaffRequest meterStaffRequest) { + return meterCertificateMapper.queryCertificateList(page, meterStaffRequest); + } + + @Override + public void addStaffCertificate(List list) { + list.forEach(bean->{ + bean.setId(Long.parseLong(UuidUtils.getId())); + }); + meterCertificateMapper.addStaffCertificate(list); + } + + @Override + public MeterCertificate queryStaffCertificateInfo(IdDTO idDto) { + MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(meterCertificate.getStaffId()); + meterCertificate.setMeterStaff(meterStaff); + return meterCertificate; + } + + @Override + public void updateStaffCertificateInfo(MeterCertificate meterCertificate) { + meterCertificate.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterCertificateMapper.updateStaffCertificate(meterCertificate); + } + + @Override + public void exportCertificateList(MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + List meterCertificateList = meterCertificateMapper.queryCertificateList(meterStaffRequest); + meterCertificateList.forEach(bean->{ + bean.setSex(bean.getSex().equals("0")?"女":"男"); + bean.setCertificateStatus(bean.getCertificateStatus().equals("0")?"正常":"已失效"); + }); + ExportUtils.writeExcel(response,meterCertificateList,"export"+new Date().getTime(),"sheet1",MeterCertificateDto.class); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void deleteCertificate(IdDTO idDto) { + meterCertificateMapper.deleteCertificate(idDto.getId()); + } + + @Override + public void expirationReminder(IdDTO idDto) { + MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectById(meterCertificate.getStaffId()); + MeterCertificateExpireMessage message = new MeterCertificateExpireMessage(Long.parseLong(UuidUtils.getId()),meterCertificate.getStaffId(),String.valueOf(meterCertificate.getId()),meterStaff.getAccount(),meterCertificate.getCertificateNo(),meterCertificate.getCertificateName(),meterCertificate.getValidDate(),0); + messageMapper.insert(message); + } + + @Override + public void regularExpirationReminder() { + List messageList = new ArrayList<>(); + List list = meterCertificateMapper.queryReminderList(); + if(null != list && list.size()!=0){ + List idList = new ArrayList<>(); + list.forEach(bean -> { + bean.setId(Long.parseLong(UuidUtils.getId())); + idList.add(bean.getCertificateId()); + }); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("certificate_id"); + wrapper.in("certificate_id", idList); + List messageIds = messageMapper.selectObjs(wrapper); + Map> collect = list.parallelStream().collect(Collectors.groupingBy(MeterCertificateExpireMessage::getCertificateId)); + messageIds.forEach(id -> { + collect.remove(id.toString()); + }); + collect.keySet().forEach(dtoList -> { + messageList.addAll(collect.get(dtoList)); + }); + if(messageList.size()!=0){ + messageMapper.addMessageList(messageList); + } + } + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java index f3d207c..058d550 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java @@ -1,15 +1,11 @@ package com.casic.missiles.service.Impl; -import com.alibaba.excel.EasyExcel; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.service.AbstractDictService; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.enums.MeterDictEnum; import com.casic.missiles.mapper.MeterCertificateMapper; import com.casic.missiles.mapper.MeterStaffMapper; import com.casic.missiles.mapper.UserInfoMapper; @@ -17,19 +13,17 @@ import com.casic.missiles.model.MeterStaff; import com.casic.missiles.model.UserInfo; import com.casic.missiles.modular.system.dao.DeptMapper; -import com.casic.missiles.modular.system.dao.DictMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.service.MeterStaffService; import com.casic.missiles.utils.ExportUtils; import com.casic.missiles.utils.NumberGeneratorUtil; import com.casic.missiles.utils.UuidUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.velocity.runtime.directive.Foreach; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.List; /** @@ -60,7 +54,7 @@ @Override public MeterStaff selectStaffInfo(IdDTO idDto) { - MeterStaff meterStaff = meterStaffMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(String.valueOf(idDto.getId())); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("staff_id",idDto.getId()); List meterCertificates = meterCertificateMapper.selectList(wrapper); @@ -105,7 +99,11 @@ public void exportStaffList(MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { List meterStaffList = meterStaffMapper.selectStaffList(meterStaffRequest); - ExportUtils.writeExcel(response,meterStaffList,"计量人员导出","sheet1",MeterStaff.class); + meterStaffList.forEach(bean->{ + bean.setSex(bean.getSex().equals("0")?"女":"男"); + bean.setTechnologyExam(bean.getTechnologyExam().equals("0")?"已考核":"未考核"); + }); + ExportUtils.writeExcel(response,meterStaffList,"export"+new Date().getTime(),"sheet1",MeterStaff.class); } catch (Exception e) { e.printStackTrace(); } @@ -113,7 +111,12 @@ @Override public void updateStaffInfo(MeterStaff meterStaff) { - + meterStaff.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterStaffMapper.updateStaffInfo(meterStaff); + meterStaff.getCertificateList().forEach(bean->{ + bean.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterCertificateMapper.updateStaffCertificate(bean); + }); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateExpireMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateExpireMessageService.java new file mode 100644 index 0000000..0478bcf --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateExpireMessageService.java @@ -0,0 +1,15 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; + +import java.util.HashMap; + +public interface MeterCertificateExpireMessageService { + + Page queryMessageList(Page page, MeterStaffRequest request); + + void readMessage(IdDTO idDto); +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index bbaf1a9..9e6f188 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -18,7 +18,7 @@ t.major, t.technology_exam FROM - meter_staff t) t2 + meter_staff t where t.is_del = 0) t2 and t2.staff_no like CONCAT('%',#{request.staffNo},'%') @@ -37,6 +37,58 @@ + + + UPDATE meter_staff + SET `name` = #{meterStaff.name}, + `id_card` = #{meterStaff.idCard}, + `account` = #{meterStaff.account}, + `staff_no` = #{meterStaff.staffNo}, + `birthday` = DATE_FORMAT(#{meterStaff.birthday},'%Y-%m-%d %H:%i:%S'), + `education` = #{meterStaff.education}, + `technology_job` = #{meterStaff.technologyJob}, + `administration_job` = #{meterStaff.administrationJob}, + `dept_id` = #{meterStaff.deptId}, + `major` = #{meterStaff.major}, + `certificate_company` = #{meterStaff.certificateCompany}, + `verifier_certificate_no` = #{meterStaff.verifierCertificateNo}, + `certificate_date` = DATE_FORMAT(#{meterStaff.certificateDate},'%Y-%m-%d %H:%i:%S'), + `work_date` = DATE_FORMAT(#{meterStaff.workDate},'%Y-%m-%d %H:%i:%S'), + `technology_exam` = #{meterStaff.technologyExam}, + `main_examiner` = #{meterStaff.mainExaminer}, + `special_operator` = #{meterStaff.specialOperator}, + `remark` = #{meterStaff.remark}, + `update_time` = DATE_FORMAT(#{meterStaff.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{meterStaff.id} + UPDATE meter_staff SET `is_del` = 1 WHERE `id` = #{id} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java new file mode 100644 index 0000000..7879fac --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class MeterCertificateDto { + + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @ApiModelProperty(value = "计量人员表id", dataType = "Long") + private String staffId; + + @ExcelProperty(value = "人员编号",order = 0) + @ApiModelProperty(value = "人员编号", dataType = "String") + private String staffNo; + + @ExcelProperty(value = "姓名",order = 1) + @ApiModelProperty(value = "姓名", dataType = "String") + private String name; + + @ExcelProperty(value = "性别",order = 2) + @ApiModelProperty(value = "性别", dataType = "String") + private String sex; + + @ApiModelProperty(value = "文化程度", dataType = "String") + private String education; + + @ExcelProperty(value = "技术职位",order = 4) + @ApiModelProperty(value = "技术职位", dataType = "String") + private String technologyJob; + + @ExcelProperty(value = "行政职务",order = 5) + @ApiModelProperty(value = "行政职务", dataType = "String") + private String administrationJob; + + @ExcelProperty(value = "工作部门",order = 3) + @ApiModelProperty(value = "组织部门", dataType = "String") + private String deptName; + + @ApiModelProperty(value = "部门id", dataType = "String") + private String deptId; + + @ExcelProperty(value = "证书号",order = 6) + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @ExcelProperty(value = "发证日期",order = 8) + @ApiModelProperty(value = "发证日期", dataType = "String") + private String certificateDate; + + @ExcelProperty(value = "发证单位",order = 7) + @ApiModelProperty(value = "发证单位", dataType = "String") + private String certificateCompany; + + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @ExcelProperty(value = "证书状况",order = 9) + @ApiModelProperty(value = "证书状况", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "minio存储文件名", dataType = "String") + private String minioFileName; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java index ba07cd2..7e95296 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java @@ -44,5 +44,11 @@ @ApiModelProperty(value = "证书号", dataType = "String") private String verifierCertificateNo; + /** + * 证书状态 + */ + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java index a6c7a35..06df96c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java @@ -67,5 +67,9 @@ @ApiModelProperty(value = "更新时间", dataType = "String") private String updateTime; + @ApiModelProperty(value = "人员信息", dataType = "Object") + @TableField(exist = false) + private MeterStaff meterStaff; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java new file mode 100644 index 0000000..29d06bd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java @@ -0,0 +1,71 @@ +package com.casic.missiles.model; + + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("meter_certificate_expire_message") +public class MeterCertificateExpireMessage implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @TableField("staff_id") + @ApiModelProperty(value = "计量人员表id", dataType = "String") + private String staffId; + + @TableField("certificate_id") + @ApiModelProperty(value = "证书表id", dataType = "String") + private String certificateId; + + @TableField("staff_no") + @ApiModelProperty(value = "人员编号(登录账号)", dataType = "String") + private String staffNo; + + @TableField("certificate_no") + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @TableField("certificate_name") + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @TableField("valid_date") + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @TableField("status") + @ApiModelProperty(value = "1已读,0未读", dataType = "Integer") + private Integer status; + + @TableField("create_time") + @ApiModelProperty(value = "创建时间", dataType = "String") + private String createTime; + + @TableField("update_time") + @ApiModelProperty(value = "更新时间", dataType = "String") + private String updateTime; + + public MeterCertificateExpireMessage(Long id, String staffId, String certificateId, String staffNo, String certificateNo, String certificateName, String validDate, Integer status) { + this.id = id; + this.staffId = staffId; + this.certificateId = certificateId; + this.staffNo = staffNo; + this.certificateNo = certificateNo; + this.certificateName = certificateName; + this.validDate = validDate; + this.status = status; + } + + public MeterCertificateExpireMessage() { + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java index 007a415..7d0182c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java @@ -36,6 +36,10 @@ @ExcelProperty(value = "姓名",order = 1) private String name; + @TableField("minio_file_name") + @ApiModelProperty(value = "人员照片(调用上传文件接口,返回的文件id)", dataType = "String") + private String minioFileName; + @TableField("id_card") @ApiModelProperty(value = "身份证号", dataType = "String") private String idCard; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java new file mode 100644 index 0000000..fdb36a0 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java @@ -0,0 +1,33 @@ +package com.casic.missiles.service.Impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.mapper.MeterCertificateExpireMessageMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Service("MeterCertificateExpireMessageService") +public class MeterCertificateExpireMessageServiceImpl implements MeterCertificateExpireMessageService { + + @Resource + private MeterCertificateExpireMessageMapper messageMapper; + + @Override + public Page queryMessageList(Page page, MeterStaffRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("staff_no",request.getStaffNo()); + return messageMapper.selectPage(page,wrapper); + } + + @Override + public void readMessage(IdDTO idDto) { + messageMapper.readMessage(idDto.getId()); + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java new file mode 100644 index 0000000..8079cef --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java @@ -0,0 +1,123 @@ +package com.casic.missiles.service.Impl; + + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.mapper.MeterCertificateExpireMessageMapper; +import com.casic.missiles.mapper.MeterCertificateMapper; +import com.casic.missiles.mapper.MeterStaffMapper; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.model.MeterStaff; +import com.casic.missiles.service.MeterCertificateService; +import com.casic.missiles.utils.ExportUtils; +import com.casic.missiles.utils.UuidUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service("MeterCertificateService") +@Slf4j +public class MeterCertificateServiceImpl implements MeterCertificateService { + + @Resource + private MeterCertificateMapper meterCertificateMapper; + + @Resource + private MeterStaffMapper meterStaffMapper; + + @Resource + private MeterCertificateExpireMessageMapper messageMapper; + + @Override + public Page queryCertificateList(Page page ,MeterStaffRequest meterStaffRequest) { + return meterCertificateMapper.queryCertificateList(page, meterStaffRequest); + } + + @Override + public void addStaffCertificate(List list) { + list.forEach(bean->{ + bean.setId(Long.parseLong(UuidUtils.getId())); + }); + meterCertificateMapper.addStaffCertificate(list); + } + + @Override + public MeterCertificate queryStaffCertificateInfo(IdDTO idDto) { + MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(meterCertificate.getStaffId()); + meterCertificate.setMeterStaff(meterStaff); + return meterCertificate; + } + + @Override + public void updateStaffCertificateInfo(MeterCertificate meterCertificate) { + meterCertificate.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterCertificateMapper.updateStaffCertificate(meterCertificate); + } + + @Override + public void exportCertificateList(MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + List meterCertificateList = meterCertificateMapper.queryCertificateList(meterStaffRequest); + meterCertificateList.forEach(bean->{ + bean.setSex(bean.getSex().equals("0")?"女":"男"); + bean.setCertificateStatus(bean.getCertificateStatus().equals("0")?"正常":"已失效"); + }); + ExportUtils.writeExcel(response,meterCertificateList,"export"+new Date().getTime(),"sheet1",MeterCertificateDto.class); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void deleteCertificate(IdDTO idDto) { + meterCertificateMapper.deleteCertificate(idDto.getId()); + } + + @Override + public void expirationReminder(IdDTO idDto) { + MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectById(meterCertificate.getStaffId()); + MeterCertificateExpireMessage message = new MeterCertificateExpireMessage(Long.parseLong(UuidUtils.getId()),meterCertificate.getStaffId(),String.valueOf(meterCertificate.getId()),meterStaff.getAccount(),meterCertificate.getCertificateNo(),meterCertificate.getCertificateName(),meterCertificate.getValidDate(),0); + messageMapper.insert(message); + } + + @Override + public void regularExpirationReminder() { + List messageList = new ArrayList<>(); + List list = meterCertificateMapper.queryReminderList(); + if(null != list && list.size()!=0){ + List idList = new ArrayList<>(); + list.forEach(bean -> { + bean.setId(Long.parseLong(UuidUtils.getId())); + idList.add(bean.getCertificateId()); + }); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("certificate_id"); + wrapper.in("certificate_id", idList); + List messageIds = messageMapper.selectObjs(wrapper); + Map> collect = list.parallelStream().collect(Collectors.groupingBy(MeterCertificateExpireMessage::getCertificateId)); + messageIds.forEach(id -> { + collect.remove(id.toString()); + }); + collect.keySet().forEach(dtoList -> { + messageList.addAll(collect.get(dtoList)); + }); + if(messageList.size()!=0){ + messageMapper.addMessageList(messageList); + } + } + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java index f3d207c..058d550 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java @@ -1,15 +1,11 @@ package com.casic.missiles.service.Impl; -import com.alibaba.excel.EasyExcel; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.service.AbstractDictService; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.enums.MeterDictEnum; import com.casic.missiles.mapper.MeterCertificateMapper; import com.casic.missiles.mapper.MeterStaffMapper; import com.casic.missiles.mapper.UserInfoMapper; @@ -17,19 +13,17 @@ import com.casic.missiles.model.MeterStaff; import com.casic.missiles.model.UserInfo; import com.casic.missiles.modular.system.dao.DeptMapper; -import com.casic.missiles.modular.system.dao.DictMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.service.MeterStaffService; import com.casic.missiles.utils.ExportUtils; import com.casic.missiles.utils.NumberGeneratorUtil; import com.casic.missiles.utils.UuidUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.velocity.runtime.directive.Foreach; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.List; /** @@ -60,7 +54,7 @@ @Override public MeterStaff selectStaffInfo(IdDTO idDto) { - MeterStaff meterStaff = meterStaffMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(String.valueOf(idDto.getId())); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("staff_id",idDto.getId()); List meterCertificates = meterCertificateMapper.selectList(wrapper); @@ -105,7 +99,11 @@ public void exportStaffList(MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { List meterStaffList = meterStaffMapper.selectStaffList(meterStaffRequest); - ExportUtils.writeExcel(response,meterStaffList,"计量人员导出","sheet1",MeterStaff.class); + meterStaffList.forEach(bean->{ + bean.setSex(bean.getSex().equals("0")?"女":"男"); + bean.setTechnologyExam(bean.getTechnologyExam().equals("0")?"已考核":"未考核"); + }); + ExportUtils.writeExcel(response,meterStaffList,"export"+new Date().getTime(),"sheet1",MeterStaff.class); } catch (Exception e) { e.printStackTrace(); } @@ -113,7 +111,12 @@ @Override public void updateStaffInfo(MeterStaff meterStaff) { - + meterStaff.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterStaffMapper.updateStaffInfo(meterStaff); + meterStaff.getCertificateList().forEach(bean->{ + bean.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterCertificateMapper.updateStaffCertificate(bean); + }); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateExpireMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateExpireMessageService.java new file mode 100644 index 0000000..0478bcf --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateExpireMessageService.java @@ -0,0 +1,15 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; + +import java.util.HashMap; + +public interface MeterCertificateExpireMessageService { + + Page queryMessageList(Page page, MeterStaffRequest request); + + void readMessage(IdDTO idDto); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateService.java new file mode 100644 index 0000000..d4825b7 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateService.java @@ -0,0 +1,29 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +public interface MeterCertificateService { + + Page queryCertificateList(Page page ,MeterStaffRequest meterStaffRequest); + + void addStaffCertificate(List list); + + MeterCertificate queryStaffCertificateInfo(IdDTO idDto); + + void updateStaffCertificateInfo(MeterCertificate meterCertificate); + + void exportCertificateList(MeterStaffRequest meterStaffRequest, HttpServletResponse response); + + void deleteCertificate(IdDTO idDto); + + void expirationReminder(IdDTO idDto); + + void regularExpirationReminder(); +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java index a743978..bbab1e6 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/CasicApiApplication.java @@ -7,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** @@ -23,6 +24,7 @@ @EnableAsync @Slf4j @MapperScan("com.casic.missiles.mapper") +@EnableScheduling public class CasicApiApplication { public static void main(String[] args) { SpringApplication.run(CasicApiApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java new file mode 100644 index 0000000..0c4905b --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateController.java @@ -0,0 +1,146 @@ +package com.casic.missiles.controller; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.service.MeterCertificateService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@Api(tags = "计量人员证书相关接口") +@RestController +@RequestMapping("/certificate") +public class MeterCertificateController { + + @Resource + private MeterCertificateService meterCertificateService; + + /** + * 证书列表查询 + * @return + */ + @ApiOperation("证书列表查询") + @PostMapping("/queryCertificateList") + @ResponseBody + public ReturnDTO queryCertificateList(@RequestBody MeterStaffRequest meterStaffRequest) { + try { + Page page = PageFactory.defaultPage(); + Page list = meterCertificateService.queryCertificateList(page,meterStaffRequest); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + /** + * 证书新增 + * @return + */ + @ApiOperation("证书新增") + @PostMapping("/addStaffCertificate") + @ResponseBody + public ReturnDTO addStaffCertificate(@RequestBody List list) { + try { + meterCertificateService.addStaffCertificate(list); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书新增失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("证书删除") + @PostMapping("/deleteCertificate") + @ResponseBody + public ReturnDTO deleteCertificate(@RequestBody IdDTO idDto) { + try { + meterCertificateService.deleteCertificate(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } + /** + * 证书详细信息 + */ + @ApiOperation("证书详细信息") + @PostMapping("/queryStaffCertificateInfo") + @ResponseBody + public ReturnDTO queryStaffCertificateInfo(@RequestBody IdDTO idDto) { + try { + MeterCertificate result = meterCertificateService.queryStaffCertificateInfo(idDto); + return ReturnUtil.success(result); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书详细查询失败"); + } + } + + /** + * 证书信息编辑 + * @return + */ + @ApiOperation("证书信息编辑") + @PostMapping("/updateStaffCertificateInfo") + @ResponseBody + public ReturnDTO updateStaffCertificateInfo(@RequestBody MeterCertificate meterCertificate) { + try { + meterCertificateService.updateStaffCertificateInfo(meterCertificate); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书信息编辑失败"); + } + } + + /** + * 证书列表导出 + */ + @ApiOperation("证书列表导出") + @PostMapping("/exportCertificateList") + @ResponseBody + public void exportCertificateList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + meterCertificateService.exportCertificateList(meterStaffRequest,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + + /** + * 证书过期提醒 + */ + @ApiOperation("证书过期提醒") + @PostMapping("/expirationReminder") + @ResponseBody + public ReturnDTO expirationReminder(@RequestBody IdDTO idDto) { + try { + meterCertificateService.expirationReminder(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书过期提醒失败"); + } + } + + @Scheduled(cron = "0 0 0 * * ?") + private void regularExpirationReminder() { + meterCertificateService.regularExpirationReminder(); + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java new file mode 100644 index 0000000..a17b7c0 --- /dev/null +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterCertificateExpireMessageController.java @@ -0,0 +1,60 @@ +package com.casic.missiles.controller; + + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Api(tags = "提箱消息相关接口") +@RestController +@RequestMapping("/message") +public class MeterCertificateExpireMessageController { + + @Resource + private MeterCertificateExpireMessageService messageService; + + /** + * 消息列表查询 + * @return + */ + @ApiOperation("消息列表查询") + @PostMapping("/queryMessageList") + @ResponseBody + public ReturnDTO queryMessageList(@RequestBody MeterStaffRequest request) { + try { + Page page = PageFactory.defaultPage(); + Page list = messageService.queryMessageList(page,request); + return ReturnUtil.success(list); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书列表查询失败"); + } + } + + /** + * 证书删除 + */ + @ApiOperation("已读消息") + @PostMapping("/readMessage") + @ResponseBody + public ReturnDTO readMessage(@RequestBody IdDTO idDto) { + try { + messageService.readMessage(idDto); + return ReturnUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ReturnUtil.failed("证书删除失败"); + } + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java index 43bc6c0..3a405f4 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterStaffController.java @@ -14,7 +14,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** @@ -69,7 +68,7 @@ * 计量人员编辑 * @return */ - @ApiOperation("计量人员新增") + @ApiOperation("计量人员编辑") @PostMapping("/updateStaffInfo") @ResponseBody public ReturnDTO updateStaffInfo(@RequestBody MeterStaff MeterStaff) { @@ -132,18 +131,16 @@ } /** - * 人员详细信息 + * 计量人员列表导出 */ @ApiOperation("计量人员列表导出") @PostMapping("/exportStaffList") @ResponseBody - public ReturnDTO exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + public void exportStaffList(@RequestBody MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { meterStaffService.exportStaffList(meterStaffRequest,response); - return ReturnUtil.success(); }catch (Exception e){ e.printStackTrace(); - return ReturnUtil.failed("计量人员详细查询失败"); } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java new file mode 100644 index 0000000..2952080 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateExpireMessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MeterCertificateExpireMessageMapper extends BaseMapper { + + void addMessageList(@Param("messageList") List messageList); + + void readMessage(@Param("id")Long id); +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java index 2dced79..81d23d9 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterCertificateMapper.java @@ -1,7 +1,11 @@ package com.casic.missiles.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -10,4 +14,13 @@ void addStaffCertificate(@Param("certificateList") List certificateList); + void updateStaffCertificate(@Param("bean")MeterCertificate bean); + + Page queryCertificateList(Page page, @Param("request")MeterStaffRequest meterStaffRequest); + + List queryCertificateList(@Param("request")MeterStaffRequest meterStaffRequest); + + void deleteCertificate(@Param("id")Long id); + + List queryReminderList(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java index d88c805..a8e11e7 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterStaffMapper.java @@ -25,4 +25,8 @@ List selectStaffList(@Param("request") MeterStaffRequest meterStaffRequest); long getMaxNo(); + + void updateStaffInfo(@Param("meterStaff")MeterStaff meterStaff); + + MeterStaff selectStaffInfo(@Param("id")String id); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml new file mode 100644 index 0000000..6a46132 --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateExpireMessageMapper.xml @@ -0,0 +1,16 @@ + + + + + + INSERT INTO meter_certificate_expire_message ( `id`, `staff_id`, `certificate_id`, `staff_no`, `certificate_no`, `certificate_name`, `valid_date`, `status` ) + VALUES + + (#{bean.id},#{bean.staffId},#{bean.certificateId},#{bean.staffNo},#{bean.certificateNo},#{bean.certificateName},#{bean.validDate},0) + + + + + UPDATE meter_certificate_expire_message SET `status` = 1 WHERE `id` = #{id} + + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index d8d1571..abe6d85 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -8,9 +8,80 @@ (#{bean.id}, #{bean.staffId}, #{bean.certificateNo}, #{bean.certificateName}, DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), #{bean.certificateCompany}, DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), - #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark}, #{bean.isDel}) + #{bean.certificateStatus}, #{bean.minioFileName}, #{bean.remark},0) + + UPDATE meter_certificate + SET `staff_id` = #{bean.staffId}, + `certificate_no` = #{bean.certificateNo}, + `certificate_name` = #{bean.certificateName}, + `certificate_date` = DATE_FORMAT(#{bean.certificateDate},'%Y-%m-%d %H:%i:%S'), + `certificate_company` = #{bean.certificateCompany}, + `valid_date` = DATE_FORMAT(#{bean.validDate},'%Y-%m-%d %H:%i:%S'), + `certificate_status` = #{bean.certificateStatus}, + `minio_file_name` = #{bean.minioFileName}, + `remark` = #{bean.remark}, + `update_time` = DATE_FORMAT(#{bean.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{bean.id} + + + + + UPDATE meter_certificate SET `is_del` = 1 WHERE `id` = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index bbaf1a9..9e6f188 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -18,7 +18,7 @@ t.major, t.technology_exam FROM - meter_staff t) t2 + meter_staff t where t.is_del = 0) t2 and t2.staff_no like CONCAT('%',#{request.staffNo},'%') @@ -37,6 +37,58 @@ + + + UPDATE meter_staff + SET `name` = #{meterStaff.name}, + `id_card` = #{meterStaff.idCard}, + `account` = #{meterStaff.account}, + `staff_no` = #{meterStaff.staffNo}, + `birthday` = DATE_FORMAT(#{meterStaff.birthday},'%Y-%m-%d %H:%i:%S'), + `education` = #{meterStaff.education}, + `technology_job` = #{meterStaff.technologyJob}, + `administration_job` = #{meterStaff.administrationJob}, + `dept_id` = #{meterStaff.deptId}, + `major` = #{meterStaff.major}, + `certificate_company` = #{meterStaff.certificateCompany}, + `verifier_certificate_no` = #{meterStaff.verifierCertificateNo}, + `certificate_date` = DATE_FORMAT(#{meterStaff.certificateDate},'%Y-%m-%d %H:%i:%S'), + `work_date` = DATE_FORMAT(#{meterStaff.workDate},'%Y-%m-%d %H:%i:%S'), + `technology_exam` = #{meterStaff.technologyExam}, + `main_examiner` = #{meterStaff.mainExaminer}, + `special_operator` = #{meterStaff.specialOperator}, + `remark` = #{meterStaff.remark}, + `update_time` = DATE_FORMAT(#{meterStaff.updateTime},'%Y-%m-%d %H:%i:%S') + WHERE + `id` = #{meterStaff.id} + UPDATE meter_staff SET `is_del` = 1 WHERE `id` = #{id} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java new file mode 100644 index 0000000..7879fac --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/MeterCertificateDto.java @@ -0,0 +1,84 @@ +package com.casic.missiles.dto; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated +public class MeterCertificateDto { + + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @ApiModelProperty(value = "计量人员表id", dataType = "Long") + private String staffId; + + @ExcelProperty(value = "人员编号",order = 0) + @ApiModelProperty(value = "人员编号", dataType = "String") + private String staffNo; + + @ExcelProperty(value = "姓名",order = 1) + @ApiModelProperty(value = "姓名", dataType = "String") + private String name; + + @ExcelProperty(value = "性别",order = 2) + @ApiModelProperty(value = "性别", dataType = "String") + private String sex; + + @ApiModelProperty(value = "文化程度", dataType = "String") + private String education; + + @ExcelProperty(value = "技术职位",order = 4) + @ApiModelProperty(value = "技术职位", dataType = "String") + private String technologyJob; + + @ExcelProperty(value = "行政职务",order = 5) + @ApiModelProperty(value = "行政职务", dataType = "String") + private String administrationJob; + + @ExcelProperty(value = "工作部门",order = 3) + @ApiModelProperty(value = "组织部门", dataType = "String") + private String deptName; + + @ApiModelProperty(value = "部门id", dataType = "String") + private String deptId; + + @ExcelProperty(value = "证书号",order = 6) + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @ExcelProperty(value = "发证日期",order = 8) + @ApiModelProperty(value = "发证日期", dataType = "String") + private String certificateDate; + + @ExcelProperty(value = "发证单位",order = 7) + @ApiModelProperty(value = "发证单位", dataType = "String") + private String certificateCompany; + + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @ExcelProperty(value = "证书状况",order = 9) + @ApiModelProperty(value = "证书状况", dataType = "String") + private String certificateStatus; + + @ApiModelProperty(value = "minio存储文件名", dataType = "String") + private String minioFileName; + + @ApiModelProperty(value = "备注", dataType = "String") + private String remark; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java index ba07cd2..7e95296 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterStaffRequest.java @@ -44,5 +44,11 @@ @ApiModelProperty(value = "证书号", dataType = "String") private String verifierCertificateNo; + /** + * 证书状态 + */ + @ApiModelProperty(value = "证书状态", dataType = "String") + private String certificateStatus; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java index a6c7a35..06df96c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificate.java @@ -67,5 +67,9 @@ @ApiModelProperty(value = "更新时间", dataType = "String") private String updateTime; + @ApiModelProperty(value = "人员信息", dataType = "Object") + @TableField(exist = false) + private MeterStaff meterStaff; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java new file mode 100644 index 0000000..29d06bd --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterCertificateExpireMessage.java @@ -0,0 +1,71 @@ +package com.casic.missiles.model; + + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +@TableName("meter_certificate_expire_message") +public class MeterCertificateExpireMessage implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + @ApiModelProperty(value = "主键id", dataType = "Long") + private Long id; + + @TableField("staff_id") + @ApiModelProperty(value = "计量人员表id", dataType = "String") + private String staffId; + + @TableField("certificate_id") + @ApiModelProperty(value = "证书表id", dataType = "String") + private String certificateId; + + @TableField("staff_no") + @ApiModelProperty(value = "人员编号(登录账号)", dataType = "String") + private String staffNo; + + @TableField("certificate_no") + @ApiModelProperty(value = "证书号", dataType = "String") + private String certificateNo; + + @TableField("certificate_name") + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + @TableField("valid_date") + @ApiModelProperty(value = "有效日期", dataType = "String") + private String validDate; + + @TableField("status") + @ApiModelProperty(value = "1已读,0未读", dataType = "Integer") + private Integer status; + + @TableField("create_time") + @ApiModelProperty(value = "创建时间", dataType = "String") + private String createTime; + + @TableField("update_time") + @ApiModelProperty(value = "更新时间", dataType = "String") + private String updateTime; + + public MeterCertificateExpireMessage(Long id, String staffId, String certificateId, String staffNo, String certificateNo, String certificateName, String validDate, Integer status) { + this.id = id; + this.staffId = staffId; + this.certificateId = certificateId; + this.staffNo = staffNo; + this.certificateNo = certificateNo; + this.certificateName = certificateName; + this.validDate = validDate; + this.status = status; + } + + public MeterCertificateExpireMessage() { + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java index 007a415..7d0182c 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/MeterStaff.java @@ -36,6 +36,10 @@ @ExcelProperty(value = "姓名",order = 1) private String name; + @TableField("minio_file_name") + @ApiModelProperty(value = "人员照片(调用上传文件接口,返回的文件id)", dataType = "String") + private String minioFileName; + @TableField("id_card") @ApiModelProperty(value = "身份证号", dataType = "String") private String idCard; diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java new file mode 100644 index 0000000..fdb36a0 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateExpireMessageServiceImpl.java @@ -0,0 +1,33 @@ +package com.casic.missiles.service.Impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.mapper.MeterCertificateExpireMessageMapper; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.service.MeterCertificateExpireMessageService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.HashMap; + +@Service("MeterCertificateExpireMessageService") +public class MeterCertificateExpireMessageServiceImpl implements MeterCertificateExpireMessageService { + + @Resource + private MeterCertificateExpireMessageMapper messageMapper; + + @Override + public Page queryMessageList(Page page, MeterStaffRequest request) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("staff_no",request.getStaffNo()); + return messageMapper.selectPage(page,wrapper); + } + + @Override + public void readMessage(IdDTO idDto) { + messageMapper.readMessage(idDto.getId()); + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java new file mode 100644 index 0000000..8079cef --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterCertificateServiceImpl.java @@ -0,0 +1,123 @@ +package com.casic.missiles.service.Impl; + + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.mapper.MeterCertificateExpireMessageMapper; +import com.casic.missiles.mapper.MeterCertificateMapper; +import com.casic.missiles.mapper.MeterStaffMapper; +import com.casic.missiles.model.MeterCertificate; +import com.casic.missiles.model.MeterCertificateExpireMessage; +import com.casic.missiles.model.MeterStaff; +import com.casic.missiles.service.MeterCertificateService; +import com.casic.missiles.utils.ExportUtils; +import com.casic.missiles.utils.UuidUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@Service("MeterCertificateService") +@Slf4j +public class MeterCertificateServiceImpl implements MeterCertificateService { + + @Resource + private MeterCertificateMapper meterCertificateMapper; + + @Resource + private MeterStaffMapper meterStaffMapper; + + @Resource + private MeterCertificateExpireMessageMapper messageMapper; + + @Override + public Page queryCertificateList(Page page ,MeterStaffRequest meterStaffRequest) { + return meterCertificateMapper.queryCertificateList(page, meterStaffRequest); + } + + @Override + public void addStaffCertificate(List list) { + list.forEach(bean->{ + bean.setId(Long.parseLong(UuidUtils.getId())); + }); + meterCertificateMapper.addStaffCertificate(list); + } + + @Override + public MeterCertificate queryStaffCertificateInfo(IdDTO idDto) { + MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(meterCertificate.getStaffId()); + meterCertificate.setMeterStaff(meterStaff); + return meterCertificate; + } + + @Override + public void updateStaffCertificateInfo(MeterCertificate meterCertificate) { + meterCertificate.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterCertificateMapper.updateStaffCertificate(meterCertificate); + } + + @Override + public void exportCertificateList(MeterStaffRequest meterStaffRequest, HttpServletResponse response) { + try { + List meterCertificateList = meterCertificateMapper.queryCertificateList(meterStaffRequest); + meterCertificateList.forEach(bean->{ + bean.setSex(bean.getSex().equals("0")?"女":"男"); + bean.setCertificateStatus(bean.getCertificateStatus().equals("0")?"正常":"已失效"); + }); + ExportUtils.writeExcel(response,meterCertificateList,"export"+new Date().getTime(),"sheet1",MeterCertificateDto.class); + } catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void deleteCertificate(IdDTO idDto) { + meterCertificateMapper.deleteCertificate(idDto.getId()); + } + + @Override + public void expirationReminder(IdDTO idDto) { + MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectById(meterCertificate.getStaffId()); + MeterCertificateExpireMessage message = new MeterCertificateExpireMessage(Long.parseLong(UuidUtils.getId()),meterCertificate.getStaffId(),String.valueOf(meterCertificate.getId()),meterStaff.getAccount(),meterCertificate.getCertificateNo(),meterCertificate.getCertificateName(),meterCertificate.getValidDate(),0); + messageMapper.insert(message); + } + + @Override + public void regularExpirationReminder() { + List messageList = new ArrayList<>(); + List list = meterCertificateMapper.queryReminderList(); + if(null != list && list.size()!=0){ + List idList = new ArrayList<>(); + list.forEach(bean -> { + bean.setId(Long.parseLong(UuidUtils.getId())); + idList.add(bean.getCertificateId()); + }); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.select("certificate_id"); + wrapper.in("certificate_id", idList); + List messageIds = messageMapper.selectObjs(wrapper); + Map> collect = list.parallelStream().collect(Collectors.groupingBy(MeterCertificateExpireMessage::getCertificateId)); + messageIds.forEach(id -> { + collect.remove(id.toString()); + }); + collect.keySet().forEach(dtoList -> { + messageList.addAll(collect.get(dtoList)); + }); + if(messageList.size()!=0){ + messageMapper.addMessageList(messageList); + } + } + } +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java index f3d207c..058d550 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterStaffServiceImpl.java @@ -1,15 +1,11 @@ package com.casic.missiles.service.Impl; -import com.alibaba.excel.EasyExcel; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.casic.missiles.core.application.service.AbstractDictService; -import com.casic.missiles.core.page.PageFactory; import com.casic.missiles.dto.IdDTO; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.enums.MeterDictEnum; import com.casic.missiles.mapper.MeterCertificateMapper; import com.casic.missiles.mapper.MeterStaffMapper; import com.casic.missiles.mapper.UserInfoMapper; @@ -17,19 +13,17 @@ import com.casic.missiles.model.MeterStaff; import com.casic.missiles.model.UserInfo; import com.casic.missiles.modular.system.dao.DeptMapper; -import com.casic.missiles.modular.system.dao.DictMapper; import com.casic.missiles.modular.system.model.Dept; import com.casic.missiles.service.MeterStaffService; import com.casic.missiles.utils.ExportUtils; import com.casic.missiles.utils.NumberGeneratorUtil; import com.casic.missiles.utils.UuidUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.velocity.runtime.directive.Foreach; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.List; /** @@ -60,7 +54,7 @@ @Override public MeterStaff selectStaffInfo(IdDTO idDto) { - MeterStaff meterStaff = meterStaffMapper.selectById(idDto.getId()); + MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(String.valueOf(idDto.getId())); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("staff_id",idDto.getId()); List meterCertificates = meterCertificateMapper.selectList(wrapper); @@ -105,7 +99,11 @@ public void exportStaffList(MeterStaffRequest meterStaffRequest, HttpServletResponse response) { try { List meterStaffList = meterStaffMapper.selectStaffList(meterStaffRequest); - ExportUtils.writeExcel(response,meterStaffList,"计量人员导出","sheet1",MeterStaff.class); + meterStaffList.forEach(bean->{ + bean.setSex(bean.getSex().equals("0")?"女":"男"); + bean.setTechnologyExam(bean.getTechnologyExam().equals("0")?"已考核":"未考核"); + }); + ExportUtils.writeExcel(response,meterStaffList,"export"+new Date().getTime(),"sheet1",MeterStaff.class); } catch (Exception e) { e.printStackTrace(); } @@ -113,7 +111,12 @@ @Override public void updateStaffInfo(MeterStaff meterStaff) { - + meterStaff.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterStaffMapper.updateStaffInfo(meterStaff); + meterStaff.getCertificateList().forEach(bean->{ + bean.setUpdateTime(DateUtil.formatDateTime(new Date())); + meterCertificateMapper.updateStaffCertificate(bean); + }); } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateExpireMessageService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateExpireMessageService.java new file mode 100644 index 0000000..0478bcf --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateExpireMessageService.java @@ -0,0 +1,15 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificateExpireMessage; + +import java.util.HashMap; + +public interface MeterCertificateExpireMessageService { + + Page queryMessageList(Page page, MeterStaffRequest request); + + void readMessage(IdDTO idDto); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateService.java new file mode 100644 index 0000000..d4825b7 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterCertificateService.java @@ -0,0 +1,29 @@ +package com.casic.missiles.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.MeterCertificateDto; +import com.casic.missiles.dto.meter.MeterStaffRequest; +import com.casic.missiles.model.MeterCertificate; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +public interface MeterCertificateService { + + Page queryCertificateList(Page page ,MeterStaffRequest meterStaffRequest); + + void addStaffCertificate(List list); + + MeterCertificate queryStaffCertificateInfo(IdDTO idDto); + + void updateStaffCertificateInfo(MeterCertificate meterCertificate); + + void exportCertificateList(MeterStaffRequest meterStaffRequest, HttpServletResponse response); + + void deleteCertificate(IdDTO idDto); + + void expirationReminder(IdDTO idDto); + + void regularExpirationReminder(); +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/MeterStaffService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterStaffService.java index a4c17de..2589758 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/MeterStaffService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterStaffService.java @@ -7,7 +7,6 @@ import com.casic.missiles.model.MeterStaff; import com.casic.missiles.model.UserInfo; -import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;