Sfoglia il codice sorgente

Merge branch 'develop' of http://132.232.206.88:3000/lift-manager/lift-server into feature-bieao

别傲 5 anni fa
parent
commit
9e78d8857c

+ 36 - 10
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/controller/MaintenanceRecordController.java

@@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.google.common.base.Splitter;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -50,14 +51,14 @@ import java.util.stream.Collectors;
 @RequestMapping("maintenance/record")
 public class MaintenanceRecordController {
 
-    private MaintenancePlanService      maintenancePlanService;
-    private MaintenanceRecordService    maintenanceRecordService;
-    private MtRecordCostService         mtRecordCostService;
-    private MtRecordImgService          mtRecordImgService;
-    private MaintenanceOptionService    maintenanceOptionService;
+    private MaintenancePlanService maintenancePlanService;
+    private MaintenanceRecordService maintenanceRecordService;
+    private MtRecordCostService mtRecordCostService;
+    private MtRecordImgService mtRecordImgService;
+    private MaintenanceOptionService maintenanceOptionService;
     private ProjectLiftRelevanceService projectLiftRelevanceService;
-    private EvaluationService           evaluationService;
-    private MaintenanceRecordMapper     maintenanceRecordMapper;
+    private EvaluationService evaluationService;
+    private MaintenanceRecordMapper maintenanceRecordMapper;
 
     /**
      * 根据条件分页查询维保-日常保养
@@ -71,7 +72,7 @@ public class MaintenanceRecordController {
         //保养单: 按照执行日期由近及远排序
         LocalDate planBegin = request.getPlanBegin();
         LocalDate planEnd = request.getPlanEnd();
-        if(Objects.nonNull(planBegin) && Objects.nonNull(planEnd)){
+        if (Objects.nonNull(planBegin) && Objects.nonNull(planEnd)) {
             Validate.isTrue(planBegin.isBefore(planEnd), ValuePool.beginTimeToEndTimeIllegal(planBegin, planEnd));
         }
         request.addDesc("work_date");
@@ -92,7 +93,7 @@ public class MaintenanceRecordController {
         //计划超期:按计划保养时间由近及远排序
         LocalDate planBegin = request.getPlanBegin();
         LocalDate planEnd = request.getPlanEnd();
-        if(Objects.nonNull(planBegin) && Objects.nonNull(planEnd)){
+        if (Objects.nonNull(planBegin) && Objects.nonNull(planEnd)) {
             Validate.isTrue(planBegin.isBefore(planEnd), ValuePool.beginTimeToEndTimeIllegal(planBegin, planEnd));
         }
         request.addDesc("plan_date");
@@ -140,6 +141,31 @@ public class MaintenanceRecordController {
     @PostMapping("one")
     @Validation(fields = {"id"})
     public RestResponse one(@Val @RequestBody MtRecordRequest request) {
+        MtRecordResponse entity = getMtRecordResponse(request);
+        return RestResponse.success(entity);
+    }
+
+    /**
+     * @param request 保养单id
+     * @return
+     * @description 获取多条保养单
+     * @date 2020/5/21 5:14 下午
+     */
+    @PostMapping("many")
+    public RestResponse many(@RequestBody MtRecordRequest request) {
+        List<MtRecordResponse> mtRecordResponseList = new ArrayList<>();
+        if (StringUtils.isNotBlank(request.getRecordIds())) {
+            String[] recordIdArray = request.getRecordIds().split(",");
+            for (String recordIdStr : recordIdArray) {
+                long recordId = Long.parseLong(recordIdStr);
+                request.setId(recordId);
+                mtRecordResponseList.add(getMtRecordResponse(request));
+            }
+        }
+        return RestResponse.success(mtRecordResponseList);
+    }
+
+    private MtRecordResponse getMtRecordResponse(@RequestBody @Val MtRecordRequest request) {
         MtRecordResponse entity = maintenanceRecordService.infoById(request);
         Validate.notNull(entity, ValuePool.MAINTENANCE_RECORD_NOT_EXIST);
         /**
@@ -166,7 +192,7 @@ public class MaintenanceRecordController {
         entity.setMtRecordImgs(mtRecordImgService.listByRecord(id));
         //评价
         entity.setEvaluation(evaluationService.findByRecord(id, ValuePool.EVALUATE_SOURCE_MAINTENANCE));
-        return RestResponse.success(entity);
+        return entity;
     }
 
     /**

+ 78 - 2
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/controller/PropertyMaintenanceController.java

@@ -1,24 +1,50 @@
 package cn.com.ty.lift.business.maintenance.controller;
 
+import cn.com.ty.lift.business.emergency.dto.RepairResponse;
+import cn.com.ty.lift.business.emergency.entity.EmergencyRepair;
+import cn.com.ty.lift.business.emergency.service.EmergencyRepairService;
+import cn.com.ty.lift.business.library.dao.entity.PlatformCompanyLiftRelevance;
+import cn.com.ty.lift.business.library.service.PlatformCompanyLiftRelevanceService;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.request.PropertyMaintenanceVO;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.request.PropertyVo;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.response.DynamicMessageResponse;
 import cn.com.ty.lift.business.maintenance.dao.entity.model.response.PropertyMtResponse;
 import cn.com.ty.lift.business.maintenance.service.PropertyService;
+import cn.com.ty.lift.business.project.dao.entity.Region;
+import cn.com.ty.lift.business.push.service.PushUserService;
+import cn.com.ty.lift.common.constants.ApiConstants;
+import cn.com.ty.lift.common.constants.CommonEnum;
+import cn.com.ty.lift.common.constants.WebSocketConstants;
+import cn.com.ty.lift.common.model.PushMessage;
+import cn.com.ty.lift.common.model.PushUserInfo;
+import cn.com.ty.lift.common.utils.SendMessageUtil;
+import cn.com.ty.lift.common.utils.ValuePool;
+import cn.com.ty.lift.common.verify.Validate;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.AllArgsConstructor;
+import org.springframework.jms.core.JmsMessagingTemplate;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
 @RestController
 @AllArgsConstructor
 @RequestMapping("property")
 public class PropertyMaintenanceController {
     private final PropertyService propertyService;
+    private final EmergencyRepairService emergencyRepairService;
+    private final PlatformCompanyLiftRelevanceService platformCompanyLiftRelevanceService;
+    private final JmsMessagingTemplate jmsMessagingTemplate;
+    private final PushUserService pushUserService;
 
     @PostMapping("maintenance")
     public RestResponse<?> maintenance(@RequestBody PropertyMaintenanceVO propertyMaintenanceVO) {
@@ -53,8 +79,58 @@ public class PropertyMaintenanceController {
         return propertyService.queryJoinProjectList(propertyVo);
     }
 
-    @PostMapping("repair")
+    @PostMapping("repair/list")
     public RestResponse<?> repair(@RequestBody PropertyVo propertyVo) {
         return propertyService.queryRepairList(propertyVo);
     }
-}
+
+    @PostMapping("repair/add")
+    public RestResponse<?> repairAdd(@RequestBody EmergencyRepair entity) {
+        Long mtCompanyId = entity.getMtCompanyId();
+        Long liftId = entity.getLiftId();
+        int repairing = emergencyRepairService.countRepairing(mtCompanyId, liftId);
+        Validate.notTrue(repairing > 0, ValuePool.EMERGENCY_HAVE_REPAIRING);
+        PlatformCompanyLiftRelevance relevance = platformCompanyLiftRelevanceService.findByMtCompanyAndLift(entity.getMtCompanyId(), entity.getLiftId());
+        if (Objects.nonNull(relevance)) {
+            Validate.notTrue(CommonEnum.LiftStatus.ANNUAL_INSPECTION.getCode().equals(relevance.getLiftCompanyStatus()), ValuePool.EMERGENCY_LIFT_IS_IN_INSPECTION);
+        }
+        //派单时间 急修单创建时间
+        entity.setHasEvaluate(0);
+        entity.setAssignTime(LocalDateTime.now());
+        entity.setStatus(ValuePool.EMERGENCY_STATE_TO_DO);
+        entity.setCreateDate(LocalDateTime.now());
+        boolean result = emergencyRepairService.save(entity);
+        if (result) {
+            //消息推送
+            Long id = entity.getId();
+            List<Long> userIds = new ArrayList<>();
+            Region region = pushUserService.findRegionByEmergencyRepair(id, mtCompanyId);
+            if (Objects.nonNull(region)) {
+                userIds.add(region.getUserId());
+            }
+            List<PushUserInfo> director = pushUserService.listHighDirector(mtCompanyId);
+            List<PushUserInfo> pushUserInfos = new ArrayList<>(director);
+            if (!userIds.isEmpty()) {
+                List<PushUserInfo> userInfos = pushUserService.listByUserIds(mtCompanyId, userIds);
+                pushUserInfos.addAll(userInfos);
+            }
+            if (!pushUserInfos.isEmpty()) {
+                RepairResponse info = emergencyRepairService.infoById(id);
+                PushMessage pushMessage = PushMessage.emergencyAssign(info.getAreaName(), info.getProjectName(), info.getDevicePosition(),
+                        info.getRegistrationCode(), info.getCallerDate(), info.getIsTrapped(),
+                        info.getCallerFaultDescription(), info.getWorkerName());
+                if (ApiConstants.ACCESS_TYPE_PUBLIC == entity.getMobileType()) {
+                    pushMessage = PushMessage.emergencyAssignByProperty(info.getAreaName(), info.getProjectName(), info.getDevicePosition(),
+                            info.getRegistrationCode(), info.getCallerDate(), info.getIsTrapped(),
+                            info.getCallerFaultDescription(), info.getWorkerName());
+                    //物业端发起的急修要将消息推送到pc端
+                    List<Long> pushUserIds = pushUserInfos.stream().map(PushUserInfo::getUserId).collect(Collectors.toList());
+                    SendMessageUtil.sendMessageToPC(jmsMessagingTemplate, pushUserIds, pushMessage.getContent(),
+                            WebSocketConstants.MessageType.EMERGENCY_MSG);
+                }
+                pushMessage.sendTokenOnPlatform(jmsMessagingTemplate, pushUserInfos);
+            }
+        }
+        return RestResponse.success(result);
+    }
+}

+ 5 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/dao/entity/model/request/MtRecordRequest.java

@@ -85,4 +85,9 @@ public class MtRecordRequest extends PageRequest {
      */
     @Min(value = 1, message = "维保记录收费项ID有误")
     private Long mtRecordCostId;
+
+    /**
+     * 维保记录id集合
+     */
+    private String recordIds;
 }

+ 2 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/dao/mapper/MaintenanceRecordMapper.java

@@ -66,6 +66,8 @@ public interface MaintenanceRecordMapper extends BaseMapper<MaintenanceRecord> {
 
     MtRecordResponse infoById(@Param("cond") MtRecordRequest request);
 
+    List<MtRecordResponse> listByIds(MtRecordRequest request);
+
     IPage<MtRecordResponse> pageByLift(IPage<MtRecordResponse> page, @Param("cond") MtRecordRequest request);
 
     @Select("SELECT id FROM maintenance_record WHERE mt_plan_id = #{planId}")

+ 9 - 0
lift-business-service/src/main/java/cn/com/ty/lift/business/maintenance/service/MaintenanceRecordService.java

@@ -342,6 +342,15 @@ public class MaintenanceRecordService extends ServiceImpl<MaintenanceRecordMappe
         return baseMapper.infoById(request);
     }
 
+    /**
+     * 批量打印
+     * @param request
+     * @return
+     */
+    public List<MtRecordResponse> listByIds(MtRecordRequest request) {
+        return baseMapper.listByIds(request);
+    }
+
     private void rollback() {
         //强制手动事务回滚
         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

+ 27 - 0
lift-business-service/src/main/resources/mapper/maintenance/MaintenanceRecordMapper.xml

@@ -288,6 +288,33 @@
         </where>
     </select>
 
+    <!--日常保养-保养单:根据ids查询,带关联信息-->
+    <select id="listByIds" resultMap="BaseResultMap"
+            parameterType="cn.com.ty.lift.business.maintenance.dao.entity.model.request.MtRecordRequest">
+        SELECT
+        mr.*,
+        li.use_company_code,
+        li.registration_code,
+        li.category,
+        mc.name AS mt_company_name,
+        ui.`name` AS worker_name,
+        pr.project_name,
+        pr.project_code,
+        ev.star_level
+        FROM
+        maintenance_record mr
+        LEFT JOIN lift li ON mr.lift_id = li.id
+        LEFT JOIN user_info ui ON mr.worker_id1 = ui.user_id
+        LEFT JOIN project pr ON mr.project_id = pr.id AND mr.mt_company_id = pr.mt_company_id
+        LEFT JOIN evaluation ev ON mr.id = ev.record_id AND ev.source = 1
+        LEFT JOIN maintenance_company mc ON mr.mt_company_id = mc.id
+        <where>
+            <if test="cond.id != null and cond.id > 0">
+                mr.id = #{cond.id}
+            </if>
+        </where>
+    </select>
+
     <select id="pageByLift" resultMap="BaseResultMap"
             parameterType="cn.com.ty.lift.business.maintenance.dao.entity.model.request.MtRecordRequest">
         SELECT