wuxw лет назад: 3
Родитель
Сommit
5c47192d76

+ 17 - 0
java110-bean/src/main/java/com/java110/dto/maintainancePlan/MaintainancePlanDto.java

@@ -15,6 +15,13 @@ import java.util.Date;
  **/
 public class MaintainancePlanDto extends PageDto implements Serializable {
 
+    public static final String STATE_STOP = "2020026";
+    public static final String STATE_RUN = "2020025";
+
+    public static final String INSPECTION_PLAN_PERIOD_DAY = "2020022"; // 连续每天
+    public static final String INSPECTION_PLAN_PERIOD_WEEK = "2020023"; // 连续每周
+    public static final String INSPECTION_PLAN_PERIOD_NEXT_DAY = "2020024"; // 固定天
+
     private String maintainanceDay;
     private String planPeriod;
     private String planPeriodName;
@@ -35,6 +42,8 @@ public class MaintainancePlanDto extends PageDto implements Serializable {
     private long machineCount;
     private long staffCount;
 
+    private String curTime;
+
 
     private Date createTime;
 
@@ -209,4 +218,12 @@ public class MaintainancePlanDto extends PageDto implements Serializable {
     public void setStaffCount(long staffCount) {
         this.staffCount = staffCount;
     }
+
+    public String getCurTime() {
+        return curTime;
+    }
+
+    public void setCurTime(String curTime) {
+        this.curTime = curTime;
+    }
 }

+ 6 - 0
java110-db/src/main/resources/mapper/community/MaintainancePlanV1ServiceDaoImplMapper.xml

@@ -39,6 +39,10 @@
         <if test="createUserId !=null and createUserId != ''">
             and t.create_user_id= #{createUserId}
         </if>
+        <if test="curTime !=null ">
+            and t.start_date &lt; #{curTime}
+            and t.end_date &gt; #{curTime}
+        </if>
         <if test="endDate !=null and endDate != ''">
             and t.end_date= #{endDate}
         </if>
@@ -189,4 +193,6 @@
 
     </select>
 
+
+
 </mapper>

+ 27 - 2
java110-db/src/main/resources/mapper/community/MaintainanceTaskV1ServiceDaoImplMapper.xml

@@ -34,7 +34,7 @@
             and t.act_ins_time= #{actInsTime}
         </if>
         <if test="planInsTime !=null and planInsTime != ''">
-            and t.plan_ins_time= #{planInsTime}
+            and DATE_FORMAT(t.plan_ins_time,'%Y-%m-%d')= #{planInsTime}
         </if>
         <if test="originalPlanUserName !=null and originalPlanUserName != ''">
             and t.original_plan_user_name= #{originalPlanUserName}
@@ -156,7 +156,7 @@
             and t.act_ins_time= #{actInsTime}
         </if>
         <if test="planInsTime !=null and planInsTime != ''">
-            and t.plan_ins_time= #{planInsTime}
+            and DATE_FORMAT(t.plan_ins_time,'%Y-%m-%d')= #{planInsTime}
         </if>
         <if test="originalPlanUserName !=null and originalPlanUserName != ''">
             and t.original_plan_user_name= #{originalPlanUserName}
@@ -204,4 +204,29 @@
 
     </select>
 
+    <!-- 保存活动信息 add by wuxw 2018-07-03 -->
+    <insert id="insertMaintainanceTask" parameterType="Map">
+        insert into maintainance_task(
+        plan_user_id,act_ins_time,plan_ins_time,original_plan_user_name,transfer_desc,act_user_name,auth_desc,original_plan_user_id,task_type,plan_id,plan_end_time,plan_user_name,community_id,act_user_id,task_id,mps_id
+        ) values
+        <foreach collection="tasks" item="item" separator=",">
+            (
+            #{item.planUserId},#{item.actInsTime},#{item.planInsTime},#{item.originalPlanUserName},#{item.transferDesc},#{item.actUserName},#{item.authDesc},#{item.originalPlanUserId},#{item.taskType},#{item.planId},#{item.planEndTime},#{item.planUserName},#{item.communityId},#{item.actUserId},#{item.taskId},#{item.mpsId}
+            )
+        </foreach>
+    </insert>
+
+    <!-- 保存活动信息 add by wuxw 2018-07-03 -->
+    <insert id="insertMaintainanceTaskDetail" parameterType="Map">
+        insert into maintainance_task_detail(
+        send_flag,point_end_time,inspection_time,sort_number,machine_name,act_user_name,task_detail_id,machine_id,point_start_time,state,community_id,act_user_id,task_id
+        ) values
+        <foreach collection="tasks" item="task" separator=",">
+            (
+            #{task.sendFlag},#{task.pointEndTime},#{task.inspectionTime},#{task.sortNumber},#{task.machineName},#{task.actUserName},#{task.taskDetailId},#{task.machineId},#{task.pointStartTime},#{task.state},#{task.communityId},#{task.actUserId},#{task.taskId}
+            )
+        </foreach>
+    </insert>
+
+
 </mapper>

+ 8 - 0
java110-interface/src/main/java/com/java110/intf/community/IMaintainanceTaskV1InnerServiceSMO.java

@@ -18,6 +18,7 @@ package com.java110.intf.community;
 import com.java110.config.feign.FeignConfiguration;
 import com.java110.dto.maintainanceTask.MaintainanceTaskDto;
 import com.java110.po.maintainanceTask.MaintainanceTaskPo;
+import com.java110.po.maintainanceTaskDetail.MaintainanceTaskDetailPo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -65,4 +66,11 @@ public interface IMaintainanceTaskV1InnerServiceSMO {
      */
     @RequestMapping(value = "/queryMaintainanceTasksCount", method = RequestMethod.POST)
     int queryMaintainanceTasksCount(@RequestBody MaintainanceTaskDto maintainanceTaskDto);
+
+    @RequestMapping(value = "/saveMaintainanceTask", method = RequestMethod.POST)
+    int saveMaintainanceTask(@RequestBody List<MaintainanceTaskPo> maintainanceTaskPos);
+
+    @RequestMapping(value = "/saveMaintainanceTaskDetail", method = RequestMethod.POST)
+    int saveMaintainanceTaskDetail(@RequestBody List<MaintainanceTaskDetailPo> maintainanceTaskDetailPos);
+
 }

+ 3 - 0
service-community/src/main/java/com/java110/community/dao/IMaintainanceTaskV1ServiceDao.java

@@ -74,4 +74,7 @@ public interface IMaintainanceTaskV1ServiceDao {
      */
     int queryMaintainanceTasksCount(Map info);
 
+    int insertMaintainanceTask(Map task);
+
+    int insertMaintainanceTaskDetail(Map task);
 }

+ 10 - 0
service-community/src/main/java/com/java110/community/dao/impl/MaintainanceTaskV1ServiceDaoImpl.java

@@ -108,5 +108,15 @@ public class MaintainanceTaskV1ServiceDaoImpl extends BaseServiceDao implements
         return Integer.parseInt(businessMaintainanceTaskInfos.get(0).get("count").toString());
     }
 
+    @Override
+    public int insertMaintainanceTask(Map info) {
+        return sqlSessionTemplate.update("maintainanceTaskV1ServiceDaoImpl.insertMaintainanceTask", info);
+    }
+
+    @Override
+    public int insertMaintainanceTaskDetail(Map info) {
+        return sqlSessionTemplate.update("maintainanceTaskV1ServiceDaoImpl.insertMaintainanceTaskDetail", info);
+    }
+
 
 }

