update code
parent
98c5d7f979
commit
978434df1f
|
@ -0,0 +1,61 @@
|
|||
import request from '@/utils/request'
|
||||
|
||||
// 查询设计管理列表
|
||||
export function listProjectDesign(query) {
|
||||
return request({
|
||||
url: '/project/projectDesign/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询设计管理详细
|
||||
export function getProjectDesign(id) {
|
||||
return request({
|
||||
url: '/project/projectDesign/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增设计管理
|
||||
export function addProjectDesign(data) {
|
||||
return request({
|
||||
url: '/project/projectDesign',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改设计管理
|
||||
export function updateProjectDesign(data) {
|
||||
return request({
|
||||
url: '/project/projectDesign',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除设计管理
|
||||
export function delProjectDesign(id) {
|
||||
return request({
|
||||
url: '/project/projectDesign/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function listByProject(query){
|
||||
return request({
|
||||
url: '/project/projectDesign/listByProject',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function updateList(data){
|
||||
return request({
|
||||
url: '/project/projectDesign/updateList',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
|
@ -51,3 +51,11 @@ export function findUserByDeptId(query) {
|
|||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询设计管理负责人可选择用户
|
||||
export function findDesignUsers() {
|
||||
return request({
|
||||
url: '/project/surProjectUserInfo/findDesignUsers',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
|
|
@ -476,7 +476,7 @@ export default {
|
|||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.jobId != undefined) {
|
||||
if (this.form.jobId) {
|
||||
updateJob(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -24,15 +24,21 @@
|
|||
<el-option v-if="1==2" key="yanzhu" label="研筑" value="yanzhu"></el-option>
|
||||
<el-option key="gld" label="广联达" value="gld"></el-option>
|
||||
<el-option key="huazhu" label="华筑" value="huazhu"></el-option>
|
||||
<el-option key="jgw" label="济工网" value="jgw"></el-option>
|
||||
</el-select>
|
||||
<span v-else>{{ form.vendorsCode=='yanzhu'?'研筑':form.vendorsCode=='gld'?'广联达':'华筑' }}</span>
|
||||
<span v-else>
|
||||
<span v-if="form.vendorsCode=='yanzhu'">研筑</span>
|
||||
<span v-if="form.vendorsCode=='gld'">广联达</span>
|
||||
<span v-if="form.vendorsCode=='huazhu'">华筑</span>
|
||||
<span v-if="form.vendorsCode=='jgw'">济工网</span>
|
||||
</span>
|
||||
<span>
|
||||
<el-button v-if="mode!='edit' && form.vendorsCode=='yanzhu'"
|
||||
:disabled="!form.projectId || !form.subDeptId"
|
||||
type="primary" style="margin-left: 12px;" @click="doMakeAppId">获取</el-button>
|
||||
</span>
|
||||
</el-form-item>
|
||||
<template v-if="form.vendorsCode=='gld'">
|
||||
<template v-if="form.vendorsCode=='gld' || form.vendorsCode=='jgw'">
|
||||
<el-form-item label="APPID" prop="appId">
|
||||
<el-input v-model="form.appId" placeholder="请输AppId" clearable />
|
||||
</el-form-item>
|
||||
|
@ -160,7 +166,7 @@ export default {
|
|||
state: 0,
|
||||
isDel: 0
|
||||
};
|
||||
if (this.form.id != null && this.form.id.trim().length>0) {
|
||||
if (this.form.id) {
|
||||
obj.id = this.form.id;
|
||||
updateAttendanceConfig(obj).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
|
|
|
@ -659,7 +659,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
//已经上传过检测结果时,修改重新发起提交申请
|
||||
if(this.form.checkState=="2"){
|
||||
this.resultform.approveStatus = "1";
|
||||
|
|
|
@ -781,7 +781,7 @@ export default {
|
|||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
this.form.approveStatus = "1";
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateProjectChecking(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -621,7 +621,7 @@ export default {
|
|||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
this.form.approveStatus = "1";
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateProjectChecking(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -273,7 +273,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateProjectDeptWroks(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -0,0 +1,447 @@
|
|||
<template>
|
||||
<div class="app-container prj-design-index">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="项目名称" prop="projectId">
|
||||
<el-select v-model="queryParams.projectId" filterable placeholder="请选择项目">
|
||||
<el-option v-for="(item, index) in projectOptions" :key="index" :label="item.projectName" :value="item.id">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="开始日期" prop="startDate">
|
||||
<el-date-picker clearable v-model="queryParams.startDate" type="date" value-format="yyyy-MM-dd"
|
||||
placeholder="请选择开始日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="结束日期" prop="endDate">
|
||||
<el-date-picker clearable v-model="queryParams.endDate" type="date" value-format="yyyy-MM-dd"
|
||||
placeholder="请选择结束日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<el-row :gutter="10" class="mb8">
|
||||
<el-col :span="1.5" v-if="1 == 2">
|
||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
|
||||
v-hasPermi="['project:projectDesign:export']">导出</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="projectDesignList" border class="tb_data"
|
||||
@selection-change="handleSelectionChange">
|
||||
<el-table-column prop="nodeText" label="任务内容" width="200">
|
||||
<template slot-scope="scope">
|
||||
<div :class="'node-text-' + scope.row.nodeLvl.length">{{ scope.row.nodeText }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="责任人" align="center" prop="ownerName"></el-table-column>
|
||||
<el-table-column label="数据日期" align="center" prop="dataDate" width="80">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.dataDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="开始日期" align="center" prop="startDate" width="80">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.startDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="计划开始日期" align="center" prop="planStartDate" width="90">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.planStartDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="结束日期" align="center" prop="endDate" width="80">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.endDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="计划结束日期" align="center" prop="planEndDate" width="90">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.planEndDate, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="工期" align="center" prop="duration" width="60">
|
||||
<template slot-scope="scope">
|
||||
<span :class="scope.row.duration < 0 ? 'sp-red' : ''"> {{ scope.row.duration }}</span>
|
||||
<span v-if="scope.row.duration">天</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="剩余天数" align="center" prop="remainingDays" width="80">
|
||||
<template slot-scope="scope">
|
||||
<span :class="scope.row.remainingDays < 0 ? 'sp-red' : ''">{{ scope.row.remainingDays }}</span>
|
||||
<span v-if="scope.row.remainingDays">天</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" align="center" prop="status" width="80">
|
||||
<template slot-scope="scope">
|
||||
<span class="sp-orange" v-if="scope.row.status == '进行中'">进行中</span>
|
||||
<span class="sp-green" v-if="scope.row.status == '完成'">完成</span>
|
||||
<span class="sp-red" v-if="scope.row.status == '延迟'">延迟</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="本周完成工作" align="center" prop="work">
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="top-start" width="400" trigger="hover" :content="scope.row.work">
|
||||
<div slot="reference" class="div-txt-2">
|
||||
{{ scope.row.work }}
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="下周计划" align="center" prop="nextWeekWork">
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="top-start" width="400" trigger="hover" :content="scope.row.nextWeekWork">
|
||||
<div slot="reference" class="div-txt-2">
|
||||
{{ scope.row.nextWeekWork }}
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="存在问题" align="center" prop="problem">
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="top-start" width="400" trigger="hover" :content="scope.row.problem">
|
||||
<div slot="reference" class="div-txt-2">
|
||||
{{ scope.row.problem }}
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="修改记录" align="center" width="80">
|
||||
<template slot-scope="scope">
|
||||
<el-popover placement="top-start" width="400" trigger="hover">
|
||||
<pre style="font-size:12px;">{{ scope.row.updateInfo }}</pre>
|
||||
<div slot="reference" style="cursor: pointer;color: cornflowerblue;">
|
||||
修改记录
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList" />
|
||||
|
||||
<!-- 添加或修改设计管理对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form-item label="${comment}" prop="id">
|
||||
<el-input v-model="form.id" placeholder="请输入${comment}" />
|
||||
</el-form-item>
|
||||
<el-form-item label="节点编号" prop="nodeId">
|
||||
<el-input v-model="form.nodeId" placeholder="请输入节点编号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="项目ID" prop="projectId">
|
||||
<el-input v-model="form.projectId" placeholder="请输入项目ID" />
|
||||
</el-form-item>
|
||||
<el-form-item label="责任人" prop="ownerName">
|
||||
<el-input v-model="form.ownerName" placeholder="请输入责任人" />
|
||||
</el-form-item>
|
||||
<el-form-item label="责任人电话" prop="ownerPhone">
|
||||
<el-input v-model="form.ownerPhone" placeholder="请输入责任人电话" />
|
||||
</el-form-item>
|
||||
<el-form-item label="数据日期,同一周一套数据" prop="dataDate">
|
||||
<el-date-picker clearable v-model="form.dataDate" type="date" value-format="yyyy-MM-dd"
|
||||
placeholder="请选择数据日期,同一周一套数据">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="开始日期" prop="startDate">
|
||||
<el-date-picker clearable v-model="form.startDate" type="date" value-format="yyyy-MM-dd"
|
||||
placeholder="请选择开始日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划开始日期" prop="planStartDate">
|
||||
<el-date-picker clearable v-model="form.planStartDate" type="date" value-format="yyyy-MM-dd"
|
||||
placeholder="请选择计划开始日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="结束日期" prop="endDate">
|
||||
<el-date-picker clearable v-model="form.endDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择结束日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划结束日期" prop="planEndDate">
|
||||
<el-date-picker clearable v-model="form.planEndDate" type="date" value-format="yyyy-MM-dd"
|
||||
placeholder="请选择计划结束日期">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="工期" prop="duration">
|
||||
<el-input v-model="form.duration" placeholder="请输入工期" />
|
||||
</el-form-item>
|
||||
<el-form-item label="剩余天数" prop="remainingDays">
|
||||
<el-input v-model="form.remainingDays" placeholder="请输入剩余天数" />
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="form.remark" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
<el-form-item label="文件" prop="files">
|
||||
<el-input v-model="form.files" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="本周完成工作" prop="work">
|
||||
<el-input v-model="form.work" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="下周计划" prop="nextWeekWork">
|
||||
<el-input v-model="form.nextWeekWork" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="存在问题" prop="problem">
|
||||
<el-input v-model="form.problem" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="删除状态" prop="isDel">
|
||||
<el-input v-model="form.isDel" placeholder="请输入删除状态" />
|
||||
</el-form-item>
|
||||
<el-form-item label="修改记录" prop="updateInfo">
|
||||
<el-input v-model="form.updateInfo" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listProjectDesign, getProjectDesign, delProjectDesign, addProjectDesign, updateProjectDesign } from "@/api/project/projectDesign";
|
||||
|
||||
export default {
|
||||
name: "ProjectDesign",
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
multiple: true,
|
||||
// 显示搜索条件
|
||||
showSearch: true,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 设计管理表格数据
|
||||
projectDesignList: [],
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
open: false,
|
||||
projectOptions: [],
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 19,
|
||||
nodeId: null,
|
||||
projectId: null,
|
||||
ownerName: null,
|
||||
ownerPhone: null,
|
||||
dataDate: null,
|
||||
startDate: null,
|
||||
planStartDate: null,
|
||||
endDate: null,
|
||||
planEndDate: null,
|
||||
duration: null,
|
||||
remainingDays: null,
|
||||
status: null,
|
||||
files: null,
|
||||
work: null,
|
||||
nextWeekWork: null,
|
||||
problem: null,
|
||||
isDel: null,
|
||||
updateInfo: null
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 表单校验
|
||||
rules: {
|
||||
id: [
|
||||
{ required: true, message: "$comment不能为空", trigger: "blur" }
|
||||
],
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.$api.publics.getMyProjectList({}).then((response) => {
|
||||
this.projectOptions = response.rows;
|
||||
});
|
||||
this.loading = false;
|
||||
//this.getList();
|
||||
},
|
||||
methods: {
|
||||
/** 查询设计管理列表 */
|
||||
getList() {
|
||||
if (!this.queryParams.projectId) {
|
||||
this.projectDesignList = [];
|
||||
this.total = 0;
|
||||
this.loading = false;
|
||||
return;
|
||||
}
|
||||
this.loading = true;
|
||||
listProjectDesign(this.queryParams).then(response => {
|
||||
this.projectDesignList = (response.rows || []).map(it => {
|
||||
if (it.ownerName) {
|
||||
it.ownerName += (it.ownerPhone ? "-" + it.ownerPhone : "");
|
||||
} else {
|
||||
it.ownerName = "";
|
||||
}
|
||||
it.nodeText = it.baseBuildNode?.nodeText || "";
|
||||
it.nodeLvl = it.baseBuildNode?.nodeLvl || "";
|
||||
it.showOwner = it.nodeLvl != '0301' && it.nodeLvl != '0302';
|
||||
return it;
|
||||
});
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
},
|
||||
// 取消按钮
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
reset() {
|
||||
this.form = {
|
||||
id: null,
|
||||
nodeId: null,
|
||||
projectId: null,
|
||||
ownerName: null,
|
||||
ownerPhone: null,
|
||||
dataDate: null,
|
||||
startDate: null,
|
||||
planStartDate: null,
|
||||
endDate: null,
|
||||
planEndDate: null,
|
||||
duration: null,
|
||||
remainingDays: null,
|
||||
status: null,
|
||||
remark: null,
|
||||
files: null,
|
||||
work: null,
|
||||
nextWeekWork: null,
|
||||
problem: null,
|
||||
isDel: null,
|
||||
createBy: null,
|
||||
createTime: null,
|
||||
updateBy: null,
|
||||
updateTime: null,
|
||||
updateInfo: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
this.queryParams.pageNum = 1;
|
||||
this.getList();
|
||||
},
|
||||
/** 重置按钮操作 */
|
||||
resetQuery() {
|
||||
this.resetForm("queryForm");
|
||||
this.handleQuery();
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
/** 新增按钮操作 */
|
||||
handleAdd() {
|
||||
this.reset();
|
||||
this.open = true;
|
||||
this.title = "添加设计管理";
|
||||
},
|
||||
/** 修改按钮操作 */
|
||||
handleUpdate(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids
|
||||
getProjectDesign(id).then(response => {
|
||||
this.form = response.data;
|
||||
this.open = true;
|
||||
this.title = "修改设计管理";
|
||||
});
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id) {
|
||||
updateProjectDesign(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
} else {
|
||||
addProjectDesign(this.form).then(response => {
|
||||
this.$modal.msgSuccess("新增成功");
|
||||
this.open = false;
|
||||
this.getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$modal.confirm('是否确认删除设计管理编号为"' + ids + '"的数据项?').then(function () {
|
||||
return delProjectDesign(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.$modal.msgSuccess("删除成功");
|
||||
}).catch(() => { });
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
this.download('project/projectDesign/export', {
|
||||
...this.queryParams
|
||||
}, `projectDesign_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.prj-design-index {
|
||||
font-size: 12px;
|
||||
|
||||
.tb_data {
|
||||
.el-table__cell {
|
||||
padding: 2px;
|
||||
|
||||
.cell {
|
||||
padding: 0px 2px;
|
||||
font-size: 12px;
|
||||
|
||||
.node-text-4 {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.node-text-6 {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.sp-red {
|
||||
color: red;
|
||||
}
|
||||
|
||||
.sp-green {
|
||||
color: green;
|
||||
}
|
||||
|
||||
.sp-orange {
|
||||
color: orange;
|
||||
}
|
||||
|
||||
.div-txt-2 {
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,53 @@
|
|||
<template>
|
||||
<div class="project-design-drawer">
|
||||
<el-drawer
|
||||
v-if="isOpen"
|
||||
:visible.sync="isOpen"
|
||||
direction="rtl"
|
||||
size="100%"
|
||||
style="padding-left: 20px"
|
||||
>
|
||||
<template slot="title">
|
||||
<div>{{ title + " 【设计管理】" }}</div>
|
||||
</template>
|
||||
<projectDesignMgr ref="pdMgr" @cancel="doCancel"></projectDesignMgr>
|
||||
</el-drawer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listByProject,listProjectDesign, getProjectDesign, delProjectDesign, addProjectDesign, updateProjectDesign } from "@/api/project/projectDesign";
|
||||
import projectDesignMgr from './projectDesignMgr'
|
||||
export default {
|
||||
name: 'RuoyiUiProjectDesignDrawer',
|
||||
components:{
|
||||
projectDesignMgr
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isOpen: false,
|
||||
project: null,
|
||||
title: "",
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
doCancel(){
|
||||
this.isOpen=false;
|
||||
},
|
||||
show(project) {
|
||||
this.project=project;
|
||||
this.isOpen=true;
|
||||
this.title = project.projectName;
|
||||
setTimeout(()=>{
|
||||
this.$refs.pdMgr.init(project);
|
||||
},800);
|
||||
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
|
@ -0,0 +1,294 @@
|
|||
<template>
|
||||
<div class="project-design-mgr">
|
||||
<el-table border :data="dataList" style="width: 100%;margin-bottom: 60px;" v-loading="loading">
|
||||
<el-table-column prop="nodeText" label="任务内容" width="200">
|
||||
<template slot-scope="scope">
|
||||
<div :class="'node-text-' + scope.row.nodeLvl.length">{{ scope.row.nodeText }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="owner" label="负责人" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-select v-if="scope.row.showOwner" v-model="scope.row.ownerName" filterable placeholder="请选择"
|
||||
popper-class="sel-design-users">
|
||||
<el-option v-for="(item,idx) in users"
|
||||
:key="idx" :value="item.name">
|
||||
<div class="user-item">
|
||||
<span class="user-name">{{ item.name }}</span>
|
||||
<span class="user-dept">{{ item.deptName }}</span>
|
||||
</div>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="owner" label="计划开始时间" width="135">
|
||||
<template slot-scope="scope">
|
||||
<el-date-picker v-model="scope.row.planStartDate" type="date" @change="doUpdateRow(scope.row)" placeholder="选择日期"></el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="owner" label="计划结束时间" width="135">
|
||||
<template slot-scope="scope">
|
||||
<el-date-picker v-model="scope.row.planEndDate" type="date" @change="doUpdateRow(scope.row)" placeholder="选择日期"></el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="owner" label="实际开始时间" width="135">
|
||||
<template slot-scope="scope">
|
||||
<el-date-picker v-model="scope.row.startDate" type="date" @change="doUpdateRow(scope.row)" placeholder="选择日期"></el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="owner" label="实际结束时间" width="135">
|
||||
<template slot-scope="scope">
|
||||
<el-date-picker v-model="scope.row.endDate" type="date" @change="doUpdateRow(scope.row)" placeholder="选择日期"></el-date-picker>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="owner" label="工期" width="80" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span :class="scope.row.duration<0?'sp-red':''"> {{ scope.row.duration }}</span>
|
||||
<span v-if="scope.row.duration">天</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="owner" label="剩余天数" width="80" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span :class="scope.row.remainingDays<0?'sp-red':''">{{ scope.row.remainingDays }}</span>
|
||||
<span v-if="scope.row.remainingDays">天</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="owner" label="状态" width="80" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span class="sp-orange" v-if="scope.row.status=='进行中'">进行中</span>
|
||||
<span class="sp-green" v-if="scope.row.status=='完成'">完成</span>
|
||||
<span class="sp-red" v-if="scope.row.status=='延迟'">延迟</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="owner" label="本周工作">
|
||||
<template slot-scope="scope">
|
||||
<el-input type="textarea" :maxlength="500" :rows="2" placeholder="请输入内容" v-model="scope.row.work"> </el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="owner" label="下周计划">
|
||||
<template slot-scope="scope">
|
||||
<el-input type="textarea" :maxlength="500" :rows="2" placeholder="请输入内容" v-model="scope.row.nextWeekWork"> </el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="owner" label="存在问题">
|
||||
<template slot-scope="scope">
|
||||
<el-input type="textarea" :maxlength="500" :rows="2" placeholder="请输入内容" v-model="scope.row.problem"> </el-input>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="footer">
|
||||
<el-button @click="doSave" type="primary">保存</el-button>
|
||||
<el-button @click="doCancel">取消</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listByProject, updateList} from "@/api/project/projectDesign";
|
||||
import {findDesignUsers} from "@/api/project/surProjectUserInfo";
|
||||
export default {
|
||||
name: 'RuoyiUiProjectDesignMgr',
|
||||
|
||||
data() {
|
||||
return {
|
||||
project: null,
|
||||
dataList: [],
|
||||
loading:false,
|
||||
users:[]
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
findDesignUsers().then(d=>{
|
||||
this.users=(d.data||[]).map(it=>{
|
||||
return {
|
||||
name:`${it.nickName}-${it.phonenumber}`,
|
||||
phone:it.phonenumber,
|
||||
userName:it.userName,
|
||||
deptName:it.remark,
|
||||
showName:it.nickName+" - "+it.remark
|
||||
}
|
||||
})
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
doSave(){
|
||||
let postData= this.dataList.map(item=>{
|
||||
let it=JSON.parse(JSON.stringify(item));
|
||||
|
||||
if(it.ownerName){
|
||||
let tmps=it.ownerName.split("-").filter(d=>d);
|
||||
it.ownerName=tmps.length>0?tmps[0]:"";
|
||||
it.ownerPhone=tmps.length>1?tmps[1]:"";
|
||||
}
|
||||
let chg=[];
|
||||
let old=it.old;
|
||||
if(it.ownerName!=old.ownerName){
|
||||
chg.push("负责人")
|
||||
}
|
||||
if(it.planStartDate!=old.planStartDate){
|
||||
chg.push("计划开始日期")
|
||||
}
|
||||
if(it.planEndDate!=old.planEndDate){
|
||||
chg.push("计划结束日期")
|
||||
}
|
||||
if(it.startDate!=old.startDate){
|
||||
chg.push("实际开始日期");
|
||||
}
|
||||
if(it.endDate!=old.endDate){
|
||||
chg.push("实际结束日期");
|
||||
}
|
||||
if(it.work!=old.work){
|
||||
chg.push("本周工作");
|
||||
}
|
||||
if(it.nextWeekWork!=old.nextWeekWork){
|
||||
chg.push("下周计划");
|
||||
}
|
||||
if(it.problem!=old.problem){
|
||||
chg.push("存在问题");
|
||||
}
|
||||
if(chg.length>0){
|
||||
let chgInfo=`${this.$store.state.user?.nickname} ${this.$dt(new Date()).format("YYYY-MM-DD HH:mm:ss")} 修改了[${chg.join(",")}]`
|
||||
if(it.updateInfo){
|
||||
it.updateInfo+="\n"+chgInfo;
|
||||
}else{
|
||||
it.updateInfo=chgInfo;
|
||||
}
|
||||
}
|
||||
delete it.old
|
||||
return it;
|
||||
|
||||
});
|
||||
updateList(postData).then(d=>{
|
||||
this.$modal.msgSuccess("保存成功");
|
||||
this.$emit("success");
|
||||
});
|
||||
},
|
||||
timeSpan(dt1,dt2){
|
||||
let t1=+this.$dt(dt1).$d;
|
||||
let t2=+this.$dt(dt2).$d;
|
||||
let ts=(t2-t1)/1000.0/3600.0/24.0;
|
||||
let ts2=Math.floor(ts);
|
||||
if(ts==ts2){
|
||||
return ts;
|
||||
}
|
||||
return ts2+1;
|
||||
},
|
||||
doUpdateRow(row){debugger
|
||||
if(row.planStartDate && row.planEndDate){
|
||||
row.duration=this.timeSpan(row.planStartDate,row.planEndDate);
|
||||
}else{
|
||||
row.duration="";
|
||||
}
|
||||
if(row.startDate && !row.endDate && row.planEndDate){
|
||||
let n=this.timeSpan(row.startDate,row.planEndDate);
|
||||
row.remainingDays=n>0?n:0;
|
||||
}else{
|
||||
row.remainingDays="";
|
||||
}
|
||||
row.status="";
|
||||
if(row.planStartDate && row.planEndDate){
|
||||
if(row.startDate){
|
||||
if(row.endDate){
|
||||
row.status="完成";
|
||||
}else{
|
||||
let t1=+this.$dt(row.planEndDate).$d;
|
||||
let t2=+this.$dt(new Date()).$d;
|
||||
if(t1>t2){
|
||||
row.status="进行中";
|
||||
}else{
|
||||
row.status="延迟";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
doCancel(){
|
||||
this.$emit("cancel");
|
||||
},
|
||||
init(project) {
|
||||
this.project = project;
|
||||
this.loading=true;
|
||||
listByProject({ projectId: this.project.id }).then(d => {
|
||||
this.loading=false;
|
||||
this.dataList = (d.data || []).map(it => {
|
||||
it.nodeText = it.baseBuildNode?.nodeText || "";
|
||||
it.nodeLvl = it.baseBuildNode?.nodeLvl || "";
|
||||
it.showOwner = it.nodeLvl != '0301' && it.nodeLvl != '0302';
|
||||
let oldData=JSON.parse(JSON.stringify(it));
|
||||
it.old=oldData;
|
||||
if(it.ownerName){
|
||||
it.ownerName+=(it.ownerPhone?"-"+it.ownerPhone:"");
|
||||
}else{
|
||||
it.ownerName="";
|
||||
}
|
||||
return it;
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.project-design-mgr {
|
||||
font-size: 12px;
|
||||
|
||||
.el-table__cell {
|
||||
padding:2px;
|
||||
.cell {
|
||||
padding: 0px 2px;
|
||||
font-size: 12px;
|
||||
.el-input__inner{
|
||||
font-size: 12px;
|
||||
}
|
||||
.node-text-4 {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.node-text-6 {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.el-date-editor.el-input {
|
||||
width: 100% !important;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
.sp-red{
|
||||
color: red;
|
||||
}
|
||||
.sp-green{
|
||||
color: green;
|
||||
}
|
||||
.sp-orange{
|
||||
color: orange;
|
||||
}
|
||||
}
|
||||
|
||||
.footer {
|
||||
position: fixed;
|
||||
bottom: 0px;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
background: #fff;
|
||||
box-shadow: 3px -2px 5px 5px rgba(0, 0, 0, 0.2);
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
}
|
||||
.sel-design-users{
|
||||
width: 300px;
|
||||
.user-item{
|
||||
font-size:12px;
|
||||
position: relative;
|
||||
.user-name{
|
||||
display: inline-block;
|
||||
}
|
||||
.user-dept{
|
||||
display:inline-block;
|
||||
color: #aaa;
|
||||
position: absolute;
|
||||
right: 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -730,7 +730,7 @@ export default {
|
|||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
this.form.approveStatus="1";
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateProjectMeasure(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -613,7 +613,7 @@ export default {
|
|||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
this.form.approveStatus="1";
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateProjectMeasure(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -323,7 +323,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateProjectPlan(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -277,7 +277,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateProjectStandard(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -293,7 +293,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updatesurProjectInvest(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -399,6 +399,12 @@
|
|||
v-hasPermi="['project:build_node_data:list']"
|
||||
>计划节点管理</el-dropdown-item
|
||||
>
|
||||
<el-dropdown-item v-if="1==2"
|
||||
command="handleDesign"
|
||||
icon="el-icon-orange"
|
||||
v-hasPermi="['project:projectDesign:list']"
|
||||
>设计管理</el-dropdown-item
|
||||
>
|
||||
<el-dropdown-item
|
||||
command="handleProjectChecking"
|
||||
icon="el-icon-s-help"
|
||||
|
@ -779,6 +785,7 @@
|
|||
<attendanceDataDrawer ref="attendanceData"></attendanceDataDrawer>
|
||||
<aiBoxVideoConfigDrawer ref="aiBoxVideoConfigDrawer"></aiBoxVideoConfigDrawer>
|
||||
<prjPhotographyDrawer ref="prjPhotographyDrawer"></prjPhotographyDrawer>
|
||||
<projectDesignDrawer ref="designDrawer"></projectDesignDrawer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -813,6 +820,7 @@ import standardDrawer from '@/views/project/projectStandard/projectStandardDrawe
|
|||
import attendanceDataDrawer from '@/views/project/attendance/attendanceDrawer.vue';
|
||||
import aiBoxVideoConfigDrawer from '@/views/video/aiBoxProjectConfig/aiBoxVideoConfigDrawer';
|
||||
import prjPhotographyDrawer from '@/views/video/prjphotography/prjPhotographyDrawer.vue'
|
||||
import projectDesignDrawer from '@/views/project/projectDesign/projectDesignDrawer.vue';
|
||||
import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
|
||||
|
||||
export default {
|
||||
|
@ -838,7 +846,8 @@ export default {
|
|||
standardDrawer,
|
||||
attendanceDataDrawer,
|
||||
aiBoxVideoConfigDrawer,
|
||||
prjPhotographyDrawer
|
||||
prjPhotographyDrawer,
|
||||
projectDesignDrawer
|
||||
},
|
||||
dicts: [
|
||||
"sur_project_xmjd",
|
||||
|
@ -1049,6 +1058,9 @@ export default {
|
|||
case "handleDelete":
|
||||
this.handleDelete(row);
|
||||
break;
|
||||
case "handleDesign":
|
||||
this.$refs.designDrawer.show(row);
|
||||
break;
|
||||
case "handleAssess":
|
||||
this.$refs.assessDrawer.show(row);
|
||||
break;
|
||||
|
@ -1124,7 +1136,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSurProject(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -329,7 +329,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSurProjectAttendance(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -448,7 +448,7 @@ export default {
|
|||
this.$modal.msgWarning("请上传保险合同");
|
||||
return false;
|
||||
}
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSurProjectInsurance(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -363,7 +363,7 @@ export default {
|
|||
this.$modal.msgWarning("请上传保险合同");
|
||||
return false;
|
||||
}
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSurProjectInsurance(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -355,7 +355,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateAssess(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -502,7 +502,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSurProjectSchedule(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -588,7 +588,7 @@ export default {
|
|||
this.$modal.msgWarning("请上传证书附件");
|
||||
return false;
|
||||
}
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSurProjectSpecial(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -551,7 +551,7 @@ export default {
|
|||
this.$modal.msgWarning("请上传证书附件");
|
||||
return false;
|
||||
}
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSurProjectSpecial(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -409,7 +409,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSurProjectUserInfo(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -332,7 +332,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSurProjectUserInfo(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -417,7 +417,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateApplyConfig(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -300,7 +300,7 @@ export default {
|
|||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.configId != undefined) {
|
||||
if (this.form.configId) {
|
||||
updateConfig(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -310,7 +310,7 @@ export default {
|
|||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.deptId != undefined) {
|
||||
if (this.form.deptId) {
|
||||
updateDept(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -362,7 +362,7 @@ export default {
|
|||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.dictCode != undefined) {
|
||||
if (this.form.dictCode) {
|
||||
updateData(this.form).then(response => {
|
||||
this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
|
|
|
@ -303,7 +303,7 @@ export default {
|
|||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.dictId != undefined) {
|
||||
if (this.form.dictId) {
|
||||
updateType(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -245,7 +245,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateExpression(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -298,7 +298,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateListener(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -422,7 +422,7 @@ export default {
|
|||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.menuId != undefined) {
|
||||
if (this.form.menuId) {
|
||||
updateMenu(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -281,7 +281,7 @@ export default {
|
|||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.noticeId != undefined) {
|
||||
if (this.form.noticeId) {
|
||||
updateNotice(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -272,7 +272,7 @@ export default {
|
|||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.postId != undefined) {
|
||||
if (this.form.postId) {
|
||||
updatePost(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -555,7 +555,7 @@ export default {
|
|||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.roleId != undefined) {
|
||||
if (this.form.roleId) {
|
||||
this.form.menuIds = this.getMenuAllCheckedKeys();
|
||||
updateRole(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
|
|
|
@ -623,7 +623,7 @@ export default {
|
|||
submitForm: function() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.userId != undefined) {
|
||||
if (this.form.userId) {
|
||||
updateUser(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -531,7 +531,7 @@ export default {
|
|||
submitForm(){
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.formId != null) {
|
||||
if (this.form.formId) {
|
||||
updateForm(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
});
|
||||
|
|
|
@ -459,7 +459,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSspMarks(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -645,7 +645,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSspProblemmodify(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -459,7 +459,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSspMarks(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -638,7 +638,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateSspProblemmodify(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -384,7 +384,7 @@ export default {
|
|||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
this.form.devAiProjectConfigPassageList = this.devAiProjectConfigPassageList;
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateAiBoxProjectConfig(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -441,7 +441,7 @@ export default {
|
|||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
this.form.devAiProjectConfigPassageList = this.devAiProjectConfigPassageList;
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateAiBoxProjectConfig(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -289,7 +289,7 @@ export default {
|
|||
videoDate:this.form.videoDate,
|
||||
videoUrl:this.form.videoUrl[0].url
|
||||
}
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updatePrjphotography(postData).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -547,7 +547,7 @@ export default {
|
|||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
this.form.surProjectVideoPassageList = this.surProjectVideoPassageList;
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateVideoConfig(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -439,7 +439,7 @@ export default {
|
|||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
this.form.surProjectVideoPassageList = this.surProjectVideoPassageList;
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateVideoConfig(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -449,7 +449,7 @@ export default {
|
|||
depts.push({ deptId: item });
|
||||
});
|
||||
this.form.workTrainDeptList = depts;
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateWorkTrain(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -544,7 +544,7 @@ export default {
|
|||
depts.push({ deptId: item });
|
||||
});
|
||||
this.form.workTrainDeptList = depts;
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateWorkTrain(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -356,7 +356,7 @@ export default {
|
|||
}else{
|
||||
this.form.fileList = this.fileList;
|
||||
}
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateWorkFile(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -490,7 +490,7 @@ export default {
|
|||
submitForm() {
|
||||
this.$refs["form"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateWorkJournalism(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -537,7 +537,7 @@ export default {
|
|||
depts.push({ deptId: item });
|
||||
});
|
||||
this.form.workTrainDeptList = depts;
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateWorkTrain(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -449,7 +449,7 @@ export default {
|
|||
depts.push({ deptId: item });
|
||||
});
|
||||
this.form.workTrainDeptList = depts;
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateWorkTrain(this.form).then((response) => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -319,7 +319,7 @@ export default {
|
|||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
this.form.surMenuConfigRoleList = this.surMenuConfigRoleList;
|
||||
if (this.form.id != null) {
|
||||
if (this.form.id) {
|
||||
updateWxMenConfig(this.form).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.open = false;
|
||||
|
|
|
@ -0,0 +1,127 @@
|
|||
update base_build_node set node_text='资局(开发建设部)部务会',node_lvl='030102' where node_text='方案评审(集团会议)' and node_lvl='030102';
|
||||
UPDATE base_build_node SET node_text='管委会副主任专题会',node_lvl='030103' WHERE node_text='三方比选(资规局)' AND node_lvl='030103';
|
||||
UPDATE base_build_node SET node_text='管委会建规委会',node_lvl='030104' WHERE node_text='副主任专题会' AND node_lvl='030104';
|
||||
UPDATE base_build_node SET node_text='集团总办会',node_lvl='030102' WHERE node_text='主任办公会' AND node_lvl='030105';
|
||||
UPDATE base_build_node SET node_text='初设确定',node_lvl='0302' WHERE node_text='方案深化设计' AND node_lvl='030106';
|
||||
UPDATE base_build_node SET node_text='初步设计',node_lvl='030201' WHERE node_text='方案确定(集团会议)' AND node_lvl='030107';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
LOCK TABLES `base_build_node` WRITE;
|
||||
|
||||
insert into `base_build_node`(`id`,`build_type`,`node_text`,`node_lvl`,`node_type`,`remark`,`is_del`,`create_by`,`create_time`,`update_by`,`update_time`) values
|
||||
(492,1,'初步设计评审','030202',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(493,1,'施工图确定','0304',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(494,1,'施工图设计','030401',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(495,1,'精装修方案','030402',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(496,1,'景观方案','030403',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(497,1,'精装修施工图设计','030404',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(498,1,'景观施工图设计','030405',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(499,1,'精装修施工图设计','030406',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(500,1,'二次深化设计(外立面、幕墙门窗、泛光照明)','0305',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(501,1,'二次深化设计(车库划线、标识标牌)','0306',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(502,1,'图纸会审、设计交底、图纸答疑等','0307',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
|
||||
(503,2,'初步设计评审','030202',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(504,2,'施工图确定','0304',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(505,2,'施工图设计','030401',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(506,2,'精装修方案','030402',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(507,2,'景观方案','030403',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(508,2,'精装修施工图设计','030404',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(509,2,'景观施工图设计','030405',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(510,2,'精装修施工图设计','030406',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(511,2,'二次深化设计(外立面、幕墙门窗、泛光照明)','0305',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(512,2,'二次深化设计(车库划线、标识标牌)','0306',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(513,2,'图纸会审、设计交底、图纸答疑等','0307',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
|
||||
|
||||
(514,3,'初步设计评审','030202',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(515,3,'施工图确定','0304',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(516,3,'施工图设计','030401',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(517,3,'精装修方案','030402',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(518,3,'景观方案','030403',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(519,3,'精装修施工图设计','030404',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(520,3,'景观施工图设计','030405',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(521,3,'精装修施工图设计','030406',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(522,3,'二次深化设计(外立面、幕墙门窗、泛光照明)','0305',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(523,3,'二次深化设计(车库划线、标识标牌)','0306',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(524,3,'图纸会审、设计交底、图纸答疑等','0307',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
|
||||
(525,4,'初步设计评审','030202',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(526,4,'施工图确定','0304',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(527,4,'施工图设计','030401',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(528,4,'精装修方案','030402',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(529,4,'景观方案','030403',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(530,4,'精装修施工图设计','030404',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(531,4,'景观施工图设计','030405',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(532,4,'精装修施工图设计','030406',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(533,4,'二次深化设计(外立面、幕墙门窗、泛光照明)','0305',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(534,4,'二次深化设计(车库划线、标识标牌)','0306',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(535,4,'图纸会审、设计交底、图纸答疑等','0307',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
|
||||
(536,5,'初步设计评审','030202',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(537,5,'施工图确定','0304',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(538,5,'施工图设计','030401',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(539,5,'精装修方案','030402',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(540,5,'景观方案','030403',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(541,5,'精装修施工图设计','030404',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(542,5,'景观施工图设计','030405',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(543,5,'精装修施工图设计','030406',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(544,5,'二次深化设计(外立面、幕墙门窗、泛光照明)','0305',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(545,5,'二次深化设计(车库划线、标识标牌)','0306',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(546,5,'图纸会审、设计交底、图纸答疑等','0307',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
|
||||
(547,6,'初步设计评审','030202',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(548,6,'施工图确定','0304',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(549,6,'施工图设计','030401',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(550,6,'精装修方案','030402',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(551,6,'景观方案','030403',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(552,6,'精装修施工图设计','030404',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(553,6,'景观施工图设计','030405',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(554,6,'精装修施工图设计','030406',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(555,6,'二次深化设计(外立面、幕墙门窗、泛光照明)','0305',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(556,6,'二次深化设计(车库划线、标识标牌)','0306',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(557,6,'图纸会审、设计交底、图纸答疑等','0307',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
|
||||
(558,7,'初步设计评审','030202',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(559,7,'施工图确定','0304',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(560,7,'施工图设计','030401',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(561,7,'精装修方案','030402',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(562,7,'景观方案','030403',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(563,7,'精装修施工图设计','030404',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(564,7,'景观施工图设计','030405',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(565,7,'精装修施工图设计','030406',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(566,7,'二次深化设计(外立面、幕墙门窗、泛光照明)','0305',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(567,7,'二次深化设计(车库划线、标识标牌)','0306',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
(568,7,'图纸会审、设计交底、图纸答疑等','0307',0,'',0,'admin','2024-03-16 21:27:31',NULL,NULL),
|
||||
|
||||
UNLOCK TABLES;
|
||||
|
||||
|
||||
|
||||
-- 菜单 SQL
|
||||
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
values('设计管理', '2061', '1', 'projectDesign', 'project/projectDesign/index', 1, 0, 'C', '0', '0', 'project:projectDesign:list', '#', 'admin', sysdate(), '', null, '设计管理菜单');
|
||||
|
||||
-- 按钮父菜单ID
|
||||
SELECT @parentId := LAST_INSERT_ID();
|
||||
|
||||
-- 按钮 SQL
|
||||
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
values('设计管理查询', @parentId, '1', '#', '', 1, 0, 'F', '0', '0', 'project:projectDesign:query', '#', 'admin', sysdate(), '', null, '');
|
||||
|
||||
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
values('设计管理新增', @parentId, '2', '#', '', 1, 0, 'F', '0', '0', 'project:projectDesign:add', '#', 'admin', sysdate(), '', null, '');
|
||||
|
||||
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
values('设计管理修改', @parentId, '3', '#', '', 1, 0, 'F', '0', '0', 'project:projectDesign:edit', '#', 'admin', sysdate(), '', null, '');
|
||||
|
||||
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
values('设计管理删除', @parentId, '4', '#', '', 1, 0, 'F', '0', '0', 'project:projectDesign:remove', '#', 'admin', sysdate(), '', null, '');
|
||||
|
||||
insert into sys_menu (menu_name, parent_id, order_num, path, component, is_frame, is_cache, menu_type, visible, status, perms, icon, create_by, create_time, update_by, update_time, remark)
|
||||
values('设计管理导出', @parentId, '5', '#', '', 1, 0, 'F', '0', '0', 'project:projectDesign:export', '#', 'admin', sysdate(), '', null, '');
|
||||
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
package com.yanzhu.jh.project.controller;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
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 com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import com.yanzhu.jh.project.domain.SurProjectBuildDesignData;
|
||||
import com.yanzhu.jh.project.service.ISurProjectBuildDesignDataService;
|
||||
import com.ruoyi.common.utils.poi.ExcelUtil;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 设计管理Controller
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-03-16
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/project/projectDesign")
|
||||
public class SurProjectBuildDesignDataController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private ISurProjectBuildDesignDataService surProjectBuildDesignDataService;
|
||||
|
||||
/**
|
||||
* 查询设计管理列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('project:projectDesign:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(SurProjectBuildDesignData surProjectBuildDesignData)
|
||||
{
|
||||
startPage();
|
||||
List<SurProjectBuildDesignData> list = surProjectBuildDesignDataService.selectSurProjectBuildDesignDataList(surProjectBuildDesignData);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出设计管理列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('project:projectDesign:export')")
|
||||
@Log(title = "设计管理", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, SurProjectBuildDesignData surProjectBuildDesignData)
|
||||
{
|
||||
List<SurProjectBuildDesignData> list = surProjectBuildDesignDataService.selectSurProjectBuildDesignDataList(surProjectBuildDesignData);
|
||||
ExcelUtil<SurProjectBuildDesignData> util = new ExcelUtil<SurProjectBuildDesignData>(SurProjectBuildDesignData.class);
|
||||
util.exportExcel(response, list, "设计管理数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设计管理详细信息
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('project:projectDesign:query')")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
return success(surProjectBuildDesignDataService.selectSurProjectBuildDesignDataById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设计管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('project:projectDesign:add')")
|
||||
@Log(title = "设计管理", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody SurProjectBuildDesignData surProjectBuildDesignData)
|
||||
{
|
||||
return toAjax(surProjectBuildDesignDataService.insertSurProjectBuildDesignData(surProjectBuildDesignData));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设计管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('project:projectDesign:edit')")
|
||||
@Log(title = "设计管理", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody SurProjectBuildDesignData surProjectBuildDesignData)
|
||||
{
|
||||
return toAjax(surProjectBuildDesignDataService.updateSurProjectBuildDesignData(surProjectBuildDesignData));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改设计管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('project:projectDesign:edit')")
|
||||
@Log(title = "设计管理", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("updateList")
|
||||
public AjaxResult updateList(@RequestBody List<SurProjectBuildDesignData> list)
|
||||
{
|
||||
return AjaxResult.success (surProjectBuildDesignDataService.updateList(list));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除设计管理
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('project:projectDesign:remove')")
|
||||
@Log(title = "设计管理", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids)
|
||||
{
|
||||
return toAjax(surProjectBuildDesignDataService.deleteSurProjectBuildDesignDataByIds(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询设计管理列表 按项目查询
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('project:projectDesign:list')")
|
||||
@GetMapping("/listByProject")
|
||||
public AjaxResult listByProject(SurProjectBuildDesignData where)
|
||||
{
|
||||
//按项目ID查找设计管理数据,日期为当前周内,如果没有就增加一组数据,增加的数据先找后一条数据进行克隆,如果没有就增加空白数据
|
||||
where.setStartDate(DateUtil.beginOfWeek(DateTime.now()));
|
||||
where.setEndDate(DateUtil.endOfWeek(DateTime.now()));
|
||||
List<SurProjectBuildDesignData> list=surProjectBuildDesignDataService.selectWeekData(where);
|
||||
if(list.size()==0){
|
||||
surProjectBuildDesignDataService.addWeekData(where);
|
||||
list=surProjectBuildDesignDataService.selectWeekData(where);
|
||||
}
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
}
|
|
@ -131,12 +131,8 @@ public class SurProjectBuildNodeDataController extends BaseController
|
|||
public AjaxResult getListByProject(long projectId){
|
||||
SurProjectBuildNodeData surProjectBuildNodeData=new SurProjectBuildNodeData();
|
||||
surProjectBuildNodeData.setProjectId(projectId);
|
||||
List list=surProjectBuildNodeDataService.selectSurProjectBuildNodeDataList(surProjectBuildNodeData);
|
||||
if(list.size()>0){
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
surProjectBuildNodeDataService.addProjectNodes(projectId);
|
||||
list=surProjectBuildNodeDataService.selectSurProjectBuildNodeDataList(surProjectBuildNodeData);
|
||||
|
||||
List<SurProjectBuildNodeData> list=surProjectBuildNodeDataService.selectSurProjectBuildNodeDataListAndAdd(surProjectBuildNodeData);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -136,4 +136,10 @@ public class SurProjectUserinfoController extends BaseController
|
|||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('project:surProjectUserInfo:list')")
|
||||
@GetMapping("/findDesignUsers")
|
||||
public AjaxResult findDesignUsers(){
|
||||
return AjaxResult.success(surProjectUserinfoService.selectDesignUsers());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.yanzhu.jh.project.domain;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
@ -62,7 +63,7 @@ public class SurProjectAttendanceData extends BaseEntity
|
|||
|
||||
/** 分包商id */
|
||||
@Excel(name = "分包商id")
|
||||
private Long companyId;
|
||||
private String companyId;
|
||||
|
||||
/** 平台对应分包商ID */
|
||||
@Excel(name = "平台对应分包商ID")
|
||||
|
@ -112,11 +113,27 @@ public class SurProjectAttendanceData extends BaseEntity
|
|||
d.identification=j.getString("idCardNo");
|
||||
d.teamId=j.getLongValue("teamId",0);
|
||||
d.workTypeCode=j.getString("workerTypeId");
|
||||
d.companyId=j.getLongValue("unitId",1);
|
||||
d.companyId=j.getString("unitId");
|
||||
d.deviceCode=j.getString("deviceNo");
|
||||
return d;
|
||||
}
|
||||
|
||||
public static SurProjectAttendanceData createFromJgw(JSONObject j) {
|
||||
SurProjectAttendanceData d=new SurProjectAttendanceData();
|
||||
d.vendorsCode="jgw";
|
||||
d.serverid=j.getString("id");
|
||||
d.workerId=j.getString("workerId");
|
||||
d.attendanceType = j.getLongValue("signType", 1l) == 2l ? "E" : "L";
|
||||
d.attendanceTime = j.getString("checkinTime");
|
||||
d.identification="";
|
||||
d.teamId=0l;
|
||||
d.workTypeCode="";
|
||||
d.companyId=j.getString("subcontractorId");
|
||||
d.deviceCode=j.getString("deviceSerialNo");
|
||||
d.isDel=0l;
|
||||
return d;
|
||||
}
|
||||
|
||||
public Long getDeptId() {
|
||||
return deptId;
|
||||
}
|
||||
|
@ -161,7 +178,7 @@ public class SurProjectAttendanceData extends BaseEntity
|
|||
d.identification=json.getString("identification");
|
||||
d.teamId=json.getLong("teamId");
|
||||
d.workTypeCode=json.getString("workerTypeId");
|
||||
d.companyId=json.getLong("companyId");
|
||||
d.companyId=json.getString("companyId");
|
||||
d.vendorId=json.getLong("vendorId");
|
||||
d.projectType=json.getLong("projectType");
|
||||
d.deviceCode=json.getString("deviceCode");
|
||||
|
@ -263,12 +280,12 @@ public class SurProjectAttendanceData extends BaseEntity
|
|||
{
|
||||
return workTypeCode;
|
||||
}
|
||||
public void setCompanyId(Long companyId)
|
||||
public void setCompanyId(String companyId)
|
||||
{
|
||||
this.companyId = companyId;
|
||||
}
|
||||
|
||||
public Long getCompanyId()
|
||||
public String getCompanyId()
|
||||
{
|
||||
return companyId;
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ public class SurProjectAttendanceGroup extends BaseEntity
|
|||
|
||||
/** 分包商ID */
|
||||
@Excel(name = "分包商ID")
|
||||
private Long companyId;
|
||||
private String companyId;
|
||||
|
||||
/** 分包商名称 */
|
||||
@Excel(name = "分包商名称")
|
||||
|
@ -113,15 +113,30 @@ public class SurProjectAttendanceGroup extends BaseEntity
|
|||
|
||||
public static SurProjectAttendanceGroup createHuazhu(JSONObject j) {
|
||||
SurProjectAttendanceGroup g=new SurProjectAttendanceGroup();
|
||||
g.companyId=j.getLongValue("unitId",0);
|
||||
g.companyId=""+j.getLongValue("unitId",0);
|
||||
g.companyName=j.getString("unitName");
|
||||
g.companyTypeId=j.getString("unitType");
|
||||
g.serverid=j.getString("id");
|
||||
g.enterDate=j.getLong("enterTime");
|
||||
g.exitDate=j.getLong("leaveTime");
|
||||
g.isDel=0l;
|
||||
return g;
|
||||
}
|
||||
|
||||
public static SurProjectAttendanceGroup createJgw(JSONObject j) {
|
||||
SurProjectAttendanceGroup g=new SurProjectAttendanceGroup();
|
||||
g.serverid=j.getString("id");
|
||||
g.companyId=j.getString("subcontractorId");
|
||||
g.companyName=j.getString("corpName");
|
||||
g.teamName=j.getString("teamName");
|
||||
g.bizLicense=j.getString("corpCode");
|
||||
g.companyTypeId="";
|
||||
g.enterDate=0l;
|
||||
g.exitDate=0l;
|
||||
g.isDel=0l;
|
||||
return g;
|
||||
}
|
||||
|
||||
public Long getCreateTimestamp() {
|
||||
return createTimestamp;
|
||||
}
|
||||
|
@ -135,7 +150,7 @@ public class SurProjectAttendanceGroup extends BaseEntity
|
|||
g.serverid=json.getString("id");
|
||||
g.bizLicense=json.getString("bizLicense");
|
||||
g.companyCode=json.getString("companyCode");
|
||||
g.companyId=json.getLongValue("companyId",0);
|
||||
g.companyId=""+json.getLongValue("companyId",0);
|
||||
g.companyName=json.getString("companyName");
|
||||
g.companyTypeId=json.getString("companyTypeId");
|
||||
g.vendorId=json.getLongValue("vendorId",0);
|
||||
|
@ -201,12 +216,12 @@ public class SurProjectAttendanceGroup extends BaseEntity
|
|||
{
|
||||
return companyCode;
|
||||
}
|
||||
public void setCompanyId(Long companyId)
|
||||
public void setCompanyId(String companyId)
|
||||
{
|
||||
this.companyId = companyId;
|
||||
}
|
||||
|
||||
public Long getCompanyId()
|
||||
public String getCompanyId()
|
||||
{
|
||||
return companyId;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.yanzhu.jh.project.domain;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
@ -129,7 +130,7 @@ public class SurProjectAttendanceUser extends BaseEntity
|
|||
|
||||
/** 分包商id */
|
||||
@Excel(name = "分包商id")
|
||||
private Long companyId;
|
||||
private String companyId;
|
||||
|
||||
/** 分包商名称 */
|
||||
@Excel(name = "分包商名称")
|
||||
|
@ -187,13 +188,43 @@ public class SurProjectAttendanceUser extends BaseEntity
|
|||
u.exitDate = DateUtil.format(DateUtil.date(leaveTime), "yyyy-MM-dd HH:mm:ss");
|
||||
}
|
||||
u.vendorId=j.getLongValue("unitProjectId",0);
|
||||
u.companyId=j.getLongValue("unitId",0);
|
||||
u.companyId=""+j.getLongValue("unitId",0);
|
||||
u.companyName=j.getString("unitName");
|
||||
u.teamName=j.getString("teamName");
|
||||
u.other=j.toJSONString();
|
||||
return u;
|
||||
}
|
||||
|
||||
public static SurProjectAttendanceUser createFromJgw(JSONObject j) {
|
||||
SurProjectAttendanceUser u=new SurProjectAttendanceUser();
|
||||
u.workerId=j.getString("workerId");
|
||||
u.name=j.getString("name");
|
||||
u.ethnic=j.getString("minor");
|
||||
u.nativePlace=j.getString("address");
|
||||
u.gender=j.getLong("sex")==0l?1l:0l;
|
||||
u.birthDate= DateUtil.parse(j.getString("birthday")).getTime();
|
||||
u.phone=j.getString("headImage");
|
||||
u.degreeName=j.getString("education");
|
||||
u.recentPhoto=j.getString("vaildPhoto");
|
||||
u.groupId="";
|
||||
u.groupName="";
|
||||
u.workTypeCode="";
|
||||
u.workTypeName="";
|
||||
u.state="01".equals( j.getString("workerStatus"))?0l:1l;
|
||||
String workDate=j.getString("workDate");
|
||||
if(!StrUtil.isEmpty(workDate)){
|
||||
u.enterDate=workDate;
|
||||
}
|
||||
u.vendorId=0l;
|
||||
u.companyId=j.getString("subcontractorId");
|
||||
u.companyName="";
|
||||
u.teamName="";
|
||||
u.other=j.toJSONString();
|
||||
u.isDel=0l;
|
||||
u.leader=j.getInteger("isAdmin")==1?1:0;
|
||||
return u;
|
||||
}
|
||||
|
||||
public Date getInTime() {
|
||||
return inTime;
|
||||
}
|
||||
|
@ -290,7 +321,7 @@ public class SurProjectAttendanceUser extends BaseEntity
|
|||
u.state=json.getLongValue("state",0);
|
||||
u.enterDate=json.getString("enterDate");
|
||||
u.exitDate=json.getString("exitDate");
|
||||
u.companyId=json.getLongValue("companyId",0);
|
||||
u.companyId=""+json.getLongValue("companyId",0);
|
||||
u.companyName=json.getString("companyName");
|
||||
u.vendorId=json.getLongValue("vendorId",0);
|
||||
u.teamId=json.getInteger("teamId");
|
||||
|
@ -534,12 +565,12 @@ public class SurProjectAttendanceUser extends BaseEntity
|
|||
{
|
||||
return exitDate;
|
||||
}
|
||||
public void setCompanyId(Long companyId)
|
||||
public void setCompanyId(String companyId)
|
||||
{
|
||||
this.companyId = companyId;
|
||||
}
|
||||
|
||||
public Long getCompanyId()
|
||||
public String getCompanyId()
|
||||
{
|
||||
return companyId;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,322 @@
|
|||
package com.yanzhu.jh.project.domain;
|
||||
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 设计管理对象 sur_project_build_design_data
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-03-16
|
||||
*/
|
||||
public class SurProjectBuildDesignData extends BaseEntity
|
||||
{
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** $column.columnComment */
|
||||
private Long id;
|
||||
|
||||
/** 节点编号 */
|
||||
@Excel(name = "节点编号")
|
||||
private Long nodeId;
|
||||
|
||||
/** 项目ID */
|
||||
@Excel(name = "项目ID")
|
||||
private Long projectId;
|
||||
|
||||
/** 责任人 */
|
||||
@Excel(name = "责任人")
|
||||
private String ownerName;
|
||||
|
||||
/** 责任人电话 */
|
||||
@Excel(name = "责任人电话")
|
||||
private String ownerPhone;
|
||||
|
||||
/** 数据日期,同一周一套数据 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "数据日期,同一周一套数据", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date dataDate;
|
||||
|
||||
/** 开始日期 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "开始日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date startDate;
|
||||
|
||||
/** 计划开始日期 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "计划开始日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date planStartDate;
|
||||
|
||||
/** 结束日期 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date endDate;
|
||||
|
||||
/** 计划结束日期 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "计划结束日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date planEndDate;
|
||||
|
||||
/** 工期 */
|
||||
@Excel(name = "工期")
|
||||
private Long duration;
|
||||
|
||||
/** 剩余天数 */
|
||||
@Excel(name = "剩余天数")
|
||||
private Long remainingDays;
|
||||
|
||||
/** a.进行中 当前时间小于计划结束日期 */
|
||||
@Excel(name = "a.进行中 当前时间小于计划结束日期")
|
||||
private String status;
|
||||
|
||||
/** 文件 */
|
||||
@Excel(name = "文件")
|
||||
private String files;
|
||||
|
||||
/** 本周完成工作 */
|
||||
@Excel(name = "本周完成工作")
|
||||
private String work;
|
||||
|
||||
/** 下周计划 */
|
||||
@Excel(name = "下周计划")
|
||||
private String nextWeekWork;
|
||||
|
||||
/** 存在问题 */
|
||||
@Excel(name = "存在问题")
|
||||
private String problem;
|
||||
|
||||
/** 删除状态 */
|
||||
@Excel(name = "删除状态")
|
||||
private Long isDel;
|
||||
|
||||
/** 修改记录 */
|
||||
@Excel(name = "修改记录")
|
||||
private String updateInfo;
|
||||
|
||||
private BaseBuildNode baseBuildNode;
|
||||
|
||||
public BaseBuildNode getBaseBuildNode() {
|
||||
return baseBuildNode;
|
||||
}
|
||||
|
||||
public void setBaseBuildNode(BaseBuildNode baseBuildNode) {
|
||||
this.baseBuildNode = baseBuildNode;
|
||||
}
|
||||
|
||||
public SurProject getProject() {
|
||||
return project;
|
||||
}
|
||||
|
||||
public void setProject(SurProject project) {
|
||||
this.project = project;
|
||||
}
|
||||
|
||||
private SurProject project;
|
||||
|
||||
|
||||
public void setId(Long id)
|
||||
{
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Long getId()
|
||||
{
|
||||
return id;
|
||||
}
|
||||
public void setNodeId(Long nodeId)
|
||||
{
|
||||
this.nodeId = nodeId;
|
||||
}
|
||||
|
||||
public Long getNodeId()
|
||||
{
|
||||
return nodeId;
|
||||
}
|
||||
public void setProjectId(Long projectId)
|
||||
{
|
||||
this.projectId = projectId;
|
||||
}
|
||||
|
||||
public Long getProjectId()
|
||||
{
|
||||
return projectId;
|
||||
}
|
||||
public void setOwnerName(String ownerName)
|
||||
{
|
||||
this.ownerName = ownerName;
|
||||
}
|
||||
|
||||
public String getOwnerName()
|
||||
{
|
||||
return ownerName;
|
||||
}
|
||||
public void setOwnerPhone(String ownerPhone)
|
||||
{
|
||||
this.ownerPhone = ownerPhone;
|
||||
}
|
||||
|
||||
public String getOwnerPhone()
|
||||
{
|
||||
return ownerPhone;
|
||||
}
|
||||
public void setDataDate(Date dataDate)
|
||||
{
|
||||
this.dataDate = dataDate;
|
||||
}
|
||||
|
||||
public Date getDataDate()
|
||||
{
|
||||
return dataDate;
|
||||
}
|
||||
public void setStartDate(Date startDate)
|
||||
{
|
||||
this.startDate = startDate;
|
||||
}
|
||||
|
||||
public Date getStartDate()
|
||||
{
|
||||
return startDate;
|
||||
}
|
||||
public void setPlanStartDate(Date planStartDate)
|
||||
{
|
||||
this.planStartDate = planStartDate;
|
||||
}
|
||||
|
||||
public Date getPlanStartDate()
|
||||
{
|
||||
return planStartDate;
|
||||
}
|
||||
public void setEndDate(Date endDate)
|
||||
{
|
||||
this.endDate = endDate;
|
||||
}
|
||||
|
||||
public Date getEndDate()
|
||||
{
|
||||
return endDate;
|
||||
}
|
||||
public void setPlanEndDate(Date planEndDate)
|
||||
{
|
||||
this.planEndDate = planEndDate;
|
||||
}
|
||||
|
||||
public Date getPlanEndDate()
|
||||
{
|
||||
return planEndDate;
|
||||
}
|
||||
public void setDuration(Long duration)
|
||||
{
|
||||
this.duration = duration;
|
||||
}
|
||||
|
||||
public Long getDuration()
|
||||
{
|
||||
return duration;
|
||||
}
|
||||
public void setRemainingDays(Long remainingDays)
|
||||
{
|
||||
this.remainingDays = remainingDays;
|
||||
}
|
||||
|
||||
public Long getRemainingDays()
|
||||
{
|
||||
return remainingDays;
|
||||
}
|
||||
public void setStatus(String status)
|
||||
{
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getStatus()
|
||||
{
|
||||
return status;
|
||||
}
|
||||
public void setFiles(String files)
|
||||
{
|
||||
this.files = files;
|
||||
}
|
||||
|
||||
public String getFiles()
|
||||
{
|
||||
return files;
|
||||
}
|
||||
public void setWork(String work)
|
||||
{
|
||||
this.work = work;
|
||||
}
|
||||
|
||||
public String getWork()
|
||||
{
|
||||
return work;
|
||||
}
|
||||
public void setNextWeekWork(String nextWeekWork)
|
||||
{
|
||||
this.nextWeekWork = nextWeekWork;
|
||||
}
|
||||
|
||||
public String getNextWeekWork()
|
||||
{
|
||||
return nextWeekWork;
|
||||
}
|
||||
public void setProblem(String problem)
|
||||
{
|
||||
this.problem = problem;
|
||||
}
|
||||
|
||||
public String getProblem()
|
||||
{
|
||||
return problem;
|
||||
}
|
||||
public void setIsDel(Long isDel)
|
||||
{
|
||||
this.isDel = isDel;
|
||||
}
|
||||
|
||||
public Long getIsDel()
|
||||
{
|
||||
return isDel;
|
||||
}
|
||||
public void setUpdateInfo(String updateInfo)
|
||||
{
|
||||
this.updateInfo = updateInfo;
|
||||
}
|
||||
|
||||
public String getUpdateInfo()
|
||||
{
|
||||
return updateInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("id", getId())
|
||||
.append("nodeId", getNodeId())
|
||||
.append("projectId", getProjectId())
|
||||
.append("ownerName", getOwnerName())
|
||||
.append("ownerPhone", getOwnerPhone())
|
||||
.append("dataDate", getDataDate())
|
||||
.append("startDate", getStartDate())
|
||||
.append("planStartDate", getPlanStartDate())
|
||||
.append("endDate", getEndDate())
|
||||
.append("planEndDate", getPlanEndDate())
|
||||
.append("duration", getDuration())
|
||||
.append("remainingDays", getRemainingDays())
|
||||
.append("status", getStatus())
|
||||
.append("remark", getRemark())
|
||||
.append("files", getFiles())
|
||||
.append("work", getWork())
|
||||
.append("nextWeekWork", getNextWeekWork())
|
||||
.append("problem", getProblem())
|
||||
.append("isDel", getIsDel())
|
||||
.append("createBy", getCreateBy())
|
||||
.append("createTime", getCreateTime())
|
||||
.append("updateBy", getUpdateBy())
|
||||
.append("updateTime", getUpdateTime())
|
||||
.append("updateInfo", getUpdateInfo())
|
||||
.toString();
|
||||
}
|
||||
}
|
|
@ -192,4 +192,5 @@ public class SurProjectBuildNodeData extends BaseEntity
|
|||
.append("updateTime", getUpdateTime())
|
||||
.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,67 @@
|
|||
package com.yanzhu.jh.project.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.yanzhu.jh.project.domain.SurProjectBuildDesignData;
|
||||
|
||||
/**
|
||||
* 设计管理Mapper接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-03-16
|
||||
*/
|
||||
public interface SurProjectBuildDesignDataMapper
|
||||
{
|
||||
/**
|
||||
* 查询设计管理
|
||||
*
|
||||
* @param id 设计管理主键
|
||||
* @return 设计管理
|
||||
*/
|
||||
public SurProjectBuildDesignData selectSurProjectBuildDesignDataById(Long id);
|
||||
|
||||
/**
|
||||
* 查询设计管理列表
|
||||
*
|
||||
* @param surProjectBuildDesignData 设计管理
|
||||
* @return 设计管理集合
|
||||
*/
|
||||
public List<SurProjectBuildDesignData> selectSurProjectBuildDesignDataList(SurProjectBuildDesignData surProjectBuildDesignData);
|
||||
|
||||
/**
|
||||
* 新增设计管理
|
||||
*
|
||||
* @param surProjectBuildDesignData 设计管理
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertSurProjectBuildDesignData(SurProjectBuildDesignData surProjectBuildDesignData);
|
||||
|
||||
/**
|
||||
* 修改设计管理
|
||||
*
|
||||
* @param surProjectBuildDesignData 设计管理
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateSurProjectBuildDesignData(SurProjectBuildDesignData surProjectBuildDesignData);
|
||||
|
||||
/**
|
||||
* 删除设计管理
|
||||
*
|
||||
* @param id 设计管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSurProjectBuildDesignDataById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除设计管理
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSurProjectBuildDesignDataByIds(Long[] ids);
|
||||
/**
|
||||
* 按周查询设计计划
|
||||
* @param projectId,startDate,endDate
|
||||
* @return
|
||||
*/
|
||||
public List<SurProjectBuildDesignData> selectWeekData(SurProjectBuildDesignData where);
|
||||
}
|
|
@ -85,4 +85,10 @@ public interface SurProjectUserinfoMapper
|
|||
* @return 用户信息集合信息
|
||||
*/
|
||||
public List<SysUser> selectProjectUserList(SurProject surProject);
|
||||
|
||||
/**
|
||||
* 设计管理中负责人列表
|
||||
* @return
|
||||
*/
|
||||
public List<SysUser> selectDesignUsers();
|
||||
}
|
||||
|
|
|
@ -84,4 +84,10 @@ public interface ISurProjectAttendanceGroupService
|
|||
public int batchSurProjectAttendanceGroup(List<SurProjectAttendanceGroup> surProjectAttendanceGroupList);
|
||||
|
||||
public void add(SurProjectAttendanceGroup group);
|
||||
|
||||
/**
|
||||
* 更新济工网的分组类型
|
||||
* @param group
|
||||
*/
|
||||
public void updateJgw(SurProjectAttendanceGroup group);
|
||||
}
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
package com.yanzhu.jh.project.service;
|
||||
|
||||
import java.util.List;
|
||||
import com.yanzhu.jh.project.domain.SurProjectBuildDesignData;
|
||||
|
||||
/**
|
||||
* 设计管理Service接口
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-03-16
|
||||
*/
|
||||
public interface ISurProjectBuildDesignDataService
|
||||
{
|
||||
/**
|
||||
* 查询设计管理
|
||||
*
|
||||
* @param id 设计管理主键
|
||||
* @return 设计管理
|
||||
*/
|
||||
public SurProjectBuildDesignData selectSurProjectBuildDesignDataById(Long id);
|
||||
|
||||
/**
|
||||
* 查询设计管理列表
|
||||
*
|
||||
* @param surProjectBuildDesignData 设计管理
|
||||
* @return 设计管理集合
|
||||
*/
|
||||
public List<SurProjectBuildDesignData> selectSurProjectBuildDesignDataList(SurProjectBuildDesignData surProjectBuildDesignData);
|
||||
|
||||
/**
|
||||
* 新增设计管理
|
||||
*
|
||||
* @param surProjectBuildDesignData 设计管理
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertSurProjectBuildDesignData(SurProjectBuildDesignData surProjectBuildDesignData);
|
||||
|
||||
/**
|
||||
* 修改设计管理
|
||||
*
|
||||
* @param surProjectBuildDesignData 设计管理
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateSurProjectBuildDesignData(SurProjectBuildDesignData surProjectBuildDesignData);
|
||||
|
||||
/**
|
||||
* 批量删除设计管理
|
||||
*
|
||||
* @param ids 需要删除的设计管理主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSurProjectBuildDesignDataByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除设计管理信息
|
||||
*
|
||||
* @param id 设计管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
public int deleteSurProjectBuildDesignDataById(Long id);
|
||||
|
||||
|
||||
/**
|
||||
* 按周查询设计计划
|
||||
* @param projectId,startDate,endDate
|
||||
* @return
|
||||
*/
|
||||
public List<SurProjectBuildDesignData> selectWeekData(com.yanzhu.jh.project.domain.SurProjectBuildDesignData where);
|
||||
|
||||
/**
|
||||
* 按项目增加本周的设计计划
|
||||
* @param where
|
||||
* @return
|
||||
*/
|
||||
public int addWeekData(SurProjectBuildDesignData where);
|
||||
|
||||
/**
|
||||
* 批量修改
|
||||
* @param list
|
||||
* @return
|
||||
*/
|
||||
public int updateList(List<SurProjectBuildDesignData> list);
|
||||
}
|
|
@ -83,4 +83,16 @@ public interface ISurProjectBuildNodeDataService
|
|||
public List<SurProjectBuildNodeData> queryByProjectType(long type);
|
||||
|
||||
public List<SurProjectBuildNodeData> queryFinishProject(long projectId);
|
||||
|
||||
/**
|
||||
* 2024-3 设计管理功能调整设计部分结构
|
||||
* @param projectId
|
||||
*/
|
||||
public int addDesignNodes(long projectId);
|
||||
|
||||
/**
|
||||
* 查询如果没有数据会增加
|
||||
* @return
|
||||
*/
|
||||
public List<SurProjectBuildNodeData> selectSurProjectBuildNodeDataListAndAdd(SurProjectBuildNodeData where);
|
||||
}
|
||||
|
|
|
@ -96,4 +96,10 @@ public interface ISurProjectUserinfoService
|
|||
* @return 用户信息集合信息
|
||||
*/
|
||||
public List<SysUser> selectProjectUserList(SurProject surProject);
|
||||
|
||||
/**
|
||||
* 设计管理中负责人列表
|
||||
* @return
|
||||
*/
|
||||
public List<SysUser> selectDesignUsers();
|
||||
}
|
||||
|
|
|
@ -143,4 +143,19 @@ public class SurProjectAttendanceGroupServiceImpl implements ISurProjectAttendan
|
|||
updateSurProjectAttendanceGroup(group);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新济工网的分组类型
|
||||
* @param group
|
||||
*/
|
||||
@Override
|
||||
public void updateJgw(SurProjectAttendanceGroup group) {
|
||||
SurProjectAttendanceGroup where=new SurProjectAttendanceGroup();
|
||||
where.setBizLicense(group.getBizLicense());
|
||||
List<SurProjectAttendanceGroup> list=selectSurProjectAttendanceGroupList(where);
|
||||
for(SurProjectAttendanceGroup g:list){
|
||||
g.setCompanyTypeId(group.getCompanyTypeId());
|
||||
updateSurProjectAttendanceGroup(g);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,213 @@
|
|||
package com.yanzhu.jh.project.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.yanzhu.jh.project.domain.BaseBuildNode;
|
||||
import com.yanzhu.jh.project.domain.SurProjectBuildNodeData;
|
||||
import com.yanzhu.jh.project.mapper.BaseBuildNodeMapper;
|
||||
import com.yanzhu.jh.project.service.ISurProjectBuildNodeDataService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.yanzhu.jh.project.mapper.SurProjectBuildDesignDataMapper;
|
||||
import com.yanzhu.jh.project.domain.SurProjectBuildDesignData;
|
||||
import com.yanzhu.jh.project.service.ISurProjectBuildDesignDataService;
|
||||
import com.ruoyi.common.utils.SecurityUtils;
|
||||
/**
|
||||
* 设计管理Service业务层处理
|
||||
*
|
||||
* @author ruoyi
|
||||
* @date 2024-03-16
|
||||
*/
|
||||
@Service
|
||||
public class SurProjectBuildDesignDataServiceImpl implements ISurProjectBuildDesignDataService
|
||||
{
|
||||
@Autowired
|
||||
private SurProjectBuildDesignDataMapper surProjectBuildDesignDataMapper;
|
||||
|
||||
@Autowired
|
||||
private BaseBuildNodeMapper baseBuildNodeMapper;
|
||||
|
||||
@Autowired
|
||||
private ISurProjectBuildNodeDataService surProjectBuildNodeDataService;
|
||||
/**
|
||||
* 查询设计管理
|
||||
*
|
||||
* @param id 设计管理主键
|
||||
* @return 设计管理
|
||||
*/
|
||||
@Override
|
||||
public SurProjectBuildDesignData selectSurProjectBuildDesignDataById(Long id)
|
||||
{
|
||||
return surProjectBuildDesignDataMapper.selectSurProjectBuildDesignDataById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询设计管理列表
|
||||
*
|
||||
* @param surProjectBuildDesignData 设计管理
|
||||
* @return 设计管理
|
||||
*/
|
||||
@Override
|
||||
public List<SurProjectBuildDesignData> selectSurProjectBuildDesignDataList(SurProjectBuildDesignData surProjectBuildDesignData)
|
||||
{
|
||||
return surProjectBuildDesignDataMapper.selectSurProjectBuildDesignDataList(surProjectBuildDesignData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增设计管理
|
||||
*
|
||||
* @param surProjectBuildDesignData 设计管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertSurProjectBuildDesignData(SurProjectBuildDesignData surProjectBuildDesignData)
|
||||
{
|
||||
surProjectBuildDesignData.setCreateBy(SecurityUtils.getUsername());
|
||||
surProjectBuildDesignData.setCreateTime(DateUtils.getNowDate());
|
||||
return surProjectBuildDesignDataMapper.insertSurProjectBuildDesignData(surProjectBuildDesignData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改设计管理
|
||||
*
|
||||
* @param surProjectBuildDesignData 设计管理
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateSurProjectBuildDesignData(SurProjectBuildDesignData surProjectBuildDesignData)
|
||||
{
|
||||
surProjectBuildDesignData.setUpdateBy(SecurityUtils.getUsername());
|
||||
surProjectBuildDesignData.setUpdateTime(DateUtils.getNowDate());
|
||||
return surProjectBuildDesignDataMapper.updateSurProjectBuildDesignData(surProjectBuildDesignData);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除设计管理
|
||||
*
|
||||
* @param ids 需要删除的设计管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteSurProjectBuildDesignDataByIds(Long[] ids)
|
||||
{
|
||||
return surProjectBuildDesignDataMapper.deleteSurProjectBuildDesignDataByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除设计管理信息
|
||||
*
|
||||
* @param id 设计管理主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int deleteSurProjectBuildDesignDataById(Long id)
|
||||
{
|
||||
return surProjectBuildDesignDataMapper.deleteSurProjectBuildDesignDataById(id);
|
||||
}
|
||||
/**
|
||||
* 按周查询设计计划
|
||||
* @param projectId,startDate,endDate
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SurProjectBuildDesignData> selectWeekData(SurProjectBuildDesignData where) {
|
||||
return surProjectBuildDesignDataMapper.selectWeekData(where);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int addWeekData(SurProjectBuildDesignData where) {
|
||||
int n=0;
|
||||
//查询上周数据
|
||||
SurProjectBuildDesignData prvWhere=new SurProjectBuildDesignData();
|
||||
DateTime dt= DateUtil.offsetDay(DateUtil.date(),-7);
|
||||
prvWhere.setProjectId(where.getProjectId());
|
||||
prvWhere.setStartDate(DateUtil.beginOfWeek(dt));
|
||||
prvWhere.setEndDate(DateUtil.endOfWeek(dt));
|
||||
List<SurProjectBuildDesignData> prvList=selectWeekData(prvWhere);
|
||||
DateTime dataTime=DateTime.now();
|
||||
if(prvList.size()>0){ //上周有数据,使用上周的数据,如果没有就创建新数据
|
||||
for(SurProjectBuildDesignData node :prvList){
|
||||
SurProjectBuildDesignData it = getSurProjectBuildDesignData(node, dataTime);
|
||||
insertSurProjectBuildDesignData(it);
|
||||
n++;
|
||||
}
|
||||
return n;
|
||||
}
|
||||
List<BaseBuildNode> list=baseBuildNodeMapper.selectByProject(where.getProjectId());
|
||||
|
||||
for(BaseBuildNode node:list){
|
||||
if(node.getNodeLvl().startsWith("03") && node.getNodeLvl().length()>2){
|
||||
SurProjectBuildDesignData it=new SurProjectBuildDesignData();
|
||||
it.setNodeId(node.getId());
|
||||
it.setProjectId(where.getProjectId());
|
||||
it.setDataDate(dataTime);
|
||||
it.setIsDel(0l);
|
||||
insertSurProjectBuildDesignData(it);
|
||||
n++;
|
||||
}
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量修改
|
||||
* @param list
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int updateList(List<SurProjectBuildDesignData> list) {
|
||||
if(list.size()==0){
|
||||
return 0;
|
||||
}
|
||||
long projectId= list.get(0).getProjectId();
|
||||
SurProjectBuildNodeData where=new SurProjectBuildNodeData();
|
||||
where.setProjectId(projectId);
|
||||
List<SurProjectBuildNodeData> nodeDataList=surProjectBuildNodeDataService.selectSurProjectBuildNodeDataListAndAdd(where);
|
||||
int cnt=0;
|
||||
for(SurProjectBuildDesignData item :list){
|
||||
updateSurProjectBuildDesignData(item);
|
||||
SurProjectBuildNodeData it=findNodeDataInList(nodeDataList,item);
|
||||
if(it!=null){
|
||||
it.setStartDate(item.getStartDate());
|
||||
it.setEndDate(item.getEndDate());
|
||||
it.setPlanStartDate(item.getPlanStartDate());
|
||||
it.setPlanEndDate(item.getPlanEndDate());
|
||||
surProjectBuildNodeDataService.updateSurProjectBuildNodeData(it);
|
||||
}
|
||||
}
|
||||
return cnt;
|
||||
}
|
||||
|
||||
private SurProjectBuildNodeData findNodeDataInList(List<SurProjectBuildNodeData> nodeDataList, SurProjectBuildDesignData item) {
|
||||
for(SurProjectBuildNodeData it:nodeDataList){
|
||||
if(it.getNodeId()==item.getNodeId()){
|
||||
return it;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private static SurProjectBuildDesignData getSurProjectBuildDesignData(SurProjectBuildDesignData node, DateTime dataTime) {
|
||||
SurProjectBuildDesignData it=new SurProjectBuildDesignData();
|
||||
it.setOwnerPhone(node.getOwnerPhone());
|
||||
it.setOwnerName(node.getOwnerName());
|
||||
it.setStartDate(node.getStartDate());
|
||||
it.setDataDate(dataTime);
|
||||
it.setProjectId(node.getProjectId());
|
||||
it.setEndDate(node.getEndDate());
|
||||
it.setIsDel(0l);
|
||||
it.setNodeId(node.getNodeId());
|
||||
it.setDuration(node.getDuration());
|
||||
it.setNextWeekWork(node.getNextWeekWork());
|
||||
it.setPlanEndDate(node.getPlanEndDate());
|
||||
it.setPlanEndDate(node.getPlanEndDate());
|
||||
it.setProblem(node.getProblem());
|
||||
it.setWork(node.getWork());
|
||||
it.setRemainingDays(node.getRemainingDays());
|
||||
it.setStatus(node.getStatus());
|
||||
return it;
|
||||
}
|
||||
}
|
|
@ -3,6 +3,7 @@ package com.yanzhu.jh.project.service.impl;
|
|||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.utils.DateUtils;
|
||||
import com.yanzhu.jh.project.domain.vo.SurProjectBuildNodeDataExport;
|
||||
import com.yanzhu.jh.project.mapper.SurProjectMapper;
|
||||
|
@ -124,6 +125,45 @@ public class SurProjectBuildNodeDataServiceImpl implements ISurProjectBuildNodeD
|
|||
}
|
||||
return n;
|
||||
}
|
||||
@Override
|
||||
public int addDesignNodes(long projectId) {
|
||||
List<BaseBuildNode> list=baseBuildNodeMapper.selectByProject(projectId);
|
||||
int n=0;
|
||||
for(BaseBuildNode it :list){
|
||||
if(it.getId()>491) {
|
||||
SurProjectBuildNodeData item = new SurProjectBuildNodeData();
|
||||
item.setProjectId(projectId);
|
||||
item.setNodeId(it.getId());
|
||||
item.setIsDel(0l);
|
||||
n += this.insertSurProjectBuildNodeData(item);
|
||||
}
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SurProjectBuildNodeData> selectSurProjectBuildNodeDataListAndAdd(SurProjectBuildNodeData where) {
|
||||
long projectId=where.getProjectId();
|
||||
List<SurProjectBuildNodeData> list=this.selectSurProjectBuildNodeDataList(where);
|
||||
if(list.size()>0){
|
||||
boolean foundNewDesignLvl=false;
|
||||
for(SurProjectBuildNodeData it:list){
|
||||
if(it.getBaseBuildNode().getNodeLvl().equals("0304")){
|
||||
foundNewDesignLvl=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!foundNewDesignLvl){
|
||||
this.addDesignNodes(projectId);
|
||||
list=this.selectSurProjectBuildNodeDataList(where);
|
||||
return list;
|
||||
}
|
||||
return list;
|
||||
}
|
||||
this.addProjectNodes(projectId);
|
||||
list=this.selectSurProjectBuildNodeDataList(where);
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int importData(List<SurProjectBuildNodeDataExport> list) {
|
||||
|
@ -190,4 +230,5 @@ public class SurProjectBuildNodeDataServiceImpl implements ISurProjectBuildNodeD
|
|||
public List<SurProjectBuildNodeData> queryFinishProject(long projectId) {
|
||||
return surProjectBuildNodeDataMapper.queryFinishProject(projectId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -322,4 +322,13 @@ public class SurProjectUserinfoServiceImpl implements ISurProjectUserinfoService
|
|||
{
|
||||
return surProjectUserinfoMapper.selectProjectUserList(surProject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设计管理中负责人列表
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public List<SysUser> selectDesignUsers() {
|
||||
return surProjectUserinfoMapper.selectDesignUsers();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -124,7 +124,7 @@ public class AttendanceHuazhuTask {
|
|||
}
|
||||
|
||||
/**
|
||||
* 同步7天之内的数据
|
||||
* 同步90天之内的数据
|
||||
*/
|
||||
public void syncLast90DayAttendanceData() {
|
||||
long endTime=DateUtil.current();
|
||||
|
@ -132,6 +132,9 @@ public class AttendanceHuazhuTask {
|
|||
syncAttendanceData(startTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步7天之内的数据
|
||||
*/
|
||||
public void syncLastWeekAttendanceData() {
|
||||
long endTime=DateUtil.current();
|
||||
long startTime=endTime-3600*1000*24*7;
|
||||
|
|
|
@ -1,16 +1,50 @@
|
|||
package com.yanzhu.jh.project.task;
|
||||
|
||||
import cn.hutool.core.codec.Base64;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.ruoyi.common.config.RuoYiConfig;
|
||||
import com.ruoyi.common.utils.file.FileUploadUtils;
|
||||
import com.ruoyi.common.utils.file.FileUtils;
|
||||
import com.ruoyi.common.utils.sign.Md5Utils;
|
||||
import com.ruoyi.common.utils.uuid.UUID;
|
||||
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
|
||||
import com.yanzhu.jh.project.domain.SurProjectAttendanceData;
|
||||
import com.yanzhu.jh.project.domain.SurProjectAttendanceGroup;
|
||||
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
|
||||
import com.yanzhu.jh.project.service.ISurProjectAttendanceCfgService;
|
||||
import com.yanzhu.jh.project.service.ISurProjectAttendanceDataService;
|
||||
import com.yanzhu.jh.project.service.ISurProjectAttendanceGroupService;
|
||||
import com.yanzhu.jh.project.service.ISurProjectAttendanceUserService;
|
||||
import okhttp3.*;
|
||||
import org.apache.logging.log4j.util.Strings;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
@Component("attendanceJgwTask")
|
||||
public class AttendanceJgwTask {
|
||||
@Autowired
|
||||
ISurProjectAttendanceUserService attendanceUserService;
|
||||
|
||||
@Autowired
|
||||
ISurProjectAttendanceCfgService attendanceCfgService;
|
||||
|
||||
@Autowired
|
||||
ISurProjectAttendanceDataService attendanceDataService;
|
||||
|
||||
@Autowired
|
||||
ISurProjectAttendanceGroupService attendanceGroupService;
|
||||
|
||||
static String host="http://api.gongyoumishu.com:80/gomeetapi/";
|
||||
//sign/photo/20240101/E24E76-C9A5CB-0000FF/1741751233297383424_8848.JPG
|
||||
public static String getToken(String appid,String secret){
|
||||
|
@ -40,17 +74,24 @@ public class AttendanceJgwTask {
|
|||
}
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
public static void main(String[] args){
|
||||
String d="sxyzxx2024suc";
|
||||
System.out.println(Base64.encode(d));
|
||||
|
||||
String appid="6a6f24fe35b04ee0bcf31cfb46ed1051";
|
||||
String secret="c3h5enh4MjAyNHN1Yw==";
|
||||
String prjId="b67f1baa6dca4558a16bf90a4681b82e";
|
||||
String prjId="db955e11ef774e63968a47c3dc2acc15";//"b67f1baa6dca4558a16bf90a4681b82e";
|
||||
String token= getToken(appid,secret);
|
||||
if(token==null || token.length()==0){
|
||||
return;
|
||||
}
|
||||
System.out.println(token);
|
||||
//findAddWorkerByProject(appid,token,prjId);
|
||||
System.out.println(DateUtil.format(DateTime.now(),"yyyy-MM-dd"));
|
||||
//findAddWorkerByProject(appid,token,prjId,0);
|
||||
findAttendanceByProject(appid,token,prjId);
|
||||
//findTeamByProjectId(appid,token,prjId);
|
||||
//findProContractorByProjectId(appid,token,prjId);
|
||||
}
|
||||
public static void findAttendanceByProject(String appId,String token,String projectId){
|
||||
String path="/webapi/project/findAttendanceByProject";
|
||||
|
@ -66,24 +107,138 @@ public class AttendanceJgwTask {
|
|||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("startId",startId);
|
||||
params.put("startId",startId);
|
||||
params.put("startTime","2024-01-01");
|
||||
params.put("endTime","2024-01-20");
|
||||
params.put("startTime",DateUtil.format(DateTime.now(),"yyyy-MM-dd"));
|
||||
params.put("endTime",DateUtil.format(DateUtil.offsetDay(DateTime.now(),0),"yyyy-MM-dd"));
|
||||
Request request = new Request.Builder()
|
||||
.url(host+path)
|
||||
.post(toFormBody(params))
|
||||
.build();
|
||||
String data=AttendanceTask.getResult(request);
|
||||
System.out.println(data);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
String endId= joData.getString("endId");
|
||||
JSONArray arr=joData.getJSONArray("workerAttList");
|
||||
if(arr!=null && arr.size()>0){
|
||||
for(int i=0;i<arr.size();i++) {
|
||||
JSONObject json = arr.getJSONObject(i);
|
||||
String photo=json.getString("signimg");
|
||||
String photoUrl=getPhoto(appId,token,photo);
|
||||
SurProjectAttendanceData sdata = SurProjectAttendanceData.createFromJgw(json);
|
||||
sdata.setScanPhoto(photoUrl);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
public static void findAddWorkerByProject(String appId,String token,String projectId){
|
||||
String path="/webapi/project/findAddWorkerByProject";
|
||||
|
||||
private static String getPhoto(String appId,String token, String photo) {
|
||||
String path="/webapi/dictInfo/getPhoyoAllPaths";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("filePath",photo);
|
||||
Request request = new Request.Builder()
|
||||
.url(host+path)
|
||||
.post(toFormBody(params))
|
||||
.build();
|
||||
String data=AttendanceTask.getResult(request);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
String purl=joData.getString("result");
|
||||
byte[] buffer= HttpUtil.downloadBytes(purl);
|
||||
String filePath= RuoYiConfig.getUploadPath();
|
||||
filePath="D:/data/uploadPath";
|
||||
try {
|
||||
return FileUtils.writeBytes(buffer, filePath+"/jgw");
|
||||
}catch (Exception ex){
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
public static void findProContractorByProjectId(String appId,String token,String projectId){
|
||||
String path="/webapi/project/findProContractorByProjectId";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String startId="0";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
System.out.println(url);
|
||||
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
System.out.println(tokenSign);
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("rowId",startId);
|
||||
url=host+path+"?appId="+appId+"&tokenSign="+tokenSign+"&projectId="+projectId+"×tamp="+time+"&rowId="+startId;
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.get()
|
||||
.build();
|
||||
String data=AttendanceTask.getResult(request);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
JSONArray arr=joData.getJSONArray("proContractorList");
|
||||
if(arr.size()>0){
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
SurProjectAttendanceGroup group=new SurProjectAttendanceGroup();
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void findTeamByProjectId(String appId,String token,String projectId){
|
||||
String path="/webapi/project/findTeamByProjectId";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String startId="34549";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("rowId",startId);
|
||||
url=host+path+"?appId="+appId+"&tokenSign="+tokenSign+"&projectId="+projectId+"×tamp="+time+"&rowId="+startId;
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.get()
|
||||
.build();
|
||||
String data=AttendanceTask.getResult(request);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
JSONArray arr=joData.getJSONArray("teamList");
|
||||
if(arr.size()>0){
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json);
|
||||
group.setBizLicense(json.getString("corpCode"));
|
||||
String type=json.getString("corpType");
|
||||
if("009".equals(type)){ //总包人员
|
||||
group.setCompanyTypeId("1");
|
||||
}else if("007".equals(type)){//监理人员
|
||||
group.setCompanyTypeId("8");
|
||||
}else if("006".equals(type)){//劳务人员
|
||||
group.setCompanyTypeId("2");
|
||||
}
|
||||
if(StrUtil.isNotEmpty(group.getCompanyTypeId())){
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void findAddWorkerByProject(String appId,String token,String projectId,int startId){
|
||||
String path="/webapi/project/findAddWorkerByProject";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
|
@ -95,7 +250,323 @@ public class AttendanceJgwTask {
|
|||
.post(toFormBody(params))
|
||||
.build();
|
||||
String data=AttendanceTask.getResult(request);
|
||||
System.out.println(data);
|
||||
JSONObject jo= JSON.parseObject(data);
|
||||
JSONObject joData= jo.getJSONObject("data");
|
||||
int endId= joData.getInteger("endId");
|
||||
JSONArray arr=joData.getJSONArray("workerList");
|
||||
if(arr.size()>0) {
|
||||
int cnt=0;
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
String workerStatus= json.getString("workerStatus");
|
||||
if("02".equals(workerStatus)){
|
||||
cnt++;
|
||||
}
|
||||
// SurProjectAttendanceUser user=SurProjectAttendanceUser.createFromJgw(json);
|
||||
}
|
||||
System.out.println("cnt:"+cnt+","+arr.size());
|
||||
//findAddWorkerByProject(appId, token, projectId, endId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步人员信息
|
||||
*/
|
||||
public void syncWorker(){
|
||||
SurProjectAttendanceCfg where =new SurProjectAttendanceCfg();
|
||||
where.setEnabled(1l);
|
||||
where.setIsDel(0l);
|
||||
where.setVendorsCode("jgw");
|
||||
List<SurProjectAttendanceCfg> list=attendanceCfgService.selectSurProjectAttendanceCfgList(where);
|
||||
for(SurProjectAttendanceCfg it :list){
|
||||
String param= it.getVendorsParameter();
|
||||
if(Strings.isNotEmpty(param)){
|
||||
try{
|
||||
JSONObject jo=JSON.parseObject(param);
|
||||
String appId=jo.getString("appId");
|
||||
String secret=jo.getString("secret");
|
||||
secret=Base64.encode(secret);
|
||||
jo.put("secret",secret);
|
||||
String token= getToken(appId,secret);
|
||||
jo.put("token",token);
|
||||
doSyncWorker(jo,0l,it);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void doSyncWorker(JSONObject jo, long startId, SurProjectAttendanceCfg it) {
|
||||
String appId=jo.getString("appId");
|
||||
String token=jo.getString("token");
|
||||
String projectId=jo.getString("projectId");
|
||||
String path="/webapi/project/findAddWorkerByProject";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("startId",startId);
|
||||
Request request = new Request.Builder()
|
||||
.url(host+path)
|
||||
.post(toFormBody(params))
|
||||
.build();
|
||||
String data=AttendanceTask.getResult(request);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
long endId= joData.getLong("endId");
|
||||
JSONArray arr=joData.getJSONArray("workerList");
|
||||
if(arr.size()>0) {
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
SurProjectAttendanceUser user=SurProjectAttendanceUser.createFromJgw(json);
|
||||
user.setVendorsCode(it.getVendorsCode());
|
||||
user.setCfgid(it.getId());
|
||||
user.setAppId(appId);
|
||||
attendanceUserService.add(user);
|
||||
}
|
||||
doSyncWorker(jo,endId,it);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步群组信息
|
||||
*/
|
||||
public void syncGroup(){
|
||||
SurProjectAttendanceCfg where =new SurProjectAttendanceCfg();
|
||||
where.setEnabled(1l);
|
||||
where.setIsDel(0l);
|
||||
where.setVendorsCode("jgw");
|
||||
List<SurProjectAttendanceCfg> list=attendanceCfgService.selectSurProjectAttendanceCfgList(where);
|
||||
for(SurProjectAttendanceCfg it :list){
|
||||
String param= it.getVendorsParameter();
|
||||
if(Strings.isNotEmpty(param)){
|
||||
try{
|
||||
JSONObject jo=JSON.parseObject(param);
|
||||
String appId=jo.getString("appId");
|
||||
String secret=jo.getString("secret");
|
||||
secret=Base64.encode(secret);
|
||||
jo.put("secret",secret);
|
||||
String token= getToken(appId,secret);
|
||||
jo.put("token",token);
|
||||
doSyncGroup(jo,0l,it);
|
||||
doSyncProContractor(jo,0l,it);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询参建单位
|
||||
* @param jo
|
||||
* @param l
|
||||
* @param it
|
||||
*/
|
||||
private void doSyncProContractor(JSONObject jo, long startId, SurProjectAttendanceCfg it) {
|
||||
String appId=jo.getString("appId");
|
||||
String token=jo.getString("token");
|
||||
String projectId=jo.getString("projectId");
|
||||
String path="/webapi/project/findProContractorByProjectId";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("rowId",startId);
|
||||
url=host+path+"?appId="+appId+"&tokenSign="+tokenSign+"&projectId="+projectId+"×tamp="+time+"&rowId="+startId;
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.get()
|
||||
.build();
|
||||
String data=AttendanceTask.getResult(request);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
JSONArray arr=joData.getJSONArray("proContractorList");
|
||||
if(arr.size()>0){
|
||||
long rowId=0;
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
rowId=json.getLong("id");
|
||||
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json);
|
||||
group.setBizLicense(json.getString("corpCode"));
|
||||
String type=json.getString("corpType");
|
||||
if("009".equals(type)){ //总包人员
|
||||
group.setCompanyTypeId("1");
|
||||
}else if("007".equals(type)){//监理人员
|
||||
group.setCompanyTypeId("8");
|
||||
}else if("006".equals(type)){//劳务人员
|
||||
group.setCompanyTypeId("2");
|
||||
}
|
||||
if(StrUtil.isNotEmpty(group.getCompanyTypeId())){
|
||||
attendanceGroupService.updateJgw(group);
|
||||
}
|
||||
}
|
||||
if(rowId>0){
|
||||
doSyncProContractor(jo,rowId+1,it);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询班组
|
||||
* @param jo
|
||||
* @param startId
|
||||
* @param it
|
||||
*/
|
||||
private void doSyncGroup(JSONObject jo, long startId, SurProjectAttendanceCfg it) {
|
||||
String appId=jo.getString("appId");
|
||||
String token=jo.getString("token");
|
||||
String projectId=jo.getString("projectId");
|
||||
String path="/webapi/project/findTeamByProjectId";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("rowId",startId);
|
||||
url=host+path+"?appId="+appId+"&tokenSign="+tokenSign+"&projectId="+projectId+"×tamp="+time+"&rowId="+startId;
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.get()
|
||||
.build();
|
||||
String data=AttendanceTask.getResult(request);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
JSONArray arr=joData.getJSONArray("teamList");
|
||||
if(arr.size()>0){
|
||||
long rowId=0;
|
||||
for(int i=0;i<arr.size();i++){
|
||||
JSONObject json=arr.getJSONObject(i);
|
||||
SurProjectAttendanceGroup group=SurProjectAttendanceGroup.createJgw(json);
|
||||
group.setCfgid(it.getId());
|
||||
group.setAppId(appId);
|
||||
rowId=json.getLong("id");
|
||||
attendanceGroupService.add(group);
|
||||
}
|
||||
if(rowId>0){
|
||||
doSyncGroup(jo,rowId+1,it);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步当天数据
|
||||
*/
|
||||
public void syncAttendanceData(){
|
||||
String dtStart=DateUtil.format(DateTime.now(),"yyyy-MM-dd");
|
||||
String dtEnd=dtStart;
|
||||
syncAttendanceData(dtStart,dtEnd);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步7天之内数据
|
||||
*/
|
||||
public void syncLastWeekAttendanceData(){
|
||||
String dtEnd=DateUtil.format(DateTime.now(),"yyyy-MM-dd");
|
||||
String dtStart=DateUtil.format(DateUtil.offsetDay(DateTime.now(),-7),"yyyy-MM-dd");
|
||||
syncAttendanceData(dtStart,dtEnd);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步30天内数据
|
||||
*/
|
||||
public void syncLast30DayAttendanceData(){
|
||||
String dtEnd=DateUtil.format(DateTime.now(),"yyyy-MM-dd");
|
||||
String dtStart=DateUtil.format(DateUtil.offsetDay(DateTime.now(),-30),"yyyy-MM-dd");
|
||||
syncAttendanceData(dtStart,dtEnd);
|
||||
syncAttendanceData(dtStart,dtEnd);
|
||||
}
|
||||
|
||||
|
||||
private void syncAttendanceData(String dtStart,String dtEnd){
|
||||
SurProjectAttendanceCfg where =new SurProjectAttendanceCfg();
|
||||
where.setEnabled(1l);
|
||||
where.setIsDel(0l);
|
||||
where.setVendorsCode("jgw");
|
||||
List<SurProjectAttendanceCfg> list=attendanceCfgService.selectSurProjectAttendanceCfgList(where);
|
||||
for(SurProjectAttendanceCfg it :list){
|
||||
String param= it.getVendorsParameter();
|
||||
if(Strings.isNotEmpty(param)){
|
||||
try{
|
||||
JSONObject jo=JSON.parseObject(param);
|
||||
String appId=jo.getString("appId");
|
||||
String secret=jo.getString("secret");
|
||||
secret=Base64.encode(secret);
|
||||
jo.put("secret",secret);
|
||||
String token= getToken(appId,secret);
|
||||
jo.put("token",token);
|
||||
jo.put("startTime",dtStart);
|
||||
jo.put("endTime",dtEnd);
|
||||
doSyncAttendanceData(jo,"0",it);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void doSyncAttendanceData(JSONObject jo, String startId, SurProjectAttendanceCfg it) {
|
||||
String appId=jo.getString("appId");
|
||||
String token=jo.getString("token");
|
||||
String projectId=jo.getString("projectId");
|
||||
String startTime=jo.getString("startTime");
|
||||
String endTime=jo.getString("endTime");
|
||||
String path="/webapi/project/findAttendanceByProject";
|
||||
String time = System.currentTimeMillis() + "";
|
||||
String url=host+path+"?appId=" + appId + "&tokenSign=" + token +"×tamp=" + time;
|
||||
|
||||
String tokenSign = Md5Utils.hash(url);
|
||||
Map<String, Object> params = new HashMap<>();
|
||||
params.put("appId",appId);
|
||||
params.put("timestamp",time);
|
||||
params.put("tokenSign",tokenSign);
|
||||
params.put("projectId",projectId);
|
||||
params.put("startId",startId);
|
||||
params.put("startTime",startTime);
|
||||
params.put("endTime",endTime);
|
||||
Request request = new Request.Builder()
|
||||
.url(host+path)
|
||||
.post(toFormBody(params))
|
||||
.build();
|
||||
String data=AttendanceTask.getResult(request);
|
||||
System.out.println(data);
|
||||
JSONObject j= JSON.parseObject(data);
|
||||
JSONObject joData= j.getJSONObject("data");
|
||||
String endId= joData.getString("endId");
|
||||
JSONArray arr=joData.getJSONArray("workerAttList");
|
||||
if(arr!=null && arr.size()>0){
|
||||
for(int i=0;i<arr.size();i++) {
|
||||
JSONObject json = arr.getJSONObject(i);
|
||||
String photo=json.getString("signimg");
|
||||
String photoUrl=getPhoto(appId,token,photo);
|
||||
SurProjectAttendanceData sdata = SurProjectAttendanceData.createFromJgw(json);
|
||||
sdata.setScanPhoto(photoUrl);
|
||||
sdata.setCfgid(it.getId());
|
||||
sdata.setAppId(appId);
|
||||
sdata.setVendorsCode(it.getVendorsCode());
|
||||
attendanceDataService.add(sdata);
|
||||
}
|
||||
doSyncAttendanceData(jo,endId,it);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,193 @@
|
|||
<?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.jh.project.mapper.SurProjectBuildDesignDataMapper">
|
||||
|
||||
<resultMap type="SurProjectBuildDesignData" id="SurProjectBuildDesignDataResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="nodeId" column="node_id" />
|
||||
<result property="projectId" column="project_id" />
|
||||
<result property="ownerName" column="owner_name" />
|
||||
<result property="ownerPhone" column="owner_phone" />
|
||||
<result property="dataDate" column="data_date" />
|
||||
<result property="startDate" column="start_date" />
|
||||
<result property="planStartDate" column="plan_start_date" />
|
||||
<result property="endDate" column="end_date" />
|
||||
<result property="planEndDate" column="plan_end_date" />
|
||||
<result property="duration" column="duration" />
|
||||
<result property="remainingDays" column="remaining_days" />
|
||||
<result property="status" column="status" />
|
||||
<result property="remark" column="remark" />
|
||||
<result property="files" column="files" />
|
||||
<result property="work" column="work" />
|
||||
<result property="nextWeekWork" column="next_week_work" />
|
||||
<result property="problem" column="problem" />
|
||||
<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="updateInfo" column="update_info" />
|
||||
</resultMap>
|
||||
|
||||
<resultMap type="SurProjectBuildDesignData" id="SurProjectBuildDesignDataResultNode">
|
||||
<result property="id" column="id" />
|
||||
<result property="nodeId" column="node_id" />
|
||||
<result property="projectId" column="project_id" />
|
||||
<result property="ownerName" column="owner_name" />
|
||||
<result property="ownerPhone" column="owner_phone" />
|
||||
<result property="dataDate" column="data_date" />
|
||||
<result property="startDate" column="start_date" />
|
||||
<result property="planStartDate" column="plan_start_date" />
|
||||
<result property="endDate" column="end_date" />
|
||||
<result property="planEndDate" column="plan_end_date" />
|
||||
<result property="duration" column="duration" />
|
||||
<result property="remainingDays" column="remaining_days" />
|
||||
<result property="status" column="status" />
|
||||
<result property="remark" column="remark" />
|
||||
<result property="files" column="files" />
|
||||
<result property="work" column="work" />
|
||||
<result property="nextWeekWork" column="next_week_work" />
|
||||
<result property="problem" column="problem" />
|
||||
<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="updateInfo" column="update_info" />
|
||||
<association property="baseBuildNode" javaType="baseBuildNode">
|
||||
<result property="id" column="node_id" />
|
||||
<result property="nodeText" column="node_text" />
|
||||
<result property="nodeLvl" column="node_lvl" />
|
||||
<result property="nodeType" column="node_type" />
|
||||
</association>
|
||||
<association property="project" javaType="SurProject">
|
||||
<result property="id" column="project_id" />
|
||||
<result property="projectName" column="projectName"/>
|
||||
</association>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectSurProjectBuildDesignDataVo">
|
||||
select id, node_id, project_id, owner_name, owner_phone, data_date, start_date, plan_start_date, end_date, plan_end_date, duration, remaining_days, status, remark, files, work, next_week_work, problem, is_del, create_by, create_time, update_by, update_time, update_info from sur_project_build_design_data
|
||||
</sql>
|
||||
<sql id="selectSurProjectBuildDesignDataVoView">
|
||||
select a.*,b.node_text,b.node_lvl,b.node_type,p.projectName
|
||||
from sur_project_build_design_data a,base_build_node b,sur_project p
|
||||
where a.node_id=b.id and a.project_id=p.id and a.is_del!=1 and b.is_del!=1 and p.isdel!=1
|
||||
</sql>
|
||||
<select id="selectSurProjectBuildDesignDataList" parameterType="SurProjectBuildDesignData" resultMap="SurProjectBuildDesignDataResultNode">
|
||||
<include refid="selectSurProjectBuildDesignDataVoView"/>
|
||||
|
||||
<if test="projectId != null "> and a.project_id = #{projectId}</if>
|
||||
<if test="startDate != null "> and a.data_date >= #{startDate}</if>
|
||||
<if test="endDate != null "> and a.data_date <= #{endDate}</if>
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectSurProjectBuildDesignDataById" parameterType="Long" resultMap="SurProjectBuildDesignDataResult">
|
||||
<include refid="selectSurProjectBuildDesignDataVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="selectWeekData" parameterType="SurProjectBuildDesignData" resultMap="SurProjectBuildDesignDataResultNode">
|
||||
<include refid="selectSurProjectBuildDesignDataVoView"/>
|
||||
<if test="projectId != null "> and a.project_id = #{projectId}</if>
|
||||
<if test="startDate != null "> and a.data_date >= #{startDate}</if>
|
||||
<if test="endDate != null "> and a.data_date <= #{endDate}</if>
|
||||
</select>
|
||||
<insert id="insertSurProjectBuildDesignData" parameterType="SurProjectBuildDesignData" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into sur_project_build_design_data
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="nodeId != null">node_id,</if>
|
||||
<if test="projectId != null">project_id,</if>
|
||||
<if test="ownerName != null">owner_name,</if>
|
||||
<if test="ownerPhone != null">owner_phone,</if>
|
||||
<if test="dataDate != null">data_date,</if>
|
||||
<if test="startDate != null">start_date,</if>
|
||||
<if test="planStartDate != null">plan_start_date,</if>
|
||||
<if test="endDate != null">end_date,</if>
|
||||
<if test="planEndDate != null">plan_end_date,</if>
|
||||
<if test="duration != null">duration,</if>
|
||||
<if test="remainingDays != null">remaining_days,</if>
|
||||
<if test="status != null">status,</if>
|
||||
<if test="remark != null">remark,</if>
|
||||
<if test="files != null">files,</if>
|
||||
<if test="work != null">work,</if>
|
||||
<if test="nextWeekWork != null">next_week_work,</if>
|
||||
<if test="problem != null">problem,</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>
|
||||
<if test="updateInfo != null">update_info,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="nodeId != null">#{nodeId},</if>
|
||||
<if test="projectId != null">#{projectId},</if>
|
||||
<if test="ownerName != null">#{ownerName},</if>
|
||||
<if test="ownerPhone != null">#{ownerPhone},</if>
|
||||
<if test="dataDate != null">#{dataDate},</if>
|
||||
<if test="startDate != null">#{startDate},</if>
|
||||
<if test="planStartDate != null">#{planStartDate},</if>
|
||||
<if test="endDate != null">#{endDate},</if>
|
||||
<if test="planEndDate != null">#{planEndDate},</if>
|
||||
<if test="duration != null">#{duration},</if>
|
||||
<if test="remainingDays != null">#{remainingDays},</if>
|
||||
<if test="status != null">#{status},</if>
|
||||
<if test="remark != null">#{remark},</if>
|
||||
<if test="files != null">#{files},</if>
|
||||
<if test="work != null">#{work},</if>
|
||||
<if test="nextWeekWork != null">#{nextWeekWork},</if>
|
||||
<if test="problem != null">#{problem},</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>
|
||||
<if test="updateInfo != null">#{updateInfo},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateSurProjectBuildDesignData" parameterType="SurProjectBuildDesignData">
|
||||
update sur_project_build_design_data
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="nodeId != null">node_id = #{nodeId},</if>
|
||||
<if test="projectId != null">project_id = #{projectId},</if>
|
||||
<if test="ownerName != null">owner_name = #{ownerName},</if>
|
||||
<if test="ownerPhone != null">owner_phone = #{ownerPhone},</if>
|
||||
<if test="dataDate != null">data_date = #{dataDate},</if>
|
||||
<if test="startDate != null">start_date = #{startDate},</if>
|
||||
<if test="planStartDate != null">plan_start_date = #{planStartDate},</if>
|
||||
<if test="endDate != null">end_date = #{endDate},</if>
|
||||
<if test="planEndDate != null">plan_end_date = #{planEndDate},</if>
|
||||
<if test="duration != null">duration = #{duration},</if>
|
||||
<if test="remainingDays != null">remaining_days = #{remainingDays},</if>
|
||||
<if test="status != null">status = #{status},</if>
|
||||
<if test="remark != null">remark = #{remark},</if>
|
||||
<if test="files != null">files = #{files},</if>
|
||||
<if test="work != null">work = #{work},</if>
|
||||
<if test="nextWeekWork != null">next_week_work = #{nextWeekWork},</if>
|
||||
<if test="problem != null">problem = #{problem},</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>
|
||||
<if test="updateInfo != null">update_info = #{updateInfo},</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteSurProjectBuildDesignDataById" parameterType="Long">
|
||||
delete from sur_project_build_design_data where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteSurProjectBuildDesignDataByIds" parameterType="String">
|
||||
delete from sur_project_build_design_data where id in
|
||||
<foreach item="id" collection="array" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
|
@ -52,6 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<sql id="selectSurProjectBuildNodeDataVo">
|
||||
select id, node_id, project_id, start_date, plan_start_date, end_date, plan_end_date, status, remark, files, is_del, create_by, create_time, update_by, update_time from sur_project_build_node_data
|
||||
</sql>
|
||||
|
||||
<sql id="selectSurProjectBuildNodeDataVoByNode">
|
||||
SELECT * FROM vw_sur_project_build_node_data_all
|
||||
</sql>
|
||||
|
|
|
@ -182,5 +182,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<!-- 数据范围过滤 -->
|
||||
${params.dataScope}
|
||||
</select>
|
||||
|
||||
<resultMap type="SysUser" id="SurProjectDesignUserinfoResult">
|
||||
<id property="userId" column="user_id" />
|
||||
<result property="deptId" column="dept_id" />
|
||||
<result property="remark" column="dept_name" />
|
||||
<result property="userName" column="user_name" />
|
||||
<result property="nickName" column="nick_name" />
|
||||
<result property="phonenumber" column="phonenumber" />
|
||||
</resultMap>
|
||||
<select id="selectDesignUsers" resultMap="SurProjectDesignUserinfoResult">
|
||||
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader
|
||||
from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
where u.del_flag = '0'
|
||||
AND (u.dept_id = 101 or find_in_set(101, d.ancestors))
|
||||
order by d.dept_id
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue