|
|
@@ -9,8 +9,10 @@ import cn.iocoder.yudao.module.iscs.dal.dataobject.jobticket.*;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.dataobject.sop.*;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.dataobject.workflow.WorkflowModeDO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.mysql.jobticket.JobTicketMapper;
|
|
|
+import cn.iocoder.yudao.module.iscs.enums.JobStatusEnum;
|
|
|
import cn.iocoder.yudao.module.iscs.service.sop.*;
|
|
|
import cn.iocoder.yudao.module.iscs.service.workflow.WorkflowModeService;
|
|
|
+import cn.iocoder.yudao.module.system.service.attribute.AttributeService;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
@@ -22,6 +24,7 @@ import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 作业票 Service 实现类
|
|
|
@@ -58,7 +61,8 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
|
|
|
private JobTicketStepService jobTicketStepService;
|
|
|
@Resource
|
|
|
private WorkflowModeService workflowModeService;
|
|
|
-
|
|
|
+ @Resource
|
|
|
+ private AttributeService attributeService;
|
|
|
|
|
|
@Transactional
|
|
|
@Override
|
|
|
@@ -371,4 +375,59 @@ public class JobTicketServiceImpl extends ServiceImpl<JobTicketMapper, JobTicket
|
|
|
return name;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public PageResult<MonitorTicketPageVO> getMonitorJobTicketPage(JobTicketPageReqVO pageReqVO) {
|
|
|
+ Page<JobTicketDO> page = new Page<JobTicketDO>().setCurrent(pageReqVO.getPageNo()).setSize(pageReqVO.getPageSize());
|
|
|
+ Page<MonitorTicketPageVO> monitorJobTicketPage = jobTicketMapper.getMonitorJobTicketPage(page, pageReqVO);
|
|
|
+ // 获取所有的人员信息
|
|
|
+ List<JobTicketUserDO> allUserList = null;
|
|
|
+ if (!monitorJobTicketPage.getRecords().isEmpty()) {
|
|
|
+ List<Long> ticketIds = monitorJobTicketPage.getRecords().stream().map(MonitorTicketPageVO::getTicketId).collect(Collectors.toList());
|
|
|
+ // 相关人员信息
|
|
|
+ allUserList = jobTicketUserService.list(Wrappers.<JobTicketUserDO>lambdaQuery()
|
|
|
+ .in(JobTicketUserDO::getTicketId, ticketIds));
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ for (MonitorTicketPageVO record : monitorJobTicketPage.getRecords()) {
|
|
|
+ // 初始值
|
|
|
+ record.setLockNum(0);
|
|
|
+ record.setLockedNum(0);
|
|
|
+ record.setRemoveLockNum(0);
|
|
|
+ record.setColockNum(0);
|
|
|
+ record.setColockedNum(0);
|
|
|
+ record.setRemoveColockNum(0);
|
|
|
+ if (allUserList != null) {
|
|
|
+ // 1.获取关联的上锁人信息
|
|
|
+ List<JobTicketUserDO> jtlockerList = allUserList.stream().filter(o -> o.getTicketId().equals(record.getTicketId()) && o.getUserRole().equals(attributeService.getAttributeByKey("role.jtlocker").getSysAttrValue())).toList();
|
|
|
+ if (!jtlockerList.isEmpty()) {
|
|
|
+ // 上锁总数
|
|
|
+ record.setLockNum(jtlockerList.size());
|
|
|
+ // 已上锁数
|
|
|
+ int lockedNum = (int) jtlockerList.stream().filter(o -> o.getJobStatus() != null && o.getJobStatus().equals(String.valueOf(JobStatusEnum.READY_TO_UNLOCK.status))).count();
|
|
|
+ record.setLockedNum(lockedNum);
|
|
|
+ // 已完成(解锁)上锁数
|
|
|
+ int removeLockNum = (int) jtlockerList.stream().filter(o -> o.getJobStatus() != null && o.getJobStatus().equals(String.valueOf(JobStatusEnum.UNLOCKED.status))).count();
|
|
|
+ record.setRemoveLockNum(removeLockNum);
|
|
|
+ }
|
|
|
+ //2.获取关联的共锁人信息
|
|
|
+ List<JobTicketUserDO> jtcolockerList = allUserList.stream().filter(o -> o.getTicketId().equals(record.getTicketId()) && o.getUserRole().equals(attributeService.getAttributeByKey("role.jtcolocker").getSysAttrValue())).toList();
|
|
|
+ if (!jtcolockerList.isEmpty()) {
|
|
|
+ // 上锁总数
|
|
|
+ record.setColockNum(jtcolockerList.size());
|
|
|
+ // 已上锁数
|
|
|
+ int colockedNum = (int) jtcolockerList.stream().filter(o -> o.getJobStatus() != null && o.getJobStatus().equals(String.valueOf(JobStatusEnum.READY_TO_UNLOCK.status))).count();
|
|
|
+ record.setColockedNum(colockedNum);
|
|
|
+ // 已完成(解锁)上锁数
|
|
|
+ int removeColockNum = (int) jtcolockerList.stream().filter(o -> o.getJobStatus() != null && o.getJobStatus().equals(String.valueOf(JobStatusEnum.UNLOCKED.status))).count();
|
|
|
+ record.setRemoveColockNum(removeColockNum);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ PageResult<MonitorTicketPageVO> respVOPageResult = new PageResult<>();
|
|
|
+ respVOPageResult.setList(monitorJobTicketPage.getRecords());
|
|
|
+ respVOPageResult.setTotal(monitorJobTicketPage.getTotal());
|
|
|
+ return respVOPageResult;
|
|
|
+ }
|
|
|
+
|
|
|
}
|