Selaa lähdekoodia

优化完成工作单功能

wuxw 2 vuotta sitten
vanhempi
commit
2cb9b0101d

+ 10 - 0
java110-bean/src/main/java/com/java110/dto/workCycle/WorkCycleDto.java

@@ -31,6 +31,8 @@ public class WorkCycleDto extends PageDto implements Serializable {
     private String staffId;
     private String staffId;
     private String periodDay;
     private String periodDay;
 
 
+    private String curTime;
+
 
 
     private Date createTime;
     private Date createTime;
 
 
@@ -157,4 +159,12 @@ public class WorkCycleDto extends PageDto implements Serializable {
     public void setHours(String hours) {
     public void setHours(String hours) {
         this.hours = hours;
         this.hours = hours;
     }
     }
+
+    public String getCurTime() {
+        return curTime;
+    }
+
+    public void setCurTime(String curTime) {
+        this.curTime = curTime;
+    }
 }
 }

+ 29 - 0
java110-bean/src/main/java/com/java110/dto/workTask/WorkTaskDto.java

@@ -41,6 +41,11 @@ public class WorkTaskDto extends WorkPoolDto implements Serializable {
 
 
     private String taskTimeout;
     private String taskTimeout;
 
 
+    private String taskInsTime;
+
+    private String orgStaffId;
+    private String orgStaffName;
+
 
 
 
 
 
 
@@ -203,4 +208,28 @@ public class WorkTaskDto extends WorkPoolDto implements Serializable {
     public void setTaskTimeout(String taskTimeout) {
     public void setTaskTimeout(String taskTimeout) {
         this.taskTimeout = taskTimeout;
         this.taskTimeout = taskTimeout;
     }
     }
+
+    public String getTaskInsTime() {
+        return taskInsTime;
+    }
+
+    public void setTaskInsTime(String taskInsTime) {
+        this.taskInsTime = taskInsTime;
+    }
+
+    public String getOrgStaffId() {
+        return orgStaffId;
+    }
+
+    public void setOrgStaffId(String orgStaffId) {
+        this.orgStaffId = orgStaffId;
+    }
+
+    public String getOrgStaffName() {
+        return orgStaffName;
+    }
+
+    public void setOrgStaffName(String orgStaffName) {
+        this.orgStaffName = orgStaffName;
+    }
 }
 }

+ 20 - 0
java110-bean/src/main/java/com/java110/po/workTask/WorkTaskPo.java

@@ -43,6 +43,10 @@ public class WorkTaskPo implements Serializable {
 
 
     private String taskTimeout;
     private String taskTimeout;
 
 
+    private String orgStaffId;
+    private String orgStaffName;
+
+
     public String getStaffName() {
     public String getStaffName() {
         return staffName;
         return staffName;
     }
     }
@@ -138,4 +142,20 @@ public class WorkTaskPo implements Serializable {
     public void setTaskTimeout(String taskTimeout) {
     public void setTaskTimeout(String taskTimeout) {
         this.taskTimeout = taskTimeout;
         this.taskTimeout = taskTimeout;
     }
     }
+
+    public String getOrgStaffId() {
+        return orgStaffId;
+    }
+
+    public void setOrgStaffId(String orgStaffId) {
+        this.orgStaffId = orgStaffId;
+    }
+
+    public String getOrgStaffName() {
+        return orgStaffName;
+    }
+
+    public void setOrgStaffName(String orgStaffName) {
+        this.orgStaffName = orgStaffName;
+    }
 }
 }

+ 6 - 1
java110-db/src/main/resources/mapper/oa/WorkCycleV1ServiceDaoImplMapper.xml

@@ -24,7 +24,12 @@
         staffName,t.period_month,t.period_month periodMonth,t.community_id,t.community_id
         staffName,t.period_month,t.period_month periodMonth,t.community_id,t.community_id
         communityId,t.staff_id,t.staff_id staffId,t.period_day,t.period_day periodDay,t.create_time createTime
         communityId,t.staff_id,t.staff_id staffId,t.period_day,t.period_day periodDay,t.create_time createTime
         from work_cycle t
         from work_cycle t
-        where 1 =1
+        left join work_pool wp on t.work_id = wp.work_id and wp.status_cd = '0'
+        where 1=1
+        <if test="curTime != null and curTime != ''">
+        and wp.start_time &lt; #{curTime}
+        and wp.end_time &gt; #{curTime}
+        </if>
         <if test="workCycle !=null and workCycle != ''">
         <if test="workCycle !=null and workCycle != ''">
             and t.work_cycle= #{workCycle}
             and t.work_cycle= #{workCycle}
         </if>
         </if>

+ 14 - 3
java110-db/src/main/resources/mapper/oa/WorkTaskV1ServiceDaoImplMapper.xml

@@ -8,9 +8,9 @@
     <!-- 保存工作单任务信息 add by wuxw 2018-07-03 -->
     <!-- 保存工作单任务信息 add by wuxw 2018-07-03 -->
     <insert id="saveWorkTaskInfo" parameterType="Map">
     <insert id="saveWorkTaskInfo" parameterType="Map">
         insert into work_task(
         insert into work_task(
-        staff_name,start_time,state,end_time,community_id,store_id,task_id,work_id,staff_id
+        staff_name,start_time,state,end_time,community_id,store_id,task_id,work_id,staff_id,org_staff_id,org_staff_name
         ) values (
         ) values (
-        #{staffName},#{startTime},#{state},#{endTime},#{communityId},#{storeId},#{taskId},#{workId},#{staffId}
+        #{staffName},#{startTime},#{state},#{endTime},#{communityId},#{storeId},#{taskId},#{workId},#{staffId},#{orgStaffId},#{orgStaffName}
         )
         )
     </insert>
     </insert>
 
 
@@ -24,7 +24,7 @@
         td.`name` stateName,
         td.`name` stateName,
         wp.work_cycle workCycle,wp.create_user_id
         wp.work_cycle workCycle,wp.create_user_id
         createUserId,wp.create_user_name createUserName,wp.work_name workName,wp.wt_id wtId,wp.create_user_tel createUserTel,
         createUserId,wp.create_user_name createUserName,wp.work_name workName,wp.wt_id wtId,wp.create_user_tel createUserTel,
-        wt.type_name typeName,t.finish_time finishTime,t.task_timeout taskTimeout
+        wt.type_name typeName,t.finish_time finishTime,t.task_timeout taskTimeout,t.org_staff_id orgStaffId,t.org_staff_name orgStaffName
         from work_task t
         from work_task t
         left join t_dict td on t.state = td.status_cd and td.table_name = 'work_pool' and td.table_columns = 'state'
         left join t_dict td on t.state = td.status_cd and td.table_name = 'work_pool' and td.table_columns = 'state'
         left join work_pool wp on t.work_id = wp.work_id and wp.status_cd = '0'
         left join work_pool wp on t.work_id = wp.work_id and wp.status_cd = '0'
@@ -46,6 +46,10 @@
         <if test="startTime !=null and startTime != ''">
         <if test="startTime !=null and startTime != ''">
             and t.start_time= #{startTime}
             and t.start_time= #{startTime}
         </if>
         </if>
+        <if test="taskInsTime !=null and taskInsTime != ''">
+            and DATE_FORMAT(t.start_time,'%Y-%m-%d')= #{taskInsTime}
+        </if>
+
         <if test="statusCd !=null and statusCd != ''">
         <if test="statusCd !=null and statusCd != ''">
             and t.status_cd= #{statusCd}
             and t.status_cd= #{statusCd}
         </if>
         </if>
@@ -76,6 +80,10 @@
         <if test="staffId !=null and staffId != ''">
         <if test="staffId !=null and staffId != ''">
             and t.staff_id= #{staffId}
             and t.staff_id= #{staffId}
         </if>
         </if>
+        <if test="orgStaffId !=null and orgStaffId != ''">
+            and t.org_staff_id= #{orgStaffId}
+        </if>
+
         <if test="taskTimeout !=null and taskTimeout != ''">
         <if test="taskTimeout !=null and taskTimeout != ''">
             and t.task_timeout= #{taskTimeout}
             and t.task_timeout= #{taskTimeout}
         </if>
         </if>
@@ -192,6 +200,9 @@
         <if test="staffId !=null and staffId != ''">
         <if test="staffId !=null and staffId != ''">
             and t.staff_id= #{staffId}
             and t.staff_id= #{staffId}
         </if>
         </if>
+        <if test="orgStaffId !=null and orgStaffId != ''">
+            and t.org_staff_id= #{orgStaffId}
+        </if>
         <if test="taskTimeout !=null and taskTimeout != ''">
         <if test="taskTimeout !=null and taskTimeout != ''">
             and t.task_timeout= #{taskTimeout}
             and t.task_timeout= #{taskTimeout}
         </if>
         </if>

+ 284 - 0
service-job/src/main/java/com/java110/job/task/oa/CycleWorkTaskGeneratorTemplate.java

@@ -0,0 +1,284 @@
+package com.java110.job.task.oa;
+
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.classes.ScheduleClassesStaffDto;
+import com.java110.dto.community.CommunityDto;
+import com.java110.dto.task.TaskDto;
+import com.java110.dto.workCycle.WorkCycleDto;
+import com.java110.dto.workPool.WorkPoolDto;
+import com.java110.dto.workPoolFile.WorkPoolFileDto;
+import com.java110.dto.workTask.WorkTaskDto;
+import com.java110.intf.oa.IWorkCycleV1InnerServiceSMO;
+import com.java110.intf.oa.IWorkPoolFileV1InnerServiceSMO;
+import com.java110.intf.oa.IWorkPoolV1InnerServiceSMO;
+import com.java110.intf.oa.IWorkTaskV1InnerServiceSMO;
+import com.java110.intf.store.IScheduleClassesStaffV1InnerServiceSMO;
+import com.java110.job.quartz.TaskSystemQuartz;
+import com.java110.po.workPoolFile.WorkPoolFilePo;
+import com.java110.po.workTask.WorkTaskPo;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.ListUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+@Component
+public class CycleWorkTaskGeneratorTemplate extends TaskSystemQuartz {
+
+    @Autowired
+    private IWorkCycleV1InnerServiceSMO workCycleV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IScheduleClassesStaffV1InnerServiceSMO scheduleClassesStaffV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkTaskV1InnerServiceSMO workTaskV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkPoolV1InnerServiceSMO workPoolV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IWorkPoolFileV1InnerServiceSMO workPoolFileV1InnerServiceSMOImpl;
+
+    @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);
+            }
+        }
+    }
+
+    private void generatorTask(TaskDto taskDto, CommunityDto communityDto) {
+
+        WorkCycleDto workCycleDto = new WorkCycleDto();
+        workCycleDto.setCommunityId(communityDto.getCommunityId());
+        workCycleDto.setWorkCycle(WorkPoolDto.WORK_CYCLE_CYCLE);
+        workCycleDto.setCurTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        List<WorkCycleDto> workCycleDtos = workCycleV1InnerServiceSMOImpl.queryWorkCycles(workCycleDto);
+
+        if(workCycleDtos == null){
+            return ;
+        }
+
+        for(WorkCycleDto tmpWorkCycleDto : workCycleDtos){
+
+            try{
+                doGeneratorTask(tmpWorkCycleDto,taskDto,communityDto);
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+        }
+    }
+
+    private void doGeneratorTask(WorkCycleDto tmpWorkCycleDto,TaskDto taskDto, CommunityDto communityDto) {
+
+        WorkPoolDto workPoolDto = new WorkPoolDto();
+        workPoolDto.setWorkId(tmpWorkCycleDto.getWorkId());
+        List<WorkPoolDto>workPoolDtos = workPoolV1InnerServiceSMOImpl.queryWorkPools(workPoolDto);
+
+        if(ListUtil.isNull(workPoolDtos)){
+            return;
+        }
+
+        Date startTime = DateUtil.getDateFromStringA(workPoolDtos.get(0).getStartTime());
+        Calendar startTimeCal = Calendar.getInstance();
+        startTimeCal.setTime(startTime);
+
+        Calendar nowCal = Calendar.getInstance();
+        nowCal.set(Calendar.HOUR,startTimeCal.get(Calendar.HOUR));
+        nowCal.set(Calendar.MINUTE,startTimeCal.get(Calendar.MINUTE));
+        nowCal.set(Calendar.SECOND,startTimeCal.get(Calendar.SECOND));
+
+        Date nowTime = nowCal.getTime();
+
+        boolean hasCondition = false;
+        switch (tmpWorkCycleDto.getPeriod()) {
+            case WorkCycleDto.PERIOD_MONTH_DAY:
+                hasCondition = hasGeneratorTaskConditionByDay(tmpWorkCycleDto, taskDto, communityDto,nowTime);
+                break;
+            case WorkCycleDto.PERIOD_MONTH_WORKDAY:
+                hasCondition = hasGeneratorTaskConditionByWeek(tmpWorkCycleDto, taskDto, communityDto,nowTime);
+                break;
+        }
+        if (!hasCondition) {
+            return;
+        }
+
+
+
+
+        WorkTaskPo workTaskPo = new WorkTaskPo();
+        workTaskPo.setWorkId(tmpWorkCycleDto.getWorkId());
+        workTaskPo.setState(WorkTaskDto.STATE_WAIT);
+        workTaskPo.setTaskId(GenerateCodeFactory.getGeneratorId("11"));
+        workTaskPo.setStoreId(tmpWorkCycleDto.getStoreId());
+        workTaskPo.setCommunityId(tmpWorkCycleDto.getCommunityId());
+        workTaskPo.setStartTime(DateUtil.getFormatTimeStringA(nowTime));
+        workTaskPo.setEndTime(DateUtil.getAddHoursStringA(nowTime,Integer.parseInt(tmpWorkCycleDto.getHours())));
+        workTaskPo.setStaffId(tmpWorkCycleDto.getStaffId());
+        workTaskPo.setStaffName(tmpWorkCycleDto.getStaffName());
+        workTaskPo.setOrgStaffId(tmpWorkCycleDto.getStaffId());
+        workTaskPo.setOrgStaffName(tmpWorkCycleDto.getStaffName());
+
+        int flag = workTaskV1InnerServiceSMOImpl.saveWorkTask(workTaskPo);
+
+        if (flag < 1) {
+            throw new CmdException("保存数据失败");
+        }
+
+
+        WorkPoolFileDto workPoolFileDto = new WorkPoolFileDto();
+        workPoolFileDto.setWorkId(tmpWorkCycleDto.getWorkId());
+        workPoolFileDto.setFileType(WorkPoolFileDto.FILE_TYPE_START);
+        List<WorkPoolFileDto> workPoolFileDtos = workPoolFileV1InnerServiceSMOImpl.queryWorkPoolFiles(workPoolFileDto);
+
+        if(ListUtil.isNull(workPoolFileDtos)){
+            return;
+        }
+        WorkPoolFilePo workPoolFilePo = null;
+        for(WorkPoolFileDto tmpWorkPoolFileDto : workPoolFileDtos){
+            workPoolFilePo = new WorkPoolFilePo();
+            workPoolFilePo.setCommunityId(workTaskPo.getCommunityId());
+            workPoolFilePo.setFileType(WorkPoolFileDto.FILE_TYPE_START);
+            workPoolFilePo.setFileId(GenerateCodeFactory.getGeneratorId("11"));
+            workPoolFilePo.setWorkId(workTaskPo.getWorkId());
+            workPoolFilePo.setTaskId(workTaskPo.getTaskId());
+            workPoolFilePo.setPathUrl(tmpWorkPoolFileDto.getPathUrl());
+            workPoolFilePo.setStoreId(workTaskPo.getStoreId());
+            workPoolFileV1InnerServiceSMOImpl.saveWorkPoolFile(workPoolFilePo);
+        }
+
+
+    }
+
+    private boolean hasGeneratorTaskConditionByWeek(WorkCycleDto tmpWorkCycleDto, TaskDto taskDto, CommunityDto communityDto,Date nowTime) {
+
+        // 检查 今日是否 需要 生成巡检任务
+        // 检查 今日是否 需要 生成巡检任务
+        String[] workday = tmpWorkCycleDto.getPeriodWorkday().split(",");
+
+        Calendar today = Calendar.getInstance();
+        int day = today.get(Calendar.DAY_OF_WEEK);
+
+        //一周第一天是否为星期天
+        boolean isFirstSunday = (today.getFirstDayOfWeek() == Calendar.SUNDAY);
+        //获取周几
+        //若一周第一天为星期天,则-1
+        if (isFirstSunday) {
+            day = day - 1;
+            if (day == 0) {
+                day = 7;
+            }
+        }
+        if(!Arrays.asList(workday).contains(day+"")){
+            return false;
+        }
+
+        //当前时间是否 到了 巡检任务前30分钟
+        int beforeTime = Integer.parseInt(tmpWorkCycleDto.getBeforeTime());
+
+        String planTime = DateUtil.getFormatTimeStringA(nowTime);
+
+        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(tmpWorkCycleDto.getStaffId());
+        scheduleClassesStaffDto.setToday(DateUtil.getDateFromStringA(planTime));
+        scheduleClassesStaffDto = scheduleClassesStaffV1InnerServiceSMOImpl.staffIsWork(scheduleClassesStaffDto);
+
+        if(!scheduleClassesStaffDto.isWork()){//根据排班员工 休息
+            return false;
+
+        }
+
+        WorkTaskDto workTaskDto = new WorkTaskDto();
+        workTaskDto.setCommunityId(tmpWorkCycleDto.getCommunityId());
+        workTaskDto.setWorkId(tmpWorkCycleDto.getWorkId());
+        workTaskDto.setTaskInsTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B));
+        workTaskDto.setOrgStaffId(tmpWorkCycleDto.getStaffId());
+
+        //目前逻辑修改 一个巡检 计划 对于一个员工只能生成一次巡检任务,所以 传 员工 巡检计划ID 时间即可
+        List<WorkTaskDto> workTasksDtos = workTaskV1InnerServiceSMOImpl.queryWorkTasks(workTaskDto);
+        if (workTasksDtos != null && !workTasksDtos.isEmpty()) { // 已经生成过
+            return false;
+        }
+
+        return true;
+
+    }
+
+    private boolean hasGeneratorTaskConditionByDay(WorkCycleDto tmpWorkCycleDto, TaskDto taskDto, CommunityDto communityDto,Date nowTime) {
+
+        // 检查 今日是否 需要 生成巡检任务
+        String[] months = tmpWorkCycleDto.getPeriodMonth().split(",");
+
+        Calendar today = Calendar.getInstance();
+        int month = today.get(Calendar.MONTH) + 1;
+        if (!Arrays.asList(months).contains(month + "")) {
+            return false;
+        }
+        String[] days = tmpWorkCycleDto.getPeriodDay().split(",");
+        int day = today.get(Calendar.DAY_OF_MONTH);
+        if (!Arrays.asList(days).contains(day + "")) {
+            return false;
+        }
+
+        //当前时间是否 到了 巡检任务前30分钟
+
+        int beforeTime = Integer.parseInt(tmpWorkCycleDto.getBeforeTime());
+
+        String planTime = DateUtil.getFormatTimeStringA(nowTime);
+
+        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(tmpWorkCycleDto.getStaffId());
+        scheduleClassesStaffDto.setToday(DateUtil.getDateFromStringA(planTime));
+        scheduleClassesStaffDto = scheduleClassesStaffV1InnerServiceSMOImpl.staffIsWork(scheduleClassesStaffDto);
+
+        if (!scheduleClassesStaffDto.isWork()) {//根据排班员工 休息
+            return false;
+
+        }
+
+        WorkTaskDto workTaskDto = new WorkTaskDto();
+        workTaskDto.setCommunityId(tmpWorkCycleDto.getCommunityId());
+        workTaskDto.setWorkId(tmpWorkCycleDto.getWorkId());
+        workTaskDto.setTaskInsTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B));
+        workTaskDto.setOrgStaffId(tmpWorkCycleDto.getStaffId());
+
+        //目前逻辑修改 一个巡检 计划 对于一个员工只能生成一次巡检任务,所以 传 员工 巡检计划ID 时间即可
+        List<WorkTaskDto> workTasksDtos = workTaskV1InnerServiceSMOImpl.queryWorkTasks(workTaskDto);
+        if (workTasksDtos != null && !workTasksDtos.isEmpty()) { // 已经生成过
+            return false;
+        }
+
+        return true;
+    }
+}

+ 2 - 0
service-oa/src/main/java/com/java110/oa/cmd/work/SaveWorkPoolCmd.java

@@ -210,6 +210,8 @@ public class SaveWorkPoolCmd extends Cmd {
             workTaskPo.setEndTime(endTime);
             workTaskPo.setEndTime(endTime);
             workTaskPo.setStaffId(staffs.getJSONObject(staffIndex).getString("staffId"));
             workTaskPo.setStaffId(staffs.getJSONObject(staffIndex).getString("staffId"));
             workTaskPo.setStaffName(staffs.getJSONObject(staffIndex).getString("staffName"));
             workTaskPo.setStaffName(staffs.getJSONObject(staffIndex).getString("staffName"));
+            workTaskPo.setOrgStaffId(staffs.getJSONObject(staffIndex).getString("staffId"));
+            workTaskPo.setOrgStaffName(staffs.getJSONObject(staffIndex).getString("staffName"));
             int flag = workTaskV1InnerServiceSMOImpl.saveWorkTask(workTaskPo);
             int flag = workTaskV1InnerServiceSMOImpl.saveWorkTask(workTaskPo);
 
 
             if (flag < 1) {
             if (flag < 1) {

+ 2 - 0
service-oa/src/main/java/com/java110/oa/cmd/work/UpdateWorkPoolCmd.java

@@ -205,6 +205,8 @@ public class UpdateWorkPoolCmd extends Cmd {
             workTaskPo.setEndTime(endTime);
             workTaskPo.setEndTime(endTime);
             workTaskPo.setStaffId(staffs.getJSONObject(staffIndex).getString("staffId"));
             workTaskPo.setStaffId(staffs.getJSONObject(staffIndex).getString("staffId"));
             workTaskPo.setStaffName(staffs.getJSONObject(staffIndex).getString("staffName"));
             workTaskPo.setStaffName(staffs.getJSONObject(staffIndex).getString("staffName"));
+            workTaskPo.setOrgStaffId(staffs.getJSONObject(staffIndex).getString("staffId"));
+            workTaskPo.setOrgStaffName(staffs.getJSONObject(staffIndex).getString("staffName"));
             int flag = workTaskV1InnerServiceSMOImpl.saveWorkTask(workTaskPo);
             int flag = workTaskV1InnerServiceSMOImpl.saveWorkTask(workTaskPo);
 
 
             if (flag < 1) {
             if (flag < 1) {