|
@@ -16,12 +16,10 @@ import com.factory.web.entity.pm.res.ApprovalUserRes;
|
|
|
import com.factory.web.mapper.BentelerPlanMapper;
|
|
|
import com.factory.web.mapper.pm.*;
|
|
|
import com.factory.web.service.pm.PreventMistakeService;
|
|
|
-import com.factory.wx.entity.req.PassListReq;
|
|
|
-import com.factory.wx.entity.req.PlanApprovalReq;
|
|
|
-import com.factory.wx.entity.req.PlanInfoReq;
|
|
|
-import com.factory.wx.entity.req.PlanListReq;
|
|
|
+import com.factory.wx.entity.req.*;
|
|
|
import com.factory.wx.entity.res.PlanApprovalDetailRes;
|
|
|
import com.factory.wx.entity.res.PlanApprovalRes;
|
|
|
+import com.factory.wx.entity.res.PlanApprovalTaskRes;
|
|
|
import com.factory.wx.entity.res.PlanPassDetailRes;
|
|
|
import com.factory.wx.mapper.PlanMapper;
|
|
|
import com.factory.wx.service.PlanService;
|
|
@@ -48,6 +46,10 @@ public class PlanServiceImpl implements PlanService {
|
|
|
* 审批规则类型为:1新建计划审批
|
|
|
*/
|
|
|
private static int APPROVAL_TYPE_NEW = 1;
|
|
|
+ /**
|
|
|
+ * 审批规则类型为:3防错
|
|
|
+ */
|
|
|
+ private static int APPROVAL_TYPE_PM = 3;
|
|
|
@Autowired
|
|
|
private PlanMapper planMapper;
|
|
|
@Autowired
|
|
@@ -71,6 +73,8 @@ public class PlanServiceImpl implements PlanService {
|
|
|
private OnsiteApprovalTaskMapper onsiteApprovalTaskMapper;
|
|
|
@Autowired
|
|
|
private OnsiteTaskMapper onsiteTaskMapper;
|
|
|
+ @Autowired
|
|
|
+ private RemindApprovalTaskMapper remindApprovalTaskMapper;
|
|
|
|
|
|
private static IPage<BentelerPlan> getBentelerPlanIPage(PassListReq passListReq, List<OnsiteCalendar> onsiteCalendarList, BentelerPlanMapper bentelerPlanMapper) {
|
|
|
IPage<BentelerPlan> bentelerPlanIPage;
|
|
@@ -78,6 +82,7 @@ public class PlanServiceImpl implements PlanService {
|
|
|
|
|
|
LambdaQueryWrapper<BentelerPlan> wrapper = new LambdaQueryWrapper<>();
|
|
|
wrapper.in(BentelerPlan::getId, planIds);
|
|
|
+ wrapper.eq(BentelerPlan::getPlanType, passListReq.getCheckType());
|
|
|
|
|
|
if (StringUtils.isNotEmpty(passListReq.getName())) {
|
|
|
wrapper.like(BentelerPlan::getName, passListReq.getName());
|
|
@@ -263,6 +268,7 @@ public class PlanServiceImpl implements PlanService {
|
|
|
|
|
|
//获取title
|
|
|
OnsiteTitle title = preventMistakeService.getTitle(planInfoReq.getPlanId());
|
|
|
+ List<PlanApprovalTaskRes> planApprovalTaskResList = planMapper.getApprovalTaskList(planInfoReq.getUserId());
|
|
|
|
|
|
PlanPassDetailRes planPassDetailRes = PlanPassDetailRes.builder()
|
|
|
.planId(bentelerPlan.getId())
|
|
@@ -271,8 +277,93 @@ public class PlanServiceImpl implements PlanService {
|
|
|
.usersName(usersName)
|
|
|
.titleInfo(title)
|
|
|
.onsiteCalendars(onsiteCalendarList)
|
|
|
+ .planApprovalTasks(planApprovalTaskResList)
|
|
|
.build();
|
|
|
return planPassDetailRes;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 计划放行
|
|
|
+ *
|
|
|
+ * @param planApprovalTaskReq
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public ResponseBean approvalTaskOperate(PlanApprovalTaskReq planApprovalTaskReq) {
|
|
|
+
|
|
|
+ OnsiteApprovalTask ot = new OnsiteApprovalTask();
|
|
|
+ ot.setOnsiteTaskId(planApprovalTaskReq.getTaskId());
|
|
|
+ ot.setReason(planApprovalTaskReq.getReason());
|
|
|
+ ot.setStatus(planApprovalTaskReq.getStatus());
|
|
|
+ int updateStatus = onsiteApprovalTaskMapper.update(ot, Wrappers.<OnsiteApprovalTask>lambdaQuery()
|
|
|
+ .eq(OnsiteApprovalTask::getOnsiteTaskId, planApprovalTaskReq.getTaskId())
|
|
|
+ .eq(OnsiteApprovalTask::getApprovalUserId, planApprovalTaskReq.getUserId()));
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //审批通过
|
|
|
+ if (planApprovalTaskReq.getStatus() == 1) {
|
|
|
+ //审批通过,保存审批历史
|
|
|
+ preventMistakeService.getApprovalUserInfo(1, APPROVAL_TYPE_PM);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return ResponseBeanBuilder.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取计划提醒列表
|
|
|
+ *
|
|
|
+ * @param reminderReq
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public PageBean<BentelerPlan> getReminderListByPage(ReminderReq reminderReq) {
|
|
|
+ LambdaQueryWrapper<RemindApprovalTask> remindApprovalTaskWrapper = new LambdaQueryWrapper<>();
|
|
|
+ remindApprovalTaskWrapper.eq(RemindApprovalTask::getApprovalUserId, reminderReq.getUserId());
|
|
|
+
|
|
|
+ List<RemindApprovalTask> remindApprovalTaskList = remindApprovalTaskMapper.selectList(remindApprovalTaskWrapper);
|
|
|
+
|
|
|
+ IPage<BentelerPlan> bentelerPlanIPage = new Page<>();
|
|
|
+ if (CollUtil.isNotEmpty(remindApprovalTaskList)) {
|
|
|
+ List<Long> taskIds = remindApprovalTaskList.stream().map(RemindApprovalTask::getTaskId).collect(Collectors.toList());
|
|
|
+ List<OnsiteTask> onsiteTaskList = onsiteTaskMapper.selectBatchIds(taskIds);
|
|
|
+ List<Long> calendarIds = onsiteTaskList.stream().map(OnsiteTask::getOnsiteCalendarId).collect(Collectors.toList());
|
|
|
+ List<OnsiteCalendar> onsiteCalendarList = onsiteCalendarMapper.selectBatchIds(calendarIds);
|
|
|
+ List<Long> planIds = onsiteCalendarList.stream().map(OnsiteCalendar::getBentelerPlanId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ IPage<BentelerPlan> page = new Page<>(reminderReq.getPage(), reminderReq.getSize());
|
|
|
+ LambdaQueryWrapper<BentelerPlan> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.in(BentelerPlan::getId, planIds);
|
|
|
+
|
|
|
+ bentelerPlanIPage = bentelerPlanMapper.selectPage(page, wrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ return PageBean.<BentelerPlan>builder()
|
|
|
+ .row(bentelerPlanIPage.getRecords())
|
|
|
+ .total(bentelerPlanIPage.getTotal())
|
|
|
+ .page(bentelerPlanIPage.getPages())
|
|
|
+ .build();
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|