Browse Source

修改task类相关报错

Levi 3 years ago
parent
commit
b814205e87

+ 0 - 59
application-facade/src/main/java/com/factory/web/entity/fa/FirstArticleCalendar1.java

@@ -1,59 +0,0 @@
-//package com.factory.web.entity.fa;
-//
-//import java.io.Serializable;
-//
-//import com.baomidou.mybatisplus.annotation.IdType;
-//import com.baomidou.mybatisplus.annotation.TableId;
-//import com.baomidou.mybatisplus.annotation.TableName;
-//
-//import io.swagger.annotations.ApiModelProperty;
-//import lombok.AllArgsConstructor;
-//import lombok.Builder;
-//import lombok.Data;
-//import lombok.NoArgsConstructor;
-//
-///**
-// * 日周月点检规则
-// *
-// * @author wzy
-// * @date 2021-07-09 12:00:00
-// */
-//@Data
-//@TableName("first_article_calendar")
-//@Builder
-//@NoArgsConstructor
-//@AllArgsConstructor
-//public class FirstArticleCalendar1 implements Serializable {
-//
-//	@TableId(type = IdType.AUTO)
-//	@ApiModelProperty(value = "规则id")
-//	private Long id;
-//
-//	@ApiModelProperty(value = "计划id")
-//	private Long bentelerPlanId;
-//
-//	@ApiModelProperty(value = "日巡检开始时间 格式11:00")
-//	private String startDay;
-//
-//	@ApiModelProperty(value = "日巡检结束时间 格式11:00")
-//	private String endDay;
-//
-//	@ApiModelProperty(value = "日检查时长设置单位分钟 例如60")
-//	private Integer dayValidate;
-//
-//	@ApiModelProperty(value = "升级时长设置单位是分钟 例如60 这个时间其实是汇报超时给监督")
-//	private Integer dayOuttime;
-//
-//	@ApiModelProperty(value = "200件最晚提交时间")
-//	private String twoHundredSubmitTime;
-//
-//	@ApiModelProperty(value = "点检人对应的用户ID")
-//	private Long userId;
-//
-//	@ApiModelProperty(value = "0表示首件 1表示200件 2表示中断")
-//	private Integer typeFlag;
-//
-//	@ApiModelProperty(value = "班次")
-//	private String shift;
-//
-//}

+ 0 - 3
application-facade/src/main/java/com/factory/web/entity/fa/req/AddFaItemResultListReq.java

@@ -24,9 +24,6 @@ import java.util.List;
 @ApiModel("")
 public class AddFaItemResultListReq {
 
-//	@ApiModelProperty(value = "任务id")
-//	private Long firstArticleTaskId;
-
     @ApiModelProperty(value = "计划id")
     private Long bentelerPlanId;
 

+ 5 - 7
application-facade/src/main/java/com/factory/web/service/impl/fa/FirstArticleServiceImpl.java

@@ -762,30 +762,28 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
             }
         } else { // 2表示中断
             if (faTaskInfo == null) { // 没有初始化状态的task,新建一个
-                /* 取得中断对应的规则 */
+                // 根据planId和type类型 获取中断对应的规则
                 FirstArticleCalendar firstArticleCalendar = firstArticleCalendarService.getOne(new LambdaQueryWrapper<FirstArticleCalendar>()
                         .eq(FirstArticleCalendar::getBentelerPlanId, req.getBentelerPlanId())
-                        .eq(FirstArticleCalendar::getTypeFlag, 2));
-
-                /* 创建一个新的中断task */
+                        .like(FirstArticleCalendar::getTypeFlag, "2"));
+                // 创建一个新的中断task
                 FirstArticleTask firstArticleTask = FirstArticleTask.builder()
                         .firstArticleCalendarId(firstArticleCalendar.getId())
                         .status(0)
                         .taskTime(LocalDate.now())
                         .remindTaskFlag(0)
                         .remindNoworkFlag(0)
+                        .typeFlag(2)
                         .build();
                 firstArticleTaskService.save(firstArticleTask);
-
                 firstArticleTaskId = firstArticleTask.getId();
             } else { // 存在一个初始化状态的task,就用这个
                 firstArticleTaskId = faTaskInfo.getId();
             }
         }
-
         List<AddFaItemResultReq> addFaItemResultList = req.getAddFaItemResultList();
         /* 删除上一次保存结果 */
