Files
xgy-oa/klp-wms/src/main/java/com/klp/service/impl/WmsCoilStatisticsSummaryServiceImpl.java
Joshi 927cbf9586 feat(wms): 添加钢卷统计记录存在性检查功能
- 在服务接口中新增 checkExistsByStatTypeToday 方法用于检查当天指定类型统计记录的存在性
- 在控制器中新增 /checkToday 接口提供统计记录存在性检查服务
- 在服务实现类中实现具体的数据库查询逻辑,使用日期函数过滤当天数据
- 添加参数校验确保统计类型参数不为空
- 使用分页限制优化查询性能,仅返回是否存在标识
2026-03-10 16:28:07 +08:00

130 lines
4.7 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.WmsCoilStatisticsSummaryBo;
import com.klp.domain.vo.WmsCoilStatisticsSummaryVo;
import com.klp.domain.WmsCoilStatisticsSummary;
import com.klp.mapper.WmsCoilStatisticsSummaryMapper;
import com.klp.service.IWmsCoilStatisticsSummaryService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 钢卷生产统计汇总数据透视结果持久化Service业务层处理
*
* @author klp
* @date 2026-03-07
*/
@RequiredArgsConstructor
@Service
public class WmsCoilStatisticsSummaryServiceImpl implements IWmsCoilStatisticsSummaryService {
private final WmsCoilStatisticsSummaryMapper baseMapper;
/**
* 查询钢卷生产统计汇总(数据透视结果持久化)
*/
@Override
public WmsCoilStatisticsSummaryVo queryById(Long summaryId){
return baseMapper.selectVoById(summaryId);
}
/**
* 查询钢卷生产统计汇总(数据透视结果持久化)列表
*/
@Override
public TableDataInfo<WmsCoilStatisticsSummaryVo> queryPageList(WmsCoilStatisticsSummaryBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<WmsCoilStatisticsSummary> lqw = buildQueryWrapper(bo);
Page<WmsCoilStatisticsSummaryVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询钢卷生产统计汇总(数据透视结果持久化)列表
*/
@Override
public List<WmsCoilStatisticsSummaryVo> queryList(WmsCoilStatisticsSummaryBo bo) {
LambdaQueryWrapper<WmsCoilStatisticsSummary> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<WmsCoilStatisticsSummary> buildQueryWrapper(WmsCoilStatisticsSummaryBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<WmsCoilStatisticsSummary> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), WmsCoilStatisticsSummary::getTitle, bo.getTitle());
lqw.eq(StringUtils.isNotBlank(bo.getStatType()), WmsCoilStatisticsSummary::getStatType, bo.getStatType());
lqw.eq(StringUtils.isNotBlank(bo.getStatJson()), WmsCoilStatisticsSummary::getStatJson, bo.getStatJson());
return lqw;
}
/**
* 新增钢卷生产统计汇总(数据透视结果持久化)
*/
@Override
public WmsCoilStatisticsSummaryVo insertByBo(WmsCoilStatisticsSummaryBo bo) {
WmsCoilStatisticsSummary add = BeanUtil.toBean(bo, WmsCoilStatisticsSummary.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setSummaryId(add.getSummaryId());
}
return queryById(add.getSummaryId());
}
/**
* 修改钢卷生产统计汇总(数据透视结果持久化)
*/
@Override
public Boolean updateByBo(WmsCoilStatisticsSummaryBo bo) {
WmsCoilStatisticsSummary update = BeanUtil.toBean(bo, WmsCoilStatisticsSummary.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(WmsCoilStatisticsSummary entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除钢卷生产统计汇总(数据透视结果持久化)
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
/**
* 检查当天是否存在指定类型的统计记录
*/
@Override
public Boolean checkExistsByStatTypeToday(String statType) {
if (StringUtils.isBlank(statType)) {
return false;
}
LambdaQueryWrapper<WmsCoilStatisticsSummary> lqw = Wrappers.lambdaQuery();
lqw.eq(WmsCoilStatisticsSummary::getStatType, statType);
lqw.eq(WmsCoilStatisticsSummary::getDelFlag, 0);
// 查询今天的记录(根据创建时间)
lqw.apply("DATE(create_time) = CURDATE()");
lqw.select(WmsCoilStatisticsSummary::getSummaryId);
lqw.last("LIMIT 1");
return baseMapper.selectOne(lqw) != null;
}
}