diff --git a/txw-gxzx/txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxGxxxbMapper.java b/txw-gxzx/txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxGxxxbMapper.java index 14dc8c3..a67104f 100644 --- a/txw-gxzx/txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxGxxxbMapper.java +++ b/txw-gxzx/txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/mapper/TxwGxzxGxxxbMapper.java @@ -66,6 +66,40 @@ public interface TxwGxzxGxxxbMapper extends BaseMapper { .orderByDesc(TxwGxzxGxxxbDO::getLrrq); return selectPage(page,wrapper); } + + default List getQyuuidsByFwlxjh(List fwlxjhCodes) { + if (GyUtils.isNull(fwlxjhCodes) || fwlxjhCodes.isEmpty()) return null; + QueryWrapper 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 getGxuuidsByFwlxjh(List qyuuids, List fwlxjhCodes) { + QueryWrapper 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); + } } diff --git a/txw-gxzx/txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxShqkbServiceImpl.java b/txw-gxzx/txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxShqkbServiceImpl.java index 5312ba4..790f456 100644 --- a/txw-gxzx/txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxShqkbServiceImpl.java +++ b/txw-gxzx/txw-gxzx-service-biz/src/main/java/com/css/txw/gxzx/service/impl/TxwGxzxShqkbServiceImpl.java @@ -62,9 +62,9 @@ public class TxwGxzxShqkbServiceImpl extends ServiceImpl gxuuids = new LinkedHashSet<>(); if (!GyUtils.isNull(reqVO.getFwlxjh())){ - List list = gxbqbMapper.getGxuuids(reqVO.getQyuuids(),reqVO.getFwlxjh()); + List list = gxxxbMapper.getGxuuidsByFwlxjh(reqVO.getQyuuids(), reqVO.getFwlxjh()); 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(reqVO.getScbz())&&"Y".equals(reqVO.getScbz())){ gxuuids.retainAll(scgxuuid); @@ -135,9 +135,9 @@ public class TxwGxzxShqkbServiceImpl extends ServiceImpl getQyuuidsByBq(GxxxReqVO reqVO) { - List list = gxbqbMapper.getQyuuids(reqVO.getFwlxjh()); + List list = gxxxbMapper.getQyuuidsByFwlxjh(reqVO.getFwlxjh()); 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 diff --git a/txw-mhzc/sql/fix_fwlxjh_20260611.sql b/txw-mhzc/sql/fix_fwlxjh_20260611.sql new file mode 100644 index 0000000..566f17e --- /dev/null +++ b/txw-mhzc/sql/fix_fwlxjh_20260611.sql @@ -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; diff --git a/txw-mhzc/txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/TxwGxzxGxxxbMapper.java b/txw-mhzc/txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/TxwGxzxGxxxbMapper.java index 7eba436..66dda84 100644 --- a/txw-mhzc/txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/TxwGxzxGxxxbMapper.java +++ b/txw-mhzc/txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/mapper/TxwGxzxGxxxbMapper.java @@ -67,6 +67,40 @@ public interface TxwGxzxGxxxbMapper extends BaseMapper { .orderByDesc(TxwGxzxGxxxbDO::getLrrq); return selectPage(page,wrapper); } + + default List getQyuuidsByFwlxjh(List fwlxjhCodes) { + if (GyUtils.isNull(fwlxjhCodes) || fwlxjhCodes.isEmpty()) return null; + QueryWrapper 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 getGxuuidsByFwlxjh(List qyuuids, List fwlxjhCodes) { + QueryWrapper 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); + } } diff --git a/txw-mhzc/txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/impl/TxwGxzxShqkbServiceImpl.java b/txw-mhzc/txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/impl/TxwGxzxShqkbServiceImpl.java index 6ec8256..9947b51 100644 --- a/txw-mhzc/txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/impl/TxwGxzxShqkbServiceImpl.java +++ b/txw-mhzc/txw-mhzc-service-biz/src/main/java/com/css/txw/mhzc/service/impl/TxwGxzxShqkbServiceImpl.java @@ -62,9 +62,9 @@ public class TxwGxzxShqkbServiceImpl extends ServiceImpl gxuuids = new LinkedHashSet<>(); if (!GyUtils.isNull(reqVO.getFwlxjh())){ - List list = gxbqbMapper.getGxuuids(reqVO.getQyuuids(),reqVO.getFwlxjh()); + List list = gxxxbMapper.getGxuuidsByFwlxjh(reqVO.getQyuuids(), reqVO.getFwlxjh()); 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(reqVO.getScbz())&&"Y".equals(reqVO.getScbz())){ gxuuids.retainAll(scgxuuid); @@ -135,9 +135,9 @@ public class TxwGxzxShqkbServiceImpl extends ServiceImpl getQyuuidsByBq(GxxxReqVO reqVO) { - List list = gxbqbMapper.getQyuuids(reqVO.getFwlxjh()); + List list = gxxxbMapper.getQyuuidsByFwlxjh(reqVO.getFwlxjh()); 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