|  |  | 
 |  |  | import com.doumee.core.model.PageData; | 
 |  |  | import com.doumee.core.model.PageWrap; | 
 |  |  | import com.doumee.core.utils.Constants; | 
 |  |  | import com.doumee.core.utils.DateUtil; | 
 |  |  | import com.doumee.core.utils.Utils; | 
 |  |  | import com.doumee.dao.business.YwBuildingMapper; | 
 |  |  | import com.doumee.dao.business.YwFloorMapper; | 
 |  |  | import com.doumee.dao.business.YwProjectMapper; | 
 |  |  | import com.doumee.dao.business.YwRoomMapper; | 
 |  |  | import com.doumee.dao.business.dto.DataDTO; | 
 |  |  | import com.doumee.dao.business.model.*; | 
 |  |  | import com.doumee.dao.business.vo.CompanyTree; | 
 |  |  | import com.doumee.dao.business.vo.ProjectDataVO; | 
 |  |  | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | import org.springframework.util.CollectionUtils; | 
 |  |  |  | 
 |  |  | import java.math.BigDecimal; | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.Date; | 
 |  |  | import java.util.List; | 
 |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public List<ProjectDataVO> projectTree(){ | 
 |  |  |     public List<ProjectDataVO> projectTree(DataDTO dataDTO){ | 
 |  |  |         List<ProjectDataVO> projectDataVOList = new ArrayList<>(); | 
 |  |  |         List<YwProject>  ywProjectList = ywProjectMapper.selectList(new QueryWrapper<YwProject>().lambda() | 
 |  |  |                 .eq(YwProject::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .eq(YwProject::getStatus,Constants.ZERO) | 
 |  |  |                 .eq(Objects.nonNull(dataDTO.getProjectId()),YwProject::getId,dataDTO.getProjectId()) | 
 |  |  |                 .orderByAsc(YwProject::getSortnum) | 
 |  |  |         ); | 
 |  |  |         for (YwProject ywProject:ywProjectList) { | 
 |  |  | 
 |  |  |         List<YwBuilding>  ywBuildingList = ywBuildingMapper.selectList(new QueryWrapper<YwBuilding>().lambda() | 
 |  |  |                 .eq(YwBuilding::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .eq(YwBuilding::getStatus,Constants.ZERO) | 
 |  |  |                 .eq(Objects.nonNull(dataDTO.getProjectId()),YwBuilding::getProjectId,dataDTO.getProjectId()) | 
 |  |  |                 .orderByAsc(YwBuilding::getSortnum) | 
 |  |  |         ); | 
 |  |  |  | 
 |  |  | 
 |  |  |         List<YwFloor>  ywFloorList = ywFloorMapper.selectList(new QueryWrapper<YwFloor>().lambda() | 
 |  |  |                 .eq(YwFloor::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .eq(YwFloor::getStatus,Constants.ZERO) | 
 |  |  |                 .eq(Objects.nonNull(dataDTO.getProjectId()),YwFloor::getProjectId,dataDTO.getProjectId()) | 
 |  |  |                 .orderByAsc(YwFloor::getSortnum) | 
 |  |  |         ); | 
 |  |  |  | 
 |  |  | 
 |  |  |             projectDataVOList.add(projectDataVO); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         List<YwRoom>  ywRoomList = ywRoomMapper.selectList(new QueryWrapper<YwRoom>().lambda() | 
 |  |  |                 .eq(YwRoom::getIsdeleted,Constants.ZERO) | 
 |  |  |                 .eq(YwRoom::getStatus,Constants.ZERO) | 
 |  |  |                 .eq(Objects.nonNull(dataDTO.getProjectId()),YwRoom::getProjectId,dataDTO.getProjectId()) | 
 |  |  |                 .apply(Objects.nonNull(dataDTO)&&Objects.nonNull(dataDTO.getStartDate())&&Objects.nonNull(dataDTO.getEndDate())," id not in  (" + | 
 |  |  |                         " SELECT y2.room_id FROM  yw_contract y1 left join yw_contract_room y2 on y1.id = y2.contract_id where 1 = 1 and y1.`STATUS` in( 0,1,2) " + | 
 |  |  |                         " and y1.START_DATE < '"+dataDTO.getEndDate()+" 00:00:00' and y1.END_DATE > '"+ dataDTO.getStartDate() +"  00:00:00' " + | 
 |  |  |                         "  ) ") | 
 |  |  |                 .apply(Objects.nonNull(dataDTO)&&Objects.nonNull(dataDTO.getStartDate())&&Objects.nonNull(dataDTO.getEndDate())," id not in  (" + | 
 |  |  |                         " SELECT y2.room_id FROM  yw_contract y1 left join yw_contract_room y2 on y1.id = y2.contract_id where 1 = 1 and y1.`STATUS` = 3 " + | 
 |  |  |                         " and y1.START_DATE < '"+dataDTO.getEndDate()+" 00:00:00' and y1.BT_DATE > '"+ dataDTO.getStartDate() +"  00:00:00' " + | 
 |  |  |                         "  ) ") | 
 |  |  |                 .orderByAsc(YwRoom::getSortnum) | 
 |  |  |         ); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         for (YwRoom data:ywRoomList) { | 
 |  |  |             ProjectDataVO projectDataVO = new ProjectDataVO(); | 
 |  |  |             BeanUtils.copyProperties(data,projectDataVO); | 
 |  |  |             projectDataVO.setName(data.getCode()); | 
 |  |  |             projectDataVO.setName(data.getRoomNum()); | 
 |  |  |             projectDataVO.setArea(data.getRentArea().setScale(2, BigDecimal.ROUND_HALF_UP)); | 
 |  |  |             projectDataVO.setPId(data.getFloor()); | 
 |  |  |             projectDataVO.setLv(Constants.THREE); | 
 |  |  |             projectDataVOList.add(projectDataVO); |