feat: 服务中心类型筛选

This commit is contained in:
liulujian 2026-06-11 22:03:25 +08:00
parent 0b8ea2cdf0
commit 49b47d2ac3
5 changed files with 156 additions and 8 deletions

View File

@ -66,6 +66,40 @@ public interface TxwGxzxGxxxbMapper extends BaseMapper<TxwGxzxGxxxbDO> {
.orderByDesc(TxwGxzxGxxxbDO::getLrrq); .orderByDesc(TxwGxzxGxxxbDO::getLrrq);
return selectPage(page,wrapper); return selectPage(page,wrapper);
} }
default List<TxwGxzxGxxxbDO> getQyuuidsByFwlxjh(List<String> fwlxjhCodes) {
if (GyUtils.isNull(fwlxjhCodes) || fwlxjhCodes.isEmpty()) return null;
QueryWrapper<TxwGxzxGxxxbDO> wrapper = new QueryWrapper<>();
wrapper.select("DISTINCT qyuuid");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < fwlxjhCodes.size(); i++) {
if (i > 0) sb.append(" OR ");
sb.append("FIND_IN_SET({").append(i).append("}, fwlxjh) > 0");
}
wrapper.apply(sb.toString(), fwlxjhCodes.toArray());
wrapper.lambda()
.eq(TxwGxzxGxxxbDO::getSjzt, "Y")
.eq(TxwGxzxGxxxbDO::getZt, "3");
return selectList(wrapper);
}
default List<TxwGxzxGxxxbDO> getGxuuidsByFwlxjh(List<String> qyuuids, List<String> fwlxjhCodes) {
QueryWrapper<TxwGxzxGxxxbDO> wrapper = new QueryWrapper<>();
wrapper.select("DISTINCT gx_uuid");
if (!GyUtils.isNull(fwlxjhCodes) && fwlxjhCodes.size() > 0) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < fwlxjhCodes.size(); i++) {
if (i > 0) sb.append(" OR ");
sb.append("FIND_IN_SET({").append(i).append("}, fwlxjh) > 0");
}
wrapper.apply(sb.toString(), fwlxjhCodes.toArray());
}
wrapper.lambda()
.in(!GyUtils.isNull(qyuuids) && qyuuids.size() > 0, TxwGxzxGxxxbDO::getQyuuid, qyuuids)
.eq(TxwGxzxGxxxbDO::getSjzt, "Y")
.eq(TxwGxzxGxxxbDO::getZt, "3");
return selectList(wrapper);
}
} }

View File

