|
@@ -10,20 +10,20 @@ import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
|
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
|
|
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
|
|
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
|
import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.maintain.bom.vo.IotMaintainBomSaveReqVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.maintain.bom.vo.IotMaintainBomSaveReqVO;
|
|
-import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMaintainMaterialSaveReqVO;
|
|
|
|
-import cn.iocoder.yudao.module.pms.controller.admin.maintain.materials.vo.IotMaintainMaterialsSaveReqVO;
|
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveReqVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveReqVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveVO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
|
|
|
|
+import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
|
|
|
|
+import cn.iocoder.yudao.module.pms.dal.dataobject.information.IotInformationDbDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotlockstock.IotLockStockDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotlockstock.IotLockStockDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotoutbound.IotOutboundDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotoutbound.IotOutboundDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainBomDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainBomDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainMaterialsDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainMaterialsDO;
|
|
-import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
|
|
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.failure.IotFailureReportMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.failure.IotFailureReportMapper;
|
|
|
|
+import cn.iocoder.yudao.module.pms.dal.mysql.information.IotInformationDbMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.iotlockstock.IotLockStockMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.iotlockstock.IotLockStockMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.iotoutbound.IotOutboundMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.iotoutbound.IotOutboundMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.maintain.IotMaintainBomMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.maintain.IotMaintainBomMapper;
|
|
@@ -31,6 +31,8 @@ import cn.iocoder.yudao.module.pms.dal.mysql.maintain.IotMaintainMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.maintain.IotMaintainMaterialsMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.maintain.IotMaintainMaterialsMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.maintain.material.IotMaintainMaterialMapper;
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.maintain.material.IotMaintainMaterialMapper;
|
|
import cn.iocoder.yudao.module.pms.enums.common.FailureAuditStatusEnum;
|
|
import cn.iocoder.yudao.module.pms.enums.common.FailureAuditStatusEnum;
|
|
|
|
+import cn.iocoder.yudao.module.pms.service.IotDeviceService;
|
|
|
|
+import cn.iocoder.yudao.module.pms.service.IotProductClassifyService;
|
|
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
|
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
|
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
|
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
|
import cn.iocoder.yudao.module.system.api.dingtalk.DingtalkSendApi;
|
|
import cn.iocoder.yudao.module.system.api.dingtalk.DingtalkSendApi;
|
|
@@ -38,8 +40,6 @@ import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi;
|
|
import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
|
|
import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
|
|
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
|
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
|
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
|
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
|
|
-import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
|
|
|
|
-import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
|
|
|
import com.google.common.collect.ImmutableMap;
|
|
import com.google.common.collect.ImmutableMap;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
@@ -47,15 +47,12 @@ import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
-
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.CompletableFuture;
|
|
import java.util.concurrent.CompletableFuture;
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
-import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_LOCK_STOCK_FUSHU;
|
|
|
|
-import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_MAINTAIN_NOT_EXISTS;
|
|
|
|
|
|
+import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.*;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 维修工单 Service 实现类
|
|
* 维修工单 Service 实现类
|
|
@@ -90,6 +87,12 @@ public class IotMaintainServiceImpl implements IotMaintainService {
|
|
private IotMaintainBomMapper iotMaintainBomMapper;
|
|
private IotMaintainBomMapper iotMaintainBomMapper;
|
|
@Autowired
|
|
@Autowired
|
|
private IotMaintainMaterialsMapper iotMaintainMaterialsMapper;
|
|
private IotMaintainMaterialsMapper iotMaintainMaterialsMapper;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IotDeviceService iotDeviceService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IotProductClassifyService iotProductClassifyService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IotInformationDbMapper iotInformationDbMapper;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -111,7 +114,7 @@ public class IotMaintainServiceImpl implements IotMaintainService {
|
|
//插入工单bom
|
|
//插入工单bom
|
|
List<IotMaintainBomSaveReqVO> maintainMaterials = createReqVO.getMaintainMaterials();
|
|
List<IotMaintainBomSaveReqVO> maintainMaterials = createReqVO.getMaintainMaterials();
|
|
if (CollUtil.isEmpty(maintainMaterials)) {
|
|
if (CollUtil.isEmpty(maintainMaterials)) {
|
|
- throw new ServiceException(IOT_MAINTAIN_NOT_EXISTS);
|
|
|
|
|
|
+ throw new ServiceException(IOT_MAINTAIN_BOMS_NOT_EXISTS);
|
|
}
|
|
}
|
|
//插入工单物料
|
|
//插入工单物料
|
|
for (IotMaintainBomSaveReqVO maintainMaterial : maintainMaterials) {
|
|
for (IotMaintainBomSaveReqVO maintainMaterial : maintainMaterials) {
|
|
@@ -145,6 +148,24 @@ public class IotMaintainServiceImpl implements IotMaintainService {
|
|
// 将流程实例id 更新到 供应商主数据表
|
|
// 将流程实例id 更新到 供应商主数据表
|
|
iotMaintainMapper.updateById(new IotMaintainDO().setId(iotMaintain.getId()).setProcessInstanceId(processInstanceId).setAuditStatus(FailureAuditStatusEnum.PROCESS.getStatus()));
|
|
iotMaintainMapper.updateById(new IotMaintainDO().setId(iotMaintain.getId()).setProcessInstanceId(processInstanceId).setAuditStatus(FailureAuditStatusEnum.PROCESS.getStatus()));
|
|
}
|
|
}
|
|
|
|
+ //异步写入故障知识库
|
|
|
|
+ CompletableFuture.runAsync(()->{
|
|
|
|
+ IotDeviceDO iotDevice = iotDeviceService.getIotDevice(iotMaintain.getDeviceId());
|
|
|
|
+ if (Objects.nonNull(iotDevice)) {
|
|
|
|
+ IotProductClassifyDO iotProductClassify = iotProductClassifyService.getIotProductClassify(iotDevice.getAssetClass());
|
|
|
|
+ IotInformationDbDO informationDbDO = new IotInformationDbDO();
|
|
|
|
+ informationDbDO.setDeleted(false);
|
|
|
|
+ informationDbDO.setDeviceType(iotDevice.getAssetClass());
|
|
|
|
+ informationDbDO.setClassName(Objects.isNull(iotProductClassify)?"":iotProductClassify.getName());
|
|
|
|
+ informationDbDO.setFailureInfluence(iotMaintain.getFailureInfluence());
|
|
|
|
+ informationDbDO.setFailureSystem(iotMaintain.getFailureSystem());
|
|
|
|
+ informationDbDO.setSolutions(iotMaintain.getSolution());
|
|
|
|
+ informationDbDO.setDescription(iotMaintain.getDescription());
|
|
|
|
+ informationDbDO.setRemark(iotMaintain.getRemark());
|
|
|
|
+ iotInformationDbMapper.insert(informationDbDO);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
return iotMaintain.getId();
|
|
return iotMaintain.getId();
|
|
}
|
|
}
|
|
|
|
|