package com.ruoyi.business.service.impl; import java.util.List; import java.util.Objects; import com.ruoyi.business.domain.BizDevice; import com.ruoyi.business.mapper.BizDeviceMapper; import com.ruoyi.business.mapper.SysRegionMapper; import com.ruoyi.common.utils.DateUtils; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.business.mapper.TOrganizationMapper; import com.ruoyi.business.domain.TOrganization; import com.ruoyi.business.service.ITOrganizationService; /** * 机构管理Service业务层处理 * * @author ruoyi * @date 2025-03-06 */ @Service public class TOrganizationServiceImpl implements ITOrganizationService { @Autowired private TOrganizationMapper tOrganizationMapper; @Autowired private BizDeviceMapper bizDeviceMapper; @Autowired private SysRegionMapper sysRegionMapper; /** * 查询机构管理 * * @param id 机构管理主键 * @return 机构管理 */ @Override public TOrganization selectTOrganizationById(Long id) { TOrganization organization = tOrganizationMapper.selectTOrganizationById(id); if(!Objects.isNull(organization)) this.addExtra(organization); return organization; } /** * 额外返回统计信息 * @param organization */ private void addExtra(TOrganization organization) { Long id = organization.getId(); //处理连续检测设备总数 实验室设备总数 organization.setLxjcCounts(bizDeviceMapper.selectBizDeviceList(BizDevice.builder().deviceWorks(id).type("2").build()).size()); organization.setRobotCounts(bizDeviceMapper.selectBizDeviceList(BizDevice.builder().deviceWorks(id).type("1").build()).size()); //处理省市区名字 organization.setProvinceName(this.sysRegionMapper.selectNameByCode(organization.getProvinceCode())); organization.setCityName(this.sysRegionMapper.selectNameByCode(organization.getCityCode())); organization.setCountryName(this.sysRegionMapper.selectNameByCode(organization.getCountryCode())); //如果是集团,获取下面的所有的水厂列表 Integer type = organization.getType(); if(0 == type){ //2025年03月12日16:32:31 下面的水厂也要获取省市区 和 设备信息 List tOrganizations = this.tOrganizationMapper.selectTOrganizationList(TOrganization.builder().parentId(id).build()); if(!CollectionUtils.isEmpty(tOrganizations)){ for (TOrganization tOrganization : tOrganizations) { tOrganization.setLxjcCounts(bizDeviceMapper.selectBizDeviceList(BizDevice.builder().deviceWorks(tOrganization.getId()).type("2").build()).size()); tOrganization.setRobotCounts(bizDeviceMapper.selectBizDeviceList(BizDevice.builder().deviceWorks(tOrganization.getId()).type("1").build()).size()); //处理省市区名字 tOrganization.setProvinceName(this.sysRegionMapper.selectNameByCode(tOrganization.getProvinceCode())); tOrganization.setCityName(this.sysRegionMapper.selectNameByCode(tOrganization.getCityCode())); tOrganization.setCountryName(this.sysRegionMapper.selectNameByCode(tOrganization.getCountryCode())); } } organization.setChildren(tOrganizations); } } /** * 查询机构管理列表 * * @param tOrganization 机构管理 * @return 机构管理 */ @Override public List selectTOrganizationList(TOrganization tOrganization) { List tOrganizations = tOrganizationMapper.selectTOrganizationList(tOrganization); if(!CollectionUtils.isEmpty(tOrganizations)){ for (TOrganization organization : tOrganizations) { this.addExtra(organization); } } return tOrganizations; } /** * 新增机构管理 * * @param tOrganization 机构管理 * @return 结果 */ @Override public int insertTOrganization(TOrganization tOrganization) { tOrganization.setCreateTime(DateUtils.getNowDate()); return tOrganizationMapper.insertTOrganization(tOrganization); } /** * 修改机构管理 * * @param tOrganization 机构管理 * @return 结果 */ @Override public int updateTOrganization(TOrganization tOrganization) { tOrganization.setUpdateTime(DateUtils.getNowDate()); return tOrganizationMapper.updateTOrganization(tOrganization); } /** * 批量删除机构管理 * * @param ids 需要删除的机构管理主键 * @return 结果 */ @Override public int deleteTOrganizationByIds(Long[] ids) { return tOrganizationMapper.deleteTOrganizationByIds(ids); } /** * 删除机构管理信息 * * @param id 机构管理主键 * @return 结果 */ @Override public int deleteTOrganizationById(Long id) { return tOrganizationMapper.deleteTOrganizationById(id); } }