Browse Source

更新Aexcel的相关功能

2024年12月2日17:12:50
qingyuan_dev_new
lishuai 1 year ago
parent
commit
8e93c20913
  1. 18
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamIndustryController.java
  2. 69
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamMaterialController.java
  3. 112
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProcessMaterialController.java
  4. 43
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProdRouteRelationController.java
  5. 17
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamIndustryDTO.java
  6. 30
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamMaterialDTO.java
  7. 60
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProcessMaterialDTO.java
  8. 34
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProdRouteRelationDTO.java
  9. 38
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProductInfoDTO.java
  10. 61
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamIndustryEntity.java
  11. 41
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamMaterialEntity.java
  12. 88
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProcessMaterialEntity.java
  13. 51
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProdRouteRelationEntity.java
  14. 55
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProductInfoEntity.java
  15. 10
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamMaterialMapper.java
  16. 16
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProcessMaterialMapper.java
  17. 16
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProdRouteRelationMapper.java
  18. 17
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProductInfoMapper.java
  19. 6
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamIndustryService.java
  20. 13
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamMaterialService.java
  21. 44
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProcessMaterialService.java
  22. 19
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProdRouteRelationService.java
  23. 22
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProductInfoService.java
  24. 124
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamIndustryServiceImpl.java
  25. 27
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamMaterialServiceImpl.java
  26. 95
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProcessMaterialServiceImpl.java
  27. 39
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProdRouteRelationServiceImpl.java
  28. 36
      modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProductInfoServiceImpl.java
  29. 112
      modules/cbam/src/main/java/com/thing/cbam/dict/controller/CbamFuelDictController.java
  30. 37
      modules/cbam/src/main/java/com/thing/cbam/dict/dto/CbamFuelDictDTO.java
  31. 54
      modules/cbam/src/main/java/com/thing/cbam/dict/entity/CbamFuelDictEntity.java
  32. 16
      modules/cbam/src/main/java/com/thing/cbam/dict/mapper/CbamFuelDictMapper.java
  33. 15
      modules/cbam/src/main/java/com/thing/cbam/dict/service/CbamFuelDictService.java
  34. 35
      modules/cbam/src/main/java/com/thing/cbam/dict/service/impl/CbamFuelDictServiceImpl.java
  35. 40
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonBurnController.java
  36. 114
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonDirectController.java
  37. 2
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonProgressController.java
  38. 6
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonBurnDTO.java
  39. 84
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonDirectDTO.java
  40. 10
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonBurnEntity.java
  41. 146
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonDirectEntity.java
  42. 2
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonProgressEntity.java
  43. 16
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/mapper/CbamCarbonDirectMapper.java
  44. 11
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonBurnService.java
  45. 19
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonDirectService.java
  46. 1
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonProgressService.java
  47. 58
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamCarbonBurnServiceImpl.java
  48. 38
      modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamCarbonDirectServiceImpl.java

18
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamIndustryController.java

