|
@@ -21,29 +21,25 @@ import com.factory.web.mapper.pm.ApprovalRuleMapper;
|
|
|
import com.factory.web.mapper.pm.OnsiteApprovalTaskMapper;
|
|
|
import com.factory.web.mapper.pm.OnsiteCalendarMapper;
|
|
|
import com.factory.web.mapper.pm.OnsiteTaskMapper;
|
|
|
-import com.factory.web.service.BentelerPlanService;
|
|
|
import com.factory.web.service.fa.*;
|
|
|
import com.factory.web.service.pm.PreventMistakeService;
|
|
|
import com.factory.wx.entity.req.PlanApprovalTaskReq;
|
|
|
-import com.factory.wx.entity.req.PlanInfoReq;
|
|
|
import com.factory.wx.entity.req.PlanPageReq;
|
|
|
+import com.factory.wx.entity.req.PlanPassReq;
|
|
|
import com.factory.wx.entity.res.PlanApprovalTaskRes;
|
|
|
import com.factory.wx.entity.res.PlanPassDetailRes;
|
|
|
import com.factory.wx.entity.res.PlanPassRes;
|
|
|
-import com.factory.wx.mapper.PlanApprovalMapper;
|
|
|
+import com.factory.wx.entity.res.WxPlanBaseInfoRes;
|
|
|
import com.factory.wx.mapper.PlanPassMapper;
|
|
|
import com.factory.wx.service.PlanPassService;
|
|
|
+import com.factory.wx.service.WxPlanService;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
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.Optional;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -59,23 +55,22 @@ public class PlanPassServiceImpl implements PlanPassService {
|
|
|
* 审批规则类型为:1新建计划审批
|
|
|
*/
|
|
|
private static int APPROVAL_TYPE_NEW = 1;
|
|
|
+ /**
|
|
|
+ * 审批规则类型为:2首件
|
|
|
+ */
|
|
|
+ private static int APPROVAL_TYPE_FIRST_ARTICLE = 2;
|
|
|
/**
|
|
|
* 审批规则类型为:3防错
|
|
|
*/
|
|
|
private static int APPROVAL_TYPE_PM = 3;
|
|
|
@Autowired
|
|
|
- private PlanApprovalMapper planApprovalMapper;
|
|
|
- @Autowired
|
|
|
private BentelerPlanMapper bentelerPlanMapper;
|
|
|
@Autowired
|
|
|
private OnsiteCalendarMapper onsiteCalendarMapper;
|
|
|
@Autowired
|
|
|
private ApprovalRuleMapper approvalRuleMapper;
|
|
|
@Autowired
|
|
|
- private UserInfoMapper userInfoMapper;
|
|
|
- @Autowired
|
|
|
private PreventMistakeService preventMistakeService;
|
|
|
-
|
|
|
@Autowired
|
|
|
private OnsiteApprovalTaskMapper onsiteApprovalTaskMapper;
|
|
|
@Autowired
|
|
@@ -83,16 +78,8 @@ public class PlanPassServiceImpl implements PlanPassService {
|
|
|
@Autowired
|
|
|
private PlanPassMapper planPassMapper;
|
|
|
@Autowired
|
|
|
- private FirstArticleCalendarMapper firstArticleCalendarMapper;
|
|
|
- @Autowired
|
|
|
private FirstArticleApprovalTaskMapper firstArticleApprovalTaskMapper;
|
|
|
@Autowired
|
|
|
- private BentelerPlanService planService;
|
|
|
- @Autowired
|
|
|
- private FirstArticleCalendarService firstArticleCalendarService;
|
|
|
- @Autowired
|
|
|
- private FirstArticleTitleBlobService firstArticleTitleBlobService;
|
|
|
- @Autowired
|
|
|
private FirstArticleWorkshopService firstArticleWorkshopService;
|
|
|
@Autowired
|
|
|
private FirstArticleItemService firstArticleItemService;
|
|
@@ -102,8 +89,8 @@ public class PlanPassServiceImpl implements PlanPassService {
|
|
|
private FirstArticleService firstArticleService;
|
|
|
@Autowired
|
|
|
private FirstArticleTaskService firstArticleTaskService;
|
|
|
-// @Autowired
|
|
|
-// private FirstArticleApprovalTaskMapper firstArticleApprovalTaskMapper;
|
|
|
+ @Autowired
|
|
|
+ private WxPlanService wxPlanService;
|
|
|
|
|
|
private static IPage<BentelerPlan> getBentelerPlanIPage(PlanPageReq planPageReq, List<OnsiteCalendar> onsiteCalendarList, BentelerPlanMapper bentelerPlanMapper) {
|
|
|
IPage<BentelerPlan> bentelerPlanIPage;
|
|
@@ -154,25 +141,18 @@ public class PlanPassServiceImpl implements PlanPassService {
|
|
|
/**
|
|
|
* 计划放行详情-首件
|
|
|
*
|
|
|
- * @param planInfoReq
|
|
|
+ * @param planPassReq
|
|
|
* @return
|
|
|
*/
|
|
|
|
|
|
@Override
|
|
|
- public PlanPassDetailRes getPassDetail(PlanInfoReq planInfoReq) {
|
|
|
- BentelerPlan bentelerPlan = bentelerPlanMapper.selectById(planInfoReq.getPlanId());
|
|
|
-
|
|
|
- List<FirstArticleCalendar> firstArticleCalendarList = firstArticleCalendarMapper.selectList(Wrappers.<FirstArticleCalendar>lambdaQuery()
|
|
|
- .eq(FirstArticleCalendar::getBentelerPlanId, planInfoReq.getPlanId()));
|
|
|
- List<String> usersName = new ArrayList<>();
|
|
|
- firstArticleCalendarList.forEach(onsiteCalendar -> {
|
|
|
- String name = assembleUserName(onsiteCalendar.getUserId(), onsiteCalendar.getShift());
|
|
|
- if (!name.isEmpty()) usersName.add(name);
|
|
|
- });
|
|
|
+ public PlanPassDetailRes getPassDetail(PlanPassReq planPassReq) {
|
|
|
+ WxPlanBaseInfoRes wxPlanBaseInfoRes =
|
|
|
+ wxPlanService.getFirstArticlePlanBaseInfo(planPassReq.getPlanId());
|
|
|
|
|
|
//工作站
|
|
|
List<FirstArticleWorkshop> firstArticleWorkshopList = firstArticleWorkshopService.list(Wrappers.<FirstArticleWorkshop>lambdaQuery()
|
|
|
- .eq(FirstArticleWorkshop::getBentelerPlanId, planInfoReq.getPlanId()));
|
|
|
+ .eq(FirstArticleWorkshop::getBentelerPlanId, planPassReq.getPlanId()));
|
|
|
// 每个workshop下的item
|
|
|
for (int i = 0; i < firstArticleWorkshopList.size(); i++) {
|
|
|
FirstArticleWorkshop workshop = firstArticleWorkshopList.get(i);
|
|
@@ -181,9 +161,11 @@ public class PlanPassServiceImpl implements PlanPassService {
|
|
|
//每个item下的结果
|
|
|
for (int j = 0; j < firstArticleItemList.size(); j++) {
|
|
|
FirstArticleItem item = firstArticleItemList.get(j);
|
|
|
+ //TODO 一个对应多个result
|
|
|
List<FirstArticleItemResult> firstArticleItemResults = firstArticleItemResultService.list(Wrappers.<FirstArticleItemResult>lambdaQuery()
|
|
|
.eq(FirstArticleItemResult::getFirstArticleItemId, item.getId())
|
|
|
.eq(FirstArticleItemResult::getResult, 1));
|
|
|
+ // 容错,没有result信息则删除
|
|
|
if (firstArticleItemResults.stream().count() == 0) {
|
|
|
firstArticleItemList.remove(j);
|
|
|
} else {
|
|
@@ -204,13 +186,17 @@ public class PlanPassServiceImpl implements PlanPassService {
|
|
|
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()));
|
|
|
+ .eq(FirstArticleApprovalTask::getFirstArticleTaskId, taskId.get().longValue())
|
|
|
+// .eq(FirstArticleApprovalTask::getApprovalLevel, firstArticleApprovalTask.getApprovalLevel())
|
|
|
+ .eq(FirstArticleApprovalTask::getApprovalUserId, planPassReq.getUserId()));
|
|
|
item.setFirstArticleApprovalTaskStatus(approvalTask.getStatus());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ //工作站下面没有异常的item则不显示工作站
|
|
|
if (firstArticleItemList.size() > 0) {
|
|
|
workshop.setFirstArticleItemList(firstArticleItemList);
|
|
|
} else {
|
|
@@ -218,17 +204,14 @@ public class PlanPassServiceImpl implements PlanPassService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- //获取title
|
|
|
- FirstArticleTitle title = firstArticleService.getFaTitle(planInfoReq.getPlanId());
|
|
|
-
|
|
|
return PlanPassDetailRes.builder()
|
|
|
- .planId(bentelerPlan.getId())
|
|
|
- .planName(bentelerPlan.getName())
|
|
|
- .effectiveDate(bentelerPlan.getEffectiveDate())
|
|
|
- .usersName(usersName)
|
|
|
- .firstArticleTitle(title)
|
|
|
- .firstArticleCalendars(firstArticleCalendarList)
|
|
|
+ .planId(wxPlanBaseInfoRes.getPlanId())
|
|
|
+ .planName(wxPlanBaseInfoRes.getPlanName())
|
|
|
+ .usersName(wxPlanBaseInfoRes.getUsersName())
|
|
|
+ .frequency(wxPlanBaseInfoRes.getFrequency())
|
|
|
+ .effectiveDate(wxPlanBaseInfoRes.getEffectiveDate())
|
|
|
+ .firstArticleTitle((FirstArticleTitle) wxPlanBaseInfoRes.getTitle())
|
|
|
+ .attachment(wxPlanBaseInfoRes.getAttachment())
|
|
|
.firstArticleWorkshops(firstArticleWorkshopList)
|
|
|
.build();
|
|
|
}
|
|
@@ -236,37 +219,29 @@ public class PlanPassServiceImpl implements PlanPassService {
|
|
|
/**
|
|
|
* 计划放行详情-防错
|
|
|
*
|
|
|
- * @param planInfoReq
|
|
|
+ * @param planPassReq
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
- public PlanPassDetailRes getPassDetailPM(PlanInfoReq planInfoReq) {
|
|
|
- BentelerPlan bentelerPlan = bentelerPlanMapper.selectById(planInfoReq.getPlanId());
|
|
|
- List<OnsiteCalendar> onsiteCalendarList = onsiteCalendarMapper.selectList(Wrappers.<OnsiteCalendar>lambdaQuery()
|
|
|
- .eq(OnsiteCalendar::getBentelerPlanId, planInfoReq.getPlanId()));
|
|
|
-
|
|
|
- List<String> usersName = new ArrayList<>();
|
|
|
- onsiteCalendarList.forEach(onsiteCalendar -> {
|
|
|
-
|
|
|
- String name = assembleUserName(onsiteCalendar.getUserId(), null);
|
|
|
- if (!name.isEmpty()) usersName.add(name);
|
|
|
- });
|
|
|
-
|
|
|
- //获取title
|
|
|
- OnsiteTitle title = preventMistakeService.getTitle(planInfoReq.getPlanId());
|
|
|
- List<PlanApprovalTaskRes> planApprovalTaskResList = planPassMapper.getApprovalTaskList(planInfoReq.getUserId());
|
|
|
-
|
|
|
- PlanPassDetailRes planPassDetailRes = PlanPassDetailRes.builder()
|
|
|
- .planId(bentelerPlan.getId())
|
|
|
- .planName(bentelerPlan.getName())
|
|
|
- .effectiveDate(bentelerPlan.getEffectiveDate())
|
|
|
- .usersName(usersName)
|
|
|
- .titleInfo(title)
|
|
|
- .onsiteCalendars(onsiteCalendarList)
|
|
|
+ public PlanPassDetailRes getPassDetailPM(PlanPassReq planPassReq) {
|
|
|
+ WxPlanBaseInfoRes wxPlanBaseInfoRes =
|
|
|
+ wxPlanService.getOnsitePlanBaseInfo(planPassReq.getPlanId());
|
|
|
+
|
|
|
+ //获取待审批任务
|
|
|
+ Map map = new HashMap();
|
|
|
+ map.put("userId", planPassReq.getUserId());
|
|
|
+ List<PlanApprovalTaskRes> planApprovalTaskResList = planPassMapper.getApprovalTaskList(map);
|
|
|
+
|
|
|
+ return PlanPassDetailRes.builder()
|
|
|
+ .planId(wxPlanBaseInfoRes.getPlanId())
|
|
|
+ .planName(wxPlanBaseInfoRes.getPlanName())
|
|
|
+ .usersName(wxPlanBaseInfoRes.getUsersName())
|
|
|
+ .frequency(wxPlanBaseInfoRes.getFrequency())
|
|
|
+ .effectiveDate(wxPlanBaseInfoRes.getEffectiveDate())
|
|
|
+ .titleInfo((OnsiteTitle) wxPlanBaseInfoRes.getTitle())
|
|
|
+ .attachment(wxPlanBaseInfoRes.getAttachment())
|
|
|
.planApprovalTasks(planApprovalTaskResList)
|
|
|
- .effectiveDate(bentelerPlan.getEffectiveDate())
|
|
|
.build();
|
|
|
- return planPassDetailRes;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -278,58 +253,156 @@ public class PlanPassServiceImpl implements PlanPassService {
|
|
|
@Override
|
|
|
public ResponseBean approvalTaskOperate(PlanApprovalTaskReq planApprovalTaskReq) {
|
|
|
|
|
|
- int updateStatus = 0;
|
|
|
+ int updateStatus = 0; // 更新状态
|
|
|
+ int taskStatus = 0; //task表状态
|
|
|
+ if (planApprovalTaskReq.getStatus() == 1) taskStatus = 2; // 放行
|
|
|
+ if (planApprovalTaskReq.getStatus() == 2) taskStatus = 3; // 不通过
|
|
|
+
|
|
|
if (planApprovalTaskReq.getPlanType() == 1) {
|
|
|
- FirstArticleApprovalTask ot = new FirstArticleApprovalTask();
|
|
|
- ot.setFirstArticleTaskId(planApprovalTaskReq.getTaskId());
|
|
|
- ot.setReason(planApprovalTaskReq.getReason());
|
|
|
- ot.setStatus(planApprovalTaskReq.getStatus());
|
|
|
- updateStatus = firstArticleApprovalTaskMapper.update(ot, Wrappers.<FirstArticleApprovalTask>lambdaQuery()
|
|
|
- .eq(FirstArticleApprovalTask::getFirstArticleTaskId, planApprovalTaskReq.getTaskId())
|
|
|
- .eq(FirstArticleApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()));
|
|
|
+ //更新首件审批信息
|
|
|
+ updateStatus = updateFirstArticleApprovalTask(planApprovalTaskReq, taskStatus);
|
|
|
}
|
|
|
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()));
|
|
|
+ //更新防错审批信息
|
|
|
+ updateStatus = updateOnsiteApprovalTask(planApprovalTaskReq, taskStatus);
|
|
|
}
|
|
|
|
|
|
if (updateStatus > 0) {
|
|
|
- //审批不通过触发下一级别
|
|
|
- if (planApprovalTaskReq.getStatus() == 2) {
|
|
|
- ApprovalRule approvalRuleMaxLevel = approvalRuleMapper.selectOne(Wrappers.<ApprovalRule>lambdaQuery()
|
|
|
- .eq(ApprovalRule::getType, APPROVAL_TYPE_PM)
|
|
|
- .orderByDesc(ApprovalRule::getApprovalLevel)
|
|
|
- .last("limit 1"));
|
|
|
- //获取当前审批级别
|
|
|
- OnsiteApprovalTask onsiteApprovalTask = onsiteApprovalTaskMapper.selectOne(Wrappers.<OnsiteApprovalTask>lambdaQuery()
|
|
|
- .eq(OnsiteApprovalTask::getOnsiteTaskId, planApprovalTaskReq.getTaskId())
|
|
|
- .eq(OnsiteApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()).last("limit 1"));
|
|
|
- int userLevel = onsiteApprovalTask.getApprovalLevel();
|
|
|
- if (userLevel < approvalRuleMaxLevel.getApprovalLevel()) {
|
|
|
- ApprovalUserRes approvalUserRes = preventMistakeService.getApprovalUserInfo(userLevel + 1, APPROVAL_TYPE_PM);
|
|
|
- onsiteApprovalTaskMapper.insert(OnsiteApprovalTask.builder()
|
|
|
- .onsiteTaskId(onsiteApprovalTask.getOnsiteTaskId())
|
|
|
- .approvalLevel(approvalUserRes.getApprovalLevel())
|
|
|
- .approvalUserId(approvalUserRes.getUserId())
|
|
|
- .status(0)
|
|
|
- .build());
|
|
|
- }
|
|
|
+ settingApprovalTask(planApprovalTaskReq);
|
|
|
+ }
|
|
|
+
|
|
|
+ return ResponseBeanBuilder.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新首件任务审批状态
|
|
|
+ *
|
|
|
+ * @param planApprovalTaskReq
|
|
|
+ * @param taskStatus
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private int updateFirstArticleApprovalTask(PlanApprovalTaskReq planApprovalTaskReq, int taskStatus) {
|
|
|
+ int updateStatus;
|
|
|
+ FirstArticleApprovalTask ot = new FirstArticleApprovalTask();
|
|
|
+ ot.setFirstArticleTaskId(planApprovalTaskReq.getTaskId());
|
|
|
+ ot.setReason(planApprovalTaskReq.getReason());
|
|
|
+ ot.setStatus(planApprovalTaskReq.getStatus());
|
|
|
+ updateStatus = firstArticleApprovalTaskMapper.update(ot, Wrappers.<FirstArticleApprovalTask>lambdaQuery()
|
|
|
+ .eq(FirstArticleApprovalTask::getFirstArticleTaskId, planApprovalTaskReq.getTaskId())
|
|
|
+ .eq(FirstArticleApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()));
|
|
|
+ //更新task表状态
|
|
|
+ firstArticleTaskService.updateById(FirstArticleTask.builder()
|
|
|
+ .id(planApprovalTaskReq.getTaskId())
|
|
|
+ .status(taskStatus).build());
|
|
|
+ return updateStatus;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新防错任务审批状态
|
|
|
+ *
|
|
|
+ * @param planApprovalTaskReq
|
|
|
+ * @param taskStatus
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private int updateOnsiteApprovalTask(PlanApprovalTaskReq planApprovalTaskReq, int taskStatus) {
|
|
|
+ int updateStatus;
|
|
|
+ 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()));
|
|
|
+ //更新task表状态
|
|
|
+ onsiteTaskMapper.updateById(OnsiteTask.builder()
|
|
|
+ .id(planApprovalTaskReq.getTaskId())
|
|
|
+ .status(taskStatus).build());
|
|
|
+ return updateStatus;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置审批task任务
|
|
|
+ *
|
|
|
+ * @param planApprovalTaskReq
|
|
|
+ */
|
|
|
+ private void settingApprovalTask(PlanApprovalTaskReq planApprovalTaskReq) {
|
|
|
+ //审批不通过触发下一级别
|
|
|
+ if (planApprovalTaskReq.getStatus() == 2) {
|
|
|
+ //设置首件下一级别审批
|
|
|
+ if (planApprovalTaskReq.getPlanType() == 1) {
|
|
|
+ setNextApprovalLevel(planApprovalTaskReq);
|
|
|
+ }
|
|
|
+ //设置防错下一级别审批
|
|
|
+ if (planApprovalTaskReq.getPlanType() == 2) {
|
|
|
+ setNextPMApprovalLevel(planApprovalTaskReq);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //审批通过,保存审批历史
|
|
|
+ if (planApprovalTaskReq.getStatus() == 1) {
|
|
|
+ //首件
|
|
|
+ if (planApprovalTaskReq.getPlanType() == 1) {
|
|
|
+ firstArticleService.setFirstArticleTaskHis(planApprovalTaskReq.getTaskId());
|
|
|
}
|
|
|
- //审批通过
|
|
|
- if (planApprovalTaskReq.getStatus() == 1) {
|
|
|
- //审批通过,保存审批历史
|
|
|
- preventMistakeService.getApprovalUserInfo(1, APPROVAL_TYPE_PM);
|
|
|
+ //防错
|
|
|
+ if (planApprovalTaskReq.getPlanType() == 2) {
|
|
|
+ preventMistakeService.setOnsiteTaskHis(planApprovalTaskReq.getTaskId());
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- return ResponseBeanBuilder.ok();
|
|
|
+ /**
|
|
|
+ * 设置防错下一级别人员
|
|
|
+ *
|
|
|
+ * @param planApprovalTaskReq
|
|
|
+ */
|
|
|
+ private void setNextPMApprovalLevel(PlanApprovalTaskReq planApprovalTaskReq) {
|
|
|
+ ApprovalRule approvalRuleMaxLevel = approvalRuleMapper.selectOne(Wrappers.<ApprovalRule>lambdaQuery()
|
|
|
+ .eq(ApprovalRule::getType, APPROVAL_TYPE_PM)
|
|
|
+ .orderByDesc(ApprovalRule::getApprovalLevel)
|
|
|
+ .last("limit 1"));
|
|
|
+ //获取当前审批级别
|
|
|
+ OnsiteApprovalTask onsiteApprovalTask = onsiteApprovalTaskMapper.selectOne(Wrappers.<OnsiteApprovalTask>lambdaQuery()
|
|
|
+ .eq(OnsiteApprovalTask::getOnsiteTaskId, planApprovalTaskReq.getTaskId())
|
|
|
+ .eq(OnsiteApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()).last("limit 1"));
|
|
|
+ int userLevel = onsiteApprovalTask.getApprovalLevel();
|
|
|
+ if (userLevel < approvalRuleMaxLevel.getApprovalLevel()) {
|
|
|
+ ApprovalUserRes approvalUserRes = preventMistakeService.getApprovalUserInfo(userLevel + 1, APPROVAL_TYPE_PM);
|
|
|
+ onsiteApprovalTaskMapper.insert(OnsiteApprovalTask.builder()
|
|
|
+ .onsiteTaskId(onsiteApprovalTask.getOnsiteTaskId())
|
|
|
+ .approvalLevel(approvalUserRes.getApprovalLevel())
|
|
|
+ .approvalUserId(approvalUserRes.getUserId())
|
|
|
+ .status(0)
|
|
|
+ .build());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置首件下一级别人员
|
|
|
+ *
|
|
|
+ * @param planApprovalTaskReq
|
|
|
+ */
|
|
|
+ private void setNextApprovalLevel(PlanApprovalTaskReq planApprovalTaskReq) {
|
|
|
+ ApprovalRule approvalRuleMaxLevel = approvalRuleMapper.selectOne(Wrappers.<ApprovalRule>lambdaQuery()
|
|
|
+ .eq(ApprovalRule::getType, APPROVAL_TYPE_FIRST_ARTICLE)
|
|
|
+ .orderByDesc(ApprovalRule::getApprovalLevel)
|
|
|
+ .last("limit 1"));
|
|
|
+ //获取当前审批级别
|
|
|
+ FirstArticleApprovalTask firstArticleApprovalTask = firstArticleApprovalTaskMapper.selectOne(Wrappers.<FirstArticleApprovalTask>lambdaQuery()
|
|
|
+ .eq(FirstArticleApprovalTask::getFirstArticleTaskId, planApprovalTaskReq.getTaskId())
|
|
|
+ .eq(FirstArticleApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()).last("limit 1"));
|
|
|
+ int userLevel = firstArticleApprovalTask.getApprovalLevel();
|
|
|
+ if (userLevel < approvalRuleMaxLevel.getApprovalLevel()) {
|
|
|
+ ApprovalUserRes approvalUserRes = preventMistakeService.getApprovalUserInfo(userLevel + 1, APPROVAL_TYPE_PM);
|
|
|
+ onsiteApprovalTaskMapper.insert(OnsiteApprovalTask.builder()
|
|
|
+ .onsiteTaskId(firstArticleApprovalTask.getFirstArticleTaskId())
|
|
|
+ .approvalLevel(approvalUserRes.getApprovalLevel())
|
|
|
+ .approvalUserId(approvalUserRes.getUserId())
|
|
|
+ .status(0)
|
|
|
+ .build());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
+
|
|
|
/**
|
|
|
* 计划放行列表
|
|
|
*
|
|
@@ -338,6 +411,8 @@ public class PlanPassServiceImpl implements PlanPassService {
|
|
|
*/
|
|
|
@Override
|
|
|
public List<PlanPassRes> getPassList(PlanPageReq planPageReq) {
|
|
|
+ //分页
|
|
|
+ planPageReq.setPage((planPageReq.getPage() - 1) * planPageReq.getSize());
|
|
|
List<PlanPassRes> planPassResList = new ArrayList<>();
|
|
|
//首件列表
|
|
|
if (planPageReq.getCheckType() == 1) {
|
|
@@ -350,35 +425,4 @@ public class PlanPassServiceImpl implements PlanPassService {
|
|
|
return planPassResList;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * byte[]转成Object
|
|
|
- *
|
|
|
- * @param buffer byte[]
|
|
|
- * @return Object
|
|
|
- */
|
|
|
- private Object byteArrayToObject(byte[] buffer) throws Exception {
|
|
|
- Object ob = null;
|
|
|
- ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buffer));
|
|
|
- ob = ois.readObject();
|
|
|
- ois.close();
|
|
|
- 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 "";
|
|
|
- }
|
|
|
-
|
|
|
}
|