Files
klp-oa/klp-wms/src/main/java/com/klp/service/impl/WmsCoilCacheServiceImpl.java
Joshi c84000059f feat(wms): 添加钢卷缓存功能模块
- 创建钢卷缓存实体类WmsCoilCache,包含缓存ID、钢卷ID、JSON数据等字段
- 定义钢卷缓存服务接口IWmsCoilCacheService,提供查询、新增、修改、删除等操作方法
- 实现钢卷缓存服务业务逻辑WmsCoilCacheServiceImpl,包含分页查询和批量操作功能
- 开发钢卷缓存控制器WmsCoilCacheController,提供RESTful API接口
- 创建钢卷缓存映射器WmsCoilCacheMapper及对应的XML映射文件
- 添加钢卷缓存业务对象WmsCoilCacheBo和视图对象WmsCoilCacheVo
- 实现按钢卷ID保存或更新缓存的功能,支持存在则覆盖、不存在则新增的逻辑
- 提供按钢卷ID查询缓存数据的专用接口
2026-04-24 14:05:58 +08:00

136 lines
4.1 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.klp.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.domain.bo.WmsCoilCacheBo;
import com.klp.domain.vo.WmsCoilCacheVo;
import com.klp.domain.WmsCoilCache;
import com.klp.mapper.WmsCoilCacheMapper;
import com.klp.service.IWmsCoilCacheService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 钢卷缓存Service业务层处理
*
* @author klp
* @date 2026-04-24
*/
@RequiredArgsConstructor
@Service
public class WmsCoilCacheServiceImpl implements IWmsCoilCacheService {
private final WmsCoilCacheMapper baseMapper;
/**
* 查询钢卷缓存
*/
@Override
public WmsCoilCacheVo queryById(Long cacheId){
return baseMapper.selectVoById(cacheId);
}
/**
* 查询钢卷缓存列表
*/
@Override
public TableDataInfo<WmsCoilCacheVo> queryPageList(WmsCoilCacheBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsCoilCache> lqw = buildQueryWrapper(bo);
Page<WmsCoilCacheVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询钢卷缓存列表
*/
@Override
public List<WmsCoilCacheVo> queryList(WmsCoilCacheBo bo) {
LambdaQueryWrapper<WmsCoilCache> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsCoilCache> buildQueryWrapper(WmsCoilCacheBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsCoilCache> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getCoilId() != null, WmsCoilCache::getCoilId, bo.getCoilId());
lqw.eq(StringUtils.isNotBlank(bo.getCoilJson()), WmsCoilCache::getCoilJson, bo.getCoilJson());
return lqw;
}
/**
* 新增钢卷缓存
*/
@Override
public Boolean insertByBo(WmsCoilCacheBo bo) {
WmsCoilCache add = BeanUtil.toBean(bo, WmsCoilCache.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setCacheId(add.getCacheId());
}
return flag;
}
/**
* 修改钢卷缓存
*/
@Override
public Boolean updateByBo(WmsCoilCacheBo bo) {
WmsCoilCache update = BeanUtil.toBean(bo, WmsCoilCache.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsCoilCache entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除钢卷缓存
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
/**
* 保存或更新钢卷缓存通过钢卷ID有则覆盖无则新增
*/
@Override
public Boolean saveOrUpdateByCoilId(WmsCoilCacheBo bo) {
WmsCoilCacheVo exist = baseMapper.selectVoByCoilId(bo.getCoilId());
if (exist != null) {
WmsCoilCache update = BeanUtil.toBean(bo, WmsCoilCache.class);
update.setCacheId(exist.getCacheId());
return baseMapper.updateById(update) > 0;
} else {
WmsCoilCache add = BeanUtil.toBean(bo, WmsCoilCache.class);
validEntityBeforeSave(add);
return baseMapper.insert(add) > 0;
}
}
/**
* 获取钢卷缓存通过钢卷ID
*/
@Override
public WmsCoilCacheVo queryByCoilId(Long coilId) {
return baseMapper.selectVoByCoilId(coilId);
}
}