Explorar o código

放行防错,不放行审批经理错误
增加获取中断任务列表接口带上任务状态,创建并返回最新任务的列表

baihe %!s(int64=3) %!d(string=hai) anos
pai
achega
fb52e1d0a9
Modificáronse 16 ficheiros con 323 adicións e 39 borrados
  1. 16 6
      application-facade/src/main/java/com/factory/controller/web/FirstArticleController.java
  2. 50 0
      application-facade/src/main/java/com/factory/scheduled/TestJson.java
  3. 3 0
      application-facade/src/main/java/com/factory/web/entity/fa/req/SearchFaItemListForPadReq.java
  4. 6 0
      application-facade/src/main/java/com/factory/web/entity/fa/req/SearchFaWorkshopListForPadReq.java
  5. 6 1
      application-facade/src/main/java/com/factory/web/entity/fa/req/SearchUserListReq.java
  6. 3 0
      application-facade/src/main/java/com/factory/web/entity/fa/res/FaTaskRes.java
  7. 44 0
      application-facade/src/main/java/com/factory/web/entity/fa/res/FaTaskResForPad.java
  8. 40 0
      application-facade/src/main/java/com/factory/web/entity/pm/OnsiteTitleJson.java
  9. 7 0
      application-facade/src/main/java/com/factory/web/mapper/fa/FirstArticleMapper.java
  10. 17 0
      application-facade/src/main/java/com/factory/web/mapper/pm/OnsiteTitleJsonMapper.java
  11. 11 4
      application-facade/src/main/java/com/factory/web/service/fa/FirstArticleService.java
  12. 44 7
      application-facade/src/main/java/com/factory/web/service/impl/fa/FirstArticleServiceImpl.java
  13. 50 16
      application-facade/src/main/resources/mapper/FirstArticleMapper.xml
  14. 1 1
      application-facade/src/main/resources/mapper/PlanPassMapper.xml
  15. 4 4
      application-task/src/main/java/com/factory/init/TimerTaskInit.java
  16. 21 0
      common-base/src/main/java/com/factory/base/config/mybatis/JsonTypeConfig.java

+ 16 - 6
application-facade/src/main/java/com/factory/controller/web/FirstArticleController.java

@@ -2,6 +2,7 @@ package com.factory.controller.web;
 
 
 import java.util.List;
+import java.util.function.Function;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -41,6 +42,7 @@ import com.factory.web.entity.fa.res.FaNoGoTaskAapprovalRes;
 import com.factory.web.entity.fa.res.FaPlanListForPadRes;
 import com.factory.web.entity.fa.res.FaPlanListRes;
 import com.factory.web.entity.fa.res.FaPlanRes;
+import com.factory.web.entity.fa.res.FaTaskResForPad;
 import com.factory.web.entity.fa.res.FaWorkshopNoGoListRes;
 import com.factory.web.entity.fa.res.UserListRes;
 import com.factory.web.entity.pm.OnsiteApprovalPlan;
