瀏覽代碼

Merge remote-tracking branch 'origin/master'

daili 3 年之前
父節點
當前提交
5fee45b8a7

+ 7 - 0
application-facade/src/main/java/com/factory/web/entity/fa/FirstArticleItem.java

@@ -103,4 +103,11 @@ public class FirstArticleItem implements Serializable {
 	@TableField(exist = false)
 	@ApiModelProperty(value = "是否有特殊情况的首件放行记录 0没有 1有")
 	private Integer releaseFlag;
+
+	@TableField(exist = false)
+	@ApiModelProperty(value = "任务信息-小程序用")
+	private FirstArticleTask firstArticleTask;
+	@TableField(exist = false)
+	@ApiModelProperty(value = "所属task状态-小程序用")
+	private int firstArticleApprovalTaskStatus;
 }

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

@@ -23,6 +23,9 @@ import lombok.NoArgsConstructor;
 @ApiModel("")
 public class SearchFaCalendarReq {
 	
+	@ApiModelProperty(value = "计划Id")
+	private Long bentelerPlanId;
+	
 	@ApiModelProperty(value = "日期", example = "2021-06-08")
 	private String checkDate;
 	

+ 0 - 2
application-facade/src/main/java/com/factory/wx/entity/res/PlanPassDetailRes.java

@@ -48,7 +48,5 @@ public class PlanPassDetailRes {
     private List<FirstArticleCalendar> firstArticleCalendars;
     @ApiModelProperty(value = "工作站及巡检内容")
     private List<FirstArticleWorkshop> firstArticleWorkshops;
-    @ApiModelProperty(value = "巡检信息")
-    private List<FirstArticleApprovalTask> firstArticleApprovalTasks;
 
 }

+ 37 - 8
application-facade/src/main/java/com/factory/wx/service/impl/PlanApprovalServiceImpl.java

@@ -37,8 +37,6 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.io.ByteArrayInputStream;
-import java.io.ObjectInputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
@@ -96,8 +94,6 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
      */
     @Override
     public List<PlanApprovalRes> getApprovalList(Long userId) {
-
-
         return planApprovalMapper.getApprovalList(userId);
     }
 
@@ -124,6 +120,8 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
             if (StringUtils.isNotEmpty(planPageReq.getName())) {
                 wrapper.like(BentelerPlan::getName, planPageReq.getName());
             }
+            wrapper.eq(BentelerPlan::getDeleted, 0);//未删除
+            wrapper.eq(BentelerPlan::getPauseFlag, 0);//未禁用
             IPage<BentelerPlan> page = new Page<>(planPageReq.getPage(), planPageReq.getSize());
             bentelerPlanIPage = bentelerPlanMapper.selectPage(page, wrapper);
         }
@@ -146,8 +144,8 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
 
         List<String> usersName = new ArrayList<>();
         firstArticleCalendarList.forEach(firstArticleCalendar -> {
-            UserInfo userInfo = userInfoMapper.selectById(firstArticleCalendar.getUserId());
-            usersName.add(StringUtils.join(userInfo.getName(), " ", firstArticleCalendar.getShift(), "班"));
+            String name = assembleUserName(firstArticleCalendar.getUserId(), firstArticleCalendar.getShift());
+            if (!name.isEmpty()) usersName.add(name);
         });
 
         List<FirstArticleWorkshop> firstArticleWorkshopList = firstArticleWorkshopMapper.selectList(Wrappers.<FirstArticleWorkshop>lambdaQuery()
@@ -171,6 +169,7 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
                 .build();
     }
 
+
     /**
      * 获取审批计划详情-防错
      *
@@ -185,8 +184,8 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
 
         List<String> usersName = new ArrayList<>();
         onsiteCalendarList.forEach(onsiteCalendar -> {
-            UserInfo userInfo = userInfoMapper.selectById(onsiteCalendar.getUserId());
-            usersName.add(userInfo.getName());
+            String name = assembleUserName(onsiteCalendar.getUserId(), null);
+            if (!name.isEmpty()) usersName.add(name);
         });
 
         //获取title
@@ -255,4 +254,34 @@ public class PlanApprovalServiceImpl implements PlanApprovalService {
         return ResponseBeanBuilder.ok();
     }
 
+    /**
+     * 根据用户id及班次拼装用户姓名
+     *
+     * @param userId
+     * @param shift
+     * @return 取不到用户信息返回空字符串,取到用户信息拼接班次
+     */
+    private String assembleUserName(Long userId, String shift) {
+        if (userId > 0) {
+            UserInfo userInfo = userInfoMapper.selectById(userId);
+            if (null != userInfo && null != userInfo.getName()) {
+                return StringUtils.join(userInfo.getName(), " ", shift != null ? shift + "班" : "");
+            }
+        }
+        return "";
+    }
+
+    /**
+     * 根据用户id获取用户姓名
+     * @param userId
+     * @return name
+     */
+    private String getUserNameById(Long userId) {
+        UserInfo userInfo = userInfoMapper.selectById(userId);
+        if (null != userInfo && null != userInfo.getName()) {
+            return userInfo.getName();
+        }
+        return "";
+    }
+
 }

