From 5df7e474670a561d4bde7802d3cbcfd58cf7f23c Mon Sep 17 00:00:00 2001 From: haha Date: Fri, 18 Aug 2023 00:18:13 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=A2=9E=E5=8A=A0=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/surBuildNode/buildNodeDrawer.vue | 178 +++++++++++++----- .../SurProjectBuildNodeDataController.java | 26 ++- .../vo/SurProjectBuildNodeDataExport.java | 149 +++++++++++++++ .../where/SurProjectBuildNodeDataExport.java | 4 - .../ISurProjectBuildNodeDataService.java | 3 + .../SurProjectBuildNodeDataServiceImpl.java | 34 ++++ 6 files changed, 346 insertions(+), 48 deletions(-) create mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/SurProjectBuildNodeDataExport.java delete mode 100644 yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/where/SurProjectBuildNodeDataExport.java diff --git a/ruoyi-ui/src/views/project/surBuildNode/buildNodeDrawer.vue b/ruoyi-ui/src/views/project/surBuildNode/buildNodeDrawer.vue index 5e7da813..7be73460 100644 --- a/ruoyi-ui/src/views/project/surBuildNode/buildNodeDrawer.vue +++ b/ruoyi-ui/src/views/project/surBuildNode/buildNodeDrawer.vue @@ -4,37 +4,82 @@ - - - -
- -
- -
+ + + +
+ +
+
- +
+
+ + + + +
将文件拖到此处,或点击上传
+
+ 仅允许导入xls、xlsx格式文件。 + 下载模板 +
+
+ +
+ diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectBuildNodeDataController.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectBuildNodeDataController.java index 81227aee..8ce3d016 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectBuildNodeDataController.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/controller/SurProjectBuildNodeDataController.java @@ -1,8 +1,12 @@ package com.yanzhu.jh.project.controller; +import java.io.InputStream; +import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.yanzhu.jh.project.domain.vo.SurProjectBuildNodeDataExport; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -21,6 +25,7 @@ import com.yanzhu.jh.project.domain.SurProjectBuildNodeData; import com.yanzhu.jh.project.service.ISurProjectBuildNodeDataService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import org.springframework.web.multipart.MultipartFile; /** * 项目建设节点数据Controller @@ -58,8 +63,25 @@ public class SurProjectBuildNodeDataController extends BaseController public void export(HttpServletResponse response, SurProjectBuildNodeData surProjectBuildNodeData) { List list = surProjectBuildNodeDataService.selectSurProjectBuildNodeDataList(surProjectBuildNodeData); - ExcelUtil util = new ExcelUtil(SurProjectBuildNodeData.class); - util.exportExcel(response, list, "项目建设节点数据数据"); + List exportList=new ArrayList<>(); + for(SurProjectBuildNodeData it :list){ + exportList.add(SurProjectBuildNodeDataExport.convert(it)); + } + ExcelUtil util = new ExcelUtil(SurProjectBuildNodeDataExport.class); + util.exportExcel(response, exportList, "项目计划节点"); + } + + @Log(title = "项目建设节点数据", businessType = BusinessType.IMPORT) + @PreAuthorize("@ss.hasPermi('project:build_node_data:import')") + @PostMapping("/importData") + public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception + { + ExcelUtil util = new ExcelUtil(SurProjectBuildNodeDataExport.class); + InputStream is=file.getInputStream(); + List list = util.importExcel(is); + is.close(); + int n=surProjectBuildNodeDataService.importData(list); + return success("成功导入"+n+"条数据!"); } /** diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/SurProjectBuildNodeDataExport.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/SurProjectBuildNodeDataExport.java new file mode 100644 index 00000000..1d23fc69 --- /dev/null +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/vo/SurProjectBuildNodeDataExport.java @@ -0,0 +1,149 @@ +package com.yanzhu.jh.project.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.yanzhu.jh.project.domain.SurProjectBuildNodeData; +import org.apache.poi.ss.usermodel.HorizontalAlignment; + +import java.util.Date; + +public class SurProjectBuildNodeDataExport { + + @Excel(name = "编号(不要修改)", width = 20,prompt = "不要修改修改此列") + private Long id; + @Excel(name = "项目编号", width = 10,prompt = "不要修改修改此列") + private Long projectId; + @Excel(name = "项目名称", width = 30,align = HorizontalAlignment.LEFT,prompt = "不要修改修改此列") + private String projectName; + + @Excel(name = "一级", width = 20,align = HorizontalAlignment.LEFT,prompt = "不要修改修改此列") + private String lvl1; + @Excel(name = "二级", width = 20,align = HorizontalAlignment.LEFT,prompt = "不要修改修改此列") + private String lvl2; + @Excel(name = "三级", width = 20,align = HorizontalAlignment.LEFT,prompt = "不要修改修改此列") + private String lvl3; + + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "计划开始时间", width = 15, dateFormat = "yyyy-MM-dd") + private Date planStartDate; + + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "计划结束时间", width = 15, dateFormat = "yyyy-MM-dd") + private Date planEndDate; + + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "实际开始时间", width = 15, dateFormat = "yyyy-MM-dd") + private Date startDate; + + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "实际结束时间", width = 15, dateFormat = "yyyy-MM-dd") + private Date endDate; + + public Long getProjectId() { + return projectId; + } + + public void setProjectId(Long projectId) { + this.projectId = projectId; + } + + public static SurProjectBuildNodeDataExport convert(SurProjectBuildNodeData it) { + SurProjectBuildNodeDataExport d=new SurProjectBuildNodeDataExport(); + d.id=it.getId(); + d.projectName=it.getProject().getProjectName(); + d.planStartDate=it.getPlanStartDate(); + d.planEndDate=it.getPlanEndDate(); + d.startDate=it.getStartDate(); + d.endDate=it.getEndDate(); + d.projectId=it.getProjectId(); + String name= it.getBaseBuildNode().getNodeText(); + String lvl=it.getBaseBuildNode().getNodeLvl(); + d.lvl1=""; + d.lvl2=""; + d.lvl3=""; + if(lvl.length()==2){ + d.lvl1=name; + } + if(lvl.length()==4){ + d.lvl2=name; + } + if(lvl.length()==6){ + d.lvl3=name; + } + return d; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProjectName() { + return projectName; + } + + public void setProjectName(String projectName) { + this.projectName = projectName; + } + + public String getLvl1() { + return lvl1; + } + + public void setLvl1(String lvl1) { + this.lvl1 = lvl1; + } + + public String getLvl2() { + return lvl2; + } + + public void setLvl2(String lvl2) { + this.lvl2 = lvl2; + } + + public String getLvl3() { + return lvl3; + } + + public void setLvl3(String lvl3) { + this.lvl3 = lvl3; + } + + public Date getPlanStartDate() { + return planStartDate; + } + + public void setPlanStartDate(Date planStartDate) { + this.planStartDate = planStartDate; + } + + public Date getPlanEndDate() { + return planEndDate; + } + + public void setPlanEndDate(Date planEndDate) { + this.planEndDate = planEndDate; + } + + public Date getStartDate() { + return startDate; + } + + public void setStartDate(Date startDate) { + this.startDate = startDate; + } + + public Date getEndDate() { + return endDate; + } + + public void setEndDate(Date endDate) { + this.endDate = endDate; + } + + +} diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/where/SurProjectBuildNodeDataExport.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/where/SurProjectBuildNodeDataExport.java deleted file mode 100644 index 7717bed0..00000000 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/domain/where/SurProjectBuildNodeDataExport.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.yanzhu.jh.project.domain.where; - -public class SurProjectBuildNodeDataExport { -} diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/ISurProjectBuildNodeDataService.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/ISurProjectBuildNodeDataService.java index 9526ad97..c869a661 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/ISurProjectBuildNodeDataService.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/ISurProjectBuildNodeDataService.java @@ -2,6 +2,7 @@ package com.yanzhu.jh.project.service; import java.util.List; import com.yanzhu.jh.project.domain.SurProjectBuildNodeData; +import com.yanzhu.jh.project.domain.vo.SurProjectBuildNodeDataExport; /** * 项目建设节点数据Service接口 @@ -60,4 +61,6 @@ public interface ISurProjectBuildNodeDataService public int deleteSurProjectBuildNodeDataById(Long id); public int addProjectNodes(long projectId); + + public int importData(List list); } diff --git a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectBuildNodeDataServiceImpl.java b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectBuildNodeDataServiceImpl.java index a0d1fc98..47026719 100644 --- a/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectBuildNodeDataServiceImpl.java +++ b/yanzhu-jh/src/main/java/com/yanzhu/jh/project/service/impl/SurProjectBuildNodeDataServiceImpl.java @@ -1,7 +1,10 @@ package com.yanzhu.jh.project.service.impl; import java.util.List; +import java.util.stream.Collectors; + import com.ruoyi.common.utils.DateUtils; +import com.yanzhu.jh.project.domain.vo.SurProjectBuildNodeDataExport; import com.yanzhu.jh.project.mapper.SurProjectMapper; import com.yanzhu.jh.project.domain.BaseBuildNode; import com.yanzhu.jh.project.mapper.BaseBuildNodeMapper; @@ -119,4 +122,35 @@ public class SurProjectBuildNodeDataServiceImpl implements ISurProjectBuildNodeD } return n; } + + @Override + public int importData(List list) { + if(list.size()==0){ + return 0; + } + SurProjectBuildNodeData where=new SurProjectBuildNodeData(); + where.setProjectId(list.get(0).getProjectId()); + List items=surProjectBuildNodeDataMapper.selectSurProjectBuildNodeDataList(where); + if(items.size()==0){ + return 0; + } + int cnt=0; + try { + for (SurProjectBuildNodeDataExport it : list) { + List finds = items.stream().filter(d -> d.getId() == it.getId()).collect(Collectors.toList()); + if (finds.size() == 1) { + SurProjectBuildNodeData find = finds.get(0); + find.setPlanEndDate(it.getPlanEndDate()); + find.setPlanStartDate(it.getPlanStartDate()); + find.setStartDate(it.getStartDate()); + find.setEndDate(it.getEndDate()); + cnt++; + updateSurProjectBuildNodeData(find); + } + } + }catch (Exception ex){ + ex.printStackTrace(); + } + return cnt; + } }