Browse Source

需求:大修项目统计

别傲 5 years ago
parent
commit
0e279a3e2e

+ 3 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/capital/dao/mapper/CapitalRepairLiftRelevanceMapper.java

@@ -3,6 +3,7 @@ package cn.com.ty.lift.business.capital.dao.mapper;
 import cn.com.ty.lift.business.capital.dao.entity.CapitalRepairLiftRelevance;
 import cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalRepairRequest;
 import cn.com.ty.lift.business.common.CommonRequest;
+import cn.com.ty.lift.business.maintenance.dao.entity.model.CapitalCount;
 import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectCompanyResponse;
 import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectDetailResponse;
 import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectLiftResponse;
@@ -45,4 +46,6 @@ public interface CapitalRepairLiftRelevanceMapper extends BaseMapper<CapitalRepa
 
     long countDoingByUser(@Param("request") CommonRequest request);
 
+    CapitalCount countCapitalByUserId(@Param("request") CapitalRepairRequest request);
+
 }

+ 17 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/dao/entity/model/CapitalCount.java

@@ -0,0 +1,17 @@
+package cn.com.ty.lift.business.maintenance.dao.entity.model;
+
+import lombok.Data;
+
+/**
+ * @author bieao
+ * @date 2020/5/29
+ * @description 大修项目统计
+ */
+@Data
+public class CapitalCount {
+
+    private long noStart;
+    private long abuilding;
+    private long checkPending;
+    private long complete;
+}

+ 6 - 7
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/service/MaintenancePlanService.java

@@ -245,12 +245,11 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
                 messageList.add(plan);
             }
             //生成维保计划发送推送消息
-            for (MaintenancePlan plan : messageList) {
-                String workerName = commonMapper.queryUserNameById(plan.getWorkerId());
-                String creatorName = commonMapper.queryUserNameById(plan.getCreatorId());
-                sendCreateMessage(plan.getLiftId(), plan.getProjectId(),
-                        plan.getMtCompanyId(), request.getInterval(), request.getFirstTime(), plan.getType(), workerName, creatorName, plan.getWorkerId());
-            }
+            MaintenancePlan plan = messageList.get(0);
+            String workerName = commonMapper.queryUserNameById(plan.getWorkerId());
+            String creatorName = commonMapper.queryUserNameById(plan.getCreatorId());
+            sendCreateMessage(plan.getLiftId(), plan.getProjectId(), plan.getMtCompanyId(), request.getInterval(),
+                    request.getFirstTime(), plan.getType(), workerName, creatorName, plan.getWorkerId());
             return RestResponse.success(null, MessageUtils.get("msg.add.success"));
         } else {
             return RestResponse.fail(MessageUtils.get("msg.add.fail"));
@@ -383,7 +382,7 @@ public class MaintenancePlanService extends ServiceImpl<MaintenancePlanMapper, M
         LambdaQueryWrapper<MaintenancePlan> lambdaQueryWrapper = queryWrapper.lambda();
         lambdaQueryWrapper.eq(MaintenancePlan::getMtCompanyId, mtCompanyId);
         lambdaQueryWrapper.eq(MaintenancePlan::getLiftId, liftId);
-        lambdaQueryWrapper.ge(MaintenancePlan::getCount, periods);
+        lambdaQueryWrapper.gt(MaintenancePlan::getCount, periods);
         return list(lambdaQueryWrapper);
     }
 

+ 14 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/project/controller/ProjectAppController.java

@@ -5,6 +5,7 @@ import cn.com.ty.lift.business.capital.service.CapitalRepairService;
 import cn.com.ty.lift.business.capital.service.SignInService;
 import cn.com.ty.lift.business.framework.util.MessageUtils;
 import cn.com.ty.lift.business.library.dao.entity.model.request.LiftExtensionRequest;
+import cn.com.ty.lift.business.maintenance.dao.entity.model.CapitalCount;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.MaintenanceCount;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.request.MaintenanceRecordRequest;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.response.MaintenanceAppResponse;
@@ -311,6 +312,19 @@ public class ProjectAppController {
         return RestResponse.success(page, MessageUtils.get("msg.query.success"));
     }
 