@ -62,9 +62,9 @@ public class TxwGxzxShqkbServiceImpl extends ServiceImpl<TxwGxzxShqkbMapper, Txw
Set<String> gxuuids = new LinkedHashSet<>(); Set<String> gxuuids = new LinkedHashSet<>();
if (!GyUtils.isNull(reqVO.getFwlxjh())){ if (!GyUtils.isNull(reqVO.getFwlxjh())){
List<TxwGxzxGxbqbDO> list = gxbqbMapper.getGxuuids(reqVO.getQyuuids(),reqVO.getFwlxjh()); List<TxwGxzxGxxxbDO> list = gxxxbMapper.getGxuuidsByFwlxjh(reqVO.getQyuuids(), reqVO.getFwlxjh());
if (GyUtils.isNull(list)) return null; if (GyUtils.isNull(list)) return null;
gxuuids = list.stream().map(TxwGxzxGxbqbDO::getGxUuid).collect(Collectors.toSet()); gxuuids = list.stream().map(TxwGxzxGxxxbDO::getGxUuid).collect(Collectors.toSet());
if (GyUtils.isNull(gxuuids)||gxuuids.size()<1) return null; if (GyUtils.isNull(gxuuids)||gxuuids.size()<1) return null;
if (!GyUtils.isNull(reqVO.getScbz())&&"Y".equals(reqVO.getScbz())){ if (!GyUtils.isNull(reqVO.getScbz())&&"Y".equals(reqVO.getScbz())){
gxuuids.retainAll(scgxuuid); gxuuids.retainAll(scgxuuid);
@ -135,9 +135,9 @@ public class TxwGxzxShqkbServiceImpl extends ServiceImpl<TxwGxzxShqkbMapper, Txw
@Override @Override
public List<String> getQyuuidsByBq(GxxxReqVO reqVO) { public List<String> getQyuuidsByBq(GxxxReqVO reqVO) {
List<TxwGxzxGxbqbDO> list = gxbqbMapper.getQyuuids(reqVO.getFwlxjh()); List<TxwGxzxGxxxbDO> list = gxxxbMapper.getQyuuidsByFwlxjh(reqVO.getFwlxjh());
if (GyUtils.isNull(list)) return null; if (GyUtils.isNull(list)) return null;
return list.stream().map(TxwGxzxGxbqbDO::getQyuuid).collect(Collectors.toList()); return list.stream().map(TxwGxzxGxxxbDO::getQyuuid).distinct().collect(Collectors.toList());
} }
@Override @Override

View File

@ -0,0 +1,80 @@
-- ============================================
-- 修复 txw_gxzx_gxxxb 表 fwlxjh 字段缺失数据
-- 日期: 2026-06-11
-- 说明: 当前表内 38 条数据 fwlxjh 全部为 NULL
-- 根据标题和描述内容分析后补充分类代码
-- ============================================
-- 服务类型代码对照:
-- FWLX001 碳核查服务
-- FWLX002 碳足迹核算
-- FWLX003 碳减排技术服务
-- FWLX004 碳资产管理服务
-- FWLX005 ESG报告编制
-- FWLX006 碳交易咨询
-- ============================================
-- === AMT 企源(8条) ===
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX003' WHERE gx_uuid = 'ce317b37442211f19b640242ac110003'; -- 零碳园区解决方案
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX004,FWLX001' WHERE gx_uuid = 'ce3808c7442211f19b640242ac110003'; -- 基于区块链技术的组织碳管理平台
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX002,FWLX003' WHERE gx_uuid = 'ce4096cc442211f19b640242ac110003'; -- 可持续供应链溯源解决方案
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX003,FWLX004' WHERE gx_uuid = 'ce49d66c442211f19b640242ac110003'; -- 基于区块链技术的能碳双控解决方案
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX002,FWLX001' WHERE gx_uuid = 'ce52cb4d442211f19b640242ac110003'; -- 区块链驱动的全生命周期碳足迹溯源
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX003,FWLX002' WHERE gx_uuid = 'ce605a5c442211f19b640242ac110003'; -- 绿色产品生态设计平台
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX005' WHERE gx_uuid = 'ce6bce7f442211f19b640242ac110003'; -- ESG 综合服务平台
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX002' WHERE gx_uuid = 'ce74b530442211f19b640242ac110003'; -- CBAM 申报平台
-- === TUV 北德(3条) ===
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX001' WHERE gx_uuid = 'cdc41541442211f19b640242ac110003'; -- ISO 14064-1 温室气体核查认证解决方案
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX002,FWLX001' WHERE gx_uuid = 'cdcd6807442211f19b640242ac110003'; -- ISO 14067 产品碳足迹核查认证解决方案
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX001,FWLX003' WHERE gx_uuid = 'cdd4a5fa442211f19b640242ac110003'; -- ISO 14068-1 碳中和核查认证解决方案
-- === 上海建工四建(1条) ===
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX003,FWLX001' WHERE gx_uuid = 'cda95df1442211f19b640242ac110003'; -- 基于医院建筑运行特征智能化碳评价
-- === 上海电气(1条) ===
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX003,FWLX004' WHERE gx_uuid = 'cdbb1c15442211f19b640242ac110003'; -- 能碳智慧管家解决方案
-- === 中国电气装备(6条) ===
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX003,FWLX002' WHERE gx_uuid = 'ce7b6ce5442211f19b640242ac110003'; -- 可再生能源溯源解决方案(源侧)
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX003' WHERE gx_uuid = 'ce81830d442211f19b640242ac110003'; -- 智能微电网自洽系统解决方案(网侧)
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX003' WHERE gx_uuid = 'ce8a637f442211f19b640242ac110003'; -- 零碳园区解决方案(荷侧)
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX003,FWLX004' WHERE gx_uuid = 'ce90c900442211f19b640242ac110003'; -- 电化学储能解决方案(储侧)
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX004,FWLX002' WHERE gx_uuid = 'ce99a70c442211f19b640242ac110003'; -- 碳数据库解决方案(装备侧)
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX003,FWLX006' WHERE gx_uuid = 'ce9fdedf442211f19b640242ac110003'; -- 虚拟电厂场景解决方案(调控侧)
-- === 必维认证(5条) ===
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX002,FWLX001' WHERE gx_uuid = 'ce03b3ff442211f19b640242ac110003'; -- CBAM 填报 & 核验服务流程
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX001' WHERE gx_uuid = 'cdddffa7442211f19b640242ac110003'; -- ISO 14064 盘查 & 核查服务流程
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX002,FWLX001' WHERE gx_uuid = 'cdea38f3442211f19b640242ac110003'; -- ISO 14067 产品碳足迹服务流程
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX001,FWLX003' WHERE gx_uuid = 'cdf3b4c0442211f19b640242ac110003'; -- ISO 14068 碳中和服务流程
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX001,FWLX005' WHERE gx_uuid = 'cdfc4d29442211f19b640242ac110003'; -- PAS 2080 碳管理体系服务流程
-- === 时链科技(1条) ===
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX003' WHERE gx_uuid = 'cd9a22ce442211f19b640242ac110003'; -- 建筑节能降碳服务解决方案
-- === 易碳数科(4条) ===
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX002,FWLX004' WHERE gx_uuid = 'ce0dc26c442211f19b640242ac110003'; -- HiQLCD 数据库 + HiQEditor
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX002,FWLX004' WHERE gx_uuid = 'ce169633442211f19b640242ac110003'; -- 积木 LCA 云
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX004,FWLX002' WHERE gx_uuid = 'ce1ff51d442211f19b640242ac110003'; -- 积木碳云
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX002,FWLX001' WHERE gx_uuid = 'ce288963442211f19b640242ac110003'; -- 碳边境调节机制计算工具 CBAM TOOL
-- === 欧冶云商(3条) ===
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX002,FWLX001' WHERE gx_uuid = 'cd56cf72442211f19b640242ac110003'; -- CBAM 辅助核算系统
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX002,FWLX001' WHERE gx_uuid = 'cd6eda65442211f19b640242ac110003'; -- 钢铁全产业链 EPD 平台
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX002' WHERE gx_uuid = 'cd87231d442211f19b640242ac110003'; -- OYLCA 工具
-- === 联合征信(3条) ===
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX001,FWLX005' WHERE gx_uuid = 'cd20589c442211f19b640242ac110003'; -- 绿色企业认定
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX001,FWLX003' WHERE gx_uuid = 'cd2d00a6442211f19b640242ac110003'; -- 绿色项目认定
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX001,FWLX005' WHERE gx_uuid = 'cd36f2ac442211f19b640242ac110003'; -- 中小企业环境信息披露
-- === 零数科技(3条) ===
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX004,FWLX006' WHERE gx_uuid = 'cd3fd389442211f19b640242ac110003'; -- 碳资产管理平台解决方案
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX006,FWLX004' WHERE gx_uuid = 'cd48aee1442211f19b640242ac110003'; -- 碳交易最优策略模拟平台解决方案
UPDATE txw_gxzx_gxxxb SET fwlxjh = 'FWLX004,FWLX003' WHERE gx_uuid = 'cd4f0827442211f19b640242ac110003'; -- CCER 碳资产开发平台解决方案
-- ============================================
-- 验证
-- ============================================
-- SELECT gx_uuid, qymc, bt_1, fwlxjh FROM txw_gxzx_gxxxb WHERE fwlxjh IS NOT NULL;
-- SELECT fwlxjh, COUNT(*) cnt FROM txw_gxzx_gxxxb GROUP BY fwlxjh ORDER BY cnt DESC;

View File

@ -67,6 +67,40 @@ public interface TxwGxzxGxxxbMapper extends BaseMapper<TxwGxzxGxxxbDO> {
.orderByDesc(TxwGxzxGxxxbDO::getLrrq); .orderByDesc(TxwGxzxGxxxbDO::getLrrq);
return selectPage(page,wrapper); return selectPage(page,wrapper);
} }
default List<TxwGxzxGxxxbDO> getQyuuidsByFwlxjh(List<String> fwlxjhCodes) {
if (GyUtils.isNull(fwlxjhCodes) || fwlxjhCodes.isEmpty()) return null;
QueryWrapper<TxwGxzxGxxxbDO> wrapper = new QueryWrapper<>();
wrapper.select("DISTINCT qyuuid");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < fwlxjhCodes.size(); i++) {
if (i > 0) sb.append(" OR ");
sb.append("FIND_IN_SET({").append(i).append("}, fwlxjh) > 0");
}
wrapper.apply(sb.toString(), fwlxjhCodes.toArray());
wrapper.lambda()
.eq(TxwGxzxGxxxbDO::getSjzt, "Y")
.eq(TxwGxzxGxxxbDO::getZt, "3");
return selectList(wrapper);
}
default List<TxwGxzxGxxxbDO> getGxuuidsByFwlxjh(List<String> qyuuids, List<String> fwlxjhCodes) {
QueryWrapper<TxwGxzxGxxxbDO> wrapper = new QueryWrapper<>();
wrapper.select("DISTINCT gx_uuid");
if (!GyUtils.isNull(fwlxjhCodes) && fwlxjhCodes.size() > 0) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < fwlxjhCodes.size(); i++) {
if (i > 0) sb.append(" OR ");
sb.append("FIND_IN_SET({").append(i).append("}, fwlxjh) > 0");
}
wrapper.apply(sb.toString(), fwlxjhCodes.toArray());
}
wrapper.lambda()
.in(!GyUtils.isNull(qyuuids) && qyuuids.size() > 0, TxwGxzxGxxxbDO::getQyuuid, qyuuids)
.eq(TxwGxzxGxxxbDO::getSjzt, "Y")
.eq(TxwGxzxGxxxbDO::getZt, "3");
return selectList(wrapper);
}
} }

