|
@@ -282,8 +282,9 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
|
|
|
log.error("Job ticket user not included, ticketId: {}, userId : {}", reqVO.ticketId, reqVO.userId);
|
|
log.error("Job ticket user not included, ticketId: {}, userId : {}", reqVO.ticketId, reqVO.userId);
|
|
|
throw exception(JOB_TICKET_USER_NOT_INCLUDED);
|
|
throw exception(JOB_TICKET_USER_NOT_INCLUDED);
|
|
|
} else {
|
|
} else {
|
|
|
- handleTicketStatus(isJobTicket, matchList, reqVO.ticketId, reqVO.userId);
|
|
|
|
|
|
|
+ handleTicketStatus(isJobTicket, jobUserList, reqVO);
|
|
|
}
|
|
}
|
|
|
|
|
+ isJobTicketMapper.updateIsJobTicket(isJobTicket);
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -292,23 +293,23 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
|
|
|
* @param isJobTicket 工作票
|
|
* @param isJobTicket 工作票
|
|
|
* @param jobUserList 在工作票中的所有人
|
|
* @param jobUserList 在工作票中的所有人
|
|
|
*/
|
|
*/
|
|
|
- private void handleTicketStatus(IsJobTicket isJobTicket, List<IsJobTicketUser> jobUserList, Long ticketId, Long userId) {
|
|
|
|
|
- List<IsJobTicketUser> matchUserList = jobUserList.stream().filter(jobUser -> Objects.equals(jobUser.getUserId(), userId)).collect(Collectors.toList());
|
|
|
|
|
|
|
+ private void handleTicketStatus(IsJobTicket isJobTicket, List<IsJobTicketUser> jobUserList, JobTicketUpdateProgressReqVO reqVO) {
|
|
|
|
|
+ List<IsJobTicketUser> matchUserList = jobUserList.stream().filter(jobUser -> Objects.equals(jobUser.getUserId(), reqVO.userId)).collect(Collectors.toList());
|
|
|
if (Objects.equals(isJobTicket.getTicketStatus(), FINISHED.status)) {
|
|
if (Objects.equals(isJobTicket.getTicketStatus(), FINISHED.status)) {
|
|
|
- log.warn("Job ticket status is finished, cannot update progress, ticketId: {}, userId : {}", ticketId, userId);
|
|
|
|
|
|
|
+ log.warn("Job ticket status is finished, cannot update progress, ticketId: {}, userId : {}", reqVO.ticketId, reqVO.userId);
|
|
|
throw exception(JOB_TICKET_STATUS_FINISHED);
|
|
throw exception(JOB_TICKET_STATUS_FINISHED);
|
|
|
}
|
|
}
|
|
|
if (matchUserList.stream().anyMatch(user -> Objects.equals(user.getUserRole(), JTLOCKER.key))) {
|
|
if (matchUserList.stream().anyMatch(user -> Objects.equals(user.getUserRole(), JTLOCKER.key))) {
|
|
|
if (Objects.equals(isJobTicket.getTicketStatus(), NOT_STARTED.status)
|
|
if (Objects.equals(isJobTicket.getTicketStatus(), NOT_STARTED.status)
|
|
|
|| Objects.equals(isJobTicket.getTicketStatus(), READY_TO_LOCK.status)
|
|
|| Objects.equals(isJobTicket.getTicketStatus(), READY_TO_LOCK.status)
|
|
|
|| Objects.equals(isJobTicket.getTicketStatus(), READY_TO_UNLOCK.status)) {
|
|
|| Objects.equals(isJobTicket.getTicketStatus(), READY_TO_UNLOCK.status)) {
|
|
|
- handleJobStatus(isJobTicket, matchUserList, userId, true);
|
|
|
|
|
|
|
+ handleJobStatus(isJobTicket, matchUserList, reqVO.userId, true, reqVO.equipStatus);
|
|
|
} else if (Objects.equals(isJobTicket.getTicketStatus(), PROCESSING.status)) {
|
|
} else if (Objects.equals(isJobTicket.getTicketStatus(), PROCESSING.status)) {
|
|
|
// 同时为上锁人、共锁人
|
|
// 同时为上锁人、共锁人
|
|
|
if (matchUserList.stream().anyMatch(user -> Objects.equals(user.getUserRole(), JTCOLOCKER.key))) {
|
|
if (matchUserList.stream().anyMatch(user -> Objects.equals(user.getUserRole(), JTCOLOCKER.key))) {
|
|
|
- handleJobStatus(isJobTicket, jobUserList, userId, false);
|
|
|
|
|
|
|
+ handleJobStatus(isJobTicket, jobUserList, reqVO.userId, false, reqVO.equipStatus);
|
|
|
} else {
|
|
} else {
|
|
|
- log.warn("Job ticket status is processing, cannot update progress, ticketId: {}, userId : {}", ticketId, userId);
|
|
|
|
|
|
|
+ log.warn("Job ticket status is processing, cannot update progress, ticketId: {}, userId : {}", reqVO.ticketId, reqVO.userId);
|
|
|
throw exception(JOB_TICKET_STATUS_NOT_PERMITTED);
|
|
throw exception(JOB_TICKET_STATUS_NOT_PERMITTED);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -316,10 +317,10 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
|
|
|
if (Objects.equals(isJobTicket.getTicketStatus(), NOT_STARTED.status)
|
|
if (Objects.equals(isJobTicket.getTicketStatus(), NOT_STARTED.status)
|
|
|
|| Objects.equals(isJobTicket.getTicketStatus(), READY_TO_LOCK.status)
|
|
|| Objects.equals(isJobTicket.getTicketStatus(), READY_TO_LOCK.status)
|
|
|
|| Objects.equals(isJobTicket.getTicketStatus(), READY_TO_UNLOCK.status)) {
|
|
|| Objects.equals(isJobTicket.getTicketStatus(), READY_TO_UNLOCK.status)) {
|
|
|
- log.warn("Job ticket status is processing, cannot update progress, ticketId: {}, userId : {}", ticketId, userId);
|
|
|
|
|
|
|
+ log.warn("Job ticket status is processing, cannot update progress, ticketId: {}, userId : {}", reqVO.ticketId, reqVO.userId);
|
|
|
throw exception(JOB_TICKET_STATUS_NOT_PERMITTED);
|
|
throw exception(JOB_TICKET_STATUS_NOT_PERMITTED);
|
|
|
} else if (Objects.equals(isJobTicket.getTicketStatus(), PROCESSING.status)) {
|
|
} else if (Objects.equals(isJobTicket.getTicketStatus(), PROCESSING.status)) {
|
|
|
- handleJobStatus(isJobTicket, jobUserList, userId, false);
|
|
|
|
|
|
|
+ handleJobStatus(isJobTicket, jobUserList, reqVO.userId, false, reqVO.equipStatus);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -331,7 +332,7 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
|
|
|
* @param jobUserList 在工作票中的所有人
|
|
* @param jobUserList 在工作票中的所有人
|
|
|
* @param isLocker true:上锁人 false:共锁人
|
|
* @param isLocker true:上锁人 false:共锁人
|
|
|
*/
|
|
*/
|
|
|
- private void handleJobStatus(IsJobTicket isJobTicket, List<IsJobTicketUser> jobUserList, Long userId, boolean isLocker) {
|
|
|
|
|
|
|
+ private void handleJobStatus(IsJobTicket isJobTicket, List<IsJobTicketUser> jobUserList, Long userId, boolean isLocker, int equipStatus) {
|
|
|
List<IsJobTicketUser> matchUserList = jobUserList.stream()
|
|
List<IsJobTicketUser> matchUserList = jobUserList.stream()
|
|
|
.filter(jobUser -> Objects.equals(jobUser.getUserId(), userId)).collect(Collectors.toList());
|
|
.filter(jobUser -> Objects.equals(jobUser.getUserId(), userId)).collect(Collectors.toList());
|
|
|
|
|
|
|
@@ -339,9 +340,18 @@ public class IsJobTicketServiceImpl extends ServiceImpl<IsJobTicketMapper, IsJob
|
|
|
matchUserList.stream().filter(user -> Objects.equals(user.getUserRole(), JTLOCKER.key)).findFirst().ifPresent(jobUser -> {
|
|
matchUserList.stream().filter(user -> Objects.equals(user.getUserRole(), JTLOCKER.key)).findFirst().ifPresent(jobUser -> {
|
|
|
if (Objects.equals(jobUser.getJobStatus(), JobStatusEnum.NOT_STARTED.status)
|
|
if (Objects.equals(jobUser.getJobStatus(), JobStatusEnum.NOT_STARTED.status)
|
|
|
|| Objects.equals(jobUser.getJobStatus(), JobStatusEnum.ACQUIRE_LOCK.status)
|
|
|| Objects.equals(jobUser.getJobStatus(), JobStatusEnum.ACQUIRE_LOCK.status)
|
|
|
- || Objects.equals(jobUser.getJobStatus(), JobStatusEnum.ACQUIRE_KEY.status)
|
|
|
|
|
- || Objects.equals(jobUser.getJobStatus(), JobStatusEnum.READY_TO_LOCK.status)) {
|
|
|
|
|
- jobUser.setJobStatus(jobUser.getJobStatus() + 1);
|
|
|
|
|
|
|
+ || Objects.equals(jobUser.getJobStatus(), JobStatusEnum.ACQUIRE_KEY.status)) {
|
|
|
|
|
+ // 部分拿锁
|
|
|
|
|
+ if (equipStatus == 1) {
|
|
|
|
|
+ jobUser.setJobStatus(JobStatusEnum.ACQUIRE_LOCK.status);
|
|
|
|
|
+ } else if (equipStatus == 2) { // 全部拿锁
|
|
|
|
|
+ jobUser.setJobStatus(JobStatusEnum.ACQUIRE_KEY.status);
|
|
|
|
|
+ } else { // 已拿钥匙
|
|
|
|
|
+ jobUser.setJobStatus(JobStatusEnum.READY_TO_LOCK.status);
|
|
|
|
|
+ }
|
|
|
|
|
+ } else if (Objects.equals(jobUser.getJobStatus(), JobStatusEnum.READY_TO_LOCK.status)) {
|
|
|
|
|
+ jobUser.setJobStatus(JobStatusEnum.READY_TO_UNLOCK.status);
|
|
|
|
|
+ isJobTicket.setTicketStatus(PROCESSING.status);
|
|
|
} else if (Objects.equals(jobUser.getJobStatus(), JobStatusEnum.READY_TO_UNLOCK.status)) {
|
|
} else if (Objects.equals(jobUser.getJobStatus(), JobStatusEnum.READY_TO_UNLOCK.status)) {
|
|
|
// 检查所有人
|
|
// 检查所有人
|
|
|
if (checkJobStatus(isJobTicket, jobUserList)) {
|
|
if (checkJobStatus(isJobTicket, jobUserList)) {
|