|
@@ -1,6 +1,8 @@
|
|
|
package cn.iocoder.yudao.module.pms.service.inspect;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
|
|
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
@@ -9,9 +11,14 @@ import cn.iocoder.yudao.module.pms.controller.admin.inspect.item.vo.IotInspectIt
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRoutePageReqVO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectItemDO;
|
|
|
+import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
|
|
|
+import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.IotProductClassifyMapper;
|
|
|
import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectItemMapper;
|
|
|
+import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderDetailMapper;
|
|
|
+import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderMapper;
|
|
|
+import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectPlanMapper;
|
|
|
import cn.iocoder.yudao.module.pms.service.IotProductClassifyService;
|
|
|
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -23,6 +30,7 @@ import org.springframework.validation.annotation.Validated;
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_INSPECT_ITEM_NOT_EXISTS;
|
|
@@ -44,6 +52,12 @@ public class IotInspectItemServiceImpl implements IotInspectItemService {
|
|
|
private IotProductClassifyMapper iotProductClassifyMapper;
|
|
|
@Autowired
|
|
|
private DeptService deptService;
|
|
|
+ @Autowired
|
|
|
+ private IotInspectOrderMapper iotInspectOrderMapper;
|
|
|
+ @Autowired
|
|
|
+ private IotInspectOrderDetailMapper iotInspectOrderDetailMapper;
|
|
|
+ @Autowired
|
|
|
+ private IotInspectPlanMapper iotInspectPlanMapper;
|
|
|
|
|
|
@Override
|
|
|
public Long createIotInspectItem(IotInspectItemSaveReqVO createReqVO) {
|
|
@@ -72,6 +86,19 @@ public class IotInspectItemServiceImpl implements IotInspectItemService {
|
|
|
public void deleteIotInspectItem(Long id) {
|
|
|
// 校验存在
|
|
|
validateIotInspectItemExists(id);
|
|
|
+ //查找是否有巡检计划及巡检工单及路线
|
|
|
+ List<IotInspectOrderDetailDO> detailDOS = iotInspectOrderDetailMapper.selectList("item_id", id);
|
|
|
+ if (CollUtil.isNotEmpty(detailDOS)) {
|
|
|
+ List<Long> orderIds = detailDOS.stream().map(IotInspectOrderDetailDO::getOrderId).distinct().collect(Collectors.toList());
|
|
|
+ List<IotInspectOrderDO> orderDOS = iotInspectOrderMapper.selectByIds(orderIds);
|
|
|
+ if (CollUtil.isNotEmpty(orderDOS)) {
|
|
|
+ List<String> planCodes = orderDOS.stream().map(IotInspectOrderDO::getPlanCode).distinct().collect(Collectors.toList());
|
|
|
+ Long l = iotInspectPlanMapper.selectCountByPlanCode(planCodes);
|
|
|
+ if (l > 0) {
|
|
|
+ throw new ServiceException(new ErrorCode(222, "该巡检项关联计划或路线,不能删除"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
// 删除
|
|
|
iotInspectItemMapper.deleteById(id);
|
|
|
}
|