View File

@ -62,9 +62,9 @@ public class TxwGxzxShqkbServiceImpl extends ServiceImpl<TxwGxzxShqkbMapper, Txw
Set<String> gxuuids = new LinkedHashSet<>(); Set<String> gxuuids = new LinkedHashSet<>();
if (!GyUtils.isNull(reqVO.getFwlxjh())){ if (!GyUtils.isNull(reqVO.getFwlxjh())){
List<TxwGxzxGxbqbDO> list = gxbqbMapper.getGxuuids(reqVO.getQyuuids(),reqVO.getFwlxjh()); List<TxwGxzxGxxxbDO> list = gxxxbMapper.getGxuuidsByFwlxjh(reqVO.getQyuuids(), reqVO.getFwlxjh());
if (GyUtils.isNull(list)) return null; if (GyUtils.isNull(list)) return null;
gxuuids = list.stream().map(TxwGxzxGxbqbDO::getGxUuid).collect(Collectors.toSet()); gxuuids = list.stream().map(TxwGxzxGxxxbDO::getGxUuid).collect(Collectors.toSet());
if (GyUtils.isNull(gxuuids)||gxuuids.size()<1) return null; if (GyUtils.isNull(gxuuids)||gxuuids.size()<1) return null;
if (!GyUtils.isNull(reqVO.getScbz())&&"Y".equals(reqVO.getScbz())){ if (!GyUtils.isNull(reqVO.getScbz())&&"Y".equals(reqVO.getScbz())){
gxuuids.retainAll(scgxuuid); gxuuids.retainAll(scgxuuid);
@ -135,9 +135,9 @@ public class TxwGxzxShqkbServiceImpl extends ServiceImpl<TxwGxzxShqkbMapper, Txw
@Override @Override
public List<String> getQyuuidsByBq(GxxxReqVO reqVO) { public List<String> getQyuuidsByBq(GxxxReqVO reqVO) {
List<TxwGxzxGxbqbDO> list = gxbqbMapper.getQyuuids(reqVO.getFwlxjh()); List<TxwGxzxGxxxbDO> list = gxxxbMapper.getQyuuidsByFwlxjh(reqVO.getFwlxjh());
if (GyUtils.isNull(list)) return null; if (GyUtils.isNull(list)) return null;
return list.stream().map(TxwGxzxGxbqbDO::getQyuuid).collect(Collectors.toList()); return list.stream().map(TxwGxzxGxxxbDO::getQyuuid).distinct().collect(Collectors.toList());
} }
@Override @Override