+ 26 - 0
service-community/src/main/java/com/java110/community/smo/impl/MaintainanceTaskV1InnerServiceSMOImpl.java

@@ -20,6 +20,7 @@ import com.java110.community.dao.IMaintainanceTaskV1ServiceDao;
 import com.java110.intf.community.IMaintainanceTaskV1InnerServiceSMO;
 import com.java110.dto.maintainanceTask.MaintainanceTaskDto;
 import com.java110.po.maintainanceTask.MaintainanceTaskPo;
+import com.java110.po.maintainanceTaskDetail.MaintainanceTaskDetailPo;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.dto.user.UserDto;
@@ -29,7 +30,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 类表述: 服务之前调用的接口实现类,不对外提供接口能力 只用于接口建调用
@@ -86,4 +89,27 @@ public class MaintainanceTaskV1InnerServiceSMOImpl extends BaseServiceSMO implem
     public int queryMaintainanceTasksCount(@RequestBody MaintainanceTaskDto maintainanceTaskDto) {
         return maintainanceTaskV1ServiceDaoImpl.queryMaintainanceTasksCount(BeanConvertUtil.beanCovertMap(maintainanceTaskDto));    }
 
+
+    @Override
+    public int saveMaintainanceTask(@RequestBody List<MaintainanceTaskPo> maintainanceTaskPos) {
+        Map task = new HashMap();
+        List<Map> list = new ArrayList<>();
+        for (MaintainanceTaskPo maintainanceTaskpo : maintainanceTaskPos) {
+            list.add(BeanConvertUtil.beanCovertMap(maintainanceTaskpo));
+        }
+        task.put("tasks", list);
+        return maintainanceTaskV1ServiceDaoImpl.insertMaintainanceTask(task);
+    }
+
+    @Override
+    public int saveMaintainanceTaskDetail(@RequestBody List<MaintainanceTaskDetailPo> maintainanceTaskDetailPos) {
+        Map task = new HashMap();
+
+        List<Map> list = new ArrayList<>();
+        for (MaintainanceTaskDetailPo maintainanceTaskpo : maintainanceTaskDetailPos) {
+            list.add(BeanConvertUtil.beanCovertMap(maintainanceTaskpo));
+        }
+        task.put("tasks", list);
+        return maintainanceTaskV1ServiceDaoImpl.insertMaintainanceTaskDetail(task);
+    }
 }

+ 2 - 2
service-job/src/main/java/com/java110/job/task/inspection/GeneratorInspectionTaskTemplate.java

@@ -213,7 +213,7 @@ public class GeneratorInspectionTaskTemplate extends TaskSystemQuartz {
         // 判断 员工是否上班
 
         ScheduleClassesStaffDto scheduleClassesStaffDto = new ScheduleClassesStaffDto();
-        scheduleClassesStaffDto.setStaffId(tmpInspectionPlanStaffDto.getIpStaffId());
+        scheduleClassesStaffDto.setStaffId(tmpInspectionPlanStaffDto.getStaffId());
         scheduleClassesStaffDto.setToday(DateUtil.getDateFromStringA(planTime));
         scheduleClassesStaffDto = scheduleClassesStaffV1InnerServiceSMOImpl.staffIsWork(scheduleClassesStaffDto);
 
@@ -284,7 +284,7 @@ public class GeneratorInspectionTaskTemplate extends TaskSystemQuartz {
 
 
         ScheduleClassesStaffDto scheduleClassesStaffDto = new ScheduleClassesStaffDto();
-        scheduleClassesStaffDto.setStaffId(tmpInspectionPlanStaffDto.getIpStaffId());
+        scheduleClassesStaffDto.setStaffId(tmpInspectionPlanStaffDto.getStaffId());
         scheduleClassesStaffDto.setToday(DateUtil.getDateFromStringA(planTime));
         scheduleClassesStaffDto = scheduleClassesStaffV1InnerServiceSMOImpl.staffIsWork(scheduleClassesStaffDto);
 

+ 311 - 0
service-job/src/main/java/com/java110/job/task/maintainance/GeneratorMaintainanceTaskTemplate.java

@@ -0,0 +1,311 @@
+package com.java110.job.task.maintainance;
+
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.community.CommunityDto;
+import com.java110.dto.maintainancePlan.MaintainancePlanDto;
+import com.java110.dto.maintainancePlanMachine.MaintainancePlanMachineDto;
+import com.java110.dto.maintainancePlanStaff.MaintainancePlanStaffDto;
+import com.java110.dto.maintainanceTask.MaintainanceTaskDto;
+import com.java110.dto.scheduleClassesStaff.ScheduleClassesStaffDto;
+import com.java110.dto.task.TaskDto;
+import com.java110.intf.community.*;
+import com.java110.intf.store.IScheduleClassesStaffV1InnerServiceSMO;
+import com.java110.job.quartz.TaskSystemQuartz;
+import com.java110.po.maintainanceTask.MaintainanceTaskPo;
+import com.java110.po.maintainanceTaskDetail.MaintainanceTaskDetailPo;
+import com.java110.utils.util.DateUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.List;
+
+/**
+ * 保养任务生成 任务
+ */
+@Component
+public class GeneratorMaintainanceTaskTemplate extends TaskSystemQuartz {
+
+    @Autowired
+    private IMaintainancePlanV1InnerServiceSMO maintainancePlanV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IMaintainancePlanStaffV1InnerServiceSMO maintainancePlanStaffV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IMaintainancePlanMachineV1InnerServiceSMO maintainancePlanMachineV1InnerServiceSMOImpl;
+
+
+    @Autowired
+    private IMaintainanceTaskV1InnerServiceSMO maintainanceTaskV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IMaintainanceTaskDetailV1InnerServiceSMO maintainanceTaskDetailV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IScheduleClassesStaffV1InnerServiceSMO scheduleClassesStaffV1InnerServiceSMOImpl;
+
+    @Override
+    protected void process(TaskDto taskDto) throws Exception {
+        logger.debug("开始执行巡检任务生成" + taskDto.toString());
+
+        // 获取小区
+        List<CommunityDto> communityDtos = getAllCommunity();
+
+        for (CommunityDto communityDto : communityDtos) {
+            try {
+                generatorTask(taskDto, communityDto);
+            } catch (Exception e) {
+                logger.error("推送消息失败", e);
+            }
+        }
+    }
+
+    /**
+     * 巡检任务
+     *
+     * @param taskDto
+     * @param communityDto
+     */
+    private void generatorTask(TaskDto taskDto, CommunityDto communityDto) {
+        MaintainancePlanDto maintainancePlanDto = new MaintainancePlanDto();
+        maintainancePlanDto.setCommunityId(communityDto.getCommunityId());
+        maintainancePlanDto.setState(MaintainancePlanDto.STATE_RUN);
+        maintainancePlanDto.setCurTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        List<MaintainancePlanDto> maintainancePlanDtos = maintainancePlanV1InnerServiceSMOImpl.queryMaintainancePlans(maintainancePlanDto);
+
+        for (MaintainancePlanDto tmpMaintainancePlanDto : maintainancePlanDtos) {
+            dealMaintainancePlan(tmpMaintainancePlanDto, taskDto, communityDto);
+        }
+    }
+
+    /**
+     * 处理巡检计划
+     *
+     * @param tmpMaintainancePlanDto
+     * @param taskDto
+     * @param communityDto
+     */
+    private void dealMaintainancePlan(MaintainancePlanDto tmpMaintainancePlanDto, TaskDto taskDto, CommunityDto communityDto) {
+
+        MaintainancePlanStaffDto maintainancePlanStaffDto = new MaintainancePlanStaffDto();
+        maintainancePlanStaffDto.setCommunityId(tmpMaintainancePlanDto.getCommunityId());
+        maintainancePlanStaffDto.setPlanId(tmpMaintainancePlanDto.getPlanId());
+        List<MaintainancePlanStaffDto> maintainancePlanStaffDtos = maintainancePlanStaffV1InnerServiceSMOImpl.queryMaintainancePlanStaffs(maintainancePlanStaffDto);
+
+        List<MaintainanceTaskPo> maintainanceTaskPos = new ArrayList<>();
+        List<MaintainanceTaskDetailPo> maintainanceTaskDetailPos = new ArrayList<>();
+
+        for (MaintainancePlanStaffDto tmpMaintainancePlanStaffDto : maintainancePlanStaffDtos) {
+            generatorStaffTask(tmpMaintainancePlanDto, taskDto, communityDto, tmpMaintainancePlanStaffDto, maintainanceTaskPos, maintainanceTaskDetailPos);
+        }
+
+        if (maintainanceTaskPos.size() < 1) {
+            return;
+        }
+
+        if (maintainanceTaskDetailPos.size() < 1) {
+            return;
+        }
+        maintainanceTaskV1InnerServiceSMOImpl.saveMaintainanceTask(maintainanceTaskPos);
+
+        maintainanceTaskV1InnerServiceSMOImpl.saveMaintainanceTaskDetail(maintainanceTaskDetailPos);
+
+    }
+
+
+    private void generatorStaffTask(MaintainancePlanDto tmpMaintainancePlanDto, TaskDto taskDto, CommunityDto communityDto,
+                                    MaintainancePlanStaffDto tmpMaintainancePlanStaffDto, List<MaintainanceTaskPo> maintainanceTaskPos,
+                                    List<MaintainanceTaskDetailPo> maintainanceTaskDetailPos) {
+
+        //巡检方式
+        String maintainancePlanPeriod = tmpMaintainancePlanDto.getPlanPeriod();
+
+        boolean hasCondition = false;
+        switch (maintainancePlanPeriod) {
+            case MaintainancePlanDto.INSPECTION_PLAN_PERIOD_DAY:
+                hasCondition = hasGeneratorTaskConditionByDay(tmpMaintainancePlanDto, taskDto, communityDto, tmpMaintainancePlanStaffDto, maintainanceTaskPos, maintainanceTaskDetailPos);
+                break;
+            case MaintainancePlanDto.INSPECTION_PLAN_PERIOD_WEEK:
+                hasCondition = hasGeneratorTaskConditionByWeek(tmpMaintainancePlanDto, taskDto, communityDto, tmpMaintainancePlanStaffDto, maintainanceTaskPos, maintainanceTaskDetailPos);
+                break;
+        }
+        if (!hasCondition) {
+            return;
+        }
+
+
+        String nowTime = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B) + " ";
+
+        MaintainanceTaskPo maintainanceTaskPo = new MaintainanceTaskPo();
+        maintainanceTaskPo.setPlanId(tmpMaintainancePlanDto.getPlanId());
+        maintainanceTaskPo.setCommunityId(tmpMaintainancePlanDto.getCommunityId());
+        maintainanceTaskPo.setMpsId(tmpMaintainancePlanStaffDto.getMpsId());
+        maintainanceTaskPo.setPlanInsTime(nowTime + "09:00:00");
+        maintainanceTaskPo.setPlanEndTime(nowTime + "18:00:00");
+        maintainanceTaskPo.setPlanUserId(tmpMaintainancePlanStaffDto.getStaffId());
+        maintainanceTaskPo.setPlanUserName(tmpMaintainancePlanStaffDto.getStaffName());
+        maintainanceTaskPo.setTaskId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_taskId));
+        maintainanceTaskPo.setOriginalPlanUserId(tmpMaintainancePlanStaffDto.getStaffId());
+        maintainanceTaskPo.setOriginalPlanUserName(tmpMaintainancePlanStaffDto.getStaffName());
+        maintainanceTaskPo.setTaskType("1000");
+
+        MaintainancePlanMachineDto maintainancePlanMachineDto = new MaintainancePlanMachineDto();
+        maintainancePlanMachineDto.setCommunityId(tmpMaintainancePlanDto.getCommunityId());
+        maintainancePlanMachineDto.setPlanId(tmpMaintainancePlanDto.getPlanId());
+        List<MaintainancePlanMachineDto> maintainancePlanMachineDtos = maintainancePlanMachineV1InnerServiceSMOImpl.queryMaintainancePlanMachines(maintainancePlanMachineDto);
+        if (maintainancePlanMachineDtos == null || maintainancePlanMachineDtos.size() < 1) {
+            return;//巡检点为空时不生成 巡检任务
+        }
+        MaintainanceTaskDetailPo maintainanceTaskDetailPo = null;
+        for (MaintainancePlanMachineDto tmpMaintainanceRoutePointRelDto : maintainancePlanMachineDtos) {
+            maintainanceTaskDetailPo = new MaintainanceTaskDetailPo();
+            maintainanceTaskDetailPo.setCommunityId(tmpMaintainancePlanDto.getCommunityId());
+            maintainanceTaskDetailPo.setMachineId(tmpMaintainanceRoutePointRelDto.getMachineId());
+            maintainanceTaskDetailPo.setMachineName(tmpMaintainanceRoutePointRelDto.getMachineName());
+            maintainanceTaskDetailPo.setTaskId(maintainanceTaskPo.getTaskId());
+            maintainanceTaskDetailPo.setPointStartTime(nowTime + "09:00:00");
+            maintainanceTaskDetailPo.setPointEndTime(nowTime + "18:00:00");
+            maintainanceTaskDetailPo.setSortNumber("1");
+            maintainanceTaskDetailPo.setTaskDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_taskDetailId));
+            maintainanceTaskDetailPos.add(maintainanceTaskDetailPo);
+        }
+        maintainanceTaskPos.add(maintainanceTaskPo);
+    }
+
+
+    /**
+     * 每日
+     *
+     * @param tmpMaintainancePlanDto
+     * @param taskDto
+     * @param communityDto
+     */
+    private boolean hasGeneratorTaskConditionByDay(MaintainancePlanDto tmpMaintainancePlanDto, TaskDto taskDto, CommunityDto communityDto,
+                                                   MaintainancePlanStaffDto tmpMaintainancePlanStaffDto, List<MaintainanceTaskPo> maintainanceTaskPos,
+                                                   List<MaintainanceTaskDetailPo> maintainanceTaskDetailPos) {
+
+        // 检查 今日是否 需要 生成巡检任务
+        String[] months = tmpMaintainancePlanDto.getMaintainanceMonth().split(",");
+
+        Calendar today = Calendar.getInstance();
+        int month = today.get(Calendar.MONTH) + 1;
+        if (!Arrays.asList(months).contains(month + "")) {
+            return false;
+        }
+        String[] days = tmpMaintainancePlanDto.getMaintainanceDay().split(",");
+        int day = today.get(Calendar.DAY_OF_MONTH);
+        if (!Arrays.asList(days).contains(day + "")) {
+            return false;
+        }
+
+        //当前时间是否 到了 巡检任务前30分钟
+
+        int beforeTime = 30;
+
+        String planTime = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B) + " 09:00:00";
+
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(DateUtil.getDateFromStringA(planTime));
+        calendar.add(Calendar.MINUTE, beforeTime * (-1));
+        if (DateUtil.getCurrentDate().before(calendar.getTime())) { // 还没到生成任务时间
+            return false;
+        }
+
+        // 判断 员工是否上班
+
+        ScheduleClassesStaffDto scheduleClassesStaffDto = new ScheduleClassesStaffDto();
+        scheduleClassesStaffDto.setStaffId(tmpMaintainancePlanStaffDto.getStaffId());
+        scheduleClassesStaffDto.setToday(DateUtil.getDateFromStringA(planTime));
+        scheduleClassesStaffDto = scheduleClassesStaffV1InnerServiceSMOImpl.staffIsWork(scheduleClassesStaffDto);
+
+        if (!scheduleClassesStaffDto.isWork()) {//根据排班员工 休息
+            return false;
+
+        }
+
+        MaintainanceTaskDto maintainanceTaskDto = new MaintainanceTaskDto();
+        maintainanceTaskDto.setCommunityId(tmpMaintainancePlanDto.getCommunityId());
+        //maintainanceTaskDto.setPlanId(tmpMaintainancePlanDto.getPlanId());
+        //这里修改为用原始 巡检人查 以防 做了 转单
+        maintainanceTaskDto.setPlanId(tmpMaintainancePlanDto.getPlanId());
+        maintainanceTaskDto.setOriginalPlanUserId(tmpMaintainancePlanStaffDto.getStaffId());
+        maintainanceTaskDto.setPlanInsTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B));
+
+        //目前逻辑修改 一个巡检 计划 对于一个员工只能生成一次巡检任务,所以 传 员工 巡检计划ID 时间即可
+        List<MaintainanceTaskDto> maintainanceTaskDtos = maintainanceTaskV1InnerServiceSMOImpl.queryMaintainanceTasks(maintainanceTaskDto);
+        if (maintainanceTaskDtos != null && maintainanceTaskDtos.size() > 0) { // 已经生成过
+            return false;
+        }
+
+        return true;
+
+    }
+
+    /**
+     * 每周
+     *
+     * @param tmpMaintainancePlanDto
+     * @param taskDto
+     * @param communityDto
+     */
+    private boolean hasGeneratorTaskConditionByWeek(MaintainancePlanDto tmpMaintainancePlanDto, TaskDto taskDto, CommunityDto communityDto,
+                                                    MaintainancePlanStaffDto tmpMaintainancePlanStaffDto, List<MaintainanceTaskPo> maintainanceTaskPos,
+                                                    List<MaintainanceTaskDetailPo> maintainanceTaskDetailPos) {
+
+        // 检查 今日是否 需要 生成巡检任务
+        int day = Integer.parseInt(tmpMaintainancePlanDto.getMaintainanceEveryday());
+
+
+        int subDay = DateUtil.daysBetween(DateUtil.getCurrentDate(), DateUtil.getDateFromStringB(tmpMaintainancePlanDto.getStartDate()));
+
+        if(subDay % day != 0){
+            return false;
+        }
+
+
+        //当前时间是否 到了 巡检任务前30分钟
+        int beforeTime = 30;
+
+        String planTime = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B) + " "  + "09:00:00";
+
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(DateUtil.getDateFromStringA(planTime));
+        calendar.add(Calendar.MINUTE, beforeTime * (-1));
+        if (DateUtil.getCurrentDate().before(calendar.getTime())) { // 还没到生成任务时间
+            return false;
+        }
+
+
+        ScheduleClassesStaffDto scheduleClassesStaffDto = new ScheduleClassesStaffDto();
+        scheduleClassesStaffDto.setStaffId(tmpMaintainancePlanStaffDto.getStaffId());
+        scheduleClassesStaffDto.setToday(DateUtil.getDateFromStringA(planTime));
+        scheduleClassesStaffDto = scheduleClassesStaffV1InnerServiceSMOImpl.staffIsWork(scheduleClassesStaffDto);
+
+        if (!scheduleClassesStaffDto.isWork()) {//根据排班员工 休息
+            return false;
+
+        }
+
+        MaintainanceTaskDto maintainanceTaskDto = new MaintainanceTaskDto();
+        maintainanceTaskDto.setCommunityId(tmpMaintainancePlanDto.getCommunityId());
+        //maintainanceTaskDto.setPlanId(tmpMaintainancePlanDto.getPlanId());
+        //这里修改为用原始 巡检人查 以防 做了 转单
+        maintainanceTaskDto.setPlanId(tmpMaintainancePlanDto.getPlanId());
+        maintainanceTaskDto.setOriginalPlanUserId(tmpMaintainancePlanStaffDto.getStaffId());
+        maintainanceTaskDto.setPlanInsTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B));
+
+        //目前逻辑修改 一个巡检 计划 对于一个员工只能生成一次巡检任务,所以 传 员工 巡检计划ID 时间即可
+        List<MaintainanceTaskDto> maintainanceTaskDtos = maintainanceTaskV1InnerServiceSMOImpl.queryMaintainanceTasks(maintainanceTaskDto);
+        if (maintainanceTaskDtos != null && maintainanceTaskDtos.size() > 0) { // 已经生成过
+            return false;
+        }
+
+        return true;
+
+    }
+
+
+}