From b766996ab341784a2839a39a184cf27a3b8aeeeb Mon Sep 17 00:00:00 2001 From: lishuai Date: Thu, 5 Dec 2024 14:35:10 +0800 Subject: [PATCH] =?UTF-8?q?Bexcel=E7=9A=84=E9=93=9D=E5=88=B6=E5=93=81?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91=202024=E5=B9=B412=E6=9C=88?= =?UTF-8?q?3=E6=97=A514:44:44?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CbamIndustryController.java | 12 +-- .../CbamProcessMaterialController.java | 36 +++---- .../CbamProdRouteRelationController.java | 12 ++- .../dto/CbamProcessMaterialDTO.java | 4 +- .../entity/CbamProcessMaterialEntity.java | 2 +- .../service/CbamIndustryService.java | 3 +- .../service/CbamProcessMaterialService.java | 7 ++ .../service/CbamProdRouteRelationService.java | 2 + .../service/impl/CbamIndustryServiceImpl.java | 41 +++++--- .../impl/CbamProcessMaterialServiceImpl.java | 38 ++++++- .../CbamProdRouteRelationServiceImpl.java | 15 +++ .../CbamCarbonDirectController.java | 24 +++-- .../CbamPerfluorinatedCarbonController.java | 12 +++ .../dto/CbamCarbonDirectContextDTO.java | 60 +++++++++++ .../directCarbon/dto/CbamCarbonDirectDTO.java | 11 ++- .../dto/CbamPerfluorinatedCarbonDTO.java | 7 +- .../dto/CbamProcessAllocationDTO.java | 6 +- .../CbamPerfluorinatedCarbonEntity.java | 2 +- .../entity/CbamProcessAllocationEntity.java | 19 +++- .../service/CbamCarbonDirectService.java | 8 +- .../CbamPerfluorinatedCarbonService.java | 5 + .../service/CbamProcessAllocationService.java | 5 + .../impl/CbamCarbonDirectServiceImpl.java | 77 ++++++++------- .../CbamPerfluorinatedCarbonServiceImpl.java | 63 ++++++++++++ .../CbamProcessAllocationServiceImpl.java | 19 +++- ...CbamCarbonIndirectEmissionsController.java | 1 + .../CbamPowerSummaryFuelController.java} | 44 ++++----- .../dto/CbamCarbonIndirectEmissionsDTO.java | 9 +- .../CbamCarbonPowerProgressAllocationDTO.java | 36 ++++--- .../dto/CbamPowerSummaryFuelDTO.java | 44 +++++++++ .../CbamCarbonIndirectEmissionsEntity.java | 21 +++- ...amCarbonPowerProgressAllocationEntity.java | 39 +++++--- .../entity/CbamPowerSummaryFuelEntity.java | 71 +++++++++++++ .../mapper/CbamPowerSummaryFuelMapper.java | 16 +++ .../CbamCarbonIndirectEmissionsService.java | 7 ++ ...mCarbonPowerProgressAllocationService.java | 5 + .../service/CbamPowerSummaryFuelService.java | 14 +++ ...bamCarbonIndirectEmissionsServiceImpl.java | 14 +++ ...bonPowerProgressAllocationServiceImpl.java | 16 +++ .../Impl/CbamPowerSummaryFuelServiceImpl.java | 28 ++++++ .../CbamProductAllocationController.java | 2 +- ...CbamProductExhaustEmissionsController.java | 99 ------------------- .../CbamProductHeatEmissionsController.java | 88 ----------------- .../dto/CbamProductAllocationDTO.java | 33 ++++++- .../dto/CbamProductElectricityDTO.java | 30 ------ .../dto/CbamProductExhaustEmissionsDTO.java | 30 ------ .../dto/CbamProductHeatEmissionsDTO.java | 22 ----- .../entity/CbamProductAllocationEntity.java | 95 +++++++++++++----- .../entity/CbamProductElectricityEntity.java | 41 -------- .../CbamProductExhaustEmissionsEntity.java | 41 -------- .../CbamProductHeatEmissionsEntity.java | 34 ------- .../mapper/CbamProductElectricityMapper.java | 17 ---- .../CbamProductExhaustEmissionsMapper.java | 9 -- .../CbamProductHeatEmissionsMapper.java | 9 -- .../service/CbamProductAllocationService.java | 6 ++ .../CbamProductElectricityService.java | 7 -- .../CbamProductExhaustEmissionsService.java | 7 -- .../CbamProductHeatEmissionsService.java | 7 -- .../CbamProductAllocationServiceImpl.java | 16 ++- .../CbamProductElectricityServiceImpl.java | 19 ---- ...bamProductExhaustEmissionsServiceImpl.java | 20 ---- .../CbamProductHeatEmissionsServiceImpl.java | 27 ----- 62 files changed, 816 insertions(+), 698 deletions(-) create mode 100644 modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonDirectContextDTO.java rename modules/cbam/src/main/java/com/thing/cbam/{production/controller/CbamProductElectricityController.java => indirectCarbon/controller/CbamPowerSummaryFuelController.java} (58%) create mode 100644 modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/dto/CbamPowerSummaryFuelDTO.java create mode 100644 modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/entity/CbamPowerSummaryFuelEntity.java create mode 100644 modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/mapper/CbamPowerSummaryFuelMapper.java create mode 100644 modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/CbamPowerSummaryFuelService.java create mode 100644 modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/Impl/CbamPowerSummaryFuelServiceImpl.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductExhaustEmissionsController.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductHeatEmissionsController.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductElectricityDTO.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductExhaustEmissionsDTO.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductHeatEmissionsDTO.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductElectricityEntity.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductExhaustEmissionsEntity.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductHeatEmissionsEntity.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/mapper/CbamProductElectricityMapper.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/mapper/CbamProductExhaustEmissionsMapper.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/mapper/CbamProductHeatEmissionsMapper.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductElectricityService.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductExhaustEmissionsService.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductHeatEmissionsService.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductElectricityServiceImpl.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductExhaustEmissionsServiceImpl.java delete mode 100644 modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductHeatEmissionsServiceImpl.java diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamIndustryController.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamIndustryController.java index b5a06bd..b95121e 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamIndustryController.java +++ b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamIndustryController.java @@ -46,15 +46,15 @@ public class CbamIndustryController { return new Result().ok(dto); } - @PostMapping - @Operation(summary = "保存") - @LogOperation("保存") - public Result save(@RequestBody CbamIndustryDTO dto) { - return new Result().ok(service.saveIndustryInfo(dto)); + @PostMapping("saveOrUpdate") + @Operation(summary = "新增或者修改") + @LogOperation("新增或者修改") + public Result saveOrUpdate(@RequestBody CbamIndustryDTO dto) { + return new Result().ok(service.saveOrUpdate(dto)); } @PutMapping - @Operation(summary = "修改") + @Operation(summary = "修改-废弃") @LogOperation("修改") public Result update(@RequestBody CbamIndustryDTO dto) { //效验数据 diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProcessMaterialController.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProcessMaterialController.java index 978199a..45478a8 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProcessMaterialController.java +++ b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProcessMaterialController.java @@ -69,25 +69,25 @@ public class CbamProcessMaterialController { return new Result>().ok(processMaterialDTOList); } - @PostMapping - @Operation(summary="保存") - @LogOperation("保存") - public Result save(@RequestBody CbamProcessMaterialDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - cbamProcessMaterialService.saveDto(dto); - return new Result<>(); - } +// @PostMapping +// @Operation(summary="保存或者更新") +// @LogOperation("保存或者更新") +// public Result saveOrUpdate(@RequestBody CbamProcessMaterialDTO dto){ +// //效验数据 +// ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); +// cbamProcessMaterialService.saveDto(dto); +// return new Result<>(); +// } - @PutMapping - @Operation(summary="修改") - @LogOperation("修改") - public Result update(@RequestBody CbamProcessMaterialDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - cbamProcessMaterialService.updateDto(dto); - return new Result<>(); - } +// @PutMapping +// @Operation(summary="修改") +// @LogOperation("修改") +// public Result update(@RequestBody CbamProcessMaterialDTO dto){ +// //效验数据 +// ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); +// cbamProcessMaterialService.updateDto(dto); +// return new Result<>(); +// } @DeleteMapping @Operation(summary="删除") diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProdRouteRelationController.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProdRouteRelationController.java index d6ab122..3d5b933 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProdRouteRelationController.java +++ b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProdRouteRelationController.java @@ -18,6 +18,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Map; /** @@ -54,7 +55,7 @@ public class CbamProdRouteRelationController { return new Result().ok(data); } - @PostMapping + /* @PostMapping @Operation(summary="保存") @LogOperation("保存") public Result save(@RequestBody CbamProdRouteRelationDTO dto){ @@ -62,6 +63,15 @@ public class CbamProdRouteRelationController { ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); cbamProdRouteRelationService.saveDto(dto); return new Result<>(); + }*/ + + @PostMapping + @Operation(summary="批量保存或者更新") + @LogOperation("保存") + public Result batchSaveOrUpdate(@RequestBody List list){ + //效验数据 + cbamProdRouteRelationService.batchSaveOrUpdate(list); + return new Result<>(); } @PutMapping diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProcessMaterialDTO.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProcessMaterialDTO.java index 8aad691..c7b5c41 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProcessMaterialDTO.java +++ b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProcessMaterialDTO.java @@ -54,7 +54,9 @@ public class CbamProcessMaterialDTO implements Serializable { private Long updateDate; @Schema(description = "类型1.生产过程 2.原材料") private Integer type; + @Schema(description = "生产过程分配量") + private String processAllocation; @Schema(description = "生产工艺相关信息--由关联表得到") - List routeRelationList; + private List routeRelationList; } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProcessMaterialEntity.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProcessMaterialEntity.java index 9291948..c43fca4 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProcessMaterialEntity.java +++ b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProcessMaterialEntity.java @@ -89,5 +89,5 @@ public class CbamProcessMaterialEntity implements Serializable { /** * 生产过程分配量 */ -// private String processAllocation; + private String processAllocation; } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamIndustryService.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamIndustryService.java index 24984bb..370cfa0 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamIndustryService.java +++ b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamIndustryService.java @@ -10,11 +10,10 @@ import java.util.LinkedHashMap; public interface CbamIndustryService extends IBaseService { + CbamIndustryDTO saveOrUpdate(CbamIndustryDTO dto); CbamIndustryDTO findById(Long id); - CbamIndustryDTO saveIndustryInfo(CbamIndustryDTO dto); - void updateIndustryInfo(CbamIndustryDTO dto); void batchDeleteByIds( Long[] ids); diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProcessMaterialService.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProcessMaterialService.java index 472aeba..d4c3731 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProcessMaterialService.java +++ b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProcessMaterialService.java @@ -14,6 +14,12 @@ import java.util.List; */ public interface CbamProcessMaterialService extends IBaseService { + + + + List batchSaveOrUpdate(List list); + + /** * 根据行业id和类型查询 * @param industryId @@ -35,6 +41,7 @@ public interface CbamProcessMaterialService extends IBaseService list,Integer type); + /** * 批量更新 * @param list diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProdRouteRelationService.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProdRouteRelationService.java index 1cd1f8f..2766f0e 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProdRouteRelationService.java +++ b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProdRouteRelationService.java @@ -16,4 +16,6 @@ public interface CbamProdRouteRelationService extends IBaseService getByProdMaterialIdAndType(Long prodMaterialId, Integer type); + List batchSaveOrUpdate(List list); + } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamIndustryServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamIndustryServiceImpl.java index 06fafc1..fa55945 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamIndustryServiceImpl.java +++ b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamIndustryServiceImpl.java @@ -16,8 +16,10 @@ import com.thing.common.core.constants.Constant; import com.thing.common.core.exception.SysException; import com.thing.common.core.utils.ConvertUtils; import com.thing.common.orm.service.impl.BaseServiceImpl; +import com.thing.common.orm.utils.IdGenerator; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -95,7 +97,32 @@ public class CbamIndustryServiceImpl extends BaseServiceImpl cbamProductList = dto.getCbamProductList(); cbamProcessMaterialService.batchDeleteAndSaveList(cbamProductList,industryEntity.getId(),1); @@ -150,12 +175,6 @@ public class CbamIndustryServiceImpl extends BaseServiceImpl validateMsg(Long hyId,Long startTime,Long endTime) { LinkedHashMap resMap = new LinkedHashMap<>(); //1.所属行业不能为空,并且是行业字典的值 - - - - - - return null; } } diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProcessMaterialServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProcessMaterialServiceImpl.java index 897c8ab..885605d 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProcessMaterialServiceImpl.java +++ b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProcessMaterialServiceImpl.java @@ -9,16 +9,16 @@ import com.thing.cbam.baesInfoExcel.entity.CbamProdRouteRelationEntity; import com.thing.cbam.baesInfoExcel.mapper.CbamProcessMaterialMapper; import com.thing.cbam.baesInfoExcel.service.CbamProcessMaterialService; import com.thing.cbam.baesInfoExcel.service.CbamProdRouteRelationService; -import com.thing.common.core.exception.SysException; import com.thing.common.core.utils.ConvertUtils; import com.thing.common.orm.service.impl.BaseServiceImpl; import lombok.RequiredArgsConstructor; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Objects; /** * 综合商品类别和相关生产过程 和 购买的原材料 表 @@ -76,6 +76,40 @@ public class CbamProcessMaterialServiceImpl extends BaseServiceImpl batchSaveOrUpdate(List list) { + if(CollectionUtils.isEmpty(list)){ + return list; + } + //除了id,不管有没有值,都根据 industryId 和类型(自定义1.代表 生产过程 2.代表原料) 先删除,再插入 + List industryIds = list.stream().map(CbamProcessMaterialDTO::getIndustryId).distinct().toList(); + List typeList = list.stream().map(CbamProcessMaterialDTO::getType).distinct().toList(); + mapper.deleteByQuery(QueryWrapper.create() + .in(CbamProcessMaterialEntity::getIndustryId,industryIds) + .in(CbamProcessMaterialEntity::getType,typeList)); + //再进行插入操作 + List resList = new ArrayList<>(); + for (CbamProcessMaterialDTO cbamProcessMaterialDTO : list) { + CbamProcessMaterialEntity cbamProcessMaterialEntity = ConvertUtils.sourceToTarget(cbamProcessMaterialDTO, CbamProcessMaterialEntity.class); + //1.保存产品或者原料信息 + mapper.insert(cbamProcessMaterialEntity); + //2.保存产品或者原料的生产工艺信息 + List routeRelationList = cbamProcessMaterialDTO.getRouteRelationList(); + if(CollectionUtil.isNotEmpty(routeRelationList)){ + for (CbamProdRouteRelationDTO cbamProdRouteRelationDTO : routeRelationList) { + cbamProdRouteRelationDTO.setProdMaterialId(cbamProcessMaterialEntity.getId()); + cbamProdRouteRelationDTO.setType(cbamProcessMaterialEntity.getType()); + } + //将工艺信息保存到数据库 + List routeRelationDTOS = cbamProdRouteRelationService.batchSaveOrUpdate(routeRelationList); + CbamProcessMaterialDTO processMaterialDTO = ConvertUtils.sourceToTarget(cbamProcessMaterialEntity, CbamProcessMaterialDTO.class); + processMaterialDTO.setRouteRelationList(routeRelationDTOS); + resList.add(processMaterialDTO); + } + } + return resList; + } + @Transactional(rollbackFor = Exception.class) @Override public void batchDeleteAndSaveList(List list,Long industryId,Integer type){ diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProdRouteRelationServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProdRouteRelationServiceImpl.java index 2a3c7ac..8a43e10 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProdRouteRelationServiceImpl.java +++ b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProdRouteRelationServiceImpl.java @@ -5,6 +5,7 @@ import com.thing.cbam.baesInfoExcel.dto.CbamProdRouteRelationDTO; import com.thing.cbam.baesInfoExcel.entity.CbamProdRouteRelationEntity; import com.thing.cbam.baesInfoExcel.mapper.CbamProdRouteRelationMapper; import com.thing.cbam.baesInfoExcel.service.CbamProdRouteRelationService; +import com.thing.common.core.utils.ConvertUtils; import com.thing.common.orm.service.impl.BaseServiceImpl; import org.springframework.stereotype.Service; @@ -36,4 +37,18 @@ public class CbamProdRouteRelationServiceImpl extends BaseServiceImpl batchSaveOrUpdate(List list) { + //除了id,不管有没有值,都根据(生产过程或者原料id) 和类型(自定义1.代表 生产过程 2.代表原料) 先删除,再插入 + List typeList = list.stream().map(CbamProdRouteRelationDTO::getType).toList(); + List prodMaterialIdList = list.stream().map(CbamProdRouteRelationDTO::getProdMaterialId).toList(); + mapper.deleteByQuery(QueryWrapper.create() + .in(CbamProdRouteRelationEntity::getProdMaterialId, prodMaterialIdList) + .in(CbamProdRouteRelationEntity::getType, typeList)); + //插入工艺路线 + List cbamProdRouteRelationEntities = ConvertUtils.sourceToTarget(list, CbamProdRouteRelationEntity.class); + mapper.insertBatch(cbamProdRouteRelationEntities); + return ConvertUtils.sourceToTarget(cbamProdRouteRelationEntities, CbamProdRouteRelationDTO.class); + } } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonDirectController.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonDirectController.java index daba7dd..633e650 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonDirectController.java +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonDirectController.java @@ -1,5 +1,6 @@ package com.thing.cbam.directCarbon.controller; +import com.thing.cbam.directCarbon.dto.CbamCarbonDirectContextDTO; import com.thing.cbam.directCarbon.dto.CbamCarbonDirectDTO; import com.thing.cbam.directCarbon.service.CbamCarbonDirectService; import com.thing.common.core.annotation.LogOperation; @@ -79,21 +80,28 @@ public class CbamCarbonDirectController { return new Result<>(); } - @PostMapping("batchSave") - @Operation(summary="保存所有的tab信息") - @LogOperation("保存所有的tab信息") - public Result batchSaveList(@RequestBody List carbonDirectDTOList){ + @PostMapping("batchSaveOrUpdate") + @Operation(summary="批量保存或者更新") + @LogOperation("批量保存或者更新") + public Result batchSaveOrUpdate(@RequestBody List carbonDirectDTOList){ //效验数据 - cbamCarbonDirectService.saveList(carbonDirectDTOList); + cbamCarbonDirectService.batchSaveOrUpdate(carbonDirectDTOList); return new Result<>(); } + @PostMapping("batchSaveOrUpdateCarbonDirect") + @Operation(summary="批量保存或者更新整个B-excel") + @LogOperation("批量保存或者更新") + public Result batchSaveOrUpdateCarbonDirect(@RequestBody CbamCarbonDirectContextDTO directContextDTO){ + return new Result().ok(cbamCarbonDirectService.batchSaveOrUpdateCarbonDirect(directContextDTO)); + } + @PostMapping("batchUpdate") - @Operation(summary="更新所有的tab信息") - @LogOperation("更新所有的tab信息") + @Operation(summary="批量更新") + @LogOperation("批量更新") public Result batchUpdateList(@RequestBody List carbonDirectDTOList){ //效验数据 - cbamCarbonDirectService.saveList(carbonDirectDTOList); + cbamCarbonDirectService.batchSaveOrUpdate(carbonDirectDTOList); return new Result<>(); } diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamPerfluorinatedCarbonController.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamPerfluorinatedCarbonController.java index 9766518..33d190b 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamPerfluorinatedCarbonController.java +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamPerfluorinatedCarbonController.java @@ -18,6 +18,7 @@ import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; +import java.util.List; import java.util.Map; /** @@ -64,6 +65,17 @@ public class CbamPerfluorinatedCarbonController { return new Result<>(); } + + @PostMapping("batchSaveOrUpdate") + @Operation(summary="保存") + @LogOperation("保存") + public Result batchSaveOrUpdate(@RequestBody List list){ + //效验数据 + // ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + cbamPerfluorinatedCarbonService.batchSaveOrUpdate(list); + return new Result<>(); + } + @PutMapping @Operation(summary="修改") @LogOperation("修改") diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonDirectContextDTO.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonDirectContextDTO.java new file mode 100644 index 0000000..ae9d401 --- /dev/null +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonDirectContextDTO.java @@ -0,0 +1,60 @@ +package com.thing.cbam.directCarbon.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** +* 直接排放量B-Excel +* +* @author xc +* @since 3.0 2024-12-02 +*/ +@Data +@Schema(description = "直接排放量B-Excel") +public class CbamCarbonDirectContextDTO implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "类型:\n" + + "1.是否涉及燃烧排放\n" + + "2.是否涉及过程排放\n" + + "3.是否涉及物料平衡\n" + +// "4.是否涉及斜率法\n" + +// "5.是否涉及过电压法\n" + + "6.是否有连续排放测量系统(CEMS)\n" + + "7.各生产过程中原材料/燃料的分配") + private List carbonDirectList; + + + + @Schema(description = "类型:\n" + +// "1.是否涉及燃烧排放\n" + +// "2.是否涉及过程排放\n" + +// "3.是否涉及物料平衡\n" + + "4.是否涉及斜率法\n" + + "5.是否涉及过电压法\n" +// "6.是否有连续排放测量系统(CEMS)\n" + +// "7.各生产过程中原材料/燃料的分配" + ) + private List perfluorinatedCarbonList; + + + @Schema(description = "类型:\n" + +// "1.是否涉及燃烧排放\n" + +// "2.是否涉及过程排放\n" + +// "3.是否涉及物料平衡\n" + +// "4.是否涉及斜率法\n" + +// "5.是否涉及过电压法\n" +// "6.是否有连续排放测量系统(CEMS)\n" + + "7.各生产过程中原材料/燃料的分配" + ) + private List processAllocationList; + + + + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonDirectDTO.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonDirectDTO.java index ebac710..9b45d26 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonDirectDTO.java +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonDirectDTO.java @@ -1,10 +1,12 @@ package com.thing.cbam.directCarbon.dto; +import com.thing.cbam.directCarbon.entity.CbamPerfluorinatedCarbonEntity; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.io.Serial; import java.io.Serializable; +import java.util.List; /** * 直接排放量B-Excel @@ -71,17 +73,22 @@ public class CbamCarbonDirectDTO implements Serializable { private String globalWarmingId; @Schema(description = "全球变暖潜势") private String globalWarming; - @Schema(description = "关联cbam_industry_information的主键id") + @Schema(description = "关联cbam_industry_info的主键id") private Long industryId; @Schema(description = "类型:\n" + "1.是否涉及燃烧排放\n" + "2.是否涉及过程排放\n" + "3.是否涉及物料平衡\n" + - "4.是否有连续排放测量系统(CEMS)") +// "4.是否涉及斜率法\n" + +// "5.是否涉及过电压法\n" + + "6.是否有连续排放测量系统(CEMS)\n" + + "7.各生产过程中原材料/燃料的分配") private Integer type; private Long sort; @Schema(description = "生产过程分配量") private String processAllocation; + @Schema(description = "铝制品:6:倾斜法 7电压法 集合") + private List perfluorinatedCarbonDTOList; } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamPerfluorinatedCarbonDTO.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamPerfluorinatedCarbonDTO.java index 33bd600..d97e02f 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamPerfluorinatedCarbonDTO.java +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamPerfluorinatedCarbonDTO.java @@ -14,7 +14,7 @@ import java.io.Serializable; * @since 3.0 2024-12-03 */ @Data -@Schema(description = "全氟化碳PFC排放") +@Schema(description = "全氟化碳PFC排放-铝制品") public class CbamPerfluorinatedCarbonDTO implements Serializable { @Serial private static final long serialVersionUID = 1L; @@ -47,11 +47,12 @@ public class CbamPerfluorinatedCarbonDTO implements Serializable { private String globalWarmingSfht; @Schema(description = "全球变暖潜势(F(六氟乙烷,CzFe))") private String globalWarmingSfyw; + @Schema(description = "收集评率") private String collectRate; @Schema(description = "关联cbam_industry_info的主键id") private Long industryId; - @Schema(description = "类型:6:倾斜法 7电压法") - private String type; + @Schema(description = "类型:4:倾斜法 5 电压法") + private Integer type; @Schema(description = "排序") private Long sort; @Schema(description = "B: AEO") diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamProcessAllocationDTO.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamProcessAllocationDTO.java index de52162..22256da 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamProcessAllocationDTO.java +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamProcessAllocationDTO.java @@ -23,13 +23,15 @@ public class CbamProcessAllocationDTO implements Serializable { private Long id; @Schema(description = "排放源名称") private String name; - @Schema(description = "排放源类型:1 和 2") - private Integer type; @Schema(description = "关联cbam_industry_info的主键id") private Long industryId; @Schema(description = "关联cbam_process_material的id") private Long prodId; + @Schema(description = "关联cbam_carbon_direct的id") + private Long directId; @Schema(description = "生产过程分配量") private String processAllocation; + @Schema(description = "排序") + private Long sort; } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamPerfluorinatedCarbonEntity.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamPerfluorinatedCarbonEntity.java index 7c1641d..38ae13c 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamPerfluorinatedCarbonEntity.java +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamPerfluorinatedCarbonEntity.java @@ -91,7 +91,7 @@ public class CbamPerfluorinatedCarbonEntity implements Serializable { /** * 类型:6:倾斜法 7电压法 */ - private String type; + private Integer type; /** * 排序 */ diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamProcessAllocationEntity.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamProcessAllocationEntity.java index 9209fe9..1ac37b6 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamProcessAllocationEntity.java +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamProcessAllocationEntity.java @@ -3,7 +3,6 @@ package com.thing.cbam.directCarbon.entity; import com.mybatisflex.annotation.Id; import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.Table; - import com.mybatisflex.core.keygen.KeyGenerators; import lombok.Data; import lombok.EqualsAndHashCode; @@ -35,20 +34,30 @@ public class CbamProcessAllocationEntity implements Serializable { * 排放源名称 */ private String name; - /** - * 排放源类型:1 和 2 - */ - private Integer type; + /** * 关联cbam_industry_info的主键id */ private Long industryId; + /** * 关联cbam_process_material的id */ private Long prodId; + + /** + * 关联cbam_carbon_direct的id + */ + private Long directId; + /** * 生产过程分配量 */ private String processAllocation; + + + /** + * 排序 + */ + private Long sort; } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonDirectService.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonDirectService.java index a958a15..ddfbf5f 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonDirectService.java +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonDirectService.java @@ -1,9 +1,9 @@ package com.thing.cbam.directCarbon.service; +import com.thing.cbam.directCarbon.dto.CbamCarbonDirectContextDTO; import com.thing.cbam.directCarbon.dto.CbamCarbonDirectDTO; import com.thing.cbam.directCarbon.entity.CbamCarbonDirectEntity; import com.thing.common.orm.service.IBaseService; -import org.springframework.web.bind.annotation.RequestBody; import java.math.BigDecimal; import java.util.List; @@ -17,9 +17,11 @@ import java.util.Map; */ public interface CbamCarbonDirectService extends IBaseService { - List listByIndustryId(Long industryId); + List batchSaveOrUpdate(List carbonDirectDTOList); + + CbamCarbonDirectContextDTO batchSaveOrUpdateCarbonDirect(CbamCarbonDirectContextDTO cbamCarbonDirectContextDTO); - void saveList(List carbonDirectDTOList); + List listByIndustryId(Long industryId); void batchUpdateList(List carbonDirectDTOList); diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamPerfluorinatedCarbonService.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamPerfluorinatedCarbonService.java index 14203c9..f617428 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamPerfluorinatedCarbonService.java +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamPerfluorinatedCarbonService.java @@ -1,8 +1,11 @@ package com.thing.cbam.directCarbon.service; +import com.thing.cbam.directCarbon.dto.CbamPerfluorinatedCarbonDTO; import com.thing.cbam.directCarbon.entity.CbamPerfluorinatedCarbonEntity; import com.thing.common.orm.service.IBaseService; +import java.util.List; + /** * 全氟化碳PFC排放 * @@ -11,4 +14,6 @@ import com.thing.common.orm.service.IBaseService; */ public interface CbamPerfluorinatedCarbonService extends IBaseService { + List batchSaveOrUpdate(List list); + } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamProcessAllocationService.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamProcessAllocationService.java index 45e5fd9..1f2e469 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamProcessAllocationService.java +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamProcessAllocationService.java @@ -1,8 +1,11 @@ package com.thing.cbam.directCarbon.service; +import com.thing.cbam.directCarbon.dto.CbamProcessAllocationDTO; import com.thing.cbam.directCarbon.entity.CbamProcessAllocationEntity; import com.thing.common.orm.service.IBaseService; +import java.util.List; + /** * 生产过程分配量 * @@ -11,4 +14,6 @@ import com.thing.common.orm.service.IBaseService; */ public interface CbamProcessAllocationService extends IBaseService { + List batchSaveOrUpdate(List list); + } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamCarbonDirectServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamCarbonDirectServiceImpl.java index 6a29946..629fd5c 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamCarbonDirectServiceImpl.java +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamCarbonDirectServiceImpl.java @@ -1,28 +1,28 @@ package com.thing.cbam.directCarbon.service.impl; import com.mybatisflex.core.query.QueryWrapper; -import com.thing.cbam.baesInfoExcel.service.CbamProcessMaterialService; import com.thing.cbam.dict.entity.CbamFuelDictEntity; import com.thing.cbam.dict.service.CbamFuelDictService; +import com.thing.cbam.directCarbon.dto.CbamCarbonDirectContextDTO; import com.thing.cbam.directCarbon.dto.CbamCarbonDirectDTO; +import com.thing.cbam.directCarbon.dto.CbamPerfluorinatedCarbonDTO; +import com.thing.cbam.directCarbon.dto.CbamProcessAllocationDTO; import com.thing.cbam.directCarbon.entity.CbamCarbonDirectEntity; import com.thing.cbam.directCarbon.entity.CbamProcessAllocationEntity; import com.thing.cbam.directCarbon.mapper.CbamCarbonDirectMapper; import com.thing.cbam.directCarbon.service.CbamCarbonDirectService; +import com.thing.cbam.directCarbon.service.CbamPerfluorinatedCarbonService; import com.thing.cbam.directCarbon.service.CbamProcessAllocationService; import com.thing.cbam.directCarbon.util.BurningDischargeUtil; import com.thing.common.core.utils.ConvertUtils; import com.thing.common.orm.service.impl.BaseServiceImpl; import lombok.RequiredArgsConstructor; -import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; +import java.util.stream.Collectors; /** * 直接排放量B-Excel @@ -36,6 +36,7 @@ public class CbamCarbonDirectServiceImpl extends BaseServiceImpl carbonDirectDTOList) { - //插入 是否涉及燃烧排放 && 是否涉及过程排放 && 是否涉及物料平衡 && 是否有连续排放测量系统(CEMS),即排除type=5的类型 - List list = carbonDirectDTOList.stream().filter(carbonDirectDTO -> !Objects.equals(carbonDirectDTO.getType(), 5)).toList(); - List cbamCarbonDirectEntities = ConvertUtils.sourceToTarget(list, CbamCarbonDirectEntity.class); - mapper.insertBatch(cbamCarbonDirectEntities); - // type=5的类型 单独 更新生产过程中的分配量 - List fiveList = carbonDirectDTOList.stream().filter(carbonDirectDTO -> Objects.equals(carbonDirectDTO.getType(), 5)).toList(); - List cbamProcessAllocationList = fiveList.stream().map(f -> { - CbamProcessAllocationEntity cbamProcessAllocationEntity = new CbamProcessAllocationEntity(); - cbamProcessAllocationEntity.setName(f.getName()); - cbamProcessAllocationEntity.setType(f.getType()); - cbamProcessAllocationEntity.setIndustryId(f.getIndustryId()); - cbamProcessAllocationEntity.setProcessAllocation(f.getProcessAllocation()); - // 根据排放源名字,排放源类型和顺序获取id - cbamCarbonDirectEntities.stream() - .filter(cbamCarbonDirectEntity -> - StringUtils.equals(cbamCarbonDirectEntity.getName(), f.getName()) - && Objects.equals(cbamCarbonDirectEntity.getType(), f.getType()) - && Objects.equals(cbamCarbonDirectEntity.getSort(), f.getSort()) - ) - .findFirst() - .ifPresent(cbamCarbonDirectEntity -> { - cbamProcessAllocationEntity.setProdId(cbamCarbonDirectEntity.getId()); - }); - return cbamProcessAllocationEntity; - }).toList(); - cbamProcessAllocationService.saveBatch(cbamProcessAllocationList); + public List batchSaveOrUpdate(List carbonDirectDTOList) { + List resList = new ArrayList<>(); + //根据type分组 + Map> carbonDirectMapList = carbonDirectDTOList.stream().collect(Collectors.groupingBy(CbamCarbonDirectDTO::getType)); + for (Map.Entry> entries : carbonDirectMapList.entrySet()) { + Integer key = entries.getKey(); + if(Objects.equals(key,1) || Objects.equals(key,2) || Objects.equals(key,3)|| Objects.equals(key,6)|| Objects.equals(key,7)){ + List values = entries.getValue(); + List industryIds = values.stream().map(CbamCarbonDirectDTO::getIndustryId).toList(); + //先删除 + mapper.deleteByQuery(QueryWrapper.create() + .in(CbamCarbonDirectEntity::getIndustryId, industryIds) + .eq(CbamCarbonDirectEntity::getType, key)); + List cbamCarbonDirectEntities = ConvertUtils.sourceToTarget(values, CbamCarbonDirectEntity.class); + mapper.insertBatch(cbamCarbonDirectEntities); + resList.addAll(ConvertUtils.sourceToTarget(cbamCarbonDirectEntities, CbamCarbonDirectDTO.class)); + } + } + return resList; } + @Override + public CbamCarbonDirectContextDTO batchSaveOrUpdateCarbonDirect(CbamCarbonDirectContextDTO cbamCarbonDirectContextDTO) { + CbamCarbonDirectContextDTO resDTO = new CbamCarbonDirectContextDTO(); + //处理直接碳排数据,类型是1、2、3、6 + List cbamCarbonDirectDTOS = batchSaveOrUpdate(cbamCarbonDirectContextDTO.getCarbonDirectList()); + resDTO.setCarbonDirectList(cbamCarbonDirectDTOS); + //处理直接碳排数据,类型是4、5 + List cbamPerfluorinatedCarbonDTOS = cbamPerfluorinatedCarbonService.batchSaveOrUpdate(cbamCarbonDirectContextDTO.getPerfluorinatedCarbonList()); + resDTO.setPerfluorinatedCarbonList(cbamPerfluorinatedCarbonDTOS); + //处理直接碳排数据,类型是7 + List cbamProcessAllocationDTOS = cbamProcessAllocationService.batchSaveOrUpdate(cbamCarbonDirectContextDTO.getProcessAllocationList()); + resDTO.setProcessAllocationList(cbamProcessAllocationDTOS); + return resDTO; + } + + @Transactional(rollbackFor = Exception.class) @Override public void batchUpdateList(List carbonDirectDTOList) { @@ -93,7 +102,7 @@ public class CbamCarbonDirectServiceImpl extends BaseServiceImpl implements CbamPerfluorinatedCarbonService { + private final CbamIndustryService cbamIndustryService; + @Override public QueryWrapper getWrapper(Map params){ QueryWrapper wrapper = new QueryWrapper(); @@ -25,4 +38,54 @@ public class CbamPerfluorinatedCarbonServiceImpl extends BaseServiceImpl batchSaveOrUpdate(List list) { + //只有铝制品行业有以下处理 + // type=4,5 的类型 单独 更新生产过程中的分配量 + List industryIds = list.stream().map(CbamPerfluorinatedCarbonDTO::getIndustryId).distinct().toList(); + //先删除 + mapper.deleteByQuery(QueryWrapper.create().in(CbamPerfluorinatedCarbonEntity::getIndustryId, industryIds)); + //再新增 + List perfluorinatedCarbonEntities = ConvertUtils.sourceToTarget(list, CbamPerfluorinatedCarbonEntity.class); + mapper.insertBatch(perfluorinatedCarbonEntities); + return ConvertUtils.sourceToTarget(perfluorinatedCarbonEntities, CbamPerfluorinatedCarbonDTO.class); +// if(CollectionUtils.isEmpty(list)){ +// throw new RuntimeException("铝制品行业相关《倾斜法,电压法》没有相关数据"); +// } +// //1.获取相关industryId +// Long industryId = list.get(0).getIndustryId(); +// CbamIndustryEntity cbamIndustryEntity = cbamIndustryService.getById(industryId); +// if(!StringUtils.equals(cbamIndustryEntity.getIndustryDict(), "铝行业") && !Objects.equals(cbamIndustryEntity.getIndustryDictId(), 11002L)){ +// throw new RuntimeException("非铝制品行业相关《倾斜法,电压法》行业,无需添加"); +// } +// //1.1获取id没有值的参数,即新增数据 +// List newList = list.stream().filter(carbonDirectDTO -> Objects.isNull(carbonDirectDTO.getId())).toList(); +// if(CollectionUtils.isNotEmpty(newList)){ +// mapper.insertBatch(ConvertUtils.sourceToTarget(newList, CbamPerfluorinatedCarbonEntity.class)); +// } +// //1.2 获取id有值的参数,即更新数据 +// List existList = list.stream().filter(carbonDirectDTO -> Objects.isNull(carbonDirectDTO.getId())).toList(); +// if(CollectionUtils.isEmpty(existList)){ +// return; +// } +// //2.根据industryId查询所有数据 +// List perfluorinatedCarbonEntities = +// mapper.selectListByQuery(QueryWrapper.create().eq(CbamPerfluorinatedCarbonEntity::getIndustryId, industryId)); +// //3.获取参数中需要更新的id +// List updateIds = existList.stream().map(CbamPerfluorinatedCarbonDTO::getId).toList(); +// //4.排除不需要更新的id集合,并且删除相关信息 +// if(CollectionUtils.isNotEmpty(perfluorinatedCarbonEntities)){ +// //获取不在数据库的id集合 +// List unUpdatePerfluorinatedEntities +// = perfluorinatedCarbonEntities.stream().filter(carbonDirectEntity -> !updateIds.contains(carbonDirectEntity.getId())).toList(); +// if(CollectionUtils.isNotEmpty(unUpdatePerfluorinatedEntities)){ +// mapper.deleteBatchByIds(unUpdatePerfluorinatedEntities.stream().map(CbamPerfluorinatedCarbonEntity::getId).toList()); +// } +// //获取在数据库的记录,并进行更新 +// List existPerfluorinatedCarbons = existList.stream().filter(s -> updateIds.contains(s.getId())).toList(); +// if(CollectionUtils.isNotEmpty(existPerfluorinatedCarbons)){ +// existPerfluorinatedCarbons.forEach(carbonDirectDTO -> mapper.update(ConvertUtils.sourceToTarget(carbonDirectDTO, CbamPerfluorinatedCarbonEntity.class))); +// } +// } + } } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamProcessAllocationServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamProcessAllocationServiceImpl.java index 8fe5ef4..2438d43 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamProcessAllocationServiceImpl.java +++ b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamProcessAllocationServiceImpl.java @@ -1,12 +1,15 @@ package com.thing.cbam.directCarbon.service.impl; import com.mybatisflex.core.query.QueryWrapper; +import com.thing.cbam.directCarbon.dto.CbamProcessAllocationDTO; import com.thing.cbam.directCarbon.entity.CbamProcessAllocationEntity; import com.thing.cbam.directCarbon.mapper.CbamProcessAllocationMapper; import com.thing.cbam.directCarbon.service.CbamProcessAllocationService; +import com.thing.common.core.utils.ConvertUtils; import com.thing.common.orm.service.impl.BaseServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Map; /** @@ -24,5 +27,19 @@ public class CbamProcessAllocationServiceImpl extends BaseServiceImpl batchSaveOrUpdate(List list) { + //先删除 + List industryIds = list.stream().map(CbamProcessAllocationDTO::getIndustryId).toList(); + List prodIds = list.stream().map(CbamProcessAllocationDTO::getProdId).toList(); + List directId = list.stream().map(CbamProcessAllocationDTO::getDirectId).toList(); + mapper.deleteByQuery(new QueryWrapper() + .in(CbamProcessAllocationEntity::getIndustryId, industryIds) + .in(CbamProcessAllocationEntity::getProdId, prodIds) + .in(CbamProcessAllocationEntity::getDirectId, directId)); + //再新增 + List cbamProcessAllocationEntities = ConvertUtils.sourceToTarget(list, CbamProcessAllocationEntity.class); + mapper.insertBatch(cbamProcessAllocationEntities); + return ConvertUtils.sourceToTarget(cbamProcessAllocationEntities, CbamProcessAllocationDTO.class); + } } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/controller/CbamCarbonIndirectEmissionsController.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/controller/CbamCarbonIndirectEmissionsController.java index ab183d9..3dc2e7a 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/controller/CbamCarbonIndirectEmissionsController.java +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/controller/CbamCarbonIndirectEmissionsController.java @@ -26,6 +26,7 @@ import java.util.Map; @Tag(name = "间接排放量") @RequiredArgsConstructor public class CbamCarbonIndirectEmissionsController { + private final CbamCarbonIndirectEmissionsService cbamCarbonIndirectEmissionsService; @GetMapping("page") diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductElectricityController.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/controller/CbamPowerSummaryFuelController.java similarity index 58% rename from modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductElectricityController.java rename to modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/controller/CbamPowerSummaryFuelController.java index 323fdc9..fa665f9 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductElectricityController.java +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/controller/CbamPowerSummaryFuelController.java @@ -1,7 +1,7 @@ -package com.thing.cbam.production.controller; +package com.thing.cbam.indirectCarbon.controller; -import com.thing.cbam.production.dto.CbamProductElectricityDTO; -import com.thing.cbam.production.service.CbamProductElectricityService; +import com.thing.cbam.indirectCarbon.dto.CbamPowerSummaryFuelDTO; +import com.thing.cbam.indirectCarbon.service.CbamPowerSummaryFuelService; import com.thing.common.core.annotation.LogOperation; import com.thing.common.core.constants.Constant; import com.thing.common.core.validator.AssertUtils; @@ -22,18 +22,18 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; /** -* 输出的电力 +* 排放量汇总与数据质量信息 与 燃料平衡 * * @author xc -* @since 3.0 2024-11-28 +* @since 3.0 2024-12-05 */ @RestController -@RequestMapping("v2/输出的电力/cbamproductelectricity") -@Tag(name="输出的电力") +@RequestMapping("v2/cbam/powersummary") +@Tag(name="排放量汇总与数据质量信息 与 燃料平衡") @RequiredArgsConstructor -public class CbamProductElectricityController { +public class CbamPowerSummaryFuelController { - private final CbamProductElectricityService cbamProductElectricityService; + private final CbamPowerSummaryFuelService cbamPowerSummaryFuelService; @GetMapping("page") @Operation(summary="分页") @@ -43,35 +43,35 @@ public class CbamProductElectricityController { @Parameter(name = Constant.ORDER_FIELD, description = "排序字段") , @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)") }) - public Result> page(@Parameter(hidden = true) @RequestParam Map params){ - PageData page = cbamProductElectricityService.getPageData(params, CbamProductElectricityDTO.class); - return new Result>().ok(page); + public Result> page(@Parameter(hidden = true) @RequestParam Map params){ + PageData page = cbamPowerSummaryFuelService.getPageData(params, CbamPowerSummaryFuelDTO.class); + return new Result>().ok(page); } @GetMapping("{id}") @Operation(summary="信息") - public Result get(@PathVariable("id") Long id){ - CbamProductElectricityDTO data = cbamProductElectricityService.getByIdAs(id, CbamProductElectricityDTO.class); - return new Result().ok(data); + public Result get(@PathVariable("id") Long id){ + CbamPowerSummaryFuelDTO data = cbamPowerSummaryFuelService.getByIdAs(id, CbamPowerSummaryFuelDTO.class); + return new Result().ok(data); } @PostMapping @Operation(summary="保存") @LogOperation("保存") - public Result save(@RequestBody CbamProductElectricityDTO dto){ + public Result save(@RequestBody CbamPowerSummaryFuelDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - cbamProductElectricityService.saveDto(dto); + cbamPowerSummaryFuelService.saveDto(dto); return new Result<>(); } @PutMapping @Operation(summary="修改") @LogOperation("修改") - public Result update(@RequestBody CbamProductElectricityDTO dto){ + public Result update(@RequestBody CbamPowerSummaryFuelDTO dto){ //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - cbamProductElectricityService.updateDto(dto); + cbamPowerSummaryFuelService.updateDto(dto); return new Result<>(); } @@ -81,7 +81,7 @@ public class CbamProductElectricityController { public Result delete(@RequestBody Long[] ids){ //效验数据 AssertUtils.isArrayEmpty(ids, "id"); - cbamProductElectricityService.batchDelete(ids); + cbamPowerSummaryFuelService.batchDelete(ids); return new Result<>(); } @@ -90,8 +90,8 @@ public class CbamProductElectricityController { *@Operation(summary="导出") *@LogOperation("导出") *public void export(@Parameter(hidden = true) @RequestParam Map params, HttpServletResponse response) throws Exception { - * List list = cbamProductElectricityService.listAs(params, CbamProductElectricityDTO.class); - * //ExcelUtils.exportExcelToTarget(response, null, "输出的电力", list, CbamProductElectricityExcel.class); + * List list = cbamPowerSummaryFuelService.listAs(params, CbamPowerSummaryFuelDTO.class); + * //ExcelUtils.exportExcelToTarget(response, null, "排放量汇总与数据质量信息 与 燃料平衡", list, CbamPowerSummaryFuelExcel.class); *} */ diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/dto/CbamCarbonIndirectEmissionsDTO.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/dto/CbamCarbonIndirectEmissionsDTO.java index dc12d13..b12973d 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/dto/CbamCarbonIndirectEmissionsDTO.java +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/dto/CbamCarbonIndirectEmissionsDTO.java @@ -20,10 +20,15 @@ public class CbamCarbonIndirectEmissionsDTO implements Serializable { private static final long serialVersionUID = 1L; private Long id; - @Schema(description = "用电类型") + @Schema(description = "用电类型:\n" + + "0 - 总计\n" + + "1 - 国家电网电量\n" + + "2.第三方发电厂电量\n" + + "3.绿色电力(自建绿电)\n" + + "4.生产烟气/余热发电") private String electricityType; @Schema(description = "耗电量") - private String powerConsum; + private String powerConsume; @Schema(description = "电力碳排放因子") private String electricityFactor; @Schema(description = "关联cbam_industry_information的主键id") diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/dto/CbamCarbonPowerProgressAllocationDTO.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/dto/CbamCarbonPowerProgressAllocationDTO.java index bf83b81..015663b 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/dto/CbamCarbonPowerProgressAllocationDTO.java +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/dto/CbamCarbonPowerProgressAllocationDTO.java @@ -1,7 +1,6 @@ package com.thing.cbam.indirectCarbon.dto; import io.swagger.v3.oas.annotations.media.Schema; - import lombok.Data; import java.io.Serial; @@ -19,24 +18,35 @@ public class CbamCarbonPowerProgressAllocationDTO implements Serializable { @Serial private static final long serialVersionUID = 1L; + @Schema(description = "主键") private Long id; + @Schema(description = "生产过程设备总功率") private String powerEquip; + @Schema(description = "设备平均运行时间") private String averEquip; + + @Schema(description = "耗电量") + private String powerConsume; + + @Schema(description = "电力排放因子") + private String electricityEmissionFactor; + @Schema(description = "电力排放因子的来源") - private String sourceElect; - @Schema(description = "有关数据质量的一般信息") - private String qualityInfo; - @Schema(description = "质量保证信息") - private String assurInfo; - @Schema(description = "电力生产燃料") - private String produFuel; - @Schema(description = "非CBAM商品生产的直接燃料 ") - private String nocbamFuel; - @Schema(description = "CBAM商品生产的直接燃料 ") - private String cbamFuel; - @Schema(description = "关联cbam_industry_information的主键id") + private String electricityEmissionSource; + + @Schema(description = "关联cbam_industry_info的主键id") private Long industryId; + @Schema(description = "关联cbam_process_material的主键id") + private Long processId; + + @Schema(description = "生产过程名称") + private String processName; + + @Schema(description = "排序") + private Long sort; + + } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/dto/CbamPowerSummaryFuelDTO.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/dto/CbamPowerSummaryFuelDTO.java new file mode 100644 index 0000000..7fd83a4 --- /dev/null +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/dto/CbamPowerSummaryFuelDTO.java @@ -0,0 +1,44 @@ +package com.thing.cbam.indirectCarbon.dto; + +import io.swagger.v3.oas.annotations.media.Schema; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** +* 排放量汇总与数据质量信息 与 燃料平衡 +* +* @author xc +* @since 3.0 2024-12-05 +*/ +@Data +@Schema(description = "排放量汇总与数据质量信息 与 燃料平衡") +public class CbamPowerSummaryFuelDTO implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + private Long id; + @Schema(description = "有关数据质量的一般信息") + private String qualityInfo; + @Schema(description = "质量保证信息") + private String assurInfo; + @Schema(description = "电力生产燃料") + private String produFuel; + @Schema(description = "非CBAM商品生产的直接燃料 ") + private String nocbamFuel; + @Schema(description = "CBAM商品生产的直接燃料 ") + private String cbamFuel; + @Schema(description = "关联cbam_industry_information的主键id") + private Long industryId; + @Schema(description = "使用默认值的理由(如果适用)") + private String qualityReason; + @Schema(description = "单位") + private String unit; + @Schema(description = "总燃料投入") + private String totalFuel; + @Schema(description = "其他") + private String otherFuel; + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/entity/CbamCarbonIndirectEmissionsEntity.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/entity/CbamCarbonIndirectEmissionsEntity.java index 0ff18ae..7717f7f 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/entity/CbamCarbonIndirectEmissionsEntity.java +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/entity/CbamCarbonIndirectEmissionsEntity.java @@ -1,8 +1,10 @@ package com.thing.cbam.indirectCarbon.entity; import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.Table; +import com.mybatisflex.core.keygen.KeyGenerators; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -24,22 +26,31 @@ public class CbamCarbonIndirectEmissionsEntity implements Serializable { @Serial private static final long serialVersionUID = 1L; - @Id + @Id(keyType = KeyType.Generator,value = KeyGenerators.snowFlakeId) private Long id; /** - * 用电类型 + * 用电类型: + * 0 - 总计 + * 1 - 国家电网电量 + * 2.第三方发电厂电量 + * 3.绿色电力(自建绿电) + * 4.生产烟气/余热发电 */ private String electricityType; /** * 耗电量 */ - private String powerConsum; + private String powerConsume; /** * 电力碳排放因子 */ - private String electricityFactor; + private String electricityFactor="0.5568"; /** - * 关联cbam_industry_information的主键id + * 关联cbam_industry_info的主键id */ private Long industryId; + /** + * 排序 + */ + private Long sort; } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/entity/CbamCarbonPowerProgressAllocationEntity.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/entity/CbamCarbonPowerProgressAllocationEntity.java index 904308f..55bc725 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/entity/CbamCarbonPowerProgressAllocationEntity.java +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/entity/CbamCarbonPowerProgressAllocationEntity.java @@ -1,8 +1,10 @@ package com.thing.cbam.indirectCarbon.entity; import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.Table; +import com.mybatisflex.core.keygen.KeyGenerators; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -19,12 +21,12 @@ import java.io.Serializable; @Data @Accessors(chain = true) @EqualsAndHashCode(callSuper=false) -@Table("cbam_carbon_power_progress_allocation") +@Table("cbam_power_progress_allocation") public class CbamCarbonPowerProgressAllocationEntity implements Serializable { @Serial private static final long serialVersionUID = 1L; - @Id + @Id(keyType = KeyType.Generator,value = KeyGenerators.snowFlakeId) private Long id; /** * 生产过程设备总功率 @@ -35,31 +37,36 @@ public class CbamCarbonPowerProgressAllocationEntity implements Serializable { */ private String averEquip; /** - * 电力排放因子的来源 + * 耗电量 */ - private String sourceElect; + private String powerConsume; /** - * 有关数据质量的一般信息 + * 电力排放因子 */ - private String qualityInfo; + private String electricityEmissionFactor; /** - * 质量保证信息 + * 电力排放因子的来源 */ - private String assurInfo; + private String electricityEmissionSource; + /** - * 电力生产燃料 + * 关联cbam_industry_info的主键id */ - private String produFuel; + private Long industryId; /** - * 非CBAM商品生产的直接燃料 + * 关联cbam_process_material的主键id */ - private String nocbamFuel; + private Long processId; /** - * CBAM商品生产的直接燃料 + * 生产过程名称 */ - private String cbamFuel; + private String processName; + /** - * 关联cbam_industry_information的主键id + * 排序 */ - private Long industryId; + private Long sort; + + + } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/entity/CbamPowerSummaryFuelEntity.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/entity/CbamPowerSummaryFuelEntity.java new file mode 100644 index 0000000..381134f --- /dev/null +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/entity/CbamPowerSummaryFuelEntity.java @@ -0,0 +1,71 @@ +package com.thing.cbam.indirectCarbon.entity; + +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; + +import com.mybatisflex.core.keygen.KeyGenerators; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 排放量汇总与数据质量信息 与 燃料平衡 + * + * @author xc + * @since 3.0 2024-12-05 + */ +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper=false) +@Table("cbam_power_summary_fuel") +public class CbamPowerSummaryFuelEntity implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Generator,value = KeyGenerators.snowFlakeId) + private Long id; + /** + * 有关数据质量的一般信息 + */ + private String qualityInfo; + /** + * 质量保证信息 + */ + private String assurInfo; + /** + * 电力生产燃料 + */ + private String produFuel; + /** + * 非CBAM商品生产的直接燃料 + */ + private String nocbamFuel; + /** + * CBAM商品生产的直接燃料 + */ + private String cbamFuel; + /** + * 关联cbam_industry_information的主键id + */ + private Long industryId; + /** + * 使用默认值的理由(如果适用) + */ + private String qualityReason; + /** + * 单位 + */ + private String unit; + /** + * 总燃料投入 + */ + private String totalFuel; + /** + * 其他 + */ + private String otherFuel; +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/mapper/CbamPowerSummaryFuelMapper.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/mapper/CbamPowerSummaryFuelMapper.java new file mode 100644 index 0000000..a21e2ff --- /dev/null +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/mapper/CbamPowerSummaryFuelMapper.java @@ -0,0 +1,16 @@ +package com.thing.cbam.indirectCarbon.mapper; + +import com.thing.cbam.indirectCarbon.entity.CbamPowerSummaryFuelEntity; +import com.thing.common.orm.mapper.PowerBaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** +* 排放量汇总与数据质量信息 与 燃料平衡 +* +* @author xc +* @since 3.0 2024-12-05 +*/ +@Mapper +public interface CbamPowerSummaryFuelMapper extends PowerBaseMapper { + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/CbamCarbonIndirectEmissionsService.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/CbamCarbonIndirectEmissionsService.java index 9b965d8..e961223 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/CbamCarbonIndirectEmissionsService.java +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/CbamCarbonIndirectEmissionsService.java @@ -1,7 +1,14 @@ package com.thing.cbam.indirectCarbon.service; +import com.thing.cbam.indirectCarbon.dto.CbamCarbonIndirectEmissionsDTO; import com.thing.cbam.indirectCarbon.entity.CbamCarbonIndirectEmissionsEntity; import com.thing.common.orm.service.IBaseService; +import java.util.List; + public interface CbamCarbonIndirectEmissionsService extends IBaseService { + + + List batchSaveOrUpdate(List cbamCarbonIndirectEmissionsDTOList); + } diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/CbamCarbonPowerProgressAllocationService.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/CbamCarbonPowerProgressAllocationService.java index a4a6ec8..06de4f8 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/CbamCarbonPowerProgressAllocationService.java +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/CbamCarbonPowerProgressAllocationService.java @@ -1,8 +1,11 @@ package com.thing.cbam.indirectCarbon.service; +import com.thing.cbam.indirectCarbon.dto.CbamCarbonPowerProgressAllocationDTO; import com.thing.cbam.indirectCarbon.entity.CbamCarbonPowerProgressAllocationEntity; import com.thing.common.orm.service.IBaseService; +import java.util.List; + /** * 耗电量分配 @@ -12,4 +15,6 @@ import com.thing.common.orm.service.IBaseService; */ public interface CbamCarbonPowerProgressAllocationService extends IBaseService { + List batchSaveOrUpdate(List carbonPowerProgressAllocationDTOS); + } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/CbamPowerSummaryFuelService.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/CbamPowerSummaryFuelService.java new file mode 100644 index 0000000..0430889 --- /dev/null +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/CbamPowerSummaryFuelService.java @@ -0,0 +1,14 @@ +package com.thing.cbam.indirectCarbon.service; + +import com.thing.cbam.indirectCarbon.entity.CbamPowerSummaryFuelEntity; +import com.thing.common.orm.service.IBaseService; + +/** + * 排放量汇总与数据质量信息 与 燃料平衡 + * + * @author xc + * @since 3.0 2024-12-05 + */ +public interface CbamPowerSummaryFuelService extends IBaseService { + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/Impl/CbamCarbonIndirectEmissionsServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/Impl/CbamCarbonIndirectEmissionsServiceImpl.java index 16430d9..0b12f26 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/Impl/CbamCarbonIndirectEmissionsServiceImpl.java +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/Impl/CbamCarbonIndirectEmissionsServiceImpl.java @@ -1,12 +1,15 @@ package com.thing.cbam.indirectCarbon.service.Impl; import com.mybatisflex.core.query.QueryWrapper; +import com.thing.cbam.indirectCarbon.dto.CbamCarbonIndirectEmissionsDTO; import com.thing.cbam.indirectCarbon.entity.CbamCarbonIndirectEmissionsEntity; import com.thing.cbam.indirectCarbon.mapper.CbamCarbonIndirectEmissionsMapper; import com.thing.cbam.indirectCarbon.service.CbamCarbonIndirectEmissionsService; +import com.thing.common.core.utils.ConvertUtils; import com.thing.common.orm.service.impl.BaseServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Map; @Service @@ -16,4 +19,15 @@ public class CbamCarbonIndirectEmissionsServiceImpl extends BaseServiceImpl batchSaveOrUpdate(List indirectEmissionsDTOS) { + //先删除 + List industryIds = indirectEmissionsDTOS.stream().map(CbamCarbonIndirectEmissionsDTO::getIndustryId).toList(); + mapper.deleteByQuery(QueryWrapper.create().in(CbamCarbonIndirectEmissionsEntity::getIndustryId, industryIds)); + //再插入 + List insertList = ConvertUtils.sourceToTarget(indirectEmissionsDTOS, CbamCarbonIndirectEmissionsEntity.class); + mapper.insertBatch(insertList); + return ConvertUtils.sourceToTarget(insertList, CbamCarbonIndirectEmissionsDTO.class); + } } diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/Impl/CbamCarbonPowerProgressAllocationServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/Impl/CbamCarbonPowerProgressAllocationServiceImpl.java index 6a47c58..e8150f1 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/Impl/CbamCarbonPowerProgressAllocationServiceImpl.java +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/Impl/CbamCarbonPowerProgressAllocationServiceImpl.java @@ -1,13 +1,16 @@ package com.thing.cbam.indirectCarbon.service.Impl; import com.mybatisflex.core.query.QueryWrapper; +import com.thing.cbam.indirectCarbon.dto.CbamCarbonPowerProgressAllocationDTO; import com.thing.cbam.indirectCarbon.entity.CbamCarbonPowerProgressAllocationEntity; import com.thing.cbam.indirectCarbon.mapper.CbamCarbonPowerProgressAllocationMapper; import com.thing.cbam.indirectCarbon.service.CbamCarbonPowerProgressAllocationService; +import com.thing.common.core.utils.ConvertUtils; import com.thing.common.orm.service.impl.BaseServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Map; /** @@ -26,4 +29,17 @@ public class CbamCarbonPowerProgressAllocationServiceImpl extends BaseServiceImp } + @Override + public List batchSaveOrUpdate(List allocationDTOS) { + //先删除 + List industryIds = allocationDTOS.stream().map(CbamCarbonPowerProgressAllocationDTO::getIndustryId).toList(); + List processIds = allocationDTOS.stream().map(CbamCarbonPowerProgressAllocationDTO::getProcessId).toList(); + mapper.deleteByQuery(new QueryWrapper() + .in(CbamCarbonPowerProgressAllocationEntity::getIndustryId, industryIds) + .in(CbamCarbonPowerProgressAllocationEntity::getProcessId, processIds)); + //再插入 + List insertList = ConvertUtils.sourceToTarget(allocationDTOS, CbamCarbonPowerProgressAllocationEntity.class); + mapper.insertBatch(insertList); + return ConvertUtils.sourceToTarget(insertList, CbamCarbonPowerProgressAllocationDTO.class); + } } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/Impl/CbamPowerSummaryFuelServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/Impl/CbamPowerSummaryFuelServiceImpl.java new file mode 100644 index 0000000..0a50e48 --- /dev/null +++ b/modules/cbam/src/main/java/com/thing/cbam/indirectCarbon/service/Impl/CbamPowerSummaryFuelServiceImpl.java @@ -0,0 +1,28 @@ +package com.thing.cbam.indirectCarbon.service.Impl; + +import com.mybatisflex.core.query.QueryWrapper; +import com.thing.cbam.indirectCarbon.entity.CbamPowerSummaryFuelEntity; +import com.thing.cbam.indirectCarbon.mapper.CbamPowerSummaryFuelMapper; +import com.thing.cbam.indirectCarbon.service.CbamPowerSummaryFuelService; +import com.thing.common.orm.service.impl.BaseServiceImpl; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * 排放量汇总与数据质量信息 与 燃料平衡 + * + * @author xc + * @since 3.0 2024-12-05 + */ +@Service +public class CbamPowerSummaryFuelServiceImpl extends BaseServiceImpl implements CbamPowerSummaryFuelService { + + @Override + public QueryWrapper getWrapper(Map params){ + QueryWrapper wrapper = new QueryWrapper(); + return wrapper; + } + + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductAllocationController.java b/modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductAllocationController.java index c4cba64..d0c30ea 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductAllocationController.java +++ b/modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductAllocationController.java @@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Map; @RestController -@RequestMapping("v2/product/allocation") +@RequestMapping("v2/cbam/product/allocation") @Tag(name = "产品的分配") @RequiredArgsConstructor public class CbamProductAllocationController { diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductExhaustEmissionsController.java b/modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductExhaustEmissionsController.java deleted file mode 100644 index 178bbd5..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductExhaustEmissionsController.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.thing.cbam.production.controller; - -import com.thing.cbam.production.dto.CbamProductExhaustEmissionsDTO; -import com.thing.cbam.production.service.CbamProductExhaustEmissionsService; -import com.thing.common.core.annotation.LogOperation; -import com.thing.common.core.constants.Constant; -import com.thing.common.core.validator.AssertUtils; -import com.thing.common.core.validator.ValidatorUtils; -import com.thing.common.core.validator.group.AddGroup; -import com.thing.common.core.validator.group.DefaultGroup; -import com.thing.common.core.validator.group.UpdateGroup; -import com.thing.common.core.web.response.PageData; -import com.thing.common.core.web.response.Result; - - -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -/** -* 废气排放量 -* -* @author xc -* @since 3.0 2024-11-28 -*/ -@RestController -@RequestMapping("v2/废气排放量/cbamproductexhaustemissions") -@Tag(name="废气排放量") -@RequiredArgsConstructor -public class CbamProductExhaustEmissionsController { - - private final CbamProductExhaustEmissionsService cbamProductExhaustEmissionsService; - - @GetMapping("page") - @Operation(summary="分页") - @Parameters({ - @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true) , - @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true) , - @Parameter(name = Constant.ORDER_FIELD, description = "排序字段") , - @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)") - }) - public Result> page(@Parameter(hidden = true) @RequestParam Map params){ - PageData page = cbamProductExhaustEmissionsService.getPageData(params, CbamProductExhaustEmissionsDTO.class); - return new Result>().ok(page); - } - - @GetMapping("{id}") - @Operation(summary="信息") - public Result get(@PathVariable("id") Long id){ - CbamProductExhaustEmissionsDTO data = cbamProductExhaustEmissionsService.getByIdAs(id, CbamProductExhaustEmissionsDTO.class); - return new Result().ok(data); - } - - @PostMapping - @Operation(summary="保存") - @LogOperation("保存") - public Result save(@RequestBody CbamProductExhaustEmissionsDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - cbamProductExhaustEmissionsService.saveDto(dto); - return new Result<>(); - } - - @PutMapping - @Operation(summary="修改") - @LogOperation("修改") - public Result update(@RequestBody CbamProductExhaustEmissionsDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - cbamProductExhaustEmissionsService.updateDto(dto); - return new Result<>(); - } - - @DeleteMapping - @Operation(summary="删除") - @LogOperation("删除") - public Result delete(@RequestBody Long[] ids){ - //效验数据 - AssertUtils.isArrayEmpty(ids, "id"); - cbamProductExhaustEmissionsService.batchDelete(ids); - return new Result<>(); - } - - /** - *@GetMapping("export") - *@Operation(summary="导出") - *@LogOperation("导出") - *public void export(@Parameter(hidden = true) @RequestParam Map params, HttpServletResponse response) throws Exception { - * List list = cbamProductExhaustEmissionsService.listAs(params, CbamProductExhaustEmissionsDTO.class); - * //ExcelUtils.exportExcelToTarget(response, null, "废气排放量", list, CbamProductExhaustEmissionsExcel.class); - *} - */ - -} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductHeatEmissionsController.java b/modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductHeatEmissionsController.java deleted file mode 100644 index 0ddc822..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/controller/CbamProductHeatEmissionsController.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.thing.cbam.production.controller; - -import com.thing.cbam.production.dto.CbamProductHeatEmissionsDTO; -import com.thing.cbam.production.service.CbamProductHeatEmissionsService; -import com.thing.common.core.annotation.LogOperation; -import com.thing.common.core.constants.Constant; -import com.thing.common.core.validator.AssertUtils; -import com.thing.common.core.validator.ValidatorUtils; -import com.thing.common.core.validator.group.AddGroup; -import com.thing.common.core.validator.group.DefaultGroup; -import com.thing.common.core.validator.group.UpdateGroup; -import com.thing.common.core.web.response.PageData; -import com.thing.common.core.web.response.Result; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Parameters; -import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.*; - -import java.util.Map; - -@RestController -@RequestMapping("v2/product/heat") -@Tag(name = "发热量排放") -@RequiredArgsConstructor -public class CbamProductHeatEmissionsController { - private final CbamProductHeatEmissionsService cbamProductHeatEmissionsService; - @GetMapping("page") - @Operation(summary="分页") - @Parameters({ - @Parameter(name = Constant.PAGE, description = "当前页码,从1开始", required = true) , - @Parameter(name = Constant.LIMIT, description = "每页显示记录数", required = true) , - @Parameter(name = Constant.ORDER_FIELD, description = "排序字段") , - @Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)") - }) - public Result> page(@Parameter(hidden = true) @RequestParam Map params){ - PageData page = cbamProductHeatEmissionsService.getPageData(params, CbamProductHeatEmissionsDTO.class); - return new Result>().ok(page); - } - - @GetMapping("{id}") - @Operation(summary="信息") - public Result get(@PathVariable("id") Long id){ - CbamProductHeatEmissionsDTO data = cbamProductHeatEmissionsService.getByIdAs(id, CbamProductHeatEmissionsDTO.class); - return new Result().ok(data); - } - - @PostMapping - @Operation(summary="保存") - @LogOperation("保存") - public Result save(@RequestBody CbamProductHeatEmissionsDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); - cbamProductHeatEmissionsService.saveDto(dto); - return new Result<>(); - } - - @PutMapping - @Operation(summary="修改") - @LogOperation("修改") - public Result update(@RequestBody CbamProductHeatEmissionsDTO dto){ - //效验数据 - ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); - cbamProductHeatEmissionsService.updateDto(dto); - return new Result<>(); - } - - @DeleteMapping - @Operation(summary="删除") - @LogOperation("删除") - public Result delete(@RequestBody Long[] ids){ - //效验数据 - AssertUtils.isArrayEmpty(ids, "id"); - cbamProductHeatEmissionsService.batchDelete(ids); - return new Result<>(); - } - - /** - *@GetMapping("export") - *@Operation(summary="导出") - *@LogOperation("导出") - *public void export(@Parameter(hidden = true) @RequestParam Map params, HttpServletResponse response) throws Exception { - * List list = cbamCarbonBurnService.listAs(params, CbamCarbonBurnDTO.class); - * //ExcelUtils.exportExcelToTarget(response, null, "直接排放量", list, CbamCarbonBurnExcel.class); - *} - */ -} diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductAllocationDTO.java b/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductAllocationDTO.java index aa64fde..a0bc23f 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductAllocationDTO.java +++ b/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductAllocationDTO.java @@ -1,7 +1,6 @@ package com.thing.cbam.production.dto; import io.swagger.v3.oas.annotations.media.Schema; - import lombok.Data; import java.io.Serial; @@ -14,19 +13,43 @@ import java.io.Serializable; * @since 3.0 2024-11-28 */ @Data -@Schema(description = "产品的分配") +@Schema(description = "d表各生产过程中产品的分配,可测量的发热量排放量,废弃排放量,输出电力排放量") public class CbamProductAllocationDTO implements Serializable { @Serial private static final long serialVersionUID = 1L; private Long id; - @Schema(description = "消耗量t") - private String consum; + @Schema(description = "消耗量t:{} json格式,以产品名称(A表中校验了重名)为key,消耗量t为value") + private String consume; + @Schema(description = "产品名称|生产过程") + private String prodProcessName; + @Schema(description = "空白处的名称") + private String bankName; + @Schema(description = "单位") + private String unit; + @Schema(description = "输入量") + private String input_quantity; + @Schema(description = "输出量") + private String output_quantity; + @Schema(description = "排放量: 发热量排放量、废弃排放量、输出电力排放量") + private String emissions; + @Schema(description = "电力排放因子") + private String electricityEmissionFactor; @Schema(description = "欧盟出口量") private String exportVolume; @Schema(description = "非欧盟销售量") private String salesVolume; - @Schema(description = "关联cbam_industry_information的主键id") + @Schema(description = "剩余消耗量") + private String remainConsume; + @Schema(description = "总产量") + private String totalOutput; + @Schema(description = "关联cbam_industry_info的主键id") private Long industryId; + @Schema(description = "d表类型\n" + + "1.各生产过程中产品的分配\n" + + "2.可测量的发热量排放量\n" + + "3.废气排放量\n" + + "4.生产过程输出的电力\n") + private Integer type; } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductElectricityDTO.java b/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductElectricityDTO.java deleted file mode 100644 index 04fd984..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductElectricityDTO.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.thing.cbam.production.dto; - -import io.swagger.v3.oas.annotations.media.Schema; - -import lombok.Data; - -import java.io.Serial; -import java.io.Serializable; - -/** -* 输出的电力 -* -* @author xc -* @since 3.0 2024-11-28 -*/ -@Data -@Schema(description = "输出的电力") -public class CbamProductElectricityDTO implements Serializable { - @Serial - private static final long serialVersionUID = 1L; - - private Long id; - @Schema(description = "输出总量") - private String totalOutput; - @Schema(description = "电力排放因子") - private String electricityFactor; - @Schema(description = "关联cbam_industry_information的主键id") - private Long industryId; - -} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductExhaustEmissionsDTO.java b/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductExhaustEmissionsDTO.java deleted file mode 100644 index 937e1de..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductExhaustEmissionsDTO.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.thing.cbam.production.dto; - -import io.swagger.v3.oas.annotations.media.Schema; - -import lombok.Data; - -import java.io.Serial; -import java.io.Serializable; - -/** -* 废气排放量 -* -* @author xc -* @since 3.0 2024-11-28 -*/ -@Data -@Schema(description = "废气排放量") -public class CbamProductExhaustEmissionsDTO implements Serializable { - @Serial - private static final long serialVersionUID = 1L; - - private Long id; - @Schema(description = "输入量") - private String inputQuantity; - @Schema(description = "输出量") - private String output; - @Schema(description = "关联cbam_industry_information的主键id") - private Long industryId; - -} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductHeatEmissionsDTO.java b/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductHeatEmissionsDTO.java deleted file mode 100644 index 1609d53..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/dto/CbamProductHeatEmissionsDTO.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.thing.cbam.production.dto; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.io.Serial; -import java.io.Serializable; - -@Data -@Schema(description = "发热量排放") -public class CbamProductHeatEmissionsDTO implements Serializable { - @Serial - private static final long serialVersionUID = 1L; - - private Long id; - @Schema(description = "输入量") - private String inputQuantity; - @Schema(description = "输出量") - private String outpuQuantity; - @Schema(description = "关联cbam_industry_information的主键id") - private Long industryId; -} diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductAllocationEntity.java b/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductAllocationEntity.java index be8ae3f..4a1e416 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductAllocationEntity.java +++ b/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductAllocationEntity.java @@ -1,8 +1,9 @@ package com.thing.cbam.production.entity; import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; import com.mybatisflex.annotation.Table; - +import com.mybatisflex.core.keygen.KeyGenerators; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -11,35 +12,81 @@ import java.io.Serial; import java.io.Serializable; /** - * 产品的分配 + * d表各生产过程中产品的分配 * - * @author xc + * @author xc * @since 3.0 2024-11-28 */ @Data @Accessors(chain = true) -@EqualsAndHashCode(callSuper=false) +@EqualsAndHashCode(callSuper = false) @Table("cbam_product_allocation") public class CbamProductAllocationEntity implements Serializable { - @Serial - private static final long serialVersionUID = 1L; + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Generator, value = KeyGenerators.snowFlakeId) + private Long id; + /** + * 产品名称|生产过程 + */ + private String prodProcessName; + /** + * 空白处的名称 + */ + private String bankName; + + /** + * 消耗量t:{} json格式,以产品名称(A表中校验了重名)为key,消耗量t为value + */ + private String consume; + /** + * 欧盟出口量 + */ + private String exportVolume; + /** + * 非欧盟销售量 + */ + private String salesVolume; - @Id - private Long id; - /** - * 消耗量t - */ - private String consum; - /** - * 欧盟出口量 - */ - private String exportVolume; - /** - * 非欧盟销售量 - */ - private String salesVolume; - /** - * 关联cbam_industry_information的主键id - */ - private Long industryId; + /** + * 剩余消耗量 + */ + private String remainConsume; + /** + * 关联cbam_industry_information的主键id + */ + private Long industryId; + /** + * 单位 + */ + private String unit; + /** + * 输入量 + */ + private String input_quantity; + /** + * 输出量 + */ + private String output_quantity; + /** + * 排放量: 发热量排放量、废弃排放量、输出电力排放量 + */ + private String emissions; + /** + * 电力排放因子 + */ + private String electricityEmissionFactor; + /** + * 总产量 + */ + private String totalOutput; + /** + * d表类型\n" + + * "1.各生产过程中产品的分配\n" + + * "2.可测量的发热量排放量\n" + + * "3.废气排放量\n" + + * "4.生产过程输出的电力\n + */ + private Integer type; } \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductElectricityEntity.java b/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductElectricityEntity.java deleted file mode 100644 index 58fe78d..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductElectricityEntity.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.thing.cbam.production.entity; - -import com.mybatisflex.annotation.Id; -import com.mybatisflex.annotation.Table; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -import java.io.Serial; -import java.io.Serializable; - -/** - * 输出的电力 - * - * @author xc - * @since 3.0 2024-11-28 - */ -@Data -@Accessors(chain = true) -@EqualsAndHashCode(callSuper=false) -@Table("cbam_product_electricity") -public class CbamProductElectricityEntity implements Serializable { - @Serial - private static final long serialVersionUID = 1L; - - @Id - private Long id; - /** - * 输出总量 - */ - private String totalOutput; - /** - * 电力排放因子 - */ - private String electricityFactor; - /** - * 关联cbam_industry_information的主键id - */ - private Long industryId; -} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductExhaustEmissionsEntity.java b/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductExhaustEmissionsEntity.java deleted file mode 100644 index 340dbaf..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductExhaustEmissionsEntity.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.thing.cbam.production.entity; - -import com.mybatisflex.annotation.Id; -import com.mybatisflex.annotation.Table; - -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -import java.io.Serial; -import java.io.Serializable; - -/** - * 废气排放量 - * - * @author xc - * @since 3.0 2024-11-28 - */ -@Data -@Accessors(chain = true) -@EqualsAndHashCode(callSuper=false) -@Table("cbam_product_exhaust_emissions") -public class CbamProductExhaustEmissionsEntity implements Serializable { - @Serial - private static final long serialVersionUID = 1L; - - @Id - private Long id; - /** - * 输入量 - */ - private String inputQuantity; - /** - * 输出量 - */ - private String output; - /** - * 关联cbam_industry_information的主键id - */ - private Long industryId; -} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductHeatEmissionsEntity.java b/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductHeatEmissionsEntity.java deleted file mode 100644 index c852935..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/entity/CbamProductHeatEmissionsEntity.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.thing.cbam.production.entity; - -import com.mybatisflex.annotation.Id; -import com.mybatisflex.annotation.Table; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; - -import java.io.Serial; -import java.io.Serializable; - -@Data -@Accessors(chain = true) -@EqualsAndHashCode(callSuper=false) -@Table("cbam_product_heat_emissions") -public class CbamProductHeatEmissionsEntity implements Serializable { - @Serial - private static final long serialVersionUID = 1L; - - @Id - private Long id; - /** - * 输入量 - */ - private String inputQuantity; - /** - * 输出量 - */ - private String outpuQuantity; - /** - * 关联cbam_industry_information的主键id - */ - private Long industryId; -} diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/mapper/CbamProductElectricityMapper.java b/modules/cbam/src/main/java/com/thing/cbam/production/mapper/CbamProductElectricityMapper.java deleted file mode 100644 index 1fadc78..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/mapper/CbamProductElectricityMapper.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.thing.cbam.production.mapper; - -import com.thing.cbam.production.entity.CbamProductElectricityEntity; -import com.thing.common.orm.mapper.PowerBaseMapper; - -import org.apache.ibatis.annotations.Mapper; - -/** -* 输出的电力 -* -* @author xc -* @since 3.0 2024-11-28 -*/ -@Mapper -public interface CbamProductElectricityMapper extends PowerBaseMapper { - -} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/mapper/CbamProductExhaustEmissionsMapper.java b/modules/cbam/src/main/java/com/thing/cbam/production/mapper/CbamProductExhaustEmissionsMapper.java deleted file mode 100644 index 076496c..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/mapper/CbamProductExhaustEmissionsMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.thing.cbam.production.mapper; - -import com.thing.cbam.production.entity.CbamProductExhaustEmissionsEntity; -import com.thing.common.orm.mapper.PowerBaseMapper; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface CbamProductExhaustEmissionsMapper extends PowerBaseMapper { -} diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/mapper/CbamProductHeatEmissionsMapper.java b/modules/cbam/src/main/java/com/thing/cbam/production/mapper/CbamProductHeatEmissionsMapper.java deleted file mode 100644 index 3d816ff..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/mapper/CbamProductHeatEmissionsMapper.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.thing.cbam.production.mapper; - -import com.thing.cbam.production.entity.CbamProductHeatEmissionsEntity; -import com.thing.common.orm.mapper.PowerBaseMapper; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface CbamProductHeatEmissionsMapper extends PowerBaseMapper { -} diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductAllocationService.java b/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductAllocationService.java index ebd1615..cfb641b 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductAllocationService.java +++ b/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductAllocationService.java @@ -1,7 +1,13 @@ package com.thing.cbam.production.service; +import com.thing.cbam.production.dto.CbamProductAllocationDTO; import com.thing.cbam.production.entity.CbamProductAllocationEntity; import com.thing.common.orm.service.IBaseService; +import java.util.List; + public interface CbamProductAllocationService extends IBaseService { + + List batchSaveOrUpdate(List list); + } diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductElectricityService.java b/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductElectricityService.java deleted file mode 100644 index f208467..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductElectricityService.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.thing.cbam.production.service; - -import com.thing.cbam.production.entity.CbamProductElectricityEntity; -import com.thing.common.orm.service.IBaseService; - -public interface CbamProductElectricityService extends IBaseService { -} diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductExhaustEmissionsService.java b/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductExhaustEmissionsService.java deleted file mode 100644 index 705d348..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductExhaustEmissionsService.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.thing.cbam.production.service; - -import com.thing.cbam.production.entity.CbamProductExhaustEmissionsEntity; -import com.thing.common.orm.service.IBaseService; - -public interface CbamProductExhaustEmissionsService extends IBaseService { -} diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductHeatEmissionsService.java b/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductHeatEmissionsService.java deleted file mode 100644 index 9e105fa..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/service/CbamProductHeatEmissionsService.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.thing.cbam.production.service; - -import com.thing.cbam.production.entity.CbamProductHeatEmissionsEntity; -import com.thing.common.orm.service.IBaseService; - -public interface CbamProductHeatEmissionsService extends IBaseService { -} diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductAllocationServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductAllocationServiceImpl.java index bb89bff..9064a64 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductAllocationServiceImpl.java +++ b/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductAllocationServiceImpl.java @@ -1,17 +1,19 @@ package com.thing.cbam.production.service.Impl; import com.mybatisflex.core.query.QueryWrapper; +import com.thing.cbam.production.dto.CbamProductAllocationDTO; import com.thing.cbam.production.entity.CbamProductAllocationEntity; import com.thing.cbam.production.mapper.CbamProductAllocationMapper; import com.thing.cbam.production.service.CbamProductAllocationService; +import com.thing.common.core.utils.ConvertUtils; import com.thing.common.orm.service.impl.BaseServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; import java.util.Map; @Service -public class CbamProductAllocationServiceImpl extends BaseServiceImpl - implements CbamProductAllocationService { +public class CbamProductAllocationServiceImpl extends BaseServiceImpl implements CbamProductAllocationService { @Override public QueryWrapper getWrapper(Map params){ @@ -20,4 +22,14 @@ public class CbamProductAllocationServiceImpl extends BaseServiceImpl batchSaveOrUpdate(List list) { + //先删除 + List industryIds = list.stream().map(CbamProductAllocationDTO::getIndustryId).toList(); + mapper.deleteByQuery(QueryWrapper.create().in(CbamProductAllocationEntity::getIndustryId, industryIds)); + //再插入 + List cbamProductAllocationEntities = ConvertUtils.sourceToTarget(list, CbamProductAllocationEntity.class); + mapper.insertBatch(cbamProductAllocationEntities); + return ConvertUtils.sourceToTarget(cbamProductAllocationEntities, CbamProductAllocationDTO.class); + } } diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductElectricityServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductElectricityServiceImpl.java deleted file mode 100644 index 1e21be7..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductElectricityServiceImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.thing.cbam.production.service.Impl; - -import com.mybatisflex.core.query.QueryWrapper; -import com.thing.cbam.production.entity.CbamProductElectricityEntity; -import com.thing.cbam.production.mapper.CbamProductElectricityMapper; -import com.thing.cbam.production.service.CbamProductElectricityService; -import com.thing.common.orm.service.impl.BaseServiceImpl; -import org.springframework.stereotype.Service; - -import java.util.Map; - -@Service -public class CbamProductElectricityServiceImpl extends BaseServiceImpl implements CbamProductElectricityService { - @Override - public QueryWrapper getWrapper(Map params) { - QueryWrapper wrapper = new QueryWrapper(); - return wrapper; - } -} diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductExhaustEmissionsServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductExhaustEmissionsServiceImpl.java deleted file mode 100644 index e19e8a5..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductExhaustEmissionsServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.thing.cbam.production.service.Impl; - -import com.mybatisflex.core.query.QueryWrapper; -import com.thing.cbam.production.entity.CbamProductExhaustEmissionsEntity; -import com.thing.cbam.production.mapper.CbamProductExhaustEmissionsMapper; -import com.thing.cbam.production.service.CbamProductExhaustEmissionsService; -import com.thing.common.orm.service.impl.BaseServiceImpl; -import org.springframework.stereotype.Service; - -import java.util.Map; - -@Service -public class CbamProductExhaustEmissionsServiceImpl extends BaseServiceImpl -implements CbamProductExhaustEmissionsService { - @Override - public QueryWrapper getWrapper(Map params) { - QueryWrapper wrapper = new QueryWrapper(); - return wrapper; - } -} diff --git a/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductHeatEmissionsServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductHeatEmissionsServiceImpl.java deleted file mode 100644 index a8497b4..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/production/service/Impl/CbamProductHeatEmissionsServiceImpl.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.thing.cbam.production.service.Impl; - -import com.mybatisflex.core.query.QueryWrapper; -import com.thing.cbam.production.entity.CbamProductHeatEmissionsEntity; -import com.thing.cbam.production.mapper.CbamProductHeatEmissionsMapper; -import com.thing.cbam.production.service.CbamProductHeatEmissionsService; -import com.thing.common.orm.service.impl.BaseServiceImpl; - -import org.springframework.stereotype.Service; - -import java.util.Map; - -/** - * 发热量排放 - * - * @author xc - * @since 3.0 2024-11-28 - */ - -@Service -public class CbamProductHeatEmissionsServiceImpl extends BaseServiceImpl implements CbamProductHeatEmissionsService{ - @Override - public QueryWrapper getWrapper(Map params) { - QueryWrapper wrapper = new QueryWrapper(); - return wrapper; - } -} \ No newline at end of file