+ 75 - 32
application-facade/src/main/java/com/factory/wx/service/impl/PlanPassServiceImpl.java

@@ -43,6 +43,7 @@ import java.io.ByteArrayInputStream;
 import java.io.ObjectInputStream;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -99,6 +100,10 @@ public class PlanPassServiceImpl implements PlanPassService {
     private FirstArticleItemResultService firstArticleItemResultService;
     @Autowired
     private FirstArticleService firstArticleService;
+    @Autowired
+    private FirstArticleTaskService firstArticleTaskService;
+//    @Autowired
+//    private FirstArticleApprovalTaskMapper firstArticleApprovalTaskMapper;
 
     private static IPage<BentelerPlan> getBentelerPlanIPage(PlanPageReq planPageReq, List<OnsiteCalendar> onsiteCalendarList, BentelerPlanMapper bentelerPlanMapper) {
         IPage<BentelerPlan> bentelerPlanIPage;
@@ -148,6 +153,7 @@ public class PlanPassServiceImpl implements PlanPassService {
 
     /**
      * 计划放行详情-首件
+     *
      * @param planInfoReq
      * @return
      */
@@ -160,44 +166,62 @@ public class PlanPassServiceImpl implements PlanPassService {
                 .eq(FirstArticleCalendar::getBentelerPlanId, planInfoReq.getPlanId()));
         List<String> usersName = new ArrayList<>();
         firstArticleCalendarList.forEach(onsiteCalendar -> {
-            UserInfo userInfo = userInfoMapper.selectById(onsiteCalendar.getUserId());
-            usersName.add(StringUtils.join(userInfo.getName(), " ", onsiteCalendar.getShift(), "班"));
+            String name = assembleUserName(onsiteCalendar.getUserId(), onsiteCalendar.getShift());
+            if (!name.isEmpty()) usersName.add(name);
         });
 
         //工作站
         List<FirstArticleWorkshop> firstArticleWorkshopList = firstArticleWorkshopService.list(Wrappers.<FirstArticleWorkshop>lambdaQuery()
                 .eq(FirstArticleWorkshop::getBentelerPlanId, planInfoReq.getPlanId()));
         // 每个workshop下的item
-        firstArticleWorkshopList.forEach(workshop -> {
+        for (int i = 0; i < firstArticleWorkshopList.size(); i++) {
+            FirstArticleWorkshop workshop = firstArticleWorkshopList.get(i);
             List<FirstArticleItem> firstArticleItemList = firstArticleItemService.list(Wrappers.<FirstArticleItem>lambdaQuery()
                     .eq(FirstArticleItem::getWorkshopId, workshop.getId()));
-            workshop.setFirstArticleItemList(firstArticleItemList);
             //每个item下的结果
-            firstArticleItemList.forEach(item -> {
+            for (int j = 0; j < firstArticleItemList.size(); j++) {
+                FirstArticleItem item = firstArticleItemList.get(j);
                 List<FirstArticleItemResult> firstArticleItemResults = firstArticleItemResultService.list(Wrappers.<FirstArticleItemResult>lambdaQuery()
                         .eq(FirstArticleItemResult::getFirstArticleItemId, item.getId())
                         .eq(FirstArticleItemResult::getResult, 1));
-                // 首件列表
-                if (item.getFirstFlag() == 1 && firstArticleItemResults.stream().count() > 0) {
-                    item.setFirstItemResultList(firstArticleItemResults);
-                }
-                // 200件
-                if (item.getTwoHundredFlag() == 1 && firstArticleItemResults.stream().count() > 0) {
-                    item.setTwoHundredItemResultList(firstArticleItemResults);
+                if (firstArticleItemResults.stream().count() == 0) {
+                    firstArticleItemList.remove(j);
+                } else {
+                    // 首件列表
+                    if (item.getFirstFlag() == 1 && firstArticleItemResults.stream().count() > 0) {
+                        item.setFirstItemResultList(firstArticleItemResults);
+                    }
+                    // 200件
+                    if (item.getTwoHundredFlag() == 1 && firstArticleItemResults.stream().count() > 0) {
+                        item.setTwoHundredItemResultList(firstArticleItemResults);
+                    }
+                    // 中断
+                    if (item.getCatchFlag() == 1 && firstArticleItemResults.stream().count() > 0) {
+                        item.setCatchItemResultList(firstArticleItemResults);
+                    }
+                    if (firstArticleItemResults.stream().count() > 0) {
+                        Optional<Long> taskId = firstArticleItemResults.stream().findFirst().map(FirstArticleItemResult::getFirstArticleTaskId);
+                        if (taskId.isPresent()) {
+                            FirstArticleTask firstArticleTask = firstArticleTaskService.getById(taskId.get().longValue());
+                            item.setFirstArticleTask(firstArticleTask);
+                            FirstArticleApprovalTask approvalTask = firstArticleApprovalTaskMapper.selectOne(Wrappers.<FirstArticleApprovalTask>lambdaQuery()
+                                    .eq(FirstArticleApprovalTask::getFirstArticleTaskId, taskId.get().longValue()));
+                            item.setFirstArticleApprovalTaskStatus(approvalTask.getStatus());
+                        }
+                    }
                 }
-                // 中断
-                if (item.getCatchFlag() == 1 && firstArticleItemResults.stream().count() > 0) {
-                    item.setCatchItemResultList(firstArticleItemResults);
-                }
-            });
-        });
+            }
+            if (firstArticleItemList.size() > 0) {
+                workshop.setFirstArticleItemList(firstArticleItemList);
+            } else {
+                firstArticleWorkshopList.remove(i);
+            }
+        }
 
 
         //获取title
         FirstArticleTitle title = firstArticleService.getFaTitle(planInfoReq.getPlanId());
 
-        List<FirstArticleApprovalTask> firstArticleApprovalTaskList = planPassMapper.getFirstArticleApprovalTaskList(planInfoReq.getUserId());
-//
         return PlanPassDetailRes.builder()
                 .planId(bentelerPlan.getId())
                 .planName(bentelerPlan.getName())
@@ -206,7 +230,6 @@ public class PlanPassServiceImpl implements PlanPassService {
                 .firstArticleTitle(title)
                 .firstArticleCalendars(firstArticleCalendarList)
                 .firstArticleWorkshops(firstArticleWorkshopList)
-                .firstArticleApprovalTasks(firstArticleApprovalTaskList)
                 .build();
     }
 
@@ -224,8 +247,9 @@ public class PlanPassServiceImpl implements PlanPassService {
 
         List<String> usersName = new ArrayList<>();
         onsiteCalendarList.forEach(onsiteCalendar -> {
-            UserInfo userInfo = userInfoMapper.selectById(onsiteCalendar.getUserId());
-            usersName.add(userInfo.getName());
+
+            String name = assembleUserName(onsiteCalendar.getUserId(), null);
+            if (!name.isEmpty()) usersName.add(name);
         });
 
         //获取title
@@ -240,6 +264,7 @@ public class PlanPassServiceImpl implements PlanPassService {
                 .titleInfo(title)
                 .onsiteCalendars(onsiteCalendarList)
                 .planApprovalTasks(planApprovalTaskResList)
+                .effectiveDate(bentelerPlan.getEffectiveDate())
                 .build();
         return planPassDetailRes;
     }
@@ -255,15 +280,6 @@ public class PlanPassServiceImpl implements PlanPassService {
 
         int updateStatus = 0;
         if (planApprovalTaskReq.getPlanType() == 1) {
-            OnsiteApprovalTask ot = new OnsiteApprovalTask();
-            ot.setOnsiteTaskId(planApprovalTaskReq.getTaskId());
-            ot.setReason(planApprovalTaskReq.getReason());
-            ot.setStatus(planApprovalTaskReq.getStatus());
-            updateStatus = onsiteApprovalTaskMapper.update(ot, Wrappers.<OnsiteApprovalTask>lambdaQuery()
-                    .eq(OnsiteApprovalTask::getOnsiteTaskId, planApprovalTaskReq.getTaskId())
-                    .eq(OnsiteApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()));
-        }
-        if (planApprovalTaskReq.getPlanType() == 2) {
             FirstArticleApprovalTask ot = new FirstArticleApprovalTask();
             ot.setFirstArticleTaskId(planApprovalTaskReq.getTaskId());
             ot.setReason(planApprovalTaskReq.getReason());
@@ -272,6 +288,15 @@ public class PlanPassServiceImpl implements PlanPassService {
                     .eq(FirstArticleApprovalTask::getFirstArticleTaskId, planApprovalTaskReq.getTaskId())
                     .eq(FirstArticleApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()));
         }
+        if (planApprovalTaskReq.getPlanType() == 2) {
+            OnsiteApprovalTask ot = new OnsiteApprovalTask();
+            ot.setOnsiteTaskId(planApprovalTaskReq.getTaskId());
+            ot.setReason(planApprovalTaskReq.getReason());
+            ot.setStatus(planApprovalTaskReq.getStatus());
+            updateStatus = onsiteApprovalTaskMapper.update(ot, Wrappers.<OnsiteApprovalTask>lambdaQuery()
+                    .eq(OnsiteApprovalTask::getOnsiteTaskId, planApprovalTaskReq.getTaskId())
+                    .eq(OnsiteApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()));
+        }
 
         if (updateStatus > 0) {
             //审批不通过触发下一级别
@@ -327,6 +352,7 @@ public class PlanPassServiceImpl implements PlanPassService {
 
     /**
      * byte[]转成Object
+     *
      * @param buffer byte[]
      * @return Object
      */
@@ -338,4 +364,21 @@ public class PlanPassServiceImpl implements PlanPassService {
         return ob;
     }
 
+    /**
+     * 根据用户id及班次拼装用户姓名
+     *
+     * @param userId
+     * @param shift
+     * @return 取不到用户信息返回空字符串,取到用户信息拼接班次
+     */
+    private String assembleUserName(Long userId, String shift) {
+        if (userId > 0) {
+            UserInfo userInfo = userInfoMapper.selectById(userId);
+            if (null != userInfo && null != userInfo.getName()) {
+                return StringUtils.join(userInfo.getName(), " ", shift != null ? shift + "班" : "");
+            }
+        }
+        return "";
+    }
+
 }

+ 68 - 0
application-facade/src/main/resources/mapper/FirstArticleMapper.xml

@@ -381,6 +381,7 @@
 	</select>
 	
 	<!--取得点检人 -->
+	<!-- 
     <select id="getFaCalendarList" resultType="com.factory.web.entity.fa.res.FaCalendarRes">
         SELECT DISTINCT fac.type_flag,
 		       fat.task_time,
@@ -392,5 +393,72 @@
 		AND    fac.user_id = uu.id
 		AND    fat.task_time = #{req.checkDate}
     </select>
+     -->
+    <select id="getFaCalendarList" resultType="com.factory.web.entity.fa.res.FaCalendarRes">
+        SELECT 
+			0 AS type_flag,
+			fat.task_time,
+			MIN( fair.created_time ) AS check_time,
+			GROUP_CONCAT( DISTINCT uu.`name` ) AS check_person 
+		FROM
+			first_article_task fat,
+			first_article_calendar fac,
+			us_user uu,
+			first_article_item_result fair,
+		  first_article_item fai	
+		WHERE
+			fat.first_article_calendar_id = fac.id 
+			AND fair.first_article_task_id = fat.id 
+			AND fair.first_article_item_id = fai.id
+			AND fair.created_user_id = uu.id 
+			AND fat.task_time = #{req.checkDate}
+			AND fac.benteler_plan_id = #{req.bentelerPlanId}
+			AND fai.first_flag = 1
+		
+		UNION ALL
+		
+		SELECT 
+			1 AS type_flag,
+			fat.task_time,
+			MIN( fair.created_time ) AS check_time,
+			GROUP_CONCAT( DISTINCT uu.`name` ) AS check_person 
+		FROM
+			first_article_task fat,
+			first_article_calendar fac,
+			us_user uu,
+			first_article_item_result fair,
+		  first_article_item fai	
+		WHERE
+			fat.first_article_calendar_id = fac.id 
+			AND fair.first_article_task_id = fat.id 
+			AND fair.first_article_item_id = fai.id
+			AND fair.created_user_id = uu.id 
+			AND fat.task_time = #{req.checkDate}
+			AND fac.benteler_plan_id = #{req.bentelerPlanId}
+			AND fai.two_hundred_flag = 1
+		
+		UNION ALL
+		
+		SELECT 
+			2 AS type_flag,
+			fat.task_time,
+			MIN( fair.created_time ) AS check_time,
+			GROUP_CONCAT( DISTINCT uu.`name` ) AS check_person 
+		FROM
+			first_article_task fat,
+			first_article_calendar fac,
+			us_user uu,
+			first_article_item_result fair,
+		  first_article_item fai	
+		WHERE
+			fat.first_article_calendar_id = fac.id 
+			AND fair.first_article_task_id = fat.id 
+			AND fair.first_article_item_id = fai.id
+			AND fair.created_user_id = uu.id 
+			AND fat.task_time = #{req.checkDate}
+			AND fac.benteler_plan_id = #{req.bentelerPlanId}
+			AND fai.catch_flag = 1
+
+    </select>
     
 </mapper>