@ -2,12 +2,9 @@ package com.thing.cbam.baesInfoExcel.controller;
import com.thing.cbam.baesInfoExcel.dto.CbamIndustryDTO;
import com.thing.cbam.baesInfoExcel.entity.CbamIndustryEntity;
import com.thing.cbam.baesInfoExcel.service.CbamIndustryService;
import com.thing.common.core.annotation.LogOperation;
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.core.validator.AssertUtils;
import com.thing.common.core.web.response.PageData;
import com.thing.common.core.web.response.Result;
@ -15,12 +12,10 @@ 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 jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.Objects;
@RestController
@RequestMapping("v2/cbam/industry")
@ -28,8 +23,7 @@ import java.util.Objects;
@RequiredArgsConstructor
public class CbamIndustryController {
@Resource
private CbamIndustryService service;
private final CbamIndustryService service;
@GetMapping("page")
@Operation(summary = "分页")
@ -56,7 +50,7 @@ public class CbamIndustryController {
@Operation(summary = "保存")
@LogOperation("保存")
public Result<Void> save(@RequestBody CbamIndustryDTO dto) {
service.saveEntity(dto);
service.saveIndustryInfo(dto);
return new Result<>();
}
@ -66,11 +60,7 @@ public class CbamIndustryController {
public Result<Void> update(@RequestBody CbamIndustryDTO dto) {
//效验数据
//ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
Long id = dto.getId();
if(Objects.isNull(id)){
throw new SysException("id不能为空");
}
service.updateById(ConvertUtils.sourceToTarget(dto, CbamIndustryEntity.class));
service.updateIndustryInfo(dto);
return new Result<>();
}
@ -80,7 +70,7 @@ public class CbamIndustryController {
public Result<Void> delete(@RequestBody Long[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
service.batchDelete(ids);
service.batchDeleteByIds(ids);
return new Result<>();
}

69
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamMaterialController.java

@ -1,69 +0,0 @@
package com.thing.cbam.baesInfoExcel.controller;
import com.thing.cbam.baesInfoExcel.dto.CbamMaterialDTO;
import com.thing.cbam.baesInfoExcel.service.CbamMaterialService;
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.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/cbam/material")
@Tag(name = "原材料")
@RequiredArgsConstructor
public class CbamMaterialController {
private final CbamMaterialService cbamMaterialService;
@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<PageData<CbamMaterialDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params) {
PageData<CbamMaterialDTO> page = cbamMaterialService.getPageData(params, CbamMaterialDTO.class);
return new Result<PageData<CbamMaterialDTO>>().ok(page);
}
@GetMapping("{id}")
@Operation(summary = "信息")
public Result<CbamMaterialDTO> get(@PathVariable("id") Long id) {
CbamMaterialDTO data = cbamMaterialService.getByIdAs(id, CbamMaterialDTO.class);
return new Result<CbamMaterialDTO>().ok(data);
}
@PostMapping
@Operation(summary = "保存")
@LogOperation("保存")
public Result<Void> save(@RequestBody CbamMaterialDTO dto) {
cbamMaterialService.saveDto(dto);
return new Result<>();
}
@PutMapping
@Operation(summary = "修改")
@LogOperation("修改")
public Result<Void> update(@RequestBody CbamMaterialDTO dto) {
//效验数据
cbamMaterialService.updateDto(dto);
return new Result<>();
}
@DeleteMapping
@Operation(summary = "删除")
@LogOperation("删除")
public Result<Void> delete(@RequestBody Long[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
cbamMaterialService.batchDelete(ids);
return new Result<>();
}
}

112
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProcessMaterialController.java

@ -0,0 +1,112 @@
package com.thing.cbam.baesInfoExcel.controller;
import com.thing.cbam.baesInfoExcel.dto.CbamProcessMaterialDTO;
import com.thing.cbam.baesInfoExcel.service.CbamProcessMaterialService;
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.List;
import java.util.Map;
/**
* 综合商品类别和相关生产过程 购买的原材料
*
* @author xc
* @since 3.0 2024-12-02
*/
@RestController
@RequestMapping("v2/cbam/processmaterial")
@Tag(name="综合商品类别和相关生产过程 和 购买的原材料 表")
@RequiredArgsConstructor
public class CbamProcessMaterialController {
private final CbamProcessMaterialService cbamProcessMaterialService;
@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<PageData<CbamProcessMaterialDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params){
PageData<CbamProcessMaterialDTO> page = cbamProcessMaterialService.getPageData(params, CbamProcessMaterialDTO.class);
return new Result<PageData<CbamProcessMaterialDTO>>().ok(page);
}
@GetMapping("{id}")
@Operation(summary="信息")
public Result<CbamProcessMaterialDTO> get(@PathVariable("id") Long id){
CbamProcessMaterialDTO data = cbamProcessMaterialService.getByIdAs(id, CbamProcessMaterialDTO.class);
return new Result<CbamProcessMaterialDTO>().ok(data);
}
@GetMapping("industryIdAndType")
@Operation(summary="根据AExcel的基本信息id,查询原材料信息或者生产过程")
public Result<List<CbamProcessMaterialDTO>> getByIndustryIdAndType(Long industryId,Integer type){
List<CbamProcessMaterialDTO> processMaterialDTOList = cbamProcessMaterialService.getByIndustryIdAndType(industryId,type);
return new Result<List<CbamProcessMaterialDTO>>().ok(processMaterialDTOList);
}
@GetMapping("industryId")
@Operation(summary="根据AExcel的基本信息id,查询原材料信息和生产过程列表")
public Result<List<CbamProcessMaterialDTO>> getByIndustryId(Long industryId){
List<CbamProcessMaterialDTO> processMaterialDTOList = cbamProcessMaterialService.getByIndustryId(industryId);
return new Result<List<CbamProcessMaterialDTO>>().ok(processMaterialDTOList);
}
@PostMapping
@Operation(summary="保存")
@LogOperation("保存")
public Result<Void> save(@RequestBody CbamProcessMaterialDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
cbamProcessMaterialService.saveDto(dto);
return new Result<>();
}
@PutMapping
@Operation(summary="修改")
@LogOperation("修改")
public Result<Void> update(@RequestBody CbamProcessMaterialDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
cbamProcessMaterialService.updateDto(dto);
return new Result<>();
}
@DeleteMapping
@Operation(summary="删除")
@LogOperation("删除")
public Result<Void> delete(@RequestBody Long[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
cbamProcessMaterialService.batchDelete(ids);
return new Result<>();
}
/**
*@GetMapping("export")
*@Operation(summary="导出")
*@LogOperation("导出")
*public void export(@Parameter(hidden = true) @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
* List<CbamProcessMaterialDTO> list = cbamProcessMaterialService.listAs(params, CbamProcessMaterialDTO.class);
* //ExcelUtils.exportExcelToTarget(response, null, "综合商品类别和相关生产过程 和 购买的原材料 表", list, CbamProcessMaterialExcel.class);
*}
*/
}

43
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProductInfoController.java → modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProdRouteRelationController.java

@ -1,7 +1,7 @@
package com.thing.cbam.baesInfoExcel.controller;
import com.thing.cbam.baesInfoExcel.dto.CbamProductInfoDTO;
import com.thing.cbam.baesInfoExcel.service.CbamProductInfoService;
import com.thing.cbam.baesInfoExcel.dto.CbamProdRouteRelationDTO;
import com.thing.cbam.baesInfoExcel.service.CbamProdRouteRelationService;
import com.thing.common.core.annotation.LogOperation;
import com.thing.common.core.constants.Constant;
import com.thing.common.core.validator.AssertUtils;
@ -11,7 +11,6 @@ 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;
@ -22,18 +21,18 @@ import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* 综合商品类别和相关生产过程
* 生产过程和原料 工艺路线关联表
*
* @author xc
* @since 3.0 2024-11-27
* @since 3.0 2024-12-02
*/
@RestController
@RequestMapping("v2/cbam/product")
@Tag(name="综合商品类别和相关生产过程")
@RequestMapping("v2/cbam/routerelation")
@Tag(name="生产过程和原料 与 工艺路线关联表")
@RequiredArgsConstructor
public class CbamProductInfoController {
public class CbamProdRouteRelationController {
private final CbamProductInfoService cbamProductInfoService;
private final CbamProdRouteRelationService cbamProdRouteRelationService;
@GetMapping("page")
@Operation(summary="分页")
@ -43,35 +42,35 @@ public class CbamProductInfoController {
@Parameter(name = Constant.ORDER_FIELD, description = "排序字段") ,
@Parameter(name = Constant.ORDER, description = "排序方式,可选值(asc、desc)")
})
public Result<PageData<CbamProductInfoDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params){
PageData<CbamProductInfoDTO> page = cbamProductInfoService.getPageData(params, CbamProductInfoDTO.class);
return new Result<PageData<CbamProductInfoDTO>>().ok(page);
public Result<PageData<CbamProdRouteRelationDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params){
PageData<CbamProdRouteRelationDTO> page = cbamProdRouteRelationService.getPageData(params, CbamProdRouteRelationDTO.class);
return new Result<PageData<CbamProdRouteRelationDTO>>().ok(page);
}
@GetMapping("{id}")
@Operation(summary="信息")
public Result<CbamProductInfoDTO> get(@PathVariable("id") Long id){
CbamProductInfoDTO data = cbamProductInfoService.getByIdAs(id, CbamProductInfoDTO.class);
return new Result<CbamProductInfoDTO>().ok(data);
public Result<CbamProdRouteRelationDTO> get(@PathVariable("id") Long id){
CbamProdRouteRelationDTO data = cbamProdRouteRelationService.getByIdAs(id, CbamProdRouteRelationDTO.class);
return new Result<CbamProdRouteRelationDTO>().ok(data);
}
@PostMapping
@Operation(summary="保存")
@LogOperation("保存")
public Result<Void> save(@RequestBody CbamProductInfoDTO dto){
public Result<Void> save(@RequestBody CbamProdRouteRelationDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
cbamProductInfoService.saveDto(dto);
cbamProdRouteRelationService.saveDto(dto);
return new Result<>();
}
@PutMapping
@Operation(summary="修改")
@LogOperation("修改")
public Result<Void> update(@RequestBody CbamProductInfoDTO dto){
public Result<Void> update(@RequestBody CbamProdRouteRelationDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
cbamProductInfoService.updateDto(dto);
cbamProdRouteRelationService.updateDto(dto);
return new Result<>();
}
@ -81,7 +80,7 @@ public class CbamProductInfoController {
public Result<Void> delete(@RequestBody Long[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
cbamProductInfoService.batchDelete(ids);
cbamProdRouteRelationService.batchDelete(ids);
return new Result<>();
}
@ -90,8 +89,8 @@ public class CbamProductInfoController {
*@Operation(summary="导出")
*@LogOperation("导出")
*public void export(@Parameter(hidden = true) @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
* List<CbamProductInfoDTO> list = cbamProductInfoService.listAs(params, CbamProductInfoDTO.class);
* //ExcelUtils.exportExcelToTarget(response, null, "综合商品类别和相关生产过程", list, CbamProductInfoExcel.class);
* List<CbamProdRouteRelationDTO> list = cbamProdRouteRelationService.listAs(params, CbamProdRouteRelationDTO.class);
* //ExcelUtils.exportExcelToTarget(response, null, "生产过程和原料 与 工艺路线关联表", list, CbamProdRouteRelationExcel.class);
*}
*/

17
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamIndustryDTO.java

@ -17,13 +17,15 @@ public class CbamIndustryDTO implements Serializable {
@Schema(description = "主键id")
private Long id;
@Schema(description = "所属行业字典id")
private Long industryDictId;
@Schema(description = "所属行业")
private String industry;
private String industryDict;
@Schema(description = "开始日期:11位数")
private Long startDate;
@Schema(description = "结束日期:11位数")
private Long endDate;
@Schema(description = "报告周期说明:默认情况是一整个日历年")
@Schema(description = "报告周期说明:默认情况是一整个日历年,这个是固定的,要是前段传过来就要")
private String cycleDesc;
@Schema(description = "生产工厂名称")
private String factoryName;
@ -51,13 +53,10 @@ public class CbamIndustryDTO implements Serializable {
private String email;
@Schema(description = "电话")
private String telephone;
@Schema(description = "是否涉及原料:0否1是")
private Integer materialMark;
private List<CbamProductInfoDTO> cbamProductList;
private List<CbamMaterialDTO> cbamMaterialList;
@Schema(description = "生产过程:返给前端的生产过程信息")
private List<CbamProcessMaterialDTO> cbamProductList;
@Schema(description = "原料信息:返给前端的生产过程信息")
private List<CbamProcessMaterialDTO> cbamMaterialList;
/*------------------------租户信息--------------------------------*/

30
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamMaterialDTO.java

@ -1,30 +0,0 @@
package com.thing.cbam.baesInfoExcel.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-27
*/
@Data
@Schema(description = "原材料")
public class CbamMaterialDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Long id;
@Schema(description = "原材料名称")
private String rawMaterialName;
@Schema(description = "原材料的综合商品类别")
private String materialCategories;
@Schema(description = "关联cbam_industry_information的主键id")
private Long industryId;
}

60
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProcessMaterialDTO.java

@ -0,0 +1,60 @@
package com.thing.cbam.baesInfoExcel.dto;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.core.keygen.KeyGenerators;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
* 综合商品类别和相关生产过程 购买的原材料
*
* @author xc
* @since 3.0 2024-12-02
*/
@Data
@Schema(description = "综合商品类别和相关生产过程 和 购买的原材料 表")
public class CbamProcessMaterialDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Generator,value = KeyGenerators.snowFlakeId)
private Long id;
@Schema(description = "产品名称")
private String name;
@Schema(description = "总产量")
private String totalOutput;
@Schema(description = "HS代码")
private String hsCode;
@Schema(description = "产品生产过程字典id")
private Long productionProcessId;
@Schema(description = "综合商品类别")
private String productCategories;
@Schema(description = "关联cbam_industry_information的主键id")
private Long industryId;
@Schema(description = "租户编码")
private Long tenantCode;
@Schema(description = "部门ID")
private Long deptId;
private Long companyId;
@Schema(description = "创建者")
private Long creator;
@Schema(description = "创建时间")
private Long createDate;
@Schema(description = "更新者")
private Long updater;
@Schema(description = "更新时间")
private Long updateDate;
@Schema(description = "产品生产过程")
private Long productionProcess;
@Schema(description = "类型1.生产过程 2.原材料")
private Integer type;
@Schema(description = "生产工艺相关信息--由关联表得到")
List<CbamProdRouteRelationDTO> routeRelationList;
}

34
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProdRouteRelationDTO.java

@ -0,0 +1,34 @@
package com.thing.cbam.baesInfoExcel.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-02
*/
@Data
@Schema(description = "生产过程和原料 与 工艺路线关联表")
public class CbamProdRouteRelationDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Long id;
@Schema(description = "工艺路线字典id")
private Long routeId;
@Schema(description = "排序")
private Long sort;
@Schema(description = "工艺路线名称")
private String routeName;
@Schema(description = "生产过程或原材料的id")
private Long prodMaterialId;
@Schema(description = "类型:1.生产过程 2.原料")
private Integer type;
}

38
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProductInfoDTO.java

@ -1,38 +0,0 @@
package com.thing.cbam.baesInfoExcel.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-26
*/
@Data
@Schema(description = "综合商品类别和相关生产过程")
public class CbamProductInfoDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Long id;
@Schema(description = "产品名称")
private String productName;
@Schema(description = "总产量")
private String totalOutput;
@Schema(description = "HS代码")
private String hsCode;
@Schema(description = "产品生产过程")
private String productionProcess;
@Schema(description = "综合商品类别")
private String comprehensiveProductCategories;
@Schema(description = "工艺路线")
private String processRoute;
@Schema(description = "关联cbam_industry_information的主键id")
private Long industryId;
}

61
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamIndustryEntity.java

@ -12,24 +12,81 @@ import lombok.experimental.Accessors;
@Table("cbam_industry_info")
public class CbamIndustryEntity extends BaseInfoEntity {
private String industry;
/**
* 所属行业字典id
*/
private Long industryDictId;
/**
* 所属行业
*/
private Long industryDict;
/**
* 开始日期
*/
private Long startDate;
/**
* 结束日期
*/
private Long endDate;
/**
* 报告周期说明默认情况是一整个日历年
*/
private String cycleDesc;
/**
* 生产工厂名称
*/
private String factoryName;
/**
* 街道编号
*/
private String streetNum;
/**
* 在欧盟进行的主要经济活动
*/
private String economicActivities;
/**
* 邮政编码
*/
private String postalCode;
/**
* 邮政信箱
*/
private String postBox;
/**
* 城市
*/
private String city;
/**
* 国家
*/
private String country;
/**
* 国际港口代码
*/
private String internationalCode;
/**
* 生产工厂坐标(经度)
*/
private String factoryLongitude;
/**
* 生产工厂坐标(纬度)
*/
private String factoryLatitude;
/**
* 授权代表姓名
*/
private String authorizedName;
/**
* 电子邮件
*/
private String email;
/**
* 电话
*/
private String telephone;
/**
* 是否涉及原料0否1是
*/
private Integer materialMark;
}

41
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamMaterialEntity.java

@ -1,41 +0,0 @@
package com.thing.cbam.baesInfoExcel.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-27
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper=false)
@Table("cbam_industry_material")
public class CbamMaterialEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1L;//数据序列化
@Id
private Long id;
/**
* 原材料名称
*/
private String rawMaterialName;
/**
* 原材料的综合商品类别
*/
private String materialCategories;
/**
* 关联cbam_industry_information的主键id
*/
private Long industryId;
}

88
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProcessMaterialEntity.java

@ -0,0 +1,88 @@
package com.thing.cbam.baesInfoExcel.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-02
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper=false)
@Table("cbam_process_material")
public class CbamProcessMaterialEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Generator,value = KeyGenerators.snowFlakeId)
private Long id;
/**
* 产品名称
*/
private String name;
/**
* 总产量
*/
private String totalOutput;
/**
* HS代码
*/
private String hsCode;
/**
* 产品生产过程字典id
*/
private Long productionProcessId;
/**
* 综合商品类别
*/
private String productCategories;
/**
* 关联cbam_industry_information的主键id
*/
private Long industryId;
/**
* 租户编码
*/
private Long tenantCode;
/**
* 部门ID
*/
private Long deptId;
private Long companyId;
/**
* 创建者
*/
private Long creator;
/**
* 创建时间
*/
private Long createDate;
/**
* 更新者
*/
private Long updater;
/**
* 更新时间
*/
private Long updateDate;
/**
* 产品生产过程
*/
private Long productionProcess;
/**
* 类型1.生产过程 2.原材料
*/
private Integer type;
}

51
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProdRouteRelationEntity.java

@ -0,0 +1,51 @@
package com.thing.cbam.baesInfoExcel.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-02
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper=false)
@Table("cbam_prod_route_relation")
public class CbamProdRouteRelationEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id(keyType = KeyType.Generator,value = KeyGenerators.snowFlakeId)
private Long id;
/**
* 工艺路线字典id
*/
private Long routeId;
/**
* 排序
*/
private Long sort;
/**
* 工艺路线名称
*/
private String routeName;
/**
* 生产过程或原材料的id
*/
private Long prodMaterialId;
/**
* 类型1.生产过程 2.原料
*/
private Integer type;
}

55
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProductInfoEntity.java

@ -1,55 +0,0 @@
package com.thing.cbam.baesInfoExcel.entity;
import com.mybatisflex.annotation.Table;
import com.thing.common.orm.entity.BaseInfoEntity;
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-26
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper=false)
@Table("cbam_product_info")
public class CbamProductInfoEntity extends BaseInfoEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 产品名称
*/
private String productName;
/**
* 总产量
*/
private String totalOutput;
/**
* HS代码
*/
private String hsCode;
/**
* 产品生产过程
*/
private String productionProcess;
/**
* 综合商品类别
*/
private String comprehensiveProductCategories;
/**
* 工艺路线
*/
private String processRoute;
/**
* 关联cbam_industry_information的主键id
*/
private Long industryId;
}

