|
@@ -26,6 +26,7 @@ import cn.vber.device.domain.DeviceOrderFlow;
|
|
|
import cn.vber.device.domain.bo.ChangeAssistantBo;
|
|
import cn.vber.device.domain.bo.ChangeAssistantBo;
|
|
|
import cn.vber.device.domain.bo.DeviceOrderBo;
|
|
import cn.vber.device.domain.bo.DeviceOrderBo;
|
|
|
import cn.vber.device.domain.bo.OrderFlowBo;
|
|
import cn.vber.device.domain.bo.OrderFlowBo;
|
|
|
|
|
+import cn.vber.device.domain.vo.DeviceOrderAssistantUserVo;
|
|
|
import cn.vber.device.domain.vo.DeviceOrderFlowVo;
|
|
import cn.vber.device.domain.vo.DeviceOrderFlowVo;
|
|
|
import cn.vber.device.domain.vo.DeviceOrderVo;
|
|
import cn.vber.device.domain.vo.DeviceOrderVo;
|
|
|
import cn.vber.device.mapper.DeviceOrderAssistantMapper;
|
|
import cn.vber.device.mapper.DeviceOrderAssistantMapper;
|
|
@@ -40,6 +41,8 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 设备维修工单Service业务层处理
|
|
* 设备维修工单Service业务层处理
|
|
@@ -238,6 +241,18 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
|
|
|
return users;
|
|
return users;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public DeviceOrderAssistantUserVo getOrderAssUsers(Long orderId) {
|
|
|
|
|
+ DeviceOrder order = baseMapper.selectById(orderId);
|
|
|
|
|
+ if (order == null) {
|
|
|
|
|
+ throw new ServiceException("未查询到维修工单");
|
|
|
|
|
+ }
|
|
|
|
|
+ DeviceOrderAssistantUserVo vo = new DeviceOrderAssistantUserVo();
|
|
|
|
|
+ vo.setPettyWorkers(order.getPettyWorkers());
|
|
|
|
|
+ vo.setUserIds(deviceOrderAssistantMapper.selectList(new LambdaQueryWrapper<DeviceOrderAssistant>().eq(DeviceOrderAssistant::getOrderId, orderId)).stream().map(DeviceOrderAssistant::getUserId).collect(Collectors.toList()));
|
|
|
|
|
+ return vo;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 变更设备维修工单协助人
|
|
* 变更设备维修工单协助人
|
|
|
*/
|
|
*/
|
|
@@ -286,9 +301,15 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
|
|
|
if (WorkOrderStatusEnum.NOT_STARTED.getStatus()==order.getStatus()) {
|
|
if (WorkOrderStatusEnum.NOT_STARTED.getStatus()==order.getStatus()) {
|
|
|
throw new ServiceException("当前工单状态不能暂缓");
|
|
throw new ServiceException("当前工单状态不能暂缓");
|
|
|
}
|
|
}
|
|
|
|
|
+ Date now = DateUtils.getNowDate();
|
|
|
|
|
+ if(order.getFaultDuration()>0){
|
|
|
|
|
+ order.setFaultDuration(order.getFaultDuration() + DateUtils.difference(order.getResumeTime(), now, TimeUnit.HOURS));
|
|
|
|
|
+ }else{
|
|
|
|
|
+ order.setFaultDuration(DateUtils.difference(order.getCreateTime(), now, TimeUnit.HOURS));
|
|
|
|
|
+ }
|
|
|
order.setStatus(WorkOrderStatusEnum.SUSPENDED.getStatus());
|
|
order.setStatus(WorkOrderStatusEnum.SUSPENDED.getStatus());
|
|
|
order.setSuspendReason(bo.getReason());
|
|
order.setSuspendReason(bo.getReason());
|
|
|
- order.setSuspendTime(DateUtils.getNowDate());
|
|
|
|
|
|
|
+ order.setSuspendTime(now);
|
|
|
boolean flag = baseMapper.updateById(order) > 0;
|
|
boolean flag = baseMapper.updateById(order) > 0;
|
|
|
if (flag) {
|
|
if (flag) {
|
|
|
String content = "暂缓维修工单:工单编号:" + order.getOrderNo() + ",暂缓原因:" + bo.getReason();
|
|
String content = "暂缓维修工单:工单编号:" + order.getOrderNo() + ",暂缓原因:" + bo.getReason();
|
|
@@ -312,6 +333,10 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
|
|
|
if (WorkOrderStatusEnum.SUSPENDED.getStatus()!=order.getStatus()) {
|
|
if (WorkOrderStatusEnum.SUSPENDED.getStatus()!=order.getStatus()) {
|
|
|
throw new ServiceException("当前工单状态不能恢复");
|
|
throw new ServiceException("当前工单状态不能恢复");
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ Date now = DateUtils.getNowDate();
|
|
|
|
|
+ order.setResumeTime(now);
|
|
|
|
|
+ order.setSuspendDuration(order.getSuspendDuration() + DateUtils.difference(order.getSuspendTime(), now, TimeUnit.HOURS));
|
|
|
order.setStatus(WorkOrderStatusEnum.PROCESSING.getStatus());
|
|
order.setStatus(WorkOrderStatusEnum.PROCESSING.getStatus());
|
|
|
order.setSuspendReason(null);
|
|
order.setSuspendReason(null);
|
|
|
order.setSuspendTime(null);
|
|
order.setSuspendTime(null);
|
|
@@ -363,10 +388,18 @@ public class DeviceOrderServiceImpl implements IDeviceOrderService {
|
|
|
if (WorkOrderStatusEnum.PENDING_ACCEPTANCE.getStatus()!=order.getStatus()) {
|
|
if (WorkOrderStatusEnum.PENDING_ACCEPTANCE.getStatus()!=order.getStatus()) {
|
|
|
throw new ServiceException("当前工单状态不能验收");
|
|
throw new ServiceException("当前工单状态不能验收");
|
|
|
}
|
|
}
|
|
|
|
|
+ Date now = DateUtils.getNowDate();
|
|
|
|
|
+ if(order.getFaultDuration()>0){
|
|
|
|
|
+ order.setFaultDuration(order.getFaultDuration() + DateUtils.difference(order.getResumeTime(), now, TimeUnit.HOURS));
|
|
|
|
|
+ }else{
|
|
|
|
|
+ order.setFaultDuration(DateUtils.difference(order.getCreateTime(), now, TimeUnit.HOURS));
|
|
|
|
|
+ }
|
|
|
order.setStatus(WorkOrderStatusEnum.COMPLETED.getStatus());
|
|
order.setStatus(WorkOrderStatusEnum.COMPLETED.getStatus());
|
|
|
order.setAcceptorId(LoginHelper.getUserId());
|
|
order.setAcceptorId(LoginHelper.getUserId());
|
|
|
|
|
+ order.setAcceptanceRemark(bo.getReason());
|
|
|
order.setAcceptanceResult(WorkOrderAcceptanceResultEnum.PASS.getResult());
|
|
order.setAcceptanceResult(WorkOrderAcceptanceResultEnum.PASS.getResult());
|
|
|
- order.setAcceptanceTime(DateUtils.getNowDate());
|
|
|
|
|
|
|
+ order.setAcceptanceTime(now);
|
|
|
|
|
+ order.setCompleteTime(now);
|
|
|
boolean flag = baseMapper.updateById(order) > 0;
|
|
boolean flag = baseMapper.updateById(order) > 0;
|
|
|
if (flag) {
|
|
if (flag) {
|
|
|
String content = "验收维修工单:工单编号:" + order.getOrderNo();
|
|
String content = "验收维修工单:工单编号:" + order.getOrderNo();
|