孙伟 3 лет назад
Родитель
Сommit
4dca9710fd

+ 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;
 }

+ 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 "";
+    }
+
 }