package com.dy.pipIrrProject.intake; 
 | 
  
 | 
import com.dy.common.webUtil.QueryResultVo; 
 | 
import com.dy.pipIrrGlobal.daoPr.PrDivideMapper; 
 | 
import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper; 
 | 
import com.dy.pipIrrGlobal.pojoPr.PrIntake; 
 | 
import com.dy.pipIrrGlobal.voPr.VoIntake; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.apache.dubbo.common.utils.PojoUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.stereotype.Service; 
 | 
import org.springframework.transaction.annotation.Transactional; 
 | 
  
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
import java.util.Optional; 
 | 
  
 | 
/** 
 | 
 * @author wuzeyu 
 | 
 * @date 2023/12/26 11:12 
 | 
 * @LastEditTime 2023/12/26 11:12 
 | 
 * @Description 取水口服务类 
 | 
 */ 
 | 
  
 | 
@Slf4j 
 | 
@Service 
 | 
public class IntakeSv { 
 | 
    @Autowired 
 | 
    private PrIntakeMapper prIntakeMapper; 
 | 
    @Autowired 
 | 
    private PrDivideMapper prDivideMapper; 
 | 
  
 | 
    /** 
 | 
     * 添加取水口 
 | 
     * 
 | 
     * @param po 
 | 
     * @return 
 | 
     */ 
 | 
    @Transactional 
 | 
    Integer addIntake(PrIntake po) { 
 | 
        Long villageId = Optional.ofNullable(po.getVillageId()).orElse(0L); 
 | 
  
 | 
        if (villageId != 0){ 
 | 
            if (po.getTownId() == null || po.getTownId() == 0) { 
 | 
                Long townId = getSupperByVillageId(po.getVillageId()); 
 | 
                po.setTownId(townId); 
 | 
            } 
 | 
            if (po.getCountyId() == null || po.getCountyId() == 0) { 
 | 
                Long countyId = getSupperByVillageId(getSupperByVillageId(po.getVillageId())); 
 | 
                po.setCountyId(countyId); 
 | 
            } 
 | 
        } 
 | 
        if (po.getBlockId() == null || po.getBlockId() == 0) { 
 | 
            Long blockId = prDivideMapper.getBlockIdById(po.getDivideId()); 
 | 
            po.setBlockId(blockId); 
 | 
        } 
 | 
        return prIntakeMapper.insertSelective(po); 
 | 
    } 
 | 
  
 | 
    public Long getSupperByVillageId(long vaId) { 
 | 
        return prIntakeMapper.getSupperByVillageId(vaId); 
 | 
    } 
 | 
  
 | 
  
 | 
    /** 
 | 
     * 保存修改实体 
 | 
     * 
 | 
     * @param po 实体 
 | 
     * @return 数量 
 | 
     */ 
 | 
  
 | 
    public int update(PrIntake po) { 
 | 
        if (po.getTownId() == null || po.getTownId() == 0) { 
 | 
            Long townId = getSupperByVillageId(po.getVillageId()); 
 | 
            po.setTownId(townId); 
 | 
        } 
 | 
        if (po.getCountyId() == null || po.getCountyId() == 0) { 
 | 
            Long countyId = getSupperByVillageId(getSupperByVillageId(po.getVillageId())); 
 | 
            po.setCountyId(countyId); 
 | 
        } 
 | 
        return this.prIntakeMapper.updateByPrimaryKeySelective(po); 
 | 
//        return this.prIntakeMapper.updateByPrimaryKey(po); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据指定条件获取取水口记录 
 | 
     * 
 | 
     * @param queryVo 查询视图 
 | 
     * @return 取水口记录列表 
 | 
     */ 
 | 
    public QueryResultVo<List<VoIntake>> getIntakes(QueryVo queryVo) { 
 | 
//        String isBinded = queryVo.getIsBinded(); 
 | 
// 
 | 
//        if(isBinded == null || isBinded.length() <= 0) { 
 | 
// 
 | 
//        } 
 | 
  
 | 
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); 
 | 
        Long itemTotal = prIntakeMapper.getRecordCount(params); 
 | 
  
 | 
        QueryResultVo<List<VoIntake>> rsVo = new QueryResultVo<>(); 
 | 
        rsVo.pageSize = queryVo.pageSize; 
 | 
        rsVo.pageCurr = queryVo.pageCurr; 
 | 
        rsVo.calculateAndSet(itemTotal, params); 
 | 
        rsVo.obj = prIntakeMapper.getIntakes(params); 
 | 
        return rsVo; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据指定条件导出取水口列表 
 | 
     * 
 | 
     * @param queryVo 
 | 
     * @return 
 | 
     */ 
 | 
    public List<VoIntake> exportIntakes(QueryVo queryVo) { 
 | 
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo); 
 | 
        List<VoIntake> rsVo = prIntakeMapper.getIntakes(params); 
 | 
        return rsVo; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 得到所有取水口 
 | 
     * 
 | 
     * @return 所有取水口集合 
 | 
     */ 
 | 
    public QueryResultVo<List<PrIntake>> selectAll() { 
 | 
        QueryResultVo<List<PrIntake>> rsVo = new QueryResultVo<>(); 
 | 
        rsVo.obj = this.prIntakeMapper.selectAll(); 
 | 
        return rsVo; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 得到一个取水口 
 | 
     * 
 | 
     * @param id 取水口ID 
 | 
     * @return 取水口实体 
 | 
     */ 
 | 
    public PrIntake selectById(Long id) { 
 | 
        return this.prIntakeMapper.selectByPrimaryKey(id); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 逻辑删除实体 
 | 
     * 
 | 
     * @param id 实体ID 
 | 
     * @return 数量 
 | 
     */ 
 | 
    @Transactional 
 | 
    public int delete(Long id) { 
 | 
        return this.prIntakeMapper.deleteLogicById(id); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据取水口编号获取未删除的取水口数量 
 | 
     * 
 | 
     * @param intakeId 
 | 
     * @return 
 | 
     */ 
 | 
    public Integer getRecordCountOfIntake(Long intakeId) { 
 | 
        return prIntakeMapper.getRecordCountOfIntake(intakeId); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据村Id获取全部地址 
 | 
     * 
 | 
     * @param villageId 村Id 
 | 
     * @return address  全部五级地址 
 | 
     */ 
 | 
    public String getAddressByVillageId(long villageId) { 
 | 
        return prIntakeMapper.getAddressByVillageId(villageId); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据区域Id获取区域等级 
 | 
     * 
 | 
     * @param regionId 区域Id 
 | 
     * @return Level  区域等级 
 | 
     */ 
 | 
    public int getLevelByRegionId(long regionId) { 
 | 
        return prIntakeMapper.getLevelByRegionId(regionId); 
 | 
    } 
 | 
} 
 |