diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index 81101aa..2121b5d 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -94,7 +94,7 @@ meter_staff t where t.id =#{id} - SELECT DATE_FORMAT( work_date, '%Y-%m' ) AS `date`, COUNT( 1 ) AS `count` diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index 81101aa..2121b5d 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -94,7 +94,7 @@ meter_staff t where t.id =#{id} - SELECT DATE_FORMAT( work_date, '%Y-%m' ) AS `date`, COUNT( 1 ) AS `count` diff --git a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml index b4d061c..978a2fb 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml @@ -38,4 +38,18 @@ + + diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index 81101aa..2121b5d 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -94,7 +94,7 @@ meter_staff t where t.id =#{id} - SELECT DATE_FORMAT( work_date, '%Y-%m' ) AS `date`, COUNT( 1 ) AS `count` diff --git a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml index b4d061c..978a2fb 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml @@ -38,4 +38,18 @@ + + diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 675b2bd..fd4e367 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -58,6 +58,12 @@ xxl-job-core ${xxl-job.version} + + com.casic + casic-metering-service + 2.0.0 + compile + \ No newline at end of file diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index 81101aa..2121b5d 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -94,7 +94,7 @@ meter_staff t where t.id =#{id} - SELECT DATE_FORMAT( work_date, '%Y-%m' ) AS `date`, COUNT( 1 ) AS `count` diff --git a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml index b4d061c..978a2fb 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml @@ -38,4 +38,18 @@ + + diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 675b2bd..fd4e367 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -58,6 +58,12 @@ xxl-job-core ${xxl-job.version} + + com.casic + casic-metering-service + 2.0.0 + compile + \ No newline at end of file diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java new file mode 100644 index 0000000..a2c93ed --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java @@ -0,0 +1,28 @@ +package com.casic.missiles.job.handler; + + +import com.casic.missiles.service.MeterCertificateService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +import static com.xxl.job.core.biz.model.ReturnT.SUCCESS; + +@Slf4j +@Component +@RequiredArgsConstructor +public class RegularExpirationReminder { + + @Resource + private MeterCertificateService meterCertificateService; + + @XxlJob(value = "regularExpirationReminder") + public ReturnT execute() throws Exception { + meterCertificateService.regularExpirationReminder(); + return SUCCESS; + } +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index 81101aa..2121b5d 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -94,7 +94,7 @@ meter_staff t where t.id =#{id} - SELECT DATE_FORMAT( work_date, '%Y-%m' ) AS `date`, COUNT( 1 ) AS `count` diff --git a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml index b4d061c..978a2fb 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml @@ -38,4 +38,18 @@ + + diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 675b2bd..fd4e367 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -58,6 +58,12 @@ xxl-job-core ${xxl-job.version} + + com.casic + casic-metering-service + 2.0.0 + compile + \ No newline at end of file diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java new file mode 100644 index 0000000..a2c93ed --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java @@ -0,0 +1,28 @@ +package com.casic.missiles.job.handler; + + +import com.casic.missiles.service.MeterCertificateService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +import static com.xxl.job.core.biz.model.ReturnT.SUCCESS; + +@Slf4j +@Component +@RequiredArgsConstructor +public class RegularExpirationReminder { + + @Resource + private MeterCertificateService meterCertificateService; + + @XxlJob(value = "regularExpirationReminder") + public ReturnT execute() throws Exception { + meterCertificateService.regularExpirationReminder(); + return SUCCESS; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 3e28de2..8e3852f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -61,26 +61,26 @@ @TableField("price_limit") @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "限制范围", dataType = "String") + @ApiModelProperty(value = "业务员折扣权限", dataType = "String") private String priceLimit; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 8) - @ApiModelProperty(value = "说明", dataType = "String") - private String priceDescription; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 9) + @ExcelProperty(value = "业务员折扣权限",order = 8) @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") private String operatorDiscountPermission; @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 10) + @ExcelProperty(value = "负责人折扣权限",order = 9) @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") private String directorDiscountPermission; + @TableField("price_description") + @ExcelProperty(value = "说明",order = 10) + @ApiModelProperty(value = "说明", dataType = "String") + private String priceDescription; + @TableField("remark") - @ExcelProperty(value = "负责人折扣权限",order = 11) + @ExcelProperty(value = "备注",order = 11) @ApiModelProperty(value = "备注", dataType = "String") private String remark; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index 81101aa..2121b5d 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -94,7 +94,7 @@ meter_staff t where t.id =#{id} - SELECT DATE_FORMAT( work_date, '%Y-%m' ) AS `date`, COUNT( 1 ) AS `count` diff --git a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml index b4d061c..978a2fb 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml @@ -38,4 +38,18 @@ + + diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 675b2bd..fd4e367 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -58,6 +58,12 @@ xxl-job-core ${xxl-job.version} + + com.casic + casic-metering-service + 2.0.0 + compile + \ No newline at end of file diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java new file mode 100644 index 0000000..a2c93ed --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java @@ -0,0 +1,28 @@ +package com.casic.missiles.job.handler; + + +import com.casic.missiles.service.MeterCertificateService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +import static com.xxl.job.core.biz.model.ReturnT.SUCCESS; + +@Slf4j +@Component +@RequiredArgsConstructor +public class RegularExpirationReminder { + + @Resource + private MeterCertificateService meterCertificateService; + + @XxlJob(value = "regularExpirationReminder") + public ReturnT execute() throws Exception { + meterCertificateService.regularExpirationReminder(); + return SUCCESS; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 3e28de2..8e3852f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -61,26 +61,26 @@ @TableField("price_limit") @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "限制范围", dataType = "String") + @ApiModelProperty(value = "业务员折扣权限", dataType = "String") private String priceLimit; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 8) - @ApiModelProperty(value = "说明", dataType = "String") - private String priceDescription; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 9) + @ExcelProperty(value = "业务员折扣权限",order = 8) @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") private String operatorDiscountPermission; @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 10) + @ExcelProperty(value = "负责人折扣权限",order = 9) @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") private String directorDiscountPermission; + @TableField("price_description") + @ExcelProperty(value = "说明",order = 10) + @ApiModelProperty(value = "说明", dataType = "String") + private String priceDescription; + @TableField("remark") - @ExcelProperty(value = "负责人折扣权限",order = 11) + @ExcelProperty(value = "备注",order = 11) @ApiModelProperty(value = "备注", dataType = "String") private String remark; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java new file mode 100644 index 0000000..a4b8b88 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java @@ -0,0 +1,78 @@ +package com.casic.missiles.dto.meter; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *工作台响应实体 + */ + +@ApiModel +@Data +public class MeterWorkbenchResponse { + + /** + * 证书名称 + */ + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + + /** + * 人员名称 + */ + @ApiModelProperty(value = "人员名称", dataType = "String") + private String name; + + /** + * 到期时间 + */ + @ApiModelProperty(value = "到期时间", dataType = "String") + private String validDate; + + /** + * 最近到期时间 + */ + @ApiModelProperty(value = "最近到期时间", dataType = "Integer") + private Integer lastValidDate; + + /** + * 时间 + */ + @ApiModelProperty(value = "时间", dataType = "String") + private String date; + + /** + * 人数 + */ + @ApiModelProperty(value = "人数", dataType = "String") + private String count; + + /** + * 考核总人次 + */ + @ApiModelProperty(value = "考核总人次", dataType = "Long") + private Long trainCount; + + /** + * 合格总人次 + */ + @ApiModelProperty(value = "合格总人次", dataType = "Long") + private Long qualifiedCount; + + /** + * 合格 + */ + @ApiModelProperty(value = "合格", dataType = "Long") + private Long qualified; + + /** + * 不合格 + */ + @ApiModelProperty(value = "不合格", dataType = "Long") + private Long notQualified; + + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index 81101aa..2121b5d 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -94,7 +94,7 @@ meter_staff t where t.id =#{id} - SELECT DATE_FORMAT( work_date, '%Y-%m' ) AS `date`, COUNT( 1 ) AS `count` diff --git a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml index b4d061c..978a2fb 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml @@ -38,4 +38,18 @@ + + diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 675b2bd..fd4e367 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -58,6 +58,12 @@ xxl-job-core ${xxl-job.version} + + com.casic + casic-metering-service + 2.0.0 + compile + \ No newline at end of file diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java new file mode 100644 index 0000000..a2c93ed --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java @@ -0,0 +1,28 @@ +package com.casic.missiles.job.handler; + + +import com.casic.missiles.service.MeterCertificateService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +import static com.xxl.job.core.biz.model.ReturnT.SUCCESS; + +@Slf4j +@Component +@RequiredArgsConstructor +public class RegularExpirationReminder { + + @Resource + private MeterCertificateService meterCertificateService; + + @XxlJob(value = "regularExpirationReminder") + public ReturnT execute() throws Exception { + meterCertificateService.regularExpirationReminder(); + return SUCCESS; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 3e28de2..8e3852f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -61,26 +61,26 @@ @TableField("price_limit") @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "限制范围", dataType = "String") + @ApiModelProperty(value = "业务员折扣权限", dataType = "String") private String priceLimit; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 8) - @ApiModelProperty(value = "说明", dataType = "String") - private String priceDescription; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 9) + @ExcelProperty(value = "业务员折扣权限",order = 8) @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") private String operatorDiscountPermission; @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 10) + @ExcelProperty(value = "负责人折扣权限",order = 9) @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") private String directorDiscountPermission; + @TableField("price_description") + @ExcelProperty(value = "说明",order = 10) + @ApiModelProperty(value = "说明", dataType = "String") + private String priceDescription; + @TableField("remark") - @ExcelProperty(value = "负责人折扣权限",order = 11) + @ExcelProperty(value = "备注",order = 11) @ApiModelProperty(value = "备注", dataType = "String") private String remark; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java new file mode 100644 index 0000000..a4b8b88 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java @@ -0,0 +1,78 @@ +package com.casic.missiles.dto.meter; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *工作台响应实体 + */ + +@ApiModel +@Data +public class MeterWorkbenchResponse { + + /** + * 证书名称 + */ + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + + /** + * 人员名称 + */ + @ApiModelProperty(value = "人员名称", dataType = "String") + private String name; + + /** + * 到期时间 + */ + @ApiModelProperty(value = "到期时间", dataType = "String") + private String validDate; + + /** + * 最近到期时间 + */ + @ApiModelProperty(value = "最近到期时间", dataType = "Integer") + private Integer lastValidDate; + + /** + * 时间 + */ + @ApiModelProperty(value = "时间", dataType = "String") + private String date; + + /** + * 人数 + */ + @ApiModelProperty(value = "人数", dataType = "String") + private String count; + + /** + * 考核总人次 + */ + @ApiModelProperty(value = "考核总人次", dataType = "Long") + private Long trainCount; + + /** + * 合格总人次 + */ + @ApiModelProperty(value = "合格总人次", dataType = "Long") + private Long qualifiedCount; + + /** + * 合格 + */ + @ApiModelProperty(value = "合格", dataType = "Long") + private Long qualified; + + /** + * 不合格 + */ + @ApiModelProperty(value = "不合格", dataType = "Long") + private Long notQualified; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java deleted file mode 100644 index cbaefd9..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.missiles.dto.meter; - -import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - *工作台我的证书响应实体 - */ - -@ApiModel -@Data -public class StaffCertificateResponse { - - /** - * 证书名称 - */ - @ApiModelProperty(value = "证书名称", dataType = "String") - private String certificateName; - - - /** - * 人员名称 - */ - @ApiModelProperty(value = "人员名称", dataType = "String") - private String name; - - /** - * 到期时间 - */ - @ApiModelProperty(value = "到期时间", dataType = "String") - private String validDate; - - /** - * 最近到期时间 - */ - @ApiModelProperty(value = "最近到期时间", dataType = "Integer") - private Integer lastValidDate; - - /** - * 时间 - */ - @ApiModelProperty(value = "时间", dataType = "String") - private String date; - - /** - * 人数 - */ - @ApiModelProperty(value = "人数", dataType = "String") - private String count; - - -} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index 81101aa..2121b5d 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -94,7 +94,7 @@ meter_staff t where t.id =#{id} - SELECT DATE_FORMAT( work_date, '%Y-%m' ) AS `date`, COUNT( 1 ) AS `count` diff --git a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml index b4d061c..978a2fb 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml @@ -38,4 +38,18 @@ + + diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 675b2bd..fd4e367 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -58,6 +58,12 @@ xxl-job-core ${xxl-job.version} + + com.casic + casic-metering-service + 2.0.0 + compile + \ No newline at end of file diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java new file mode 100644 index 0000000..a2c93ed --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java @@ -0,0 +1,28 @@ +package com.casic.missiles.job.handler; + + +import com.casic.missiles.service.MeterCertificateService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +import static com.xxl.job.core.biz.model.ReturnT.SUCCESS; + +@Slf4j +@Component +@RequiredArgsConstructor +public class RegularExpirationReminder { + + @Resource + private MeterCertificateService meterCertificateService; + + @XxlJob(value = "regularExpirationReminder") + public ReturnT execute() throws Exception { + meterCertificateService.regularExpirationReminder(); + return SUCCESS; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 3e28de2..8e3852f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -61,26 +61,26 @@ @TableField("price_limit") @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "限制范围", dataType = "String") + @ApiModelProperty(value = "业务员折扣权限", dataType = "String") private String priceLimit; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 8) - @ApiModelProperty(value = "说明", dataType = "String") - private String priceDescription; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 9) + @ExcelProperty(value = "业务员折扣权限",order = 8) @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") private String operatorDiscountPermission; @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 10) + @ExcelProperty(value = "负责人折扣权限",order = 9) @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") private String directorDiscountPermission; + @TableField("price_description") + @ExcelProperty(value = "说明",order = 10) + @ApiModelProperty(value = "说明", dataType = "String") + private String priceDescription; + @TableField("remark") - @ExcelProperty(value = "负责人折扣权限",order = 11) + @ExcelProperty(value = "备注",order = 11) @ApiModelProperty(value = "备注", dataType = "String") private String remark; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java new file mode 100644 index 0000000..a4b8b88 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java @@ -0,0 +1,78 @@ +package com.casic.missiles.dto.meter; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *工作台响应实体 + */ + +@ApiModel +@Data +public class MeterWorkbenchResponse { + + /** + * 证书名称 + */ + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + + /** + * 人员名称 + */ + @ApiModelProperty(value = "人员名称", dataType = "String") + private String name; + + /** + * 到期时间 + */ + @ApiModelProperty(value = "到期时间", dataType = "String") + private String validDate; + + /** + * 最近到期时间 + */ + @ApiModelProperty(value = "最近到期时间", dataType = "Integer") + private Integer lastValidDate; + + /** + * 时间 + */ + @ApiModelProperty(value = "时间", dataType = "String") + private String date; + + /** + * 人数 + */ + @ApiModelProperty(value = "人数", dataType = "String") + private String count; + + /** + * 考核总人次 + */ + @ApiModelProperty(value = "考核总人次", dataType = "Long") + private Long trainCount; + + /** + * 合格总人次 + */ + @ApiModelProperty(value = "合格总人次", dataType = "Long") + private Long qualifiedCount; + + /** + * 合格 + */ + @ApiModelProperty(value = "合格", dataType = "Long") + private Long qualified; + + /** + * 不合格 + */ + @ApiModelProperty(value = "不合格", dataType = "Long") + private Long notQualified; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java deleted file mode 100644 index cbaefd9..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.missiles.dto.meter; - -import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - *工作台我的证书响应实体 - */ - -@ApiModel -@Data -public class StaffCertificateResponse { - - /** - * 证书名称 - */ - @ApiModelProperty(value = "证书名称", dataType = "String") - private String certificateName; - - - /** - * 人员名称 - */ - @ApiModelProperty(value = "人员名称", dataType = "String") - private String name; - - /** - * 到期时间 - */ - @ApiModelProperty(value = "到期时间", dataType = "String") - private String validDate; - - /** - * 最近到期时间 - */ - @ApiModelProperty(value = "最近到期时间", dataType = "Integer") - private Integer lastValidDate; - - /** - * 时间 - */ - @ApiModelProperty(value = "时间", dataType = "String") - private String date; - - /** - * 人数 - */ - @ApiModelProperty(value = "人数", dataType = "String") - private String count; - - -} 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 index fe68adb..191fe5c 100644 --- 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 @@ -40,6 +40,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; +import static com.casic.missiles.service.Impl.MeterStaffServiceImpl.isDateFormat; + @Service("MeterCertificateService") @Slf4j public class MeterCertificateServiceImpl extends ServiceImpl implements MeterCertificateService { @@ -86,8 +88,11 @@ @Override public ReturnDTO queryStaffCertificateInfo(IdDTO idDto) { + // 通过id获取证书信息 MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + // 通过证书信息中的staffId获取对应的人员信息 MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(meterCertificate.getStaffId()); + // 将人员信息中的字典值替换 meterStaff.setEducation(dictService.getDictNameByCode(MeterDictEnum.EDUCATION,meterStaff.getEducation())); meterStaff.setTechnologyJob(dictService.getDictNameByCode(MeterDictEnum.TECHNOLOGY_JOB,meterStaff.getTechnologyJob())); meterStaff.setAdministrationJob(dictService.getDictNameByCode(MeterDictEnum.ADMINISTRATION_JOB,meterStaff.getAdministrationJob())); @@ -189,27 +194,44 @@ @Override public ReturnDTO dataCheck(List list) { QueryWrapper wrapper = new QueryWrapper<>(); + // 获取计量人员信息 List meterStaffs = meterStaffMapper.selectList(wrapper); Map> staffMap = meterStaffs.parallelStream().collect(Collectors.groupingBy(MeterStaff::getStaffNo)); AtomicBoolean checkResult = new AtomicBoolean(true); list.forEach(bean-> { StringBuilder result = new StringBuilder(); + // 校验数据中的人员编号是否存在 if (null == staffMap.get(bean.getStaffNo())) { result.append(BusinessExceptionEnum.STAFF_NOT_EXISTENCE.getMessage()); checkResult.set(false); } + // 校验数据中的日期格式是否正确 + if(isDateFormat(bean.getValidDate())){ + result.append(BusinessExceptionEnum.VALID_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getCertificateDate())){ + result.append(BusinessExceptionEnum.CERTIFICATE_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } bean.setResult(result.toString()); }); if(checkResult.get()){ + // 校验通过批量新增 list.forEach(bean->{ + // 获取id Long id= IdWorker.getId(); bean.setId(id); + // 获取人员编号对应的人员id bean.setStaffNo(String.valueOf(staffMap.get(bean.getStaffNo()).get(0).getId())); }); meterCertificateMapper.addCertificate(list); return ReturnUtil.success(); }else{ + // 校验不通过 + // 将处理后的数据导出成文件 MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterCertificateImport.class); + // 将文件存储到minio中返回文件id,供前台下载 List upload = minioUtil.upload(file); return ReturnUtil.failed(upload.get(0)); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index 81101aa..2121b5d 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -94,7 +94,7 @@ meter_staff t where t.id =#{id} - SELECT DATE_FORMAT( work_date, '%Y-%m' ) AS `date`, COUNT( 1 ) AS `count` diff --git a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml index b4d061c..978a2fb 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml @@ -38,4 +38,18 @@ + + diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 675b2bd..fd4e367 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -58,6 +58,12 @@ xxl-job-core ${xxl-job.version} + + com.casic + casic-metering-service + 2.0.0 + compile + \ No newline at end of file diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java new file mode 100644 index 0000000..a2c93ed --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java @@ -0,0 +1,28 @@ +package com.casic.missiles.job.handler; + + +import com.casic.missiles.service.MeterCertificateService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +import static com.xxl.job.core.biz.model.ReturnT.SUCCESS; + +@Slf4j +@Component +@RequiredArgsConstructor +public class RegularExpirationReminder { + + @Resource + private MeterCertificateService meterCertificateService; + + @XxlJob(value = "regularExpirationReminder") + public ReturnT execute() throws Exception { + meterCertificateService.regularExpirationReminder(); + return SUCCESS; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 3e28de2..8e3852f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -61,26 +61,26 @@ @TableField("price_limit") @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "限制范围", dataType = "String") + @ApiModelProperty(value = "业务员折扣权限", dataType = "String") private String priceLimit; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 8) - @ApiModelProperty(value = "说明", dataType = "String") - private String priceDescription; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 9) + @ExcelProperty(value = "业务员折扣权限",order = 8) @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") private String operatorDiscountPermission; @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 10) + @ExcelProperty(value = "负责人折扣权限",order = 9) @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") private String directorDiscountPermission; + @TableField("price_description") + @ExcelProperty(value = "说明",order = 10) + @ApiModelProperty(value = "说明", dataType = "String") + private String priceDescription; + @TableField("remark") - @ExcelProperty(value = "负责人折扣权限",order = 11) + @ExcelProperty(value = "备注",order = 11) @ApiModelProperty(value = "备注", dataType = "String") private String remark; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java new file mode 100644 index 0000000..a4b8b88 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java @@ -0,0 +1,78 @@ +package com.casic.missiles.dto.meter; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *工作台响应实体 + */ + +@ApiModel +@Data +public class MeterWorkbenchResponse { + + /** + * 证书名称 + */ + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + + /** + * 人员名称 + */ + @ApiModelProperty(value = "人员名称", dataType = "String") + private String name; + + /** + * 到期时间 + */ + @ApiModelProperty(value = "到期时间", dataType = "String") + private String validDate; + + /** + * 最近到期时间 + */ + @ApiModelProperty(value = "最近到期时间", dataType = "Integer") + private Integer lastValidDate; + + /** + * 时间 + */ + @ApiModelProperty(value = "时间", dataType = "String") + private String date; + + /** + * 人数 + */ + @ApiModelProperty(value = "人数", dataType = "String") + private String count; + + /** + * 考核总人次 + */ + @ApiModelProperty(value = "考核总人次", dataType = "Long") + private Long trainCount; + + /** + * 合格总人次 + */ + @ApiModelProperty(value = "合格总人次", dataType = "Long") + private Long qualifiedCount; + + /** + * 合格 + */ + @ApiModelProperty(value = "合格", dataType = "Long") + private Long qualified; + + /** + * 不合格 + */ + @ApiModelProperty(value = "不合格", dataType = "Long") + private Long notQualified; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java deleted file mode 100644 index cbaefd9..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.missiles.dto.meter; - -import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - *工作台我的证书响应实体 - */ - -@ApiModel -@Data -public class StaffCertificateResponse { - - /** - * 证书名称 - */ - @ApiModelProperty(value = "证书名称", dataType = "String") - private String certificateName; - - - /** - * 人员名称 - */ - @ApiModelProperty(value = "人员名称", dataType = "String") - private String name; - - /** - * 到期时间 - */ - @ApiModelProperty(value = "到期时间", dataType = "String") - private String validDate; - - /** - * 最近到期时间 - */ - @ApiModelProperty(value = "最近到期时间", dataType = "Integer") - private Integer lastValidDate; - - /** - * 时间 - */ - @ApiModelProperty(value = "时间", dataType = "String") - private String date; - - /** - * 人数 - */ - @ApiModelProperty(value = "人数", dataType = "String") - private String count; - - -} 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 index fe68adb..191fe5c 100644 --- 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 @@ -40,6 +40,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; +import static com.casic.missiles.service.Impl.MeterStaffServiceImpl.isDateFormat; + @Service("MeterCertificateService") @Slf4j public class MeterCertificateServiceImpl extends ServiceImpl implements MeterCertificateService { @@ -86,8 +88,11 @@ @Override public ReturnDTO queryStaffCertificateInfo(IdDTO idDto) { + // 通过id获取证书信息 MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + // 通过证书信息中的staffId获取对应的人员信息 MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(meterCertificate.getStaffId()); + // 将人员信息中的字典值替换 meterStaff.setEducation(dictService.getDictNameByCode(MeterDictEnum.EDUCATION,meterStaff.getEducation())); meterStaff.setTechnologyJob(dictService.getDictNameByCode(MeterDictEnum.TECHNOLOGY_JOB,meterStaff.getTechnologyJob())); meterStaff.setAdministrationJob(dictService.getDictNameByCode(MeterDictEnum.ADMINISTRATION_JOB,meterStaff.getAdministrationJob())); @@ -189,27 +194,44 @@ @Override public ReturnDTO dataCheck(List list) { QueryWrapper wrapper = new QueryWrapper<>(); + // 获取计量人员信息 List meterStaffs = meterStaffMapper.selectList(wrapper); Map> staffMap = meterStaffs.parallelStream().collect(Collectors.groupingBy(MeterStaff::getStaffNo)); AtomicBoolean checkResult = new AtomicBoolean(true); list.forEach(bean-> { StringBuilder result = new StringBuilder(); + // 校验数据中的人员编号是否存在 if (null == staffMap.get(bean.getStaffNo())) { result.append(BusinessExceptionEnum.STAFF_NOT_EXISTENCE.getMessage()); checkResult.set(false); } + // 校验数据中的日期格式是否正确 + if(isDateFormat(bean.getValidDate())){ + result.append(BusinessExceptionEnum.VALID_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getCertificateDate())){ + result.append(BusinessExceptionEnum.CERTIFICATE_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } bean.setResult(result.toString()); }); if(checkResult.get()){ + // 校验通过批量新增 list.forEach(bean->{ + // 获取id Long id= IdWorker.getId(); bean.setId(id); + // 获取人员编号对应的人员id bean.setStaffNo(String.valueOf(staffMap.get(bean.getStaffNo()).get(0).getId())); }); meterCertificateMapper.addCertificate(list); return ReturnUtil.success(); }else{ + // 校验不通过 + // 将处理后的数据导出成文件 MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterCertificateImport.class); + // 将文件存储到minio中返回文件id,供前台下载 List upload = minioUtil.upload(file); return ReturnUtil.failed(upload.get(0)); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java index 52501c9..f8b1353 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java @@ -35,6 +35,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @Service("MeterPriceService") @@ -75,8 +76,8 @@ @Override public ReturnDTO addMeterPrice(MeterPrice meterPrice) { - String maxNo = meterPriceMapper.getMaxNo(); - String priceNo = NumberGeneratorUtil.getContactNo("jg", Long.parseLong(maxNo)); + Long maxNo = meterPriceMapper.getMaxNo(); + String priceNo = NumberGeneratorUtil.getContactNo("jg", maxNo); meterPrice.setPriceNo(priceNo); if(meterPriceMapper.insert(meterPrice)>0){ return ReturnUtil.success(); @@ -119,6 +120,7 @@ @Override public ReturnDTO dataCheck(List list) { AtomicBoolean checkResult = new AtomicBoolean(true); + // 获取字典值 List checkTypeDict = dictService.findInDictByCode(MeterDictEnum.CHECK_TYPE); List priceTypeDict = dictService.findInDictByCode(MeterDictEnum.PRICE_TYPE); List priceItemDict = dictService.findInDictByCode(MeterDictEnum.PRICE_ITEM); @@ -131,6 +133,7 @@ Map> directorPermissionDictMap = directorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); list.forEach(bean->{ StringBuilder result = new StringBuilder(); + // 校验导入数据中的字典值是否存在 if(null == priceTypeDictMap.get(bean.getPriceType())){ result.append(BusinessExceptionEnum.PRICE_TYPE_NOT_EXISTENCE.getMessage()); checkResult.set(false); @@ -154,19 +157,29 @@ bean.setResult(result.toString()); }); if(checkResult.get()){ + // 校验通过 + AtomicLong maxNo = new AtomicLong(meterPriceMapper.getMaxNo()); list.forEach(bean->{ + String priceNo = NumberGeneratorUtil.getContactNo("jg", maxNo.get()); + maxNo.set(Long.parseLong(priceNo.substring(2))); Long id= IdWorker.getId(); bean.setId(id); + bean.setPriceNo(priceNo); + // 将数据的字典值替换 bean.setPriceType(priceTypeDictMap.get(bean.getPriceType()).get(0).getCode()); bean.setPriceItem(priceItemDictMap.get(bean.getPriceItem()).get(0).getCode()); bean.setCheckType(checkTypeDictMap.get(bean.getCheckType()).get(0).getCode()); bean.setOperatorDiscountPermission(operatorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); - bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); + bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getDirectorDiscountPermission()).get(0).getCode()); }); - meterPriceMapper.addmeterPriceList(list); + // 批量新增数据 + meterPriceMapper.addMeterPriceList(list); return ReturnUtil.success(); }else{ - MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterStaffImport.class); + // 校验不通过 + // 将处理后的数据导出成文件 + MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterPriceImport.class); + // 将文件存储到minio中返回文件id,供前台下载 List upload = minioUtil.upload(file); return ReturnUtil.failed(upload.get(0)); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index 81101aa..2121b5d 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -94,7 +94,7 @@ meter_staff t where t.id =#{id} - SELECT DATE_FORMAT( work_date, '%Y-%m' ) AS `date`, COUNT( 1 ) AS `count` diff --git a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml index b4d061c..978a2fb 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml @@ -38,4 +38,18 @@ + + diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 675b2bd..fd4e367 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -58,6 +58,12 @@ xxl-job-core ${xxl-job.version} + + com.casic + casic-metering-service + 2.0.0 + compile + \ No newline at end of file diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java new file mode 100644 index 0000000..a2c93ed --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java @@ -0,0 +1,28 @@ +package com.casic.missiles.job.handler; + + +import com.casic.missiles.service.MeterCertificateService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +import static com.xxl.job.core.biz.model.ReturnT.SUCCESS; + +@Slf4j +@Component +@RequiredArgsConstructor +public class RegularExpirationReminder { + + @Resource + private MeterCertificateService meterCertificateService; + + @XxlJob(value = "regularExpirationReminder") + public ReturnT execute() throws Exception { + meterCertificateService.regularExpirationReminder(); + return SUCCESS; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 3e28de2..8e3852f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -61,26 +61,26 @@ @TableField("price_limit") @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "限制范围", dataType = "String") + @ApiModelProperty(value = "业务员折扣权限", dataType = "String") private String priceLimit; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 8) - @ApiModelProperty(value = "说明", dataType = "String") - private String priceDescription; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 9) + @ExcelProperty(value = "业务员折扣权限",order = 8) @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") private String operatorDiscountPermission; @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 10) + @ExcelProperty(value = "负责人折扣权限",order = 9) @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") private String directorDiscountPermission; + @TableField("price_description") + @ExcelProperty(value = "说明",order = 10) + @ApiModelProperty(value = "说明", dataType = "String") + private String priceDescription; + @TableField("remark") - @ExcelProperty(value = "负责人折扣权限",order = 11) + @ExcelProperty(value = "备注",order = 11) @ApiModelProperty(value = "备注", dataType = "String") private String remark; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java new file mode 100644 index 0000000..a4b8b88 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java @@ -0,0 +1,78 @@ +package com.casic.missiles.dto.meter; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *工作台响应实体 + */ + +@ApiModel +@Data +public class MeterWorkbenchResponse { + + /** + * 证书名称 + */ + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + + /** + * 人员名称 + */ + @ApiModelProperty(value = "人员名称", dataType = "String") + private String name; + + /** + * 到期时间 + */ + @ApiModelProperty(value = "到期时间", dataType = "String") + private String validDate; + + /** + * 最近到期时间 + */ + @ApiModelProperty(value = "最近到期时间", dataType = "Integer") + private Integer lastValidDate; + + /** + * 时间 + */ + @ApiModelProperty(value = "时间", dataType = "String") + private String date; + + /** + * 人数 + */ + @ApiModelProperty(value = "人数", dataType = "String") + private String count; + + /** + * 考核总人次 + */ + @ApiModelProperty(value = "考核总人次", dataType = "Long") + private Long trainCount; + + /** + * 合格总人次 + */ + @ApiModelProperty(value = "合格总人次", dataType = "Long") + private Long qualifiedCount; + + /** + * 合格 + */ + @ApiModelProperty(value = "合格", dataType = "Long") + private Long qualified; + + /** + * 不合格 + */ + @ApiModelProperty(value = "不合格", dataType = "Long") + private Long notQualified; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java deleted file mode 100644 index cbaefd9..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.missiles.dto.meter; - -import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - *工作台我的证书响应实体 - */ - -@ApiModel -@Data -public class StaffCertificateResponse { - - /** - * 证书名称 - */ - @ApiModelProperty(value = "证书名称", dataType = "String") - private String certificateName; - - - /** - * 人员名称 - */ - @ApiModelProperty(value = "人员名称", dataType = "String") - private String name; - - /** - * 到期时间 - */ - @ApiModelProperty(value = "到期时间", dataType = "String") - private String validDate; - - /** - * 最近到期时间 - */ - @ApiModelProperty(value = "最近到期时间", dataType = "Integer") - private Integer lastValidDate; - - /** - * 时间 - */ - @ApiModelProperty(value = "时间", dataType = "String") - private String date; - - /** - * 人数 - */ - @ApiModelProperty(value = "人数", dataType = "String") - private String count; - - -} 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 index fe68adb..191fe5c 100644 --- 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 @@ -40,6 +40,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; +import static com.casic.missiles.service.Impl.MeterStaffServiceImpl.isDateFormat; + @Service("MeterCertificateService") @Slf4j public class MeterCertificateServiceImpl extends ServiceImpl implements MeterCertificateService { @@ -86,8 +88,11 @@ @Override public ReturnDTO queryStaffCertificateInfo(IdDTO idDto) { + // 通过id获取证书信息 MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + // 通过证书信息中的staffId获取对应的人员信息 MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(meterCertificate.getStaffId()); + // 将人员信息中的字典值替换 meterStaff.setEducation(dictService.getDictNameByCode(MeterDictEnum.EDUCATION,meterStaff.getEducation())); meterStaff.setTechnologyJob(dictService.getDictNameByCode(MeterDictEnum.TECHNOLOGY_JOB,meterStaff.getTechnologyJob())); meterStaff.setAdministrationJob(dictService.getDictNameByCode(MeterDictEnum.ADMINISTRATION_JOB,meterStaff.getAdministrationJob())); @@ -189,27 +194,44 @@ @Override public ReturnDTO dataCheck(List list) { QueryWrapper wrapper = new QueryWrapper<>(); + // 获取计量人员信息 List meterStaffs = meterStaffMapper.selectList(wrapper); Map> staffMap = meterStaffs.parallelStream().collect(Collectors.groupingBy(MeterStaff::getStaffNo)); AtomicBoolean checkResult = new AtomicBoolean(true); list.forEach(bean-> { StringBuilder result = new StringBuilder(); + // 校验数据中的人员编号是否存在 if (null == staffMap.get(bean.getStaffNo())) { result.append(BusinessExceptionEnum.STAFF_NOT_EXISTENCE.getMessage()); checkResult.set(false); } + // 校验数据中的日期格式是否正确 + if(isDateFormat(bean.getValidDate())){ + result.append(BusinessExceptionEnum.VALID_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getCertificateDate())){ + result.append(BusinessExceptionEnum.CERTIFICATE_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } bean.setResult(result.toString()); }); if(checkResult.get()){ + // 校验通过批量新增 list.forEach(bean->{ + // 获取id Long id= IdWorker.getId(); bean.setId(id); + // 获取人员编号对应的人员id bean.setStaffNo(String.valueOf(staffMap.get(bean.getStaffNo()).get(0).getId())); }); meterCertificateMapper.addCertificate(list); return ReturnUtil.success(); }else{ + // 校验不通过 + // 将处理后的数据导出成文件 MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterCertificateImport.class); + // 将文件存储到minio中返回文件id,供前台下载 List upload = minioUtil.upload(file); return ReturnUtil.failed(upload.get(0)); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java index 52501c9..f8b1353 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java @@ -35,6 +35,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @Service("MeterPriceService") @@ -75,8 +76,8 @@ @Override public ReturnDTO addMeterPrice(MeterPrice meterPrice) { - String maxNo = meterPriceMapper.getMaxNo(); - String priceNo = NumberGeneratorUtil.getContactNo("jg", Long.parseLong(maxNo)); + Long maxNo = meterPriceMapper.getMaxNo(); + String priceNo = NumberGeneratorUtil.getContactNo("jg", maxNo); meterPrice.setPriceNo(priceNo); if(meterPriceMapper.insert(meterPrice)>0){ return ReturnUtil.success(); @@ -119,6 +120,7 @@ @Override public ReturnDTO dataCheck(List list) { AtomicBoolean checkResult = new AtomicBoolean(true); + // 获取字典值 List checkTypeDict = dictService.findInDictByCode(MeterDictEnum.CHECK_TYPE); List priceTypeDict = dictService.findInDictByCode(MeterDictEnum.PRICE_TYPE); List priceItemDict = dictService.findInDictByCode(MeterDictEnum.PRICE_ITEM); @@ -131,6 +133,7 @@ Map> directorPermissionDictMap = directorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); list.forEach(bean->{ StringBuilder result = new StringBuilder(); + // 校验导入数据中的字典值是否存在 if(null == priceTypeDictMap.get(bean.getPriceType())){ result.append(BusinessExceptionEnum.PRICE_TYPE_NOT_EXISTENCE.getMessage()); checkResult.set(false); @@ -154,19 +157,29 @@ bean.setResult(result.toString()); }); if(checkResult.get()){ + // 校验通过 + AtomicLong maxNo = new AtomicLong(meterPriceMapper.getMaxNo()); list.forEach(bean->{ + String priceNo = NumberGeneratorUtil.getContactNo("jg", maxNo.get()); + maxNo.set(Long.parseLong(priceNo.substring(2))); Long id= IdWorker.getId(); bean.setId(id); + bean.setPriceNo(priceNo); + // 将数据的字典值替换 bean.setPriceType(priceTypeDictMap.get(bean.getPriceType()).get(0).getCode()); bean.setPriceItem(priceItemDictMap.get(bean.getPriceItem()).get(0).getCode()); bean.setCheckType(checkTypeDictMap.get(bean.getCheckType()).get(0).getCode()); bean.setOperatorDiscountPermission(operatorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); - bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); + bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getDirectorDiscountPermission()).get(0).getCode()); }); - meterPriceMapper.addmeterPriceList(list); + // 批量新增数据 + meterPriceMapper.addMeterPriceList(list); return ReturnUtil.success(); }else{ - MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterStaffImport.class); + // 校验不通过 + // 将处理后的数据导出成文件 + MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterPriceImport.class); + // 将文件存储到minio中返回文件id,供前台下载 List upload = minioUtil.upload(file); return ReturnUtil.failed(upload.get(0)); } 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 441a7c6..1d67297 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,5 +1,6 @@ package com.casic.missiles.service.Impl; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -30,6 +31,7 @@ import com.casic.missiles.utils.ExportUtils; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.NumberGeneratorUtil; +import liquibase.pro.packaged.E; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -37,12 +39,16 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -90,11 +96,14 @@ @Override public MeterStaff selectStaffInfo(IdDTO idDto) { + // 通过id获取对应的人员信息 MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(String.valueOf(idDto.getId())); + // 将人员信息中的字典值替换 meterStaff.setEducation(dictService.getDictNameByCode(MeterDictEnum.EDUCATION,meterStaff.getEducation())); meterStaff.setTechnologyJob(dictService.getDictNameByCode(MeterDictEnum.TECHNOLOGY_JOB,meterStaff.getTechnologyJob())); meterStaff.setAdministrationJob(dictService.getDictNameByCode(MeterDictEnum.ADMINISTRATION_JOB,meterStaff.getAdministrationJob())); meterStaff.setDeptId(deptMapper.selectById(meterStaff.getDeptId()).getFullName()); + // 通过人员信息的id获取人员对应的证书列表 QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("staff_id",idDto.getId()); List meterCertificates = meterCertificateMapper.selectList(wrapper); @@ -185,6 +194,7 @@ @Override public ReturnDTO dataCheck(List list) { AtomicBoolean checkResult = new AtomicBoolean(true); + // 获取字典值 List educationDict = dictService.findInDictByCode(MeterDictEnum.EDUCATION); List technologyJobDict = dictService.findInDictByCode(MeterDictEnum.TECHNOLOGY_JOB); List administrationJobDict = dictService.findInDictByCode(MeterDictEnum.ADMINISTRATION_JOB); @@ -195,6 +205,7 @@ Map> deptMap = deptList.stream().collect(Collectors.groupingBy(ZTreeNode::getName)); list.forEach(bean->{ StringBuilder result = new StringBuilder(); + // 校验导入数据中的字典值是否存在 if(null == educationDictMap.get(bean.getEducation())){ result.append(BusinessExceptionEnum.EDUCATION_NOT_EXISTENCE.getMessage()); checkResult.set(false); @@ -211,6 +222,7 @@ result.append(BusinessExceptionEnum.DEPT_NOT_EXISTENCE.getMessage()); checkResult.set(false); } + // 校验导入数据中的性别等信息是否正确 if(!(bean.getSex().equals("男")||bean.getSex().equals("女"))){ result.append(BusinessExceptionEnum.SEX_NOT_CORRECT.getMessage()); checkResult.set(false); @@ -227,17 +239,39 @@ result.append(BusinessExceptionEnum.TECHNOLOGY_EXAM_NOT_CORRECT.getMessage()); checkResult.set(false); } + // 校验导入数据中的日期格式是否规范 + if(isDateFormat(bean.getValidDate())){ + result.append(BusinessExceptionEnum.VALID_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getWorkDate())){ + result.append(BusinessExceptionEnum.WORK_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getBirthday())){ + result.append(BusinessExceptionEnum.BIRTHDAY_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getCertificateDate())){ + result.append(BusinessExceptionEnum.CERTIFICATE_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } bean.setResult(result.toString()); }); if(checkResult.get()){ + // 校验通过 AtomicLong maxNo = new AtomicLong(meterStaffMapper.getMaxNo()); list.forEach(bean->{ + // 生成编号 String staffNo = NumberGeneratorUtil.getContactNo("jlry", maxNo.get()); + maxNo.set(Long.parseLong(staffNo.substring(4))); bean.setStaffNo(staffNo); + // 获取id Long id= IdWorker.getId(); bean.setId(id); Long certificateId= IdWorker.getId(); bean.setCertificateId(certificateId); + // 将数据的字典值替换 bean.setEducation(educationDictMap.get(bean.getEducation()).get(0).getCode()); bean.setTechnologyJob(technologyJobDictMap.get(bean.getTechnologyJob()).get(0).getCode()); bean.setAdministrationJob(administrationJobDictMap.get(bean.getAdministrationJob()).get(0).getCode()); @@ -246,19 +280,35 @@ bean.setMainExaminer(bean.getMainExaminer().equals("是")?"0":"1"); bean.setSpecialOperator(bean.getSpecialOperator().equals("是")?"0":"1"); bean.setTechnologyExam(bean.getTechnologyExam().equals("是")?"0":"1"); - maxNo.getAndIncrement(); }); + // 批量新增数据 meterStaffMapper.addStaffList(list); meterCertificateMapper.addCertificateList(list); return ReturnUtil.success(); }else{ + // 校验不通过 + // 将处理后的数据导出成文件 MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterStaffImport.class); + // 将文件存储到minio中返回文件id,供前台下载 List upload = minioUtil.upload(file); return ReturnUtil.failed(upload.get(0)); } } + public static boolean isDateFormat(String date) { + if (StringUtils.isBlank(date)) { + return false; + } + try { + DateUtil.parseDate(date); + return false; + }catch (Exception e){ + return true; + } + } + + private List supplementList(List meterStaffList){ meterStaffList.forEach(bean->{ bean.setEducation(dictService.getDictNameByCode(MeterDictEnum.EDUCATION,bean.getEducation())); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index 81101aa..2121b5d 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -94,7 +94,7 @@ meter_staff t where t.id =#{id} - SELECT DATE_FORMAT( work_date, '%Y-%m' ) AS `date`, COUNT( 1 ) AS `count` diff --git a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml index b4d061c..978a2fb 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml @@ -38,4 +38,18 @@ + + diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 675b2bd..fd4e367 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -58,6 +58,12 @@ xxl-job-core ${xxl-job.version} + + com.casic + casic-metering-service + 2.0.0 + compile + \ No newline at end of file diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java new file mode 100644 index 0000000..a2c93ed --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java @@ -0,0 +1,28 @@ +package com.casic.missiles.job.handler; + + +import com.casic.missiles.service.MeterCertificateService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +import static com.xxl.job.core.biz.model.ReturnT.SUCCESS; + +@Slf4j +@Component +@RequiredArgsConstructor +public class RegularExpirationReminder { + + @Resource + private MeterCertificateService meterCertificateService; + + @XxlJob(value = "regularExpirationReminder") + public ReturnT execute() throws Exception { + meterCertificateService.regularExpirationReminder(); + return SUCCESS; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 3e28de2..8e3852f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -61,26 +61,26 @@ @TableField("price_limit") @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "限制范围", dataType = "String") + @ApiModelProperty(value = "业务员折扣权限", dataType = "String") private String priceLimit; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 8) - @ApiModelProperty(value = "说明", dataType = "String") - private String priceDescription; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 9) + @ExcelProperty(value = "业务员折扣权限",order = 8) @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") private String operatorDiscountPermission; @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 10) + @ExcelProperty(value = "负责人折扣权限",order = 9) @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") private String directorDiscountPermission; + @TableField("price_description") + @ExcelProperty(value = "说明",order = 10) + @ApiModelProperty(value = "说明", dataType = "String") + private String priceDescription; + @TableField("remark") - @ExcelProperty(value = "负责人折扣权限",order = 11) + @ExcelProperty(value = "备注",order = 11) @ApiModelProperty(value = "备注", dataType = "String") private String remark; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java new file mode 100644 index 0000000..a4b8b88 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java @@ -0,0 +1,78 @@ +package com.casic.missiles.dto.meter; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *工作台响应实体 + */ + +@ApiModel +@Data +public class MeterWorkbenchResponse { + + /** + * 证书名称 + */ + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + + /** + * 人员名称 + */ + @ApiModelProperty(value = "人员名称", dataType = "String") + private String name; + + /** + * 到期时间 + */ + @ApiModelProperty(value = "到期时间", dataType = "String") + private String validDate; + + /** + * 最近到期时间 + */ + @ApiModelProperty(value = "最近到期时间", dataType = "Integer") + private Integer lastValidDate; + + /** + * 时间 + */ + @ApiModelProperty(value = "时间", dataType = "String") + private String date; + + /** + * 人数 + */ + @ApiModelProperty(value = "人数", dataType = "String") + private String count; + + /** + * 考核总人次 + */ + @ApiModelProperty(value = "考核总人次", dataType = "Long") + private Long trainCount; + + /** + * 合格总人次 + */ + @ApiModelProperty(value = "合格总人次", dataType = "Long") + private Long qualifiedCount; + + /** + * 合格 + */ + @ApiModelProperty(value = "合格", dataType = "Long") + private Long qualified; + + /** + * 不合格 + */ + @ApiModelProperty(value = "不合格", dataType = "Long") + private Long notQualified; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java deleted file mode 100644 index cbaefd9..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.missiles.dto.meter; - -import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - *工作台我的证书响应实体 - */ - -@ApiModel -@Data -public class StaffCertificateResponse { - - /** - * 证书名称 - */ - @ApiModelProperty(value = "证书名称", dataType = "String") - private String certificateName; - - - /** - * 人员名称 - */ - @ApiModelProperty(value = "人员名称", dataType = "String") - private String name; - - /** - * 到期时间 - */ - @ApiModelProperty(value = "到期时间", dataType = "String") - private String validDate; - - /** - * 最近到期时间 - */ - @ApiModelProperty(value = "最近到期时间", dataType = "Integer") - private Integer lastValidDate; - - /** - * 时间 - */ - @ApiModelProperty(value = "时间", dataType = "String") - private String date; - - /** - * 人数 - */ - @ApiModelProperty(value = "人数", dataType = "String") - private String count; - - -} 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 index fe68adb..191fe5c 100644 --- 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 @@ -40,6 +40,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; +import static com.casic.missiles.service.Impl.MeterStaffServiceImpl.isDateFormat; + @Service("MeterCertificateService") @Slf4j public class MeterCertificateServiceImpl extends ServiceImpl implements MeterCertificateService { @@ -86,8 +88,11 @@ @Override public ReturnDTO queryStaffCertificateInfo(IdDTO idDto) { + // 通过id获取证书信息 MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + // 通过证书信息中的staffId获取对应的人员信息 MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(meterCertificate.getStaffId()); + // 将人员信息中的字典值替换 meterStaff.setEducation(dictService.getDictNameByCode(MeterDictEnum.EDUCATION,meterStaff.getEducation())); meterStaff.setTechnologyJob(dictService.getDictNameByCode(MeterDictEnum.TECHNOLOGY_JOB,meterStaff.getTechnologyJob())); meterStaff.setAdministrationJob(dictService.getDictNameByCode(MeterDictEnum.ADMINISTRATION_JOB,meterStaff.getAdministrationJob())); @@ -189,27 +194,44 @@ @Override public ReturnDTO dataCheck(List list) { QueryWrapper wrapper = new QueryWrapper<>(); + // 获取计量人员信息 List meterStaffs = meterStaffMapper.selectList(wrapper); Map> staffMap = meterStaffs.parallelStream().collect(Collectors.groupingBy(MeterStaff::getStaffNo)); AtomicBoolean checkResult = new AtomicBoolean(true); list.forEach(bean-> { StringBuilder result = new StringBuilder(); + // 校验数据中的人员编号是否存在 if (null == staffMap.get(bean.getStaffNo())) { result.append(BusinessExceptionEnum.STAFF_NOT_EXISTENCE.getMessage()); checkResult.set(false); } + // 校验数据中的日期格式是否正确 + if(isDateFormat(bean.getValidDate())){ + result.append(BusinessExceptionEnum.VALID_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getCertificateDate())){ + result.append(BusinessExceptionEnum.CERTIFICATE_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } bean.setResult(result.toString()); }); if(checkResult.get()){ + // 校验通过批量新增 list.forEach(bean->{ + // 获取id Long id= IdWorker.getId(); bean.setId(id); + // 获取人员编号对应的人员id bean.setStaffNo(String.valueOf(staffMap.get(bean.getStaffNo()).get(0).getId())); }); meterCertificateMapper.addCertificate(list); return ReturnUtil.success(); }else{ + // 校验不通过 + // 将处理后的数据导出成文件 MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterCertificateImport.class); + // 将文件存储到minio中返回文件id,供前台下载 List upload = minioUtil.upload(file); return ReturnUtil.failed(upload.get(0)); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java index 52501c9..f8b1353 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java @@ -35,6 +35,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @Service("MeterPriceService") @@ -75,8 +76,8 @@ @Override public ReturnDTO addMeterPrice(MeterPrice meterPrice) { - String maxNo = meterPriceMapper.getMaxNo(); - String priceNo = NumberGeneratorUtil.getContactNo("jg", Long.parseLong(maxNo)); + Long maxNo = meterPriceMapper.getMaxNo(); + String priceNo = NumberGeneratorUtil.getContactNo("jg", maxNo); meterPrice.setPriceNo(priceNo); if(meterPriceMapper.insert(meterPrice)>0){ return ReturnUtil.success(); @@ -119,6 +120,7 @@ @Override public ReturnDTO dataCheck(List list) { AtomicBoolean checkResult = new AtomicBoolean(true); + // 获取字典值 List checkTypeDict = dictService.findInDictByCode(MeterDictEnum.CHECK_TYPE); List priceTypeDict = dictService.findInDictByCode(MeterDictEnum.PRICE_TYPE); List priceItemDict = dictService.findInDictByCode(MeterDictEnum.PRICE_ITEM); @@ -131,6 +133,7 @@ Map> directorPermissionDictMap = directorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); list.forEach(bean->{ StringBuilder result = new StringBuilder(); + // 校验导入数据中的字典值是否存在 if(null == priceTypeDictMap.get(bean.getPriceType())){ result.append(BusinessExceptionEnum.PRICE_TYPE_NOT_EXISTENCE.getMessage()); checkResult.set(false); @@ -154,19 +157,29 @@ bean.setResult(result.toString()); }); if(checkResult.get()){ + // 校验通过 + AtomicLong maxNo = new AtomicLong(meterPriceMapper.getMaxNo()); list.forEach(bean->{ + String priceNo = NumberGeneratorUtil.getContactNo("jg", maxNo.get()); + maxNo.set(Long.parseLong(priceNo.substring(2))); Long id= IdWorker.getId(); bean.setId(id); + bean.setPriceNo(priceNo); + // 将数据的字典值替换 bean.setPriceType(priceTypeDictMap.get(bean.getPriceType()).get(0).getCode()); bean.setPriceItem(priceItemDictMap.get(bean.getPriceItem()).get(0).getCode()); bean.setCheckType(checkTypeDictMap.get(bean.getCheckType()).get(0).getCode()); bean.setOperatorDiscountPermission(operatorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); - bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); + bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getDirectorDiscountPermission()).get(0).getCode()); }); - meterPriceMapper.addmeterPriceList(list); + // 批量新增数据 + meterPriceMapper.addMeterPriceList(list); return ReturnUtil.success(); }else{ - MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterStaffImport.class); + // 校验不通过 + // 将处理后的数据导出成文件 + MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterPriceImport.class); + // 将文件存储到minio中返回文件id,供前台下载 List upload = minioUtil.upload(file); return ReturnUtil.failed(upload.get(0)); } 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 441a7c6..1d67297 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,5 +1,6 @@ package com.casic.missiles.service.Impl; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -30,6 +31,7 @@ import com.casic.missiles.utils.ExportUtils; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.NumberGeneratorUtil; +import liquibase.pro.packaged.E; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -37,12 +39,16 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -90,11 +96,14 @@ @Override public MeterStaff selectStaffInfo(IdDTO idDto) { + // 通过id获取对应的人员信息 MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(String.valueOf(idDto.getId())); + // 将人员信息中的字典值替换 meterStaff.setEducation(dictService.getDictNameByCode(MeterDictEnum.EDUCATION,meterStaff.getEducation())); meterStaff.setTechnologyJob(dictService.getDictNameByCode(MeterDictEnum.TECHNOLOGY_JOB,meterStaff.getTechnologyJob())); meterStaff.setAdministrationJob(dictService.getDictNameByCode(MeterDictEnum.ADMINISTRATION_JOB,meterStaff.getAdministrationJob())); meterStaff.setDeptId(deptMapper.selectById(meterStaff.getDeptId()).getFullName()); + // 通过人员信息的id获取人员对应的证书列表 QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("staff_id",idDto.getId()); List meterCertificates = meterCertificateMapper.selectList(wrapper); @@ -185,6 +194,7 @@ @Override public ReturnDTO dataCheck(List list) { AtomicBoolean checkResult = new AtomicBoolean(true); + // 获取字典值 List educationDict = dictService.findInDictByCode(MeterDictEnum.EDUCATION); List technologyJobDict = dictService.findInDictByCode(MeterDictEnum.TECHNOLOGY_JOB); List administrationJobDict = dictService.findInDictByCode(MeterDictEnum.ADMINISTRATION_JOB); @@ -195,6 +205,7 @@ Map> deptMap = deptList.stream().collect(Collectors.groupingBy(ZTreeNode::getName)); list.forEach(bean->{ StringBuilder result = new StringBuilder(); + // 校验导入数据中的字典值是否存在 if(null == educationDictMap.get(bean.getEducation())){ result.append(BusinessExceptionEnum.EDUCATION_NOT_EXISTENCE.getMessage()); checkResult.set(false); @@ -211,6 +222,7 @@ result.append(BusinessExceptionEnum.DEPT_NOT_EXISTENCE.getMessage()); checkResult.set(false); } + // 校验导入数据中的性别等信息是否正确 if(!(bean.getSex().equals("男")||bean.getSex().equals("女"))){ result.append(BusinessExceptionEnum.SEX_NOT_CORRECT.getMessage()); checkResult.set(false); @@ -227,17 +239,39 @@ result.append(BusinessExceptionEnum.TECHNOLOGY_EXAM_NOT_CORRECT.getMessage()); checkResult.set(false); } + // 校验导入数据中的日期格式是否规范 + if(isDateFormat(bean.getValidDate())){ + result.append(BusinessExceptionEnum.VALID_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getWorkDate())){ + result.append(BusinessExceptionEnum.WORK_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getBirthday())){ + result.append(BusinessExceptionEnum.BIRTHDAY_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getCertificateDate())){ + result.append(BusinessExceptionEnum.CERTIFICATE_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } bean.setResult(result.toString()); }); if(checkResult.get()){ + // 校验通过 AtomicLong maxNo = new AtomicLong(meterStaffMapper.getMaxNo()); list.forEach(bean->{ + // 生成编号 String staffNo = NumberGeneratorUtil.getContactNo("jlry", maxNo.get()); + maxNo.set(Long.parseLong(staffNo.substring(4))); bean.setStaffNo(staffNo); + // 获取id Long id= IdWorker.getId(); bean.setId(id); Long certificateId= IdWorker.getId(); bean.setCertificateId(certificateId); + // 将数据的字典值替换 bean.setEducation(educationDictMap.get(bean.getEducation()).get(0).getCode()); bean.setTechnologyJob(technologyJobDictMap.get(bean.getTechnologyJob()).get(0).getCode()); bean.setAdministrationJob(administrationJobDictMap.get(bean.getAdministrationJob()).get(0).getCode()); @@ -246,19 +280,35 @@ bean.setMainExaminer(bean.getMainExaminer().equals("是")?"0":"1"); bean.setSpecialOperator(bean.getSpecialOperator().equals("是")?"0":"1"); bean.setTechnologyExam(bean.getTechnologyExam().equals("是")?"0":"1"); - maxNo.getAndIncrement(); }); + // 批量新增数据 meterStaffMapper.addStaffList(list); meterCertificateMapper.addCertificateList(list); return ReturnUtil.success(); }else{ + // 校验不通过 + // 将处理后的数据导出成文件 MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterStaffImport.class); + // 将文件存储到minio中返回文件id,供前台下载 List upload = minioUtil.upload(file); return ReturnUtil.failed(upload.get(0)); } } + public static boolean isDateFormat(String date) { + if (StringUtils.isBlank(date)) { + return false; + } + try { + DateUtil.parseDate(date); + return false; + }catch (Exception e){ + return true; + } + } + + private List supplementList(List meterStaffList){ meterStaffList.forEach(bean->{ bean.setEducation(dictService.getDictNameByCode(MeterDictEnum.EDUCATION,bean.getEducation())); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterWorkbenchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterWorkbenchServiceImpl.java index b606644..2743ab3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterWorkbenchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterWorkbenchServiceImpl.java @@ -9,14 +9,13 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; +import com.casic.missiles.enums.ExamResultEnum; import com.casic.missiles.enums.MeterRoleTypeEnum; -import com.casic.missiles.mapper.MeterCertificateMapper; -import com.casic.missiles.mapper.MeterStaffMapper; -import com.casic.missiles.mapper.UserInfoMapper; +import com.casic.missiles.mapper.*; import com.casic.missiles.model.MeterCertificate; import com.casic.missiles.model.MeterStaff; -import com.casic.missiles.model.UserInfo; +import com.casic.missiles.model.MeterTrainStaff; import com.casic.missiles.modular.system.dao.RuRelationMapper; import com.casic.missiles.modular.system.dao.UserMapper; import com.casic.missiles.modular.system.model.RuRelation; @@ -28,8 +27,8 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; -import java.util.HashMap; import java.util.List; +import java.util.Map; @Service("MeterWorkbenchService") public class MeterWorkbenchServiceImpl implements MeterWorkbenchService { @@ -46,27 +45,24 @@ @Resource private RuRelationMapper ruRelationMapper; + @Resource + private MeterTrainPlanMapper trainPlanMapper; + + @Resource + private MeterTrainStaffMapper meterTrainStaffMapper; + @Override public ReturnDTO queryStaffCertificate(MeterWorkbenchRequest workbenchRequest) { - List resList = new ArrayList<>(); + List resList = new ArrayList<>(); QueryWrapper staffWrapper = new QueryWrapper<>(); QueryWrapper certificateWrapper = new QueryWrapper<>(); - QueryWrapper userWrapper = new QueryWrapper<>(); - // 通过当前登录账号获取userId 6.7.2.0 - userWrapper.eq("account",workbenchRequest.getAccount()); - User user = userMapper.selectOne(userWrapper); - // 通过userID和计量部门负责人角色id判断当前登录用户是否为负责人 - QueryWrapper ruRelationWrapper = new QueryWrapper<>(); - ruRelationWrapper.eq("userid",user.getId()); - ruRelationWrapper.eq("roleid", MeterRoleTypeEnum.METER_DEPT_ADMIN.getCode()); - RuRelation ruRelation = ruRelationMapper.selectOne(ruRelationWrapper); - if(ObjectUtil.isNotEmpty(ruRelation)){ + if(isMeterAdmin(workbenchRequest)){ // 当前用户是计量部门负责人查询所有证书信息 List certificateList = meterCertificateMapper.queryCertificateList(new MeterStaffRequest()); certificateList.forEach(bean->{ - StaffCertificateResponse certificateResponse = new StaffCertificateResponse(); + MeterWorkbenchResponse certificateResponse = new MeterWorkbenchResponse(); BeanUtils.copyProperties(bean, certificateResponse); resList.add(certificateResponse); }); @@ -80,7 +76,7 @@ certificateWrapper.orderByAsc("create_time"); List certificateList = meterCertificateMapper.selectList(certificateWrapper); certificateList.forEach(bean->{ - StaffCertificateResponse certificateResponse = new StaffCertificateResponse(); + MeterWorkbenchResponse certificateResponse = new MeterWorkbenchResponse(); BeanUtils.copyProperties(bean, certificateResponse); // 判断证书过期时间于当前时间差多少天 int days = (int) ((DateUtil.parseDate(bean.getValidDate()).getTime() - DateUtil.parseDate(DateUtil.formatDate(new Date())).getTime()) / (1000*3600*24)); @@ -95,7 +91,73 @@ @Override public ReturnDTO meterStaffStatistic() { - List resList = meterStaffMapper.meterStaffStatistic(); + List resList = meterStaffMapper.meterStaffStatistic(); return ReturnUtil.success(resList); } + + @Override + public ReturnDTO meterTrainStatistic() { + List resList = trainPlanMapper.meterTrainStatistic(); + return ReturnUtil.success(resList); + } + + @Override + public ReturnDTO meterTrainLogStatistic(MeterWorkbenchRequest workbenchRequest) { + MeterWorkbenchResponse result = new MeterWorkbenchResponse(); + if(isMeterAdmin(workbenchRequest)){ + // 当前用户是计量部门负责人查询总的培训考核信息 + QueryWrapper trainLogWrapper = new QueryWrapper<>(); + // 查询考核总人次 + Long trainCount = meterTrainStaffMapper.selectCount(trainLogWrapper); + result.setTrainCount(trainCount); + // 查询考核合格人次 + trainLogWrapper.eq("exam_result", ExamResultEnum.QUALIFIED.getValue()); + Long qualifiedCount = meterTrainStaffMapper.selectCount(trainLogWrapper); + result.setQualifiedCount(qualifiedCount); + result.setQualified(qualifiedCount); + // 考核不合格人次=考核总人次-合格人次 + result.setNotQualified(trainCount-qualifiedCount); + }else{ + // 当前用户是不是计量部门负责人查询该人员对应的的培训考核信息 + QueryWrapper staffWrapper = new QueryWrapper<>(); + // 通过登录账号获取计量人员信息 + staffWrapper.eq("account",workbenchRequest.getAccount()); + MeterStaff meterStaff = meterStaffMapper.selectOne(staffWrapper); + QueryWrapper trainLogWrapper = new QueryWrapper<>(); + // 查询考核总人次 + result.setTrainCount(meterTrainStaffMapper.selectCount(trainLogWrapper)); + // 查询考核合格总人次 + trainLogWrapper.eq("exam_result", ExamResultEnum.QUALIFIED.getValue()); + result.setQualifiedCount(meterTrainStaffMapper.selectCount(trainLogWrapper)); + // 查询当前用户对应的考核结果信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("staff_id", meterStaff.getId()); + queryWrapper.select("exam_result as 'result',count(1) AS 'count'") + .groupBy("exam_result"); + List> mapList = meterTrainStaffMapper.selectMaps(queryWrapper); + mapList.forEach(bean->{ + // 将查询到的信息赋值给返回的对象中 + if(bean.get("result").equals(ExamResultEnum.QUALIFIED.getValue())){ + result.setQualified(Long.parseLong(bean.get("count").toString())); + }else{ + result.setNotQualified(Long.parseLong(bean.get("count").toString())); + } + }); + } + return ReturnUtil.success(result); + } + + + private boolean isMeterAdmin(MeterWorkbenchRequest workbenchRequest){ + QueryWrapper userWrapper = new QueryWrapper<>(); + // 通过当前登录账号获取userId + userWrapper.eq("account",workbenchRequest.getAccount()); + User user = userMapper.selectOne(userWrapper); + // 通过userID和计量部门负责人角色id判断当前登录用户是否为负责人 + QueryWrapper ruRelationWrapper = new QueryWrapper<>(); + ruRelationWrapper.eq("userid",user.getId()); + ruRelationWrapper.eq("roleid", MeterRoleTypeEnum.METER_DEPT_ADMIN.getCode()); + RuRelation ruRelation = ruRelationMapper.selectOne(ruRelationWrapper); + return ObjectUtil.isNotEmpty(ruRelation); + } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java index def918d..74afa67 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/MeterWorkbenchController.java @@ -3,6 +3,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.service.MeterWorkbenchService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +26,7 @@ @ApiOperation("我的证书列表查询") @PostMapping("/queryStaffCertificate") @ResponseBody - public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { + public ReturnDTO queryStaffCertificate(@RequestBody MeterWorkbenchRequest workbenchRequest) { return meterWorkbenchService.queryStaffCertificate(workbenchRequest); } @@ -36,8 +37,30 @@ @ApiOperation("计量人员统计") @PostMapping("/meterStaffStatistic") @ResponseBody - public ReturnDTO meterStaffStatistic() { + public ReturnDTO meterStaffStatistic() { return meterWorkbenchService.meterStaffStatistic(); } + /** + * 培训计划统计 + * @return + */ + @ApiOperation("培训计划统计") + @PostMapping("/meterTrainStatistic") + @ResponseBody + public ReturnDTO meterTrainStatistic() { + return meterWorkbenchService.meterTrainStatistic(); + } + + /** + * 培训考核统计 + * @return + */ + @ApiOperation("培训考核统计") + @PostMapping("/meterTrainLogStatistic") + @ResponseBody + public ReturnDTO meterTrainLogStatistic(@RequestBody MeterWorkbenchRequest workbenchRequest) { + return meterWorkbenchService.meterTrainLogStatistic(workbenchRequest); + } + } diff --git a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java index ef7476f..63b2cbb 100644 --- a/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java +++ b/casic-metering-app/src/main/java/com/casic/missiles/CasicAppApplication.java @@ -5,6 +5,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; /** @@ -15,6 +16,7 @@ @EnableTransactionManagement(proxyTargetClass = true) @EnableAsync @Slf4j +@EnableScheduling public class CasicAppApplication { public static void main(String[] args) { SpringApplication.run(CasicAppApplication.class, args); diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e0803e7..1207389 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -22,6 +22,10 @@ MAIN_EXAMINER_NOT_CORRECT(2300, "是否主考人填写有误(是,否);"), SPECIAL_OPERATOR_NOT_CORRECT(2300, "是否特操人填写有误(是,否);"), TECHNOLOGY_EXAM_NOT_CORRECT(2300, "是否技术考核填写有误(是,否);"), + WORK_DATE_NOT_CORRECT(2300, "从事日期格式错误(2022-15-05);"), + BIRTHDAY_NOT_CORRECT(2300, "生日格式错误(2022-15-05);"), + CERTIFICATE_DATE_NOT_CORRECT(2300, "发证日期格式错误(2022-15-05);"), + VALID_DATE_NOT_CORRECT(2300, "有效日期格式错误(2022-15-05);"), STAFF_NOT_EXISTENCE(2300, "人员编号不存在"), CHECK_TYPE_NOT_EXISTENCE(2300, "校验类型不存在;"), PRICE_TYPE_NOT_EXISTENCE(2300, "价格类别不存在;"), diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java new file mode 100644 index 0000000..9152600 --- /dev/null +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExamResultEnum.java @@ -0,0 +1,27 @@ +package com.casic.missiles.enums; + + +/** + * @Description: 考核状态枚举类 + */ +public enum ExamResultEnum { + + QUALIFIED("1", "合格"), + NOT_QUALIFIED("2", "不合格"); + + private String code; + private String value; + + ExamResultEnum(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java index cd3664b..5905612 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterPriceMapper.java @@ -8,7 +8,7 @@ public interface MeterPriceMapper extends BaseMapper { - String getMaxNo(); + Long getMaxNo(); - void addmeterPriceList(List list); + void addMeterPriceList(List list); } 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 62ed945..88e49fc 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 @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.dto.meter.MeterStaffImport; import com.casic.missiles.dto.meter.MeterStaffRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.model.MeterStaff; import org.apache.ibatis.annotations.Param; @@ -29,5 +29,5 @@ void addStaffList(@Param("list") List list); - List meterStaffStatistic(); + List meterStaffStatistic(); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java index 960717b..45dc44f 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/MeterTrainPlanMapper.java @@ -2,9 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; import com.casic.missiles.dto.meter.TrainPlanDetailResponse; import com.casic.missiles.model.MeterTrainPlan; +import java.util.List; + /** *

