
59 changed files with 2676 additions and 92 deletions
@ -0,0 +1,23 @@ |
|||
package com.yxt.anrui.reportcenter.api.carsSoldProfit; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2025/5/15 |
|||
**/ |
|||
@Data |
|||
public class CarsSoldProfitRebateAllVo implements Vo { |
|||
private static final long serialVersionUID = -9016391824372444422L; |
|||
|
|||
private List<CarsSoldProfitRebateDetailsVo> list; |
|||
@ApiModelProperty("预提返利合计") |
|||
private String expectedRebateTotal; |
|||
@ApiModelProperty("调整返利合计") |
|||
private String adjustedRebateTotal; |
|||
} |
@ -0,0 +1,28 @@ |
|||
package com.yxt.anrui.reportcenter.api.carsSoldProfit; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2025/5/15 |
|||
**/ |
|||
@Data |
|||
public class CarsSoldProfitRebateDetailsVo implements Vo { |
|||
private static final long serialVersionUID = -2059450221052046209L; |
|||
|
|||
@ApiModelProperty("政策方") |
|||
private String policy; |
|||
@ApiModelProperty("所属年月") |
|||
private String yearAndMonth; |
|||
@ApiModelProperty("返利类型") |
|||
private String rebateType; |
|||
@ApiModelProperty("返利名称") |
|||
private String rebateName; |
|||
@ApiModelProperty("预提返利") |
|||
private String expectedRebate; |
|||
@ApiModelProperty("返利调整") |
|||
private String rebatesAdjust; |
|||
} |
@ -0,0 +1,33 @@ |
|||
package com.yxt.anrui.scm.api.scmvehrebate; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2025/5/16 |
|||
**/ |
|||
@Data |
|||
public class ScmVehRebateCarsSoldProfitVo implements Vo { |
|||
private static final long serialVersionUID = -5925794987523752087L; |
|||
|
|||
@ApiModelProperty("政策方") |
|||
private String policy; |
|||
@ApiModelProperty("所属年月") |
|||
private String palceGenDate; |
|||
@ApiModelProperty("返利类型") |
|||
private String rebateTypeValue; |
|||
@ApiModelProperty("返利名称") |
|||
private String rebateName; |
|||
@ApiModelProperty("预提返利:预提返利-预提费用的结果(待支付+抵顶)") |
|||
private String expectedRebate; |
|||
@ApiModelProperty("预计待支付费用") |
|||
private String expectTreatCost; |
|||
@ApiModelProperty("预计抵顶费用") |
|||
private String expectSuppCost; |
|||
@ApiModelProperty("返利调整") |
|||
private String adjustmentMoney; |
|||
|
|||
} |
@ -0,0 +1,48 @@ |
|||
import request from '@/utils/request' |
|||
|
|||
export default { |
|||
|
|||
// 查询分页列表
|
|||
listPage: function(params) { |
|||
return request({ |
|||
url: '/vehfleet/v1/affiliatedcompany/listPage', method: 'post', data: params, headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 查询全部列表
|
|||
listAll: function() { |
|||
return request({ |
|||
url: '/vehfleet/v1/affiliatedcompany/list', method: 'post', headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 新增、保存
|
|||
saveAffiliatedcompany: function(data) { |
|||
return request({ |
|||
url: '/vehfleet/v1/affiliatedcompany/saveOrUpdate', method: 'post', data: data, headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 初始化
|
|||
initAffiliatedcompany: function(data) { |
|||
return request({ |
|||
url: '/vehfleet/v1/affiliatedcompany/fetchSid/' + data, method: 'get' |
|||
}) |
|||
}, |
|||
|
|||
// 删除
|
|||
deleteBySids: function(data) { |
|||
return request({ |
|||
url: '/vehfleet/v1/affiliatedcompany/delBySids', method: 'DELETE', data: data, headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
} |
|||
|
|||
} |
@ -0,0 +1,39 @@ |
|||
import request from '@/utils/request' |
|||
|
|||
export default { |
|||
|
|||
// 查询分页列表
|
|||
listPage: function(params) { |
|||
return request({ |
|||
url: '/vehfleet/v1/regulatorydocuments/listPage', method: 'post', data: params, headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 新增、保存
|
|||
saveRegulatorydocuments: function(data) { |
|||
return request({ |
|||
url: '/vehfleet/v1/regulatorydocuments/saveOrUpdate', method: 'post', data: data, headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 初始化
|
|||
initRegulatorydocuments: function(data) { |
|||
return request({ |
|||
url: '/vehfleet/v1/regulatorydocuments/fetchSid/' + data, method: 'get' |
|||
}) |
|||
}, |
|||
|
|||
// 删除
|
|||
deleteBySids: function(data) { |
|||
return request({ |
|||
url: '/vehfleet/v1/regulatorydocuments/delBySids', method: 'DELETE', data: data, headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
} |
|||
|
|||
} |
@ -0,0 +1,257 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div v-show="viewState ==1"> |
|||
<button-bar ref="btnbar" view-title="挂靠公司管理" @btnhandle="btnHandle"/> |
|||
<div class="main-content"> |
|||
<div class="searchcon"> |
|||
<el-button class="searchbtn" size="small" @click="isSearchShow = !isSearchShow"> |
|||
{{ isSearchShow ? '隐藏查询条件' : '显示查询条件' }} |
|||
</el-button> |
|||
<div v-show="isSearchShow" class="search"> |
|||
<el-form :inline="true" class="tab-header" label-width="120px"> |
|||
<el-form-item label="挂靠公司名称:"> |
|||
<el-input v-model="queryParams.params.corporateName" clearable placeholder=""/> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div class="btn" style="text-align: center;"> |
|||
<el-button icon="el-icon-search" size="small" type="primary" @click="dosearch">查询</el-button> |
|||
<el-button icon="el-icon-refresh" size="small" type="primary" @click="resetQuery">重置</el-button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="listtop"> |
|||
<div class="tit">挂靠公司列表</div> |
|||
</div> |
|||
<div class=""> |
|||
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" |
|||
@selection-change="handleSelectionChange" |
|||
> |
|||
<el-table-column align="center" fixed type="selection" width="50"/> |
|||
<el-table-column :index="indexMethod" align="center" fixed label="序号" type="index" width="60"/> |
|||
<el-table-column align="center" label="公司名称" prop="corporateName"/> |
|||
<el-table-column align="center" label="联系人" prop="contacts"/> |
|||
<el-table-column align="center" fit label="联系电话" prop="contactNumber"/> |
|||
</el-table> |
|||
</div> |
|||
<div class="pages"> |
|||
<pagination v-show="dataList.length > 0" :limit.sync="queryParams.size" :page.sync="queryParams.current" |
|||
:total="queryParams.total" class="pagination" @pagination="loadList" |
|||
/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!--新增修改部分组件--> |
|||
<div-add v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList"/> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/affiliatedCompany/affiliatedCompany' |
|||
import ButtonBar from '@/components/ButtonBar' |
|||
import Pagination from '@/components/pagination' |
|||
import pageye from '@/components/pagination/pageye' |
|||
import divAdd from './affiliatedCompanyAdd' |
|||
|
|||
export default { |
|||
name: 'AffiliatedCompany', |
|||
components: { |
|||
ButtonBar, |
|||
Pagination, |
|||
pageye, |
|||
divAdd |
|||
}, |
|||
data() { |
|||
return { |
|||
viewState: 1, // 1、列表 2、添加 3、修改 4、查看 |
|||
isSearchShow: false, // 显示隐藏 |
|||
tableLoading: false, |
|||
// 列表数据 |
|||
dataList: [], |
|||
btnList: [ |
|||
{ |
|||
type: 'primary', |
|||
size: 'small', |
|||
icon: 'el-icon-plus', |
|||
btnKey: 'toAdd', |
|||
btnLabel: '新增' |
|||
}, |
|||
{ |
|||
type: 'primary', |
|||
size: 'small', |
|||
icon: 'el-icon-edit', |
|||
btnKey: 'toEdit', |
|||
btnLabel: '编辑' |
|||
}, |
|||
{ |
|||
type: 'danger', |
|||
size: 'small', |
|||
icon: 'el-icon-delete', |
|||
btnKey: 'doDel', |
|||
btnLabel: '删除' |
|||
}, |
|||
{ |
|||
type: 'info', |
|||
size: 'small', |
|||
icon: 'cross', |
|||
btnKey: 'doClose', |
|||
btnLabel: '关闭' |
|||
} |
|||
], |
|||
selectionList: [], |
|||
// sid数组 |
|||
sids: [], // 用于导出的时候保存已选择SID |
|||
queryParams: { |
|||
current: 1, |
|||
size: 10, |
|||
total: 0, |
|||
params: { |
|||
corporateName: '' |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
created() { |
|||
}, |
|||
mounted() { |
|||
this.$refs['btnbar'].setButtonList(this.btnList) |
|||
this.loadList() |
|||
}, |
|||
methods: { |
|||
handleSelectionChange(val) { |
|||
this.selectionList = val |
|||
const aa = [] |
|||
val.forEach(element => { |
|||
aa.push(element.sid) |
|||
}) |
|||
this.sids = aa |
|||
}, |
|||
btnHandle(btnKey) { |
|||
switch (btnKey) { |
|||
case 'toAdd': |
|||
this.toAdd() |
|||
break |
|||
case 'toEdit': |
|||
this.toEdit() |
|||
break |
|||
case 'doDel': |
|||
this.doDel() |
|||
break |
|||
case 'doClose': |
|||
this.doClose() |
|||
break |
|||
default: |
|||
break |
|||
} |
|||
}, |
|||
toAdd() { |
|||
this.viewState = 2 |
|||
this.$refs['divadd'].showAdd() |
|||
}, |
|||
toEdit() { |
|||
if (this.selectionList.length !== 1) { |
|||
this.$message({ |
|||
type: 'warning', |
|||
message: '请选择一条数据。', |
|||
showClose: true |
|||
}) |
|||
return |
|||
} |
|||
|
|||
this.viewState = 3 |
|||
this.$refs['divadd'].showEdit(this.selectionList[0]) |
|||
}, |
|||
doDel() { |
|||
if (this.sids.length > 0) { |
|||
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?' |
|||
this.$confirm(tip, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
const loading = this.$loading({ |
|||
lock: true, |
|||
text: 'Loading', |
|||
spinner: 'el-icon-loading', |
|||
background: 'rgba(0, 0, 0, 0.7)' |
|||
}) |
|||
req.deleteBySids(this.sids).then((resp) => { |
|||
loading.close() |
|||
if (resp.success) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: resp.msg, |
|||
showClose: true |
|||
}) |
|||
this.loadList() |
|||
} else { |
|||
// 根据resp.code进行异常情况处理 |
|||
} |
|||
}).catch(e => { |
|||
loading.close() |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
} else { |
|||
this.$message({ |
|||
showClose: true, |
|||
message: '请至少选择一条记录进行删除操作' |
|||
}) |
|||
} |
|||
}, |
|||
// 查询 |
|||
dosearch() { |
|||
this.queryParams.current = 1 |
|||
this.loadList() |
|||
}, |
|||
// 重置 |
|||
resetQuery() { |
|||
this.queryParams = { |
|||
current: 1, |
|||
size: 10, |
|||
total: 0, |
|||
params: { |
|||
corporateName: '' |
|||
} |
|||
} |
|||
this.init() |
|||
}, |
|||
// 加载分页列表 |
|||
loadList() { |
|||
this.tableLoading = true |
|||
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid') |
|||
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath') |
|||
this.queryParams.params.menuUrl = this.$route.path |
|||
req.listPage(this.queryParams).then(resp => { |
|||
this.tableLoading = false |
|||
if (resp.success) { |
|||
const data = resp.data |
|||
this.queryParams.total = data.total |
|||
this.dataList = data.records |
|||
} else { |
|||
this.queryParams.total = 0 |
|||
this.dataList = [] |
|||
} |
|||
}).catch(() => { |
|||
this.tableLoading = false |
|||
}) |
|||
}, |
|||
// 序号 |
|||
indexMethod(index) { |
|||
var pagestart = (this.queryParams.current - 1) * this.queryParams.size |
|||
var pageindex = index + 1 + pagestart |
|||
return pageindex |
|||
}, |
|||
// 子组件关闭(返回) |
|||
resetState() { |
|||
this.viewState = 1 |
|||
}, |
|||
doClose() { |
|||
this.$store.dispatch('tagsView/delView', this.$route) |
|||
this.$router.go(-1) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
</style> |
@ -0,0 +1,177 @@ |
|||
<template> |
|||
<div> |
|||
<div class="tab-header webtop"> |
|||
<div>挂靠公司信息</div> |
|||
<div> |
|||
<el-button :disabled="submitdisabled" size="small" type="primary" @click="saveOrUpdate">保存</el-button> |
|||
<el-button size="small" type="info" @click="handleReturn()">关闭</el-button> |
|||
</div> |
|||
</div> |
|||
<div class="listconadd"> |
|||
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02"> |
|||
<el-row class="first_row"> |
|||
<el-col :span="24"> |
|||
<div class="span-sty"><span class="must">*</span> 公司名称</div> |
|||
<el-form-item prop="corporateName"> |
|||
<el-input v-model="formobj.corporateName" class="addinputw addinputInfo" clearable placeholder="挂靠公司名称"/> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col :span="12"> |
|||
<div class="span-sty">联系人</div> |
|||
<el-form-item> |
|||
<el-input v-model="formobj.contacts" class="addinputw addinputInfo" clearable placeholder="联系人"/> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<div class="span-sty">联系电话</div> |
|||
<el-form-item> |
|||
<el-input v-model="formobj.contactNumber" class="addinputw addinputInfo" clearable placeholder="联系电话"/> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</el-form> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/affiliatedCompany/affiliatedCompany.js' |
|||
import { getOrgSidByPath } from '@/api/Common/dictcommons.js' |
|||
|
|||
export default { |
|||
components: {}, |
|||
data() { |
|||
return { |
|||
submitdisabled: false, |
|||
formobj: { |
|||
sid: '', |
|||
corporateName: '', |
|||
contacts: '', |
|||
contactNumber: '', |
|||
useOrgSid: window.sessionStorage.getItem('departmentSid'), |
|||
orgPath: window.sessionStorage.getItem('defaultOrgPath'), |
|||
createOrgSid: window.sessionStorage.getItem('orgSid'), |
|||
userSid: window.sessionStorage.getItem('userSid'), |
|||
createBySid: window.sessionStorage.getItem('userSid'), |
|||
createByName: window.sessionStorage.getItem('name'), |
|||
deptSid: window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1), |
|||
deptName: window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1), |
|||
|
|||
}, |
|||
rules: { |
|||
corporateName: [{ required: true, message: '挂靠公司名称不能为空', trigger: 'blur' }] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
getDictValue() { |
|||
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => { |
|||
if (res.success) { |
|||
this.formobj.createOrgSid = res.data |
|||
} |
|||
}) |
|||
}, |
|||
saveOrUpdate() { |
|||
console.log('>>>>>>>>>saveOrUpdate', this.formobj) |
|||
this.$refs['form_obj'].validate((valid) => { |
|||
if (valid) { |
|||
req.saveAffiliatedcompany(this.formobj).then(resp => { |
|||
if (resp.success) { |
|||
this.$message({ |
|||
showClose: true, |
|||
type: 'success', |
|||
message: '保存成功' |
|||
}) |
|||
this.handleReturn('true') |
|||
} else { |
|||
this.submitdisabled = false |
|||
} |
|||
}).catch(() => { |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
handleReturn(isreload) { |
|||
if (isreload === 'true') this.$emit('reloadlist') |
|||
this.formobj = { |
|||
sid: '', |
|||
corporateName: '', |
|||
contacts: '', |
|||
contactNumber: '', |
|||
useOrgSid: window.sessionStorage.getItem('departmentSid'), |
|||
orgPath: window.sessionStorage.getItem('defaultOrgPath'), |
|||
createOrgSid: window.sessionStorage.getItem('orgSid'), |
|||
userSid: window.sessionStorage.getItem('userSid'), |
|||
createBySid: window.sessionStorage.getItem('userSid'), |
|||
createByName: window.sessionStorage.getItem('name'), |
|||
deptSid: window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1), |
|||
deptName: window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1), |
|||
|
|||
} |
|||
this.$emit('doback') |
|||
}, |
|||
showAdd() { |
|||
this.getDictValue() |
|||
this.$nextTick(() => { |
|||
this.$refs['form_obj'].clearValidate() |
|||
}) |
|||
}, |
|||
showEdit(row) { |
|||
this.getDictValue() |
|||
this.$nextTick(() => { |
|||
this.$refs['form_obj'].clearValidate() |
|||
}) |
|||
req.initAffiliatedcompany(row.sid).then(resp => { |
|||
if (resp.success) { |
|||
this.formobj = resp.data |
|||
} |
|||
}).catch(e => { |
|||
this.formobj = row |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
/deep/ .el-form-item__error { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.must { |
|||
color: #f00; |
|||
} |
|||
|
|||
.span-sty { |
|||
width: 130px !important; |
|||
align-items: center; |
|||
} |
|||
|
|||
.addinputInfo { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { |
|||
margin-left: 120px !important; |
|||
width: calc(100% - 115px); |
|||
} |
|||
|
|||
.first_row { |
|||
border-top: 1px solid #E0E3EB; |
|||
} |
|||
|
|||
.titleOne { |
|||
padding: 7px; |
|||
display: flex; |
|||
flex-direction: row; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group { |
|||
display: inline; |
|||
line-height: 1px; |
|||
vertical-align: middle; |
|||
} |
|||
</style> |
@ -0,0 +1,339 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div v-show="viewState ==1"> |
|||
<button-bar ref="btnbar" view-title="监管部门文件管理" @btnhandle="btnHandle"/> |
|||
<div class="main-content"> |
|||
<div class="searchcon"> |
|||
<el-button class="searchbtn" size="small" @click="isSearchShow = !isSearchShow"> |
|||
{{ isSearchShow ? '隐藏查询条件' : '显示查询条件' }} |
|||
</el-button> |
|||
<div v-show="isSearchShow" class="search"> |
|||
<el-form :inline="true" class="tab-header" label-width="120px"> |
|||
<el-form-item label="文件名称:"> |
|||
<el-select v-model="queryParams.params.fileNameValue" placeholder="请选择" style="width: 200px;"> |
|||
<el-option v-for="item in fileList" :key="item.dictKey" :label="item.dictValue" |
|||
:value="item.dictValue" |
|||
></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="监管部门:"> |
|||
<el-select v-model="queryParams.params.departmentValue" placeholder="请选择" style="width: 200px;"> |
|||
<el-option v-for="item in orgList" :key="item.dictKey" :label="item.dictValue" |
|||
:value="item.dictValue" |
|||
></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="上传日期"> |
|||
<el-date-picker v-model="queryParams.params.startTime" format="yyyy-MM-dd" placeholder="选择日期" |
|||
style="width: 200px;" type="date" value-format="yyyy-MM-dd" |
|||
> |
|||
</el-date-picker> |
|||
至 |
|||
<el-date-picker v-model="queryParams.params.endTime" format="yyyy-MM-dd" placeholder="选择日期" |
|||
style="width: 200px;" type="date" value-format="yyyy-MM-dd" |
|||
> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="上传人"> |
|||
<el-input v-model="queryParams.params.uploaderName" clearable placeholder="上传人" |
|||
style="width: 200px;" |
|||
/> |
|||
</el-form-item> |
|||
<el-form-item label="车队"> |
|||
<el-select v-model="queryParams.params.fleetName" placeholder="请选择" style="width: 200px;"> |
|||
<el-option v-for="(item,i) in fleetList" :key="item.sid" :label="item.corporateName" :value="item.corporateName"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="备注"> |
|||
<el-input v-model="queryParams.params.remarks" clearable placeholder="备注" style="width: 200px;"/> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div class="btn" style="text-align: center;"> |
|||
<el-button icon="el-icon-search" size="small" type="primary" @click="dosearch">查询</el-button> |
|||
<el-button icon="el-icon-refresh" size="small" type="primary" @click="resetQuery">重置</el-button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="listtop"> |
|||
<div class="tit">文件列表</div> |
|||
</div> |
|||
<div class=""> |
|||
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" |
|||
@selection-change="handleSelectionChange" |
|||
> |
|||
<el-table-column align="center" fixed type="selection" width="50"/> |
|||
<el-table-column :index="indexMethod" align="center" fixed label="序号" type="index" width="60"/> |
|||
<el-table-column align="center" label="文件名称" prop="fileNameValue"/> |
|||
<el-table-column align="center" label="监管部门" prop="departmentValue"/> |
|||
<el-table-column align="center" fit label="上传时间" prop="createTime"/> |
|||
<el-table-column align="center" fit label="上传人" prop="uploaderName"/> |
|||
<el-table-column align="center" fit label="车队" prop="fleetName"/> |
|||
<el-table-column align="center" fit label="备注" prop="remarks"/> |
|||
</el-table> |
|||
</div> |
|||
<div class="pages"> |
|||
<pagination v-show="dataList.length > 0" :limit.sync="queryParams.size" :page.sync="queryParams.current" |
|||
:total="queryParams.total" class="pagination" @pagination="loadList" |
|||
/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!--新增修改部分组件--> |
|||
<div-add v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList"/> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/superviseFile/superviseFile' |
|||
import req2 from '@/api/affiliatedCompany/affiliatedCompany' |
|||
import ButtonBar from '@/components/ButtonBar' |
|||
import Pagination from '@/components/pagination' |
|||
import pageye from '@/components/pagination/pageye' |
|||
import divAdd from './superviseFileAdd' |
|||
import { typeValues } from '@/api/Common/dictcommons' |
|||
|
|||
export default { |
|||
name: 'SuperviseFile', |
|||
components: { |
|||
ButtonBar, |
|||
Pagination, |
|||
pageye, |
|||
divAdd |
|||
}, |
|||
data() { |
|||
return { |
|||
viewState: 1, // 1、列表 2、添加 3、修改 4、查看 |
|||
isSearchShow: false, // 显示隐藏 |
|||
tableLoading: false, |
|||
// 列表数据 |
|||
dataList: [], |
|||
btnList: [ |
|||
{ |
|||
type: 'primary', |
|||
size: 'small', |
|||
icon: 'el-icon-plus', |
|||
btnKey: 'toAdd', |
|||
btnLabel: '新增' |
|||
}, |
|||
{ |
|||
type: 'primary', |
|||
size: 'small', |
|||
icon: 'el-icon-edit', |
|||
btnKey: 'toEdit', |
|||
btnLabel: '编辑' |
|||
}, |
|||
{ |
|||
type: 'danger', |
|||
size: 'small', |
|||
icon: 'el-icon-delete', |
|||
btnKey: 'doDel', |
|||
btnLabel: '删除' |
|||
}, |
|||
{ |
|||
type: 'info', |
|||
size: 'small', |
|||
icon: 'cross', |
|||
btnKey: 'doClose', |
|||
btnLabel: '关闭' |
|||
} |
|||
], |
|||
selectionList: [], |
|||
// sid数组 |
|||
sids: [], // 用于导出的时候保存已选择SID |
|||
queryParams: { |
|||
current: 1, |
|||
size: 10, |
|||
total: 0, |
|||
params: { |
|||
fileNameKey: '', |
|||
fileNameValue: '', |
|||
departmentKey: '', |
|||
departmentValue: '', |
|||
startTime: '', |
|||
endTime: '', |
|||
uploaderName: '', |
|||
fleetSid: '', |
|||
fleetName: '', |
|||
remarks: '' |
|||
} |
|||
}, |
|||
fileList: [], |
|||
orgList: [], |
|||
fleetList: [] |
|||
} |
|||
}, |
|||
created() { |
|||
// 初始化变量 |
|||
this.init() |
|||
}, |
|||
mounted() { |
|||
this.$refs['btnbar'].setButtonList(this.btnList) |
|||
this.loadList() |
|||
}, |
|||
methods: { |
|||
init() { |
|||
typeValues({ type: 'fileName' }).then((res) => { |
|||
if (res.success) { |
|||
this.fileList = res.data |
|||
} |
|||
}) |
|||
|
|||
typeValues({ type: 'superviseOrg' }).then((res) => { |
|||
if (res.success) { |
|||
this.orgList = res.data |
|||
} |
|||
}) |
|||
|
|||
req2.listAll().then((res) => { |
|||
if (res.success) { |
|||
this.fleetList = res.data |
|||
} |
|||
}) |
|||
}, |
|||
handleSelectionChange(val) { |
|||
this.selectionList = val |
|||
const aa = [] |
|||
val.forEach(element => { |
|||
aa.push(element.sid) |
|||
}) |
|||
this.sids = aa |
|||
}, |
|||
btnHandle(btnKey) { |
|||
switch (btnKey) { |
|||
case 'toAdd': |
|||
this.toAdd() |
|||
break |
|||
case 'toEdit': |
|||
this.toEdit() |
|||
break |
|||
case 'doDel': |
|||
this.doDel() |
|||
break |
|||
case 'doClose': |
|||
this.doClose() |
|||
break |
|||
default: |
|||
break |
|||
} |
|||
}, |
|||
toAdd() { |
|||
this.viewState = 2 |
|||
this.$refs['divadd'].showAdd() |
|||
}, |
|||
toEdit() { |
|||
if (this.selectionList.length !== 1) { |
|||
this.$message({ |
|||
type: 'warning', |
|||
message: '请选择一条数据。', |
|||
showClose: true |
|||
}) |
|||
return |
|||
} |
|||
this.viewState = 3 |
|||
this.$refs['divadd'].showEdit(this.selectionList[0]) |
|||
}, |
|||
doDel() { |
|||
if (this.sids.length > 0) { |
|||
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?' |
|||
this.$confirm(tip, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
const loading = this.$loading({ |
|||
lock: true, |
|||
text: 'Loading', |
|||
spinner: 'el-icon-loading', |
|||
background: 'rgba(0, 0, 0, 0.7)' |
|||
}) |
|||
req.deleteBySids(this.sids).then((resp) => { |
|||
loading.close() |
|||
if (resp.success) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: resp.msg, |
|||
showClose: true |
|||
}) |
|||
this.loadList() |
|||
} else { |
|||
// 根据resp.code进行异常情况处理 |
|||
} |
|||
}).catch(e => { |
|||
loading.close() |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
} else { |
|||
this.$message({ |
|||
showClose: true, |
|||
message: '请至少选择一条记录进行删除操作' |
|||
}) |
|||
} |
|||
}, |
|||
// 查询 |
|||
dosearch() { |
|||
this.queryParams.current = 1 |
|||
this.loadList() |
|||
}, |
|||
// 重置 |
|||
resetQuery() { |
|||
this.queryParams = { |
|||
current: 1, |
|||
size: 10, |
|||
total: 0, |
|||
params: { |
|||
fileNameKey: '', |
|||
fileNameValue: '', |
|||
departmentKey: '', |
|||
departmentValue: '', |
|||
startTime: '', |
|||
endTime: '', |
|||
uploaderName: '', |
|||
fleetSid: '', |
|||
fleetName: '', |
|||
remarks: '' |
|||
} |
|||
} |
|||
this.init() |
|||
}, |
|||
// 加载分页列表 |
|||
loadList() { |
|||
this.tableLoading = true |
|||
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid') |
|||
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath') |
|||
this.queryParams.params.menuUrl = this.$route.path |
|||
req.listPage(this.queryParams).then(resp => { |
|||
this.tableLoading = false |
|||
if (resp.success) { |
|||
const data = resp.data |
|||
this.queryParams.total = data.total |
|||
this.dataList = data.records |
|||
} else { |
|||
this.queryParams.total = 0 |
|||
this.dataList = [] |
|||
} |
|||
}).catch(() => { |
|||
this.tableLoading = false |
|||
}) |
|||
}, |
|||
// 序号 |
|||
indexMethod(index) { |
|||
var pagestart = (this.queryParams.current - 1) * this.queryParams.size |
|||
var pageindex = index + 1 + pagestart |
|||
return pageindex |
|||
}, |
|||
// 子组件关闭(返回) |
|||
resetState() { |
|||
this.viewState = 1 |
|||
}, |
|||
doClose() { |
|||
this.$store.dispatch('tagsView/delView', this.$route) |
|||
this.$router.go(-1) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
</style> |
@ -0,0 +1,296 @@ |
|||
<template> |
|||
<div> |
|||
<div class="tab-header webtop"> |
|||
<div>监管部门文件</div> |
|||
<div> |
|||
<el-button :disabled="submitdisabled" size="small" type="primary" @click="saveOrUpdate">保存</el-button> |
|||
<el-button size="small" type="info" @click="handleReturn()">关闭</el-button> |
|||
</div> |
|||
</div> |
|||
<div class="listconadd"> |
|||
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02"> |
|||
<el-row class="first_row"> |
|||
<el-col :span="12"> |
|||
<div class="span-sty"><span class="must">*</span> 车队名称</div> |
|||
<el-form-item prop="fleetName"> |
|||
<el-select v-model="formobj.fleetName" clearable placeholder="请选择" class="addinputw addinputInfo" @change="selectFleetName"> |
|||
<el-option v-for="(item,i) in fleetList" :key="item.sid" :label="item.corporateName" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<div class="span-sty">上传人</div> |
|||
<el-form-item> |
|||
<span class="addinputw addinputInfo">{{ formobj.uploaderName }}</span> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col :span="12"> |
|||
<div class="span-sty"><span class="must">*</span> 文件名称</div> |
|||
<el-form-item prop="fileNameValue"> |
|||
<el-select v-model="formobj.fileNameValue" placeholder="请选择" class="addinputw addinputInfo" @change="selectFileName"> |
|||
<el-option v-for="item in fileList" :key="item.dictKey" :label="item.dictValue" |
|||
:value="item.dictKey" |
|||
></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="12"> |
|||
<div class="span-sty"><span class="must">*</span> 监管部门</div> |
|||
<el-form-item prop="departmentValue"> |
|||
<el-select v-model="formobj.departmentValue" placeholder="请选择" class="addinputw addinputInfo" @change="selectDepartment"> |
|||
<el-option v-for="item in orgList" :key="item.dictKey" :label="item.dictValue" |
|||
:value="item.dictKey" |
|||
></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<div class="span-sty">备注</div> |
|||
<el-form-item> |
|||
<el-input v-model="formobj.remarks" placeholder="备注" class="addinputw addinputInfo" clearable/> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<div class="span-sty">附件</div> |
|||
<el-form-item > |
|||
<upload-img ref="uploadImg" class="addinputw" v-model="imgList" :limit="50" bucket="map" :upload-data="{ type: '0001' }" @change="backData"/> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
</el-form> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/superviseFile/superviseFile' |
|||
import req2 from '@/api/affiliatedCompany/affiliatedCompany' |
|||
import uploadImg from '@/components/uploadFile/uploadImg' |
|||
import { getOrgSidByPath, |
|||
typeValues } from '@/api/Common/dictcommons.js' |
|||
|
|||
export default { |
|||
components: { |
|||
uploadImg |
|||
}, |
|||
data() { |
|||
return { |
|||
submitdisabled: false, |
|||
formobj: { |
|||
sid: '', |
|||
fleetSid: '', |
|||
fleetName: '', |
|||
uploaderName: window.sessionStorage.getItem('name'), |
|||
uploaderSid: window.sessionStorage.getItem('userSid'), |
|||
fileNameKey: '', |
|||
fileNameValue: '', |
|||
departmentKey: '', |
|||
departmentValue: '', |
|||
filePaths: [], |
|||
useOrgSid: window.sessionStorage.getItem('departmentSid'), |
|||
orgPath: window.sessionStorage.getItem('defaultOrgPath'), |
|||
createOrgSid: window.sessionStorage.getItem('orgSid'), |
|||
userSid: window.sessionStorage.getItem('userSid'), |
|||
createBySid: window.sessionStorage.getItem('userSid'), |
|||
createByName: window.sessionStorage.getItem('name'), |
|||
deptSid: window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1), |
|||
deptName: window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1), |
|||
}, |
|||
rules: { |
|||
fleetName: [{ required: true, message: '请选择车队', trigger: 'change' }], |
|||
fileNameValue: [{ required: true, message: '请选择文件名称', trigger: 'change' }], |
|||
departmentValue: [{ required: true, message: '请选择监管部门', trigger: 'change' }] |
|||
}, |
|||
imgList: [], |
|||
fileList: [], |
|||
orgList: [], |
|||
fleetList: [] |
|||
} |
|||
}, |
|||
methods: { |
|||
getDictValue() { |
|||
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => { |
|||
if (res.success) { |
|||
this.formobj.createOrgSid = res.data |
|||
} |
|||
}) |
|||
|
|||
typeValues({ type: 'fileName' }).then((res) => { |
|||
if (res.success) { |
|||
this.fileList = res.data |
|||
} |
|||
}) |
|||
|
|||
typeValues({ type: 'superviseOrg' }).then((res) => { |
|||
if (res.success) { |
|||
this.orgList = res.data |
|||
} |
|||
}) |
|||
|
|||
req2.listAll().then((res) => { |
|||
if (res.success) { |
|||
this.fleetList = res.data |
|||
} |
|||
}) |
|||
}, |
|||
selectFleetName(val) { |
|||
const choose = this.fleetList.filter((item) => item.sid === val) |
|||
if (choose !== null && choose.length > 0) { |
|||
this.formobj.fleetName = choose[0].corporateName |
|||
this.formobj.fleetSid = choose[0].sid |
|||
} else { |
|||
this.formobj.fleetName = '' |
|||
this.formobj.fleetSid = '' |
|||
} |
|||
}, |
|||
|
|||
selectFileName(val) { |
|||
const choose = this.fileList.filter((item) => item.dictKey === val) |
|||
if (choose !== null && choose.length > 0) { |
|||
this.formobj.fileNameValue = choose[0].dictValue |
|||
this.formobj.fileNameKey = choose[0].dictKey |
|||
} else { |
|||
this.formobj.fileNameValue = '' |
|||
this.formobj.fileNameKey = '' |
|||
} |
|||
}, |
|||
|
|||
selectDepartment(val) { |
|||
const choose = this.orgList.filter((item) => item.dictKey === val) |
|||
if (choose !== null && choose.length > 0) { |
|||
this.formobj.departmentValue = choose[0].dictValue |
|||
this.formobj.departmentKey = choose[0].dictKey |
|||
} else { |
|||
this.formobj.departmentValue = '' |
|||
this.formobj.departmentKey = '' |
|||
} |
|||
}, |
|||
|
|||
saveOrUpdate() { |
|||
console.log('>>>>>>>>>saveOrUpdate', this.formobj) |
|||
this.$refs['form_obj'].validate((valid) => { |
|||
if (valid) { |
|||
req.saveRegulatorydocuments(this.formobj).then(resp => { |
|||
if (resp.success) { |
|||
this.$message({ |
|||
showClose: true, |
|||
type: 'success', |
|||
message: '保存成功' |
|||
}) |
|||
this.handleReturn('true') |
|||
} else { |
|||
this.submitdisabled = false |
|||
} |
|||
}).catch(() => { |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
handleReturn(isreload) { |
|||
if (isreload === 'true') this.$emit('reloadlist') |
|||
this.imgList = [] |
|||
this.formobj = { |
|||
sid: '', |
|||
fleetSid: '', |
|||
fleetName: '', |
|||
uploaderName: window.sessionStorage.getItem('name'), |
|||
uploaderSid: window.sessionStorage.getItem('userSid'), |
|||
fileNameKey: '', |
|||
fileNameValue: '', |
|||
departmentKey: '', |
|||
departmentValue: '', |
|||
filePaths: [], |
|||
useOrgSid: window.sessionStorage.getItem('departmentSid'), |
|||
orgPath: window.sessionStorage.getItem('defaultOrgPath'), |
|||
createOrgSid: window.sessionStorage.getItem('orgSid'), |
|||
userSid: window.sessionStorage.getItem('userSid'), |
|||
createBySid: window.sessionStorage.getItem('userSid'), |
|||
createByName: window.sessionStorage.getItem('name'), |
|||
deptSid: window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage.getItem('defaultOrgPath').lastIndexOf('/') + 1), |
|||
deptName: window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1), |
|||
} |
|||
this.$emit('doback') |
|||
}, |
|||
showAdd() { |
|||
this.getDictValue() |
|||
this.$nextTick(() => { |
|||
this.$refs['form_obj'].clearValidate() |
|||
}) |
|||
}, |
|||
showEdit(row) { |
|||
this.getDictValue() |
|||
this.$nextTick(() => { |
|||
this.$refs['form_obj'].clearValidate() |
|||
}) |
|||
req.initRegulatorydocuments(row.sid).then(resp => { |
|||
if (resp.success) { |
|||
this.formobj = resp.data |
|||
for (var i = 0; i < resp.data.filePaths.length; i++) { |
|||
this.imgList.push({ |
|||
url: resp.data.filePaths[i] |
|||
}) |
|||
} |
|||
} |
|||
}).catch(e => { |
|||
this.formobj = row |
|||
}) |
|||
}, |
|||
backData(value) { |
|||
console.log("backData", value) |
|||
this.formobj.filePaths = [] |
|||
this.imgList =value |
|||
for (var i = 0; i < value.length; i++) { |
|||
this.formobj.filePaths.push(value[i].url) |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
/deep/ .el-form-item__error { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.must { |
|||
color: #f00; |
|||
} |
|||
|
|||
.span-sty { |
|||
width: 130px !important; |
|||
align-items: center; |
|||
} |
|||
|
|||
.addinputInfo { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { |
|||
margin-left: 120px !important; |
|||
width: calc(100% - 115px); |
|||
} |
|||
|
|||
.first_row { |
|||
border-top: 1px solid #E0E3EB; |
|||
} |
|||
|
|||
.titleOne { |
|||
padding: 7px; |
|||
display: flex; |
|||
flex-direction: row; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group { |
|||
display: inline; |
|||
line-height: 1px; |
|||
vertical-align: middle; |
|||
} |
|||
</style> |
@ -0,0 +1,11 @@ |
|||
<script setup> |
|||
|
|||
</script> |
|||
|
|||
<template> |
|||
|
|||
</template> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
@ -0,0 +1,302 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div v-show="viewState ==1"> |
|||
<button-bar ref="btnbar" view-title="车辆保险台账管理" @btnhandle="btnHandle"/> |
|||
<div class="main-content"> |
|||
<div class="searchcon"> |
|||
<el-button class="searchbtn" size="small" @click="isSearchShow = !isSearchShow"> |
|||
{{ isSearchShow ? '隐藏查询条件' : '显示查询条件' }} |
|||
</el-button> |
|||
<div v-show="isSearchShow" class="search"> |
|||
<el-form :inline="true" class="tab-header" label-width="120px"> |
|||
<el-form-item label="车牌号:"> |
|||
<el-select v-model="queryParams.params.fileName" placeholder="请选择" style="width: 200px;"> |
|||
<el-option v-for="item in fileList" :key="item.sid" :label="item.name" :value="item.sid"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="监管部门:"> |
|||
<el-select v-model="queryParams.params.orgName" placeholder="请选择" style="width: 200px;"> |
|||
<el-option v-for="item in orgList" :key="item.sid" :label="item.name" :value="item.sid"></el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="上传日期"> |
|||
<el-date-picker v-model="queryParams.params.createTimeStart" format="yyyy-MM-dd" placeholder="选择日期" |
|||
style="width: 200px;" type="date" value-format="yyyy-MM-dd" |
|||
> |
|||
</el-date-picker> |
|||
至 |
|||
<el-date-picker v-model="queryParams.params.createTimeEnd" format="yyyy-MM-dd" placeholder="选择日期" |
|||
style="width: 200px;" type="date" value-format="yyyy-MM-dd" |
|||
> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="上传人"> |
|||
<el-input v-model="queryParams.params.uploader" clearable placeholder="上传人" style="width: 200px;"/> |
|||
</el-form-item> |
|||
<el-form-item label="车队"> |
|||
<el-select v-model="queryParams.params.fleetName" placeholder="请选择" style="width: 200px;"> |
|||
<el-option v-for="(item,i) in fleetList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="备注"> |
|||
<el-input v-model="queryParams.params.remarks" clearable placeholder="备注" style="width: 200px;"/> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div class="btn" style="text-align: center;"> |
|||
<el-button icon="el-icon-search" size="small" type="primary" @click="dosearch">查询</el-button> |
|||
<el-button icon="el-icon-refresh" size="small" type="primary" @click="resetQuery">重置</el-button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="listtop"> |
|||
<div class="tit">文件列表</div> |
|||
</div> |
|||
<div class=""> |
|||
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" |
|||
@selection-change="handleSelectionChange" |
|||
> |
|||
<el-table-column :index="indexMethod" align="center" fixed label="序号" type="index" width="60"/> |
|||
<el-table-column align="center" label="文件名称" prop="purchaseOrderNo"/> |
|||
<el-table-column align="center" label="监管部门" prop="modelName"/> |
|||
<el-table-column align="center" fit label="上传时间" prop="vehicleNum"/> |
|||
<el-table-column align="center" fit label="上传人" prop="vehicleNum"/> |
|||
<el-table-column align="center" fit label="车队" prop="vehicleNum"/> |
|||
<el-table-column align="center" fit label="备注" prop="vehicleNum"/> |
|||
</el-table> |
|||
</div> |
|||
<div class="pages"> |
|||
<pagination v-show="dataList.length > 0" :limit.sync="queryParams.size" :page.sync="queryParams.current" |
|||
:total="queryParams.total" class="pagination" @pagination="loadList" |
|||
/> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!--新增修改部分组件--> |
|||
<div-add v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList"/> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/superviseFile/superviseFile' |
|||
import ButtonBar from '@/components/ButtonBar' |
|||
import Pagination from '@/components/pagination' |
|||
import pageye from '@/components/pagination/pageye' |
|||
import divAdd from './vehicleInsuranceLedgerAdd' |
|||
|
|||
export default { |
|||
name: 'VehicleInsuranceLedger', |
|||
components: { |
|||
ButtonBar, |
|||
Pagination, |
|||
pageye, |
|||
divAdd |
|||
}, |
|||
data() { |
|||
return { |
|||
viewState: 1, // 1、列表 2、添加 3、修改 4、查看 |
|||
isSearchShow: false, // 显示隐藏 |
|||
tableLoading: false, |
|||
// 列表数据 |
|||
dataList: [], |
|||
btnList: [ |
|||
{ |
|||
type: 'primary', |
|||
size: 'small', |
|||
icon: 'el-icon-plus', |
|||
btnKey: 'toAdd', |
|||
btnLabel: '新增' |
|||
}, |
|||
{ |
|||
type: 'primary', |
|||
size: 'small', |
|||
icon: 'el-icon-edit', |
|||
btnKey: 'toEdit', |
|||
btnLabel: '编辑' |
|||
}, |
|||
{ |
|||
type: 'danger', |
|||
size: 'small', |
|||
icon: 'el-icon-delete', |
|||
btnKey: 'doDel', |
|||
btnLabel: '删除' |
|||
}, |
|||
{ |
|||
type: 'info', |
|||
size: 'small', |
|||
icon: 'cross', |
|||
btnKey: 'doClose', |
|||
btnLabel: '关闭' |
|||
} |
|||
], |
|||
selectionList: [], |
|||
// sid数组 |
|||
sids: [], // 用于导出的时候保存已选择SID |
|||
queryParams: { |
|||
current: 1, |
|||
size: 10, |
|||
total: 0, |
|||
params: { |
|||
fileName: '', |
|||
orgName: '', |
|||
createTimeStart: '', |
|||
createTimeEnd: '', |
|||
uploader: '', |
|||
fleetName: '', |
|||
remarks: '' |
|||
} |
|||
}, |
|||
fileList: [], |
|||
orgList: [], |
|||
fleetList: [] |
|||
} |
|||
}, |
|||
created() { |
|||
}, |
|||
mounted() { |
|||
this.$refs['btnbar'].setButtonList(this.btnList) |
|||
}, |
|||
methods: { |
|||
handleSelectionChange(val) { |
|||
this.selectionList = val |
|||
const aa = [] |
|||
val.forEach(element => { |
|||
aa.push(element.sid) |
|||
}) |
|||
this.sids = aa |
|||
}, |
|||
btnHandle(btnKey) { |
|||
switch (btnKey) { |
|||
case 'toAdd': |
|||
this.toAdd() |
|||
break |
|||
case 'toEdit': |
|||
this.toEdit() |
|||
break |
|||
case 'doDel': |
|||
this.doDel() |
|||
break |
|||
case 'doClose': |
|||
this.doClose() |
|||
break |
|||
default: |
|||
break |
|||
} |
|||
}, |
|||
toAdd() { |
|||
this.viewState = 2 |
|||
this.$refs['divadd'].showAdd() |
|||
}, |
|||
toEdit(row) { |
|||
if (this.selectionList.length !== 1) { |
|||
this.$message({ |
|||
type: 'warning', |
|||
message: '请选择一条数据。', |
|||
showClose: true |
|||
}) |
|||
return |
|||
} |
|||
this.viewState = 3 |
|||
this.$refs['divadd'].showEdit(row.sid, row) |
|||
}, |
|||
doDel() { |
|||
if (this.sids.length > 0) { |
|||
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?' |
|||
this.$confirm(tip, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
const loading = this.$loading({ |
|||
lock: true, |
|||
text: 'Loading', |
|||
spinner: 'el-icon-loading', |
|||
background: 'rgba(0, 0, 0, 0.7)' |
|||
}) |
|||
req.deleteBySids(this.sids).then((resp) => { |
|||
loading.close() |
|||
if (resp.success) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: resp.msg, |
|||
showClose: true |
|||
}) |
|||
this.loadList() |
|||
} else { |
|||
// 根据resp.code进行异常情况处理 |
|||
} |
|||
}).catch(e => { |
|||
loading.close() |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
} else { |
|||
this.$message({ |
|||
showClose: true, |
|||
message: '请至少选择一条记录进行删除操作' |
|||
}) |
|||
} |
|||
}, |
|||
// 查询 |
|||
dosearch() { |
|||
this.queryParams.current = 1 |
|||
this.loadList() |
|||
}, |
|||
// 重置 |
|||
resetQuery() { |
|||
this.queryParams = { |
|||
current: 1, |
|||
size: 10, |
|||
total: 0, |
|||
params: { |
|||
fileName: '', |
|||
orgName: '', |
|||
createTimeStart: '', |
|||
createTimeEnd: '', |
|||
uploader: '', |
|||
fleetName: '', |
|||
remarks: '' |
|||
} |
|||
} |
|||
this.init() |
|||
}, |
|||
// 加载分页列表 |
|||
loadList() { |
|||
this.tableLoading = true |
|||
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid') |
|||
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath') |
|||
this.queryParams.params.menuUrl = this.$route.path |
|||
req.listPage(this.queryParams).then(resp => { |
|||
this.tableLoading = false |
|||
if (resp.success) { |
|||
const data = resp.data |
|||
this.queryParams.total = data.total |
|||
this.dataList = data.records |
|||
} else { |
|||
this.queryParams.total = 0 |
|||
this.dataList = [] |
|||
} |
|||
}).catch(() => { |
|||
this.tableLoading = false |
|||
}) |
|||
}, |
|||
// 序号 |
|||
indexMethod(index) { |
|||
var pagestart = (this.queryParams.current - 1) * this.queryParams.size |
|||
var pageindex = index + 1 + pagestart |
|||
return pageindex |
|||
}, |
|||
// 子组件关闭(返回) |
|||
resetState() { |
|||
this.viewState = 1 |
|||
}, |
|||
doClose() { |
|||
this.$store.dispatch('tagsView/delView', this.$route) |
|||
this.$router.go(-1) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
</style> |
@ -0,0 +1,11 @@ |
|||
<script setup> |
|||
|
|||
</script> |
|||
|
|||
<template> |
|||
|
|||
</template> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
@ -0,0 +1,11 @@ |
|||
<script setup> |
|||
|
|||
</script> |
|||
|
|||
<template> |
|||
|
|||
</template> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
@ -0,0 +1,62 @@ |
|||
package com.yxt.anrui.vehfleet.api; |
|||
|
|||
import com.yxt.anrui.vehfleet.biz.affiliatedcompany.*; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2025/5/14 10:12 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("v1/affiliatedcompany") |
|||
public class AffiliatedCompanyRest { |
|||
@Autowired |
|||
AffiliatedCompanyService affiliatedCompanyService; |
|||
|
|||
@ApiOperation("根据条件分页查询数据的列表") |
|||
@PostMapping("/listPage") |
|||
public ResultBean<PagerVo<AffiliatedCompanyVo>> listPage(@RequestBody PagerQuery<AffiliatedCompanyQuery> pq) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
PagerVo<AffiliatedCompanyVo> pv = affiliatedCompanyService.listPageVo(pq); |
|||
return rb.success().setData(pv); |
|||
} |
|||
@ApiOperation("查询全部") |
|||
@PostMapping("/list") |
|||
public ResultBean<List<AffiliatedCompany>> list() { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
List<AffiliatedCompany> pv = affiliatedCompanyService.list(); |
|||
return rb.success().setData(pv); |
|||
} |
|||
@ApiOperation("保存或者保存") |
|||
@PostMapping("/saveOrUpdate") |
|||
public ResultBean save(@RequestBody AffiliatedCompanyDto dto) { |
|||
return affiliatedCompanyService.saveOrUpdate(dto); |
|||
} |
|||
|
|||
@ApiOperation("根据sid查询数据") |
|||
@GetMapping("/fetchSid/{sid}") |
|||
public ResultBean getEnterpriseBySid(@PathVariable String sid){ |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
AffiliatedCompanyVo AffiliatedCompanyVo=affiliatedCompanyService.fetchSid(sid); |
|||
return rb.success().setData(AffiliatedCompanyVo); |
|||
} |
|||
@ApiOperation("删除") |
|||
@DeleteMapping("/delete/{sid}") |
|||
public ResultBean delete(@PathVariable String sid) { |
|||
return affiliatedCompanyService.delete(sid); |
|||
} |
|||
@ApiOperation("根据sid批量删除") |
|||
@DeleteMapping("/delBySids") |
|||
public ResultBean delBySids(@RequestBody String[] sids) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
affiliatedCompanyService.delAll(sids); |
|||
return rb.success(); |
|||
} |
|||
} |
@ -0,0 +1,62 @@ |
|||
package com.yxt.anrui.vehfleet.api; |
|||
|
|||
import com.yxt.anrui.vehfleet.biz.regulatorydocuments.*; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2025/5/15 10:55 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("v1/regulatorydocuments") |
|||
public class RegulatoryDocumentsRest { |
|||
@Autowired |
|||
RegulatoryDocumentsService regulatoryDocumentsService; |
|||
|
|||
@ApiOperation("根据条件分页查询数据的列表") |
|||
@PostMapping("/listPage") |
|||
public ResultBean<PagerVo<RegulatoryDocumentsVo>> listPage(@RequestBody PagerQuery<RegulatoryDocumentsQuery> pq) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
PagerVo<RegulatoryDocumentsVo> pv = regulatoryDocumentsService.listPageVo(pq); |
|||
return rb.success().setData(pv); |
|||
} |
|||
@ApiOperation("查询全部") |
|||
@PostMapping("/list") |
|||
public ResultBean<List<RegulatoryDocuments>> list() { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
List<RegulatoryDocuments> pv = regulatoryDocumentsService.list(); |
|||
return rb.success().setData(pv); |
|||
} |
|||
@ApiOperation("保存或者保存") |
|||
@PostMapping("/saveOrUpdate") |
|||
public ResultBean save(@RequestBody RegulatoryDocumentsDto dto) { |
|||
return regulatoryDocumentsService.saveOrUpdate(dto); |
|||
} |
|||
|
|||
@ApiOperation("根据sid查询数据") |
|||
@GetMapping("/fetchSid/{sid}") |
|||
public ResultBean getEnterpriseBySid(@PathVariable String sid){ |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
RegulatoryDocumentsVo RegulatoryDocumentsVo=regulatoryDocumentsService.fetchSid(sid); |
|||
return rb.success().setData(RegulatoryDocumentsVo); |
|||
} |
|||
@ApiOperation("删除") |
|||
@DeleteMapping("/delete/{sid}") |
|||
public ResultBean delete(@PathVariable String sid) { |
|||
return regulatoryDocumentsService.delete(sid); |
|||
} |
|||
@ApiOperation("根据sid批量删除") |
|||
@DeleteMapping("/delBySids") |
|||
public ResultBean delBySids(@RequestBody String[] sids) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
regulatoryDocumentsService.delAll(sids); |
|||
return rb.success(); |
|||
} |
|||
} |
@ -0,0 +1,19 @@ |
|||
package com.yxt.anrui.vehfleet.biz.affiliatedcompany; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2025/5/14 10:12 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "挂靠车辆", description = "挂靠车辆") |
|||
@TableName("affiliated_company") |
|||
public class AffiliatedCompany extends BaseEntity { |
|||
private String corporateName;//公司名称
|
|||
private String contacts;//联系人
|
|||
private String contactNumber;//联系方式
|
|||
} |
@ -0,0 +1,17 @@ |
|||
package com.yxt.anrui.vehfleet.biz.affiliatedcompany; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2025/5/14 10:38 |
|||
*/ |
|||
@ApiModel(value = "挂靠车辆 数据传输对象", description = "挂靠车辆 数据传输对象") |
|||
@Data |
|||
public class AffiliatedCompanyDto { |
|||
private String sid; |
|||
private String corporateName;//公司名称
|
|||
private String contacts;//联系人
|
|||
private String contactNumber;//联系方式
|
|||
} |
@ -0,0 +1,20 @@ |
|||
package com.yxt.anrui.vehfleet.biz.affiliatedcompany; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.baomidou.mybatisplus.core.toolkit.Constants; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/4/12 11:49 |
|||
*/ |
|||
@Mapper |
|||
public interface AffiliatedCompanyMapper extends BaseMapper<AffiliatedCompany> { |
|||
IPage<AffiliatedCompanyVo> selectPageVo(IPage<AffiliatedCompany> page, @Param(Constants.WRAPPER) Wrapper<AffiliatedCompany> qw); |
|||
AffiliatedCompanyVo fetchSid( @Param("sid") String sid); |
|||
} |
@ -0,0 +1,19 @@ |
|||
<?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.yxt.anrui.vehfleet.biz.affiliatedcompany.AffiliatedCompanyMapper"> |
|||
<!-- <where> ${ew.sqlSegment} </where>--> |
|||
<!-- ${ew.customSqlSegment} --> |
|||
<select id="selectPageVo" resultType="com.yxt.anrui.vehfleet.biz.affiliatedcompany.AffiliatedCompanyVo"> |
|||
SELECT * |
|||
FROM affiliated_company |
|||
<where> |
|||
${ew.sqlSegment} |
|||
</where> |
|||
</select> |
|||
<select id="fetchSid" resultType="com.yxt.anrui.vehfleet.biz.affiliatedcompany.AffiliatedCompanyVo"> |
|||
SELECT * |
|||
FROM affiliated_company |
|||
WHERE sid=#{sid} |
|||
</select> |
|||
|
|||
</mapper> |
@ -0,0 +1,14 @@ |
|||
package com.yxt.anrui.vehfleet.biz.affiliatedcompany; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2025/5/14 10:39 |
|||
*/ |
|||
@Data |
|||
public class AffiliatedCompanyQuery implements Query { |
|||
private String corporateName;//公司名称
|
|||
|
|||
} |
@ -0,0 +1,68 @@ |
|||
|
|||
package com.yxt.anrui.vehfleet.biz.affiliatedcompany; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import com.yxt.common.base.utils.PagerUtil; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/4/12 11:50 |
|||
*/ |
|||
@Service |
|||
public class AffiliatedCompanyService extends MybatisBaseService<AffiliatedCompanyMapper, AffiliatedCompany> { |
|||
public PagerVo<AffiliatedCompanyVo> listPageVo(PagerQuery<AffiliatedCompanyQuery> pq) { |
|||
AffiliatedCompanyQuery query = pq.getParams(); |
|||
QueryWrapper<AffiliatedCompany> qw = new QueryWrapper<>(); |
|||
if(StringUtils.isNotBlank(query.getCorporateName())){ |
|||
qw.like("corporateName",query.getCorporateName()); |
|||
} |
|||
IPage<AffiliatedCompany> page = PagerUtil.queryToPage(pq); |
|||
IPage<AffiliatedCompanyVo> pagging = baseMapper.selectPageVo(page, qw); |
|||
PagerVo<AffiliatedCompanyVo> p = PagerUtil.pageToVo(pagging, null); |
|||
return p; |
|||
} |
|||
public ResultBean saveOrUpdate(AffiliatedCompanyDto dto) { |
|||
ResultBean rb=new ResultBean(); |
|||
String sid =dto.getSid(); |
|||
if(StringUtils.isNotBlank(sid)){ |
|||
AffiliatedCompany entity=fetchBySid(sid); |
|||
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|||
baseMapper.updateById(entity); |
|||
return rb.success().setMsg("修改成功"); |
|||
}else{ |
|||
AffiliatedCompany entity=new AffiliatedCompany(); |
|||
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|||
baseMapper.insert(entity); |
|||
return rb.success().setMsg("保存成功"); |
|||
} |
|||
} |
|||
public AffiliatedCompanyVo fetchSid(String sid){ |
|||
//根据sid查询的企业
|
|||
AffiliatedCompanyVo bank=baseMapper.fetchSid(sid); |
|||
return bank; |
|||
} |
|||
public ResultBean delete(String sid) { |
|||
ResultBean rb=new ResultBean(); |
|||
baseMapper.delete(new QueryWrapper<AffiliatedCompany>().eq("sid",sid)); |
|||
return rb.success().setMsg("删除成功"); |
|||
} |
|||
public List<AffiliatedCompany> list(){ |
|||
return baseMapper.selectList(new QueryWrapper<>()); |
|||
|
|||
} |
|||
public ResultBean delAll(String[] sids) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
delBySids(sids); |
|||
return rb.success(); |
|||
} |
|||
} |
@ -0,0 +1,15 @@ |
|||
package com.yxt.anrui.vehfleet.biz.affiliatedcompany; |
|||
|
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2025/5/14 10:38 |
|||
*/ |
|||
@Data |
|||
public class AffiliatedCompanyVo { |
|||
private String sid; |
|||
private String corporateName;//公司名称
|
|||
private String contacts;//联系人
|
|||
private String contactNumber;//联系方式
|
|||
} |
@ -0,0 +1,53 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.vehfleet.biz.appendix; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
@ApiModel(value = "附件表", description = "附件表") |
|||
@TableName("appendix") |
|||
public class Appendix extends BaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty("文件名") |
|||
private String fileName; // 文件名
|
|||
@ApiModelProperty("文件类型") |
|||
private String fileType; // 文件类型
|
|||
@ApiModelProperty("关联业务对象sid") |
|||
private String linkSid; // 关联业务对象sid
|
|||
@ApiModelProperty("附件类型") |
|||
private String attachType; // 附件类型
|
|||
@ApiModelProperty("文件大小") |
|||
private String fileSize; // 文件大小
|
|||
@ApiModelProperty("文件的路径") |
|||
private String filePath; // 文件的路径
|
|||
|
|||
} |
@ -0,0 +1,52 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.vehfleet.biz.appendix; |
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
@ApiModel(value = "附件表 视图数据详情", description = "附件表 视图数据详情") |
|||
public class AppendixDetailsVo implements Vo { |
|||
|
|||
private String sid; // sid
|
|||
|
|||
@ApiModelProperty("文件名") |
|||
private String fileName; // 文件名
|
|||
@ApiModelProperty("文件类型") |
|||
private String fileType; // 文件类型
|
|||
@ApiModelProperty("关联业务对象sid") |
|||
private String linkSid; // 关联业务对象sid
|
|||
@ApiModelProperty("附件类型") |
|||
private String attachType; // 附件类型
|
|||
@ApiModelProperty("文件大小") |
|||
private String fileSize; // 文件大小
|
|||
@ApiModelProperty("文件的路径") |
|||
private String filePath; // 文件的路径
|
|||
|
|||
} |
@ -0,0 +1,52 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.vehfleet.biz.appendix; |
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
@Data |
|||
@ApiModel(value = "附件表 数据传输对象", description = "附件表 数据传输对象") |
|||
public class AppendixDto implements Dto { |
|||
|
|||
private String sid; // sid
|
|||
|
|||
@ApiModelProperty("文件名") |
|||
private String fileName; // 文件名
|
|||
@ApiModelProperty("文件类型") |
|||
private String fileType; // 文件类型
|
|||
@ApiModelProperty("关联业务对象sid") |
|||
private String linkSid; // 关联业务对象sid
|
|||
@ApiModelProperty("附件类型") |
|||
private String attachType; // 附件类型
|
|||
@ApiModelProperty("文件大小") |
|||
private String fileSize; // 文件大小
|
|||
@ApiModelProperty("文件的路径") |
|||
private String filePath; // 文件的路径
|
|||
|
|||
} |
@ -0,0 +1,45 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.vehfleet.biz.appendix; |
|||
|
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
import org.apache.ibatis.annotations.Select; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Mapper |
|||
public interface AppendixMapper extends BaseMapper<Appendix> { |
|||
|
|||
@Select("select * from appendix where linkSid = #{linkSid}") |
|||
List<Appendix> fetchByLinkSid(String linkSid); |
|||
|
|||
int deleteByLinkSid(@Param("sid") String sid,@Param("fileType") String fileType); |
|||
|
|||
@Select("select * from appendix where linkSid = #{linkSid} and fileType = #{fileType}") |
|||
List<Appendix> fetchByLinkSid2(@Param("linkSid") String linkSid, @Param("fileType") String type); |
|||
} |
@ -0,0 +1,15 @@ |
|||
<?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.yxt.anrui.vehfleet.biz.appendix.AppendixMapper"> |
|||
<!-- <where> ${ew.sqlSegment} </where>--> |
|||
<!-- ${ew.customSqlSegment} --> |
|||
|
|||
<delete id="deleteByLinkSid"> |
|||
delete |
|||
from appendix |
|||
where linkSid = #{sid} |
|||
<if test="fileType != null and fileType != ''"> |
|||
and fileType = #{fileType} |
|||
</if> |
|||
</delete> |
|||
</mapper> |
@ -0,0 +1,107 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.vehfleet.biz.appendix; |
|||
|
|||
import com.yxt.common.base.config.component.FileUploadComponent; |
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.List; |
|||
|
|||
@Service |
|||
public class AppendixService extends MybatisBaseService<AppendixMapper, Appendix> { |
|||
|
|||
@Autowired |
|||
private FileUploadComponent fileUploadComponent; |
|||
|
|||
public List<Appendix> fetchByLinkSid(String linkSid) { |
|||
return baseMapper.fetchByLinkSid(linkSid); |
|||
} |
|||
|
|||
public void saveOrUpdateFile(String sid, List<Appendix> oaAppendixList, String fileType) { |
|||
baseMapper.deleteByLinkSid(sid, fileType); |
|||
if (!oaAppendixList.isEmpty()) { |
|||
oaAppendixList.forEach(v -> { |
|||
baseMapper.insert(v); |
|||
}); |
|||
} |
|||
} |
|||
|
|||
public int deleteByLinkSid(String sid, String fileType) { |
|||
return baseMapper.deleteByLinkSid(sid, fileType); |
|||
} |
|||
|
|||
public void saveFile(String sid, List<String> files, String attachType, String fileType) { |
|||
List<Appendix> oaAppendixList = new ArrayList<>(); |
|||
if (!files.isEmpty()) { |
|||
for (String file : files) { |
|||
String filePath = file.replace(fileUploadComponent.getUrlPrefix(), ""); |
|||
Appendix oaAppendix = new Appendix(); |
|||
oaAppendix.setLinkSid(sid); |
|||
oaAppendix.setAttachType(attachType); |
|||
oaAppendix.setFilePath(filePath); |
|||
/* File filess = new File(fileUploadComponent.getUploadPath() + file.replace("/", File.separator)); |
|||
if (file != null) { |
|||
try { |
|||
boolean isTrue = ImageIO.read(filess) != null; |
|||
if (isTrue) { |
|||
oaAppendix.setFileType("图片"); |
|||
} else { |
|||
oaAppendix.setFileType("文件"); |
|||
} |
|||
} catch (IOException e) { |
|||
e.printStackTrace(); |
|||
} |
|||
}*/ |
|||
oaAppendix.setFileType(fileType); |
|||
oaAppendixList.add(oaAppendix); |
|||
} |
|||
} |
|||
saveOrUpdateFile(sid, oaAppendixList, fileType); |
|||
} |
|||
|
|||
public List<String> selectByLinkSid(String sid) { |
|||
List<Appendix> fileList = fetchByLinkSid(sid); |
|||
List<String> files = new ArrayList<>(); |
|||
for (Appendix oaAppendix : fileList) { |
|||
String url = fileUploadComponent.getUrlPrefix() + oaAppendix.getFilePath(); |
|||
files.add(url); |
|||
} |
|||
return files; |
|||
} |
|||
|
|||
public List<String> selectByLinkSid(String sid, String type) { |
|||
List<Appendix> fileList = baseMapper.fetchByLinkSid2(sid, type); |
|||
List<String> files = new ArrayList<>(); |
|||
for (Appendix oaAppendix : fileList) { |
|||
String url = fileUploadComponent.getUrlPrefix() + oaAppendix.getFilePath(); |
|||
files.add(url); |
|||
} |
|||
return files; |
|||
} |
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.yxt.anrui.vehfleet.biz.regulatorydocuments; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2025/5/14 10:12 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "监管企业信息", description = "监管企业信息") |
|||
@TableName("regulatory_documents") |
|||
public class RegulatoryDocuments extends BaseEntity { |
|||
private String fileNameKey;//文件名
|
|||
private String fileNameValue; |
|||
private String departmentKey;//监管部门
|
|||
private String departmentValue; |
|||
private String fleetSid;//车队
|
|||
private String fleetName; |
|||
private String uploaderSid;//上传人
|
|||
private String uploaderName; |
|||
} |
@ -0,0 +1,26 @@ |
|||
package com.yxt.anrui.vehfleet.biz.regulatorydocuments; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2025/5/14 10:38 |
|||
*/ |
|||
@ApiModel(value = "监管企业信息 数据传输对象", description = "监管企业信息 数据传输对象") |
|||
@Data |
|||
public class RegulatoryDocumentsDto { |
|||
private String sid; |
|||
private String remarks; |
|||
private String fileNameKey;//文件名
|
|||
private String fileNameValue; |
|||
private String departmentKey;//监管部门
|
|||
private String departmentValue; |
|||
private String fleetSid;//车队
|
|||
private String fleetName; |
|||
private String uploaderSid;//上传人
|
|||
private String uploaderName; |
|||
private List<String> filePaths; |
|||
} |
@ -0,0 +1,18 @@ |
|||
package com.yxt.anrui.vehfleet.biz.regulatorydocuments; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.Wrapper; |
|||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.baomidou.mybatisplus.core.toolkit.Constants; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/4/12 11:49 |
|||
*/ |
|||
@Mapper |
|||
public interface RegulatoryDocumentsMapper extends BaseMapper<RegulatoryDocuments> { |
|||
IPage<RegulatoryDocumentsVo> selectPageVo(IPage<RegulatoryDocuments> page, @Param(Constants.WRAPPER) Wrapper<RegulatoryDocuments> qw); |
|||
RegulatoryDocumentsVo fetchSid(@Param("sid") String sid); |
|||
} |
@ -0,0 +1,19 @@ |
|||
<?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.yxt.anrui.vehfleet.biz.regulatorydocuments.RegulatoryDocumentsMapper"> |
|||
<!-- <where> ${ew.sqlSegment} </where>--> |
|||
<!-- ${ew.customSqlSegment} --> |
|||
<select id="selectPageVo" resultType="com.yxt.anrui.vehfleet.biz.regulatorydocuments.RegulatoryDocumentsVo"> |
|||
SELECT * |
|||
FROM regulatory_documents |
|||
<where> |
|||
${ew.sqlSegment} |
|||
</where> |
|||
</select> |
|||
<select id="fetchSid" resultType="com.yxt.anrui.vehfleet.biz.regulatorydocuments.RegulatoryDocumentsVo"> |
|||
SELECT * |
|||
FROM regulatory_documents |
|||
WHERE sid=#{sid} |
|||
</select> |
|||
|
|||
</mapper> |
@ -0,0 +1,23 @@ |
|||
package com.yxt.anrui.vehfleet.biz.regulatorydocuments; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2025/5/14 10:39 |
|||
*/ |
|||
@Data |
|||
public class RegulatoryDocumentsQuery implements Query { |
|||
|
|||
private String fileNameValue;//文件名
|
|||
|
|||
private String departmentValue;//部门
|
|||
private String fleetSid;//车队
|
|||
|
|||
private String uploaderName;//上传人
|
|||
private String remarks;//备注
|
|||
private String endTime; |
|||
private String startTime; |
|||
|
|||
} |
@ -0,0 +1,99 @@ |
|||
|
|||
package com.yxt.anrui.vehfleet.biz.regulatorydocuments; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.yxt.anrui.vehfleet.biz.appendix.AppendixService; |
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
import com.yxt.common.base.utils.PagerUtil; |
|||
import com.yxt.common.core.query.PagerQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.common.core.vo.PagerVo; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.Collections; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2023/4/12 11:50 |
|||
*/ |
|||
@Service |
|||
public class RegulatoryDocumentsService extends MybatisBaseService<RegulatoryDocumentsMapper, RegulatoryDocuments> { |
|||
@Autowired |
|||
AppendixService appendixService; |
|||
public PagerVo<RegulatoryDocumentsVo> listPageVo(PagerQuery<RegulatoryDocumentsQuery> pq) { |
|||
RegulatoryDocumentsQuery query = pq.getParams(); |
|||
QueryWrapper<RegulatoryDocuments> qw = new QueryWrapper<>(); |
|||
if(StringUtils.isNotBlank(query.getFileNameValue())){ |
|||
qw.eq("fileNameValue",query.getFileNameValue()); |
|||
} |
|||
if(StringUtils.isNotBlank(query.getDepartmentValue())){ |
|||
qw.eq("departmentValue",query.getDepartmentValue()); |
|||
} |
|||
if(StringUtils.isNotBlank(query.getFleetSid())){ |
|||
qw.eq("fleetSid",query.getFleetSid()); |
|||
} |
|||
if(StringUtils.isNotBlank(query.getUploaderName())){ |
|||
qw.like("uploaderName",query.getUploaderName()); |
|||
} |
|||
if(StringUtils.isNotBlank(query.getRemarks())){ |
|||
qw.like("remarks",query.getRemarks()); |
|||
} |
|||
qw.apply(com.yxt.common.base.utils.StringUtils.isNotBlank(query.getStartTime()), "date_format (createTime,'%Y-%m-%d') >= date_format('" + query.getStartTime() + "','%Y-%m-%d')"). |
|||
apply(com.yxt.common.base.utils.StringUtils.isNotBlank(query.getEndTime()), "date_format (createTime,'%Y-%m-%d') <= date_format('" + query.getEndTime() + "','%Y-%m-%d')" |
|||
); |
|||
IPage<RegulatoryDocuments> page = PagerUtil.queryToPage(pq); |
|||
IPage<RegulatoryDocumentsVo> pagging = baseMapper.selectPageVo(page, qw); |
|||
PagerVo<RegulatoryDocumentsVo> p = PagerUtil.pageToVo(pagging, null); |
|||
return p; |
|||
} |
|||
public ResultBean saveOrUpdate(RegulatoryDocumentsDto dto) { |
|||
ResultBean rb=new ResultBean(); |
|||
String sid =dto.getSid(); |
|||
List<String> files = dto.getFilePaths(); |
|||
if(StringUtils.isNotBlank(sid)){ |
|||
RegulatoryDocuments entity=fetchBySid(sid); |
|||
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|||
baseMapper.updateById(entity); |
|||
}else{ |
|||
RegulatoryDocuments entity=new RegulatoryDocuments(); |
|||
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|||
baseMapper.insert(entity); |
|||
sid=entity.getSid(); |
|||
} |
|||
saveFiles(sid, files, "", "文件"); |
|||
return rb.success().setMsg("成功"); |
|||
} |
|||
private void saveFiles(String sid, List<String> files, String attachType, String fileType) { |
|||
files.removeAll(Collections.singleton(null)); |
|||
appendixService.saveFile(sid, files, attachType, fileType); |
|||
} |
|||
public RegulatoryDocumentsVo fetchSid(String sid){ |
|||
RegulatoryDocumentsVo bank=baseMapper.fetchSid(sid); |
|||
List<String> appes = appendixService.selectByLinkSid(sid, "文件"); |
|||
bank.setFilePaths(appes); |
|||
return bank; |
|||
} |
|||
public ResultBean delete(String sid) { |
|||
ResultBean rb=new ResultBean(); |
|||
baseMapper.delete(new QueryWrapper<RegulatoryDocuments>().eq("sid",sid)); |
|||
return rb.success().setMsg("删除成功"); |
|||
} |
|||
public List<RegulatoryDocuments> list(){ |
|||
return baseMapper.selectList(new QueryWrapper<>()); |
|||
|
|||
} |
|||
public ResultBean delAll(String[] sids) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
delBySids(sids); |
|||
for (String sid : sids) { |
|||
appendixService.deleteByLinkSid(sid,"文件"); |
|||
} |
|||
|
|||
return rb.success(); |
|||
} |
|||
} |
@ -0,0 +1,29 @@ |
|||
package com.yxt.anrui.vehfleet.biz.regulatorydocuments; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @author wangpengfei |
|||
* @date 2025/5/14 10:38 |
|||
*/ |
|||
@Data |
|||
public class RegulatoryDocumentsVo { |
|||
private String sid; |
|||
private String remarks; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
|||
private Date createTime; |
|||
private String fileNameKey;//文件名
|
|||
private String fileNameValue; |
|||
private String departmentKey;//监管部门
|
|||
private String departmentValue; |
|||
private String fleetSid;//车队
|
|||
private String fleetName; |
|||
private String uploaderSid;//上传人
|
|||
private String uploaderName; |
|||
private List<String> filePaths; |
|||
} |
Loading…
Reference in new issue