Merge branch 'dev' of http://62.234.3.186:3000/sxyanzhu/jhprjv2 into dev
commit
10b6f70376
|
@ -4,37 +4,82 @@
|
||||||
<template slot="title">
|
<template slot="title">
|
||||||
<div>{{ title + ' 【计划节点】' }}</div>
|
<div>{{ title + ' 【计划节点】' }}</div>
|
||||||
<right-toolbar @queryTable="loadData" :search="false">
|
<right-toolbar @queryTable="loadData" :search="false">
|
||||||
|
<template slot="left">
|
||||||
|
<el-button type="primary" @click="doExport">导出</el-button>
|
||||||
|
<el-popover placement="top-start" title="提示" trigger="hover" content="请选择导出的模板修改后的文件。">
|
||||||
|
<el-button type="success" slot="reference" @click="doImport" style="margin:0px 12px;">导入</el-button>
|
||||||
|
</el-popover>
|
||||||
|
|
||||||
|
</template>
|
||||||
</right-toolbar>
|
</right-toolbar>
|
||||||
</template>
|
</template>
|
||||||
<el-tabs v-model="activeName" >
|
<el-tabs v-model="activeName">
|
||||||
<el-tab-pane :label="''+it.nodeText" :name="''+it.id" :key="idx" v-for="(it,idx) in nodes" >
|
<el-tab-pane :label="'' + it.nodeText" :name="'' + it.id" :key="idx" v-for="(it, idx) in nodes">
|
||||||
<node-item :item="it" :showLabel="false" style="border-bottom: solid 1px #ccc;"></node-item>
|
<node-item :item="it" :showLabel="false" style="border-bottom: solid 1px #ccc;"></node-item>
|
||||||
<div v-for="(it2,idx) in it.children" :key="idx" class="lvl-2">
|
<div v-for="(it2, idx) in it.children" :key="idx" class="lvl-2">
|
||||||
<node-item :item="it2"></node-item>
|
<node-item :item="it2"></node-item>
|
||||||
<div v-for="(it3,idx) in it2.children" :key="idx" v-if="it2.children.length>0" style="padding-left: 40px;" class="lvl-3">
|
<div v-for="(it3, idx) in it2.children" :key="idx" v-if="it2.children.length > 0"
|
||||||
<node-item :item="it3"></node-item>
|
style="padding-left: 40px;" class="lvl-3">
|
||||||
</div>
|
<node-item :item="it3"></node-item>
|
||||||
</div>
|
</div>
|
||||||
</el-tab-pane>
|
</div>
|
||||||
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
<!-- 用户导入对话框 -->
|
||||||
|
<el-dialog :title="upload.title" :visible.sync="upload.open" width="600px"
|
||||||
|
:close-on-click-modal="false" :close-on-press-escape="false"
|
||||||
|
append-to-body :custom-class="'build-node-import-dlg file-'+ upload.files.length">
|
||||||
|
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :multiple="false" :on-change="uploadChange"
|
||||||
|
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-remove="uploadChange"
|
||||||
|
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
|
||||||
|
<i class="el-icon-upload"></i>
|
||||||
|
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||||
|
<div class="el-upload__tip text-center" slot="tip">
|
||||||
|
<span>仅允许导入xls、xlsx格式文件。</span>
|
||||||
|
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;"
|
||||||
|
@click="doExport">下载模板</el-link>
|
||||||
|
</div>
|
||||||
|
</el-upload>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitFileForm">确 定</el-button>
|
||||||
|
<el-button @click="upload.open = false">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {listByProject} from '@/api/project/build_node_data.js'
|
import { listByProject } from '@/api/project/build_node_data.js'
|
||||||
|
import { getToken } from "@/utils/auth";
|
||||||
import NodeItem from './nodeItem.vue'
|
import NodeItem from './nodeItem.vue'
|
||||||
export default {
|
export default {
|
||||||
name: 'RuoyiUiBuildNodeDrawer',
|
name: 'RuoyiUiBuildNodeDrawer',
|
||||||
components:{
|
components: {
|
||||||
NodeItem
|
NodeItem
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isOpen:false,
|
isOpen: false,
|
||||||
prj: null,
|
prj: null,
|
||||||
nodes:[],
|
nodes: [],
|
||||||
activeName:''
|
activeName: '',
|
||||||
|
// 用户导入参数
|
||||||
|
upload: {
|
||||||
|
files:[],
|
||||||
|
// 是否显示弹出层(用户导入)
|
||||||
|
open: false,
|
||||||
|
// 弹出层标题(用户导入)
|
||||||
|
title: "",
|
||||||
|
// 是否禁用上传
|
||||||
|
isUploading: false,
|
||||||
|
// 是否更新已经存在的用户数据
|
||||||
|
updateSupport: 0,
|
||||||
|
// 设置上传的请求头部
|
||||||
|
headers: { Authorization: "Bearer " + getToken() },
|
||||||
|
// 上传的地址
|
||||||
|
url: process.env.VUE_APP_BASE_API+"/project/build_node_data/importData"
|
||||||
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -43,27 +88,53 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
|
uploadChange(a,b,c){
|
||||||
loadData(init){
|
this.upload.files=b;
|
||||||
listByProject(this.prj.id).then(d=>{
|
},
|
||||||
let tmps=(d.data||[]).map(it=>{
|
// 文件上传中处理
|
||||||
it.lvl=it.baseBuildNode.nodeLvl;
|
handleFileUploadProgress(event, file, fileList) {
|
||||||
it.parentLvl=it.lvl.substring(0,it.lvl.length-2);
|
this.upload.isUploading = true;
|
||||||
it.nodeText=it.baseBuildNode.nodeText;
|
},
|
||||||
it.file=this.$tryToJson(it.files,[]);
|
// 文件上传成功处理
|
||||||
return it;
|
handleFileSuccess(response, file, fileList) {
|
||||||
});
|
this.upload.open = false;
|
||||||
let objs=tmps.filter(d=>d.parentLvl.length==0);
|
this.upload.isUploading = false;
|
||||||
objs.forEach(it=>{
|
this.$refs.upload.clearFiles();
|
||||||
it.children=tmps.filter(item=>item.parentLvl==it.lvl)
|
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
|
||||||
it.children.forEach(item=>{
|
this.loadData();
|
||||||
item.children=tmps.filter(item3=>item3.parentLvl==item.lvl);
|
},
|
||||||
|
submitFileForm() {
|
||||||
|
this.$refs.upload.submit();
|
||||||
|
},
|
||||||
|
doImport() {
|
||||||
|
this.upload.title = `${this.prj.projectName}_项目计划节点导入`;
|
||||||
|
this.upload.open = true;
|
||||||
|
},
|
||||||
|
doExport() {
|
||||||
|
this.download('project/build_node_data/export', {
|
||||||
|
projectId: this.prj.id
|
||||||
|
}, `${this.prj.projectName}_项目计划节点.xlsx`);
|
||||||
|
},
|
||||||
|
loadData(init) {
|
||||||
|
listByProject(this.prj.id).then(d => {
|
||||||
|
let tmps = (d.data || []).map(it => {
|
||||||
|
it.lvl = it.baseBuildNode.nodeLvl;
|
||||||
|
it.parentLvl = it.lvl.substring(0, it.lvl.length - 2);
|
||||||
|
it.nodeText = it.baseBuildNode.nodeText;
|
||||||
|
it.file = this.$tryToJson(it.files, []);
|
||||||
|
return it;
|
||||||
});
|
});
|
||||||
})
|
let objs = tmps.filter(d => d.parentLvl.length == 0);
|
||||||
this.nodes=objs;
|
objs.forEach(it => {
|
||||||
if(init){
|
it.children = tmps.filter(item => item.parentLvl == it.lvl)
|
||||||
this.activeName=objs.length>0?objs[0].id+'':'';
|
it.children.forEach(item => {
|
||||||
}
|
item.children = tmps.filter(item3 => item3.parentLvl == item.lvl);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
this.nodes = objs;
|
||||||
|
if (init) {
|
||||||
|
this.activeName = objs.length > 0 ? objs[0].id + '' : '';
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
show(prj) {
|
show(prj) {
|
||||||
|
@ -77,26 +148,49 @@ export default {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.project-build-node-drawer{
|
.project-build-node-drawer {
|
||||||
::v-deep .el-drawer{
|
::v-deep .el-drawer {
|
||||||
min-width: 1600px;
|
min-width: 1600px;
|
||||||
}
|
}
|
||||||
::v-deep .el-drawer__header{
|
|
||||||
|
::v-deep .el-drawer__header {
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
::v-deep .el-drawer__body{
|
|
||||||
padding:0px 24px;
|
::v-deep .el-drawer__body {
|
||||||
|
padding: 0px 24px;
|
||||||
|
|
||||||
.el-form {
|
.el-form {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
.el-form-item{
|
|
||||||
|
.el-form-item {
|
||||||
margin-bottom: 15px !important;
|
margin-bottom: 15px !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.lvl-3{
|
|
||||||
.lbl-title{
|
.lvl-3 {
|
||||||
|
.lbl-title {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
<style lang="scss">
|
||||||
|
.build-node-import-dlg{
|
||||||
|
.el-upload{
|
||||||
|
width:100%;
|
||||||
|
.el-upload-dragger{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.file-1{
|
||||||
|
.el-upload{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.el-upload__tip{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
package com.yanzhu.jh.project.controller;
|
package com.yanzhu.jh.project.controller;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
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.security.access.prepost.PreAuthorize;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
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.yanzhu.jh.project.service.ISurProjectBuildNodeDataService;
|
||||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目建设节点数据Controller
|
* 项目建设节点数据Controller
|
||||||
|
@ -58,8 +63,25 @@ public class SurProjectBuildNodeDataController extends BaseController
|
||||||
public void export(HttpServletResponse response, SurProjectBuildNodeData surProjectBuildNodeData)
|
public void export(HttpServletResponse response, SurProjectBuildNodeData surProjectBuildNodeData)
|
||||||
{
|
{
|
||||||
List<SurProjectBuildNodeData> list = surProjectBuildNodeDataService.selectSurProjectBuildNodeDataList(surProjectBuildNodeData);
|
List<SurProjectBuildNodeData> list = surProjectBuildNodeDataService.selectSurProjectBuildNodeDataList(surProjectBuildNodeData);
|
||||||
ExcelUtil<SurProjectBuildNodeData> util = new ExcelUtil<SurProjectBuildNodeData>(SurProjectBuildNodeData.class);
|
List<SurProjectBuildNodeDataExport> exportList=new ArrayList<>();
|
||||||
util.exportExcel(response, list, "项目建设节点数据数据");
|
for(SurProjectBuildNodeData it :list){
|
||||||
|
exportList.add(SurProjectBuildNodeDataExport.convert(it));
|
||||||
|
}
|
||||||
|
ExcelUtil<SurProjectBuildNodeDataExport> util = new ExcelUtil<SurProjectBuildNodeDataExport>(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<SurProjectBuildNodeDataExport> util = new ExcelUtil<SurProjectBuildNodeDataExport>(SurProjectBuildNodeDataExport.class);
|
||||||
|
InputStream is=file.getInputStream();
|
||||||
|
List<SurProjectBuildNodeDataExport> list = util.importExcel(is);
|
||||||
|
is.close();
|
||||||
|
int n=surProjectBuildNodeDataService.importData(list);
|
||||||
|
return success("成功导入"+n+"条数据!");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -1,4 +0,0 @@
|
||||||
package com.yanzhu.jh.project.domain.where;
|
|
||||||
|
|
||||||
public class SurProjectBuildNodeDataExport {
|
|
||||||
}
|
|
|
@ -2,6 +2,7 @@ package com.yanzhu.jh.project.service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import com.yanzhu.jh.project.domain.SurProjectBuildNodeData;
|
import com.yanzhu.jh.project.domain.SurProjectBuildNodeData;
|
||||||
|
import com.yanzhu.jh.project.domain.vo.SurProjectBuildNodeDataExport;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目建设节点数据Service接口
|
* 项目建设节点数据Service接口
|
||||||
|
@ -60,4 +61,6 @@ public interface ISurProjectBuildNodeDataService
|
||||||
public int deleteSurProjectBuildNodeDataById(Long id);
|
public int deleteSurProjectBuildNodeDataById(Long id);
|
||||||
|
|
||||||
public int addProjectNodes(long projectId);
|
public int addProjectNodes(long projectId);
|
||||||
|
|
||||||
|
public int importData(List<SurProjectBuildNodeDataExport> list);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
package com.yanzhu.jh.project.service.impl;
|
package com.yanzhu.jh.project.service.impl;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import com.ruoyi.common.utils.DateUtils;
|
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.mapper.SurProjectMapper;
|
||||||
import com.yanzhu.jh.project.domain.BaseBuildNode;
|
import com.yanzhu.jh.project.domain.BaseBuildNode;
|
||||||
import com.yanzhu.jh.project.mapper.BaseBuildNodeMapper;
|
import com.yanzhu.jh.project.mapper.BaseBuildNodeMapper;
|
||||||
|
@ -119,4 +122,35 @@ public class SurProjectBuildNodeDataServiceImpl implements ISurProjectBuildNodeD
|
||||||
}
|
}
|
||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int importData(List<SurProjectBuildNodeDataExport> list) {
|
||||||
|
if(list.size()==0){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
SurProjectBuildNodeData where=new SurProjectBuildNodeData();
|
||||||
|
where.setProjectId(list.get(0).getProjectId());
|
||||||
|
List<SurProjectBuildNodeData> items=surProjectBuildNodeDataMapper.selectSurProjectBuildNodeDataList(where);
|
||||||
|
if(items.size()==0){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
int cnt=0;
|
||||||
|
try {
|
||||||
|
for (SurProjectBuildNodeDataExport it : list) {
|
||||||
|
List<SurProjectBuildNodeData> 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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue