操作工作票优化
This commit is contained in:
parent
4dcd0596a2
commit
d8616fa68d
@ -54,4 +54,6 @@ public interface WorkTicketMapper extends BaseMapper<WorkTicket> {
|
||||
WorkTicketVo queryById(String id);
|
||||
|
||||
CountWorkTicketVo countWorkTicket(HashMap<String, Object> map);
|
||||
|
||||
List<Long> getPoliceCameraIdsByWorkTicketId(Long id);
|
||||
}
|
||||
|
||||
@ -35,4 +35,11 @@
|
||||
and t.project_sn = #{projectSn}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getPoliceCameraIdsByWorkTicketId" resultType="java.lang.Long">
|
||||
select distinct pci.item_id
|
||||
from work_ticket_camera_rel wtcr
|
||||
join police_camera_item pci on pci.item_id=wtcr.police_camera_id
|
||||
where wtcr.work_ticket_id=#{id}
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@ -192,6 +192,9 @@ public class WorkTicketServiceImpl extends ServiceImpl<WorkTicketMapper, WorkTic
|
||||
if (oldWorkTicket == null) {
|
||||
throw new OpenAlertException("未找到对应实体");
|
||||
}
|
||||
if (Objects.equals(oldWorkTicket.getStatus(), 4)) {
|
||||
throw new OpenAlertException("已完工状态不能修改工作票");
|
||||
}
|
||||
int count = this.count(new LambdaQueryWrapper<WorkTicket>()
|
||||
.eq(WorkTicket::getProjectSn, workTicketDto.getProjectSn())
|
||||
.eq(WorkTicket::getWorkTicketNumber, workTicketDto.getWorkTicketNumber())
|
||||
@ -200,6 +203,21 @@ public class WorkTicketServiceImpl extends ServiceImpl<WorkTicketMapper, WorkTic
|
||||
if (count > 0) {
|
||||
throw new OpenAlertException("工作票编号已存在");
|
||||
}
|
||||
if (Objects.equals(workTicketDto.getStatus(), 2)) {
|
||||
//施工状态不能修改执法记录仪
|
||||
List<Long> pcids = baseMapper.getPoliceCameraIdsByWorkTicketId(workTicketDto.getId());
|
||||
if (CollUtil.isEmpty(pcids) != StrUtil.isBlank(workTicketDto.getPoliceCameraIds())) {
|
||||
throw new OpenAlertException("施工中不得修改作业监控,请先暂停作业重试");
|
||||
}
|
||||
if (StrUtil.isNotBlank(workTicketDto.getPoliceCameraIds())) {
|
||||
List<Long> getItemIds = policeCameraItemService.list(new LambdaQueryWrapper<PoliceCameraItem>()
|
||||
.in(PoliceCameraItem::getItemId, StrUtil.split(workTicketDto.getPoliceCameraIds(), ","))).stream().map(PoliceCameraItem::getItemId).collect(Collectors.toList());
|
||||
if (pcids.size() != getItemIds.size() || !getItemIds.containsAll(pcids)) {
|
||||
throw new OpenAlertException("施工中不得修改作业监控,请先暂停作业重试");
|
||||
}
|
||||
}
|
||||
}
|
||||
//施工中不得新增作业监控,请先暂停作业重试
|
||||
baseMapper.updateById(workTicketDto);
|
||||
workTicketCameraRelService.remove(new LambdaQueryWrapper<WorkTicketCameraRel>()
|
||||
.eq(WorkTicketCameraRel::getWorkTicketId, workTicketDto.getId()));
|
||||
@ -228,6 +246,10 @@ public class WorkTicketServiceImpl extends ServiceImpl<WorkTicketMapper, WorkTic
|
||||
baseMapper.deleteById(id);
|
||||
workTicketOrderService.remove(new LambdaQueryWrapper<WorkTicketOrder>()
|
||||
.eq(WorkTicketOrder::getWorkTicketId, id));
|
||||
workTicketCameraRelService.remove(new LambdaQueryWrapper<WorkTicketCameraRel>()
|
||||
.eq(WorkTicketCameraRel::getWorkTicketId, id));
|
||||
workTicketHistoryService.remove(new LambdaQueryWrapper<WorkTicketHistory>()
|
||||
.eq(WorkTicketHistory::getWorkTicketId, id));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -259,6 +281,10 @@ public class WorkTicketServiceImpl extends ServiceImpl<WorkTicketMapper, WorkTic
|
||||
default:
|
||||
throw new OpenAlertException("operateStatus参数异常");
|
||||
}
|
||||
boolean enableBindCamera = workTicketService.enableBindCamera(ticket.getProjectSn());
|
||||
if (workTicketDto.getOperateStatus() == 1 && enableBindCamera && CollUtil.isEmpty(ticket.getItemList())) {
|
||||
throw new OpenAlertException("请先绑定工作票监控");
|
||||
}
|
||||
this.updateById(ticket);
|
||||
WorkTicketHistory his = null;
|
||||
Long ticketId = ticket.getId();
|
||||
@ -278,7 +304,7 @@ public class WorkTicketServiceImpl extends ServiceImpl<WorkTicketMapper, WorkTic
|
||||
);
|
||||
workTicketHistoryService.completeEndTimeByTicketId(ticketId);
|
||||
}
|
||||
if (workTicketService.enableBindCamera(ticket.getProjectSn())) {
|
||||
if (enableBindCamera) {
|
||||
if (workTicketDto.getOperateStatus() == 1 || workTicketDto.getOperateStatus() == 3) {
|
||||
for (PoliceCameraItem item : ticket.getItemList()) {
|
||||
WorkTicketOrder order = new WorkTicketOrder();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user