Ver Fonte

Merge branch 'feature-wcz' of lift-manager/lift-server into develop

wucizhong há 5 anos atrás
pai
commit
b3f1644523
18 ficheiros alterados com 481 adições e 320 exclusões
  1. 19 43
      lift-business-service/src/main/java/cn/com/ty/lift/business/annualinspection/controller/AnnualInspectionController.java
  2. 15 4
      lift-business-service/src/main/java/cn/com/ty/lift/business/annualinspection/dto/InspectionRequest.java
  3. 2 2
      lift-business-service/src/main/java/cn/com/ty/lift/business/annualinspection/dto/InspectionResponse.java
  4. 41 88
      lift-business-service/src/main/java/cn/com/ty/lift/business/common/CommonController.java
  5. 3 0
      lift-business-service/src/main/java/cn/com/ty/lift/business/common/Values.java
  6. 41 91
      lift-business-service/src/main/java/cn/com/ty/lift/business/emergency/controller/EmergencyRepairController.java
  7. 27 0
      lift-business-service/src/main/java/cn/com/ty/lift/business/emergency/dto/RepairRequest.java
  8. 19 0
      lift-business-service/src/main/java/cn/com/ty/lift/business/framework/aspect/ControllerAspect.java
  9. 4 5
      lift-common/src/main/java/cn.com.ty.lift.common/utils/AliyunOSS.java
  10. 221 58
      lift-common/src/main/java/cn.com.ty.lift.common/utils/Judge.java
  11. 25 0
      lift-common/src/main/java/cn.com.ty.lift.common/utils/Judger.java
  12. 19 0
      lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/common/ControllerAspect.java
  13. 6 7
      lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/oa/controller/AnnouncementController.java
  14. 9 13
      lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/oa/controller/AttendanceController.java
  15. 7 7
      lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/oa/controller/LiftCertificateController.java
  16. 3 0
      lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/oa/dto/AnnouncementRequest.java
  17. 14 0
      lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/oa/dto/AttendanceRequest.java
  18. 6 2
      lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/oa/dto/LiftCertificateRequest.java

+ 19 - 43
lift-business-service/src/main/java/cn/com/ty/lift/business/annualinspection/controller/AnnualInspectionController.java

@@ -10,6 +10,7 @@ import cn.com.ty.lift.business.common.Values;
 import cn.com.ty.lift.business.framework.conf.SystemConfiguration;
 import cn.com.ty.lift.common.utils.AliyunOSS;
 import cn.com.ty.lift.common.utils.Judge;
+import cn.com.ty.lift.common.utils.Judger;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -23,7 +24,6 @@ import java.awt.image.BufferedImage;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
 
 /**
@@ -49,9 +49,8 @@ public class AnnualInspectionController {
      * @return RestResponse
      */
     @PostMapping("findOne")
+    @Judger(fields = {"id"})
     public RestResponse findOne(@RequestBody InspectionRequest request){
-        Long id = request.getId();
-        Judge.id(id);
         InspectionResponse entity = annualInspectionService.selectByIdWithInfo(request);
         return RestResponse.success(entity);
     }