* 计量管理-培训管理-培训计划表 Mapper 接口 @@ -18,4 +21,6 @@ TrainPlanDetailResponse selectTrainPlanById(Long id); Long selectMaxTrainPlanNo(); + + List meterTrainStatistic(); } diff --git a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml index 383646a..a001ffe 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterCertificateMapper.xml @@ -9,7 +9,7 @@ (#{bean.certificateId}, #{bean.id}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) @@ -20,7 +20,7 @@ (#{bean.id}, #{bean.staffNo}, #{bean.certificateNo}, #{bean.certificateName}, STR_TO_DATE(#{bean.certificateDate},'%Y-%m-%d'), #{bean.certificateCompany}, - STR_TO_DATE(#{bean.validDate},'%Y-%m-%d'), + STR_TO_DATE(#{bean.validDate},'%Y-%m-%d') ) diff --git a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml index f930991..6ce3ee3 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterPriceMapper.xml @@ -2,11 +2,11 @@ - SELECT IFNULL(max(RIGHT(price_no, 12)), 0) from meter_price - + INSERT INTO meter_price ( `id`, `price_no`, diff --git a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml index 81101aa..2121b5d 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterStaffMapper.xml @@ -94,7 +94,7 @@ meter_staff t where t.id =#{id} - SELECT DATE_FORMAT( work_date, '%Y-%m' ) AS `date`, COUNT( 1 ) AS `count` diff --git a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml index b4d061c..978a2fb 100644 --- a/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/MeterTrainPlanMapper.xml @@ -38,4 +38,18 @@ + + diff --git a/casic-metering-job/pom.xml b/casic-metering-job/pom.xml index 675b2bd..fd4e367 100644 --- a/casic-metering-job/pom.xml +++ b/casic-metering-job/pom.xml @@ -58,6 +58,12 @@ xxl-job-core ${xxl-job.version} + + com.casic + casic-metering-service + 2.0.0 + compile + \ No newline at end of file diff --git a/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java new file mode 100644 index 0000000..a2c93ed --- /dev/null +++ b/casic-metering-job/src/main/java/com/casic/missiles/job/handler/RegularExpirationReminder.java @@ -0,0 +1,28 @@ +package com.casic.missiles.job.handler; + + +import com.casic.missiles.service.MeterCertificateService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; + +import static com.xxl.job.core.biz.model.ReturnT.SUCCESS; + +@Slf4j +@Component +@RequiredArgsConstructor +public class RegularExpirationReminder { + + @Resource + private MeterCertificateService meterCertificateService; + + @XxlJob(value = "regularExpirationReminder") + public ReturnT execute() throws Exception { + meterCertificateService.regularExpirationReminder(); + return SUCCESS; + } +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java index 3e28de2..8e3852f 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterPriceImport.java @@ -61,26 +61,26 @@ @TableField("price_limit") @ExcelProperty(value = "业务员折扣权限",order = 7) - @ApiModelProperty(value = "限制范围", dataType = "String") + @ApiModelProperty(value = "业务员折扣权限", dataType = "String") private String priceLimit; - @TableField("price_description") - @ExcelProperty(value = "说明",order = 8) - @ApiModelProperty(value = "说明", dataType = "String") - private String priceDescription; - @TableField("operator_discount_permission") - @ExcelProperty(value = "业务员折扣权限",order = 9) + @ExcelProperty(value = "业务员折扣权限",order = 8) @ApiModelProperty(value = "业务员折扣权限-字典value", dataType = "String") private String operatorDiscountPermission; @TableField("director_discount_permission") - @ExcelProperty(value = "负责人折扣权限",order = 10) + @ExcelProperty(value = "负责人折扣权限",order = 9) @ApiModelProperty(value = "负责人折扣权限-字典value", dataType = "String") private String directorDiscountPermission; + @TableField("price_description") + @ExcelProperty(value = "说明",order = 10) + @ApiModelProperty(value = "说明", dataType = "String") + private String priceDescription; + @TableField("remark") - @ExcelProperty(value = "负责人折扣权限",order = 11) + @ExcelProperty(value = "备注",order = 11) @ApiModelProperty(value = "备注", dataType = "String") private String remark; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java new file mode 100644 index 0000000..a4b8b88 --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/MeterWorkbenchResponse.java @@ -0,0 +1,78 @@ +package com.casic.missiles.dto.meter; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + *工作台响应实体 + */ + +@ApiModel +@Data +public class MeterWorkbenchResponse { + + /** + * 证书名称 + */ + @ApiModelProperty(value = "证书名称", dataType = "String") + private String certificateName; + + + /** + * 人员名称 + */ + @ApiModelProperty(value = "人员名称", dataType = "String") + private String name; + + /** + * 到期时间 + */ + @ApiModelProperty(value = "到期时间", dataType = "String") + private String validDate; + + /** + * 最近到期时间 + */ + @ApiModelProperty(value = "最近到期时间", dataType = "Integer") + private Integer lastValidDate; + + /** + * 时间 + */ + @ApiModelProperty(value = "时间", dataType = "String") + private String date; + + /** + * 人数 + */ + @ApiModelProperty(value = "人数", dataType = "String") + private String count; + + /** + * 考核总人次 + */ + @ApiModelProperty(value = "考核总人次", dataType = "Long") + private Long trainCount; + + /** + * 合格总人次 + */ + @ApiModelProperty(value = "合格总人次", dataType = "Long") + private Long qualifiedCount; + + /** + * 合格 + */ + @ApiModelProperty(value = "合格", dataType = "Long") + private Long qualified; + + /** + * 不合格 + */ + @ApiModelProperty(value = "不合格", dataType = "Long") + private Long notQualified; + + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java deleted file mode 100644 index cbaefd9..0000000 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/meter/StaffCertificateResponse.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.casic.missiles.dto.meter; - -import com.alibaba.excel.annotation.ExcelProperty; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - *工作台我的证书响应实体 - */ - -@ApiModel -@Data -public class StaffCertificateResponse { - - /** - * 证书名称 - */ - @ApiModelProperty(value = "证书名称", dataType = "String") - private String certificateName; - - - /** - * 人员名称 - */ - @ApiModelProperty(value = "人员名称", dataType = "String") - private String name; - - /** - * 到期时间 - */ - @ApiModelProperty(value = "到期时间", dataType = "String") - private String validDate; - - /** - * 最近到期时间 - */ - @ApiModelProperty(value = "最近到期时间", dataType = "Integer") - private Integer lastValidDate; - - /** - * 时间 - */ - @ApiModelProperty(value = "时间", dataType = "String") - private String date; - - /** - * 人数 - */ - @ApiModelProperty(value = "人数", dataType = "String") - private String count; - - -} 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 index fe68adb..191fe5c 100644 --- 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 @@ -40,6 +40,8 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.stream.Collectors; +import static com.casic.missiles.service.Impl.MeterStaffServiceImpl.isDateFormat; + @Service("MeterCertificateService") @Slf4j public class MeterCertificateServiceImpl extends ServiceImpl implements MeterCertificateService { @@ -86,8 +88,11 @@ @Override public ReturnDTO queryStaffCertificateInfo(IdDTO idDto) { + // 通过id获取证书信息 MeterCertificate meterCertificate = meterCertificateMapper.selectById(idDto.getId()); + // 通过证书信息中的staffId获取对应的人员信息 MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(meterCertificate.getStaffId()); + // 将人员信息中的字典值替换 meterStaff.setEducation(dictService.getDictNameByCode(MeterDictEnum.EDUCATION,meterStaff.getEducation())); meterStaff.setTechnologyJob(dictService.getDictNameByCode(MeterDictEnum.TECHNOLOGY_JOB,meterStaff.getTechnologyJob())); meterStaff.setAdministrationJob(dictService.getDictNameByCode(MeterDictEnum.ADMINISTRATION_JOB,meterStaff.getAdministrationJob())); @@ -189,27 +194,44 @@ @Override public ReturnDTO dataCheck(List list) { QueryWrapper wrapper = new QueryWrapper<>(); + // 获取计量人员信息 List meterStaffs = meterStaffMapper.selectList(wrapper); Map> staffMap = meterStaffs.parallelStream().collect(Collectors.groupingBy(MeterStaff::getStaffNo)); AtomicBoolean checkResult = new AtomicBoolean(true); list.forEach(bean-> { StringBuilder result = new StringBuilder(); + // 校验数据中的人员编号是否存在 if (null == staffMap.get(bean.getStaffNo())) { result.append(BusinessExceptionEnum.STAFF_NOT_EXISTENCE.getMessage()); checkResult.set(false); } + // 校验数据中的日期格式是否正确 + if(isDateFormat(bean.getValidDate())){ + result.append(BusinessExceptionEnum.VALID_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getCertificateDate())){ + result.append(BusinessExceptionEnum.CERTIFICATE_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } bean.setResult(result.toString()); }); if(checkResult.get()){ + // 校验通过批量新增 list.forEach(bean->{ + // 获取id Long id= IdWorker.getId(); bean.setId(id); + // 获取人员编号对应的人员id bean.setStaffNo(String.valueOf(staffMap.get(bean.getStaffNo()).get(0).getId())); }); meterCertificateMapper.addCertificate(list); return ReturnUtil.success(); }else{ + // 校验不通过 + // 将处理后的数据导出成文件 MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterCertificateImport.class); + // 将文件存储到minio中返回文件id,供前台下载 List upload = minioUtil.upload(file); return ReturnUtil.failed(upload.get(0)); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java index 52501c9..f8b1353 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterPriceServiceImpl.java @@ -35,6 +35,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @Service("MeterPriceService") @@ -75,8 +76,8 @@ @Override public ReturnDTO addMeterPrice(MeterPrice meterPrice) { - String maxNo = meterPriceMapper.getMaxNo(); - String priceNo = NumberGeneratorUtil.getContactNo("jg", Long.parseLong(maxNo)); + Long maxNo = meterPriceMapper.getMaxNo(); + String priceNo = NumberGeneratorUtil.getContactNo("jg", maxNo); meterPrice.setPriceNo(priceNo); if(meterPriceMapper.insert(meterPrice)>0){ return ReturnUtil.success(); @@ -119,6 +120,7 @@ @Override public ReturnDTO dataCheck(List list) { AtomicBoolean checkResult = new AtomicBoolean(true); + // 获取字典值 List checkTypeDict = dictService.findInDictByCode(MeterDictEnum.CHECK_TYPE); List priceTypeDict = dictService.findInDictByCode(MeterDictEnum.PRICE_TYPE); List priceItemDict = dictService.findInDictByCode(MeterDictEnum.PRICE_ITEM); @@ -131,6 +133,7 @@ Map> directorPermissionDictMap = directorPermissionDict.stream().collect(Collectors.groupingBy(Dict::getName)); list.forEach(bean->{ StringBuilder result = new StringBuilder(); + // 校验导入数据中的字典值是否存在 if(null == priceTypeDictMap.get(bean.getPriceType())){ result.append(BusinessExceptionEnum.PRICE_TYPE_NOT_EXISTENCE.getMessage()); checkResult.set(false); @@ -154,19 +157,29 @@ bean.setResult(result.toString()); }); if(checkResult.get()){ + // 校验通过 + AtomicLong maxNo = new AtomicLong(meterPriceMapper.getMaxNo()); list.forEach(bean->{ + String priceNo = NumberGeneratorUtil.getContactNo("jg", maxNo.get()); + maxNo.set(Long.parseLong(priceNo.substring(2))); Long id= IdWorker.getId(); bean.setId(id); + bean.setPriceNo(priceNo); + // 将数据的字典值替换 bean.setPriceType(priceTypeDictMap.get(bean.getPriceType()).get(0).getCode()); bean.setPriceItem(priceItemDictMap.get(bean.getPriceItem()).get(0).getCode()); bean.setCheckType(checkTypeDictMap.get(bean.getCheckType()).get(0).getCode()); bean.setOperatorDiscountPermission(operatorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); - bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getOperatorDiscountPermission()).get(0).getCode()); + bean.setDirectorDiscountPermission(directorPermissionDictMap.get(bean.getDirectorDiscountPermission()).get(0).getCode()); }); - meterPriceMapper.addmeterPriceList(list); + // 批量新增数据 + meterPriceMapper.addMeterPriceList(list); return ReturnUtil.success(); }else{ - MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterStaffImport.class); + // 校验不通过 + // 将处理后的数据导出成文件 + MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterPriceImport.class); + // 将文件存储到minio中返回文件id,供前台下载 List upload = minioUtil.upload(file); return ReturnUtil.failed(upload.get(0)); } 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 441a7c6..1d67297 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,5 +1,6 @@ package com.casic.missiles.service.Impl; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; @@ -30,6 +31,7 @@ import com.casic.missiles.utils.ExportUtils; import com.casic.missiles.utils.MinioUtil; import com.casic.missiles.utils.NumberGeneratorUtil; +import liquibase.pro.packaged.E; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -37,12 +39,16 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -90,11 +96,14 @@ @Override public MeterStaff selectStaffInfo(IdDTO idDto) { + // 通过id获取对应的人员信息 MeterStaff meterStaff = meterStaffMapper.selectStaffInfo(String.valueOf(idDto.getId())); + // 将人员信息中的字典值替换 meterStaff.setEducation(dictService.getDictNameByCode(MeterDictEnum.EDUCATION,meterStaff.getEducation())); meterStaff.setTechnologyJob(dictService.getDictNameByCode(MeterDictEnum.TECHNOLOGY_JOB,meterStaff.getTechnologyJob())); meterStaff.setAdministrationJob(dictService.getDictNameByCode(MeterDictEnum.ADMINISTRATION_JOB,meterStaff.getAdministrationJob())); meterStaff.setDeptId(deptMapper.selectById(meterStaff.getDeptId()).getFullName()); + // 通过人员信息的id获取人员对应的证书列表 QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("staff_id",idDto.getId()); List meterCertificates = meterCertificateMapper.selectList(wrapper); @@ -185,6 +194,7 @@ @Override public ReturnDTO dataCheck(List list) { AtomicBoolean checkResult = new AtomicBoolean(true); + // 获取字典值 List educationDict = dictService.findInDictByCode(MeterDictEnum.EDUCATION); List technologyJobDict = dictService.findInDictByCode(MeterDictEnum.TECHNOLOGY_JOB); List administrationJobDict = dictService.findInDictByCode(MeterDictEnum.ADMINISTRATION_JOB); @@ -195,6 +205,7 @@ Map> deptMap = deptList.stream().collect(Collectors.groupingBy(ZTreeNode::getName)); list.forEach(bean->{ StringBuilder result = new StringBuilder(); + // 校验导入数据中的字典值是否存在 if(null == educationDictMap.get(bean.getEducation())){ result.append(BusinessExceptionEnum.EDUCATION_NOT_EXISTENCE.getMessage()); checkResult.set(false); @@ -211,6 +222,7 @@ result.append(BusinessExceptionEnum.DEPT_NOT_EXISTENCE.getMessage()); checkResult.set(false); } + // 校验导入数据中的性别等信息是否正确 if(!(bean.getSex().equals("男")||bean.getSex().equals("女"))){ result.append(BusinessExceptionEnum.SEX_NOT_CORRECT.getMessage()); checkResult.set(false); @@ -227,17 +239,39 @@ result.append(BusinessExceptionEnum.TECHNOLOGY_EXAM_NOT_CORRECT.getMessage()); checkResult.set(false); } + // 校验导入数据中的日期格式是否规范 + if(isDateFormat(bean.getValidDate())){ + result.append(BusinessExceptionEnum.VALID_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getWorkDate())){ + result.append(BusinessExceptionEnum.WORK_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getBirthday())){ + result.append(BusinessExceptionEnum.BIRTHDAY_NOT_CORRECT.getMessage()); + checkResult.set(false); + } + if(isDateFormat(bean.getCertificateDate())){ + result.append(BusinessExceptionEnum.CERTIFICATE_DATE_NOT_CORRECT.getMessage()); + checkResult.set(false); + } bean.setResult(result.toString()); }); if(checkResult.get()){ + // 校验通过 AtomicLong maxNo = new AtomicLong(meterStaffMapper.getMaxNo()); list.forEach(bean->{ + // 生成编号 String staffNo = NumberGeneratorUtil.getContactNo("jlry", maxNo.get()); + maxNo.set(Long.parseLong(staffNo.substring(4))); bean.setStaffNo(staffNo); + // 获取id Long id= IdWorker.getId(); bean.setId(id); Long certificateId= IdWorker.getId(); bean.setCertificateId(certificateId); + // 将数据的字典值替换 bean.setEducation(educationDictMap.get(bean.getEducation()).get(0).getCode()); bean.setTechnologyJob(technologyJobDictMap.get(bean.getTechnologyJob()).get(0).getCode()); bean.setAdministrationJob(administrationJobDictMap.get(bean.getAdministrationJob()).get(0).getCode()); @@ -246,19 +280,35 @@ bean.setMainExaminer(bean.getMainExaminer().equals("是")?"0":"1"); bean.setSpecialOperator(bean.getSpecialOperator().equals("是")?"0":"1"); bean.setTechnologyExam(bean.getTechnologyExam().equals("是")?"0":"1"); - maxNo.getAndIncrement(); }); + // 批量新增数据 meterStaffMapper.addStaffList(list); meterCertificateMapper.addCertificateList(list); return ReturnUtil.success(); }else{ + // 校验不通过 + // 将处理后的数据导出成文件 MultipartFile[] file = ExportUtils.exportMultipartFile(list, "checkResult", MeterStaffImport.class); + // 将文件存储到minio中返回文件id,供前台下载 List upload = minioUtil.upload(file); return ReturnUtil.failed(upload.get(0)); } } + public static boolean isDateFormat(String date) { + if (StringUtils.isBlank(date)) { + return false; + } + try { + DateUtil.parseDate(date); + return false; + }catch (Exception e){ + return true; + } + } + + private List supplementList(List meterStaffList){ meterStaffList.forEach(bean->{ bean.setEducation(dictService.getDictNameByCode(MeterDictEnum.EDUCATION,bean.getEducation())); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterWorkbenchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterWorkbenchServiceImpl.java index b606644..2743ab3 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterWorkbenchServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/MeterWorkbenchServiceImpl.java @@ -9,14 +9,13 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.meter.MeterStaffRequest; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; -import com.casic.missiles.dto.meter.StaffCertificateResponse; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; +import com.casic.missiles.enums.ExamResultEnum; import com.casic.missiles.enums.MeterRoleTypeEnum; -import com.casic.missiles.mapper.MeterCertificateMapper; -import com.casic.missiles.mapper.MeterStaffMapper; -import com.casic.missiles.mapper.UserInfoMapper; +import com.casic.missiles.mapper.*; import com.casic.missiles.model.MeterCertificate; import com.casic.missiles.model.MeterStaff; -import com.casic.missiles.model.UserInfo; +import com.casic.missiles.model.MeterTrainStaff; import com.casic.missiles.modular.system.dao.RuRelationMapper; import com.casic.missiles.modular.system.dao.UserMapper; import com.casic.missiles.modular.system.model.RuRelation; @@ -28,8 +27,8 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; -import java.util.HashMap; import java.util.List; +import java.util.Map; @Service("MeterWorkbenchService") public class MeterWorkbenchServiceImpl implements MeterWorkbenchService { @@ -46,27 +45,24 @@ @Resource private RuRelationMapper ruRelationMapper; + @Resource + private MeterTrainPlanMapper trainPlanMapper; + + @Resource + private MeterTrainStaffMapper meterTrainStaffMapper; + @Override public ReturnDTO queryStaffCertificate(MeterWorkbenchRequest workbenchRequest) { - List resList = new ArrayList<>(); + List resList = new ArrayList<>(); QueryWrapper staffWrapper = new QueryWrapper<>(); QueryWrapper certificateWrapper = new QueryWrapper<>(); - QueryWrapper userWrapper = new QueryWrapper<>(); - // 通过当前登录账号获取userId 6.7.2.0 - userWrapper.eq("account",workbenchRequest.getAccount()); - User user = userMapper.selectOne(userWrapper); - // 通过userID和计量部门负责人角色id判断当前登录用户是否为负责人 - QueryWrapper ruRelationWrapper = new QueryWrapper<>(); - ruRelationWrapper.eq("userid",user.getId()); - ruRelationWrapper.eq("roleid", MeterRoleTypeEnum.METER_DEPT_ADMIN.getCode()); - RuRelation ruRelation = ruRelationMapper.selectOne(ruRelationWrapper); - if(ObjectUtil.isNotEmpty(ruRelation)){ + if(isMeterAdmin(workbenchRequest)){ // 当前用户是计量部门负责人查询所有证书信息 List certificateList = meterCertificateMapper.queryCertificateList(new MeterStaffRequest()); certificateList.forEach(bean->{ - StaffCertificateResponse certificateResponse = new StaffCertificateResponse(); + MeterWorkbenchResponse certificateResponse = new MeterWorkbenchResponse(); BeanUtils.copyProperties(bean, certificateResponse); resList.add(certificateResponse); }); @@ -80,7 +76,7 @@ certificateWrapper.orderByAsc("create_time"); List certificateList = meterCertificateMapper.selectList(certificateWrapper); certificateList.forEach(bean->{ - StaffCertificateResponse certificateResponse = new StaffCertificateResponse(); + MeterWorkbenchResponse certificateResponse = new MeterWorkbenchResponse(); BeanUtils.copyProperties(bean, certificateResponse); // 判断证书过期时间于当前时间差多少天 int days = (int) ((DateUtil.parseDate(bean.getValidDate()).getTime() - DateUtil.parseDate(DateUtil.formatDate(new Date())).getTime()) / (1000*3600*24)); @@ -95,7 +91,73 @@ @Override public ReturnDTO meterStaffStatistic() { - List resList = meterStaffMapper.meterStaffStatistic(); + List resList = meterStaffMapper.meterStaffStatistic(); return ReturnUtil.success(resList); } + + @Override + public ReturnDTO meterTrainStatistic() { + List resList = trainPlanMapper.meterTrainStatistic(); + return ReturnUtil.success(resList); + } + + @Override + public ReturnDTO meterTrainLogStatistic(MeterWorkbenchRequest workbenchRequest) { + MeterWorkbenchResponse result = new MeterWorkbenchResponse(); + if(isMeterAdmin(workbenchRequest)){ + // 当前用户是计量部门负责人查询总的培训考核信息 + QueryWrapper trainLogWrapper = new QueryWrapper<>(); + // 查询考核总人次 + Long trainCount = meterTrainStaffMapper.selectCount(trainLogWrapper); + result.setTrainCount(trainCount); + // 查询考核合格人次 + trainLogWrapper.eq("exam_result", ExamResultEnum.QUALIFIED.getValue()); + Long qualifiedCount = meterTrainStaffMapper.selectCount(trainLogWrapper); + result.setQualifiedCount(qualifiedCount); + result.setQualified(qualifiedCount); + // 考核不合格人次=考核总人次-合格人次 + result.setNotQualified(trainCount-qualifiedCount); + }else{ + // 当前用户是不是计量部门负责人查询该人员对应的的培训考核信息 + QueryWrapper staffWrapper = new QueryWrapper<>(); + // 通过登录账号获取计量人员信息 + staffWrapper.eq("account",workbenchRequest.getAccount()); + MeterStaff meterStaff = meterStaffMapper.selectOne(staffWrapper); + QueryWrapper trainLogWrapper = new QueryWrapper<>(); + // 查询考核总人次 + result.setTrainCount(meterTrainStaffMapper.selectCount(trainLogWrapper)); + // 查询考核合格总人次 + trainLogWrapper.eq("exam_result", ExamResultEnum.QUALIFIED.getValue()); + result.setQualifiedCount(meterTrainStaffMapper.selectCount(trainLogWrapper)); + // 查询当前用户对应的考核结果信息 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("staff_id", meterStaff.getId()); + queryWrapper.select("exam_result as 'result',count(1) AS 'count'") + .groupBy("exam_result"); + List> mapList = meterTrainStaffMapper.selectMaps(queryWrapper); + mapList.forEach(bean->{ + // 将查询到的信息赋值给返回的对象中 + if(bean.get("result").equals(ExamResultEnum.QUALIFIED.getValue())){ + result.setQualified(Long.parseLong(bean.get("count").toString())); + }else{ + result.setNotQualified(Long.parseLong(bean.get("count").toString())); + } + }); + } + return ReturnUtil.success(result); + } + + + private boolean isMeterAdmin(MeterWorkbenchRequest workbenchRequest){ + QueryWrapper userWrapper = new QueryWrapper<>(); + // 通过当前登录账号获取userId + userWrapper.eq("account",workbenchRequest.getAccount()); + User user = userMapper.selectOne(userWrapper); + // 通过userID和计量部门负责人角色id判断当前登录用户是否为负责人 + QueryWrapper ruRelationWrapper = new QueryWrapper<>(); + ruRelationWrapper.eq("userid",user.getId()); + ruRelationWrapper.eq("roleid", MeterRoleTypeEnum.METER_DEPT_ADMIN.getCode()); + RuRelation ruRelation = ruRelationMapper.selectOne(ruRelationWrapper); + return ObjectUtil.isNotEmpty(ruRelation); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/MeterWorkbenchService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterWorkbenchService.java index c04b03a..be6bb0c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/MeterWorkbenchService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/MeterWorkbenchService.java @@ -2,10 +2,15 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.meter.MeterWorkbenchRequest; +import com.casic.missiles.dto.meter.MeterWorkbenchResponse; public interface MeterWorkbenchService { - ReturnDTO queryStaffCertificate(MeterWorkbenchRequest workbenchRequest); + ReturnDTO queryStaffCertificate(MeterWorkbenchRequest workbenchRequest); - ReturnDTO meterStaffStatistic(); + ReturnDTO meterStaffStatistic(); + + ReturnDTO meterTrainStatistic(); + + ReturnDTO meterTrainLogStatistic(MeterWorkbenchRequest workbenchRequest); }