|
|
@@ -195,6 +195,7 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
|
|
|
@Override
|
|
|
public JobTicketRespVO getJobTicket(Long id) {
|
|
|
JobTicketDO jobTicketDO = jobTicketMapper.selectById(id);
|
|
|
+ Assert.isTrue(jobTicketDO != null, "作业信息不存在!");
|
|
|
JobTicketRespVO bean = BeanUtils.toBean(jobTicketDO, JobTicketRespVO.class);
|
|
|
// 作业分组
|
|
|
List<JobTicketGroupDO> ticketGroupDOList = jobTicketGroupService.list(Wrappers.<JobTicketGroupDO>lambdaQuery()
|
|
|
@@ -268,6 +269,10 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
|
|
|
.eq(SopWorkflowStepDO::getSopId, vo.getSopId())
|
|
|
.orderByAsc(SopWorkflowStepDO::getStepIndex));
|
|
|
Assert.isFalse(sopWorkflowStepDOS.isEmpty(), "sop步骤信息不存在!");
|
|
|
+ // 1.6 如果开启创建并启动,则更新作业状态为待上锁,并且执行完成步骤中前面自动执行的步骤
|
|
|
+ if (vo.getIfStart() != null && vo.getIfStart().equals(1)) {
|
|
|
+ vo.setTicketStatus("1");
|
|
|
+ }
|
|
|
|
|
|
// 2.开始新增作业
|
|
|
JobTicketDO bean = BeanUtils.toBean(vo, JobTicketDO.class);
|
|
|
@@ -296,15 +301,21 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
|
|
|
JobTicketGroupDO jobTicketGroupDO = new JobTicketGroupDO();
|
|
|
jobTicketGroupDO.setTicketId(ticketId);
|
|
|
jobTicketGroupDO.setGroupName(sopGroupDO.getGroupName());
|
|
|
+ jobTicketGroupDO.setSopGroupId(sopGroupDO.getId());
|
|
|
jobTicketGroupDOS.add(jobTicketGroupDO);
|
|
|
}
|
|
|
jobTicketKeyService.saveBatch(jobTicketKeyDOS);
|
|
|
jobTicketGroupService.saveBatch(jobTicketGroupDOS);
|
|
|
// 2.3开始处理isc_job_ticket_points / isc_job_ticket_lock,lock需要根据点位数量来生成
|
|
|
for (SopPointsDO sopPointsDO : sopPointsDOList) {
|
|
|
+ Long groupId = null;
|
|
|
+ if (!jobTicketGroupDOS.isEmpty()) {
|
|
|
+ JobTicketGroupDO jobTicketGroupDO = jobTicketGroupDOS.stream().filter(o -> o.getSopGroupId().equals(sopPointsDO.getGroupId())).toList().get(0);
|
|
|
+ groupId = jobTicketGroupDO.getId();
|
|
|
+ }
|
|
|
JobTicketPointsDO jobTicketPointsDO = new JobTicketPointsDO();
|
|
|
jobTicketPointsDO.setTicketId(ticketId);
|
|
|
- jobTicketPointsDO.setGroupId(sopPointsDO.getGroupId());
|
|
|
+ jobTicketPointsDO.setGroupId(groupId);
|
|
|
jobTicketPointsDO.setWorkshopId(sopPointsDO.getWorkshopId());
|
|
|
jobTicketPointsDO.setWorkareaId(sopPointsDO.getWorkareaId());
|
|
|
jobTicketPointsDO.setPointId(sopPointsDO.getPointId());
|
|
|
@@ -323,9 +334,14 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
|
|
|
|
|
|
// 2.4构造isc_job_ticket_user
|
|
|
for (SopUserDO sopUserDO : sopUserDOS) {
|
|
|
+ Long groupId = null;
|
|
|
+ if (!jobTicketGroupDOS.isEmpty() && sopUserDO.getGroupId() != null) {
|
|
|
+ JobTicketGroupDO jobTicketGroupDO = jobTicketGroupDOS.stream().filter(o -> o.getSopGroupId().equals(sopUserDO.getGroupId())).toList().get(0);
|
|
|
+ groupId = jobTicketGroupDO.getId();
|
|
|
+ }
|
|
|
JobTicketUserDO jobTicketUserDO = new JobTicketUserDO();
|
|
|
jobTicketUserDO.setTicketId(ticketId);
|
|
|
- jobTicketUserDO.setGroupId(sopUserDO.getGroupId());
|
|
|
+ jobTicketUserDO.setGroupId(groupId);
|
|
|
jobTicketUserDO.setUserId(sopUserDO.getUserId());
|
|
|
jobTicketUserDO.setUserName(sopUserDO.getUserName());
|
|
|
jobTicketUserDO.setUserType(sopUserDO.getUserType());
|
|
|
@@ -335,6 +351,8 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
|
|
|
}
|
|
|
jobTicketUserService.saveBatch(jobTicketUserDOS);
|
|
|
// 2.5构造jobTicketStepDOS
|
|
|
+ // 0-未中断自动执行 1-中断自动执行 ----创建作业并启动时,需要更新前几步自动执行的步骤,如果非连续,需要停止后面非连续自动步骤的初始化
|
|
|
+ int breakAutoStep = 0;
|
|
|
for (SopWorkflowStepDO sopWorkflowStepDO : sopWorkflowStepDOS) {
|
|
|
JobTicketStepDO jobTicketStepDO = new JobTicketStepDO();
|
|
|
jobTicketStepDO.setTicketId(ticketId);
|
|
|
@@ -358,6 +376,16 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
|
|
|
jobTicketStepDO.setEnableReleaseColock(sopWorkflowStepDO.getEnableReleaseColock());
|
|
|
jobTicketStepDO.setEnableUnlock(sopWorkflowStepDO.getEnableUnlock());
|
|
|
jobTicketStepDO.setEnableEndJob(sopWorkflowStepDO.getEnableEndJob());
|
|
|
+ // 判断创建作业并启动时,自动执行前几步的自动执行操作
|
|
|
+ if (vo.getIfStart() != null
|
|
|
+ && vo.getIfStart().equals(1)
|
|
|
+ && sopWorkflowStepDO.getConfirmType() != null
|
|
|
+ && sopWorkflowStepDO.getConfirmType().equals(1)
|
|
|
+ && breakAutoStep == 0) {
|
|
|
+ jobTicketStepDO.setStepStatus(1);
|
|
|
+ } else {
|
|
|
+ breakAutoStep = 1;
|
|
|
+ }
|
|
|
jobTicketStepDOS.add(jobTicketStepDO);
|
|
|
}
|
|
|
jobTicketStepService.saveBatch(jobTicketStepDOS);
|