@@ -62,6 +61,7 @@ public class AnnualInspectionController {
      * @return RestResponse
      */
     @PostMapping("page")
+    @Judger(fields = "mtCompanyId")
     public RestResponse page(@RequestBody InspectionRequest request){
         IPage<InspectionResponse> pages = annualInspectionService.pageByCondition(request);
         long count = annualInspectionService.countByCondition(request);
@@ -75,9 +75,8 @@ public class AnnualInspectionController {
      * @return RestResponse
      */
     @PostMapping("pageWorker")
+    @Judger(fields = {"workerId"})
     public RestResponse pageWorker(@RequestBody InspectionRequest request){
-        Long workerId = request.getWorkerId();
-        Judge.id(workerId);
         IPage<InspectionResponse> pages = annualInspectionService.pageByCondition(request);
         return RestResponse.success(pages);
     }
@@ -229,9 +228,8 @@ public class AnnualInspectionController {
      * @return RestResponse
      */
     @PostMapping("pageByUser")
+    @Judger(fields = {"userId"})
     public RestResponse pageByUser(@RequestBody InspectionRequest request){
-        Long userId = request.getUserId();
-        Judge.id(userId);
         IPage<InspectionResponse> pages = annualInspectionService.pageByUser(request);
         return RestResponse.success(pages);
     }
@@ -242,10 +240,9 @@ public class AnnualInspectionController {
      * @return RestResponse
      */
     @PostMapping("confirm")
+    @Judger(fields = {"id"})
     public RestResponse confirm(@RequestBody InspectionRequest request){
-        Long id = request.getId();
-        Judge.id(id);
-        AnnualInspection entity = annualInspectionService.getById(id);
+        AnnualInspection entity = annualInspectionService.getById(request.getId());
         Judge.notNull(entity);
         entity.setStepStatus(Values.Ai.STATUS_CONFIRM);
         entity.setStepName(Values.Ai.STEP_ONE);
@@ -259,20 +256,13 @@ public class AnnualInspectionController {
      * @return RestResponse
      */
     @PostMapping("selfcheck")
+    @Judger(fields = {"id","selfcheckDate","selfcheckReportImg"})
     public RestResponse selfcheck(@RequestBody InspectionRequest request){
-        Long id = request.getId();
-        Judge.id(id);
-
-        LocalDate selfcheckDate = request.getSelfcheckDate();
-        String selfcheckReportImg = request.getSelfcheckReportImg();
-        Judge.notNull(selfcheckDate,Values.Ai.selfcheckDate);
-        Judge.notNull(selfcheckReportImg,Values.Ai.selfcheckReportImg);
-
-        AnnualInspection entity = annualInspectionService.getById(id);
+        AnnualInspection entity = annualInspectionService.getById(request.getId());
         Judge.notNull(entity);
 
-        entity.setSelfcheckDate(selfcheckDate);
-        entity.setSelfcheckReportImg(selfcheckReportImg);
+        entity.setSelfcheckDate(request.getSelfcheckDate());
+        entity.setSelfcheckReportImg(request.getSelfcheckReportImg());
         entity.setStepStatus(Values.Ai.STATUS_SELFCHECK);
         entity.setStepName(Values.Ai.STEP_ONE);
 
@@ -286,20 +276,13 @@ public class AnnualInspectionController {
      * @return RestResponse
      */
     @PostMapping("check")
+    @Judger(fields = {"id","checkDate","checkResultImg"})
     public RestResponse check(@RequestBody InspectionRequest request){
-        Long id = request.getId();
-        Judge.id(id);
-
-        LocalDate checkDate = request.getCheckDate();
-        String checkResultImg = request.getCheckResultImg();
-        Judge.notNull(checkDate,Values.Ai.checkDate);
-        Judge.notNull(checkResultImg,Values.Ai.checkResultImg);
-
-        AnnualInspection entity = annualInspectionService.getById(id);
+        AnnualInspection entity = annualInspectionService.getById(request.getId());
         Judge.notNull(entity);
 
-        entity.setCheckDate(checkDate);
-        entity.setCheckResultImg(checkResultImg);
+        entity.setCheckDate(request.getCheckDate());
+        entity.setCheckResultImg(request.getCheckResultImg());
         entity.setStepStatus(Values.Ai.STATUS_CHECK_UPLOAD);
         entity.setStepName(Values.Ai.STEP_THREE);
 
@@ -313,20 +296,13 @@ public class AnnualInspectionController {
      * @return RestResponse
      */
     @PostMapping("finish")
+    @Judger(fields = {"id","certificateImgUrl","annualInspectionImg"})
     public RestResponse finish(@RequestBody InspectionRequest request){
-        Long id = request.getId();
-        Judge.id(id);
-
-        String certificateImgUrl = request.getCertificateImgUrl();
-        Judge.notNull(certificateImgUrl,Values.Ai.certificateUpload);
-        String annualInspectionImg = request.getAnnualInspectionImg();
-        Judge.notNull(annualInspectionImg,Values.Ai.reportUpload);
-
-        AnnualInspection entity = annualInspectionService.getById(id);
+        AnnualInspection entity = annualInspectionService.getById(request.getId());
         Judge.notNull(entity);
 
-        entity.setCertificateImgUrl(certificateImgUrl);
-        entity.setAnnualInspectionImg(annualInspectionImg);
+        entity.setCertificateImgUrl(request.getCertificateImgUrl());
+        entity.setAnnualInspectionImg(request.getAnnualInspectionImg());
         entity.setStepStatus(Values.Ai.STATUS_CERTIFICATE_REPORT_UPLOAD);
         entity.setStepName(Values.Ai.STEP_FOUR);
 

+ 15 - 4
lift-business-service/src/main/java/cn/com/ty/lift/business/annualinspection/dto/InspectionRequest.java

@@ -1,40 +1,45 @@
 package cn.com.ty.lift.business.annualinspection.dto;
 
+import cn.com.ty.lift.common.utils.Judger;
 import cn.com.xwy.boot.controller.BaseRequestModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.time.LocalDate;
-import java.time.LocalDateTime;
 
 /**
+ * <p>年检管理请求参数封装</p>
  * @author wcz
- * @date 2019/12/10
- * @description
+ * @since 2019/12/10
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
 public class InspectionRequest extends BaseRequestModel{
 
+    @Judger(message = "年检记录ID有误")
     private Long id;
     /**
      * 区域id
      */
+    @Judger(message = "区域ID有误")
     private Long regionId;
 
     /**
      * 维保公司id
      */
+    @Judger(message = "维保公司ID有误")
     private Long mtCompanyId;
 
     /**
      * 项目id
      */
+    @Judger(message = "项目ID有误")
     private Long projectId;
 
     /**
      * 维保工id
      */
+    @Judger(message = "维保工ID有误")
     private Long workerId;
 
     /**
@@ -52,32 +57,38 @@ public class InspectionRequest extends BaseRequestModel{
      */
     private int status;
 
+    @Judger(message = "当前用户ID有误")
     private Long userId;
-
     /**
      * 自检时间
      */
+    @Judger(message = "自检时间有误")
     private LocalDate selfcheckDate;
     /**
      * 自检报告路径
      */
+    @Judger(message = "自检报告图片有误")
     private String selfcheckReportImg;
     /**
      * 检验结果图片路径
      */
+    @Judger(message = "检验图片有误")
     private String checkResultImg;
     /**
      * 现场检验时间
      */
+    @Judger(message = "检验时间有误")
     private LocalDate checkDate;
 
     /**
      * 合格证图片路径
      */
+    @Judger(message = "合格证图片有误")
     private String certificateImgUrl;
 
     /**
      * 年检报告图片路径
      */
+    @Judger(message = "年检报告图片有误")
     private String annualInspectionImg;
 }

+ 2 - 2
lift-business-service/src/main/java/cn/com/ty/lift/business/annualinspection/dto/InspectionResponse.java

@@ -5,9 +5,9 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 /**
+ * <p>年检返回结果封装</p>
  * @author wcz
- * @date 2019/12/10
- * @description
+ * @since 2019/12/10
  */
 @Data
 @EqualsAndHashCode(callSuper = true)

+ 41 - 88
lift-business-service/src/main/java/cn/com/ty/lift/business/common/CommonController.java

@@ -71,90 +71,23 @@ public class CommonController {
         return RestResponse.success(liftBrandList, MessageUtils.get("msg.query.success"));
     }
 
-    /**
-     * 上传单个图片到aliyun OSS,返回图片的地址
-     * @param file
-     * @return
-     */
-    @PostMapping("upload/image")
-    public RestResponse uploadImage(@RequestParam("file") MultipartFile file) {
-        return upload(file,Values.Upload.pics,Values.Upload.maxSizePic);
-    }
-
-    /**
-     * 上传多个图片,返回图片地址集合list
-     * @param files
-     * @return
-     */
-    @PostMapping("upload/images")
-    public RestResponse uploadImage(@RequestParam("files") MultipartFile[] files) {
-        return uploads(files,Values.Upload.pics,Values.Upload.maxSizePic);
-    }
-
-    /**
-     * 上传单个文件,返回文件地址
-     * @param file
-     * @return
-     */
-    @PostMapping("upload/file")
-    public RestResponse uploadFile(@RequestParam("file") MultipartFile file) {
-        return upload(file,Values.Upload.files,Values.Upload.maxSizeFile);
-    }
-
-    /**
-     * 上传多个文件,返回文件地址集合list
-     * @param files
-     * @return
-     */
-    @PostMapping("upload/files")
-    public RestResponse uploadFile(@RequestParam("files") MultipartFile[] files) {
-        return uploads(files,Values.Upload.files,Values.Upload.maxSizeFile);
-    }
-
-    /**
-     * 上传单个视频,返回视频地址
-     * @param file
-     * @return
-     */
-    @PostMapping("upload/video")
-    public RestResponse uploadVideo(@RequestParam("file") MultipartFile file) {
-        return upload(file,Values.Upload.videos,Values.Upload.maxSizeVideo);
-    }
-
-    /**
-     * 上传多个视频,返回视频地址集合list
-     * @param files
-     * @return
-     */
-    @PostMapping("upload/videos")
-    public RestResponse uploadVideo(@RequestParam("files") MultipartFile[] files) {
-        return uploads(files,Values.Upload.videos,Values.Upload.maxSizeVideo);
-    }
-
     /**
      * 批量上传多个文件
      * @param files
-     * @param types
-     * @param maxSize
      * @return
      */
-    private RestResponse uploads(MultipartFile[] files,String[] types,long maxSize){
+    @PostMapping("uploads")
+    public RestResponse uploads(@RequestParam("files") MultipartFile[] files){
         try {
             Judge.notNull(files,Values.Upload.missingFileData);
             List<OssEntity> ossEntities = new ArrayList<>();
             for (MultipartFile file : files) {
-                Judge.notTrue(null == file || file.isEmpty(),Values.Upload.missingFileData);
-                Judge.notTrue(file.getSize() > maxSize,"文件大小不超过" + (maxSize >> 20) + "M");
-                // 获取文件名,带后缀
-                String originalFilename = file.getOriginalFilename();
-                log.info("上传文件,原文件名:" + originalFilename);
-                // 获取文件的后缀格式
-                String fileSuffix = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
-                Judge.isTrue(StrUtil.equalsAny(fileSuffix,types),"文件格式不支持, 暂时只支持" + types.toString());
-                String filename = StrUtil.format("{}/{}{}",DateUtil.format(DateUtil.date(),"yyyy/MM/dd"),IdWorker.getIdStr(),fileSuffix);
-                log.info("上传文件,新文件名:" + filename);
+                String fileName = handleFile(file);
+                if(StrUtil.isEmpty(fileName)){
+                    return RestResponse.fail("文件格式暂时不支持");
+                }
                 OssEntity entity = new OssEntity();
-                entity.setObjectName(filename);
+                entity.setObjectName(fileName);
                 entity.setContent(file.getBytes());
                 ossEntities.add(entity);
             }
@@ -172,24 +105,17 @@ public class CommonController {
     /**
      * 上传单个文件
      * @param file
-     * @param types
-     * @param maxSize
      * @return
      */
-    private RestResponse upload(MultipartFile file,String[] types,long maxSize){
+    @PostMapping("upload")
+    public RestResponse upload(@RequestParam("file") MultipartFile file){
         try {
-            Judge.notTrue(null == file || file.isEmpty(),Values.Upload.missingFileData);
-            Judge.notTrue(file.getSize() > maxSize,"文件大小不超过" + (maxSize >> 20) + "M");
-            // 获取文件名,带后缀
-            String originalFilename = file.getOriginalFilename();
-            log.info("上传文件,原文件名:" + originalFilename);
-            // 获取文件的后缀格式
-            String fileSuffix = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
-            Judge.isTrue(StrUtil.equalsAny(fileSuffix,types),"文件格式不支持, 暂时只支持" + types.toString());
-            String filename = StrUtil.format("{}/{}{}",DateUtil.format(DateUtil.date(),"yyyy/MM/dd"),IdWorker.getIdStr(),fileSuffix);
-            log.info("上传文件,新文件名:" + filename);
+            String fileName = handleFile(file);
+            if(StrUtil.isEmpty(fileName)){
+                return RestResponse.fail("文件格式暂时不支持");
+            }
 //            AliyunOSS aliyunOSS = systemConfiguration.build();
-            String url = aliyunOSS.putObject(systemConfiguration.getBucketName(), filename, file.getBytes());
+            String url = aliyunOSS.putObject(systemConfiguration.getBucketName(), fileName, file.getBytes());
             log.info("上传文件,文件URL: {}",url);
             return RestResponse.success(url);
         }catch (Exception e){
@@ -197,4 +123,31 @@ public class CommonController {
             return RestResponse.fail(Values.Upload.fileFail);
         }
     }
+
+    /**
+     * 校验文件大小,文件格式,生成新文件名
+     * @param file
+     * @return
+     */
+    private String handleFile(MultipartFile file){
+        Judge.notTrue(null == file || file.isEmpty(),Values.Upload.missingFileData);
+        // 获取文件名,带后缀
+        String originalFilename = file.getOriginalFilename();
+        log.info("上传文件,原文件名:" + originalFilename);
+        // 获取文件的后缀格式
+        String fileSuffix = originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase();
+        Judge.notNull(fileSuffix,"文件格式不合法");
+        if(StrUtil.equalsAny(fileSuffix,Values.Upload.pics)){
+            Judge.notTrue(file.getSize() > Values.Upload.maxSizePic,"文件大小不超过" + Values.Upload.maxSizePicDesc);
+        }else if(StrUtil.equalsAny(fileSuffix,Values.Upload.files)){
+            Judge.notTrue(file.getSize() > Values.Upload.maxSizeFile,"文件大小不超过" + Values.Upload.maxSizeFileDesc);
+        }else if(StrUtil.equalsAny(fileSuffix,Values.Upload.videos)){
+            Judge.notTrue(file.getSize() > Values.Upload.maxSizeVideo,"文件大小不超过" + Values.Upload.maxSizeVideoDesc);
+        }else{
+            return null;
+        }
+        String fileName = StrUtil.format("{}/{}{}",DateUtil.format(DateUtil.date(),"yyyy/MM/dd"),IdWorker.getIdStr(),fileSuffix);
+        log.info("上传文件,新文件名:" + fileName);
+        return fileName;
+    }
 }

+ 3 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/common/Values.java

@@ -331,14 +331,17 @@ public interface Values {
          * 图片上传最大大小10M * 1024 * 1024
          */
         long maxSizePic = 10 << 20;
+        String maxSizePicDesc = "10M";
         /**
          * 文件上传最大大小50M * 1024 * 1024
          */
         long maxSizeFile = 50 << 20;
+        String maxSizeFileDesc = "50M";
         /**
          * 视频上传最大大小100M * 1024 * 1024
          */
         long maxSizeVideo = 100 << 20;
+        String maxSizeVideoDesc = "100M";
 
         /**
          * 上传图片文件类型

+ 41 - 91
lift-business-service/src/main/java/cn/com/ty/lift/business/emergency/controller/EmergencyRepairController.java

@@ -18,8 +18,8 @@ import cn.com.ty.lift.business.emergency.service.LiftFaultService;
 import cn.com.ty.lift.business.evaluation.dao.entity.Evaluation;
 import cn.com.ty.lift.business.evaluation.service.EvaluationService;
 import cn.com.ty.lift.common.utils.Judge;
+import cn.com.ty.lift.common.utils.Judger;
 import cn.com.xwy.boot.web.dto.RestResponse;
-import cn.hutool.core.collection.IterUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -62,10 +62,9 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("findOne")
+    @Judger(fields = {"id"})
     public RestResponse findOne(@RequestBody RepairRequest request){
         Long id = request.getId();
-        Judge.id(id);
-
         RepairResponse result = emergencyRepairService.selectByIdWithInfo(request);
 
         if(null != result){
@@ -107,7 +106,7 @@ public class EmergencyRepairController {
         Long mtCompanyId = entity.getMtCompanyId();
         Long liftId = entity.getLiftId();
         int repairing = emergencyRepairService.countRepairing(mtCompanyId,liftId);
-        Judge.lt0(repairing,Values.Er.haveUnfinisedRepair);
+        Judge.nlt0(repairing,Values.Er.haveUnfinisedRepair);
 
         //派单时间 急修单创建时间
         entity.setHasEvaluate(0);
@@ -123,6 +122,7 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("list")
+    @Judger(fields = "mtCompanyId")
     public RestResponse list(@RequestBody RepairRequest request){
         IPage<RepairResponse> pages = emergencyRepairService.pageByRepairing(request);
         long count = pages.getTotal();
@@ -136,6 +136,7 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("page")
+    @Judger(fields = "mtCompanyId")
     public RestResponse page(@RequestBody RepairRequest request){
         IPage<RepairResponse> pages = emergencyRepairService.pageByCondition(request);
         long count = emergencyRepairService.countByCondition(request);
@@ -149,9 +150,8 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("pageWorker")
+    @Judger(fields = {"workerId"})
     public RestResponse pageWorker(@RequestBody RepairRequest request){
-        Long workerId = request.getWorkerId();
-        Judge.id(workerId);
         IPage<RepairResponse> pages = emergencyRepairService.pageByCondition(request);
         return RestResponse.success(pages);
     }
@@ -162,18 +162,15 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("transfer")
+    @Judger(fields = {"id","workerId"})
     public RestResponse transfer(@RequestBody RepairRequest request){
-        Long id = request.getId();
-        Long workerId = request.getWorkerId();
-        Judge.id(id,workerId);
-
-        EmergencyRepair entity = emergencyRepairService.getById(id);
+        EmergencyRepair entity = emergencyRepairService.getById(request.getId());
         Judge.notNull(entity);
 
         //如果已经接单,在急修中了不能被转派
         Judge.notTrue(Values.Er.statusRepairing(entity.getStatus()),Values.Er.repairHadTaked);
         //本急修单的负责维保工
-        entity.setWorkerId1(workerId);
+        entity.setWorkerId1(request.getWorkerId());
 
         boolean result = emergencyRepairService.saveOrUpdate(entity);
         return RestResponse.success(result);
@@ -185,17 +182,12 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("close")
+    @Judger(fields = {"id","closeReason"})
     public RestResponse close(@RequestBody RepairRequest request){
-        Long id = request.getId();
-        Judge.id(id);
-
-        String reason = request.getCloseReason();
-        Judge.notNull(reason,Values.Er.missingReason);
-
-        EmergencyRepair entity = emergencyRepairService.getById(id);
+        EmergencyRepair entity = emergencyRepairService.getById(request.getId());
         Judge.notNull(entity);
 
-        entity.setCloseReason(reason);
+        entity.setCloseReason(request.getCloseReason());
         //新状态(-1 暂停中,0 待修理;1 修理中;2 已完成 3 已关闭)
         entity.setStatus(Values.Er.STATUS_CLOSE);
 
@@ -209,9 +201,8 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("pageByUser")
+    @Judger(fields = {"userId"})
     public RestResponse pageByUser(@RequestBody RepairRequest request){
-        Long userId = request.getUserId();
-        Judge.id(userId);
         IPage<RepairResponse> pages = emergencyRepairService.pageByUser(request);
         return RestResponse.success(pages);
     }
@@ -223,18 +214,13 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("taking")
+    @Judger(fields = {"id","takingTime"})
     public RestResponse taking(@RequestBody RepairRequest request){
-        Long id = request.getId();
-        Judge.id(id);
-
-        LocalDateTime takingTime = request.getTakingTime();
-        Judge.notNull(takingTime,Values.Er.missingHandleDate);
-
-        EmergencyRepair entity = emergencyRepairService.getById(id);
+        EmergencyRepair entity = emergencyRepairService.getById(request.getId());
         Judge.notNull(entity);
 
         Judge.isTrue(Values.Er.statusToRepaired(entity.getStatus()),Values.Er.mustToRepair);
-        entity.setTakingTime(takingTime);
+        entity.setTakingTime(request.getTakingTime());
         //todo:修改电梯的业务状态为急修中,如果存在维保中,要修改
         entity.setStatus(Values.Er.STATUS_REPAIRING);
 
@@ -248,21 +234,14 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("arrive")
+    @Judger(fields = {"id","arriveTime","position"})
     public RestResponse arrive(@RequestBody RepairRequest request){
-        Long id = request.getId();
-        Judge.id(id);
-
-        LocalDateTime arriveTime = request.getArriveTime();
-        Judge.notNull(arriveTime,Values.Er.missingHandleDate);
-
-        String position = request.getPosition();
-        Judge.notNull(position,Values.Er.missionPosition);
-
-        EmergencyRepair entity = emergencyRepairService.getById(id);
+        EmergencyRepair entity = emergencyRepairService.getById(request.getId());
         Judge.notNull(entity);
 
         Judge.isTrue(Values.Er.statusRepairing(entity.getStatus()), Values.Er.mustInRepairing);
-        entity.setArriveTime(arriveTime);
+        entity.setArriveTime(request.getArriveTime());
+        entity.setPosition(request.getPosition());
 
         boolean result = emergencyRepairService.updateById(entity);
         return RestResponse.success(result);
@@ -274,22 +253,14 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("stop")
+    @Judger(fields = {"id","stopDate","safetyConfirm"})
     public RestResponse stopLift(@RequestBody RepairRequest request){
-        Long id = request.getId();
-        Judge.id(id);
-
-        LocalDateTime stopDate = request.getStopDate();
-        Judge.notNull(stopDate,Values.Er.missingHandleDate);
-        String safetyConfirm = request.getSafetyConfirm();
-        //检查安全确认项值
-        Judge.notNull(safetyConfirm,Values.Er.safetyConfirm);
-
-        EmergencyRepair entity = emergencyRepairService.getById(id);
+        EmergencyRepair entity = emergencyRepairService.getById(request.getId());
         Judge.notNull(entity);
 
         Judge.isTrue(Values.Er.statusRepairing(entity.getStatus()),Values.Er.mustInRepairing);
-        entity.setStopDate(stopDate);
-        entity.setSafetyConfirm(safetyConfirm);
+        entity.setStopDate(request.getStopDate());
+        entity.setSafetyConfirm(request.getSafetyConfirm());
 
         boolean result = emergencyRepairService.updateById(entity);
         return RestResponse.success(result);
@@ -301,15 +272,12 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("cost/add")
+    @Judger(fields = {"id","erRecordCosts"})
     public RestResponse costAdd(@RequestBody RepairRequest request){
-        Long id = request.getId();
-        Judge.id(id);
-
-        EmergencyRepair repair = emergencyRepairService.getById(id);
+        EmergencyRepair repair = emergencyRepairService.getById(request.getId());
         Judge.notNull(repair);
 
         List<ErRecordCost> erRecordCosts = request.getErRecordCosts();
-        Judge.notNull(erRecordCosts,Values.Er.missingCost);
         BigDecimal costTotal = erRecordCosts.stream().map(ErRecordCost::getCostMoney).reduce(BigDecimal.ZERO,(m1,m2) -> m1.add(m2));
         repair.setCostTotal(costTotal);
 
@@ -323,10 +291,10 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("cost/delete")
+    @Judger(fields = {"id","erCostItemId"})
     public RestResponse costDelete(@RequestBody RepairRequest request){
         Long id = request.getId();
         Long erCostItemId = request.getErCostItemId();
-        Judge.id(id,erCostItemId);
 
         EmergencyRepair repair = emergencyRepairService.getById(id);
         Judge.notNull(repair);
@@ -353,15 +321,12 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("cost/modify")
+    @Judger(fields = {"id","erRecordCosts"})
     public RestResponse costModify(@RequestBody RepairRequest request){
-        Long id = request.getId();
-        Judge.id(id);
-
-        EmergencyRepair repair = emergencyRepairService.getById(id);
+        EmergencyRepair repair = emergencyRepairService.getById(request.getId());
         Judge.notNull(repair);
 
         List<ErRecordCost> erRecordCosts = request.getErRecordCosts();
-        Judge.notNull(erRecordCosts);
         BigDecimal costTotal = erRecordCosts.stream().map(ErRecordCost::getCostMoney).reduce(BigDecimal.ZERO,(m1,m2) -> m1.add(m2));
         repair.setCostTotal(costTotal);
 
@@ -375,10 +340,9 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("fault/list")
+    @Judger(fields = {"liftCategory"})
     public RestResponse faultList(@RequestBody RepairRequest request){
-        Integer liftCategory = request.getLiftCategory();
-        Judge.gt0(liftCategory);
-        List<LiftFault> lists = liftFaultService.listByLiftCategory(liftCategory);
+        List<LiftFault> lists = liftFaultService.listByLiftCategory(request.getLiftCategory());
         return RestResponse.success(lists);
     }
 
@@ -388,10 +352,9 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("fault/tree")
+    @Judger(fields = {"liftCategory"})
     public RestResponse faultTree(@RequestBody RepairRequest request) {
-        Integer liftCategory = request.getLiftCategory();
-        Judge.gt0(liftCategory);
-        List<LiftFault> liftFaultList = liftFaultService.listByLiftCategory(liftCategory);
+        List<LiftFault> liftFaultList = liftFaultService.listByLiftCategory(request.getLiftCategory());
         Judge.notNull(liftFaultList,Values.Er.missingFault);
         //根据故障列表组装tree
         //先按照faultCategory,groupby,再按照faultType,groupby
@@ -441,20 +404,11 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("repairOrder")
+    @Judger(fields = {"id","recoveryDate","mainSign","erRecordImg","fieldDescription",
+            "faultPart","faultReason","faultHandle","faultNature","faultDuty"})
     public RestResponse repairOrder(@RequestBody RepairRequest request){
         Long id = request.getId();
-        Judge.id(id);
-
-        LocalDateTime recoveryDate = request.getRecoveryDate();
-        Judge.notNull(recoveryDate,Values.Er.missingHandleDate);
-
-        //检查主签名
-        String mainSign = request.getMainSign();
-        String secondSign = request.getSecondSign();
-        Judge.notNull(mainSign,Values.Er.missingSign);
-
         List<String> erRecordImg = request.getErRecordImg();
-        Judge.isTrue(IterUtil.isNotEmpty(erRecordImg),Values.Er.missingImage);
 
         EmergencyRepair entity = emergencyRepairService.getById(id);
         Judge.notNull(entity);
@@ -467,15 +421,15 @@ public class EmergencyRepairController {
             item.setSort(i);
             erRecordImgs.add(item);
         }
-        entity.setMainSign(mainSign);
-        entity.setSecondSign(secondSign);
+        entity.setMainSign(request.getMainSign());
+        entity.setSecondSign(request.getSecondSign());
         entity.setFieldDescription(request.getFieldDescription());
         entity.setFaultPart(request.getFaultPart());
         entity.setFaultReason(request.getFaultReason());
         entity.setFaultHandle(request.getFaultHandle());
         entity.setFaultNature(request.getFaultNature());
         entity.setFaultDuty(request.getFaultDuty());
-        entity.setRecoveryDate(recoveryDate);
+        entity.setRecoveryDate(request.getRecoveryDate());
         //修改状态已完成
         entity.setStatus(Values.Er.STATUS_FINISH);
 
@@ -489,10 +443,9 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("listImages")
+    @Judger(fields = {"id"})
     public RestResponse listImages(@RequestBody RepairRequest request){
-        Long id = request.getId();
-        Judge.id(id);
-        List<ErRecordImg> lists = erRecordImgService.listByErRecordId(id);
+        List<ErRecordImg> lists = erRecordImgService.listByErRecordId(request.getId());
         Judge.notNull(lists);
         return RestResponse.success(lists);
     }
@@ -503,11 +456,8 @@ public class EmergencyRepairController {
      * @return RestResponse
      */
     @PostMapping("listRepair")
+    @Judger(fields = {"mtCompanyId","liftId","projectId"})
     public RestResponse listRepair(@RequestBody RepairRequest request){
-        Long mtCompanyId = request.getMtCompanyId();
-        Long liftId = request.getLiftId();
-        Long projectId = request.getProjectId();
-        Judge.id(liftId,mtCompanyId,projectId);
         IPage<RepairResponse> pages = emergencyRepairService.pageByCompanyLiftProject(request);
         return RestResponse.success(pages);
     }

+ 27 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/emergency/dto/RepairRequest.java

@@ -1,6 +1,7 @@
 package cn.com.ty.lift.business.emergency.dto;
 
 import cn.com.ty.lift.business.emergency.entity.ErRecordCost;
+import cn.com.ty.lift.common.utils.Judger;
 import cn.com.xwy.boot.controller.BaseRequestModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -20,30 +21,36 @@ public class RepairRequest extends BaseRequestModel{
     /**
      * 主键id
      */
+    @Judger(message = "急修ID有误")
     private Long id;
     /**
      * 维保公司id
      */
+    @Judger(message = "维保公司ID有误")
     private Long mtCompanyId;
 
     /**
      * 电梯id
      */
+    @Judger(message = "电梯ID有误")
     private Long liftId;
 
     /**
      * 区域id
      */
+    @Judger(message = "区域ID有误")
     private Long regionId;
 
     /**
      * 项目id
      */
+    @Judger(message = "项目ID有误")
     private Long projectId;
 
     /**
      * 维保工id
      */
+    @Judger(message = "维保工ID有误")
     private Long workerId;
 
     /**
@@ -75,95 +82,115 @@ public class RepairRequest extends BaseRequestModel{
     /**
      * 接单时间 app端维保工确认
      */
+    @Judger(message = "接单时间有误")
     private LocalDateTime takingTime;
 
     /**
      *
      * 到达时间 app端维保工打卡
      */
+    @Judger(message = "到达时间有误")
     private LocalDateTime arriveTime;
 
     /**
      * 停梯时间
      */
+    @Judger(message = "缺少停梯时间")
     private LocalDateTime stopDate;
 
     /**
      * 签到位置
      */
+    @Judger(message = "缺少签到位置")
     private String position;
 
     /**
      *
      */
+    @Judger(message = "当前用户ID有误")
     private Long userId;
 
     /**
      * 电梯类型
      */
+    @Judger(message = "电梯类型有误")
     private Integer liftCategory;
 
     /**
      * 急修关闭原因
      */
+    @Judger(message = "缺少急修关闭原因")
     private String closeReason;
 
     /**
      * 急修收费项id
      */
+    @Judger(message = "急修收费项ID有误")
     private Long erCostItemId;
     /**
      * 急修项列表
      */
+    @Judger(message = "缺少急修收费列表")
     private List<ErRecordCost> erRecordCosts;
 
     /**
      * 安全确认
      */
+    @Judger(message = "缺少安全确认")
     private String safetyConfirm;
 
     /**
      * 故障部位
      */
+    @Judger(message = "缺少故障部位")
     private String faultPart;
     /**
      * 故障原因
      */
+    @Judger(message = "缺少故障原因")
     private String faultReason;
     /**
      * 故障处理
      */
+    @Judger(message = "缺少故障处理")
     private String faultHandle;
     /**
      * 故障性质
      */
+    @Judger(message = "缺少故障性质")
     private String faultNature;
     /**
      * 故障责任
      */
+    @Judger(message = "缺少故障责任")
     private String faultDuty;
 
     /**
      * 恢复时间
      */
+    @Judger(message = "恢复时间有误")
     private LocalDateTime recoveryDate;
 
     /**
      * 主要急修人签名 完成急修单添加
      */
+    @Judger(message = "缺少主要急修人签名")
     private String mainSign;
     /**
      * 次要急修人签名
      */
+    @Judger(message = "缺少次要急修人签名")
     private String secondSign;
 
     /**
      * 现场描述
      */
+    @Judger(message = "缺少现场描述")
     private String fieldDescription;
 
     /**
      * 急修图片地址
      */
+    @Judger(message = "急修图片有误")
     private List<String> erRecordImg;
 }

+ 19 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/framework/aspect/ControllerAspect.java

@@ -1,17 +1,21 @@
 package cn.com.ty.lift.business.framework.aspect;
 
 import cn.com.ty.lift.business.framework.BusinessBasicException;
+import cn.com.ty.lift.common.utils.Judge;
+import cn.com.ty.lift.common.utils.Judger;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import cn.hutool.json.JSONUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.reflect.MethodSignature;
 import org.springframework.stereotype.Component;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
 import java.util.Arrays;
 
 /**
@@ -49,6 +53,7 @@ public class ControllerAspect {
         log.info(classMethod + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());
         log.info(args + Arrays.toString(joinPoint.getArgs()));
 
+        judge(joinPoint);
     }
 
     @AfterReturning(returning = "response", pointcut = "controllerPointCut()")
@@ -73,4 +78,18 @@ public class ControllerAspect {
         return proceedingJoinPoint.proceed();
     }
 
+    //检查必要参数非空,数值型参数必须 !null && > 0
+    private void judge(JoinPoint joinPoint){
+        Object[] args = joinPoint.getArgs();
+        MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
+        Method method = methodSignature.getMethod();
+        Judger judger = method.getDeclaredAnnotation(Judger.class);
+        if(null != judger && args.length > 0){
+            Object object = args[0];
+            String[] fields = judger.fields();
+            if(null != object && fields.length > 0){
+                Judge.judgement(object,fields);
+            }
+        }
+    }
 }

+ 4 - 5
lift-common/src/main/java/cn.com.ty.lift.common/utils/AliyunOSS.java

@@ -37,8 +37,7 @@ public class AliyunOSS {
      * 无参构造,初始化oss
      */
     private AliyunOSS() {
-        log.info("Tip: Using the Default Configuration To Create Aliyun OSS Client.");
-        print();
+        print("Default");
         init();
     }
     /**
@@ -54,12 +53,12 @@ public class AliyunOSS {
         this.accessKeyId = accessKeyId;
         this.accessKeySecret = accessKeySecret;
         this.bucketName = bucketName;
-        log.info("Tip: Using the Custom Configuration To Create Aliyun OSS Client.");
-        print();
+        print("Custom");
         init();
     }
 
-    private void print(){
+    private void print(String type){
+        log.info("Hint: Using the {} Configuration To Create Aliyun OSS Client.",type);
         log.info("============================================================");
         log.info("#####| endpoint       : {}",endpoint);
         log.info("#####| accessKeyId    : {}",accessKeyId);

+ 221 - 58
lift-common/src/main/java/cn.com.ty.lift.common/utils/Judge.java

@@ -1,6 +1,5 @@
 package cn.com.ty.lift.common.utils;
 
-import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.ObjectUtil;
 
 import java.lang.reflect.Field;
@@ -20,138 +19,293 @@ public interface Judge {
     String INVALID_DATA_CONDITIONS = "数据无效或条件不成立";
 
     /**
-     * 判断多个id有效,ids为空,或者出现id <= 0,抛出异常
+     * id == null || id <= 0 throw new JudgeException(message)
+     *
+     * @param id
+     */
+    static void id(Long id, String message) {
+        notNull(id, message);
+        if (id.longValue() <= 0) {
+            throw new JudgeException(message);
+        }
+    }
+
+    /**
+     * id == null || id <= 0 throw new JudgeException(INVALID_IDENTIFIER)
+     *
      * @param ids
      */
-    static void id(Long... ids){
-        notNull(ids,INVALID_IDENTIFIER);
+    static void id(Long... ids) {
+        notNull(ids, INVALID_IDENTIFIER);
         for (Long id : ids) {
-            if(null == id || id.longValue() <= 0){
+            if (null == id || id.longValue() <= 0) {
                 throw new JudgeException(INVALID_IDENTIFIER);
             }
         }
     }
 
-    static void gt0(Number value,String message){
-        if(null == value){
+    boolean than(Number one, Number other);
+
+    /**
+     * value == null || value <= 0 throw new JudgeException(message);
+     *
+     * @param value
+     * @param message
+     */
+    static void gt0(Number value, String message) {
+        if (null == value) {
             throw new JudgeException(message);
         }
-        if(value instanceof Long && value.longValue() <= 0){
+        if (value instanceof Long && value.longValue() <= 0) {
             throw new JudgeException(message);
         }
-        if(value instanceof Integer && value.intValue() <= 0){
+        if (value instanceof Integer && value.intValue() <= 0) {
             throw new JudgeException(message);
         }
-        if(value instanceof Float && value.floatValue() <= 0){
+        if (value instanceof Float && value.floatValue() <= 0) {
             throw new JudgeException(message);
         }
-        if(value instanceof Double && value.doubleValue() <= 0){
+        if (value instanceof Double && value.doubleValue() <= 0) {
             throw new JudgeException(message);
         }
     }
 
     /**
-     * 判断是否大于0,为null或者<= 0 抛出异常
+     * value == null || value <= 0 throw new JudgeException(message);
+     *
      * @param values
      */
-    static void gt0(Number... values){
-        notNull(values,MUST_GT0);
+    static void gt0(Number... values) {
+        notNull(values, MUST_GT0);
         for (Number value : values) {
-            gt0(value,MUST_GT0);
+            gt0(value, MUST_GT0);
         }
     }
 
-    static void lt0(Number value,String message){
-        if(null == value){
+    /**
+     * value == null || value >= 0 throw new JudgeException(message);
+     *
+     * @param value
+     * @param message
+     */
+    static void lt0(Number value, String message) {
+        if (null == value) {
             throw new JudgeException(message);
         }
-        if(value instanceof Long && value.longValue() > 0){
+        if (value instanceof Long && value.longValue() >= 0) {
             throw new JudgeException(message);
         }
-        if(value instanceof Integer && value.intValue() > 0){
+        if (value instanceof Integer && value.intValue() >= 0) {
             throw new JudgeException(message);
         }
-        if(value instanceof Float && value.floatValue() > 0){
+        if (value instanceof Float && value.floatValue() >= 0) {
             throw new JudgeException(message);
         }
-        if(value instanceof Double && value.doubleValue() > 0){
+        if (value instanceof Double && value.doubleValue() >= 0) {
             throw new JudgeException(message);
         }
     }
 
-    static void lt0(Number... values){
-        notNull(values,MUST_LT0);
+    /**
+     * value == null || value >= 0 throw new JudgeException(message);
+     *
+     * @param values
+     */
+    static void lt0(Number... values) {
+        notNull(values, MUST_LT0);
         for (Number value : values) {
-           lt0(value,MUST_LT0);
+            lt0(value, MUST_LT0);
         }
     }
 
-    static void  eq0(Number value,String message){
-        if(null == value){
+    /**
+     * value == null || value != 0 throw new JudgeException(message);
+     *
+     * @param value
+     * @param message
+     */
+    static void eq0(Number value, String message) {
+        if (null == value) {
             throw new JudgeException(message);
         }
-        if(value instanceof Long && value.longValue() == 0){
+        if (value instanceof Long && value.longValue() != 0) {
             throw new JudgeException(message);
         }
-        if(value instanceof Integer && value.intValue() == 0){
+        if (value instanceof Integer && value.intValue() != 0) {
             throw new JudgeException(message);
         }
-        if(value instanceof Float && value.floatValue() == 0){
+        if (value instanceof Float && value.floatValue() != 0) {
             throw new JudgeException(message);
         }
-        if(value instanceof Double && value.doubleValue() == 0){
+        if (value instanceof Double && value.doubleValue() != 0) {
             throw new JudgeException(message);
         }
     }
-    static void eq0(Number... values){
-        notNull(values,MUST_EQ0);
+
+    static void eq0(Number... values) {
+        notNull(values, MUST_EQ0);
         for (Number value : values) {
-            eq0(value,MUST_EQ0);
+            eq0(value, MUST_EQ0);
         }
     }
+
+    /**
+     * value == null || value < 0 throw new JudgeException(message)
+     *
+     * @param value
+     * @param message
+     */
+    static void ngt0(Number value, String message) {
+        if (null == value) {
+            throw new JudgeException(message);
+        }
+        if (value instanceof Long && value.longValue() < 0) {
+            throw new JudgeException(message);
+        }
+        if (value instanceof Integer && value.intValue() < 0) {
+            throw new JudgeException(message);
+        }
+        if (value instanceof Float && value.floatValue() < 0) {
+            throw new JudgeException(message);
+        }
+        if (value instanceof Double && value.doubleValue() < 0) {
+            throw new JudgeException(message);
+        }
+    }
+
+    /**
+     * value == null || value < 0 throw new JudgeException(message);
+     *
+     * @param values
+     */
+    static void ngt0(Number... values) {
+        notNull(values, MUST_GT0);
+        for (Number value : values) {
+            ngt0(value, MUST_GT0);
+        }
+    }
+
+    /**
+     * value == null || value > 0 throw new JudgeException(message);
+     *
+     * @param value
+     * @param message
+     */
+    static void nlt0(Number value, String message) {
+        if (null == value) {
+            throw new JudgeException(message);
+        }
+        if (value instanceof Long && value.longValue() > 0) {
+            throw new JudgeException(message);
+        }
+        if (value instanceof Integer && value.intValue() > 0) {
+            throw new JudgeException(message);
+        }
+        if (value instanceof Float && value.floatValue() > 0) {
+            throw new JudgeException(message);
+        }
+        if (value instanceof Double && value.doubleValue() > 0) {
+            throw new JudgeException(message);
+        }
+    }
+
+    /**
+     * value == null || value > 0 throw new JudgeException(message);
+     *
+     * @param values
+     */
+    static void nlt0(Number... values) {
+        notNull(values, MUST_LT0);
+        for (Number value : values) {
+            nlt0(value, MUST_LT0);
+        }
+    }
+
+    /**
+     * value == null || value == 0 throw new JudgeException(message);
+     *
+     * @param value
+     * @param message
+     */
+    static void neq0(Number value, String message) {
+        if (null == value) {
+            throw new JudgeException(message);
+        }
+        if (value instanceof Long && value.longValue() == 0) {
+            throw new JudgeException(message);
+        }
+        if (value instanceof Integer && value.intValue() == 0) {
+            throw new JudgeException(message);
+        }
+        if (value instanceof Float && value.floatValue() == 0) {
+            throw new JudgeException(message);
+        }
+        if (value instanceof Double && value.doubleValue() == 0) {
+            throw new JudgeException(message);
+        }
+    }
+
+    /**
+     * value == null || value != 0 throw new JudgeException(message);
+     *
+     * @param values
+     */
+    static void neq0(Number... values) {
+        notNull(values, MUST_EQ0);
+        for (Number value : values) {
+            neq0(value, MUST_EQ0);
+        }
+    }
+
     /**
      * 判断对象object是否为空,如果不为空,直接抛出异常,返回message
+     *
      * @param object
      * @param message
      */
-    static void isNull(Object object, String message){
-        if(ObjectUtil.isNotEmpty(object)){
+    static void isNull(Object object, String message) {
+        if (ObjectUtil.isNotEmpty(object)) {
             throw new JudgeException(message);
         }
     }
 
     /**
      * 判断对象object是否为空,如果不为空,直接抛出异常,返回默认消息
+     *
      * @param object
      */
-    static void isNull(Object object){
-        isNull(object,MISSING_INCORRECT_DATA);
+    static void isNull(Object object) {
+        isNull(object, MISSING_INCORRECT_DATA);
     }
+
     /**
      * 判断对象object是否为空,如果为真,直接抛出异常,返回message
+     *
      * @param object
      * @param message
      */
-    static void notNull(Object object, String message){
-        if(ObjectUtil.isEmpty(object)){
+    static void notNull(Object object, String message) {
+        if (ObjectUtil.isEmpty(object)) {
             throw new JudgeException(message);
         }
     }
 
     /**
      * 判断对象object是否为空,如果为真,直接抛出异常,返回默认消息
+     *
      * @param object
      */
-    static void notNull(Object object){
-        notNull(object,MISSING_INCORRECT_DATA);
+    static void notNull(Object object) {
+        notNull(object, MISSING_INCORRECT_DATA);
     }
 
     /**
      * 判断表达式是否为真,如果为假,直接抛出异常,返回message
+     *
      * @param expression
      * @param message
      */
-    static void isTrue(boolean expression, String message){
+    static void isTrue(boolean expression, String message) {
         if (!expression) {
             throw new JudgeException(message);
         }
@@ -159,18 +313,20 @@ public interface Judge {
 
     /**
      * 判断表达式是否为真,如果为假,直接抛出异常,返回
+     *
      * @param expression
      */
-    static void isTrue(boolean expression){
-        isTrue(expression,INVALID_DATA_CONDITIONS);
+    static void isTrue(boolean expression) {
+        isTrue(expression, INVALID_DATA_CONDITIONS);
     }
 
     /**
      * 判断表达式是否为真,如果为真,直接抛出异常,返回message
+     *
      * @param expression
      * @param message
      */
-    static void notTrue(boolean expression, String message){
+    static void notTrue(boolean expression, String message) {
         if (expression) {
             throw new JudgeException(message);
         }
@@ -178,34 +334,41 @@ public interface Judge {
 
     /**
      * 判断表达式是否为真,如果为真,直接抛出异常,返回
+     *
      * @param expression
      */
-    static void notTrue(boolean expression){
-        notTrue(expression,INVALID_DATA_CONDITIONS);
+    static void notTrue(boolean expression) {
+        notTrue(expression, INVALID_DATA_CONDITIONS);
     }
 
     /**
-     * 根据属性名检查object中是否有效值
-     * @param object
-     * @param fields
+     * 根据属性名检查object中是否有效值,
+     * 数值型的值,必须!null && > 0 ,否则 throw new JudgeException(message)
+     * message:对应object中属性用@Judger标识中的message
+     * @param object 校验的对象
+     * @param fields 需要校验的属性名
      */
-    static void checkParameter(Object object, String... fields){
+    static void judgement(Object object, String... fields) {
         notNull(object);
+        notNull(fields);
         Class<?> objectClass = object.getClass();
         notNull(objectClass);
         try {
-            if(ArrayUtil.isNotEmpty(fields)){
-                for (String field : fields) {
-                    Field declaredField = objectClass.getDeclaredField(field);
+            for (String field : fields) {
+                Field declaredField = objectClass.getDeclaredField(field);
+                if (null != declaredField) {
                     declaredField.setAccessible(true);
+                    Judger judger = declaredField.getAnnotation(Judger.class);
+                    Class<?> fieldClass = declaredField.getType();
                     Object value = declaredField.get(object);
-                    if("id".equals(field) || field.endsWith("Id")){
-                        id((Long) value);
+                    if (Number.class.isAssignableFrom(fieldClass)) {
+                        gt0((Number) value, null == judger ? MUST_GT0 : judger.message());
+                    } else {
+                        notNull(value, null == judger ? MISSING_INCORRECT_DATA : judger.message());
                     }
-                    notNull(value,field + ": " + MISSING_INCORRECT_DATA);
                 }
             }
-        }catch (Exception e){
+        } catch (Exception e) {
             throw new JudgeException(e.getMessage());
         }
     }

+ 25 - 0
lift-common/src/main/java/cn.com.ty.lift.common/utils/Judger.java

@@ -0,0 +1,25 @@
+package cn.com.ty.lift.common.utils;
+
+import java.lang.annotation.*;
+
+/**
+ * <p>标记需要检验参数</p>
+ * @author wcz
+ * @since 2020/1/27 9:35
+ */
+@Target({ElementType.METHOD,ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface Judger {
+
+    /**
+     * 标注在method上,指定fields,需要校验的对象属性
+     */
+    String[] fields() default {};
+
+    /**
+     * 标注在field上,指定message,属性值不合法时抛出的异常消息
+     * @return
+     */
+    String message() default "";
+}

+ 19 - 0
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/common/ControllerAspect.java

@@ -1,16 +1,20 @@
 package cn.com.ty.lift.enterprise.common;
 
+import cn.com.ty.lift.common.utils.Judge;
+import cn.com.ty.lift.common.utils.Judger;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import cn.hutool.json.JSONUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.ProceedingJoinPoint;
 import org.aspectj.lang.annotation.*;
+import org.aspectj.lang.reflect.MethodSignature;
 import org.springframework.stereotype.Component;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
 import java.util.Arrays;
 
 /**
@@ -48,6 +52,7 @@ public class ControllerAspect {
         log.info(classMethod + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());
         log.info(args + Arrays.toString(joinPoint.getArgs()));
 
+        judge(joinPoint);
     }
 
     @AfterReturning(returning = "response", pointcut = "controllerPointCut()")
@@ -72,4 +77,18 @@ public class ControllerAspect {
         return proceedingJoinPoint.proceed();
     }
 
+    //检查必要参数非空,数值型参数必须 !null && > 0
+    private void judge(JoinPoint joinPoint){
+        Object[] args = joinPoint.getArgs();
+        MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
+        Method method = methodSignature.getMethod();
+        Judger judger = method.getDeclaredAnnotation(Judger.class);
+        if(null != judger && args.length > 0){
+            Object object = args[0];
+            String[] fields = judger.fields();
+            if(null != object && fields.length > 0){
+                Judge.judgement(object,fields);
+            }
+        }
+    }
 }

+ 6 - 7
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/oa/controller/AnnouncementController.java

@@ -1,6 +1,6 @@
 package cn.com.ty.lift.enterprise.oa.controller;
 
-import cn.com.ty.lift.common.utils.Judge;
+import cn.com.ty.lift.common.utils.Judger;
 import cn.com.ty.lift.enterprise.common.CountPage;
 import cn.com.ty.lift.enterprise.oa.dto.AnnouncementRequest;
 import cn.com.ty.lift.enterprise.oa.dto.AnnouncementResponse;
@@ -43,12 +43,11 @@ public class AnnouncementController {
      * @return RestResponse
      */
     @PostMapping("findOne")
+    @Judger(fields = {"id"})
     public RestResponse findOne(@RequestBody AnnouncementRequest request) {
-        Long id = request.getId();
-        Judge.id(id);
         AnnouncementResponse result = announcementService.findByIdWithInfo(request);
         if(null != result){
-            result.setImgs(announcementImgService.listByAnnouncement(id));
+            result.setImgs(announcementImgService.listByAnnouncement(request.getId()));
         }
         return RestResponse.success(result);
     }
@@ -59,6 +58,7 @@ public class AnnouncementController {
      * @return RestResponse
      */
     @PostMapping("list")
+    @Judger(fields = "mtCompanyId")
     public RestResponse list(@RequestBody AnnouncementRequest request) {
         IPage<AnnouncementResponse> pages = announcementService.pageByCondition(request);
         long count = announcementService.count();
@@ -83,10 +83,9 @@ public class AnnouncementController {
      * @return RestResponse
      */
     @PostMapping("delete")
+    @Judger(fields = {"id"})
     public RestResponse delete(@RequestBody AnnouncementRequest request) {
-        Long id = request.getId();
-        Judge.id(id);
-        boolean result = announcementService.removeById(id);
+        boolean result = announcementService.removeById(request.getId());
         return RestResponse.success(result);
 
     }

+ 9 - 13
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/oa/controller/AttendanceController.java

@@ -1,6 +1,7 @@
 package cn.com.ty.lift.enterprise.oa.controller;
 
 import cn.com.ty.lift.common.utils.Judge;
+import cn.com.ty.lift.common.utils.Judger;
 import cn.com.ty.lift.enterprise.common.CountPage;
 import cn.com.ty.lift.enterprise.common.Values;
 import cn.com.ty.lift.enterprise.oa.dto.AttendanceRequest;
@@ -47,12 +48,11 @@ public class AttendanceController {
      * @return RestResponse
      */
     @PostMapping("findOne")
+    @Judger(fields = {"id"})
     public RestResponse findOne(@RequestBody AttendanceRequest request) {
-        Long id = request.getId();
-        Judge.id(id);
         AttendanceResponse result = attendanceService.findByIdWithInfo(request);
         if(null != result){
-            result.setImgs(attendanceImgService.listByAttendance(id));
+            result.setImgs(attendanceImgService.listByAttendance(request.getId()));
         }
         return RestResponse.success(result);
     }
@@ -63,6 +63,7 @@ public class AttendanceController {
      * @return RestResponse
      */
     @PostMapping("list")
+    @Judger(fields = "mtCompanyId")
     public RestResponse list(@RequestBody AttendanceRequest request) {
         IPage<AttendanceResponse> pages = attendanceService.pageByCondition(request);
         long count = attendanceService.count();
@@ -76,6 +77,7 @@ public class AttendanceController {
      * @return RestResponse
      */
     @PostMapping("setupTime")
+    @Judger(fields = {"mtCompanyId"})
     public RestResponse setupTime(@RequestBody AttendanceRequest request) {
         LocalTime topTime = request.getTopTime();
         LocalTime downTime = request.getDownTime();
@@ -92,9 +94,7 @@ public class AttendanceController {
         Judge.notTrue(ObjectUtil.hasEmpty(topTimeOt, downTimeOt), Values.At.SetOtTime);
         Judge.notTrue(topTimeOt.isAfter(downTimeOt), Values.At.InvalidOtTime);
 
-        Long mtCompanyId = request.getMtCompanyId();
-        Judge.id(mtCompanyId);
-        MaintenanceCompany entity = maintenanceCompanyService.getById(mtCompanyId);
+        MaintenanceCompany entity = maintenanceCompanyService.getById(request.getMtCompanyId());
         Judge.notNull(entity);
 
         entity.setTopTime(topTime);
@@ -122,8 +122,6 @@ public class AttendanceController {
         Long mtCompanyId = entity.getMtCompanyId();
         Long userId = entity.getUserId();
         Integer type = entity.getType();
-        Judge.id(mtCompanyId,userId);
-        Judge.gt0(type);
         //先统计当天是否有对应的打卡记录
         int count = attendanceService.countByUserAndType(mtCompanyId,userId,type);
         Judge.lt0(count,Values.At.hadClock);
@@ -184,10 +182,9 @@ public class AttendanceController {
      * @return RestResponse
      */
     @PostMapping("time")
+    @Judger(fields = {"mtCompanyId"})
     public RestResponse time(@RequestBody AttendanceRequest request) {
-        Long mtCompanyId = request.getMtCompanyId();
-        Judge.id(mtCompanyId);
-        MaintenanceCompany entity = maintenanceCompanyService.getById(mtCompanyId);
+        MaintenanceCompany entity = maintenanceCompanyService.getById(request.getMtCompanyId());
         return RestResponse.success(entity);
     }
 
@@ -197,9 +194,8 @@ public class AttendanceController {
      * @return RestResponse
      */
     @PostMapping("pageByUser")
+    @Judger(fields = {"userId"})
     public RestResponse pageByUser(@RequestBody AttendanceRequest request) {
-        Long userId = request.getUserId();
-        Judge.id(userId);
         IPage<AttendanceResponse> pages = attendanceService.pageByUser(request);
         return RestResponse.success(pages);
     }

+ 7 - 7
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/oa/controller/LiftCertificateController.java

@@ -1,6 +1,7 @@
 package cn.com.ty.lift.enterprise.oa.controller;
 
 import cn.com.ty.lift.common.utils.Judge;
+import cn.com.ty.lift.common.utils.Judger;
 import cn.com.ty.lift.enterprise.common.CountPage;
 import cn.com.ty.lift.enterprise.common.Values;
 import cn.com.ty.lift.enterprise.oa.dto.LiftCertificateRequest;
@@ -41,9 +42,8 @@ public class LiftCertificateController {
      * @return RestResponse
      */
     @PostMapping("findOne")
+    @Judger(fields = {"id"})
     public RestResponse findOne(@RequestBody LiftCertificateRequest request) {
-        Long id = request.getId();
-        Judge.id(id);
         LiftCertificateResponse result = liftCertificateService.findByIdWithInfo(request);
         return RestResponse.success(result);
     }
@@ -54,6 +54,7 @@ public class LiftCertificateController {
      * @return RestResponse
      */
     @PostMapping("list")
+    @Judger(fields = "mtCompanyId")
     public RestResponse list(@RequestBody LiftCertificateRequest request) {
         IPage<LiftCertificateResponse> pages = liftCertificateService.pageByCondition(request);
         long count = liftCertificateService.countByCondition(request);
@@ -67,11 +68,11 @@ public class LiftCertificateController {
      * @return RestResponse
      */
     @PostMapping("modify")
-    public RestResponse modify(@RequestBody LiftCertificate entity) {
+    public RestResponse modify(@Valid @RequestBody LiftCertificate entity) {
         Long id = entity.getId();
         Long ownerId = entity.getOwnerId();
         Long mtCompanyId = entity.getMtCompanyId();
-        Judge.id(id, ownerId, mtCompanyId);
+        Judge.id(id);
         LiftCertificate certificate = liftCertificateService.findByUserAndMtCompany(id, ownerId, mtCompanyId);
         Judge.notNull(certificate,Values.Lc.CertNotExist);
         boolean result = liftCertificateService.updateById(entity);
@@ -84,11 +85,10 @@ public class LiftCertificateController {
      * @return RestResponse
      */
     @PostMapping("audit")
+    @Judger(fields = {"id"})
     public RestResponse audit(@RequestBody LiftCertificateRequest request) {
-        Long id = request.getId();
-        Judge.id(id);
         //0:无证,1:待审核,2:审核未通过,3:审核通过,4:超期
-        LiftCertificate liftCertificate = liftCertificateService.getById(id);
+        LiftCertificate liftCertificate = liftCertificateService.getById(request.getId());
         Judge.notNull(liftCertificate);
         Judge.isTrue(Values.Lc.toAudit(liftCertificate.getStatus()), Values.Lc.MustToAudit);
         int status = request.isPass() ? Values.Lc.Status_AuditPass : Values.Lc.Status_AuditFail;

+ 3 - 0
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/oa/dto/AnnouncementRequest.java

@@ -1,5 +1,6 @@
 package cn.com.ty.lift.enterprise.oa.dto;
 
+import cn.com.ty.lift.common.utils.Judger;
 import cn.com.xwy.boot.controller.BaseRequestModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -15,9 +16,11 @@ public class AnnouncementRequest extends BaseRequestModel{
     /**
      * 主键id
      */
+    @Judger(message = "公告ID有误")
     private Long id;
     /**
      * 维保公司id
      */
+    @Judger(message = "维保公司ID有误")
     private Long mtCompanyId;
 }

+ 14 - 0
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/oa/dto/AttendanceRequest.java

@@ -1,5 +1,6 @@
 package cn.com.ty.lift.enterprise.oa.dto;
 
+import cn.com.ty.lift.common.utils.Judger;
 import cn.com.xwy.boot.controller.BaseRequestModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -18,14 +19,17 @@ public class AttendanceRequest extends BaseRequestModel{
     /**
      * 主键id
      */
+    @Judger(message = "签到记录ID有误")
     private Long id;
     /**
      * 维保公司id
      */
+    @Judger(message = "维保公司ID有误")
     private Long mtCompanyId;
     /**
      * 用户名称
      */
+    @Judger(message = "缺少用户名")
     private String username;
     /**
      * 签到开始时间
@@ -39,41 +43,49 @@ public class AttendanceRequest extends BaseRequestModel{
     /**
      * 上午上班时间
      */
+    @Judger(message = "缺少上午上班时间")
     private LocalTime topTime;
 
     /**
      * 上午下班时间
      */
+    @Judger(message = "缺少上午下班时间")
     private LocalTime downTime;
 
     /**
      * 下午上班时间
      */
+    @Judger(message = "缺少下午上班时间")
     private LocalTime topTimePm;
 
     /**
      * 下午下班时间
      */
+    @Judger(message = "缺少下午下班时间")
     private LocalTime downTimePm;
 
     /**
      * 加班上班时间
      */
+    @Judger(message = "缺少加班上班时间")
     private LocalTime topTimeOt;
 
     /**
      * 加班下班时间
      */
+    @Judger(message = "缺少加班下班时间")
     private LocalTime downTimeOt;
 
     /**
      * 经纬度
      */
+    @Judger(message = "缺少签到经纬度")
     private String coordinate;
 
     /**
      * 地址
      */
+    @Judger(message = "缺少签到地址")
     private String address;
 
     /**
@@ -82,7 +94,9 @@ public class AttendanceRequest extends BaseRequestModel{
      * 21 下午上班 22 下午下班
      * 31 加班上班 32 加班下班
      */
+    @Judger(message = "签到类型有误")
     private Integer type;
 
+    @Judger(message = "当前用户ID有误")
     private Long userId;
 }

+ 6 - 2
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/oa/dto/LiftCertificateRequest.java

@@ -1,11 +1,10 @@
 package cn.com.ty.lift.enterprise.oa.dto;
 
+import cn.com.ty.lift.common.utils.Judger;
 import cn.com.xwy.boot.controller.BaseRequestModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.time.LocalDateTime;
-
 /**
  * @author wcz
  * @date 2019/12/12
@@ -17,22 +16,27 @@ public class LiftCertificateRequest extends BaseRequestModel{
     /**
      * 主键id
      */
+    @Judger(message = "操作证ID有误")
     private Long id;
     /**
      * 维保公司id
      */
+    @Judger(message = "维保公司ID有误")
     private Long mtCompanyId;
     /**
      * 用户名称
      */
+    @Judger(message = "缺少用户名")
     private String username;
     /**
      * 操作证类型 1: 维保工操作证 (12:区域经理,13:维保工),2: 其他操作证
      */
+    @Judger(message = "缺少操作证类型")
     private String certificateType;
     /**
      * 操作证状态
      */
+    @Judger(message = "缺少操作证状态")
     private Integer status;
     /**
      * 审核是否通过 true:通过,false:不通过