10
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamMaterialMapper.java

@ -1,10 +0,0 @@
package com.thing.cbam.baesInfoExcel.mapper;
import com.thing.cbam.baesInfoExcel.entity.CbamMaterialEntity;
import com.thing.common.orm.mapper.PowerBaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CbamMaterialMapper extends PowerBaseMapper<CbamMaterialEntity> {
}

16
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProcessMaterialMapper.java

@ -0,0 +1,16 @@
package com.thing.cbam.baesInfoExcel.mapper;
import com.thing.cbam.baesInfoExcel.entity.CbamProcessMaterialEntity;
import com.thing.common.orm.mapper.PowerBaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 综合商品类别和相关生产过程 购买的原材料
*
* @author xc
* @since 3.0 2024-12-02
*/
@Mapper
public interface CbamProcessMaterialMapper extends PowerBaseMapper<CbamProcessMaterialEntity> {
}

16
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProdRouteRelationMapper.java

@ -0,0 +1,16 @@
package com.thing.cbam.baesInfoExcel.mapper;
import com.thing.cbam.baesInfoExcel.entity.CbamProdRouteRelationEntity;
import com.thing.common.orm.mapper.PowerBaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 生产过程和原料 工艺路线关联表
*
* @author xc
* @since 3.0 2024-12-02
*/
@Mapper
public interface CbamProdRouteRelationMapper extends PowerBaseMapper<CbamProdRouteRelationEntity> {
}

17
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProductInfoMapper.java

@ -1,17 +0,0 @@
package com.thing.cbam.baesInfoExcel.mapper;
import com.thing.cbam.baesInfoExcel.entity.CbamProductInfoEntity;
import com.thing.common.orm.mapper.PowerBaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 综合商品类别和相关生产过程
*
* @author xc
* @since 3.0 2024-11-27
*/
@Mapper
public interface CbamProductInfoMapper extends PowerBaseMapper<CbamProductInfoEntity> {
}

6
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamIndustryService.java