-        List<Long> firstArticleItemIdList = new ArrayList<Long>();
+        List<Long> firstArticleItemIdList = new ArrayList<>();
         for (AddFaItemResultReq itemResult : addFaItemResultList) {
             firstArticleItemIdList.add(itemResult.getFirstArticleItemId());
         }

+ 1 - 1
application-task/src/main/java/com/factory/common/CommonUtil.java

@@ -65,7 +65,7 @@ public class CommonUtil {
     }
 
     /**
-     * 获取当前时间是不是大野提醒时间大于需要提醒
+     * 获取当前时间是不是大于提醒时间 如果大于需要提醒
      *
      * @param changeTime
      * @param now

+ 31 - 26
application-task/src/main/java/com/factory/init/FirstRemindJob.java

@@ -2,16 +2,20 @@ package com.factory.init;
 
 import com.factory.base.entity.task.FirstCalendar;
 import com.factory.base.entity.task.SendMsgReq;
+import com.factory.base.util.time.TimeConvert;
 import com.factory.common.CommonUtil;
 import com.factory.service.FirstTaskService;
 import com.factory.service.MsgService;
 import com.factory.websocket.WsSessionManager;
+import org.apache.commons.lang3.StringUtils;
 import org.quartz.DisallowConcurrentExecution;
 import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.web.socket.TextMessage;
 
+import java.time.LocalTime;
+import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.concurrent.Callable;
 import java.util.concurrent.ConcurrentMap;
@@ -131,34 +135,33 @@ public class FirstRemindJob implements Job {
             String day = null;
             String format = "yyyy-MM-dd HH:mm";
             for (FirstCalendar cal : cals) {
-                if (cal.getStart_day() != null && cal.getStart_day().trim().length() > 0) {
-                    day = cal.getTask_time() + " " + cal.getStart_day();
+                if (StringUtils.isNotBlank(cal.getFirstStart())) {
+                    day = cal.getTaskTime() + " " + cal.getFirstStart();
                     format = "yyyy-MM-dd HH:mm";
                 } else {
-                    day = cal.getTask_time();
+                    day = cal.getTaskTime();
                     format = "yyyy-MM-dd";
                 }
                 boolean flag = CommonUtil.getDateCompare(CommonUtil.getStrDate(day, format, 0), new Date(), false);
                 if (flag) {
-                    String token = String.valueOf(cal.getUser_id());
-                    if (WsSessionManager.SESSION_POOL.containsKey(token)) {
-                        try {
-                            WsSessionManager.SESSION_POOL.get(token).
-                                    sendMessage(new TextMessage("有一个首件巡检需要处理,请及时操作!"));
-                            //update  onsite_task set ${flag}=${flagVal} where id=${onsite_task_id}
-                            Map<String, Object> qm = new HashMap<>();
-                            qm.put("flag", "remind_task_flag");
-                            qm.put("flagVal", remind_handle_flag);
-                            qm.put("first_task_id", cal.getFirst_task_id());
-                            firstTaskService.updateFirstRemindFlag(qm);
-                        } catch (Throwable e) {
-                            e.printStackTrace();
+                    String tokenA = String.valueOf(cal.getPrincipalOneId());
+                    String tokenB = String.valueOf(cal.getPrincipalTwoId());
+                    Arrays.asList(tokenA, tokenB).forEach(token -> {
+                        if (WsSessionManager.SESSION_POOL.containsKey(token)) {
+                            try {
+                                WsSessionManager.SESSION_POOL.get(token).
+                                        sendMessage(new TextMessage("有一个首件巡检需要处理,请及时操作!"));
+                                Map<String, Object> qm = new HashMap<>();
+                                qm.put("flag", "remind_task_flag");
+                                qm.put("flagVal", remind_handle_flag);
+                                qm.put("first_task_id", cal.getFirstTaskId());
+                                firstTaskService.updateFirstRemindFlag(qm);
+                            } catch (Throwable e) {
+                                e.printStackTrace();
+                            }
                         }
-
-                    }
-
+                    });
                 }
-
             }
             return 0;
         }
@@ -188,12 +191,14 @@ public class FirstRemindJob implements Job {
             String format = "yyyy-MM-dd HH:mm";
             int min;
             for (FirstCalendar cal : cals) {
-                if (cal.getStart_day() != null && cal.getStart_day().trim().length() > 0) {
-                    day = cal.getTask_time() + " " + cal.getStart_day();
+                if (StringUtils.isNotBlank(cal.getFirstStart())) {
+                    day = cal.getTaskTime() + " " + cal.getFirstStart();
                     format = "yyyy-MM-dd HH:mm";
-                    min = cal.getDay_outtime() + cal.getDay_validate();
+                    LocalTime temporal1Inclusive = TimeConvert.timeString2time(TimeConvert.timeString2String(cal.getFirstRemind(), cal.getUpleverTimeNum(), "HH:mm"), 0);
+                    LocalTime temporal2Inclusive = TimeConvert.timeString2time(cal.getFirstStart(), 0);
+                    min = Integer.parseInt(ChronoUnit.MINUTES.between(temporal1Inclusive, temporal2Inclusive)+"");
                 } else {
-                    day = cal.getTask_time() + " " + cal.getTwo_hundred_submit_time();
+                    day = cal.getTaskTime() + " " + cal.getTwoRemind();
                     format = "yyyy-MM-dd HH:mm";
                     min = 0;
                 }
@@ -204,12 +209,12 @@ public class FirstRemindJob implements Job {
                     Long userid = firstTaskService.getRemindNoworkToManager(map);
                     if (userid != null && userid > 0) {
                         map = new HashMap();
-                        map.put("task_id", cal.getFirst_task_id());
+                        map.put("task_id", cal.getFirstTaskId());
                         map.put("approval_user_id", userid);
                         map.put("task_type", type);
                         map.put("flag", "remind_nowork_flag");
                         map.put("flagVal", remind_handle_flag);
-                        map.put("first_task_id", cal.getFirst_task_id());
+                        map.put("first_task_id", cal.getFirstTaskId());
                         firstTaskService.addRemindNowork(map);
 
                         //需要推动调用这个 todo

+ 4 - 3
application-task/src/main/java/com/factory/init/FirstTaskJob.java

@@ -99,12 +99,13 @@ public class FirstTaskJob implements Job {
         public Integer call() {
             FirstTaskService firstTaskService = (FirstTaskService) paramMap.get("firstTaskService");
             String td = CommonUtil.getDateStr(new Date(), "yyyy-MM-dd");
-            List<Long> cals = firstTaskService.getCalenderFirstForType(typeFlag);
-            for (Long calId : cals) {
+            List<FirstCalendar> cals = firstTaskService.getCalenderFirstForType(typeFlag);
+            for (FirstCalendar cal : cals) {
                 try {
+                    // TODO 添加不同类型添加一个task代码
                     FirstTask task = new FirstTask();
                     task.setTask_time(td);
-                    task.setFirst_article_calendar_id(calId);
+                    task.setFirst_article_calendar_id(cal.getId());
                     firstTaskService.insertFirstTask(task);
                 } catch (Throwable e) {
                     e.getStackTrace();

+ 1 - 1
application-task/src/main/java/com/factory/mapper/FirstTaskMapper.java

@@ -20,7 +20,7 @@ public interface FirstTaskMapper {
      * @param typeFlag
      * @return
      */
