|
@@ -1,6 +1,25 @@
|
|
|
package com.factory.web.service.impl.fa;
|
|
|
|
|
|
-import cn.hutool.core.convert.Convert;
|
|
|
+import java.io.ByteArrayInputStream;
|
|
|
+import java.io.ByteArrayOutputStream;
|
|
|
+import java.io.File;
|
|
|
+import java.io.ObjectInputStream;
|
|
|
+import java.io.ObjectOutputStream;
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.function.Function;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+import java.util.stream.IntStream;
|
|
|
+import java.util.stream.Stream;
|
|
|
+
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
+
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
import com.alibaba.excel.ExcelWriter;
|
|
|
import com.alibaba.excel.write.metadata.WriteSheet;
|
|
@@ -20,38 +39,78 @@ import com.factory.base.util.res.ResponseBeanBuilder;
|
|
|
import com.factory.base.util.time.TimeConvert;
|
|
|
import com.factory.user.entity.vo.res.FileRes;
|
|
|
import com.factory.user.service.CommonService;
|
|
|
-import com.factory.web.entity.fa.*;
|
|
|
-import com.factory.web.entity.fa.req.*;
|
|
|
-import com.factory.web.entity.fa.res.*;
|
|
|
+import com.factory.web.entity.fa.FirstArticleApprovalTask;
|
|
|
+import com.factory.web.entity.fa.FirstArticleCalendar;
|
|
|
+import com.factory.web.entity.fa.FirstArticleItem;
|
|
|
+import com.factory.web.entity.fa.FirstArticleItemResult;
|
|
|
+import com.factory.web.entity.fa.FirstArticleTask;
|
|
|
+import com.factory.web.entity.fa.FirstArticleTaskHisBlob;
|
|
|
+import com.factory.web.entity.fa.FirstArticleTitle;
|
|
|
+import com.factory.web.entity.fa.FirstArticleTitleBlob;
|
|
|
+import com.factory.web.entity.fa.FirstArticleWorkshop;
|
|
|
+import com.factory.web.entity.fa.req.AddFaItemResultListReq;
|
|
|
+import com.factory.web.entity.fa.req.AddFaItemResultReq;
|
|
|
+import com.factory.web.entity.fa.req.AddFaPlanReq;
|
|
|
+import com.factory.web.entity.fa.req.EditFaItemResultListReq;
|
|
|
+import com.factory.web.entity.fa.req.EditFaItemResultReq;
|
|
|
+import com.factory.web.entity.fa.req.EditFaPlanReq;
|
|
|
+import com.factory.web.entity.fa.req.FirstArticleItemReq;
|
|
|
+import com.factory.web.entity.fa.req.FirstArticleWorkshopReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchALLPlanListReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaCalendarReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaCheckRecordListReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaItemListForPadReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaItemNoGoListReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaItemReleaseCountReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaItemResultListReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaPlanCheckListReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaPlanListForPadReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaPlanReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaTaskInfoReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaTaskReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaWorkshopListForPadReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaWorkshopNoGoListReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchFaWsItemResultCountReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchHisPlanListReq;
|
|
|
+import com.factory.web.entity.fa.req.SearchUserListReq;
|
|
|
+import com.factory.web.entity.fa.req.SubmitFaTaskReq;
|
|
|
+import com.factory.web.entity.fa.res.FaCalendarRes;
|
|
|
+import com.factory.web.entity.fa.res.FaCheckRecordListRes;
|
|
|
+import com.factory.web.entity.fa.res.FaItemListForPadRes;
|
|
|
+import com.factory.web.entity.fa.res.FaItemNoGoListRes;
|
|
|
+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.FaTaskRes;
|
|
|
+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.pm.res.ApprovalUserRes;
|
|
|
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;
|
|
|
import com.factory.web.service.FileService;
|
|
|
-import com.factory.web.service.fa.*;
|
|
|
+import com.factory.web.service.fa.FirstArticleApprovalTaskService;
|
|
|
+import com.factory.web.service.fa.FirstArticleCalendarService;
|
|
|
+import com.factory.web.service.fa.FirstArticleItemResultService;
|
|
|
+import com.factory.web.service.fa.FirstArticleItemService;
|
|
|
+import com.factory.web.service.fa.FirstArticleService;
|
|
|
+import com.factory.web.service.fa.FirstArticleTaskHisBlobService;
|
|
|
+import com.factory.web.service.fa.FirstArticleTaskService;
|
|
|
+import com.factory.web.service.fa.FirstArticleTitleBlobService;
|
|
|
+import com.factory.web.service.fa.FirstArticleWorkshopService;
|
|
|
import com.factory.web.service.impl.FileEntry;
|
|
|
import com.factory.web.service.pm.OnsiteApprovalPlanService;
|
|
|
import com.factory.web.service.pm.PlanBindService;
|
|
|
import com.factory.web.service.pm.PreventMistakeService;
|
|
|
import com.factory.wx.entity.req.SendMsgReq;
|
|
|
import com.factory.wx.service.WxService;
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
-import java.io.*;
|
|
|
-import java.time.LocalDate;
|
|
|
-import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.function.Function;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-import java.util.stream.IntStream;
|
|
|
-import java.util.stream.Stream;
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -114,6 +173,9 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
|
|
|
|
|
|
@Autowired
|
|
|
private WxService wxService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ApprovalRuleMapper approvalRuleMapper;
|
|
|
|
|
|
/**
|
|
|
* 新建首件计划
|
|
@@ -829,29 +891,10 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
|
|
|
/* 删除之前的审批记录 */
|
|
|
firstArticleApprovalTaskService.remove(Wrappers.<FirstArticleApprovalTask>lambdaQuery()
|
|
|
.eq(FirstArticleApprovalTask::getFirstArticleTaskId, firstArticleTask.getId()));
|
|
|
-
|
|
|
- /* 取得审批人 approvalLevel=1级审批 type=2首件任务审批 */
|
|
|
+ this.setApproval(firstArticleTask.getId(),null);
|
|
|
+
|
|
|
ApprovalUserRes approvalUserRes = preventMistakeService.getApprovalUserInfo(1, 2);
|
|
|
- if (approvalUserRes != null) {
|
|
|
- /* 添加任务一级审批 */
|
|
|
- FirstArticleApprovalTask firstArticleApprovalTask = FirstArticleApprovalTask.builder()
|
|
|
- .firstArticleTaskId(firstArticleTask.getId())
|
|
|
- .approvalLevel(1) // 1级审批
|
|
|
- .approvalUserId(approvalUserRes.getUserId())
|
|
|
- .status(0) // 0初始化
|
|
|
- .build();
|
|
|
- boolean status = firstArticleApprovalTaskService.save(firstArticleApprovalTask);
|
|
|
- // 下发微信消息
|
|
|
- if (status) {
|
|
|
- //发送微信消息
|
|
|
- SendMsgReq sendMsgReq = new SendMsgReq();
|
|
|
- sendMsgReq.setToUserId(approvalUserRes.getUserId());
|
|
|
- sendMsgReq.setTitle("计划放行");
|
|
|
- sendMsgReq.setContent("您有待放行的计划审批,请登录小程序查看");
|
|
|
- sendMsgReq.setFromUserId(req.getUserId());
|
|
|
- wxService.sendWechatMessage(sendMsgReq);
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/* 更新中断的操作人 */
|
|
@@ -861,7 +904,27 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
|
|
|
|
|
|
return ResponseBeanBuilder.ok();
|
|
|
}
|
|
|
-
|
|
|
+ /* 取得审批人 approvalLevel=1级审批 type=2首件任务审批 */
|
|
|
+ private void setApproval(Long taskId,Long userId) {
|
|
|
+ ApprovalRule approvalRuleNextLevel = approvalRuleMapper.selectOne(Wrappers.<ApprovalRule>lambdaQuery()
|
|
|
+ .eq(ApprovalRule::getType, ApprovalRule.APPROVAL_TYPE_FA)
|
|
|
+ .orderByAsc(ApprovalRule::getApprovalLevel)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (approvalRuleNextLevel!=null) {
|
|
|
+ firstArticleApprovalTaskService.save(FirstArticleApprovalTask.builder()
|
|
|
+ .firstArticleTaskId(taskId)
|
|
|
+ .approvalLevel(approvalRuleNextLevel.getApprovalLevel())
|
|
|
+ .approvalRole(approvalRuleNextLevel.getRoleId())
|
|
|
+ .status(0)
|
|
|
+ .build());
|
|
|
+ //向下一级别发送提醒
|
|
|
+ wxService.sendWechatMessageByRole(SendMsgReq.builder()
|
|
|
+ .title("计划放行")
|
|
|
+ .content("您有待放行的计划审批,请登录小程序查看")
|
|
|
+ .fromUserId(userId)
|
|
|
+ .build(),approvalRuleNextLevel.getRoleId());
|
|
|
+ }
|
|
|
+ }
|
|
|
/**
|
|
|
* 取得不放行任务对应的工作站
|
|
|
*
|