Explorar el Código

优化 定时任务

java110 hace 5 años
padre
commit
c66b9a9549

+ 10 - 0
java110-bean/src/main/java/com/java110/dto/repair/RepairDto.java

@@ -77,6 +77,8 @@ public class RepairDto extends PageDto implements Serializable {
     private String repairObjName;
     private List<PhotoVo> photos;
 
+    private String returnVisitFlag;
+
 
     public String getRepairName() {
         return repairName;
@@ -295,4 +297,12 @@ public class RepairDto extends PageDto implements Serializable {
     public void setStatess(String[] statess) {
         this.statess = statess;
     }
+
+    public String getReturnVisitFlag() {
+        return returnVisitFlag;
+    }
+
+    public void setReturnVisitFlag(String returnVisitFlag) {
+        this.returnVisitFlag = returnVisitFlag;
+    }
 }

+ 4 - 1
java110-db/src/main/resources/mapper/community/RepairServiceDaoImplMapper.xml

@@ -107,7 +107,7 @@
         repairId,t.tel,t.status_cd,t.status_cd statusCd,t.state,t.community_id,t.community_id communityId,t.b_id,t.b_id
         bId,
         d.name stateName,
-        rs.repair_type_name repairTypeName,rs.repair_way repairWay,
+        rs.repair_type_name repairTypeName,rs.repair_way repairWay,rs.return_visit_flag returnVisitFlag
         t.repair_obj_type,t.repair_obj_id,t.repair_obj_name,t.repair_obj_type repairObjType,t.repair_obj_id repairObjId,t.repair_obj_name repairObjName
         <if test="staffId != null and staffId != ''">
             ,rru.state repairDispatchState,rru.context repairDispatchContext,td.name repairDispatchStateName
@@ -131,6 +131,9 @@
         <if test="repairWay !=null and repairWay != ''">
             and rs.repair_way= #{repairWay}
         </if>
+        <if test="returnVisitFlag !=null and returnVisitFlag != ''">
+            and rs.return_visit_flag in ('001','002')
+        </if>
         <if test="repairName !=null and repairName != ''">
             and t.repair_name= #{repairName}
         </if>

+ 103 - 0
service-job/src/main/java/com/java110/job/task/repair/ReturnVisitRepairTemplate.java

@@ -0,0 +1,103 @@
+package com.java110.job.task.repair;
+
+import com.java110.dto.community.CommunityDto;
+import com.java110.dto.repair.RepairDto;
+import com.java110.dto.task.TaskDto;
+import com.java110.intf.community.IRepairInnerServiceSMO;
+import com.java110.intf.community.IRepairTypeUserInnerServiceSMO;
+import com.java110.job.quartz.TaskSystemQuartz;
+import com.java110.po.owner.RepairPoolPo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @program: MicroCommunity
+ * @description: 定时任务 轮训派单
+ * @author: wuxw
+ * @create: 2020-06-15 13:35
+ **/
+@Component
+public class ReturnVisitRepairTemplate extends TaskSystemQuartz {
+
+    private static Logger logger = LoggerFactory.getLogger(ReturnVisitRepairTemplate.class);
+
+    private static final int EXPIRE_IN = 7200;
+
+    @Autowired
+    private IRepairInnerServiceSMO repairInnerServiceSMOImpl;
+
+    @Autowired
+    private IRepairTypeUserInnerServiceSMO repairTypeUserInnerServiceSMOImpl;
+
+    @Override
+    protected void process(TaskDto taskDto) {
+        logger.debug("开始执行微信模板信息推送" + taskDto.toString());
+
+        // 获取小区
+        List<CommunityDto> communityDtos = getAllCommunity();
+
+        for (CommunityDto communityDto : communityDtos) {
+            try {
+                returnVisitRepair(taskDto, communityDto);
+            } catch (Exception e) {
+                logger.error("推送消息失败", e);
+            }
+        }
+    }
+
+    /**
+     * 轮训派单
+     *
+     * @param taskDto
+     * @param communityDto
+     */
+    private void returnVisitRepair(TaskDto taskDto, CommunityDto communityDto) {
+        RepairDto repairDto = new RepairDto();
+        repairDto.setCommunityId(communityDto.getCommunityId());
+        repairDto.setStatess(new String[]{RepairDto.STATE_RETURN_VISIT, RepairDto.STATE_APPRAISE});
+        repairDto.setReturnVisitFlag("001,002");
+        repairDto.setPage(1);
+        repairDto.setRow(1000);
+        //查询需要程序轮训派单 订单
+        List<RepairDto> repairDtos = repairInnerServiceSMOImpl.queryRepairs(repairDto);
+
+        for (RepairDto tmpRepairDto : repairDtos) {
+
+            doReturnVisitRepair(tmpRepairDto);
+
+        }
+
+    }
+
+    /**
+     * 将改订单 派给下面 师傅
+     *
+     * @param tmpRepairDto
+     */
+    private void doReturnVisitRepair(RepairDto tmpRepairDto) {
+
+        if ("001".equals(tmpRepairDto.getReturnVisitFlag())) {
+            RepairPoolPo repairPoolPo = new RepairPoolPo();
+            repairPoolPo.setRepairId(tmpRepairDto.getRepairId());
+            repairPoolPo.setState(RepairDto.STATE_COMPLATE);
+            repairInnerServiceSMOImpl.updateRepair(repairPoolPo);
+            return;
+        }
+
+        if ("002".equals(tmpRepairDto.getReturnVisitFlag()) && RepairDto.STATE_APPRAISE.equals(tmpRepairDto.getState())) {
+            RepairPoolPo repairPoolPo = new RepairPoolPo();
+            repairPoolPo.setRepairId(tmpRepairDto.getRepairId());
+            repairPoolPo.setState(RepairDto.STATE_COMPLATE);
+            repairInnerServiceSMOImpl.updateRepair(repairPoolPo);
+            return;
+        }
+
+
+    }
+
+
+}