Ver código fonte

临时提交 切换其他分支修改决策

王苗苗 7 meses atrás
pai
commit
f31a907d67

+ 34 - 0
slibra-common/src/main/java/com/slibra/common/enums/BusinessEnum.java

@@ -337,4 +337,38 @@ public class BusinessEnum {
             return msg;
         }
     }
+
+
+    /**
+     * 大模型返回结果类型枚举
+     */
+    public enum CarbonExtraTeypEnum
+    {
+        ZERO(0, "外加碳源矿化产生的化石源CO₂碳排放量"),
+        ONE(1, "固定式能源燃料消耗产生的碳排放量"),
+        TWO(2, "污水处理阶段药剂消耗产生的碳排放量"),
+        THREE(3, "热泵技术-替碳量"),
+        FOUR(4, "污泥厌氧消化沼气利用的替碳量"),
+        FIVE(5, "污泥焚烧或热解热能利用的替碳量"),
+        ;
+
+        private final int code;
+        private final String msg;
+
+        CarbonExtraTeypEnum(int code, String msg)
+        {
+            this.code = code;
+            this.msg = msg;
+        }
+
+        public int getCode()
+        {
+            return code;
+        }
+
+        public String getMsg()
+        {
+            return msg;
+        }
+    }
 }

+ 61 - 0
slibra-system/src/main/java/com/slibra/business/domain/TXinyiCarbonExtra.java

@@ -0,0 +1,61 @@
+package com.slibra.business.domain;
+
+import java.math.BigDecimal;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.slibra.common.annotation.Excel;
+import com.slibra.common.core.domain.BaseEntity;
+
+/**
+ * 碳排放关联其他计算指标对象 t_xinyi_carbon_extra
+ * 
+ * @author slibra
+ * @date 2024-08-26
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class TXinyiCarbonExtra extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 碳排放主表ID */
+    @Excel(name = "碳排放主表ID")
+    private Long majorId;
+
+    /** 字典编码(字典ID) */
+    @Excel(name = "字典编码", readConverterExp = "字=典ID")
+    private Long dictCode;
+
+    /** 字典名称(具体指标值) */
+    @Excel(name = "字典名称", readConverterExp = "具=体指标值")
+    private String dictLabel;
+
+    /** 类型(0外加碳源矿化产生的化石源CO₂碳排放量  1固定式能源燃料消耗产生的碳排放量 2污水处理阶段药剂消耗产生的碳排放量 3热泵技术-替碳量 4污泥厌氧消化沼气利用的替碳量 5污泥焚烧或热解热能利用的替碳量) */
+    @Excel(name = "类型", readConverterExp = "0=外加碳源矿化产生的化石源CO₂碳排放量,1=固定式能源燃料消耗产生的碳排放量,2=污水处理阶段药剂消耗产生的碳排放量,3=热泵技术-替碳量,4=污泥厌氧消化沼气利用的替碳量,5=污泥焚烧或热解热能利用的替碳量")
+    private int type;
+
+    /** 数量 */
+    @Excel(name = "数量")
+    private BigDecimal amount;
+
+    /** 值 */
+    @Excel(name = "值")
+    private BigDecimal val;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private Long delFlag;
+
+    /** 乐观锁 */
+    @Excel(name = "乐观锁")
+    private Long revision;
+}

+ 3 - 0
slibra-system/src/main/java/com/slibra/business/domain/TXinyiCarbonMajor.java

@@ -443,6 +443,9 @@ public class TXinyiCarbonMajor extends BaseEntity
     //污泥热解碳化或气化
     private BigDecimal wnrjthqhCo2;
 
+    //额外的关联多条数据的集合
+    private List<TXinyiCarbonExtra> extraList;
+
 
 
 

+ 61 - 0
slibra-system/src/main/java/com/slibra/business/mapper/TXinyiCarbonExtraMapper.java