@@ -117,14 +119,14 @@ public class FirstArticleController {
 	@ApiOperation(value = "取得Pad端工作站列表")
 	@ApiOperationSupport(order = 7)
 	@PostMapping("/getFaWorkshopListForPad")
-	public ResponseBean<List<FirstArticleWorkshop>> getFaWorkshopListForPad(@RequestBody SearchFaWorkshopListForPadReq req) {
+	public ResponseBean<List<FirstArticleWorkshop>> getFaWorkshopListForPad(@RequestBody SearchFaWorkshopListForPadReq req)  throws Exception{
 		return firstArticleService.getFaWorkshopListForPad(req);
 	}
 
 	@ApiOperation(value = "取得Pad端巡检项目列表")
 	@ApiOperationSupport(order = 8)
 	@PostMapping("/getFaItemListForPad")
-	public ResponseBean<List<FaItemListForPadRes>> getFaItemListForPad(@RequestBody SearchFaItemListForPadReq req) {
+	public ResponseBean<List<FaItemListForPadRes>> getFaItemListForPad(@RequestBody SearchFaItemListForPadReq req)  throws Exception{
 		return firstArticleService.getFaItemListForPad(req);
 	}
 
@@ -159,7 +161,7 @@ public class FirstArticleController {
 	@ApiOperation(value = "修改巡检项目检查结果")
 	@PostMapping("/editFaItemResult")
 	@ApiOperationSupport(order = 13)
-	public ResponseBean editFaItemResult(@RequestBody EditFaItemResultListReq req) {
+	public ResponseBean<Void> editFaItemResult(@RequestBody EditFaItemResultListReq req) {
 		return firstArticleService.editFaItemResult(req);
 	}
 
@@ -229,8 +231,8 @@ public class FirstArticleController {
     @ApiOperation(value = "取得用户列表")
     @PostMapping("/getUserList")
     @ApiOperationSupport(order = 20)
-    public ResponseBean<List<UserListRes>> getUserList() {
-        return ResponseBeanBuilder.ok(firstArticleService.getUserList());
+    public ResponseBean<List<UserListRes>> getUserList(@RequestBody List<Long> roleIds) {
+        return ResponseBeanBuilder.ok(firstArticleService.getUserList(roleIds));
     }
 
     @ApiOperation(value = "取得点检人和点检日期")
@@ -243,9 +245,17 @@ public class FirstArticleController {
     @ApiOperation(value = "重检前清空之前的点检结果")
     @PostMapping("/setFaRepeatResult")
     @ApiOperationSupport(order = 22)
-    public ResponseBean setFaRepeatResult(@RequestBody SearchFaTaskReq req) {
+    public ResponseBean<Void> setFaRepeatResult(@RequestBody SearchFaTaskReq req) {
         firstArticleService.setFaRepeatResult(req.getFirstArticleTaskId());
         return ResponseBeanBuilder.ok();
     }
+    
+    @ApiOperation(value = "获取中断任务列表")
+    @PostMapping("/getFaBreakTaskForPad")
+    @ApiOperationSupport(order = 23)
+    public ResponseBean<List<FaTaskResForPad>> getFaBreakTaskForPad(@RequestBody SearchFaWorkshopListForPadReq req) {
+    	List<FaTaskResForPad> list = firstArticleService.getFaBreakTaskForPad(req);
+        return ResponseBeanBuilder.ok(list, Function.identity());
+    }
 
 }

+ 50 - 0
application-facade/src/main/java/com/factory/scheduled/TestJson.java

@@ -0,0 +1,50 @@
+package com.factory.scheduled;
+
+import java.io.ByteArrayInputStream;
+import java.io.ObjectInputStream;
+import java.util.List;
+
+import javax.annotation.PostConstruct;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.factory.web.entity.pm.OnsiteTitle;
+import com.factory.web.entity.pm.OnsiteTitleBlob;
+import com.factory.web.entity.pm.OnsiteTitleJson;
+import com.factory.web.mapper.pm.OnsiteTitleJsonMapper;
+import com.factory.web.service.pm.OnsiteTitleBlobService;
+
+@Component
+public class TestJson {
+    @Autowired
+	OnsiteTitleBlobService onsiteTitleBlobService;
+
+    @Autowired
+	OnsiteTitleJsonMapper onsiteTitleJsonMapper;
+    
+    @PostConstruct
+    public  void  init() throws Exception {
+//    	List<OnsiteTitleBlob> list = onsiteTitleBlobService.list();
+//    	for(OnsiteTitleBlob tb:list) {
+////    		OnsiteTitleJson tj = new OnsiteTitleJson();
+////    		tj.setBentelerPlanId(tb.getBentelerPlanId());
+////    		tj.setId(tb.getId());
+////    		tj.setOnsiteTitle((OnsiteTitle) this.byteArrayToObject(tb.getTitleContent()));
+////    		onsiteTitleJsonMapper.insert(tj);
+//    		System.out.println(this.byteArrayToObject(tb.getTitleContent()));
+//    	}
+//    	List<OnsiteTitleJson> list2 = onsiteTitleJsonMapper.selectList(null);
+//    	for(OnsiteTitleJson tb:list2) {
+//    		System.out.println(tb.getOnsiteTitle());
+//    	}
+    }
+
+    private Object byteArrayToObject(byte[] buffer) throws Exception {
+        Object ob = null;
+        ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buffer));
+        ob = ois.readObject();
+        ois.close();
+        return ob;
+    }
+}

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

@@ -32,4 +32,7 @@ public class SearchFaItemListForPadReq {
 
     @ApiModelProperty(value = "工作站Id")
     private Long workshopId;
+    
+    @ApiModelProperty(value = "中断任务ID可为空,为空获取最新未完成或新建一个")
+    private Long taskId;
 }

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

@@ -30,7 +30,13 @@ public class SearchFaWorkshopListForPadReq {
 
     @ApiModelProperty(value = "点检人对应的用户ID")
     private Long userId;
+    
+    @ApiModelProperty(value = "0初始化 1待审核状态 2放行 3不通过 4通过",hidden = true)
+    private Integer status;
 
+    @ApiModelProperty(value = "中断任务ID可为空,为空获取最新未完成或新建一个")
+    private Long taskId;
+    
 //	@ApiModelProperty(value = "工作站Id")
 //	private Long workshopId;
 }

+ 6 - 1
application-facade/src/main/java/com/factory/web/entity/fa/req/SearchUserListReq.java

@@ -1,6 +1,9 @@
 package com.factory.web.entity.fa.req;
 
+import java.util.List;
+
 import com.fasterxml.jackson.annotation.JsonInclude;
+
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -23,6 +26,8 @@ import lombok.NoArgsConstructor;
 public class SearchUserListReq {
 
     @ApiModelProperty(value = "角色Id")
-    private Long roleId;
+    private List<Long> roleIds;
+    
+    
 
 }

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

@@ -35,6 +35,9 @@ public class FaTaskRes implements Serializable {
 
     @ApiModelProperty(value = "0初始化 1待审核状态 2放行 3不通过 4通过")
     private Integer status;
+    
+    @ApiModelProperty(value = "任务类型")
+    private Integer typeFlag;
 
     @ApiModelProperty(value = "任务创建时间")
     private LocalDate taskTime;

+ 44 - 0
application-facade/src/main/java/com/factory/web/entity/fa/res/FaTaskResForPad.java

@@ -0,0 +1,44 @@
+package com.factory.web.entity.fa.res;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+import io.swagger.annotations.ApiModel;
+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
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude()
+@ApiModel("Pad中断任务列表")
+public class FaTaskResForPad implements Serializable {
+
+    @ApiModelProperty(value = "任务id")
+    private Long firstArticleTaskId;
+
+    @ApiModelProperty(value = "巡检时间表id")
+    private Long firstArticleCalendarId;
+
+    @ApiModelProperty(value = "0初始化 1待审核状态 2放行 3不通过 4通过")
+    private Integer status;
+    
+    @ApiModelProperty(value = "任务类型0首件 1二百 2中断")
+    private Integer typeFlag;
+
+    @ApiModelProperty(value = "任务创建时间")
+    private LocalDate taskTime;
+
+}

+ 40 - 0
application-facade/src/main/java/com/factory/web/entity/pm/OnsiteTitleJson.java

@@ -0,0 +1,40 @@
+package com.factory.web.entity.pm;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+
+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(value="onsite_title_json",autoResultMap = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OnsiteTitleJson implements Serializable {
+
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "表头id")
+    private Long id;
+
+    @ApiModelProperty(value = "计划id")
+    private Long bentelerPlanId;
+
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    @ApiModelProperty(value = "表头信息")
+    private OnsiteTitle onsiteTitle;
+}

+ 7 - 0
application-facade/src/main/java/com/factory/web/mapper/fa/FirstArticleMapper.java

@@ -38,6 +38,13 @@ public interface FirstArticleMapper extends BaseMapper<BentelerPlan> {
      * @return Pad端防错计划列表
      */
     public List<FaPlanListForPadRes> getFaPlanListForPad(@Param("req") SearchFaPlanListForPadReq req);
+    /**
+     * 取得Pad端中断任务
+     *
+     * @param req
+     * @return Pad端防错计划列表
+     */
+    public List<FaTaskResForPad> getFaBreakTaskForPad(@Param("req") SearchFaWorkshopListForPadReq req);
 
     /**
      * 得Pad端工作站列表

+ 17 - 0
application-facade/src/main/java/com/factory/web/mapper/pm/OnsiteTitleJsonMapper.java

@@ -0,0 +1,17 @@
+package com.factory.web.mapper.pm;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.factory.web.entity.pm.OnsiteTitleJson;
+
+/**
+ * 表头信息
+ *
+ * @author wzy
+ * @date 2021-07-09 12:00:00
+ */
+@Mapper
+public interface OnsiteTitleJsonMapper extends BaseMapper<OnsiteTitleJson> {
+
+}

+ 11 - 4
application-facade/src/main/java/com/factory/web/service/fa/FirstArticleService.java

@@ -102,7 +102,7 @@ public interface FirstArticleService extends IService<BentelerPlan> {
      * @param req
      * @return 工作站
      */
-    public ResponseBean<List<FirstArticleWorkshop>> getFaWorkshopListForPad(SearchFaWorkshopListForPadReq req);
+    public ResponseBean<List<FirstArticleWorkshop>> getFaWorkshopListForPad(SearchFaWorkshopListForPadReq req)  throws Exception;
 
     /**
      * 取得Pad端巡检项目
@@ -110,7 +110,7 @@ public interface FirstArticleService extends IService<BentelerPlan> {
      * @param req
      * @return 巡检项目
      */
-    public ResponseBean<List<FaItemListForPadRes>> getFaItemListForPad(SearchFaItemListForPadReq req);
+    public ResponseBean<List<FaItemListForPadRes>> getFaItemListForPad(SearchFaItemListForPadReq req) throws Exception;
 
     /**
      * 添加巡检项目检查结果
@@ -182,7 +182,7 @@ public interface FirstArticleService extends IService<BentelerPlan> {
      * @param req
      * @return 任务
      */
-    public FirstArticleTask getFaTaskInfoCatchLatest(SearchFaTaskInfoReq req);
+    public FirstArticleTask getFaTaskInfoCatchLatest(SearchFaTaskInfoReq req)  throws Exception;
 
     /**
      * 取得不放行任务对应的质量经理审批信息
@@ -229,7 +229,7 @@ public interface FirstArticleService extends IService<BentelerPlan> {
      * @param req
      * @return 取得用户列表
      */
-    public List<UserListRes> getUserList();
+    public List<UserListRes> getUserList(List<Long> roleId);
 
     /**
      * 取得点检人
@@ -258,4 +258,11 @@ public interface FirstArticleService extends IService<BentelerPlan> {
      * @param userId
      */
     public void setApproval(ApprovalRule approvalRuleNextLevel,Long taskId,Long userId);
+    
+    /**
+     * 获取中断任务列表以及完成状态
+     * @param req
+     * @return
+     */
+    public List<FaTaskResForPad> getFaBreakTaskForPad(SearchFaWorkshopListForPadReq req);
 }

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

@@ -16,7 +16,6 @@ import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 import java.util.stream.Stream;
 
-import com.factory.web.entity.vo.req.ExportInitialPlanDetailsReq;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -85,10 +84,12 @@ import com.factory.web.entity.fa.res.FaPlanListForPadRes;
 import com.factory.web.entity.fa.res.FaPlanListRes;
 import com.factory.web.entity.fa.res.FaPlanRes;
 import com.factory.web.entity.fa.res.FaTaskRes;
+import com.factory.web.entity.fa.res.FaTaskResForPad;
 import com.factory.web.entity.fa.res.FaWorkshopNoGoListRes;
 import com.factory.web.entity.fa.res.UserListRes;
 import com.factory.web.entity.pm.ApprovalRule;
 import com.factory.web.entity.pm.OnsiteApprovalPlan;
+import com.factory.web.entity.vo.req.ExportInitialPlanDetailsReq;
 import com.factory.web.mapper.fa.FirstArticleMapper;
 import com.factory.web.mapper.pm.ApprovalRuleMapper;
 import com.factory.web.service.BentelerPlanService;
@@ -597,7 +598,7 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
      * @return 工作站
      */
     @Override
-    public ResponseBean<List<FirstArticleWorkshop>> getFaWorkshopListForPad(SearchFaWorkshopListForPadReq req) {
+    public ResponseBean<List<FirstArticleWorkshop>> getFaWorkshopListForPad(SearchFaWorkshopListForPadReq req)  throws Exception{
         /* 取得task信息 */
         SearchFaTaskInfoReq searchFaTaskInfoReq = new SearchFaTaskInfoReq();
         searchFaTaskInfoReq.setBentelerPlanId(req.getBentelerPlanId());
@@ -660,7 +661,7 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
      * @return 巡检项目
      */
     @Override
-    public ResponseBean<List<FaItemListForPadRes>> getFaItemListForPad(SearchFaItemListForPadReq req) {
+    public ResponseBean<List<FaItemListForPadRes>> getFaItemListForPad(SearchFaItemListForPadReq req)  throws Exception{
         /* 取得task信息 */
         SearchFaTaskInfoReq searchFaTaskInfoReq = new SearchFaTaskInfoReq();
         searchFaTaskInfoReq.setBentelerPlanId(req.getBentelerPlanId());
@@ -992,6 +993,7 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
                     .valDesc(editFaItemResult.getValDesc())
                     .result(editFaItemResult.getResult())
                     .prefix(editFaItemResult.getPrefix())
+                    .result(0)
                     .sno(editFaItemResult.getSno())
                     .toolDesc(editFaItemResult.getToolDesc())
                     .abnormal(editFaItemResult.getAbnormal())
@@ -1074,13 +1076,34 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
 
     /**
      * 查询中断最新的task
+     * 如果没有未完成创建一个未完成的
      *
      * @param req
      * @return 任务
      */
     @Override
-    public FirstArticleTask getFaTaskInfoCatchLatest(SearchFaTaskInfoReq req) {
+    public FirstArticleTask getFaTaskInfoCatchLatest(SearchFaTaskInfoReq req) throws Exception{
+    	//最新未完成的
         FirstArticleTask firstArticleTask = firstArticleMapper.getFaTaskInfoCatchLatest(req);
+        if(firstArticleTask==null) {
+        	
+			FirstArticleCalendar calendar = firstArticleCalendarService.lambdaQuery()
+					.eq(FirstArticleCalendar::getBentelerPlanId, req.getBentelerPlanId()).last("limit 1").one();
+        	if(calendar==null||!calendar.getTypeFlag().contains("2")) {
+        		log.warn("当前计划不支持中断{}",req);
+        		throw new Exception("当前计划不支持中断");
+        	}
+        	//TODO 新建一个任务
+        	firstArticleTask = FirstArticleTask.builder()
+        			.firstArticleCalendarId(calendar.getId())
+        			.typeFlag(2)
+        			.taskTime(LocalDate.now())
+        			.status(0)
+        			.remindNoworkFlag(0)
+        			.remindTaskFlag(0)
+        			.build();
+        	
+        }
         return firstArticleTask;
     }
 
@@ -1284,10 +1307,17 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
      * @return 取得用户列表
      */
     @Override
-    public List<UserListRes> getUserList() {
+    public List<UserListRes> getUserList(List<Long> roleIds) {
         SearchUserListReq searchUserListReq = new SearchUserListReq();
-        searchUserListReq.setRoleId(ROLE_ID);
+        searchUserListReq.setRoleIds(new ArrayList<>());
+        if(roleIds!=null) {
+        	searchUserListReq.getRoleIds().addAll(roleIds);
+        }
+        if(roleIds==null||!roleIds.contains(ROLE_ID)) {
+        	searchUserListReq.getRoleIds().add(ROLE_ID);
+        }
         List<UserListRes> userList = firstArticleMapper.getUserList(searchUserListReq);
+        
         return userList;
     }
 
@@ -1538,7 +1568,14 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
     }
 
 
-    /**
+    @Override
+	public List<FaTaskResForPad> getFaBreakTaskForPad(SearchFaWorkshopListForPadReq req) {
+    	List<FaTaskResForPad> listRes = firstArticleMapper.getFaBreakTaskForPad(req);
+		return listRes;
+	}
+
+
+	/**
      * Object转成byte[]
      *
      * @param obj

+ 50 - 16
application-facade/src/main/resources/mapper/FirstArticleMapper.xml

@@ -247,33 +247,40 @@
     </select>
     <!-- 查询中断最新的task -->
     <select id="getFaTaskInfoCatchLatest" resultType="com.factory.web.entity.fa.FirstArticleTask">
-        SELECT fat.id,
-               fat.`status`
+        SELECT fat.id, fat.`status`
         FROM first_article_task fat,
              first_article_calendar fac
         WHERE fat.first_article_calendar_id = fac.id
           AND fac.benteler_plan_id = #{req.bentelerPlanId}
           AND TO_DAYS(fat.task_time) = TO_DAYS(NOW())
-          AND fat.type_flag = 2
-        ORDER BY fat.id DESC
-        LIMIT 0,1
+          AND fat.type_flag = 2 
+          <choose>
+          	<when test="req.taskId!=null">
+          		and fat.id=#{req.taskId}
+          	</when>
+          	<otherwise>
+          	 	and fat.`status`=0
+          	</otherwise>
+          </choose>
+          ORDER BY fat.id DESC
+         LIMIT 1
     </select>
 
     <!-- 取得不放行任务对应的审批人、审批意见、审批时间 -->
     <select id="getFaNoGoTaskAapproval" resultType="com.factory.web.entity.fa.res.FaNoGoTaskAapprovalRes">
         SELECT faat.approval_user_id,
-               uu.username       AS approval_person,
+               IFNULL(uu.username,'系统自动审批')       AS approval_person,
                faat.reason,
                faat.updated_time AS approval_time
-        FROM first_article_task fat,
-             first_article_approval_task faat,
-             us_user uu
-        WHERE fat.id = faat.first_article_task_id
-          AND faat.approval_user_id = uu.id
-          AND fat.`status` = 3
-          AND faat.approval_level = 2
+        FROM first_article_task fat
+             join first_article_approval_task faat on fat.id = faat.first_article_task_id
+             left join us_user uu on faat.approval_user_id = uu.id
+        WHERE fat.`status` = 3
+         <!--  AND faat.approval_level = 2 -->
           AND faat.`status` = 2
           AND fat.id = #{req.firstArticleTaskId}
+          order by faat.approval_level desc 
+          limit 1
     </select>
 
     <!-- 取得首件、200件、中断每天的点检记录 -->
@@ -363,7 +370,8 @@
 
     <!--取得用户列表 -->
     <select id="getUserList" resultType="com.factory.web.entity.fa.res.UserListRes">
-        SELECT uu.id,
+        SELECT DISTINCT
+        uu.id,
         uu.username,
         uu.`name`
         FROM us_user uu,
@@ -371,8 +379,11 @@
         WHERE uu.id = uur.user_id
         AND uu.`lock` = 0
         AND uu.del_flag = 0
-        <if test="req.roleId != -1">
-            AND uur.role_id = #{req.roleId}
+        <if test="req.roleIds != null and req.roleIds.size()>0">
+         AND uur.role_id  in 
+        <foreach collection="req.roleIds" item="roleId" open="(" close=")" separator=",">
+            #{roleId}
+        </foreach>
         </if>
     </select>
 
@@ -484,5 +495,28 @@
           AND fai.workshop_id = #{req.workshopId}
           AND fair.first_article_task_id = #{req.firstArticleTaskId}
     </select>
+    
+    
+     <!--取得Pad端中断任务列表 -->
+    <select id="getFaBreakTaskForPad" resultType="com.factory.web.entity.fa.res.FaTaskResForPad">
+        SELECT 
+        DISTINCT fat.id firstArticleTaskId,
+        fac.id firstArticleCalendarId,
+        fat.`status`,
+        fat.task_time taskTime,
+        fat.type_flag typeFlag
+        FROM 
+        	benteler_plan bp
+			join onsite_approval_plan oap on bp.id = oap.benteler_plan_id AND oap.approval_level = 2 AND oap.`status` = 1
+			join join first_article_calendar fac on bp.id = fac.benteler_plan_id
+			join join first_article_task fat on fac.id = fat.first_article_calendar_id and TO_DAYS(fat.task_time) = TO_DAYS(NOW())
+        where bp.`status` = 4 and bp.id = #{req.bentelerPlanId}
+        <if test="req.typeFlag !=null">
+            AND fat.type_flag = #{req.typeFlag}
+        </if>
+        <if test="req.status !=null">
+            AND fat.`status` = #{req.status}
+        </if>
+    </select>
 
 </mapper>

+ 1 - 1
application-facade/src/main/resources/mapper/PlanPassMapper.xml

@@ -229,7 +229,7 @@
           AND oc.benteler_plan_id = bp.id
           AND ot.id = oat.onsite_task_id
           AND ot.`status` = 1
-          AND ot.id = #{taskId}
+          AND ot.id = #{req.taskId}
           AND bp.id = #{req.planId} 
           AND bp.`status` &gt; 3
           AND oat.`status` = 0

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

@@ -61,11 +61,11 @@ public class TimerTaskInit {
         param.put("msgService", msgService);
         param.put("executorService", executorService);
         Scheduler sche = schedulerFactoryBean.getScheduler();
-//        addAutoApproveErrorTask(param, sche);
-//        addOnsiteTask(param, sche);
-//        addOnsiteRemindWork(param, sche);
+        addAutoApproveErrorTask(param, sche);
+        addOnsiteTask(param, sche);
+        addOnsiteRemindWork(param, sche);
         addFirstTask(param, sche);
-//        addFirstRemindWork(param, sche);
+        addFirstRemindWork(param, sche);
     }
 
     /**

+ 21 - 0
common-base/src/main/java/com/factory/base/config/mybatis/JsonTypeConfig.java

@@ -0,0 +1,21 @@
+package com.factory.base.config.mybatis;
+
+import javax.annotation.PostConstruct;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@Component
+public class JsonTypeConfig {
+	
+	@Autowired
+	private ObjectMapper objectMapper;
+	
+	@PostConstruct
+	public void init() throws Exception{
+		JacksonTypeHandler.setObjectMapper(objectMapper);
+	}
+}