|
@@ -153,21 +153,51 @@ public class MidPayItemController extends BladeController {
|
|
|
@PostMapping("/system/list")
|
|
|
@ApiOperationSupport(order = 5)
|
|
|
@ApiOperation(value = "系统中期支付项列表", notes = "传入项目id、选择的recordId(系统级id)")
|
|
|
- public R<List<MeterMidPayItemSystem>> systemList(@RequestParam String projectId, String recordId) {
|
|
|
+ public R<List<MeterMidPayItemSystemVO>> systemList(@RequestParam String projectId, String recordId) {
|
|
|
+ Map<String, String> meterPayTypeMap = jdbcTemplate.query("SELECT dict_key,dict_value FROM blade_dict WHERE is_deleted = 0 AND code = 'meter_pay_type'", new BeanPropertyRowMapper<>(Dict.class)).stream().collect(Collectors.toMap(Dict::getDictKey, Dict::getDictValue));
|
|
|
+ Map<String, String> meterPayAppTypeMap = jdbcTemplate.query("SELECT dict_key,dict_value FROM blade_dict WHERE is_deleted = 0 AND code = 'meter_pay_applicable_type'", new BeanPropertyRowMapper<>(Dict.class)).stream().collect(Collectors.toMap(Dict::getDictKey, Dict::getDictValue));
|
|
|
+
|
|
|
/*后管添加汇总项*/
|
|
|
if (ObjectUtil.isNotEmpty(recordId) && ObjectUtil.isNotEmpty(projectId)) {
|
|
|
- List<MeterMidPayItemSystem> meterMidPayItemSystems = payItemSystemService.getBaseMapper().selectList(Wrappers.<MeterMidPayItemSystem>lambdaQuery()
|
|
|
- .ne(MeterMidPayItemSystem::getId, recordId)
|
|
|
- .orderByAsc(MeterMidPayItemSystem::getCreateTime)).stream().sorted(
|
|
|
+ List<MeterMidPayItemRelation> relationList = jdbcTemplate.query("SELECT * FROM s_meter_mid_pay_item_relation WHERE mid_pay_id = " + recordId, new BeanPropertyRowMapper<>(MeterMidPayItemRelation.class));
|
|
|
+ Map<Long, MeterMidPayItemRelation> collect = relationList.stream().collect(Collectors.toMap(MeterMidPayItemRelation::getMidPayIdRelation, Function.identity()));
|
|
|
+
|
|
|
+ List<MeterMidPayItemSystemVO> meterMidPayItemSystems = payItemSystemService.getBaseMapper().selectList(Wrappers.<MeterMidPayItemSystem>lambdaQuery()
|
|
|
+ .orderByAsc(MeterMidPayItemSystem::getCreateTime)).stream().map(system -> {
|
|
|
+ MeterMidPayItemSystemVO vo = new MeterMidPayItemSystemVO();
|
|
|
+ BeanUtil.copyProperties(system, vo);
|
|
|
+
|
|
|
+ /*剔除本身*/
|
|
|
+ if (ObjectUtil.isNotEmpty(recordId) && recordId.equals(vo.getId().toString())) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ /*剔除已引用过的*/
|
|
|
+ if (collect.size() > 0) {
|
|
|
+ MeterMidPayItemRelation orDefault = collect.getOrDefault(vo.getId(), null);
|
|
|
+ if (orDefault != null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (ObjectUtil.isNotEmpty(system.getPayApplicableType())) {
|
|
|
+ vo.setPayApplicableTypeName(meterPayAppTypeMap.getOrDefault(system.getPayApplicableType().toString(), null));
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(system.getPayType())) {
|
|
|
+ vo.setPayTypeName(meterPayTypeMap.getOrDefault(system.getPayType().toString(), null));
|
|
|
+ }
|
|
|
+ return vo;
|
|
|
+ }).sorted(
|
|
|
Comparator.nullsLast(
|
|
|
- Comparator.<MeterMidPayItemSystem, Integer>comparing(
|
|
|
+ Comparator.<MeterMidPayItemSystemVO, Integer>comparing(
|
|
|
systemVO -> {
|
|
|
Integer sortValue = systemVO.getSort();
|
|
|
return sortValue != null ? sortValue : Integer.MAX_VALUE;
|
|
|
}))
|
|
|
.thenComparing(
|
|
|
- Comparator.nullsLast(Comparator.comparing(MeterMidPayItemSystem::getCreateTime)))
|
|
|
- ).collect(Collectors.toList());
|
|
|
+ Comparator.nullsLast(Comparator.comparing(MeterMidPayItemSystemVO::getCreateTime))))
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
|
|
return R.data(meterMidPayItemSystems);
|
|
|
}
|
|
@@ -175,11 +205,54 @@ public class MidPayItemController extends BladeController {
|
|
|
/*计量客户端项目引用系统*/
|
|
|
List<MeterMidPayItemProject> meterMidPayItemProjects = payItemProjectService.getBaseMapper().selectList(Wrappers.<MeterMidPayItemProject>lambdaQuery().eq(MeterMidPayItemProject::getProjectId, projectId));
|
|
|
List<Long> collect = meterMidPayItemProjects.stream().map(MeterMidPayItemProject::getDataSourceId).collect(Collectors.toList());
|
|
|
- List<MeterMidPayItemSystem> meterMidPayItemSystems;
|
|
|
+ List<MeterMidPayItemSystemVO> meterMidPayItemSystems;
|
|
|
if (collect.size() > 0) {
|
|
|
- meterMidPayItemSystems = payItemSystemService.getBaseMapper().selectList(Wrappers.<MeterMidPayItemSystem>lambdaQuery().notIn(MeterMidPayItemSystem::getId, collect).orderByAsc(MeterMidPayItemSystem::getCreateTime));
|
|
|
+ meterMidPayItemSystems = payItemSystemService.getBaseMapper().selectList(Wrappers.<MeterMidPayItemSystem>lambdaQuery()
|
|
|
+ .notIn(MeterMidPayItemSystem::getId, collect)
|
|
|
+ .orderByAsc(MeterMidPayItemSystem::getCreateTime))
|
|
|
+ .stream().map(system -> {
|
|
|
+ MeterMidPayItemSystemVO vo = new MeterMidPayItemSystemVO();
|
|
|
+ BeanUtil.copyProperties(system, vo);
|
|
|
+ if (ObjectUtil.isNotEmpty(system.getPayApplicableType())) {
|
|
|
+ vo.setPayApplicableTypeName(meterPayAppTypeMap.getOrDefault(system.getPayApplicableType().toString(), null));
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(system.getPayType())) {
|
|
|
+ vo.setPayTypeName(meterPayTypeMap.getOrDefault(system.getPayType().toString(), null));
|
|
|
+ }
|
|
|
+ return vo;
|
|
|
+ }).sorted(
|
|
|
+ Comparator.nullsLast(
|
|
|
+ Comparator.<MeterMidPayItemSystemVO, Integer>comparing(
|
|
|
+ systemVO -> {
|
|
|
+ Integer sortValue = systemVO.getSort();
|
|
|
+ return sortValue != null ? sortValue : Integer.MAX_VALUE;
|
|
|
+ }))
|
|
|
+ .thenComparing(
|
|
|
+ Comparator.nullsLast(Comparator.comparing(MeterMidPayItemSystemVO::getCreateTime)))
|
|
|
+ ).collect(Collectors.toList());
|
|
|
} else {
|
|
|
- meterMidPayItemSystems = payItemSystemService.getBaseMapper().selectList(Wrappers.<MeterMidPayItemSystem>lambdaQuery().orderByAsc(MeterMidPayItemSystem::getCreateTime));
|
|
|
+ meterMidPayItemSystems = payItemSystemService.getBaseMapper().selectList(Wrappers.<MeterMidPayItemSystem>lambdaQuery()
|
|
|
+ .orderByAsc(MeterMidPayItemSystem::getCreateTime))
|
|
|
+ .stream().map(system -> {
|
|
|
+ MeterMidPayItemSystemVO vo = new MeterMidPayItemSystemVO();
|
|
|
+ BeanUtil.copyProperties(system, vo);
|
|
|
+ if (ObjectUtil.isNotEmpty(system.getPayApplicableType())) {
|
|
|
+ vo.setPayApplicableTypeName(meterPayAppTypeMap.getOrDefault(system.getPayApplicableType().toString(), null));
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isNotEmpty(system.getPayType())) {
|
|
|
+ vo.setPayTypeName(meterPayTypeMap.getOrDefault(system.getPayType().toString(), null));
|
|
|
+ }
|
|
|
+ return vo;
|
|
|
+ }).sorted(
|
|
|
+ Comparator.nullsLast(
|
|
|
+ Comparator.<MeterMidPayItemSystemVO, Integer>comparing(
|
|
|
+ systemVO -> {
|
|
|
+ Integer sortValue = systemVO.getSort();
|
|
|
+ return sortValue != null ? sortValue : Integer.MAX_VALUE;
|
|
|
+ }))
|
|
|
+ .thenComparing(
|
|
|
+ Comparator.nullsLast(Comparator.comparing(MeterMidPayItemSystemVO::getCreateTime)))
|
|
|
+ ).collect(Collectors.toList());
|
|
|
}
|
|
|
return R.data(meterMidPayItemSystems);
|
|
|
}
|