feat(dms): 添加设备维保和巡检工单相关接口

- 在 DmsBillsMaintDetailController 和 DmsInspectInstanceDetailController 中添加了新的 API 接口
- 在 DmsBillsMaintDetailServiceImpl 和 DmsInspectInstanceDetailServiceImpl 中实现了新的服务方法
- 更新了 IDmsBillsMaintDetailService 和 IDmsInspectInstanceDetailService 接口,添加了新的方法定义
master
zangch@mesnac.com 3 months ago
parent 425d27a713
commit fea8b1e0a7

@ -21,6 +21,7 @@ import org.dromara.dms.domain.vo.DmsBillsMaintDetailVo;
import org.dromara.dms.domain.bo.DmsBillsMaintDetailBo;
import org.dromara.dms.service.IDmsBillsMaintDetailService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.dms.domain.vo.DmsBillsMaintInstanceVo;
/**
*
@ -114,4 +115,24 @@ public class DmsBillsMaintDetailController extends BaseController {
List<DmsBillsMaintDetailVo> list = dmsBillsMaintDetailService.queryList(bo);
return R.ok(list);
}
/**
* ID
* @param machineId ID
*/
@GetMapping("/getMaintInstancesByMachineId/{machineId}")
public R<List<DmsBillsMaintInstanceVo>> getMaintInstancesByMachineId(@PathVariable Long machineId) {
List<DmsBillsMaintInstanceVo> list = dmsBillsMaintDetailService.getMaintInstancesByMachineId(machineId);
return R.ok(list);
}
/**
* ID
* @param machineId ID
*/
@GetMapping("/countMaintInstancesByMachineId/{machineId}")
public R<Long> countMaintInstancesByMachineId(@PathVariable Long machineId) {
Long count = dmsBillsMaintDetailService.countMaintInstancesByMachineId(machineId);
return R.ok(count);
}
}

@ -21,6 +21,7 @@ import org.dromara.dms.domain.vo.DmsInspectInstanceDetailVo;
import org.dromara.dms.domain.bo.DmsInspectInstanceDetailBo;
import org.dromara.dms.service.IDmsInspectInstanceDetailService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.dms.domain.vo.DmsBillsInspectInstanceVo;
/**
*
@ -114,4 +115,24 @@ public class DmsInspectInstanceDetailController extends BaseController {
List<DmsInspectInstanceDetailVo> list = dmsInspectInstanceDetailService.queryList(bo);
return R.ok(list);
}
/**
* ID
* @param machineId ID
*/
@GetMapping("/getInspectInstancesByMachineId/{machineId}")
public R<List<DmsBillsInspectInstanceVo>> getInspectInstancesByMachineId(@PathVariable Long machineId) {
List<DmsBillsInspectInstanceVo> list = dmsInspectInstanceDetailService.getInspectInstancesByMachineId(machineId);
return R.ok(list);
}
/**
* ID
* @param machineId ID
*/
@GetMapping("/countInspectInstancesByMachineId/{machineId}")
public R<Long> countInspectInstancesByMachineId(@PathVariable Long machineId) {
Long count = dmsInspectInstanceDetailService.countInspectInstancesByMachineId(machineId);
return R.ok(count);
}
}

@ -1,10 +1,10 @@
package org.dromara.dms.service;
import org.dromara.dms.domain.DmsBillsMaintDetail;
import org.dromara.dms.domain.vo.DmsBillsMaintDetailVo;
import org.dromara.dms.domain.bo.DmsBillsMaintDetailBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.dms.domain.bo.DmsBillsMaintDetailBo;
import org.dromara.dms.domain.vo.DmsBillsMaintDetailVo;
import org.dromara.dms.domain.vo.DmsBillsMaintInstanceVo;
import java.util.Collection;
import java.util.List;
@ -66,4 +66,9 @@ public interface IDmsBillsMaintDetailService {
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
public Long countMaintInstancesByMachineId(Long machineId);
public List<DmsBillsMaintInstanceVo> getMaintInstancesByMachineId(Long machineId);
}

