| | |
| | | public IPage<FwAreaDivideVO> selectFwAreaDividePage(IPage<FwAreaDivideVO> page, FwAreaDivideDTO fwAreaDivide) { |
| | | List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId())); |
| | | fwAreaDivide.setDeptList(deptList); |
| | | fwAreaDivide.setAreaTypeKeyList(parseAreaTypeKeyList(fwAreaDivide.getAreaTypeKeys())); |
| | | |
| | | List<FwAreaDivideVO> areaDivideList = baseMapper.selectFwAreaDividePage(page, fwAreaDivide); |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<FwAreaDivideVO> selectFwAreaDivideList(Integer filterSelected, Long sceneId) { |
| | | List<FwAreaDivideVO> areaDivideList = baseMapper.selectFwAreaDivideList(filterSelected, sceneId); |
| | | public List<FwAreaDivideVO> selectFwAreaDivideList(Integer filterSelected, Long sceneId, String areaTypeKeys, Integer isSetSceneManage, java.time.LocalDateTime flyTime) { |
| | | List<String> areaTypeKeyList = parseAreaTypeKeyList(areaTypeKeys); |
| | | List<FwAreaDivideVO> areaDivideList = baseMapper.selectFwAreaDivideList(filterSelected, sceneId, areaTypeKeyList, isSetSceneManage, flyTime); |
| | | // 获取面数据 |
| | | if (areaDivideList != null && !areaDivideList.isEmpty()) { |
| | | enrichWithExtensionData(areaDivideList); |
| | |
| | | FwAreaDivideStatisticsDTO fwAreaDivideStatistics) { |
| | | List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId())); |
| | | fwAreaDivideStatistics.setDeptList(deptList); |
| | | fwAreaDivideStatistics.setAreaTypeKeyList(parseAreaTypeKeyList(fwAreaDivideStatistics.getAreaTypeKeys())); |
| | | return page.setRecords(baseMapper.selectFwAreaDivideStatisticsPage(page, fwAreaDivideStatistics)); |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public FwAreaDivideVO selectFwAreaDivideDetail(Long id) { |
| | | return baseMapper.selectFwAreaDivideDetail(id); |
| | | FwAreaDivideVO detail = baseMapper.selectFwAreaDivideDetail(id); |
| | | if (detail == null || detail.getId() == null) { |
| | | return detail; |
| | | } |
| | | List<FwAreaDivideExtVO> extList = fwAreaDivideExtService.getByAreaDivideId(detail.getId()); |
| | | detail.setFwAreaDivideExtList(extList); |
| | | return detail; |
| | | } |
| | | |
| | | @Override |
| | |
| | | // 主表与扩展面数据保持同一事务,扩展面列表为空时仅保存主表 |
| | | if (fwAreaDivide == null) { |
| | | return false; |
| | | } |
| | | if (fwAreaDivideExtList != null && !fwAreaDivideExtList.isEmpty()) { |
| | | // 由扩展面类型key去重生成主表areaTypeKeys |
| | | String areaTypeKeys = buildAreaTypeKeys(fwAreaDivideExtList); |
| | | if (StringUtil.isNotBlank(areaTypeKeys)) { |
| | | fwAreaDivide.setAreaTypeKeys(areaTypeKeys); |
| | | } |
| | | } |
| | | boolean isCreate = fwAreaDivide.getId() == null; |
| | | boolean mainResult = saveOrUpdate(fwAreaDivide); |
| | |
| | | } |
| | | } |
| | | |
| | | private String buildAreaTypeKeys(List<FwAreaDivideExtEntity> fwAreaDivideExtList) { |
| | | if (fwAreaDivideExtList == null || fwAreaDivideExtList.isEmpty()) { |
| | | return null; |
| | | } |
| | | // 保持输入顺序,去重后拼接 |
| | | Set<String> keySet = new LinkedHashSet<>(); |
| | | for (FwAreaDivideExtEntity ext : fwAreaDivideExtList) { |
| | | if (ext == null) { |
| | | continue; |
| | | } |
| | | String key = ext.getAreaTypeKey(); |
| | | if (StringUtil.isBlank(key)) { |
| | | continue; |
| | | } |
| | | // 兼容前端传入逗号分隔的类型key |
| | | String[] keyArray = key.split(","); |
| | | for (String item : keyArray) { |
| | | if (item == null) { |
| | | continue; |
| | | } |
| | | String value = item.trim(); |
| | | if (StringUtil.isNotBlank(value)) { |
| | | keySet.add(value); |
| | | } |
| | | } |
| | | } |
| | | if (keySet.isEmpty()) { |
| | | return null; |
| | | } |
| | | return String.join(",", keySet); |
| | | } |
| | | |
| | | private List<String> parseAreaTypeKeyList(String areaTypeKeys) { |
| | | if (StringUtil.isBlank(areaTypeKeys)) { |
| | | return null; |
| | | } |
| | | String[] keyArray = areaTypeKeys.split(","); |
| | | Set<String> keySet = new LinkedHashSet<>(); |
| | | for (String item : keyArray) { |
| | | if (item == null) { |
| | | continue; |
| | | } |
| | | String value = item.trim(); |
| | | if (StringUtil.isNotBlank(value)) { |
| | | keySet.add(value); |
| | | } |
| | | } |
| | | if (keySet.isEmpty()) { |
| | | return null; |
| | | } |
| | | return new ArrayList<>(keySet); |
| | | } |
| | | |
| | | private List<Long> parseIdList(String ids) { |
| | | if (StringUtil.isBlank(ids)) { |
| | | return new ArrayList<>(); |