@@ -0,0 +1,61 @@
+package com.slibra.business.mapper;
+
+import java.util.List;
+import com.slibra.business.domain.TXinyiCarbonExtra;
+
+/**
+ * 碳排放关联其他计算指标Mapper接口
+ * 
+ * @author slibra
+ * @date 2024-08-26
+ */
+public interface TXinyiCarbonExtraMapper 
+{
+    /**
+     * 查询碳排放关联其他计算指标
+     * 
+     * @param id 碳排放关联其他计算指标主键
+     * @return 碳排放关联其他计算指标
+     */
+    public TXinyiCarbonExtra selectTXinyiCarbonExtraById(Long id);
+
+    /**
+     * 查询碳排放关联其他计算指标列表
+     * 
+     * @param tXinyiCarbonExtra 碳排放关联其他计算指标
+     * @return 碳排放关联其他计算指标集合
+     */
+    public List<TXinyiCarbonExtra> selectTXinyiCarbonExtraList(TXinyiCarbonExtra tXinyiCarbonExtra);
+
+    /**
+     * 新增碳排放关联其他计算指标
+     * 
+     * @param tXinyiCarbonExtra 碳排放关联其他计算指标
+     * @return 结果
+     */
+    public int insertTXinyiCarbonExtra(TXinyiCarbonExtra tXinyiCarbonExtra);
+
+    /**
+     * 修改碳排放关联其他计算指标
+     * 
+     * @param tXinyiCarbonExtra 碳排放关联其他计算指标
+     * @return 结果
+     */
+    public int updateTXinyiCarbonExtra(TXinyiCarbonExtra tXinyiCarbonExtra);
+
+    /**
+     * 删除碳排放关联其他计算指标
+     * 
+     * @param id 碳排放关联其他计算指标主键
+     * @return 结果
+     */
+    public int deleteTXinyiCarbonExtraById(Long id);
+
+    /**
+     * 批量删除碳排放关联其他计算指标
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTXinyiCarbonExtraByIds(Long[] ids);
+}

+ 61 - 0
slibra-system/src/main/java/com/slibra/business/service/ITXinyiCarbonExtraService.java

@@ -0,0 +1,61 @@
+package com.slibra.business.service;
+
+import java.util.List;
+import com.slibra.business.domain.TXinyiCarbonExtra;
+
+/**
+ * 碳排放关联其他计算指标Service接口
+ * 
+ * @author slibra
+ * @date 2024-08-26
+ */
+public interface ITXinyiCarbonExtraService 
+{
+    /**
+     * 查询碳排放关联其他计算指标
+     * 
+     * @param id 碳排放关联其他计算指标主键
+     * @return 碳排放关联其他计算指标
+     */
+    public TXinyiCarbonExtra selectTXinyiCarbonExtraById(Long id);
+
+    /**
+     * 查询碳排放关联其他计算指标列表
+     * 
+     * @param tXinyiCarbonExtra 碳排放关联其他计算指标
+     * @return 碳排放关联其他计算指标集合
+     */
+    public List<TXinyiCarbonExtra> selectTXinyiCarbonExtraList(TXinyiCarbonExtra tXinyiCarbonExtra);
+
+    /**
+     * 新增碳排放关联其他计算指标
+     * 
+     * @param tXinyiCarbonExtra 碳排放关联其他计算指标
+     * @return 结果
+     */
+    public int insertTXinyiCarbonExtra(TXinyiCarbonExtra tXinyiCarbonExtra);
+
+    /**
+     * 修改碳排放关联其他计算指标
+     * 
+     * @param tXinyiCarbonExtra 碳排放关联其他计算指标
+     * @return 结果
+     */
+    public int updateTXinyiCarbonExtra(TXinyiCarbonExtra tXinyiCarbonExtra);
+
+    /**
+     * 批量删除碳排放关联其他计算指标
+     * 
+     * @param ids 需要删除的碳排放关联其他计算指标主键集合
+     * @return 结果
+     */
+    public int deleteTXinyiCarbonExtraByIds(Long[] ids);
+
+    /**
+     * 删除碳排放关联其他计算指标信息
+     * 
+     * @param id 碳排放关联其他计算指标主键
+     * @return 结果
+     */
+    public int deleteTXinyiCarbonExtraById(Long id);
+}

+ 96 - 0
slibra-system/src/main/java/com/slibra/business/service/impl/TXinyiCarbonExtraServiceImpl.java

@@ -0,0 +1,96 @@
+package com.slibra.business.service.impl;
+
+import java.util.List;
+import com.slibra.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.slibra.business.mapper.TXinyiCarbonExtraMapper;
+import com.slibra.business.domain.TXinyiCarbonExtra;
+import com.slibra.business.service.ITXinyiCarbonExtraService;
+
+/**
+ * 碳排放关联其他计算指标Service业务层处理
+ * 
+ * @author slibra
+ * @date 2024-08-26
+ */
+@Service
+public class TXinyiCarbonExtraServiceImpl implements ITXinyiCarbonExtraService 
+{
+    @Autowired
+    private TXinyiCarbonExtraMapper tXinyiCarbonExtraMapper;
+
+    /**
+     * 查询碳排放关联其他计算指标
+     * 
+     * @param id 碳排放关联其他计算指标主键
+     * @return 碳排放关联其他计算指标
+     */
+    @Override
+    public TXinyiCarbonExtra selectTXinyiCarbonExtraById(Long id)
+    {
+        return tXinyiCarbonExtraMapper.selectTXinyiCarbonExtraById(id);
+    }
+
+    /**
+     * 查询碳排放关联其他计算指标列表
+     * 
+     * @param tXinyiCarbonExtra 碳排放关联其他计算指标
+     * @return 碳排放关联其他计算指标
+     */
+    @Override
+    public List<TXinyiCarbonExtra> selectTXinyiCarbonExtraList(TXinyiCarbonExtra tXinyiCarbonExtra)
+    {
+        return tXinyiCarbonExtraMapper.selectTXinyiCarbonExtraList(tXinyiCarbonExtra);
+    }
+
+    /**
+     * 新增碳排放关联其他计算指标
+     * 
+     * @param tXinyiCarbonExtra 碳排放关联其他计算指标
+     * @return 结果
+     */
+    @Override
+    public int insertTXinyiCarbonExtra(TXinyiCarbonExtra tXinyiCarbonExtra)
+    {
+        tXinyiCarbonExtra.setCreateTime(DateUtils.getNowDate());
+        return tXinyiCarbonExtraMapper.insertTXinyiCarbonExtra(tXinyiCarbonExtra);
+    }
+
+    /**
+     * 修改碳排放关联其他计算指标
+     * 
+     * @param tXinyiCarbonExtra 碳排放关联其他计算指标
+     * @return 结果
+     */
+    @Override
+    public int updateTXinyiCarbonExtra(TXinyiCarbonExtra tXinyiCarbonExtra)
+    {
+        tXinyiCarbonExtra.setUpdateTime(DateUtils.getNowDate());
+        return tXinyiCarbonExtraMapper.updateTXinyiCarbonExtra(tXinyiCarbonExtra);
+    }
+
+    /**
+     * 批量删除碳排放关联其他计算指标
+     * 
+     * @param ids 需要删除的碳排放关联其他计算指标主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTXinyiCarbonExtraByIds(Long[] ids)
+    {
+        return tXinyiCarbonExtraMapper.deleteTXinyiCarbonExtraByIds(ids);
+    }
+
+    /**
+     * 删除碳排放关联其他计算指标信息
+     * 
+     * @param id 碳排放关联其他计算指标主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTXinyiCarbonExtraById(Long id)
+    {
+        return tXinyiCarbonExtraMapper.deleteTXinyiCarbonExtraById(id);
+    }
+}

+ 55 - 4
slibra-system/src/main/java/com/slibra/business/service/impl/TXinyiCarbonMajorServiceImpl.java

@@ -7,10 +7,13 @@ import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
+import com.slibra.business.domain.TXinyiCarbonExtra;
+import com.slibra.business.mapper.TXinyiCarbonExtraMapper;
 import com.slibra.business.res.CarbonSmartQueryDB;
 import com.slibra.business.res.ChartBasic;
 import com.slibra.common.DecimalUtils;
 import com.slibra.common.core.domain.entity.SysDictData;
+import com.slibra.common.enums.BusinessEnum;
 import com.slibra.common.exception.ServiceException;
 import com.slibra.common.utils.DateUtils;
 import com.slibra.common.utils.SecurityUtils;
@@ -23,6 +26,7 @@ import org.springframework.stereotype.Service;
 import com.slibra.business.mapper.TXinyiCarbonMajorMapper;
 import com.slibra.business.domain.TXinyiCarbonMajor;
 import com.slibra.business.service.ITXinyiCarbonMajorService;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import static com.slibra.common.constant.MyConstants.*;
@@ -43,6 +47,9 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
     @Autowired
     private SysDictDataMapper sysDictDataMapper;
 
+    @Autowired
+    private TXinyiCarbonExtraMapper xinyiCarbonExtraMapper;
+
     /**
      * 查询碳排放主
      * 
@@ -74,11 +81,13 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
      * @return 结果
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public int insertTXinyiCarbonMajor(TXinyiCarbonMajor tXinyiCarbonMajor)
     {
         Date nowDate = DateUtils.getNowDate();
+        String username = SecurityUtils.getUsername();
         tXinyiCarbonMajor.setCreateTime(nowDate);
-        tXinyiCarbonMajor.setCreateBy(SecurityUtils.getUsername());
+        tXinyiCarbonMajor.setCreateBy(username);
         String addYearMonth = tXinyiCarbonMajor.getAddYearMonth();
         if(StringUtils.isBlank(addYearMonth))
             throw new ServiceException("请输入核算时间");
@@ -88,7 +97,48 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
         tXinyiCarbonMajor.setAddYear(addYearMonth.substring(0, 4));
         //填报日期(只要年月日)
         tXinyiCarbonMajor.setRemark(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, nowDate));
-        return tXinyiCarbonMajorMapper.insertTXinyiCarbonMajor(tXinyiCarbonMajor);
+        int i = tXinyiCarbonMajorMapper.insertTXinyiCarbonMajor(tXinyiCarbonMajor);
+        //处理关联表
+        List<TXinyiCarbonExtra> extraList = tXinyiCarbonMajor.getExtraList();
+        if(!CollectionUtils.isEmpty(extraList)){
+            for (TXinyiCarbonExtra tXinyiCarbonExtra : extraList) {
+                tXinyiCarbonExtra.setMajorId(tXinyiCarbonMajor.getId());
+                tXinyiCarbonExtra.setVal(this.calculate(tXinyiCarbonExtra));//需要单独计算
+                tXinyiCarbonExtra.setCreateTime(nowDate);
+                tXinyiCarbonExtra.setCreateBy(username);
+                this.xinyiCarbonExtraMapper.insertTXinyiCarbonExtra(tXinyiCarbonExtra);
+            }
+        }
+        //处理计算信息
+        return i;
+    }
+
+    /**
+     *
+     * 明细字段的计算处理
+     * 类型放入到值集中,然后再判断
+     * @param tXinyiCarbonExtra
+     * @return
+     */
+    private BigDecimal calculate(TXinyiCarbonExtra tXinyiCarbonExtra) {
+        int type = tXinyiCarbonExtra.getType();
+        if(type == BusinessEnum.CarbonExtraTeypEnum.ZERO.getCode()){
+
+        }else if(type == BusinessEnum.CarbonExtraTeypEnum.ONE.getCode()){
+
+        }else if(type == BusinessEnum.CarbonExtraTeypEnum.TWO.getCode()){
+
+        }else if(type == BusinessEnum.CarbonExtraTeypEnum.THREE.getCode()){
+
+        }else if(type == BusinessEnum.CarbonExtraTeypEnum.FOUR.getCode()){
+
+        }else if(type == BusinessEnum.CarbonExtraTeypEnum.FIVE.getCode()){
+
+        }else {
+            log.error("暂不支持的类型");
+            throw new ServiceException("");
+        }
+        return null;
     }
 
     /**
@@ -130,8 +180,7 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
 
     @Override
     public CarbonSmartQueryDB getDBDatasByMonth(String month) {
-        CarbonSmartQueryDB carbonSmartQueryDB = this.tXinyiCarbonMajorMapper.getDBDatasByMonth(month.replaceAll("-", "/"));
-        return null;
+        return this.tXinyiCarbonMajorMapper.getDBDatasByMonth(month.replaceAll("-", "/"));
     }
 
     @Override
@@ -253,6 +302,8 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
                 }
             }
         }
+        //关联的多条数据
+        tXinyiCarbonMajor.setExtraList(this.xinyiCarbonExtraMapper.selectTXinyiCarbonExtraList(TXinyiCarbonExtra.builder().majorId(tXinyiCarbonMajor.getId()).build()));
         //处理其他字段
         //todo
 

+ 111 - 0
slibra-system/src/main/resources/mapper/business/TXinyiCarbonExtraMapper.xml

@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.slibra.business.mapper.TXinyiCarbonExtraMapper">
+    
+    <resultMap type="TXinyiCarbonExtra" id="TXinyiCarbonExtraResult">
+        <result property="id"    column="id"    />
+        <result property="majorId"    column="major_id"    />
+        <result property="dictCode"    column="dict_code"    />
+        <result property="dictLabel"    column="dict_label"    />
+        <result property="type"    column="type"    />
+        <result property="amount"    column="amount"    />
+        <result property="val"    column="val"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="revision"    column="revision"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectTXinyiCarbonExtraVo">
+        select id, major_id, dict_code, dict_label, type, amount, val, del_flag, revision, create_by, create_time, update_by, update_time from t_xinyi_carbon_extra
+    </sql>
+
+    <select id="selectTXinyiCarbonExtraList" parameterType="TXinyiCarbonExtra" resultMap="TXinyiCarbonExtraResult">
+        <include refid="selectTXinyiCarbonExtraVo"/>
+        <where>
+            1 = 1
+            <if test="majorId != null "> and major_id = #{majorId}</if>
+            <if test="dictCode != null "> and dict_code = #{dictCode}</if>
+            <if test="dictLabel != null  and dictLabel != ''"> and dict_label = #{dictLabel}</if>
+            <if test="type != null "> and type = #{type}</if>
+            <if test="amount != null "> and amount = #{amount}</if>
+            <if test="val != null "> and val = #{val}</if>
+            <if test="revision != null "> and revision = #{revision}</if>
+        </where>
+        and del_flag = 0 order by id desc
+    </select>
+    
+    <select id="selectTXinyiCarbonExtraById" parameterType="Long" resultMap="TXinyiCarbonExtraResult">
+        <include refid="selectTXinyiCarbonExtraVo"/>
+        where id = #{id} and del_flag = 0
+    </select>
+        
+    <insert id="insertTXinyiCarbonExtra" parameterType="TXinyiCarbonExtra" useGeneratedKeys="true" keyProperty="id">
+        insert into t_xinyi_carbon_extra
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="majorId != null">major_id,</if>
+            <if test="dictCode != null">dict_code,</if>
+            <if test="dictLabel != null">dict_label,</if>
+            <if test="type != null">type,</if>
+            <if test="amount != null">amount,</if>
+            <if test="val != null">val,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="revision != null">revision,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="majorId != null">#{majorId},</if>
+            <if test="dictCode != null">#{dictCode},</if>
+            <if test="dictLabel != null">#{dictLabel},</if>
+            <if test="type != null">#{type},</if>
+            <if test="amount != null">#{amount},</if>
+            <if test="val != null">#{val},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="revision != null">#{revision},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTXinyiCarbonExtra" parameterType="TXinyiCarbonExtra">
+        update t_xinyi_carbon_extra
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="majorId != null">major_id = #{majorId},</if>
+            <if test="dictCode != null">dict_code = #{dictCode},</if>
+            <if test="dictLabel != null">dict_label = #{dictLabel},</if>
+            <if test="type != null">type = #{type},</if>
+            <if test="amount != null">amount = #{amount},</if>
+            <if test="val != null">val = #{val},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="revision != null">revision = #{revision},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        ,revision = revision + 1
+        where id = #{id}
+    </update>
+
+    
+
+    <delete id="deleteTXinyiCarbonExtraById" parameterType="Long">
+        update t_xinyi_carbon_extra set del_flag = 2,revision = revision + 1 where del_flag = 0 and id = #{id}
+    </delete>
+
+    <delete id="deleteTXinyiCarbonExtraByIds" parameterType="String">
+        update t_xinyi_carbon_extra set del_flag = 2,revision = revision + 1 where del_flag = 0 and id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>