@ -1,10 +1,10 @@
package org.dromara.dms.service;
import org.dromara.dms.domain.DmsInspectInstanceDetail;
import org.dromara.dms.domain.vo.DmsInspectInstanceDetailVo;
import org.dromara.dms.domain.bo.DmsInspectInstanceDetailBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.dms.domain.bo.DmsInspectInstanceDetailBo;
import org.dromara.dms.domain.vo.DmsBillsInspectInstanceVo;
import org.dromara.dms.domain.vo.DmsInspectInstanceDetailVo;
import java.util.Collection;
import java.util.List;
@ -66,4 +66,20 @@ public interface IDmsInspectInstanceDetailService {
* @return
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* ID
*
* @param machineId ID
* @return
*/
List<DmsBillsInspectInstanceVo> getInspectInstancesByMachineId(Long machineId);
/**
* ID
*
* @param machineId ID
* @return
*/
Long countInspectInstancesByMachineId(Long machineId);
}

@ -1,5 +1,6 @@
package org.dromara.dms.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
@ -11,13 +12,14 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.dms.domain.*;
import org.dromara.dms.domain.bo.DmsBillsMaintDetailBo;
import org.dromara.dms.domain.vo.DmsBillsMaintDetailVo;
import org.dromara.dms.domain.vo.DmsBillsMaintInstanceVo;
import org.dromara.dms.mapper.DmsBillsMaintDetailMapper;
import org.dromara.dms.mapper.DmsBillsMaintInstanceMapper;
import org.dromara.dms.service.IDmsBillsMaintDetailService;
import org.springframework.stereotype.Service;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
* Service
@ -31,6 +33,8 @@ public class DmsBillsMaintDetailServiceImpl implements IDmsBillsMaintDetailServi
private final DmsBillsMaintDetailMapper baseMapper;
private final DmsBillsMaintInstanceMapper maintInstanceMapper;
/**
*
*
@ -98,6 +102,13 @@ public class DmsBillsMaintDetailServiceImpl implements IDmsBillsMaintDetailServi
.eq(bo.getMaintStatus() != null, DmsBillsMaintDetail::getMaintStatus, bo.getMaintStatus())
.eq(bo.getBeginTime() != null, DmsBillsMaintDetail::getBeginTime, bo.getBeginTime())
.eq(bo.getEndTime() != null, DmsBillsMaintDetail::getEndTime, bo.getEndTime())
//
// .eq(bo.getMaintInstanceId() != null, DmsBillsMaintDetail::getMaintInstanceId, bo.getMaintInstanceId())
// .eq(bo.getMachineId() != null, DmsBillsMaintDetail::getMachineId, bo.getMachineId())
// .eq(StringUtils.isNotBlank(bo.getBillsMaintCode()), DmsBillsMaintDetail::getBillsMaintCode, bo.getBillsMaintCode())
// .between(params.get("beginTime") != null && params.get("endTime") != null,
// DmsBillsMaintDetail::getCreateTime ,params.get("beginTime"), params.get("endTime"));
.orderByDesc(DmsBillsMaintDetail::getCreateTime);
return lqw;
}
@ -134,6 +145,8 @@ public class DmsBillsMaintDetailServiceImpl implements IDmsBillsMaintDetailServi
/**
*
*
* @param entity
*/
private void validEntityBeforeSave(DmsBillsMaintDetail entity){
//TODO 做一些数据校验,如唯一约束
@ -151,6 +164,62 @@ public class DmsBillsMaintDetailServiceImpl implements IDmsBillsMaintDetailServi
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
return baseMapper.deleteBatchIds(ids) > 0;
}
/**
* ID
*
* @param machineId ID
* @return
*/
@Override
public List<DmsBillsMaintInstanceVo> getMaintInstancesByMachineId(Long machineId) {
// 查询该设备相关的所有维保明细
List<DmsBillsMaintDetail> details = baseMapper.selectList(
Wrappers.<DmsBillsMaintDetail>lambdaQuery()
.eq(DmsBillsMaintDetail::getMachineId, machineId)
);
if (details.isEmpty()) {
return new ArrayList<>();
}
// 提取唯一的工单ID
Set<Long> maintInstanceIds = details.stream()
.map(DmsBillsMaintDetail::getMaintInstanceId)
.collect(Collectors.toSet());
// 查询工单主表信息
List<DmsBillsMaintInstance> instances = maintInstanceMapper.selectBatchIds(maintInstanceIds)
.stream()
.sorted((a, b) -> b.getCreateTime().compareTo(a.getCreateTime()))
.collect(Collectors.toList());
return instances.stream()
.map(instance -> MapstructUtils.convert(instance, DmsBillsMaintInstanceVo.class))
.collect(Collectors.toList());
}
/**
* ID
*
* @param machineId ID
* @return
*/
@Override
public Long countMaintInstancesByMachineId(Long machineId) {
// 查询该设备相关的所有维保明细
List<DmsBillsMaintDetail> details = baseMapper.selectList(
Wrappers.<DmsBillsMaintDetail>lambdaQuery()
.select(DmsBillsMaintDetail::getMaintInstanceId)
.eq(DmsBillsMaintDetail::getMachineId, machineId)
);
// 统计唯一的工单数量
return (long) details.stream()
.map(DmsBillsMaintDetail::getMaintInstanceId)
.collect(Collectors.toSet())
.size();
}
}

