Parcourir la source

Merge branches 'develop' and 'wanghaicheng' of http://132.232.206.88:3000/lift-manager/lift-server into wanghaicheng

wanghaicheng il y a 5 ans
Parent
commit
e37f8010ab

+ 13 - 2
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/dao/entity/model/request/MaintenanceRecordRequest.java

@@ -43,7 +43,7 @@ public class MaintenanceRecordRequest extends PageRequest {
      */
     @NotNull(message = "用户ID不能为空")
     @Min(value = 1, message = "用户ID有误")
-    private Long workerId;
+    private Long userId;
 
     /**
      * 维保计划状态
@@ -57,11 +57,22 @@ public class MaintenanceRecordRequest extends PageRequest {
     @NotBlank(message = "维保工经纬度不能为空")
     private String coordinate;
 
+    /**
+     * 当前日期
+     */
+    @NotNull(message = "当前日期不能为空")
+    private LocalDate currentTime;
+
     /**
      * 开始日期
      */
     @NotNull(message = "开始日期不能为空")
-    private LocalDate currentTime;
+    private LocalDate beginTime;
+
+    /**
+     * 当前用户角色
+     */
+    private String currentRoleCode;
 
     /**
      * 结束日期

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

@@ -7,6 +7,7 @@ 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.MaintenanceRecord;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.request.MaintenanceRecordRequest;
+import cn.com.ty.lift.business.maintenance.dao.entity.model.response.MaintenanceAppResponse;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.response.MaintenanceRecordResponse;
 import cn.com.ty.lift.business.maintenance.service.MaintenanceRecordService;
 import cn.com.ty.lift.business.project.dao.entity.model.ProjectAppUser;
@@ -176,15 +177,28 @@ public class ProjectAppController {
     }
 
     /**
-     * @param request 用户id和维保状态
+     * @param request 用户ID、公司ID
+     * @return RestResponse 统计保养数
+     * @description 根据用户ID和公司ID统计保养数
+     * @date 2020/1/6 11:29 上午
+     */
+    @PostMapping("maintenance/count")
+    @Validation(fields = {"mtCompanyId", "userId", "beginTime"})
+    public RestResponse count(@Val @RequestBody MaintenanceRecordRequest request) {
+        Map<String, Long> result = projectAppService.count(request);
+        return RestResponse.success(result, MessageUtils.get("msg.query.success"));
+    }
+
+    /**
+     * @param request 用户ID和维保状态
      * @return RestResponse 保养任务列表
-     * @description 根据用户id和维保状态查询维保计划任务列表
+     * @description 根据用户ID和维保状态查询维保计划任务列表
      * @date 2020/1/6 11:29 上午
      */
     @PostMapping("maintenance/planTask")
-    @Validation(fields = {"mtCompanyId", "workerId", "status", "currentTime"})
+    @Validation(fields = {"mtCompanyId", "userId", "status"})
     public RestResponse planTask(@Val @RequestBody MaintenanceRecordRequest request) {
-        Map<String, Object> result = projectAppService.planTask(request);
+        IPage<MaintenanceAppResponse> result = projectAppService.planTask(request);
         return RestResponse.success(result, MessageUtils.get("msg.query.success"));
     }
 
@@ -195,9 +209,9 @@ public class ProjectAppController {
      * @date 2020/4/24 5:03 下午
      */
     @PostMapping("maintenance/recordTask")
-    @Validation(fields = {"mtCompanyId", "workerId", "status", "currentTime"})
+    @Validation(fields = {"mtCompanyId", "userId", "status"})
     public RestResponse recordTask(@Val @RequestBody MaintenanceRecordRequest request) {
-        Map<String, Object> result = projectAppService.recordTask(request);
+        IPage<MaintenanceAppResponse> result = projectAppService.recordTask(request);
         return RestResponse.success(result, MessageUtils.get("msg.query.success"));
     }
 

+ 57 - 37
lift-business-service/src/main/java/cn/com/ty/lift/business/project/service/ProjectAppService.java

@@ -19,6 +19,7 @@ import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectLiftResp
 import cn.com.ty.lift.business.project.dao.entity.model.response.ProjectUserResponse;
 import cn.com.ty.lift.business.project.dao.mapper.ProjectMapper;
 import cn.com.ty.lift.business.project.dao.mapper.ProjectUserMapper;
+import cn.com.ty.lift.common.constants.CommonEnum;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -120,32 +121,60 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
         return baseMapper.findProjectById(request);
     }
 
+    /**
+     * @param request 用户ID,公司ID
+     * @return Map<String, Long> 统计分组结果
+     * @description 保养任务日历统计
+     * @date 2020/4/30 2:15 下午
+     */
+    public Map<String, Long> count(MaintenanceRecordRequest request) {
+        request.setEndTime(request.getBeginTime().with(TemporalAdjusters.lastDayOfMonth()));
+        //总经理查询所有保养任务
+        if (DefaultRole.HIGH_DIRECTOR.getCode().equals(request.getCurrentRoleCode())) {
+            request.setUserId(null);
+        }
+        List<MaintenanceAppResponse> planCountResult = maintenancePlanMapper.countPlanByWorkerId(request);
+        //统计待保养、超期的任务
+        Map<String, Long> planCollect = planCountResult.stream().collect(Collectors.groupingBy(MaintenanceAppResponse::getStatus, Collectors.counting()));
+
+        Long waitingMaintenance = planCollect.get(MaintenancePlanStatus.WAITING_MAINTENANCE.getCode());
+        Long overdue = planCollect.get(MaintenancePlanStatus.OVERDUE.getCode());
+
+        List<MaintenanceAppResponse> recordCountResult = maintenanceRecordMapper.countRecordByWorkerId(request);
+        //统计保养中、保养完成任务
+        Map<String, Long> recordCollect = recordCountResult.stream().collect(Collectors.groupingBy(MaintenanceAppResponse::getStatus, Collectors.counting()));
+
+        Long inProgress = recordCollect.get(MaintenanceRecordStatus.MAINTENANCE_DOING.getCode());
+        Long complete = recordCollect.get(MaintenanceRecordStatus.COMPLETE.getCode());
+
+        Map<String, Long> countMap = new HashMap<>();
+        countMap.put("inProgress", inProgress == null ? 0 : inProgress);
+        countMap.put("complete", complete == null ? 0 : complete);
+        countMap.put("overdue", overdue == null ? 0 : overdue);
+        countMap.put("waitingMaintenance", waitingMaintenance == null ? 0 : waitingMaintenance);
+        return countMap;
+    }
+
     /**
      * @param request 用户id和维保状态
      * @return RestResponse 保养任务列表 (待完成、超期)
      * @description 根据用户id和维保状态查询保养任务列表
      * @date 2020/1/6 11:29 上午
      */
-    public Map<String, Object> planTask(MaintenanceRecordRequest request) {
-        Map<String, Object> resultMap = new HashMap<>();
-        Map<String, Long> countMap = new HashMap<>();
-        request.setEndTime(request.getCurrentTime().with(TemporalAdjusters.lastDayOfMonth()));
+    public IPage<MaintenanceAppResponse> planTask(MaintenanceRecordRequest request) {
+        if (Objects.nonNull(request.getBeginTime())) {
+            request.setEndTime(request.getBeginTime().with(TemporalAdjusters.lastDayOfMonth()));
+        }
+        //总经理查询所有保养任务
+        if (DefaultRole.HIGH_DIRECTOR.getCode().equals(request.getCurrentRoleCode())) {
+            request.setUserId(null);
+        }
         IPage<MaintenanceAppResponse> page = maintenancePlanMapper.findPlanByWorkerId(request.getPage(), request);
-
         List<MaintenanceAppResponse> records = page.getRecords();
         if (CollUtil.isNotEmpty(records)) {
-            List<MaintenanceAppResponse> countResult = maintenancePlanMapper.countPlanByWorkerId(request);
-
-            //统计待保养、超期的任务
-            Map<String, Long> collect = countResult.stream().collect(Collectors.groupingBy(MaintenanceAppResponse::getStatus, Collectors.counting()));
-
-            Long waitingMaintenance = collect.get(MaintenancePlanStatus.WAITING_MAINTENANCE.getCode());
-            Long overdue = collect.get(MaintenancePlanStatus.OVERDUE.getCode());
-            countMap.put("overdue", overdue == null ? 0 : overdue);
-            countMap.put("waitingMaintenance", waitingMaintenance == null ? 0 : waitingMaintenance);
 
             Map<Long, List<MaintenanceAppResponse>> currentTaskMap = page.getRecords().stream().filter(entry ->
-                    Objects.equals(request.getWorkerId(), entry.getWorkerId())).collect(Collectors.groupingBy(MaintenanceAppResponse::getLiftId));
+                    Objects.equals(request.getUserId(), entry.getWorkerId())).collect(Collectors.groupingBy(MaintenanceAppResponse::getLiftId));
             List<MaintenanceAppResponse> taskList = new ArrayList<>();
             for (Map.Entry<Long, List<MaintenanceAppResponse>> entry : currentTaskMap.entrySet()) {
                 taskList.addAll(entry.getValue());
@@ -155,7 +184,7 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
                     .sorted(Comparator.comparing(MaintenanceAppResponse::getPlanDate)).collect(Collectors.toCollection(LinkedList::new));
 
             Map<Long, List<MaintenanceAppResponse>> taskMap = page.getRecords().stream().filter(entry ->
-                    !Objects.equals(request.getWorkerId(), entry.getWorkerId())).collect(Collectors.groupingBy(MaintenanceAppResponse::getLiftId));
+                    !Objects.equals(request.getUserId(), entry.getWorkerId())).collect(Collectors.groupingBy(MaintenanceAppResponse::getLiftId));
 
             taskList.clear();
             for (Map.Entry<Long, List<MaintenanceAppResponse>> entry : taskMap.entrySet()) {
@@ -167,9 +196,7 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
 
             page.setRecords(currentUserTaskList);
         }
-        resultMap.put("pageResult", page);
-        resultMap.put("count", countMap);
-        return resultMap;
+        return page;
     }
 
     /**
@@ -178,24 +205,19 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
      * @description 根据用户id和z维保状态查询保养任务列表
      * @date 2020/4/24 5:03 下午
      */
-    public Map<String, Object> recordTask(MaintenanceRecordRequest request) {
-        Map<String, Object> resultMap = new HashMap<>();
-        Map<String, Long> countMap = new HashMap<>();
-        request.setEndTime(request.getCurrentTime().with(TemporalAdjusters.lastDayOfMonth()));
+    public IPage<MaintenanceAppResponse> recordTask(MaintenanceRecordRequest request) {
+        if (Objects.nonNull(request.getBeginTime())) {
+            request.setEndTime(request.getBeginTime().with(TemporalAdjusters.lastDayOfMonth()));
+        }
+        //总经理查询所有保养任务
+        if (DefaultRole.HIGH_DIRECTOR.getCode().equals(request.getCurrentRoleCode())) {
+            request.setUserId(null);
+        }
         IPage<MaintenanceAppResponse> page = maintenanceRecordMapper.findRecordByWorkerId(request.getPage(), request);
         List<MaintenanceAppResponse> records = page.getRecords();
         if (CollUtil.isNotEmpty(records)) {
-            List<MaintenanceAppResponse> countResult = maintenanceRecordMapper.countRecordByWorkerId(request);
-            //统计保养中、保养完成任务
-            Map<String, Long> collect = countResult.stream().collect(Collectors.groupingBy(MaintenanceAppResponse::getStatus, Collectors.counting()));
-
-            Long inProgress = collect.get(MaintenanceRecordStatus.MAINTENANCE_DOING.getCode());
-            Long complete = collect.get(MaintenanceRecordStatus.COMPLETE.getCode());
-            countMap.put("inProgress", inProgress == null ? 0 : inProgress);
-            countMap.put("complete", complete == null ? 0 : complete);
-
             Map<Long, List<MaintenanceAppResponse>> currentTaskMap = page.getRecords().stream().filter(entry ->
-                    Objects.equals(request.getWorkerId(), entry.getWorkerId1())).collect(Collectors.groupingBy(MaintenanceAppResponse::getLiftId));
+                    Objects.equals(request.getUserId(), entry.getWorkerId1())).collect(Collectors.groupingBy(MaintenanceAppResponse::getLiftId));
             List<MaintenanceAppResponse> taskList = new ArrayList<>();
             for (Map.Entry<Long, List<MaintenanceAppResponse>> entry : currentTaskMap.entrySet()) {
                 taskList.addAll(entry.getValue());
@@ -204,7 +226,7 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
                     .sorted(Comparator.comparing(MaintenanceAppResponse::getPlanDate).reversed()).collect(Collectors.toCollection(LinkedList::new));
 
             Map<Long, List<MaintenanceAppResponse>> taskMap = page.getRecords().stream().filter(entry ->
-                    !Objects.equals(request.getWorkerId(), entry.getWorkerId1())).collect(Collectors.groupingBy(MaintenanceAppResponse::getLiftId));
+                    !Objects.equals(request.getUserId(), entry.getWorkerId1())).collect(Collectors.groupingBy(MaintenanceAppResponse::getLiftId));
 
             taskList.clear();
             for (Map.Entry<Long, List<MaintenanceAppResponse>> entry : taskMap.entrySet()) {
@@ -216,9 +238,7 @@ public class ProjectAppService extends ServiceImpl<ProjectMapper, Project> {
 
             page.setRecords(currentUserTaskList);
         }
-        resultMap.put("pageResult", page);
-        resultMap.put("count", countMap);
-        return resultMap;
+        return page;
     }
 
     /**

+ 12 - 9
lift-business-service/src/main/resources/mapper/maintenance/MaintenancePlanMapper.xml

@@ -127,17 +127,20 @@
 				 LEFT JOIN lift l ON mp.lift_id = l.id
 				 LEFT JOIN user_info ui ON mp.worker_id = ui.user_id
 		WHERE mp.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
-		<if test="request.workerId!=null and request.workerId!=''">
-			AND pu.user_id = #{request.workerId,jdbcType=BIGINT}
+		<if test="request.userId!=null">
+			AND pu.user_id = #{request.userId,jdbcType=BIGINT}
 		</if>
 		<if test="request.status!=null and request.status!=''">
 			AND mp.status = #{request.status,jdbcType=VARCHAR}
 		</if>
 		<if test="request.currentTime!=null">
-			AND <![CDATA[ mp.plan_date >= #{request.currentTime}]]>
+			AND <![CDATA[ mp.plan_date = #{request.currentTime}]]>
+		</if>
+		<if test="request.beginTime!=null">
+			AND <![CDATA[ mp.plan_date >= #{request.beginTime}]]>
 		</if>
 		<if test="request.endTime!=null">
-			AND <![CDATA[ mp.plan_date <= #{request.endTime,jdbcType=VARCHAR}]]>
+			AND <![CDATA[ mp.plan_date <= #{request.endTime}]]>
 		</if>
 	</select>
 
@@ -151,14 +154,14 @@
 		LEFT JOIN lift l ON mp.lift_id = l.id
 		LEFT JOIN user_info ui ON mp.worker_id = ui.user_id
 		WHERE mp.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
-		<if test="request.workerId!=null and request.workerId!=''">
-			AND pu.user_id = #{request.workerId,jdbcType=BIGINT}
+		<if test="request.userId!=null">
+			AND pu.user_id = #{request.userId,jdbcType=BIGINT}
 		</if>
-		<if test="request.currentTime!=null">
-			AND <![CDATA[ mp.plan_date >= #{request.currentTime}]]>
+		<if test="request.beginTime!=null">
+			AND <![CDATA[ mp.plan_date >= #{request.beginTime}]]>
 		</if>
 		<if test="request.endTime!=null">
-			AND <![CDATA[ mp.plan_date <= #{request.endTime,jdbcType=VARCHAR}]]>
+			AND <![CDATA[ mp.plan_date <= #{request.endTime}]]>
 		</if>
 	</select>
 

+ 12 - 9
lift-business-service/src/main/resources/mapper/maintenance/MaintenanceRecordMapper.xml

@@ -123,17 +123,20 @@
 		LEFT JOIN lift l ON mr.lift_id = l.id
 		LEFT JOIN user_info ui ON mr.worker_id = ui.user_id
 		WHERE mr.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
-		<if test="request.workerId!=null and request.workerId!=''">
-			AND mr.worker_id1 = #{request.workerId,jdbcType=BIGINT}
+		<if test="request.userId!=null">
+			AND mr.worker_id1 = #{request.userId,jdbcType=BIGINT}
 		</if>
 		<if test="request.status!=null and request.status!=''">
 			AND mr.status = #{request.status,jdbcType=VARCHAR}
 		</if>
         <if test="request.currentTime!=null">
-            AND <![CDATA[ mr.plan_date >= #{request.currentTime}]]>
+            AND <![CDATA[ mr.plan_date = #{request.currentTime}]]>
+        </if>
+        <if test="request.beginTime!=null">
+            AND <![CDATA[ mr.plan_date >= #{request.beginTime}]]>
         </if>
         <if test="request.endTime!=null">
-            AND <![CDATA[ mr.plan_date <= #{request.endTime,jdbcType=VARCHAR}]]>
+            AND <![CDATA[ mr.plan_date <= #{request.endTime}]]>
         </if>
 	</select>
 
@@ -146,14 +149,14 @@
                 LEFT JOIN lift l ON mr.lift_id = l.id
                 LEFT JOIN user_info ui ON mr.worker_id = ui.user_id
         WHERE mr.mt_company_id = #{request.mtCompanyId,jdbcType=BIGINT}
-        <if test="request.workerId!=null and request.workerId!=''">
-            AND mr.worker_id1 = #{request.workerId,jdbcType=BIGINT}
+        <if test="request.userId!=null">
+            AND mr.worker_id1 = #{request.userId,jdbcType=BIGINT}
         </if>
-        <if test="request.currentTime!=null">
-            AND <![CDATA[ mr.plan_date >= #{request.currentTime}]]>
+        <if test="request.beginTime!=null">
+            AND <![CDATA[ mr.plan_date >= #{request.beginTime}]]>
         </if>
         <if test="request.endTime!=null">
-            AND <![CDATA[ mr.plan_date <= #{request.endTime,jdbcType=VARCHAR}]]>
+            AND <![CDATA[ mr.plan_date <= #{request.endTime}]]>
         </if>
     </select>
 

+ 1 - 1
lift-common/src/main/java/cn.com.ty.lift.common/utils/ValuePool.java

@@ -127,7 +127,7 @@ public interface ValuePool {
     String   PATTERN_TELEPHONE         = "^1[345789]\\d{9}|0[1-9](\\d{1,2}\\-?)[1-9]\\d{6,7}$";
 
     static String beginTimeIllegalToEndTime(LocalDate begin, LocalDate end) {
-        return String.format("开始时间(%tF)不能于结束时间(%tF)", begin, end);
+        return String.format("开始时间(%tF)不能于结束时间(%tF)", begin, end);
     }
     //======================年检相关状态值和判断方法======================================
     /**