package com.by4cloud.platformx.device.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.by4cloud.platformx.device.entity.Contract;
|
import com.by4cloud.platformx.device.entity.ContractItem;
|
import com.by4cloud.platformx.device.mapper.ContractItemMapper;
|
import com.by4cloud.platformx.device.mapper.ContractMapper;
|
import com.by4cloud.platformx.device.service.ContractService;
|
import org.springframework.stereotype.Service;
|
import cn.hutool.core.collection.CollUtil;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import org.springframework.transaction.annotation.Transactional;
|
import lombok.RequiredArgsConstructor;
|
|
import java.io.Serializable;
|
import java.util.List;
|
import java.util.Objects;
|
/**
|
* 合同表
|
*
|
* @author pig
|
* @date 2025-03-13 10:20:35
|
*/
|
@Service
|
@RequiredArgsConstructor
|
public class ContractServiceImpl extends ServiceImpl<ContractMapper, Contract> implements ContractService {
|
private final ContractItemMapper contractItemMapper;
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public Boolean saveDeep(Contract contract) {
|
baseMapper.insert(contract);
|
for (ContractItem contractItem : contract.getContractItemList()) {
|
contractItem.setContractId(contract.getId());
|
contractItemMapper.insert( contractItem);
|
}
|
|
return Boolean.TRUE;
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public Boolean updateDeep(Contract contract) {
|
baseMapper.updateById(contract);
|
if (contract.getContractItemList() != null&&contract.getContractItemList().size()>0) {
|
QueryWrapper<ContractItem> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("contract_id",contract.getId());
|
contractItemMapper.delete(queryWrapper);
|
for (ContractItem contractItem : contract.getContractItemList()) {
|
contractItem.setId(null);
|
contractItem.setContractId(contract.getId());
|
contractItemMapper.insert( contractItem);
|
}
|
}
|
|
return Boolean.TRUE;
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public Boolean removeDeep(Long[] ids) {
|
baseMapper.deleteBatchIds(CollUtil.toList(ids));
|
contractItemMapper.delete(Wrappers.<ContractItem>lambdaQuery().in(ContractItem::getContractId, ids));
|
return Boolean.TRUE;
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public Boolean removeChild(Long[] ids) {
|
contractItemMapper.deleteBatchIds(CollUtil.toList(ids));
|
return Boolean.TRUE;
|
}
|
|
@Override
|
public Contract getDetailById(Long id) {
|
Contract contract = baseMapper.selectById(id);
|
QueryWrapper<ContractItem> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("contract_id",id);
|
List<ContractItem> itemList = contractItemMapper.selectList(queryWrapper);
|
contract.setContractItemList(itemList);
|
return contract;
|
}
|
}
|