修改绿能的导入和导出功能

dev_xd
haha 2025-02-11 23:08:06 +08:00
parent 53193f94bb
commit e4479a11ad
3 changed files with 31 additions and 11 deletions

View File

@ -21,17 +21,17 @@ public class GreenCarbonItem extends BaseEntity
@Excel(name = "ID(有ID进行更新,无ID进行增加)") @Excel(name = "ID(有ID进行更新,无ID进行增加)")
private Long id; private Long id;
@Excel(name = "公司")
private String compName; private String compName;
/** 公司主键 */ /** 公司主键 */
@Excel(name = "公司ID")
private Long comId; private Long comId;
@Excel(name = "分包单位")
private String projectName; private String projectName;
/** $column.columnComment */ /** $column.columnComment */
/** 分包单位 */ /** 分包单位 */
@Excel(name = "分包单位ID")
private Long projectId; private Long projectId;
/** 碳因子类型 */ /** 碳因子类型 */

View File

@ -4,6 +4,7 @@ import java.io.*;
import java.nio.file.Files; import java.nio.file.Files;
import java.util.List; import java.util.List;
import cn.hutool.core.util.NumberUtil;
import com.yanzhu.common.core.utils.poi.ExcelUtil; import com.yanzhu.common.core.utils.poi.ExcelUtil;
import com.yanzhu.common.core.web.controller.BaseController; import com.yanzhu.common.core.web.controller.BaseController;
import com.yanzhu.common.core.web.domain.AjaxResult; import com.yanzhu.common.core.web.domain.AjaxResult;
@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
/** /**
@ -80,12 +82,20 @@ public class GreenCarbonItemController extends BaseController
@RequiresPermissions("manage:greenCarbonItem:import") @RequiresPermissions("manage:greenCarbonItem:import")
@Log(title = "碳因子管理", businessType = BusinessType.IMPORT) @Log(title = "碳因子管理", businessType = BusinessType.IMPORT)
@PostMapping("/import") @PostMapping("/import")
public AjaxResult importData(HttpServletResponse response,MultipartFile file) throws Exception { public AjaxResult importData(HttpServletResponse response, MultipartFile file, HttpServletRequest request) throws Exception {
ExcelUtil<GreenCarbonItem> util = new ExcelUtil<GreenCarbonItem>(GreenCarbonItem.class); ExcelUtil<GreenCarbonItem> util = new ExcelUtil<GreenCarbonItem>(GreenCarbonItem.class);
List<GreenCarbonItem> list= util.importExcel(file.getInputStream()); List<GreenCarbonItem> list= util.importExcel(file.getInputStream());
GreenCarbonItem where=new GreenCarbonItem(); GreenCarbonItem where=new GreenCarbonItem();
List<GreenCarbonItem> findList; List<GreenCarbonItem> findList;
long prjId= NumberUtil.parseLong(request.getParameter("prjId"),0l);
long comId= NumberUtil.parseLong(request.getParameter("comId"),0l);
for (GreenCarbonItem item : list){ for (GreenCarbonItem item : list){
if(prjId==0||comId==0){
item.setRemark("无效的项目ID或租户ID");
continue;
}
item.setProjectId(prjId);
item.setComId(comId);
if(item.getId()==null|| item.getId().equals(0l)){ if(item.getId()==null|| item.getId().equals(0l)){
where.setComId(item.getComId()); where.setComId(item.getComId());
where.setProjectId(item.getProjectId()); where.setProjectId(item.getProjectId());
@ -93,7 +103,12 @@ public class GreenCarbonItemController extends BaseController
where.setCarbonFactorType(item.getCarbonFactorType()); where.setCarbonFactorType(item.getCarbonFactorType());
findList=greenCarbonItemService.selectGreenCarbonItemList(where); findList=greenCarbonItemService.selectGreenCarbonItemList(where);
if(findList.size()>0){ if(findList.size()>0){
item.setRemark("当前项目已存在相同数据!"); findList.stream().forEach(item1->{
item1.setUnit(item.getUnit());
item1.setCarbonFactor(item.getCarbonFactor());
greenCarbonItemService.updateGreenCarbonItem(item1);
});
item.setRemark("修改成功!当前项目已存在相同数据!");
} else{ } else{
greenCarbonItemService.insertGreenCarbonItem(item); greenCarbonItemService.insertGreenCarbonItem(item);
item.setRemark("增加成功!"); item.setRemark("增加成功!");
@ -103,8 +118,8 @@ public class GreenCarbonItemController extends BaseController
if(old==null){ if(old==null){
item.setRemark("无效ID"); item.setRemark("无效ID");
}else{ }else{
where.setComId(item.getComId()); where.setComId(old.getComId());
where.setProjectId(item.getProjectId()); where.setProjectId(old.getProjectId());
where.setCarbonName(item.getCarbonName()); where.setCarbonName(item.getCarbonName());
where.setCarbonFactorType(item.getCarbonFactorType()); where.setCarbonFactorType(item.getCarbonFactorType());
findList = greenCarbonItemService.selectGreenCarbonItemList(where); findList = greenCarbonItemService.selectGreenCarbonItemList(where);

View File

@ -36,14 +36,14 @@
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
v-hasPermi="['manage:greenCarbonItem:remove']">删除</el-button> v-hasPermi="['manage:greenCarbonItem:remove']">删除</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5" v-if="userStore.currentPrjId">
<el-upload ref="uploadRef" :limit="1" accept=".xlsx" :headers="upload.headers" v-hasPermi="['manage:greenCarbonItem:import']" <el-upload ref="uploadRef" :limit="1" accept=".xlsx" :headers="upload.headers" v-hasPermi="['manage:greenCarbonItem:import']"
:action="upload.url" :disabled="upload.isUploading" :action="upload.url" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="true"> :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="true">
<el-button type="primary" v-loading="upload.isUploading" >导入</el-button> <el-button type="primary" v-loading="upload.isUploading" >导入</el-button>
</el-upload> </el-upload>
</el-col> </el-col>
<el-col :span="1.5"> <el-col :span="1.5" v-if="userStore.currentPrjId">
<el-button type="success" plain icon="Download" @click="handleExport" <el-button type="success" plain icon="Download" @click="handleExport"
v-hasPermi="['manage:greenCarbonItem:export']">导出</el-button> v-hasPermi="['manage:greenCarbonItem:export']">导出</el-button>
</el-col> </el-col>
@ -132,7 +132,7 @@
</el-table> </el-table>
<template #footer> <template #footer>
<div class="dialog-footer" style="text-align: center;"> <div class="dialog-footer" style="text-align: center;">
<el-button type="primary" @click="data.openImport=false"> </el-button> <el-button type="primary" @click="doImportOk"> </el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -364,10 +364,15 @@ const handleFileSuccess = (response, file, fileList) => {
} }
}; };
function doImportOk(){
data.openImport=false
getList();
}
getProjectList(()=>{ getProjectList(()=>{
getList(); getList();
upload.url=import.meta.env.VITE_APP_BASE_API + "/manage/greenCarbonItem/import?prjId="+userStore.currentPrjId+"&comId="+userStore.currentComId;
}); });
</script> </script>
<style type="scss"> <style type="scss">