Ver código fonte

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

bieao 5 anos atrás
pai
commit
9a3017b489

+ 2 - 2
lift-business-service/src/main/java/cn/com/ty/lift/business/library/service/LiftService.java

@@ -312,8 +312,8 @@ public class LiftService extends ServiceImpl<LiftMapper, Lift> {
                     Project project = optional.get();
                     num = project.getNum();
                 }
-                //获取该公司企业电梯关联表的实际电梯台量
-                int currentNum = platformService.countLiftNum(mtCompanyId);
+                //判断当前项目下实际台量是否大于项目里设置的台量
+                int currentNum = projectRelevanceService.countLiftNum(mtCompanyId, projectId);
                 if (currentNum >= num) {
                     return RestResponse.fail(MessageUtils.get("msg.project.limit.num"));
                 }

+ 5 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/project/dao/entity/ProjectLiftRelevance.java

@@ -70,4 +70,9 @@ public class ProjectLiftRelevance extends BaseEntity {
      * 维保间隔
      */
     private Integer planInterval;
+
+    /**
+     * 是否删除 0否 1是
+     */
+    private Integer deleteFlag;
 }

+ 23 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectAppService.java

@@ -12,6 +12,7 @@ import cn.com.ty.lift.business.maintenance.dao.entity.model.request.MaintenanceR
 import cn.com.ty.lift.business.maintenance.dao.entity.model.response.MaintenanceAppResponse;
 import cn.com.ty.lift.business.maintenance.dao.mapper.MaintenancePlanMapper;
 import cn.com.ty.lift.business.maintenance.dao.mapper.MaintenanceRecordMapper;
+import cn.com.ty.lift.business.maintenance.service.MaintenanceService;
 import cn.com.ty.lift.business.project.dao.entity.Project;
 import cn.com.ty.lift.business.project.dao.entity.ProjectLiftRelevance;
 import cn.com.ty.lift.business.project.dao.entity.model.ProjectAppUser;
@@ -53,6 +54,9 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
     @Resource
     private LiftService liftService;
 
+    @Resource
+    private ProjectService projectService;
+
     @Resource
     private ProjectUserMapper projectUserMapper;
 
@@ -71,6 +75,9 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
     @Resource
     private ProjectLiftRelevanceService projectLiftRelevanceService;
 
+    @Resource
+    private MaintenanceService maintenanceService;
+
     @Resource
     private RedisTemplate redisTemplate;
 
@@ -122,6 +129,22 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
         }
         Long liftId = lift.getId();
         Long mtCompanyId = request.getMtCompanyId();
+        Long projectId = request.getProjectId();
+        Optional<Project> optional = projectService.getOne(projectId);
+        int num = 0;
+        if (optional.isPresent()) {
+            Project project = optional.get();
+            num = project.getNum();
+        }
+        //判断当前项目下实际台量是否大于项目里设置的台量
+        int currentNum = projectLiftRelevanceService.countLiftNum(mtCompanyId, projectId);
+        if (currentNum >= num) {
+            return RestResponse.fail(MessageUtils.get("msg.project.limit.num"));
+        }
+        //判断当前公司台量是否大于企业设置的台量
+        if (maintenanceService.judge(mtCompanyId))
+            return RestResponse.fail(MessageUtils.get("msg.limit.num"));
+
         PlatformCompanyLiftRelevance companyLiftEntry = liftService.saveCompanyLiftInfo(liftId, mtCompanyId);
         if (Objects.isNull(companyLiftEntry)) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

+ 16 - 1
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectLiftRelevanceService.java

@@ -3,7 +3,6 @@ package cn.com.ty.lift.business.project.service;
 import cn.com.ty.lift.business.capital.dao.mapper.CommonMapper;
 import cn.com.ty.lift.business.framework.util.MessageUtils;
 import cn.com.ty.lift.business.library.dao.entity.Lift;
-import cn.com.ty.lift.business.library.dao.entity.model.request.LiftExtensionRequest;
 import cn.com.ty.lift.business.library.dao.entity.model.request.LiftRequest;
 import cn.com.ty.lift.business.library.service.LiftService;
 import cn.com.ty.lift.business.library.service.PlatformCompanyLiftRelevanceService;
@@ -97,6 +96,22 @@ public class ProjectLiftRelevanceService extends ServiceImpl<ProjectLiftRelevanc
         return baseMapper.count(mtCompanyId, projectStatus);
     }
 
+    /**
+     * @param mtCompanyId 公司id
+     * @param projectId 项目id
+     * @return 计算结果
+     * @description 计算公司某项目下的电梯台量
+     * @date 2020/5/20 9:54 上午
+     */
+    public int countLiftNum(Long mtCompanyId, Long projectId) {
+        QueryWrapper<ProjectLiftRelevance> queryWrapper = new QueryWrapper<>();
+        LambdaQueryWrapper<ProjectLiftRelevance> lambdaQueryWrapper = queryWrapper.lambda();
+        lambdaQueryWrapper.eq(ProjectLiftRelevance::getMtCompanyId, mtCompanyId);
+        lambdaQueryWrapper.ne(ProjectLiftRelevance::getProjectId, projectId);
+        lambdaQueryWrapper.eq(ProjectLiftRelevance::getDeleteFlag, 0);
+        return count(lambdaQueryWrapper);
+    }
+
     /**
      * @param liftId   电梯id
      * @param projectId 项目id