shiyunteng
2025-03-27 a7ad35b3e20867204cda9faa7bdf8a686264e906
platformx-device-biz/src/main/java/com/by4cloud/platformx/device/service/impl/ContractServiceImpl.java
@@ -1,5 +1,6 @@
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;
@@ -14,6 +15,7 @@
import lombok.RequiredArgsConstructor;
import java.io.Serializable;
import java.util.List;
import java.util.Objects;
/**
 * 合同表
@@ -42,14 +44,17 @@
    @Transactional(rollbackFor = Exception.class)
    public Boolean updateDeep(Contract contract) {
        baseMapper.updateById(contract);
        for (ContractItem  contractItem : contract.getContractItemList()) {
            if (Objects.isNull(contractItem.getId())) {
                contractItem.setContractId(contract.getId());
                contractItemMapper.insert(contractItem);
            } else {
                contractItemMapper.updateById(contractItem);
            }
        }
      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;
    }
@@ -69,7 +74,12 @@
    }
   @Override
   public Contract getByIdDeep(Serializable id) {
      return ContractService.super.getByIdDeep(id);
   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;
   }
}