+    /**
+     * @param request 用户ID、公司ID
+     * @return RestResponse 统计大修项目数量
+     * @description 根据用户ID和公司ID统计大修项目数量
+     * @date 2020/5/29 3:00 下午
+     */
+    @PostMapping("capital/count")
+    @Validation(fields = {"mtCompanyId", "userId"})
+    public RestResponse capitalCount(@Val @RequestBody CapitalRepairRequest request) {
+        CapitalCount result = projectAppService.countCapitalByUserId(request);
+        return RestResponse.success(result, MessageUtils.get("msg.query.success"));
+    }
+
     /**
      * @param request 大修项目id
      * @return RestResponse 电梯列表

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

@@ -8,6 +8,7 @@ import cn.com.ty.lift.business.library.dao.entity.PlatformCompanyLiftRelevance;
 import cn.com.ty.lift.business.library.dao.entity.model.request.LiftExtensionRequest;
 import cn.com.ty.lift.business.library.service.LiftService;
 import cn.com.ty.lift.business.library.service.PlatformCompanyLiftRelevanceService;
+import cn.com.ty.lift.business.maintenance.dao.entity.model.CapitalCount;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.MaintenanceCount;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.request.MaintenanceRecordRequest;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.response.MaintenanceAppResponse;
@@ -384,6 +385,16 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
         return capitalRepairLiftRelevanceMapper.findCapitalListByCompanyId(request.getPage(), request);
     }
 
+    /**
+     * @param request 用户ID、公司ID
+     * @return RestResponse 统计大修项目数量
+     * @description 根据用户ID和公司ID统计大修项目数量
+     * @date 2020/5/29 3:00 下午
+     */
+    public CapitalCount countCapitalByUserId(CapitalRepairRequest request) {
+        return capitalRepairLiftRelevanceMapper.countCapitalByUserId(request);
+    }
+
     /**
      * @param request 项目id
      * @return RestResponse 项目详情

+ 26 - 3
lift-business-service/src/main/resources/mapper/capital/CapitalRepairLiftRelevanceMapper.xml

@@ -29,7 +29,6 @@
             l.lift_type         AS liftType,
             l.use_company_code  AS useCompanyCode
         FROM capital_repair_lift_relevance crlr
-                 LEFT JOIN project_user pu ON crlr.project_id = pu.project_id
                  LEFT JOIN lift l ON crlr.lift_id = l.id
                  LEFT JOIN lift_brand lb ON l.lift_brand = lb.code
         WHERE crlr.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
@@ -53,12 +52,14 @@
         pu.user_id        AS userId,
         pu.is_monitor     AS isMonitor
         FROM capital_repair cr
-        LEFT JOIN project_user pu ON cr.id = pu.project_id
+        <if test="request.currentRoleCode == 'REGION_DIRECTOR' or request.currentRoleCode == 'CLERK' or request.currentRoleCode == 'ROLEMTWORK' ">
+            LEFT JOIN project_user pu ON cr.id = pu.project_id
+        </if>
         WHERE 1=1
         <if test="request.mtCompanyId!=null and request.mtCompanyId!=''">
             AND cr.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
         </if>
-        <if test="request.userId!=null and request.userId!=''">
+        <if test="request.currentRoleCode == 'REGION_DIRECTOR' or request.currentRoleCode == 'CLERK' or request.currentRoleCode == 'ROLEMTWORK' ">
             AND pu.user_id = #{request.userId,jdbcType=BIGINT}
         </if>
         <if test="request.projectStatus!=null and request.projectStatus!=''">
@@ -69,6 +70,28 @@
         </if>
     </select>
 
+    <!--app端 根据公司id统计大修项目数量 -->
+    <select id="countCapitalByUserId" parameterType="cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalRepairRequest"
+            resultType="cn.com.ty.lift.business.maintenance.dao.entity.model.CapitalCount">
+        SELECT
+            MAX(CASE t.project_status WHEN '1' THEN t.total ELSE 0 END) noStart,
+            MAX(CASE t.project_status WHEN '2' THEN t.total ELSE 0 END) abuilding,
+            MAX(CASE t.project_status WHEN '3' THEN t.total ELSE 0 END) checkPending,
+            MAX(CASE t.project_status WHEN '4' THEN t.total ELSE 0 END) complete
+        FROM (
+            SELECT count(1) total,
+                project_status
+            FROM capital_repair cr
+        <if test="request.currentRoleCode == 'REGION_DIRECTOR' or request.currentRoleCode == 'CLERK' or request.currentRoleCode == 'ROLEMTWORK' ">
+            LEFT JOIN project_user pu ON cr.id = pu.project_id
+        </if>
+        WHERE cr.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
+        <if test="request.currentRoleCode == 'REGION_DIRECTOR' or request.currentRoleCode == 'CLERK' or request.currentRoleCode == 'ROLEMTWORK' ">
+            AND pu.user_id = #{request.userId,jdbcType=BIGINT}
+        </if>
+        GROUP BY cr.project_status) t
+    </select>
+
     <!--app端 根据项目id查询项目详情 -->
     <select id="findProjectById" parameterType="cn.com.ty.lift.business.capital.dao.entity.model.request.CapitalRepairRequest"
             resultType="cn.com.ty.lift.business.project.dao.entity.model.response.ProjectDetailResponse">