package com.klp.service.impl; import cn.hutool.core.bean.BeanUtil; 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.WmsAccountBo; import com.klp.domain.vo.WmsAccountVo; import com.klp.domain.WmsAccount; import com.klp.mapper.WmsAccountMapper; import com.klp.service.IWmsAccountService; import java.util.List; import java.util.Map; import java.util.Collection; /** * 会计科目Service业务层处理 * * @author klp * @date 2025-08-13 */ @RequiredArgsConstructor @Service public class WmsAccountServiceImpl implements IWmsAccountService { private final WmsAccountMapper baseMapper; /** * 查询会计科目 */ @Override public WmsAccountVo queryById(Long accountId){ return baseMapper.selectVoById(accountId); } /** * 查询会计科目列表 */ @Override public List queryList(WmsAccountBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); return baseMapper.selectVoList(lqw); } private LambdaQueryWrapper buildQueryWrapper(WmsAccountBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(StringUtils.isNotBlank(bo.getAccountCode()), WmsAccount::getAccountCode, bo.getAccountCode()); lqw.like(StringUtils.isNotBlank(bo.getAccountName()), WmsAccount::getAccountName, bo.getAccountName()); lqw.eq(StringUtils.isNotBlank(bo.getAccountType()), WmsAccount::getAccountType, bo.getAccountType()); lqw.eq(bo.getParentId() != null, WmsAccount::getParentId, bo.getParentId()); lqw.eq(bo.getBalance() != null, WmsAccount::getBalance, bo.getBalance()); return lqw; } /** * 新增会计科目 */ @Override public Boolean insertByBo(WmsAccountBo bo) { WmsAccount add = BeanUtil.toBean(bo, WmsAccount.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setAccountId(add.getAccountId()); } return flag; } /** * 修改会计科目 */ @Override public Boolean updateByBo(WmsAccountBo bo) { WmsAccount update = BeanUtil.toBean(bo, WmsAccount.class); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; } /** * 保存前的数据校验 */ private void validEntityBeforeSave(WmsAccount entity){ //TODO 做一些数据校验,如唯一约束 } /** * 批量删除会计科目 */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { if(isValid){ //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteBatchIds(ids) > 0; } }