update 增加碳因子管理

dev_xd
lijun 2024-12-09 00:08:09 +08:00
parent d641a73d5e
commit 69e2d0cb35
21 changed files with 2151 additions and 3 deletions

View File

@ -28,7 +28,8 @@
<pagehelper.boot.version>1.4.6</pagehelper.boot.version>
<druid.version>1.2.16</druid.version>
<dynamic-ds.version>3.5.2</dynamic-ds.version>
<commons.io.version>2.13.0</commons.io.version>
<commons.io.version>2.16.1</commons.io.version>
<org.projectlombok>1.18.16</org.projectlombok>
<velocity.version>2.3</velocity.version>
<fastjson.version>2.0.23</fastjson.version>
<jjwt.version>0.9.1</jjwt.version>

View File

@ -0,0 +1,170 @@
package com.yanzhu.manage.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.yanzhu.common.core.annotation.Excel;
import com.yanzhu.common.core.web.domain.BaseEntity;
import java.util.Date;
/**
* green_carbon_data
*
* @author yanzhu
* @date 2024-12-07
*/
public class GreenCarbonData extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 公司主键 */
@Excel(name = "公司主键")
private Long comId;
/** 分包单位 */
@Excel(name = "分包单位")
private Long projectId;
/** 因子ID-外键 */
@Excel(name = "因子ID-外键")
private Long itemId;
/** 预估使用数量 */
@Excel(name = "预估使用数量")
private Long estimateValue;
/** 实际使用量 */
@Excel(name = " 实际使用量")
private Long practicalValue;
/** 状态 */
@Excel(name = "状态")
private Long state;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isDel;
private GreenCarbonItem greenCarbonItem;
public GreenCarbonItem getGreenCarbonItem() {
return greenCarbonItem;
}
public void setGreenCarbonItem(GreenCarbonItem greenCarbonItem) {
this.greenCarbonItem = greenCarbonItem;
}
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setComId(Long comId)
{
this.comId = comId;
}
public Long getComId()
{
return comId;
}
public void setProjectId(Long projectId)
{
this.projectId = projectId;
}
public Long getProjectId()
{
return projectId;
}
public void setItemId(Long itemId)
{
this.itemId = itemId;
}
public Long getItemId()
{
return itemId;
}
public void setEstimateValue(Long estimateValue)
{
this.estimateValue = estimateValue;
}
public Long getEstimateValue()
{
return estimateValue;
}
public void setPracticalValue(Long practicalValue)
{
this.practicalValue = practicalValue;
}
public Long getPracticalValue()
{
return practicalValue;
}
public void setState(Long state)
{
this.state = state;
}
public Long getState()
{
return state;
}
public void setIsDel(Long isDel)
{
this.isDel = isDel;
}
private String projectName;
private String compName;
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getCompName() {
return compName;
}
public void setCompName(String compName) {
this.compName = compName;
}
public Long getIsDel()
{
return isDel;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("comId", getComId())
.append("projectId", getProjectId())
.append("itemId", getItemId())
.append("estimateValue", getEstimateValue())
.append("practicalValue", getPracticalValue())
.append("state", getState())
.append("remark", getRemark())
.append("isDel", getIsDel())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -0,0 +1,195 @@
package com.yanzhu.manage.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.yanzhu.common.core.annotation.Excel;
import com.yanzhu.common.core.web.domain.BaseEntity;
import java.util.Date;
/**
* green_carbon_item
*
* @author yanzhu
* @date 2024-12-07
*/
public class GreenCarbonItem extends BaseEntity
{
private static final long serialVersionUID = 1L;
@Excel(name = "ID(有ID进行更新,无ID进行增加)")
private Long id;
@Excel(name = "公司")
private String compName;
/** 公司主键 */
@Excel(name = "公司ID")
private Long comId;
@Excel(name = "分包单位")
private String projectName;
/** $column.columnComment */
/** 分包单位 */
@Excel(name = "分包单位ID")
private Long projectId;
/** 碳因子类型 */
@Excel(name = "碳因子类型1-建筑材料2-油料3-电")
private Long carbonFactorType;
/** 碳因子类型 */
@Excel(name = "碳因子类型")
private String factorType;
/** 名称 */
@Excel(name = "名称")
private String carbonName;
/** 单位 */
@Excel(name = "单位")
private String unit;
/** 碳排放因子 */
@Excel(name = "碳排放因子")
private Long carbonFactor;
@Excel(name = "说明")
private String remark;
@Override
public String getRemark() {
return remark;
}
@Override
public void setRemark(String remark) {
this.remark = remark;
}
private Long state;
public String getProjectName() {
return projectName;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getCompName() {
return compName;
}
public void setCompName(String compName) {
this.compName = compName;
}
private Long isDel;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setComId(Long comId)
{
this.comId = comId;
}
public Long getComId()
{
return comId;
}
public void setProjectId(Long projectId)
{
this.projectId = projectId;
}
public Long getProjectId()
{
return projectId;
}
public void setCarbonFactorType(Long carbonFactorType)
{
this.carbonFactorType = carbonFactorType;
}
public Long getCarbonFactorType()
{
return carbonFactorType;
}
public void setCarbonName(String carbonName)
{
this.carbonName = carbonName;
}
public String getCarbonName()
{
return carbonName;
}
public void setUnit(String unit)
{
this.unit = unit;
}
public String getUnit()
{
return unit;
}
public void setCarbonFactor(Long carbonFactor)
{
this.carbonFactor = carbonFactor;
}
public Long getCarbonFactor()
{
return carbonFactor;
}
public void setState(Long state)
{
this.state = state;
}
public Long getState()
{
return state;
}
public void setIsDel(Long isDel)
{
this.isDel = isDel;
}
public Long getIsDel()
{
return isDel;
}
public String getFactorType() {
return factorType;
}
public void setFactorType(String factorType) {
this.factorType = factorType;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("comId", getComId())
.append("projectId", getProjectId())
.append("carbonFactorType", getCarbonFactorType())
.append("carbonName", getCarbonName())
.append("unit", getUnit())
.append("carbonFactor", getCarbonFactor())
.append("state", getState())
.append("remark", getRemark())
.append("isDel", getIsDel())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -0,0 +1,61 @@
package com.yanzhu.manage.mapper;
import java.util.List;
import com.yanzhu.manage.domain.GreenCarbonData;
/**
* Mapper
*
* @author yanzhu
* @date 2024-12-07
*/
public interface GreenCarbonDataMapper
{
/**
*
*
* @param id
* @return
*/
public GreenCarbonData selectGreenCarbonDataById(Long id);
/**
*
*
* @param greenCarbonData
* @return
*/
public List<GreenCarbonData> selectGreenCarbonDataList(GreenCarbonData greenCarbonData);
/**
*
*
* @param greenCarbonData
* @return
*/
public int insertGreenCarbonData(GreenCarbonData greenCarbonData);
/**
*
*
* @param greenCarbonData
* @return
*/
public int updateGreenCarbonData(GreenCarbonData greenCarbonData);
/**
*
*
* @param id
* @return
*/
public int deleteGreenCarbonDataById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteGreenCarbonDataByIds(Long[] ids);
}

View File

@ -0,0 +1,61 @@
package com.yanzhu.manage.mapper;
import java.util.List;
import com.yanzhu.manage.domain.GreenCarbonItem;
/**
* Mapper
*
* @author yanzhu
* @date 2024-12-07
*/
public interface GreenCarbonItemMapper
{
/**
*
*
* @param id
* @return
*/
public GreenCarbonItem selectGreenCarbonItemById(Long id);
/**
*
*
* @param greenCarbonItem
* @return
*/
public List<GreenCarbonItem> selectGreenCarbonItemList(GreenCarbonItem greenCarbonItem);
/**
*
*
* @param greenCarbonItem
* @return
*/
public int insertGreenCarbonItem(GreenCarbonItem greenCarbonItem);
/**
*
*
* @param greenCarbonItem
* @return
*/
public int updateGreenCarbonItem(GreenCarbonItem greenCarbonItem);
/**
*
*
* @param id
* @return
*/
public int deleteGreenCarbonItemById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteGreenCarbonItemByIds(Long[] ids);
}

View File

@ -0,0 +1,121 @@
<?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.yanzhu.manage.mapper.GreenCarbonDataMapper">
<resultMap type="GreenCarbonData" id="GreenCarbonDataResult">
<result property="id" column="id" />
<result property="comId" column="com_id" />
<result property="projectId" column="project_id" />
<result property="itemId" column="item_id" />
<result property="estimateValue" column="estimate_value" />
<result property="practicalValue" column="practical_value" />
<result property="state" column="state" />
<result property="remark" column="remark" />
<result property="isDel" column="is_del" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="compName" column="comp_name"/>
<result property="projectName" column="project_name"/>
<association property="greenCarbonItem" javaType="GreenCarbonItem">
<id property="id" column="gid"></id>
<result property="carbonFactorType" column="carbon_factor_type" />
<result property="carbonName" column="carbon_name" />
<result property="unit" column="unit" />
<result property="carbonFactor" column="carbon_factor" />
</association>
</resultMap>
<sql id="selectGreenCarbonDataVo">
select gd.id, gd.com_id, gd.project_id, gd.item_id, gd.estimate_value, gd.practical_value, gd.state,
gd.remark, gd.is_del, gd.create_by, gd.create_time, gd.update_by, gd.update_time,
dp.`dept_name` comp_name,pi.`project_name`,g.id gid,g.carbon_factor_type,g.carbon_name,g.unit,g.carbon_factor
from green_carbon_data gd
LEFT JOIN sys_dept dp ON gd.`com_id`=dp.`dept_id`
LEFT JOIN pro_project_info pi ON gd.`project_id`=pi.`id`
LEFT JOIN green_carbon_item g on g.id=gd.item_id
</sql>
<select id="selectGreenCarbonDataList" parameterType="GreenCarbonData" resultMap="GreenCarbonDataResult">
<include refid="selectGreenCarbonDataVo"/>
<where>
<if test="comId != null "> and gd.com_id = #{comId}</if>
<if test="projectId != null "> and gd.project_id = #{projectId}</if>
<if test="itemId != null "> and gd.item_id = #{itemId}</if>
<if test="estimateValue != null "> and gd.estimate_value = #{estimateValue}</if>
<if test="practicalValue != null "> and gd.practical_value = #{practicalValue}</if>
<if test="state != null "> and gd.state = #{state}</if>
<if test="isDel != null "> and gd.is_del = #{isDel}</if>
</where>
</select>
<select id="selectGreenCarbonDataById" parameterType="Long" resultMap="GreenCarbonDataResult">
<include refid="selectGreenCarbonDataVo"/>
where gd.id = #{id}
</select>
<insert id="insertGreenCarbonData" parameterType="GreenCarbonData">
insert into green_carbon_data
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="comId != null">com_id,</if>
<if test="projectId != null">project_id,</if>
<if test="itemId != null">item_id,</if>
<if test="estimateValue != null">estimate_value,</if>
<if test="practicalValue != null">practical_value,</if>
<if test="state != null">state,</if>
<if test="remark != null">remark,</if>
<if test="isDel != null">is_del,</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="comId != null">#{comId},</if>
<if test="projectId != null">#{projectId},</if>
<if test="itemId != null">#{itemId},</if>
<if test="estimateValue != null">#{estimateValue},</if>
<if test="practicalValue != null">#{practicalValue},</if>
<if test="state != null">#{state},</if>
<if test="remark != null">#{remark},</if>
<if test="isDel != null">#{isDel},</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="updateGreenCarbonData" parameterType="GreenCarbonData">
update green_carbon_data
<trim prefix="SET" suffixOverrides=",">
<if test="comId != null">com_id = #{comId},</if>
<if test="projectId != null">project_id = #{projectId},</if>
<if test="itemId != null">item_id = #{itemId},</if>
<if test="estimateValue != null">estimate_value = #{estimateValue},</if>
<if test="practicalValue != null">practical_value = #{practicalValue},</if>
<if test="state != null">state = #{state},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="isDel != null">is_del = #{isDel},</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>
where id = #{id}
</update>
<delete id="deleteGreenCarbonDataById" parameterType="Long">
delete from green_carbon_data where id = #{id}
</delete>
<delete id="deleteGreenCarbonDataByIds" parameterType="String">
delete from green_carbon_data where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,118 @@
<?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.yanzhu.manage.mapper.GreenCarbonItemMapper">
<resultMap type="GreenCarbonItem" id="GreenCarbonItemResult">
<result property="id" column="id" />
<result property="comId" column="com_id" />
<result property="projectId" column="project_id" />
<result property="carbonFactorType" column="carbon_factor_type" />
<result property="carbonName" column="carbon_name" />
<result property="unit" column="unit" />
<result property="carbonFactor" column="carbon_factor" />
<result property="state" column="state" />
<result property="remark" column="remark" />
<result property="isDel" column="is_del" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="compName" column="comp_name"/>
<result property="projectName" column="project_name"/>
</resultMap>
<sql id="selectGreenCarbonItemVo">
select g.id, g.com_id, g.project_id, g.carbon_factor_type, g.carbon_name, g.unit,
g.carbon_factor, g.state, g.remark, g.is_del, g.create_by, g.create_time, g.update_by, g.update_time,
dp.`dept_name` comp_name,pi.`project_name`
from green_carbon_item g
LEFT JOIN sys_dept dp ON g.`com_id`=dp.`dept_id`
LEFT JOIN pro_project_info pi ON g.`project_id`=pi.`id`
</sql>
<select id="selectGreenCarbonItemList" parameterType="GreenCarbonItem" resultMap="GreenCarbonItemResult">
<include refid="selectGreenCarbonItemVo"/>
<where>
<if test="comId != null "> and g.com_id = #{comId}</if>
<if test="projectId != null "> and g.project_id = #{projectId}</if>
<if test="carbonFactorType != null "> and g.carbon_factor_type = #{carbonFactorType}</if>
<if test="carbonName != null and carbonName != ''"> and g.carbon_name like concat('%', #{carbonName}, '%')</if>
<if test="unit != null and unit != ''"> and g.unit = #{unit}</if>
<if test="carbonFactor != null "> and g.carbon_factor = #{carbonFactor}</if>
<if test="state != null "> and g.state = #{state}</if>
<if test="isDel != null "> and g.is_del = #{isDel}</if>
</where>
</select>
<select id="selectGreenCarbonItemById" parameterType="Long" resultMap="GreenCarbonItemResult">
<include refid="selectGreenCarbonItemVo"/>
where g.id = #{id}
</select>
<insert id="insertGreenCarbonItem" parameterType="GreenCarbonItem">
insert into green_carbon_item
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="comId != null">com_id,</if>
<if test="projectId != null">project_id,</if>
<if test="carbonFactorType != null">carbon_factor_type,</if>
<if test="carbonName != null">carbon_name,</if>
<if test="unit != null">unit,</if>
<if test="carbonFactor != null">carbon_factor,</if>
<if test="state != null">state,</if>
<if test="remark != null">remark,</if>
<if test="isDel != null">is_del,</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="comId != null">#{comId},</if>
<if test="projectId != null">#{projectId},</if>
<if test="carbonFactorType != null">#{carbonFactorType},</if>
<if test="carbonName != null">#{carbonName},</if>
<if test="unit != null">#{unit},</if>
<if test="carbonFactor != null">#{carbonFactor},</if>
<if test="state != null">#{state},</if>
<if test="remark != null">#{remark},</if>
<if test="isDel != null">#{isDel},</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="updateGreenCarbonItem" parameterType="GreenCarbonItem">
update green_carbon_item
<trim prefix="SET" suffixOverrides=",">
<if test="comId != null">com_id = #{comId},</if>
<if test="projectId != null">project_id = #{projectId},</if>
<if test="carbonFactorType != null">carbon_factor_type = #{carbonFactorType},</if>
<if test="carbonName != null">carbon_name = #{carbonName},</if>
<if test="unit != null">unit = #{unit},</if>
<if test="carbonFactor != null">carbon_factor = #{carbonFactor},</if>
<if test="state != null">state = #{state},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="isDel != null">is_del = #{isDel},</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>
where id = #{id}
</update>
<delete id="deleteGreenCarbonItemById" parameterType="Long">
delete from green_carbon_item where id = #{id}
</delete>
<delete id="deleteGreenCarbonItemByIds" parameterType="String">
delete from green_carbon_item where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,107 @@
package com.yanzhu.manage.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import com.yanzhu.common.core.utils.poi.ExcelUtil;
import com.yanzhu.common.core.web.controller.BaseController;
import com.yanzhu.common.core.web.domain.AjaxResult;
import com.yanzhu.common.core.web.page.TableDataInfo;
import com.yanzhu.common.log.annotation.Log;
import com.yanzhu.common.log.enums.BusinessType;
import com.yanzhu.common.security.annotation.RequiresPermissions;
import com.yanzhu.manage.domain.GreenCarbonData;
import com.yanzhu.manage.service.IGreenCarbonDataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Controller
*
* @author yanzhu
* @date 2024-12-07
*/
@RestController
@RequestMapping("/greenCarbonData")
public class GreenCarbonDataController extends BaseController
{
@Autowired
private IGreenCarbonDataService greenCarbonDataService;
/**
*
*/
@RequiresPermissions("manage:greenCarbonData:list")
@GetMapping("/list")
public TableDataInfo list(GreenCarbonData greenCarbonData)
{
startPage();
List<GreenCarbonData> list = greenCarbonDataService.selectGreenCarbonDataList(greenCarbonData);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("manage:greenCarbonData:export")
@Log(title = "建碳管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, GreenCarbonData greenCarbonData)
{
List<GreenCarbonData> list = greenCarbonDataService.selectGreenCarbonDataList(greenCarbonData);
ExcelUtil<GreenCarbonData> util = new ExcelUtil<GreenCarbonData>(GreenCarbonData.class);
util.exportExcel(response, list, "建碳管理数据");
}
/**
*
*/
@RequiresPermissions("manage:greenCarbonData:query")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(greenCarbonDataService.selectGreenCarbonDataById(id));
}
/**
*
*/
@RequiresPermissions("manage:greenCarbonData:add")
@Log(title = "建碳管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody GreenCarbonData greenCarbonData)
{
return toAjax(greenCarbonDataService.insertGreenCarbonData(greenCarbonData));
}
/**
*
*/
@RequiresPermissions("manage:greenCarbonData:edit")
@Log(title = "建碳管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody GreenCarbonData greenCarbonData)
{
return toAjax(greenCarbonDataService.updateGreenCarbonData(greenCarbonData));
}
/**
*
*/
@RequiresPermissions("manage:greenCarbonData:remove")
@Log(title = "建碳管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(greenCarbonDataService.deleteGreenCarbonDataByIds(ids));
}
}

View File

@ -0,0 +1,194 @@
package com.yanzhu.manage.controller;
import java.io.*;
import java.nio.file.Files;
import java.util.List;
import com.yanzhu.common.core.utils.poi.ExcelUtil;
import com.yanzhu.common.core.web.controller.BaseController;
import com.yanzhu.common.core.web.domain.AjaxResult;
import com.yanzhu.common.core.web.page.TableDataInfo;
import com.yanzhu.common.log.annotation.Log;
import com.yanzhu.common.log.enums.BusinessType;
import com.yanzhu.common.security.annotation.RequiresPermissions;
import com.yanzhu.manage.domain.GreenCarbonData;
import com.yanzhu.manage.domain.GreenCarbonItem;
import com.yanzhu.manage.service.IGreenCarbonDataService;
import com.yanzhu.manage.service.IGreenCarbonItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
/**
* Controller
*
* @author yanzhu
* @date 2024-12-07
*/
@RestController
@RequestMapping("/greenCarbonItem")
public class GreenCarbonItemController extends BaseController
{
@Autowired
private IGreenCarbonItemService greenCarbonItemService;
/**
*
*/
@RequiresPermissions("manage:greenCarbonItem:list")
@GetMapping("/list")
public TableDataInfo list(GreenCarbonItem greenCarbonItem)
{
startPage();
List<GreenCarbonItem> list = greenCarbonItemService.selectGreenCarbonItemList(greenCarbonItem);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("manage:greenCarbonItem:export")
@Log(title = "碳因子管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, GreenCarbonItem greenCarbonItem)
{
List<GreenCarbonItem> list = greenCarbonItemService.selectGreenCarbonItemList(greenCarbonItem);
for (GreenCarbonItem it : list){
if(it.getCarbonFactorType().equals(1l)){
it.setFactorType("建筑材料");
}
if(it.getCarbonFactorType().equals(2l)){
it.setFactorType("油料");
}
if(it.getCarbonFactorType().equals(3l)){
it.setFactorType("电");
}
}
ExcelUtil<GreenCarbonItem> util = new ExcelUtil<GreenCarbonItem>(GreenCarbonItem.class);
util.exportExcel(response, list, "碳因子管理数据");
}
@RequiresPermissions("manage:greenCarbonItem:import")
@Log(title = "碳因子管理", businessType = BusinessType.IMPORT)
@PostMapping("/import")
public AjaxResult importData(HttpServletResponse response,MultipartFile file) throws Exception {
ExcelUtil<GreenCarbonItem> util = new ExcelUtil<GreenCarbonItem>(GreenCarbonItem.class);
List<GreenCarbonItem> list= util.importExcel(file.getInputStream());
GreenCarbonItem where=new GreenCarbonItem();
List<GreenCarbonItem> findList;
for (GreenCarbonItem item : list){
if(item.getId()==null|| item.getId().equals(0l)){
where.setComId(item.getComId());
where.setProjectId(item.getProjectId());
where.setCarbonName(item.getCarbonName());
where.setCarbonFactorType(item.getCarbonFactorType());
findList=greenCarbonItemService.selectGreenCarbonItemList(where);
if(findList.size()>0){
item.setRemark("当前项目已存在相同数据!");
} else{
greenCarbonItemService.insertGreenCarbonItem(item);
item.setRemark("增加成功!");
}
}else{
GreenCarbonItem old=greenCarbonItemService.selectGreenCarbonItemById(item.getId());
if(old==null){
item.setRemark("无效ID");
}else{
where.setComId(item.getComId());
where.setProjectId(item.getProjectId());
where.setCarbonName(item.getCarbonName());
where.setCarbonFactorType(item.getCarbonFactorType());
findList = greenCarbonItemService.selectGreenCarbonItemList(where);
boolean isFind=false;
if(findList.size()>0){
for(GreenCarbonItem it : findList){
if(!it.getId().equals(item.getId())){
isFind=true;
}
}
}
if(isFind){
item.setRemark("当前项目已存在相同数据!");
}else{
greenCarbonItemService.updateGreenCarbonItem(item);
item.setRemark("修改成功!");
}
}
}
}
return AjaxResult.success(list);
}
/**
*
*/
@RequiresPermissions("manage:greenCarbonItem:query")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(greenCarbonItemService.selectGreenCarbonItemById(id));
}
/**
*
*/
@RequiresPermissions("manage:greenCarbonItem:add")
@Log(title = "碳因子管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody GreenCarbonItem greenCarbonItem)
{
GreenCarbonItem where=new GreenCarbonItem();
where.setComId(greenCarbonItem.getComId());
where.setProjectId(greenCarbonItem.getProjectId());
where.setCarbonName(greenCarbonItem.getCarbonName());
where.setCarbonFactorType(greenCarbonItem.getCarbonFactorType());
List<GreenCarbonItem> list = greenCarbonItemService.selectGreenCarbonItemList(where);
if(list.size()>0){
return AjaxResult.error("当前项目已存在相同数据!");
}
return toAjax(greenCarbonItemService.insertGreenCarbonItem(greenCarbonItem));
}
/**
*
*/
@RequiresPermissions("manage:greenCarbonItem:edit")
@Log(title = "碳因子管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody GreenCarbonItem greenCarbonItem)
{
GreenCarbonItem where=new GreenCarbonItem();
where.setComId(greenCarbonItem.getComId());
where.setProjectId(greenCarbonItem.getProjectId());
where.setCarbonName(greenCarbonItem.getCarbonName());
where.setCarbonFactorType(greenCarbonItem.getCarbonFactorType());
List<GreenCarbonItem> list = greenCarbonItemService.selectGreenCarbonItemList(where);
if(list.size()>0){
for(GreenCarbonItem it : list){
if(!it.getId().equals(greenCarbonItem.getId())){
return AjaxResult.error("当前项目已存在相同数据!");
}
}
}
return toAjax(greenCarbonItemService.updateGreenCarbonItem(greenCarbonItem));
}
/**
*
*/
@RequiresPermissions("manage:greenCarbonItem:remove")
@Log(title = "碳因子管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(greenCarbonItemService.deleteGreenCarbonItemByIds(ids));
}
}

View File

@ -0,0 +1,61 @@
package com.yanzhu.manage.service;
import java.util.List;
import com.yanzhu.manage.domain.GreenCarbonData;
/**
* Service
*
* @author yanzhu
* @date 2024-12-07
*/
public interface IGreenCarbonDataService
{
/**
*
*
* @param id
* @return
*/
public GreenCarbonData selectGreenCarbonDataById(Long id);
/**
*
*
* @param greenCarbonData
* @return
*/
public List<GreenCarbonData> selectGreenCarbonDataList(GreenCarbonData greenCarbonData);
/**
*
*
* @param greenCarbonData
* @return
*/
public int insertGreenCarbonData(GreenCarbonData greenCarbonData);
/**
*
*
* @param greenCarbonData
* @return
*/
public int updateGreenCarbonData(GreenCarbonData greenCarbonData);
/**
*
*
* @param ids
* @return
*/
public int deleteGreenCarbonDataByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteGreenCarbonDataById(Long id);
}

View File

@ -0,0 +1,61 @@
package com.yanzhu.manage.service;
import java.util.List;
import com.yanzhu.manage.domain.GreenCarbonItem;
/**
* Service
*
* @author yanzhu
* @date 2024-12-07
*/
public interface IGreenCarbonItemService
{
/**
*
*
* @param id
* @return
*/
public GreenCarbonItem selectGreenCarbonItemById(Long id);
/**
*
*
* @param greenCarbonItem
* @return
*/
public List<GreenCarbonItem> selectGreenCarbonItemList(GreenCarbonItem greenCarbonItem);
/**
*
*
* @param greenCarbonItem
* @return
*/
public int insertGreenCarbonItem(GreenCarbonItem greenCarbonItem);
/**
*
*
* @param greenCarbonItem
* @return
*/
public int updateGreenCarbonItem(GreenCarbonItem greenCarbonItem);
/**
*
*
* @param ids
* @return
*/
public int deleteGreenCarbonItemByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteGreenCarbonItemById(Long id);
}

View File

@ -0,0 +1,100 @@
package com.yanzhu.manage.service.impl;
import java.util.List;
import com.yanzhu.common.core.context.SecurityContextHolder;
import com.yanzhu.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yanzhu.manage.mapper.GreenCarbonDataMapper;
import com.yanzhu.manage.domain.GreenCarbonData;
import com.yanzhu.manage.service.IGreenCarbonDataService;
/**
* Service
*
* @author yanzhu
* @date 2024-12-07
*/
@Service
public class GreenCarbonDataServiceImpl implements IGreenCarbonDataService
{
@Autowired
private GreenCarbonDataMapper greenCarbonDataMapper;
/**
*
*
* @param id
* @return
*/
@Override
public GreenCarbonData selectGreenCarbonDataById(Long id)
{
return greenCarbonDataMapper.selectGreenCarbonDataById(id);
}
/**
*
*
* @param greenCarbonData
* @return
*/
@Override
public List<GreenCarbonData> selectGreenCarbonDataList(GreenCarbonData greenCarbonData)
{
return greenCarbonDataMapper.selectGreenCarbonDataList(greenCarbonData);
}
/**
*
*
* @param greenCarbonData
* @return
*/
@Override
public int insertGreenCarbonData(GreenCarbonData greenCarbonData)
{
greenCarbonData.setCreateBy(SecurityContextHolder.getUserName());
greenCarbonData.setCreateTime(DateUtils.getNowDate());
return greenCarbonDataMapper.insertGreenCarbonData(greenCarbonData);
}
/**
*
*
* @param greenCarbonData
* @return
*/
@Override
public int updateGreenCarbonData(GreenCarbonData greenCarbonData)
{
greenCarbonData.setUpdateBy(SecurityContextHolder.getUserName());
greenCarbonData.setUpdateTime(DateUtils.getNowDate());
return greenCarbonDataMapper.updateGreenCarbonData(greenCarbonData);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteGreenCarbonDataByIds(Long[] ids)
{
return greenCarbonDataMapper.deleteGreenCarbonDataByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteGreenCarbonDataById(Long id)
{
return greenCarbonDataMapper.deleteGreenCarbonDataById(id);
}
}

View File

@ -0,0 +1,100 @@
package com.yanzhu.manage.service.impl;
import java.util.List;
import com.yanzhu.common.core.context.SecurityContextHolder;
import com.yanzhu.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yanzhu.manage.mapper.GreenCarbonItemMapper;
import com.yanzhu.manage.domain.GreenCarbonItem;
import com.yanzhu.manage.service.IGreenCarbonItemService;
/**
* Service
*
* @author yanzhu
* @date 2024-12-07
*/
@Service
public class GreenCarbonItemServiceImpl implements IGreenCarbonItemService
{
@Autowired
private GreenCarbonItemMapper greenCarbonItemMapper;
/**
*
*
* @param id
* @return
*/
@Override
public GreenCarbonItem selectGreenCarbonItemById(Long id)
{
return greenCarbonItemMapper.selectGreenCarbonItemById(id);
}
/**
*
*
* @param greenCarbonItem
* @return
*/
@Override
public List<GreenCarbonItem> selectGreenCarbonItemList(GreenCarbonItem greenCarbonItem)
{
return greenCarbonItemMapper.selectGreenCarbonItemList(greenCarbonItem);
}
/**
*
*
* @param greenCarbonItem
* @return
*/
@Override
public int insertGreenCarbonItem(GreenCarbonItem greenCarbonItem)
{
greenCarbonItem.setCreateBy(SecurityContextHolder.getUserName());
greenCarbonItem.setCreateTime(DateUtils.getNowDate());
return greenCarbonItemMapper.insertGreenCarbonItem(greenCarbonItem);
}
/**
*
*
* @param greenCarbonItem
* @return
*/
@Override
public int updateGreenCarbonItem(GreenCarbonItem greenCarbonItem)
{
greenCarbonItem.setUpdateBy(SecurityContextHolder.getUserName());
greenCarbonItem.setUpdateTime(DateUtils.getNowDate());
return greenCarbonItemMapper.updateGreenCarbonItem(greenCarbonItem);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteGreenCarbonItemByIds(Long[] ids)
{
return greenCarbonItemMapper.deleteGreenCarbonItemByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteGreenCarbonItemById(Long id)
{
return greenCarbonItemMapper.deleteGreenCarbonItemById(id);
}
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询建碳管理列表
export function listGreenCarbonData(query) {
return request({
url: '/manage/greenCarbonData/list',
method: 'get',
params: query
})
}
// 查询建碳管理详细
export function getGreenCarbonData(id) {
return request({
url: '/manage/greenCarbonData/' + id,
method: 'get'
})
}
// 新增建碳管理
export function addGreenCarbonData(data) {
return request({
url: '/manage/greenCarbonData',
method: 'post',
data: data
})
}
// 修改建碳管理
export function updateGreenCarbonData(data) {
return request({
url: '/manage/greenCarbonData',
method: 'put',
data: data
})
}
// 删除建碳管理
export function delGreenCarbonData(id) {
return request({
url: '/manage/greenCarbonData/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询碳因子管理列表
export function listGreenCarbonItem(query) {
return request({
url: '/manage/greenCarbonItem/list',
method: 'get',
params: query
})
}
// 查询碳因子管理详细
export function getGreenCarbonItem(id) {
return request({
url: '/manage/greenCarbonItem/' + id,
method: 'get'
})
}
// 新增碳因子管理
export function addGreenCarbonItem(data) {
return request({
url: '/manage/greenCarbonItem',
method: 'post',
data: data
})
}
// 修改碳因子管理
export function updateGreenCarbonItem(data) {
return request({
url: '/manage/greenCarbonItem',
method: 'put',
data: data
})
}
// 删除碳因子管理
export function delGreenCarbonItem(id) {
return request({
url: '/manage/greenCarbonItem/' + id,
method: 'delete'
})
}

View File

@ -182,3 +182,10 @@ aside {
margin-bottom: 10px;
}
}
.fgreen{
color: green;
}
.fred{
color: red;
}

View File

@ -82,7 +82,7 @@ function logout() {
type: 'warning'
}).then(() => {
userStore.logOut().then(() => {
location.href = '/index';
location.href = '#/index';
})
}).catch(() => { });
}

View File

@ -52,7 +52,7 @@ router.beforeEach((to, from, next) => {
// 在免登录白名单,直接进入
next()
} else {
next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
next(`/login?redirect=${(to.fullPath[0]=='/'?"#":"")+to.fullPath}`) // 否则全部重定向到登录页
NProgress.done()
}
}

View File

@ -0,0 +1,320 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="公司主键" prop="comId">
<el-input
v-model="queryParams.comId"
placeholder="请输入公司主键"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="分包单位" prop="projectId">
<el-input
v-model="queryParams.projectId"
placeholder="请输入分包单位"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="因子ID-外键" prop="itemId">
<el-input
v-model="queryParams.itemId"
placeholder="请输入因子ID-外键"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="预估使用数量" prop="estimateValue">
<el-input
v-model="queryParams.estimateValue"
placeholder="请输入预估使用数量"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label=" 实际使用量" prop="practicalValue">
<el-input
v-model="queryParams.practicalValue"
placeholder="请输入 实际使用量"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="state">
<el-input
v-model="queryParams.state"
placeholder="请输入状态"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input
v-model="queryParams.isDel"
placeholder="请输入${comment}"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['manage:greenCarbonData:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="Edit"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['manage:greenCarbonData:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="Delete"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['manage:greenCarbonData:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="Download"
@click="handleExport"
v-hasPermi="['manage:greenCarbonData:export']"
>导出</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="greenCarbonDataList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="${comment}" align="center" prop="id" />
<el-table-column label="公司主键" align="center" prop="comId" />
<el-table-column label="分包单位" align="center" prop="projectId" />
<el-table-column label="因子ID-外键" align="center" prop="itemId" />
<el-table-column label="预估使用数量" align="center" prop="estimateValue" />
<el-table-column label=" 实际使用量" align="center" prop="practicalValue" />
<el-table-column label="状态" align="center" prop="state" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="${comment}" align="center" prop="isDel" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['manage:greenCarbonData:edit']"></el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['manage:greenCarbonData:remove']"></el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改建碳管理对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="greenCarbonDataRef" :model="form" :rules="rules" label-width="80px">
<el-form-item label="公司主键" prop="comId">
<el-input v-model="form.comId" placeholder="请输入公司主键" />
</el-form-item>
<el-form-item label="分包单位" prop="projectId">
<el-input v-model="form.projectId" placeholder="请输入分包单位" />
</el-form-item>
<el-form-item label="因子ID-外键" prop="itemId">
<el-input v-model="form.itemId" placeholder="请输入因子ID-外键" />
</el-form-item>
<el-form-item label="预估使用数量" prop="estimateValue">
<el-input v-model="form.estimateValue" placeholder="请输入预估使用数量" />
</el-form-item>
<el-form-item label=" 实际使用量" prop="practicalValue">
<el-input v-model="form.practicalValue" placeholder="请输入 实际使用量" />
</el-form-item>
<el-form-item label="状态" prop="state">
<el-input v-model="form.state" placeholder="请输入状态" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input v-model="form.isDel" placeholder="请输入${comment}" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="GreenCarbonData">
import { listGreenCarbonData, getGreenCarbonData, delGreenCarbonData, addGreenCarbonData, updateGreenCarbonData } from "@/api/manage/greenCarbonData";
const { proxy } = getCurrentInstance();
const greenCarbonDataList = ref([]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
comId: null,
projectId: null,
itemId: null,
estimateValue: null,
practicalValue: null,
state: null,
isDel: null,
},
rules: {
}
});
const { queryParams, form, rules } = toRefs(data);
/** 查询建碳管理列表 */
function getList() {
loading.value = true;
listGreenCarbonData(queryParams.value).then(response => {
greenCarbonDataList.value = response.rows;
total.value = response.total;
loading.value = false;
});
}
//
function cancel() {
open.value = false;
reset();
}
//
function reset() {
form.value = {
id: null,
comId: null,
projectId: null,
itemId: null,
estimateValue: null,
practicalValue: null,
state: null,
remark: null,
isDel: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
proxy.resetForm("greenCarbonDataRef");
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
//
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
function handleAdd() {
reset();
open.value = true;
title.value = "添加建碳管理";
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const _id = row.id || ids.value
getGreenCarbonData(_id).then(response => {
form.value = response.data;
open.value = true;
title.value = "修改建碳管理";
});
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["greenCarbonDataRef"].validate(valid => {
if (valid) {
if (form.value.id != null) {
updateGreenCarbonData(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
addGreenCarbonData(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
});
}
/** 删除按钮操作 */
function handleDelete(row) {
const _ids = row.id || ids.value;
proxy.$modal.confirm('是否确认删除建碳管理编号为"' + _ids + '"的数据项?').then(function() {
return delGreenCarbonData(_ids);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => {});
}
/** 导出按钮操作 */
function handleExport() {
proxy.download('manage/greenCarbonData/export', {
...queryParams.value
}, `greenCarbonData_${new Date().getTime()}.xlsx`)
}
getList();
</script>

View File

@ -0,0 +1,15 @@
const types=[
{value:1,text:'建筑材料'},
{value:2,text:'油料'},
{value:3,text:'电'}
]
export function getGreenCarbon(id){
let tmps=types.filter(d=>d.value==id);
return tmps.length>0?tmps[0]:{};
}
export default {
types
}

View File

@ -0,0 +1,368 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="100px">
<el-form-item label="项目" prop="projectId">
<el-select :disabled="data.currentProId != ''" v-model="queryParams.projectId" placeholder="请选择项目" clearable style="width:150px;"
@change="handleQuery">
<el-option v-for="prj in data.projects" :key="prj.id" :label="prj.projectName" :value="prj.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="碳因子类型" prop="carbonFactorType">
<el-select v-model="queryParams.carbonFactorType" style="width: 120px;" clearable>
<el-option v-for="(it,idx) in data.types" :key="idx" :label="it.text" :value="it.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="名称" prop="carbonName">
<el-input v-model="queryParams.carbonName" placeholder="请输入名称" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="Plus" @click="handleAdd"
v-hasPermi="['manage:greenCarbonItem:add']">新增</el-button>
</el-col>
<el-col :span="1.5" v-if="false">
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
v-hasPermi="['manage:greenCarbonItem:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
v-hasPermi="['manage:greenCarbonItem:remove']">删除</el-button>
</el-col>
<el-col :span="1.5">
<el-upload ref="uploadRef" :limit="1" accept=".xlsx" :headers="upload.headers" v-hasPermi="['manage:greenCarbonItem:import']"
:action="upload.url" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="true">
<el-button type="primary" v-loading="upload.isUploading" >导入</el-button>
</el-upload>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Download" @click="handleExport"
v-hasPermi="['manage:greenCarbonItem:export']">导出</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="greenCarbonItemList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="公司" align="center" prop="compName" v-if="!data.currentProId"/>
<el-table-column label="分包单位" align="center" prop="projectName" v-if="!data.currentProId"/>
<el-table-column label="碳因子类型" align="center" prop="carbonFactorType">
<template #default="scope">{{getGreenCarbon(scope.row.carbonFactorType).text }}</template>
</el-table-column>
<el-table-column label="名称" align="center" prop="carbonName" />
<el-table-column label="单位" align="center" prop="unit">
<template #default="scope">kg CO2/{{scope.row.unit}}</template>
</el-table-column>
<el-table-column label="碳排放因子" align="center" prop="carbonFactor" />
<el-table-column label="创建人" align="center" prop="createBy" />
<el-table-column label="创建时间" align="center" prop="createTime">
<template #default="scope">{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}') }}</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)"
v-hasPermi="['manage:greenCarbonItem:edit']">修改</el-button>
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"
v-hasPermi="['manage:greenCarbonItem:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改碳因子管理对话框 -->
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
<el-form ref="greenCarbonItemRef" :model="form" :rules="rules" label-width="100px">
<el-form-item label="碳因子类型" prop="carbonFactorType">
<el-select v-model="form.carbonFactorType" clearable>
<el-option v-for="(it,idx) in data.types" :key="idx" :label="it.text" :value="it.value"></el-option>
</el-select>
</el-form-item>
<el-row>
<el-col :span="14">
<el-form-item label="名称" prop="carbonName">
<el-input v-model="form.carbonName" placeholder="请输入名称" />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入单位" />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="碳排放因子" prop="carbonFactor">
<el-input v-model="form.carbonFactor" placeholder="请输入碳排放因子" style="width:calc(100% - 120px);"/>
<span style="margin-left:4px;">kg CO2/{{ form.unit }}</span>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</template>
</el-dialog>
<el-dialog title="导入结果" v-model="open" width="800px" append-to-body class="green-import-result-dialog">
<el-table :data="data.importData" height="50vh">
<el-table-column label="公司" align="center" prop="compName" v-if="!data.currentProId"/>
<el-table-column label="分包单位" align="center" prop="projectName" v-if="!data.currentProId"/>
<el-table-column label="碳因子类型" align="center" prop="carbonFactorType">
<template #default="scope">{{getGreenCarbon(scope.row.carbonFactorType).text }}</template>
</el-table-column>
<el-table-column label="名称" align="center" prop="carbonName" />
<el-table-column label="单位" align="center" prop="unit">
<template #default="scope">kg CO2/{{scope.row.unit}}</template>
</el-table-column>
<el-table-column label="碳排放因子" align="center" prop="carbonFactor" />
<el-table-column label="结果" align="center" >
<template #default="scope">
<span :class="(scope.row.remark||'').indexOf('成功')>=0?'fgreen':'fred'">{{scope.row.remark}}</span>
</template>
</el-table-column>
</el-table>
<template #footer>
<div class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="open=false"> </el-button>
</div>
</template>
</el-dialog>
</div>
</template>
<script setup name="GreenCarbonItem">
import { getToken } from "@/utils/auth";
import { findMyProjectList } from "@/api/publics";
import { listGreenCarbonItem, getGreenCarbonItem, delGreenCarbonItem, addGreenCarbonItem, updateGreenCarbonItem } from "@/api/manage/greenCarbonItem";
import greenCarbonData,{getGreenCarbon} from "./greenCarbonData";
import useUserStore from '@/store/modules/user'
const { proxy } = getCurrentInstance();
const userStore = useUserStore()
const greenCarbonItemList = ref([]);
const open = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
/*** 用户导入参数 */
const upload = reactive({
//
open: false,
//
title: "",
//
isUploading: false,
//
updateSupport: 0,
//
headers: { Authorization: "Bearer " + getToken() },
//
url: import.meta.env.VITE_APP_BASE_API + "/manage/greenCarbonItem/import"
});
const data = reactive({
form: {},
queryParams: {
pageNum: 1,
pageSize: 10,
comId: null,
projectId: null,
carbonFactorType: null,
carbonName: null,
unit: null,
carbonFactor: null,
state: null,
isDel: null,
},
rules: {
carbonFactorType: [
{ required: true, message: '请选择碳因子类型', trigger: 'change' },
],
carbonName: [
{ required: true, message: '请输入名称', trigger: 'blur' },
],
unit: [
{ required: true, message: '请输入单位', trigger: 'blur' },
],
carbonFactor: [
{ required: true, message: '请输入碳排放因子', trigger: 'blur' },
],
},
projects:[],
currentProId:'',
types:greenCarbonData.types,
delDatas:[],
importData:[],
});
const { queryParams, form, rules } = toRefs(data);
/** 查询项目列表 */
function getProjectList() {
findMyProjectList({ pageNum: 1, pageSize: 100 }).then(response => {
data.projects = response.rows;
if (userStore.currentProId) {
queryParams.value.projectId = userStore.currentProId
data.currentProId = userStore.currentProId;
}
});
}
/** 查询碳因子管理列表 */
function getList() {
loading.value = true;
listGreenCarbonItem(queryParams.value).then(response => {
greenCarbonItemList.value = response.rows;
total.value = response.total;
loading.value = false;
});
}
//
function cancel() {
open.value = false;
reset();
}
//
function reset() {
form.value = {
id: null,
comId: null,
projectId: null,
carbonFactorType: null,
carbonName: null,
unit: null,
carbonFactor: null,
state: null,
remark: null,
isDel: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
proxy.resetForm("greenCarbonItemRef");
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
}
/** 重置按钮操作 */
function resetQuery() {
proxy.resetForm("queryRef");
handleQuery();
}
//
function handleSelectionChange(selection) {
ids.value = selection.map(item => item.id);
data.delDatas=selection.map(item=> getGreenCarbon(item.carbonFactorType).text +' - '+item.carbonName);
single.value = selection.length != 1;
multiple.value = !selection.length;
}
/** 新增按钮操作 */
function handleAdd() {
if (!userStore.currentProId) {
proxy.$modal.msgWarning("请切换到项目数据!!!");
return false;
}
reset();
form.value.projectId = userStore.currentProId;
form.value.projectName = userStore.currentProName;
open.value = true;
title.value = "碳因子管理-增加";
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
const _id = row.id || ids.value
getGreenCarbonItem(_id).then(response => {
form.value = response.data;
open.value = true;
title.value = "碳因子管理-修改";
});
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["greenCarbonItemRef"].validate(valid => {
if (valid) {
form.value.comId=userStore.currentComId;
if (form.value.id != null) {
updateGreenCarbonItem(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
addGreenCarbonItem(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
});
}
/** 删除按钮操作 */
function handleDelete(row) {
const _ids =row && row.id? getGreenCarbon(row.carbonFactorType).text +' - '+row.carbonName:data.delDatas.join(",");
proxy.$modal.confirm('是否确认删【' + _ids + '】的数据项?').then(function () {
return delGreenCarbonItem(_ids);
}).then(() => {
getList();
proxy.$modal.msgSuccess("删除成功");
}).catch(() => { });
}
/** 导出按钮操作 */
function handleExport() {
proxy.download('manage/greenCarbonItem/export', {
...queryParams.value
}, `greenCarbonItem_${new Date().getTime()}.xlsx`)
}
/**文件上传中处理 */
const handleFileUploadProgress = (event, file, fileList) => {
upload.isUploading = true;
};
/** 文件上传成功处理 */
const handleFileSuccess = (response, file, fileList) => {
upload.isUploading = false;
if(response.code==200){
proxy.$modal.msgSuccess("导入成功!");
data.importData=response.data||[];
open.value=true;
}else{
proxy.$modal.msgError("导入失败!");
}
if(fileList.length>0){
fileList.splice(0,1)
}
};
getList();
getProjectList();
</script>
<style type="scss">
</style>