@ -1,24 +1,26 @@
package org.dromara.dms.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.dms.domain.bo.DmsInspectInstanceDetailBo;
import org.dromara.dms.domain.vo.DmsInspectInstanceDetailVo;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.dms.domain.DmsBillsInspectInstance;
import org.dromara.dms.domain.DmsInspectInstanceDetail;
import org.dromara.dms.domain.bo.DmsInspectInstanceDetailBo;
import org.dromara.dms.domain.vo.DmsBillsInspectInstanceVo;
import org.dromara.dms.domain.vo.DmsInspectInstanceDetailVo;
import org.dromara.dms.mapper.DmsBillsInspectInstanceMapper;
import org.dromara.dms.mapper.DmsInspectInstanceDetailMapper;
import org.dromara.dms.service.IDmsInspectInstanceDetailService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.*;
import java.util.stream.Collectors;
/**
* Service
@ -31,6 +33,7 @@ import java.util.Collection;
public class DmsInspectInstanceDetailServiceImpl implements IDmsInspectInstanceDetailService {
private final DmsInspectInstanceDetailMapper baseMapper;
private final DmsBillsInspectInstanceMapper inspectInstanceMapper;
/**
*
@ -139,4 +142,60 @@ public class DmsInspectInstanceDetailServiceImpl implements IDmsInspectInstanceD
}
return baseMapper.deleteByIds(ids) > 0;
}
/**
* ID
*
* @param machineId ID
* @return
*/
@Override
public List<DmsBillsInspectInstanceVo> getInspectInstancesByMachineId(Long machineId) {
// 查询该设备相关的所有巡检明细
List<DmsInspectInstanceDetail> details = baseMapper.selectList(
Wrappers.<DmsInspectInstanceDetail>lambdaQuery()
.eq(DmsInspectInstanceDetail::getMachineId, machineId)
);
if (details.isEmpty()) {
return new ArrayList<>();
}
// 提取唯一的工单ID
Set<Long> inspectInstanceIds = details.stream()
.map(DmsInspectInstanceDetail::getInspectInstanceId)
.collect(Collectors.toSet());
// 修复使用正确的mapper查询工单主表信息
List<DmsBillsInspectInstance> instances = inspectInstanceMapper.selectBatchIds(inspectInstanceIds)
.stream()
.sorted((a, b) -> b.getCreateTime().compareTo(a.getCreateTime()))
.collect(Collectors.toList());
return instances.stream()
.map(instance -> MapstructUtils.convert(instance, DmsBillsInspectInstanceVo.class))
.collect(Collectors.toList());
}
/**
* ID
*
* @param machineId ID
* @return
*/
@Override
public Long countInspectInstancesByMachineId(Long machineId) {
// 查询该设备相关的所有巡检明细
List<DmsInspectInstanceDetail> details = baseMapper.selectList(
Wrappers.<DmsInspectInstanceDetail>lambdaQuery()
.select(DmsInspectInstanceDetail::getInspectInstanceId)
.eq(DmsInspectInstanceDetail::getMachineId, machineId)
);
// 统计唯一的工单数量
return (long) details.stream()
.map(DmsInspectInstanceDetail::getInspectInstanceId)
.collect(Collectors.toSet())
.size();
}
}

Loading…
Cancel
Save