@ -13,7 +13,11 @@ public interface CbamIndustryService extends IBaseService<CbamIndustryEntity> {
CbamIndustryDTO findById(Long id);
void saveEntity(CbamIndustryDTO dto);
void saveIndustryInfo(CbamIndustryDTO dto);
void updateIndustryInfo(CbamIndustryDTO dto);
void batchDeleteByIds( Long[] ids);
LinkedHashMap<String, Object> validateMsg(Long hyId,Long startTime,Long endTime);

13
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamMaterialService.java

@ -1,13 +0,0 @@
package com.thing.cbam.baesInfoExcel.service;
import com.thing.cbam.baesInfoExcel.dto.CbamMaterialDTO;
import com.thing.cbam.baesInfoExcel.entity.CbamMaterialEntity;
import com.thing.common.orm.service.IBaseService;
import java.util.List;
public interface CbamMaterialService extends IBaseService<CbamMaterialEntity> {
List<CbamMaterialDTO> findListByIndustryId(Long industryId);
}

44
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProcessMaterialService.java

@ -0,0 +1,44 @@
package com.thing.cbam.baesInfoExcel.service;
import com.thing.cbam.baesInfoExcel.dto.CbamProcessMaterialDTO;
import com.thing.cbam.baesInfoExcel.entity.CbamProcessMaterialEntity;
import com.thing.common.orm.service.IBaseService;
import java.util.List;
/**
* 综合商品类别和相关生产过程 购买的原材料
*
* @author xc
* @since 3.0 2024-12-02
*/
public interface CbamProcessMaterialService extends IBaseService<CbamProcessMaterialEntity> {
/**
* 根据行业id和类型查询
* @param industryId
* @param type
* @return
*/
List<CbamProcessMaterialDTO> getByIndustryIdAndType(Long industryId,Integer type);
/**
* 根据行业id查询
* @param industryId
* @return
*/
List<CbamProcessMaterialDTO> getByIndustryId(Long industryId);
/**
* 批量保存
* @param list
*/
void batchSaveList(List<CbamProcessMaterialDTO> list,Integer type);
/**
* 批量更新
* @param list
*/
void batchDeleteAndSaveList(List<CbamProcessMaterialDTO> list,Long industryId,Integer type);
}

19
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProdRouteRelationService.java

@ -0,0 +1,19 @@
package com.thing.cbam.baesInfoExcel.service;
import com.thing.cbam.baesInfoExcel.dto.CbamProdRouteRelationDTO;
import com.thing.cbam.baesInfoExcel.entity.CbamProdRouteRelationEntity;
import com.thing.common.orm.service.IBaseService;
import java.util.List;
/**
* 生产过程和原料 工艺路线关联表
*
* @author xc
* @since 3.0 2024-12-02
*/
public interface CbamProdRouteRelationService extends IBaseService<CbamProdRouteRelationEntity> {
List<CbamProdRouteRelationDTO> getByProdMaterialIdAndType(Long prodMaterialId, Integer type);
}

22
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProductInfoService.java

@ -1,22 +0,0 @@
package com.thing.cbam.baesInfoExcel.service;
import com.thing.cbam.baesInfoExcel.dto.CbamProductInfoDTO;
import com.thing.cbam.baesInfoExcel.entity.CbamProductInfoEntity;
import com.thing.common.orm.service.IBaseService;
import java.util.List;
/**
* 综合商品类别和相关生产过程
*
* @author xc
* @since 3.0 2024-11-26
*/
public interface CbamProductInfoService extends IBaseService<CbamProductInfoEntity> {
List<CbamProductInfoDTO> findListByIndustryId(Long industryId);
}

124
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamIndustryServiceImpl.java

@ -2,38 +2,38 @@ package com.thing.cbam.baesInfoExcel.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.mybatisflex.core.query.QueryWrapper;
import com.thing.cbam.baesInfoExcel.dto.CbamIndustryDTO;
import com.thing.cbam.baesInfoExcel.dto.CbamMaterialDTO;
import com.thing.cbam.baesInfoExcel.dto.CbamProductInfoDTO;
import com.thing.cbam.baesInfoExcel.dto.CbamProcessMaterialDTO;
import com.thing.cbam.baesInfoExcel.dto.CbamProdRouteRelationDTO;
import com.thing.cbam.baesInfoExcel.entity.CbamIndustryEntity;
import com.thing.cbam.baesInfoExcel.entity.CbamMaterialEntity;
import com.thing.cbam.baesInfoExcel.entity.CbamProductInfoEntity;
import com.thing.cbam.baesInfoExcel.entity.CbamProcessMaterialEntity;
import com.thing.cbam.baesInfoExcel.entity.CbamProdRouteRelationEntity;
import com.thing.cbam.baesInfoExcel.mapper.CbamIndustryMapper;
import com.thing.cbam.baesInfoExcel.service.CbamIndustryService;
import com.thing.cbam.baesInfoExcel.service.CbamMaterialService;
import com.thing.cbam.baesInfoExcel.service.CbamProductInfoService;
import com.thing.cbam.baesInfoExcel.service.CbamProcessMaterialService;
import com.thing.cbam.baesInfoExcel.service.CbamProdRouteRelationService;
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 jakarta.annotation.Resource;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
@Service
@RequiredArgsConstructor
public class CbamIndustryServiceImpl extends BaseServiceImpl<CbamIndustryMapper, CbamIndustryEntity> implements CbamIndustryService {
@Resource
private CbamProductInfoService cbamProductInfoService;
@Resource
private CbamMaterialService cbamMaterialService;
// private final CbamProductInfoService cbamProductInfoService;
//
// private final CbamMaterialService cbamMaterialService;
//
// private final CbamProdRouteRelationService cbamProdRouteRelationService;
private final CbamProcessMaterialService cbamProcessMaterialService;
private final CbamProdRouteRelationService cbamProdRouteRelationService;
@Override
@ -57,38 +57,94 @@ public class CbamIndustryServiceImpl extends BaseServiceImpl<CbamIndustryMapper,
@Override
public CbamIndustryDTO findById(Long id) {
CbamIndustryDTO dto = mapper.selectObjectByQueryAs(QueryWrapper.create().eq(CbamIndustryEntity::getId, id), CbamIndustryDTO.class);
if (Objects.isNull(dto)) {
//1.查询CBAM基础信息,包括 cbam行业报告周期企业信息
CbamIndustryDTO cbamIndustryDTO = mapper.selectObjectByQueryAs(QueryWrapper.create().eq(CbamIndustryEntity::getId, id), CbamIndustryDTO.class);
if (Objects.isNull(cbamIndustryDTO)) {
throw new SysException("CBAM行业,企业信息为空");
}
List<CbamProductInfoDTO> cbamProductInfoDTOList = cbamProductInfoService.findListByIndustryId(id);
dto.setCbamProductList(cbamProductInfoDTOList);
List<CbamMaterialDTO> cbamMaterialDTOList = cbamMaterialService.findListByIndustryId(id);
dto.setCbamMaterialList(cbamMaterialDTOList);
return dto;
//2.查询综合商品类别和相关生产过程和相关工艺路线
List<CbamProcessMaterialDTO> processDTOList = cbamProcessMaterialService.getByIndustryIdAndType(cbamIndustryDTO.getId(),1);
//2.1查询综合商品类别相关工艺路线
if(CollectionUtil.isNotEmpty(processDTOList)){
for (CbamProcessMaterialDTO cbamProcessDTO : processDTOList) {
//查询工艺路线
List<CbamProdRouteRelationDTO> routeRelationDTOS = cbamProdRouteRelationService.getByProdMaterialIdAndType(cbamProcessDTO.getId(), cbamProcessDTO.getType());
if(CollectionUtil.isNotEmpty(routeRelationDTOS)){
//将工艺路线设置到综合商品类别中
cbamProcessDTO.setRouteRelationList(routeRelationDTOS);
}
}
cbamIndustryDTO.setCbamProductList(processDTOList);
}
//3.查询购买的原材料和相关工艺路线
List<CbamProcessMaterialDTO> cbamMaterialDTOList = cbamProcessMaterialService.getByIndustryIdAndType(cbamIndustryDTO.getId(),2);
//3.1查询购买的原材料的相关工艺路线
if(CollectionUtil.isNotEmpty(cbamMaterialDTOList)){
for (CbamProcessMaterialDTO cbamProcessMaterialDTO : cbamMaterialDTOList) {
//查询工艺路线
List<CbamProdRouteRelationDTO> routeRelationDTOS = cbamProdRouteRelationService.getByProdMaterialIdAndType(cbamProcessMaterialDTO.getId(), cbamProcessMaterialDTO.getType());
if(CollectionUtil.isNotEmpty(routeRelationDTOS)){
//将工艺路线设置到原料类别中
cbamProcessMaterialDTO.setRouteRelationList(routeRelationDTOS);
}
}
cbamIndustryDTO.setCbamMaterialList(cbamMaterialDTOList);
}
return cbamIndustryDTO;
}
@Transactional(rollbackFor = Exception.class)
@Override
public void saveEntity(CbamIndustryDTO dto) {
//逻辑
public void saveIndustryInfo(CbamIndustryDTO dto) {
//1.插入相关行业企业等基本信息
mapper.insert(ConvertUtils.sourceToTarget(dto, CbamIndustryEntity.class));
List<CbamProductInfoDTO> cbamProductList = dto.getCbamProductList();
List<CbamMaterialDTO> cbamMaterialList = dto.getCbamMaterialList();
//2.获取生产过程和相关工艺路线
List<CbamProcessMaterialDTO> cbamProductList = dto.getCbamProductList();
if (CollectionUtil.isNotEmpty(cbamProductList)) {
cbamProductInfoService.saveBatch(ConvertUtils.sourceToTarget(cbamProductList, CbamProductInfoEntity.class));
cbamProcessMaterialService.batchSaveList(cbamProductList,1);
}
if (CollectionUtil.isNotEmpty(cbamMaterialList)) {
cbamMaterialService.saveBatch(ConvertUtils.sourceToTarget(cbamMaterialList, CbamMaterialEntity.class));
//3.获取购买的原材料和相关工艺路线
List<CbamProcessMaterialDTO> cbamMaterialList = dto.getCbamMaterialList();
if (CollectionUtil.isNotEmpty(cbamProductList)) {
cbamProcessMaterialService.batchSaveList(cbamProductList,2);
}
}
@Transactional(rollbackFor = Exception.class)
@Override
public LinkedHashMap<String, Object> validateMsg(Long hyId,Long startTime,Long endTime) {
public void updateIndustryInfo(CbamIndustryDTO dto) {
//1.根据id查询相关行业企业等基本信息
CbamIndustryEntity cbamIndustryEntity = mapper.selectOneById(dto.getId());
if(Objects.isNull(cbamIndustryEntity)){
throw new SysException("查询相关行业企业等基本信息不存在");
}
//2.将修改的值赋值给 industryEntity 对象
CbamIndustryEntity industryEntity = ConvertUtils.sourceToTarget(dto, CbamIndustryEntity.class);
//3.更新相关行业企业等基本信息
mapper.updateByQuery(industryEntity,QueryWrapper.create().eq(CbamIndustryEntity::getId,dto.getId()));
//4.获取生产过程和相关工艺路线并进行更新
List<CbamProcessMaterialDTO> cbamProductList = dto.getCbamProductList();
cbamProcessMaterialService.batchDeleteAndSaveList(cbamProductList,industryEntity.getId(),1);
//5.获取购买的原材料和相关工艺路线并进行更新
List<CbamProcessMaterialDTO> cbamaterialList = dto.getCbamMaterialList();
cbamProcessMaterialService.batchDeleteAndSaveList(cbamaterialList,industryEntity.getId(),2);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void batchDeleteByIds(Long[] ids) {
//1.删行业基本信息
mapper.deleteBatchByIds(Arrays.asList(ids));
//2.删除生产过程和原料信息
cbamProcessMaterialService.getMapper().deleteByQuery(QueryWrapper.create()
.in(CbamProcessMaterialEntity::getIndustryId,Arrays.asList(ids)));
//3.首选删除生产过程和原料信息相关联的工艺路线
cbamProdRouteRelationService.getMapper().deleteByQuery(QueryWrapper.create()
.in(CbamProdRouteRelationEntity::getProdMaterialId,Arrays.asList(ids)));
}
@Override
public LinkedHashMap<String, Object> validateMsg(Long hyId,Long startTime,Long endTime) {
LinkedHashMap<String, Object> resMap = new LinkedHashMap<>();
//1.所属行业不能为空并且是行业字典的值

27
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamMaterialServiceImpl.java

@ -1,27 +0,0 @@
package com.thing.cbam.baesInfoExcel.service.impl;
import com.mybatisflex.core.query.QueryWrapper;
import com.thing.cbam.baesInfoExcel.dto.CbamMaterialDTO;
import com.thing.cbam.baesInfoExcel.entity.CbamMaterialEntity;
import com.thing.cbam.baesInfoExcel.mapper.CbamMaterialMapper;
import com.thing.cbam.baesInfoExcel.service.CbamMaterialService;
import com.thing.common.orm.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class CbamMaterialServiceImpl extends BaseServiceImpl<CbamMaterialMapper, CbamMaterialEntity> implements CbamMaterialService {
@Override
public QueryWrapper getWrapper(Map<String, Object> params){
QueryWrapper wrapper = new QueryWrapper();
return wrapper;
}
@Override
public List<CbamMaterialDTO> findListByIndustryId(Long industryId) {
return mapper.selectListByQueryAs(QueryWrapper.create().eq(CbamMaterialEntity::getIndustryId,industryId), CbamMaterialDTO.class);
}
}

95
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProcessMaterialServiceImpl.java

@ -0,0 +1,95 @@
package com.thing.cbam.baesInfoExcel.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.mybatisflex.core.query.QueryWrapper;
import com.thing.cbam.baesInfoExcel.dto.CbamProcessMaterialDTO;
import com.thing.cbam.baesInfoExcel.dto.CbamProdRouteRelationDTO;
import com.thing.cbam.baesInfoExcel.entity.CbamProcessMaterialEntity;
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.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* 综合商品类别和相关生产过程 购买的原材料
*
* @author xc
* @since 3.0 2024-12-02
*/
@Service
@RequiredArgsConstructor
public class CbamProcessMaterialServiceImpl extends BaseServiceImpl<CbamProcessMaterialMapper, CbamProcessMaterialEntity> implements CbamProcessMaterialService {
private final CbamProdRouteRelationService cbamProdRouteRelationService;
@Override
public QueryWrapper getWrapper(Map<String, Object> params){
QueryWrapper wrapper = new QueryWrapper();
return wrapper;
}
@Override
public List<CbamProcessMaterialDTO> getByIndustryIdAndType(Long industryId, Integer type) {
QueryWrapper queryWrapper = QueryWrapper.create()
.eq(CbamProcessMaterialEntity::getIndustryId, industryId)
.eq(CbamProcessMaterialEntity::getType, type);
return mapper.selectListByQueryAs(queryWrapper, CbamProcessMaterialDTO.class);
}
@Override
public List<CbamProcessMaterialDTO> getByIndustryId(Long industryId) {
QueryWrapper queryWrapper = QueryWrapper.create().eq(CbamProcessMaterialEntity::getIndustryId, industryId);
return mapper.selectListByQueryAs(queryWrapper, CbamProcessMaterialDTO.class);
}
@Transactional(rollbackFor = Exception.class)
@Override
public void batchSaveList(List<CbamProcessMaterialDTO> list,Integer type) {
//遍历相关生产产品或者原料列表
for (CbamProcessMaterialDTO cbamProcessMaterialDTO : list) {
cbamProcessMaterialDTO.setType(type);
CbamProcessMaterialEntity cbamProcessMaterialEntity = ConvertUtils.sourceToTarget(cbamProcessMaterialDTO, CbamProcessMaterialEntity.class);
//1.保存产品或者原料信息
mapper.insert(cbamProcessMaterialEntity);
//2.保存产品或者原料的生产工艺信息
List<CbamProdRouteRelationDTO> routeRelationList = cbamProcessMaterialDTO.getRouteRelationList();
if(CollectionUtil.isNotEmpty(routeRelationList)){
for (CbamProdRouteRelationDTO cbamProdRouteRelationDTO : routeRelationList) {
cbamProdRouteRelationDTO.setProdMaterialId(cbamProcessMaterialEntity.getId());
cbamProdRouteRelationDTO.setType(type);
}
//将工艺信息保存到数据库
cbamProdRouteRelationService.saveBatch(ConvertUtils.sourceToTarget(routeRelationList, CbamProdRouteRelationEntity.class));
}
}
}
@Transactional(rollbackFor = Exception.class)
@Override
public void batchDeleteAndSaveList(List<CbamProcessMaterialDTO> list,Long industryId,Integer type){
//1.先删除相关的产品或者原料信息
mapper.deleteByQuery(QueryWrapper.create()
.in(CbamProcessMaterialEntity::getIndustryId,list.stream().map(CbamProcessMaterialDTO::getIndustryId).toList())
.eq(CbamProcessMaterialEntity::getType,type)
);
//2.先删除相关的产品或者原料信息 关联的 生产工艺信息
cbamProdRouteRelationService.getMapper().deleteByQuery(QueryWrapper.create()
.in(CbamProdRouteRelationEntity::getProdMaterialId,list.stream().map(CbamProcessMaterialDTO::getId).toList())
.eq(CbamProdRouteRelationEntity::getType,type)
);
//3.重写保存相关的产品或者原料信息和相关联的工艺信息
batchSaveList( list,type);
}
}

39
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProdRouteRelationServiceImpl.java

@ -0,0 +1,39 @@
package com.thing.cbam.baesInfoExcel.service.impl;
import com.mybatisflex.core.query.QueryWrapper;
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.orm.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* 生产过程和原料 工艺路线关联表
*
* @author xc
* @since 3.0 2024-12-02
*/
@Service
public class CbamProdRouteRelationServiceImpl extends BaseServiceImpl<CbamProdRouteRelationMapper, CbamProdRouteRelationEntity> implements CbamProdRouteRelationService {
@Override
public QueryWrapper getWrapper(Map<String, Object> params){
QueryWrapper wrapper = new QueryWrapper();
return wrapper;
}
@Override
public List<CbamProdRouteRelationDTO> getByProdMaterialIdAndType(Long prodMaterialId, Integer type) {
QueryWrapper queryWrapper = QueryWrapper.create()
.eq(CbamProdRouteRelationEntity::getProdMaterialId, prodMaterialId)
.eq(CbamProdRouteRelationEntity::getType, type)
.orderBy(CbamProdRouteRelationEntity::getSort,true);
return mapper.selectListByQueryAs(queryWrapper, CbamProdRouteRelationDTO.class);
}
}

36
modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProductInfoServiceImpl.java

@ -1,36 +0,0 @@
package com.thing.cbam.baesInfoExcel.service.impl;
import com.mybatisflex.core.query.QueryWrapper;
import com.thing.cbam.baesInfoExcel.dto.CbamProductInfoDTO;
import com.thing.cbam.baesInfoExcel.entity.CbamProductInfoEntity;
import com.thing.cbam.baesInfoExcel.mapper.CbamProductInfoMapper;
import com.thing.cbam.baesInfoExcel.service.CbamProductInfoService;
import com.thing.common.orm.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* 综合商品类别和相关生产过程
*
* @author xc
* @since 3.0 2024-11-26
*/
@Service
public class CbamProductInfoServiceImpl extends BaseServiceImpl<CbamProductInfoMapper, CbamProductInfoEntity> implements CbamProductInfoService {
@Override
public QueryWrapper getWrapper(Map<String, Object> params){
QueryWrapper wrapper = new QueryWrapper();
return wrapper;
}
@Override
public List<CbamProductInfoDTO> findListByIndustryId(Long industryId){
return mapper.selectListByQueryAs(QueryWrapper.create().eq(CbamProductInfoEntity::getIndustryId,industryId), CbamProductInfoDTO.class);
}
}

112
modules/cbam/src/main/java/com/thing/cbam/dict/controller/CbamFuelDictController.java

@ -0,0 +1,112 @@
package com.thing.cbam.dict.controller;
import com.thing.cbam.dict.dto.CbamFuelDictDTO;
import com.thing.cbam.dict.service.CbamFuelDictService;
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.List;
import java.util.Map;
/**
* 燃料参数字典表
*
* @author xc
* @since 3.0 2024-11-29
*/
@RestController
@RequestMapping("v2/cbam/fuel")
@Tag(name="燃料参数字典表")
@RequiredArgsConstructor
public class CbamFuelDictController {
private final CbamFuelDictService cbamFuelDictService;
@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<PageData<CbamFuelDictDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params){
PageData<CbamFuelDictDTO> page = cbamFuelDictService.getPageData(params, CbamFuelDictDTO.class);
return new Result<PageData<CbamFuelDictDTO>>().ok(page);
}
@GetMapping("list")
@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<List<CbamFuelDictDTO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> params){
List<CbamFuelDictDTO> list = cbamFuelDictService.listAs(params, CbamFuelDictDTO.class);
return new Result<List<CbamFuelDictDTO>>().ok(list);
}
@GetMapping("{id}")
@Operation(summary="信息")
public Result<CbamFuelDictDTO> get(@PathVariable("id") Long id){
CbamFuelDictDTO data = cbamFuelDictService.getByIdAs(id, CbamFuelDictDTO.class);
return new Result<CbamFuelDictDTO>().ok(data);
}
@PostMapping
@Operation(summary="保存")
@LogOperation("保存")
public Result<Void> save(@RequestBody CbamFuelDictDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
cbamFuelDictService.saveDto(dto);
return new Result<>();
}
@PutMapping
@Operation(summary="修改")
@LogOperation("修改")
public Result<Void> update(@RequestBody CbamFuelDictDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
cbamFuelDictService.updateDto(dto);
return new Result<>();
}
@DeleteMapping
@Operation(summary="删除")
@LogOperation("删除")
public Result<Void> delete(@RequestBody Long[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
cbamFuelDictService.batchDelete(ids);
return new Result<>();
}
/**
*@GetMapping("export")
*@Operation(summary="导出")
*@LogOperation("导出")
*public void export(@Parameter(hidden = true) @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
* List<CbamFuelDictDTO> list = cbamFuelDictService.listAs(params, CbamFuelDictDTO.class);
* //ExcelUtils.exportExcelToTarget(response, null, "燃料参数字典表", list, CbamFuelDictExcel.class);
*}
*/
}

37
modules/cbam/src/main/java/com/thing/cbam/dict/dto/CbamFuelDictDTO.java

@ -0,0 +1,37 @@
package com.thing.cbam.dict.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-29
*/
@Data
@Schema(description = "燃料参数字典表")
public class CbamFuelDictDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "主键")
private Long id;
@Schema(description = "中文名")
private String name;
@Schema(description = "英文名")
private String ename;
@Schema(description = "低位发热量")
private String lowHeatAmount;
@Schema(description = "单位")
private String unit;
@Schema(description = "碳氧化率")
private String carbonOxdRate;
@Schema(description = "排放因子")
private String emissionFactor;
}

54
modules/cbam/src/main/java/com/thing/cbam/dict/entity/CbamFuelDictEntity.java

@ -0,0 +1,54 @@
package com.thing.cbam.dict.entity;
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-29
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper=false)
@Table("cbam_fuel_dict")
public class CbamFuelDictEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private Long id;
/**
* 中文名
*/
private String name;
/**
* 英文名
*/
private String ename;
/**
* 低位发热量
*/
private String lowHeatAmount;
/**
* 单位
*/
private String unit;
/**
* 碳氧化率氧化因子
*/
private String carbonOxdRate;
/**
* 排放因子
*/
private String emissionFactor;
}

16
modules/cbam/src/main/java/com/thing/cbam/dict/mapper/CbamFuelDictMapper.java

@ -0,0 +1,16 @@
package com.thing.cbam.dict.mapper;
import com.thing.cbam.dict.entity.CbamFuelDictEntity;
import com.thing.common.orm.mapper.PowerBaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 燃料参数字典表
*
* @author xc
* @since 3.0 2024-11-29
*/
@Mapper
public interface CbamFuelDictMapper extends PowerBaseMapper<CbamFuelDictEntity> {
}

15
modules/cbam/src/main/java/com/thing/cbam/dict/service/CbamFuelDictService.java

@ -0,0 +1,15 @@
package com.thing.cbam.dict.service;
import com.thing.cbam.dict.entity.CbamFuelDictEntity;
import com.thing.common.orm.service.IBaseService;
/**
* 燃料参数字典表
*
* @author xc
* @since 3.0 2024-11-29
*/
public interface CbamFuelDictService extends IBaseService<CbamFuelDictEntity> {
}

35
modules/cbam/src/main/java/com/thing/cbam/dict/service/impl/CbamFuelDictServiceImpl.java

@ -0,0 +1,35 @@
package com.thing.cbam.dict.service.impl;
import cn.hutool.core.map.MapUtil;
import com.mybatisflex.core.query.QueryWrapper;
import com.thing.cbam.dict.entity.CbamFuelDictEntity;
import com.thing.cbam.dict.mapper.CbamFuelDictMapper;
import com.thing.cbam.dict.service.CbamFuelDictService;
import com.thing.common.core.constants.Constant;
import com.thing.common.orm.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* 燃料参数字典表
*
* @author xc
* @since 3.0 2024-11-29
*/
@Service
public class CbamFuelDictServiceImpl extends BaseServiceImpl<CbamFuelDictMapper, CbamFuelDictEntity> implements CbamFuelDictService {
@Override
public QueryWrapper getWrapper(Map<String, Object> params){
QueryWrapper wrapper = new QueryWrapper();
String orderField = MapUtil.getStr(params, Constant.ORDER_FIELD, "sort");
String order = MapUtil.getStr(params, Constant.ORDER, Constant.ASC);
wrapper.orderBy(orderField, Constant.ASC.equals(order));
return wrapper;
}
}

40
modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonBurnController.java

@ -1,3 +1,4 @@
/*
package com.thing.cbam.directCarbon.controller;
import com.thing.cbam.directCarbon.dto.CbamCarbonBurnDTO;
@ -20,17 +21,21 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
*/
/**
* 直接排放量
*
* @author xc
* @since 3.0 2024-11-27
*/
*//*
@RestController
@RequestMapping("v2/cbam/carbon/burn")
@Tag(name="直接排放量")
@RequestMapping("v2/cbam/carbon1")
@Tag(name="直接排放量--燃烧排放")
@RequiredArgsConstructor
public class CbamCarbonBurnController {
@ -66,6 +71,16 @@ public class CbamCarbonBurnController {
return new Result<>();
}
@PostMapping
@Operation(summary="批量保存")
@LogOperation("批量保存")
public Result<Void> batchSave(@RequestBody List<CbamCarbonBurnDTO> dtoList){
//效验数据
cbamCarbonBurnService.batchSave(dtoList);
return new Result<>();
}
@PutMapping
@Operation(summary="修改")
@LogOperation("修改")
@ -86,7 +101,19 @@ public class CbamCarbonBurnController {
return new Result<>();
}
/**
@PostMapping
@Operation(summary="计算燃烧排放量")
@LogOperation("计算燃烧排放量")
public Result<Map<String, BigDecimal>> calculate(Long fuelId,BigDecimal consumeAmount,BigDecimal biomassContent){
//效验数据
return new Result<Map<String, BigDecimal>>().ok(cbamCarbonBurnService.calculate(fuelId, consumeAmount,biomassContent));
}
*/
/**
*@GetMapping("export")
*@Operation(summary="导出")
*@LogOperation("导出")
@ -94,6 +121,7 @@ public class CbamCarbonBurnController {
* List<CbamCarbonBurnDTO> list = cbamCarbonBurnService.listAs(params, CbamCarbonBurnDTO.class);
* //ExcelUtils.exportExcelToTarget(response, null, "直接排放量", list, CbamCarbonBurnExcel.class);
*}
*/
*//*
}
}*/

114
modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonDirectController.java

@ -0,0 +1,114 @@
package com.thing.cbam.directCarbon.controller;
import com.thing.cbam.directCarbon.dto.CbamCarbonDirectDTO;
import com.thing.cbam.directCarbon.service.CbamCarbonDirectService;
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.List;
import java.util.Map;
/**
* 直接排放量B-Excel
*
* @author xc
* @since 3.0 2024-12-02
*/
@RestController
@RequestMapping("v2/cbam/carbonDirect")
@Tag(name="直接排放量B-Excel")
@RequiredArgsConstructor
public class CbamCarbonDirectController {
private final CbamCarbonDirectService cbamCarbonDirectService;
@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<PageData<CbamCarbonDirectDTO>> page(@Parameter(hidden = true) @RequestParam Map<String, Object> params){
PageData<CbamCarbonDirectDTO> page = cbamCarbonDirectService.getPageData(params, CbamCarbonDirectDTO.class);
return new Result<PageData<CbamCarbonDirectDTO>>().ok(page);
}
@GetMapping("listByIndustryId")
@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<List<CbamCarbonDirectDTO>> listByIndustryId(@RequestParam Long industryId){
List<CbamCarbonDirectDTO> cbamCarbonDirectDTOS = cbamCarbonDirectService.listByIndustryId(industryId);
return new Result<List<CbamCarbonDirectDTO>>().ok(cbamCarbonDirectDTOS);
}
@GetMapping("{id}")
@Operation(summary="信息")
public Result<CbamCarbonDirectDTO> get(@PathVariable("id") Long id){
CbamCarbonDirectDTO data = cbamCarbonDirectService.getByIdAs(id, CbamCarbonDirectDTO.class);
return new Result<CbamCarbonDirectDTO>().ok(data);
}
@PostMapping
@Operation(summary="保存")
@LogOperation("保存")
public Result<Void> save(@RequestBody CbamCarbonDirectDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
cbamCarbonDirectService.saveDto(dto);
return new Result<>();
}
@PutMapping
@Operation(summary="修改")
@LogOperation("修改")
public Result<Void> update(@RequestBody CbamCarbonDirectDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
cbamCarbonDirectService.updateDto(dto);
return new Result<>();
}
@DeleteMapping
@Operation(summary="删除")
@LogOperation("删除")
public Result<Void> delete(@RequestBody Long[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
cbamCarbonDirectService.batchDelete(ids);
return new Result<>();
}
/**
*@GetMapping("export")
*@Operation(summary="导出")
*@LogOperation("导出")
*public void export(@Parameter(hidden = true) @RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
* List<CbamCarbonDirectDTO> list = cbamCarbonDirectService.listAs(params, CbamCarbonDirectDTO.class);
* //ExcelUtils.exportExcelToTarget(response, null, "直接排放量B-Excel", list, CbamCarbonDirectExcel.class);
*}
*/
}

2
modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonProgressController.java

@ -25,7 +25,9 @@ import java.util.Map;
@Tag(name="原料过程排放")
@RequiredArgsConstructor
public class CbamCarbonProgressController {
private final CbamCarbonProgressService cbamCarbonProgressService;
@GetMapping("page")
@Operation(summary="分页")
@Parameters({

6
modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonBurnDTO.java

@ -24,9 +24,11 @@ public class CbamCarbonBurnDTO implements Serializable {
@Schema(description = "名称")
private String name;
@Schema(description = "消耗量")
private String consumAmount;
private String consumeAmount;
@Schema(description = "消耗量单位")
private String consumeUnit;
@Schema(description = "低位发热量")
private String lowheatGener;
private String lowHeatVal;
@Schema(description = "排放源名称")
private String emissionName;
@Schema(description = "排放因子")

84
modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonDirectDTO.java

@ -0,0 +1,84 @@
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;
/**
* 直接排放量B-Excel
*
* @author xc
* @since 3.0 2024-12-02
*/
@Data
@Schema(description = "直接排放量B-Excel")
public class CbamCarbonDirectDTO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
private Long id;
@Schema(description = "燃料名称/过程排放名称/物料平衡名称")
private String name;
@Schema(description = "消耗量/产量:输入")
private String consumeAmount;
@Schema(description = "消耗量单位:t 或者 1000Nm2")
private String consumeUnit;
@Schema(description = "低位发热量:燃料字典表值")
private String lowHeatVal;
@Schema(description = "低位发热量单位:燃料字典表值")
private String lowHeatUnit;
@Schema(description = "排放因子:燃料字典表值")
private String emissionFactors;
@Schema(description = "排放因子单位:燃料字典表值")
private String emissionFactorsUnit;
@Schema(description = "氧化因子/转化因子:燃料字典表值")
private String oxidationFactor;
@Schema(description = "生物量含量/生物质组分:输入")
private String biomassContent;
@Schema(description = "直接碳排量:计算")
private String directCarbonNum;
@Schema(description = "生物质燃料排放量:计算")
private String biomassFuelNum;
@Schema(description = "能量含量(化石燃料),TJ:计算")
private String energyFossilNum;
@Schema(description = "能量含量(生物燃料),TJ:计算")
private String energyBiologyNum;
@Schema(description = "碳含量(tC/t)")
private String carbonNum;
@Schema(description = "气体类型:CO2/N2O")
private String gasType;
@Schema(description = "生物质组分单位")
private String biomassUnit;
@Schema(description = "每小时平均温室气体浓度")
private String hourAvgGasDensity;
@Schema(description = "每小时平均温室气体浓度.单位")
private String hourAvgGasDensityUnit;
@Schema(description = "运行小时数")
private String runHours;
@Schema(description = "烟气")
private String smokeAvg;
@Schema(description = "烟气.单位")
private String smokeAvgUnit;
@Schema(description = "温室气体年排放量")
private String gasAnnualEmissions;
@Schema(description = "温室气体年排放量单位")
private String gasAnnualEmissionsUnit;
@Schema(description = "化石燃料碳排放量")
private String fossilFuelCarbon;
@Schema(description = "全球变暖潜势id")
private String globalWarmingId;
@Schema(description = "全球变暖潜势")
private String globalWarming;
@Schema(description = "关联cbam_industry_information的主键id")
private Long industryId;
@Schema(description = "类型:\n" +
"1.是否涉及燃烧排放\n" +
"2.是否涉及过程排放\n" +
"3.是否涉及物料平衡\n" +
"4.是否有连续排放测量系统(CEMS)")
private Integer type;
private Long sort;
}

10
modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonBurnEntity.java

@ -11,7 +11,7 @@ import java.io.Serial;
import java.io.Serializable;
/**
* 直接排放量
* 燃烧排放量
*
* @author xc
* @since 3.0 2024-11-27
@ -33,11 +33,15 @@ public class CbamCarbonBurnEntity implements Serializable {
/**
* 消耗量
*/
private String consumAmount;
private String consumeAmount;
/**
* 消耗量单位
*/
private String consumeUnit;
/**
* 低位发热量
*/
private String lowheatGener;
private String lowHeatVal;
/**
* 排放源名称
*/

146
modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonDirectEntity.java

@ -0,0 +1,146 @@
package com.thing.cbam.directCarbon.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;
/**
* 直接排放量B-Excel
*
* @author xc
* @since 3.0 2024-12-02
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper=false)
@Table("cbam_carbon_direct")
public class CbamCarbonDirectEntity implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Id
private Long id;
/**
* 燃料名称/过程排放名称/物料平衡名称
*/
private String name;
/**
* 消耗量/产量输入
*/
private String consumeAmount;
/**
* 消耗量单位t 或者 1000Nm2
*/
private String consumeUnit;
/**
* 低位发热量燃料字典表值
*/
private String lowHeatVal;
/**
* 低位发热量单位燃料字典表值
*/
private String lowHeatUnit;
/**
* 排放因子燃料字典表值
*/
private String emissionFactors;
/**
* 排放因子单位燃料字典表值
*/
private String emissionFactorsUnit;
/**
* 氧化因子/转化因子燃料字典表值
*/
private String oxidationFactor;
/**
* 生物量含量/生物质组分输入
*/
private String biomassContent;
/**
* 直接碳排量计算
*/
private String directCarbonNum;
/**
* 生物质燃料排放量计算
*/
private String biomassFuelNum;
/**
* 能量含量(化石燃料)TJ计算
*/
private String energyFossilNum;
/**
* 能量含量(生物燃料)TJ计算
*/
private String energyBiologyNum;
/**
* 碳含量(tC/t)
*/
private String carbonNum;
/**
* 气体类型CO2/N2O
*/
private String gasType;
/**
* 生物质组分单位
*/
private String biomassUnit;
/**
* 每小时平均温室气体浓度
*/
private String hourAvgGasDensity;
/**
* 每小时平均温室气体浓度.单位
*/
private String hourAvgGasDensityUnit;
/**
* 运行小时数
*/
private String runHours;
/**
* 烟气
*/
private String smokeAvg;
/**
* 烟气.单位
*/
private String smokeAvgUnit;
/**
* 温室气体年排放量
*/
private String gasAnnualEmissions;
/**
* 温室气体年排放量单位
*/
private String gasAnnualEmissionsUnit;
/**
* 化石燃料碳排放量
*/
private String fossilFuelCarbon;
/**
* 全球变暖潜势id
*/
private String globalWarmingId;
/**
* 全球变暖潜势
*/
private String globalWarming;
/**
* 关联cbam_industry_information的主键id
*/
private Long industryId;
/**
* 类型
* 1.是否涉及燃烧排放
* 2.是否涉及过程排放
* 3.是否涉及物料平衡
* 4.是否有连续排放测量系统(CEMS)
*/
private Integer type;
private Long sort;
}

2
modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonProgressEntity.java

@ -29,7 +29,7 @@ public class CbamCarbonProgressEntity implements Serializable {
/**
* 名称
*/
private String name;
private String fuelName;
/**
* 消耗量
*/

16
modules/cbam/src/main/java/com/thing/cbam/directCarbon/mapper/CbamCarbonDirectMapper.java

@ -0,0 +1,16 @@
package com.thing.cbam.directCarbon.mapper;
import com.thing.cbam.directCarbon.entity.CbamCarbonDirectEntity;
import com.thing.common.orm.mapper.PowerBaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* 直接排放量B-Excel
*
* @author xc
* @since 3.0 2024-12-02
*/
@Mapper
public interface CbamCarbonDirectMapper extends PowerBaseMapper<CbamCarbonDirectEntity> {
}

11
modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonBurnService.java

@ -1,8 +1,13 @@
package com.thing.cbam.directCarbon.service;
import com.thing.cbam.directCarbon.dto.CbamCarbonBurnDTO;
import com.thing.cbam.directCarbon.entity.CbamCarbonBurnEntity;
import com.thing.common.orm.service.IBaseService;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
* 直接排放量
@ -12,4 +17,10 @@ import com.thing.common.orm.service.IBaseService;
*/
public interface CbamCarbonBurnService extends IBaseService<CbamCarbonBurnEntity> {
void batchSave(List<CbamCarbonBurnDTO> dtoList);
Map<String, BigDecimal> calculate(Long fuelId, BigDecimal consumeAmount,BigDecimal biomassContent);
}

19
modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonDirectService.java

@ -0,0 +1,19 @@
package com.thing.cbam.directCarbon.service;
import com.thing.cbam.directCarbon.dto.CbamCarbonDirectDTO;
import com.thing.cbam.directCarbon.entity.CbamCarbonDirectEntity;
import com.thing.common.orm.service.IBaseService;
import java.util.List;
/**
* 直接排放量B-Excel
*
* @author xc
* @since 3.0 2024-12-02
*/
public interface CbamCarbonDirectService extends IBaseService<CbamCarbonDirectEntity> {
List<CbamCarbonDirectDTO> listByIndustryId(Long industryId);
}

1
modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonProgressService.java

@ -1,6 +1,5 @@
package com.thing.cbam.directCarbon.service;
import com.thing.cbam.directCarbon.entity.CbamCarbonBurnEntity;
import com.thing.cbam.directCarbon.entity.CbamCarbonProgressEntity;
import com.thing.common.orm.service.IBaseService;

58
modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamCarbonBurnServiceImpl.java

@ -1,14 +1,25 @@
package com.thing.cbam.directCarbon.service.impl;
import com.mybatisflex.core.query.QueryWrapper;
import com.thing.cbam.dict.entity.CbamFuelDictEntity;
import com.thing.cbam.dict.service.CbamFuelDictService;
import com.thing.cbam.directCarbon.dto.CbamCarbonBurnDTO;
import com.thing.cbam.directCarbon.entity.CbamCarbonBurnEntity;
import com.thing.cbam.directCarbon.mapper.CbamCarbonBurnMapper;
import com.thing.cbam.directCarbon.service.CbamCarbonBurnService;
import com.thing.common.core.utils.ConvertUtils;
import com.thing.common.orm.service.impl.BaseServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* 直接排放量
@ -17,8 +28,10 @@ import java.util.Map;
* @since 3.0 2024-11-27
*/
@Service
@RequiredArgsConstructor
public class CbamCarbonBurnServiceImpl extends BaseServiceImpl<CbamCarbonBurnMapper, CbamCarbonBurnEntity> implements CbamCarbonBurnService {
private final CbamFuelDictService cbamFuelDictService;
@Override
public QueryWrapper getWrapper(Map<String, Object> params){
@ -26,4 +39,49 @@ public class CbamCarbonBurnServiceImpl extends BaseServiceImpl<CbamCarbonBurnMap
return wrapper;
}
@Transactional(rollbackFor = Exception.class)
@Override
public void batchSave(List<CbamCarbonBurnDTO> dtoList) {
List<CbamCarbonBurnEntity> cbamCarbonBurnEntities = ConvertUtils.sourceToTarget(dtoList, CbamCarbonBurnEntity.class);
mapper.insertBatch(cbamCarbonBurnEntities);
}
@Override
public Map<String, BigDecimal> calculate(Long fuelId, BigDecimal consumeAmount,BigDecimal biomassContent) {
Map<String, BigDecimal> resMap = new HashMap<>();
//获取燃料系数字典信息
CbamFuelDictEntity cbamFuelDict = cbamFuelDictService.getById(fuelId);
if(Objects.isNull(cbamFuelDict)){
throw new RuntimeException("燃料系数字典信息不存在");
}
//公用计算消耗量*低位发热量
String lowHeatAmount = cbamFuelDict.getLowHeatAmount();
BigDecimal commonResult = consumeAmount.multiply(new BigDecimal(lowHeatAmount));
//1.首先先计算第四个----能量含量(生物质燃料)工J =消耗量*低位发热量*生物量含量/100/1000
BigDecimal energySwNum = commonResult.multiply(biomassContent)
.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP)
.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
resMap.put("energyBiologyNum",energySwNum);
//2.其次计算第三个能量含量(化石燃料),TJ =消耗量*低位发热量/1000-能量含量(生物质燃料)
BigDecimal energyHsNum = commonResult
.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP)
.subtract(energySwNum);
resMap.put("energyFossilNum",energyHsNum);
//3.生物质燃料排放量 =消耗量*低位发热量*生物量含量*排放因子/100/1000
BigDecimal biomassFuelNum = commonResult
.multiply(commonResult)
.multiply(new BigDecimal(cbamFuelDict.getEmissionFactor()))
.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP)
.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP);
resMap.put("biomassFuelNum",biomassFuelNum);
//4.直接碳排放量 =消耗量*低位发热量*氧化因子*排放因子/100/1000-生物质燃料排放量
BigDecimal directCarbonNum = commonResult
.multiply(new BigDecimal(cbamFuelDict.getCarbonOxdRate()))
.multiply(new BigDecimal(cbamFuelDict.getEmissionFactor()))
.divide(new BigDecimal(100), 2, RoundingMode.HALF_UP)
.divide(new BigDecimal(1000), 2, RoundingMode.HALF_UP)
.subtract(biomassFuelNum);
resMap.put("directCarbonNum",directCarbonNum);
return resMap;
}
}

38
modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamCarbonDirectServiceImpl.java

@ -0,0 +1,38 @@
package com.thing.cbam.directCarbon.service.impl;
import com.mybatisflex.core.query.QueryWrapper;
import com.thing.cbam.directCarbon.dto.CbamCarbonDirectDTO;
import com.thing.cbam.directCarbon.entity.CbamCarbonDirectEntity;
import com.thing.cbam.directCarbon.mapper.CbamCarbonDirectMapper;
import com.thing.cbam.directCarbon.service.CbamCarbonDirectService;
import com.thing.common.orm.service.impl.BaseServiceImpl;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* 直接排放量B-Excel
*
* @author xc
* @since 3.0 2024-12-02
*/
@Service
public class CbamCarbonDirectServiceImpl extends BaseServiceImpl<CbamCarbonDirectMapper, CbamCarbonDirectEntity> implements CbamCarbonDirectService {
@Override
public QueryWrapper getWrapper(Map<String, Object> params){
QueryWrapper wrapper = new QueryWrapper();
return wrapper;
}
@Override
public List<CbamCarbonDirectDTO> listByIndustryId(Long industryId) {
QueryWrapper queryWrapper = QueryWrapper.create().eq(CbamCarbonDirectEntity::getIndustryId, industryId)
.orderBy(CbamCarbonDirectEntity::getType, true)
.orderBy(CbamCarbonDirectEntity::getSort, true);
List<CbamCarbonDirectDTO> cbamCarbonDirectDTOS = mapper.selectListByQueryAs(queryWrapper, CbamCarbonDirectDTO.class);
return cbamCarbonDirectDTOS;
}
}
Loading…
Cancel
Save