-    List<Long> getCalenderFirstForType(Integer typeFlag);
+    List<FirstCalendar> getCalenderFirstForType(Integer typeFlag);
 
 
     /**

+ 1 - 1
application-task/src/main/java/com/factory/service/FirstTaskService.java

@@ -15,7 +15,7 @@ public interface FirstTaskService {
      * @param typeFlag
      * @return
      */
-    List<Long> getCalenderFirstForType(Integer typeFlag);
+    List<FirstCalendar> getCalenderFirstForType(Integer typeFlag);
 
     /**
      * 添加当天任务

+ 1 - 1
application-task/src/main/java/com/factory/service/impl/FirstTaskServiceImp.java

@@ -29,7 +29,7 @@ public class FirstTaskServiceImp implements FirstTaskService {
      * @return
      */
     @Override
-    public List<Long> getCalenderFirstForType(Integer typeFlag) {
+    public List<FirstCalendar> getCalenderFirstForType(Integer typeFlag) {
         return mapper.getCalenderFirstForType(typeFlag);
     }
 

+ 6 - 18
application-task/src/main/resources/mappers/FirstTaskMapper.xml

@@ -2,19 +2,6 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.factory.mapper.FirstTaskMapper">
 
-    <resultMap id="calendarFirst" type="com.factory.base.entity.task.FirstCalendar">
-        <id column="id" property="id"/>
-        <result column="benteler_plan_id" property="benteler_plan_id"/>
-        <result column="start_day" property="start_day"/>
-        <result column="end_day" property="end_day"/>
-        <result column="day_validate" property="day_validate"/>
-        <result column="day_outtime" property="day_outtime"/>
-        <result column="two_hundred_submit_time" property="two_hundred_submit_time"/>
-        <result column="user_id" property="user_id"/>
-        <result column="type_flag" property="type_flag"/>
-        <result column="task_time" property="task_time"/>
-        <result column="first_task_id" property="first_task_id"/>
-    </resultMap>
     <resultMap id="approveMap" type="com.factory.base.entity.task.ApproveEntry">
         <id column="id" property="id"/>
         <result column="first_article_task_id" property="task_id"/>
@@ -64,8 +51,8 @@
     </select>
 
 
-    <select id="getCalenderFirstForType" parameterType="java.lang.Integer" resultType="java.lang.Long">
-        SELECT b.id
+    <select id="getCalenderFirstForType" parameterType="java.lang.Integer" resultType="com.factory.base.entity.task.FirstCalendar">
+        SELECT b.id,b.typeFlag
         FROM benteler_plan a,
              first_article_calendar b
         WHERE a.id = b.benteler_plan_id
@@ -84,10 +71,11 @@
         values (${first_article_calendar_id}, #{task_time});
     </insert>
 
-    <select id="getRemindWork" resultMap="calendarFirst">
-        select b.*,a.task_time ,a.id first_task_id
+    <select id="getRemindWork" resultType="com.factory.base.entity.task.FirstCalendar">
+        select b.*,a.taskTime ,a.id firstTaskId
         from first_article_task a,first_article_calendar b
-        where a.first_article_calendar_id=b.id and a.status=0 and b.type_flag=${type_flag}
+        where a.first_article_calendar_id=b.id and a.status=0 and b.type_flag like concat('%', ${type_flag}, '%')
+            and a.type_flag = ${type_flag}
         <if test="remind_task_flag != null">
             and a.remind_task_flag = ${remind_task_flag}
         </if>

+ 45 - 11
common-base/src/main/java/com/factory/base/entity/task/FirstCalendar.java

@@ -1,11 +1,15 @@
 package com.factory.base.entity.task;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import java.io.Serializable;
+import java.time.LocalDate;
 
 @Data
 @Builder
@@ -13,15 +17,45 @@ import java.io.Serializable;
 @AllArgsConstructor
 public class FirstCalendar implements Serializable {
 
-    private long id;
-    private long benteler_plan_id;
-    private String start_day;
-    private String end_day;
-    private String two_hundred_submit_time;
-    private int day_validate;
-    private int day_outtime;
-    private int user_id;
-    private String type_flag;
-    private String task_time;
-    private long first_task_id;
+    @ApiModelProperty(value = "唯一id主键")
+    private Long id;
+
+    @ApiModelProperty(value = "关联benteler_plan表的id")
+    private Long bentelerPlanId;
+
+    @ApiModelProperty(value = "首件开始时间")
+    private String firstStart;
+
+    @ApiModelProperty(value = "首件提醒时间=首件开始时间+检验时长(分钟)")
+    private String firstRemind;
+
+    @ApiModelProperty(value = "首件(检测结束时间)")
+    private String firstEnd;
+
+    @ApiModelProperty(value = "200件提交时间(pad提醒时间)")
+    private String twoRemind;
+
+    @ApiModelProperty(value = "升级时长(分钟)")
+    private Integer upleverTimeNum;
+
+    @ApiModelProperty(value = "0:首件  1:200件  2:中断 判断该计划有几种类型")
+    private String typeFlag;
+
+    @ApiModelProperty(value = "责任人1班次")
+    private String principalOneShift;
+
+    @ApiModelProperty(value = "责任人1id")
+    private Long principalOneId;
+
+    @ApiModelProperty(value = "责任人2班次")
+    private String principalTwoShift;
+
+    @ApiModelProperty(value = "责任人2id")
+    private Long principalTwoId;
+
+    @ApiModelProperty(value = "任务创建时间")
+    private String taskTime;
+
+    @ApiModelProperty(value = "任务id")
+    private Long firstTaskId;
 }