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 0a88274..475b7b1 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 @@ -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 save(@RequestBody CbamIndustryDTO dto) { - service.saveEntity(dto); + service.saveIndustryInfo(dto); return new Result<>(); } @@ -66,11 +60,7 @@ public class CbamIndustryController { public Result 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 delete(@RequestBody Long[] ids) { //效验数据 AssertUtils.isArrayEmpty(ids, "id"); - service.batchDelete(ids); + service.batchDeleteByIds(ids); return new Result<>(); } diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamMaterialController.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamMaterialController.java deleted file mode 100644 index 003385a..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamMaterialController.java +++ /dev/null @@ -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> page(@Parameter(hidden = true) @RequestParam Map params) { - PageData page = cbamMaterialService.getPageData(params, CbamMaterialDTO.class); - return new Result>().ok(page); - } - @GetMapping("{id}") - @Operation(summary = "信息") - public Result get(@PathVariable("id") Long id) { - CbamMaterialDTO data = cbamMaterialService.getByIdAs(id, CbamMaterialDTO.class); - return new Result().ok(data); - } - @PostMapping - @Operation(summary = "保存") - @LogOperation("保存") - public Result save(@RequestBody CbamMaterialDTO dto) { - cbamMaterialService.saveDto(dto); - return new Result<>(); - } - @PutMapping - @Operation(summary = "修改") - @LogOperation("修改") - public Result update(@RequestBody CbamMaterialDTO dto) { - //效验数据 - cbamMaterialService.updateDto(dto); - return new Result<>(); - } - @DeleteMapping - @Operation(summary = "删除") - @LogOperation("删除") - public Result delete(@RequestBody Long[] ids) { - //效验数据 - AssertUtils.isArrayEmpty(ids, "id"); - cbamMaterialService.batchDelete(ids); - return new Result<>(); - } - -} 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 new file mode 100644 index 0000000..978199a --- /dev/null +++ b/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> page(@Parameter(hidden = true) @RequestParam Map params){ + PageData page = cbamProcessMaterialService.getPageData(params, CbamProcessMaterialDTO.class); + return new Result>().ok(page); + } + + @GetMapping("{id}") + @Operation(summary="信息") + public Result get(@PathVariable("id") Long id){ + CbamProcessMaterialDTO data = cbamProcessMaterialService.getByIdAs(id, CbamProcessMaterialDTO.class); + return new Result().ok(data); + } + + @GetMapping("industryIdAndType") + @Operation(summary="根据AExcel的基本信息id,查询原材料信息或者生产过程") + public Result> getByIndustryIdAndType(Long industryId,Integer type){ + List processMaterialDTOList = cbamProcessMaterialService.getByIndustryIdAndType(industryId,type); + return new Result>().ok(processMaterialDTOList); + } + + @GetMapping("industryId") + @Operation(summary="根据AExcel的基本信息id,查询原材料信息和生产过程列表") + public Result> getByIndustryId(Long industryId){ + List processMaterialDTOList = cbamProcessMaterialService.getByIndustryId(industryId); + 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<>(); + } + + @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="删除") + @LogOperation("删除") + public Result 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 params, HttpServletResponse response) throws Exception { + * List list = cbamProcessMaterialService.listAs(params, CbamProcessMaterialDTO.class); + * //ExcelUtils.exportExcelToTarget(response, null, "综合商品类别和相关生产过程 和 购买的原材料 表", list, CbamProcessMaterialExcel.class); + *} + */ + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProductInfoController.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProdRouteRelationController.java similarity index 59% rename from modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProductInfoController.java rename to modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProdRouteRelationController.java index 7f78a18..d6ab122 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/controller/CbamProductInfoController.java +++ b/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> page(@Parameter(hidden = true) @RequestParam Map params){ - PageData page = cbamProductInfoService.getPageData(params, CbamProductInfoDTO.class); - return new Result>().ok(page); + public Result> page(@Parameter(hidden = true) @RequestParam Map params){ + PageData page = cbamProdRouteRelationService.getPageData(params, CbamProdRouteRelationDTO.class); + return new Result>().ok(page); } @GetMapping("{id}") @Operation(summary="信息") - public Result get(@PathVariable("id") Long id){ - CbamProductInfoDTO data = cbamProductInfoService.getByIdAs(id, CbamProductInfoDTO.class); - return new Result().ok(data); + public Result get(@PathVariable("id") Long id){ + CbamProdRouteRelationDTO data = cbamProdRouteRelationService.getByIdAs(id, CbamProdRouteRelationDTO.class); + return new Result().ok(data); } @PostMapping @Operation(summary="保存") @LogOperation("保存") - public Result save(@RequestBody CbamProductInfoDTO dto){ + public Result 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 update(@RequestBody CbamProductInfoDTO dto){ + public Result 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 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 params, HttpServletResponse response) throws Exception { - * List list = cbamProductInfoService.listAs(params, CbamProductInfoDTO.class); - * //ExcelUtils.exportExcelToTarget(response, null, "综合商品类别和相关生产过程", list, CbamProductInfoExcel.class); + * List list = cbamProdRouteRelationService.listAs(params, CbamProdRouteRelationDTO.class); + * //ExcelUtils.exportExcelToTarget(response, null, "生产过程和原料 与 工艺路线关联表", list, CbamProdRouteRelationExcel.class); *} */ diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamIndustryDTO.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamIndustryDTO.java index 2636fe0..57afe58 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamIndustryDTO.java +++ b/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 cbamProductList; - - private List cbamMaterialList; + @Schema(description = "生产过程:返给前端的生产过程信息") + private List cbamProductList; + @Schema(description = "原料信息:返给前端的生产过程信息") + private List cbamMaterialList; /*------------------------租户信息--------------------------------*/ diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamMaterialDTO.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamMaterialDTO.java deleted file mode 100644 index bcd21ad..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamMaterialDTO.java +++ /dev/null @@ -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; - -} \ No newline at end of file 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 new file mode 100644 index 0000000..08faa5f --- /dev/null +++ b/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 routeRelationList; + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProdRouteRelationDTO.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProdRouteRelationDTO.java new file mode 100644 index 0000000..503c2dd --- /dev/null +++ b/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; + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProductInfoDTO.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProductInfoDTO.java deleted file mode 100644 index 541c514..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/dto/CbamProductInfoDTO.java +++ /dev/null @@ -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; - -} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamIndustryEntity.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamIndustryEntity.java index 9cd8e3b..f24948d 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamIndustryEntity.java +++ b/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; } diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamMaterialEntity.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamMaterialEntity.java deleted file mode 100644 index a7cc7bb..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamMaterialEntity.java +++ /dev/null @@ -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; -} \ 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 new file mode 100644 index 0000000..bdc8d95 --- /dev/null +++ b/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; +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProdRouteRelationEntity.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProdRouteRelationEntity.java new file mode 100644 index 0000000..8b56da5 --- /dev/null +++ b/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; +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProductInfoEntity.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProductInfoEntity.java deleted file mode 100644 index ccf3346..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/entity/CbamProductInfoEntity.java +++ /dev/null @@ -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; -} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamMaterialMapper.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamMaterialMapper.java deleted file mode 100644 index 228f048..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamMaterialMapper.java +++ /dev/null @@ -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 { -} diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProcessMaterialMapper.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProcessMaterialMapper.java new file mode 100644 index 0000000..1068bdc --- /dev/null +++ b/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 { + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProdRouteRelationMapper.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProdRouteRelationMapper.java new file mode 100644 index 0000000..70f6a77 --- /dev/null +++ b/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 { + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProductInfoMapper.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProductInfoMapper.java deleted file mode 100644 index b503cb7..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/mapper/CbamProductInfoMapper.java +++ /dev/null @@ -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 { - -} \ 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 797f093..4d8eeb7 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 @@ -13,7 +13,11 @@ public interface CbamIndustryService extends IBaseService { CbamIndustryDTO findById(Long id); - void saveEntity(CbamIndustryDTO dto); + void saveIndustryInfo(CbamIndustryDTO dto); + + void updateIndustryInfo(CbamIndustryDTO dto); + + void batchDeleteByIds( Long[] ids); LinkedHashMap validateMsg(Long hyId,Long startTime,Long endTime); diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamMaterialService.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamMaterialService.java deleted file mode 100644 index 7db73aa..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamMaterialService.java +++ /dev/null @@ -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 { - List findListByIndustryId(Long industryId); - -} 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 new file mode 100644 index 0000000..472aeba --- /dev/null +++ b/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 { + + /** + * 根据行业id和类型查询 + * @param industryId + * @param type + * @return + */ + List getByIndustryIdAndType(Long industryId,Integer type); + + /** + * 根据行业id查询 + * @param industryId + * @return + */ + List getByIndustryId(Long industryId); + + /** + * 批量保存 + * @param list + */ + void batchSaveList(List list,Integer type); + + /** + * 批量更新 + * @param list + */ + void batchDeleteAndSaveList(List list,Long industryId,Integer type); + +} \ No newline at end of file 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 new file mode 100644 index 0000000..1cd1f8f --- /dev/null +++ b/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 { + + List getByProdMaterialIdAndType(Long prodMaterialId, Integer type); + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProductInfoService.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProductInfoService.java deleted file mode 100644 index 20d0246..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/CbamProductInfoService.java +++ /dev/null @@ -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 { - - - List findListByIndustryId(Long industryId); - -} \ 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 82c3dac..0a6afbc 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 @@ -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 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 cbamProductInfoDTOList = cbamProductInfoService.findListByIndustryId(id); - dto.setCbamProductList(cbamProductInfoDTOList); - - List cbamMaterialDTOList = cbamMaterialService.findListByIndustryId(id); - dto.setCbamMaterialList(cbamMaterialDTOList); - - return dto; + //2.查询综合商品类别和相关生产过程和相关工艺路线 + List processDTOList = cbamProcessMaterialService.getByIndustryIdAndType(cbamIndustryDTO.getId(),1); + //2.1查询综合商品类别相关工艺路线 + if(CollectionUtil.isNotEmpty(processDTOList)){ + for (CbamProcessMaterialDTO cbamProcessDTO : processDTOList) { + //查询工艺路线 + List routeRelationDTOS = cbamProdRouteRelationService.getByProdMaterialIdAndType(cbamProcessDTO.getId(), cbamProcessDTO.getType()); + if(CollectionUtil.isNotEmpty(routeRelationDTOS)){ + //将工艺路线设置到综合商品类别中 + cbamProcessDTO.setRouteRelationList(routeRelationDTOS); + } + } + cbamIndustryDTO.setCbamProductList(processDTOList); + } + //3.查询购买的原材料和相关工艺路线 + List cbamMaterialDTOList = cbamProcessMaterialService.getByIndustryIdAndType(cbamIndustryDTO.getId(),2); + //3.1查询购买的原材料的相关工艺路线 + if(CollectionUtil.isNotEmpty(cbamMaterialDTOList)){ + for (CbamProcessMaterialDTO cbamProcessMaterialDTO : cbamMaterialDTOList) { + //查询工艺路线 + List 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 cbamProductList = dto.getCbamProductList(); - List cbamMaterialList = dto.getCbamMaterialList(); - + //2.获取生产过程和相关工艺路线 + List 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 cbamMaterialList = dto.getCbamMaterialList(); + if (CollectionUtil.isNotEmpty(cbamProductList)) { + cbamProcessMaterialService.batchSaveList(cbamProductList,2); } } + @Transactional(rollbackFor = Exception.class) @Override - public LinkedHashMap 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 cbamProductList = dto.getCbamProductList(); + cbamProcessMaterialService.batchDeleteAndSaveList(cbamProductList,industryEntity.getId(),1); + //5.获取购买的原材料和相关工艺路线,并进行更新 + List 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 validateMsg(Long hyId,Long startTime,Long endTime) { LinkedHashMap resMap = new LinkedHashMap<>(); //1.所属行业不能为空,并且是行业字典的值 diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamMaterialServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamMaterialServiceImpl.java deleted file mode 100644 index 920b6a1..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamMaterialServiceImpl.java +++ /dev/null @@ -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 implements CbamMaterialService { - @Override - public QueryWrapper getWrapper(Map params){ - QueryWrapper wrapper = new QueryWrapper(); - return wrapper; - } - - @Override - public List findListByIndustryId(Long industryId) { - return mapper.selectListByQueryAs(QueryWrapper.create().eq(CbamMaterialEntity::getIndustryId,industryId), CbamMaterialDTO.class); - } -} 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 new file mode 100644 index 0000000..897c8ab --- /dev/null +++ b/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 implements CbamProcessMaterialService { + + + private final CbamProdRouteRelationService cbamProdRouteRelationService; + + @Override + public QueryWrapper getWrapper(Map params){ + QueryWrapper wrapper = new QueryWrapper(); + return wrapper; + } + + + @Override + public List 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 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 list,Integer type) { + //遍历相关生产产品或者原料列表 + for (CbamProcessMaterialDTO cbamProcessMaterialDTO : list) { + cbamProcessMaterialDTO.setType(type); + 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(type); + } + //将工艺信息保存到数据库 + cbamProdRouteRelationService.saveBatch(ConvertUtils.sourceToTarget(routeRelationList, CbamProdRouteRelationEntity.class)); + } + } + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void batchDeleteAndSaveList(List 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); + } +} \ No newline at end of file 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 new file mode 100644 index 0000000..2a3c7ac --- /dev/null +++ b/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 implements CbamProdRouteRelationService { + + @Override + public QueryWrapper getWrapper(Map params){ + QueryWrapper wrapper = new QueryWrapper(); + return wrapper; + } + + + @Override + public List 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); + } +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProductInfoServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProductInfoServiceImpl.java deleted file mode 100644 index bfc9470..0000000 --- a/modules/cbam/src/main/java/com/thing/cbam/baesInfoExcel/service/impl/CbamProductInfoServiceImpl.java +++ /dev/null @@ -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 implements CbamProductInfoService { - - @Override - public QueryWrapper getWrapper(Map params){ - QueryWrapper wrapper = new QueryWrapper(); - return wrapper; - } - - - @Override - public List findListByIndustryId(Long industryId){ - return mapper.selectListByQueryAs(QueryWrapper.create().eq(CbamProductInfoEntity::getIndustryId,industryId), CbamProductInfoDTO.class); - } -} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/dict/controller/CbamFuelDictController.java b/modules/cbam/src/main/java/com/thing/cbam/dict/controller/CbamFuelDictController.java new file mode 100644 index 0000000..048aa20 --- /dev/null +++ b/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> page(@Parameter(hidden = true) @RequestParam Map params){ + PageData page = cbamFuelDictService.getPageData(params, CbamFuelDictDTO.class); + return new Result>().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(@Parameter(hidden = true) @RequestParam Map params){ + List list = cbamFuelDictService.listAs(params, CbamFuelDictDTO.class); + return new Result>().ok(list); + } + + @GetMapping("{id}") + @Operation(summary="信息") + public Result get(@PathVariable("id") Long id){ + CbamFuelDictDTO data = cbamFuelDictService.getByIdAs(id, CbamFuelDictDTO.class); + return new Result().ok(data); + } + + @PostMapping + @Operation(summary="保存") + @LogOperation("保存") + public Result save(@RequestBody CbamFuelDictDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + cbamFuelDictService.saveDto(dto); + return new Result<>(); + } + + @PutMapping + @Operation(summary="修改") + @LogOperation("修改") + public Result update(@RequestBody CbamFuelDictDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + cbamFuelDictService.updateDto(dto); + return new Result<>(); + } + + @DeleteMapping + @Operation(summary="删除") + @LogOperation("删除") + public Result 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 params, HttpServletResponse response) throws Exception { + * List list = cbamFuelDictService.listAs(params, CbamFuelDictDTO.class); + * //ExcelUtils.exportExcelToTarget(response, null, "燃料参数字典表", list, CbamFuelDictExcel.class); + *} + */ + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/dict/dto/CbamFuelDictDTO.java b/modules/cbam/src/main/java/com/thing/cbam/dict/dto/CbamFuelDictDTO.java new file mode 100644 index 0000000..890388c --- /dev/null +++ b/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; + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/dict/entity/CbamFuelDictEntity.java b/modules/cbam/src/main/java/com/thing/cbam/dict/entity/CbamFuelDictEntity.java new file mode 100644 index 0000000..fe4553a --- /dev/null +++ b/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; +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/dict/mapper/CbamFuelDictMapper.java b/modules/cbam/src/main/java/com/thing/cbam/dict/mapper/CbamFuelDictMapper.java new file mode 100644 index 0000000..4d4467b --- /dev/null +++ b/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 { + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/dict/service/CbamFuelDictService.java b/modules/cbam/src/main/java/com/thing/cbam/dict/service/CbamFuelDictService.java new file mode 100644 index 0000000..7702ffa --- /dev/null +++ b/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 { + + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/dict/service/impl/CbamFuelDictServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/dict/service/impl/CbamFuelDictServiceImpl.java new file mode 100644 index 0000000..ec93fc2 --- /dev/null +++ b/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 implements CbamFuelDictService { + + @Override + public QueryWrapper getWrapper(Map 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; + } + + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonBurnController.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonBurnController.java index 6447633..f06051c 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonBurnController.java +++ b/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,20 +21,24 @@ 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 +* @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 { - + private final CbamCarbonBurnService cbamCarbonBurnService; @GetMapping("page") @@ -66,6 +71,16 @@ public class CbamCarbonBurnController { return new Result<>(); } + + @PostMapping + @Operation(summary="批量保存") + @LogOperation("批量保存") + public Result batchSave(@RequestBody List 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> calculate(Long fuelId,BigDecimal consumeAmount,BigDecimal biomassContent){ + //效验数据 + return new Result>().ok(cbamCarbonBurnService.calculate(fuelId, consumeAmount,biomassContent)); + } + + + + + */ +/** *@GetMapping("export") *@Operation(summary="导出") *@LogOperation("导出") @@ -94,6 +121,7 @@ public class CbamCarbonBurnController { * List list = cbamCarbonBurnService.listAs(params, CbamCarbonBurnDTO.class); * //ExcelUtils.exportExcelToTarget(response, null, "直接排放量", list, CbamCarbonBurnExcel.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 new file mode 100644 index 0000000..1129fc2 --- /dev/null +++ b/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> page(@Parameter(hidden = true) @RequestParam Map params){ + PageData page = cbamCarbonDirectService.getPageData(params, CbamCarbonDirectDTO.class); + return new Result>().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> listByIndustryId(@RequestParam Long industryId){ + List cbamCarbonDirectDTOS = cbamCarbonDirectService.listByIndustryId(industryId); + return new Result>().ok(cbamCarbonDirectDTOS); + } + + @GetMapping("{id}") + @Operation(summary="信息") + public Result get(@PathVariable("id") Long id){ + CbamCarbonDirectDTO data = cbamCarbonDirectService.getByIdAs(id, CbamCarbonDirectDTO.class); + return new Result().ok(data); + } + + @PostMapping + @Operation(summary="保存") + @LogOperation("保存") + public Result save(@RequestBody CbamCarbonDirectDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + cbamCarbonDirectService.saveDto(dto); + return new Result<>(); + } + + @PutMapping + @Operation(summary="修改") + @LogOperation("修改") + public Result update(@RequestBody CbamCarbonDirectDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + cbamCarbonDirectService.updateDto(dto); + return new Result<>(); + } + + @DeleteMapping + @Operation(summary="删除") + @LogOperation("删除") + public Result 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 params, HttpServletResponse response) throws Exception { + * List list = cbamCarbonDirectService.listAs(params, CbamCarbonDirectDTO.class); + * //ExcelUtils.exportExcelToTarget(response, null, "直接排放量B-Excel", list, CbamCarbonDirectExcel.class); + *} + */ + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonProgressController.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonProgressController.java index 0728320..05af6c0 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/controller/CbamCarbonProgressController.java +++ b/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({ diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonBurnDTO.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonBurnDTO.java index c05a56c..33f4487 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/dto/CbamCarbonBurnDTO.java +++ b/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 = "排放因子") 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 new file mode 100644 index 0000000..a0c5a22 --- /dev/null +++ b/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; +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonBurnEntity.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonBurnEntity.java index 20a4fbd..237bb30 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonBurnEntity.java +++ b/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; /** * 排放源名称 */ diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonDirectEntity.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonDirectEntity.java new file mode 100644 index 0000000..3e8c33c --- /dev/null +++ b/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; +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonProgressEntity.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonProgressEntity.java index a25a7f9..0c2f0a8 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/entity/CbamCarbonProgressEntity.java +++ b/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; /** * 消耗量 */ diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/mapper/CbamCarbonDirectMapper.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/mapper/CbamCarbonDirectMapper.java new file mode 100644 index 0000000..b663595 --- /dev/null +++ b/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 { + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonBurnService.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonBurnService.java index be520f5..32c068f 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonBurnService.java +++ b/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 { + + void batchSave(List dtoList); + + Map calculate(Long fuelId, BigDecimal consumeAmount,BigDecimal biomassContent); + + } \ 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 new file mode 100644 index 0000000..7484518 --- /dev/null +++ b/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 { + + List listByIndustryId(Long industryId); + +} \ No newline at end of file diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonProgressService.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonProgressService.java index 8a6d0b4..ace25bd 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/CbamCarbonProgressService.java +++ b/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; diff --git a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamCarbonBurnServiceImpl.java b/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamCarbonBurnServiceImpl.java index 67f2e29..77085b5 100644 --- a/modules/cbam/src/main/java/com/thing/cbam/directCarbon/service/impl/CbamCarbonBurnServiceImpl.java +++ b/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 implements CbamCarbonBurnService { + private final CbamFuelDictService cbamFuelDictService; @Override public QueryWrapper getWrapper(Map params){ @@ -26,4 +39,49 @@ public class CbamCarbonBurnServiceImpl extends BaseServiceImpl dtoList) { + List cbamCarbonBurnEntities = ConvertUtils.sourceToTarget(dtoList, CbamCarbonBurnEntity.class); + mapper.insertBatch(cbamCarbonBurnEntities); + } + + @Override + public Map calculate(Long fuelId, BigDecimal consumeAmount,BigDecimal biomassContent) { + Map 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; + } } \ 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 new file mode 100644 index 0000000..3b51e6f --- /dev/null +++ b/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 implements CbamCarbonDirectService { + + @Override + public QueryWrapper getWrapper(Map params){ + QueryWrapper wrapper = new QueryWrapper(); + return wrapper; + } + + + @Override + public List listByIndustryId(Long industryId) { + QueryWrapper queryWrapper = QueryWrapper.create().eq(CbamCarbonDirectEntity::getIndustryId, industryId) + .orderBy(CbamCarbonDirectEntity::getType, true) + .orderBy(CbamCarbonDirectEntity::getSort, true); + List cbamCarbonDirectDTOS = mapper.selectListByQueryAs(queryWrapper, CbamCarbonDirectDTO.class); + return cbamCarbonDirectDTOS; + } +} \ No newline at end of file