From 31678643b941483116cb4669fe6fefae4fcc0d26 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 11 四月 2025 16:06:18 +0800
Subject: [PATCH] 代码初始化
---
server/src/main/java/com/doumee/api/system/SystemTraceLogController.java | 3
admin/src/views/business/workorderShe.vue | 17
server/src/main/java/com/doumee/dao/business/vo/WorkorderAllDto.java | 97 ++
server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaChildDto.java | 65 +
server/src/main/java/com/doumee/dao/business/vo/WorkorderSheDto.java | 77 ++
server/src/main/java/com/doumee/core/annotation/excel/ExcelDataHandlerAdapter.java | 10
server/src/main/java/com/doumee/api/business/CompanyMemberController.java | 5
server/src/main/java/com/doumee/api/business/NoticesController.java | 5
server/src/main/java/com/doumee/api/business/MemberController.java | 4
admin/src/components/business/OperaWorkorderDetailDcaWindow.vue | 2
admin/src/views/business/workorderDcaChild.vue | 174 ++++
server/src/main/java/com/doumee/dao/business/model/Notices.java | 28
server/src/main/java/com/doumee/dao/business/vo/WorkorderDbhDto.java | 57 +
server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaDto.java | 56 +
server/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java | 266 +++++-
server/src/main/java/com/doumee/api/business/CompanyController.java | 5
server/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java | 504 +++++++++----
server/src/main/java/com/doumee/api/system/SystemLoginLogController.java | 2
server/src/main/java/com/doumee/dao/system/model/SystemLoginLog.java | 14
server/src/main/java/com/doumee/api/business/WorkorderController.java | 86 ++
server/src/main/java/com/doumee/api/business/CategoryController.java | 4
server/src/main/java/com/doumee/dao/business/model/Company.java | 21
server/src/main/java/com/doumee/api/business/WorkorderLogController.java | 5
admin/src/components/business/OperaWorkorderDetailSheWindow.vue | 4
admin/src/views/business/workorderDca.vue | 21
server/src/main/java/com/doumee/dao/business/model/Managers.java | 15
admin/src/components/business/OperaWorkorderDetailDcaInfoWindow.vue | 2
/dev/null | 29
server/src/main/java/com/doumee/dao/business/model/CompanyMember.java | 15
server/src/main/java/com/doumee/dao/business/model/Member.java | 24
server/src/main/java/com/doumee/dao/business/model/WorkorderLog.java | 21
server/src/main/java/com/doumee/dao/business/model/Category.java | 18
server/src/main/java/com/doumee/core/annotation/excel/Reflections.java | 294 +++++++
server/src/main/java/com/doumee/dao/system/model/SystemTraceLog.java | 21
admin/src/views/business/workorderDbh.vue | 16
server/src/main/java/com/doumee/api/business/MultifileController.java | 10
server/src/main/java/com/doumee/dao/business/model/Workorder.java | 45 -
server/src/main/java/com/doumee/core/annotation/excel/ExcelColumn.java | 115 +++
server/src/main/java/com/doumee/dao/business/model/Multifile.java | 19
server/src/main/java/com/doumee/api/business/ManagersController.java | 5
40 files changed, 1,628 insertions(+), 553 deletions(-)
diff --git a/admin/src/components/business/OperaWorkorderDetailDcaInfoWindow.vue b/admin/src/components/business/OperaWorkorderDetailDcaInfoWindow.vue
index 1a27190..86e0ed2 100644
--- a/admin/src/components/business/OperaWorkorderDetailDcaInfoWindow.vue
+++ b/admin/src/components/business/OperaWorkorderDetailDcaInfoWindow.vue
@@ -35,7 +35,7 @@
<div class="value">{{ info.companyName }} </div>
</div>
<div class="item">
- <div class="label">鍙戠敓鍦扮偣</div>
+ <div class="label">浣嶇疆</div>
<div class="value">{{ info.locationName }}</div>
</div>
<div class="item">
diff --git a/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue b/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue
index 374517c..13a9326 100644
--- a/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue
+++ b/admin/src/components/business/OperaWorkorderDetailDcaWindow.vue
@@ -41,7 +41,7 @@
<div class="value">{{ info.happenTime}}</div>
</div>
<div class="item">
- <div class="label">鍙戠敓鍦扮偣</div>
+ <div class="label">浣嶇疆</div>
<div class="value">{{ info.locationName }}</div>
</div>
<div class="item">
diff --git a/admin/src/components/business/OperaWorkorderDetailSheWindow.vue b/admin/src/components/business/OperaWorkorderDetailSheWindow.vue
index 6838092..20d48c9 100644
--- a/admin/src/components/business/OperaWorkorderDetailSheWindow.vue
+++ b/admin/src/components/business/OperaWorkorderDetailSheWindow.vue
@@ -45,6 +45,10 @@
<div class="value">{{ info.locationName }}</div>
</div>
<div class="item">
+ <div class="label">鍏蜂綋浣嶇疆</div>
+ <div class="value">{{ info.remark }}</div>
+ </div>
+ <div class="item">
<div class="label">澶栭儴灏卞尰</div>
<div class="value">{{ info.outJiuyi == "0" ? "鍚�" : "鏄�" }}</div>
</div>
diff --git a/admin/src/views/business/workorderDbh.vue b/admin/src/views/business/workorderDbh.vue
index f59f7fb..00d192b 100644
--- a/admin/src/views/business/workorderDbh.vue
+++ b/admin/src/views/business/workorderDbh.vue
@@ -40,14 +40,7 @@
<span style="color: #2E68EC;cursor: pointer" @click="$refs.operaWorkorderWindow.open('SHE浜嬩欢宸ュ崟璇︽儏', row)" >{{ row.code || '-'}}</span>
</template>
</el-table-column>
- <el-table-column prop="typeName" label="浼ゅ绫诲瀷" min-width="100px"></el-table-column>
- <el-table-column prop="memberName" label="涓婃姤浜哄憳" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.memberPhone" >{{row.memberName}} - {{row.memberPhone }}</span>
- <span v-else >{{row.memberName}} </span>
- </template>
- </el-table-column>
- <el-table-column prop="companyName" label="鎵�鍦ㄩ儴闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="typeName" label="椋庨櫓绫诲瀷" min-width="100px"></el-table-column>
<el-table-column prop="status" label="鐘舵��" min-width="100px">
<template slot-scope="{row}">
<span :class="'statusInfo'+row.status" v-if="row.status ==0">寰呭鐞�</span>
@@ -58,6 +51,13 @@
<el-table-column prop="submitDate" label="涓婃姤鏃堕棿" min-width="150px"></el-table-column>
<el-table-column prop="happenTime" label="鍙戠幇鏃堕棿" min-width="150px"></el-table-column>
<el-table-column prop="riskInfo" label="椋庨櫓鎻忚堪" min-width="100px"></el-table-column>
+ <el-table-column prop="memberName" label="涓婃姤浜哄憳" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.memberPhone" >{{row.memberName}} - {{row.memberPhone }}</span>
+ <span v-else >{{row.memberName}} </span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="companyName" label="鎵�灞為儴闂�" min-width="100px"></el-table-column>
<el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="150px"></el-table-column>
<el-table-column
v-if="containPermissions(['business:workorder:update', 'business:workorder:delete'])"
diff --git a/admin/src/views/business/workorderDca.vue b/admin/src/views/business/workorderDca.vue
index 248222f..9a99868 100644
--- a/admin/src/views/business/workorderDca.vue
+++ b/admin/src/views/business/workorderDca.vue
@@ -3,7 +3,7 @@
<!-- 鎼滅储琛ㄥ崟 -->
<div slot="search-form">
<el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
- <el-form-item label="椋庨櫓绫诲瀷" prop="typeId">
+ <el-form-item label="瑙傚療涓婚" prop="typeId">
<el-select v-model="searchForm.typeId" @change="search">
<el-option clearable filterable
v-for="item in categorys"
@@ -41,24 +41,25 @@
>
<el-table-column prop="code" label="宸ュ崟鍙�" min-width="150px" fixed>
<template slot-scope="{row}">
- <span style="color: #2E68EC;cursor: pointer" @click="$refs.operaWorkorderWindow.open('SHE浜嬩欢宸ュ崟璇︽儏', row)" >{{ row.code || '-'}}</span>
+ <span style="color: #2E68EC;cursor: pointer" @click="$refs.operaWorkorderWindow.open('DCA浜嬩欢宸ュ崟璁板綍璇︽儏', row)" >{{ row.code || '-'}}</span>
</template>
</el-table-column>
- <el-table-column prop="memberName" label="涓婃姤浜哄憳" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.memberPhone" >{{row.memberName}} - {{row.memberPhone }}</span>
- <span v-else >{{row.memberName}} </span>
- </template>
- </el-table-column>
- <el-table-column prop="companyName" label="鎵�鍦ㄩ儴闂�" min-width="100px"></el-table-column>
<el-table-column prop="typeName" label="瑙傚療涓婚" min-width="150px"></el-table-column>
<el-table-column prop="dcaYesNum" label="瑙傚療椤圭粺璁�" min-width="150px">
<template slot-scope="{row}">
<span style="color: #1562e2" >绗﹀悎锛歿{row.dcaYesNum}} 锛屼笉绗﹀悎锛�<span style="color:red;">{{row.dcaNoNum}}</span> </span>
</template>
</el-table-column>
+ <el-table-column prop="locationName" label="浣嶇疆" min-width="150px"></el-table-column>
<el-table-column prop="submitDate" label="涓婃姤鏃堕棿" min-width="150px"></el-table-column>
<el-table-column prop="happenTime" label="鍙戠幇鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="memberName" label="涓婃姤浜哄憳" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.memberPhone" >{{row.memberName}} - {{row.memberPhone }}</span>
+ <span v-else >{{row.memberName}} </span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="companyName" label="鎵�灞為儴闂�" min-width="100px"></el-table-column>
<el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="150px"></el-table-column>
<el-table-column
v-if="containPermissions(['business:workorder:update', 'business:workorder:delete'])"
@@ -67,7 +68,7 @@
fixed="right"
>
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaWorkorderWindow.open('DCA浜嬩欢宸ュ崟璇︽儏', row)" icon="el-icon-zoom-out" >鏌ョ湅璇︽儏</el-button>
+ <el-button type="text" @click="$refs.operaWorkorderWindow.open('DCA浜嬩欢宸ュ崟璁板綍璇︽儏', row)" icon="el-icon-zoom-out" >鏌ョ湅璇︽儏</el-button>
<!--<el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:workorder:delete']">鍒犻櫎</el-button>-->
</template>
</el-table-column>
diff --git a/admin/src/views/business/workorderDcaChild.vue b/admin/src/views/business/workorderDcaChild.vue
new file mode 100644
index 0000000..5ee9752
--- /dev/null
+++ b/admin/src/views/business/workorderDcaChild.vue
@@ -0,0 +1,174 @@
+<template>
+ <TableLayout :permissions="['business:workorder:query']">
+ <!-- 鎼滅储琛ㄥ崟 -->
+ <div slot="search-form">
+ <el-form ref="searchForm" :model="searchForm" label-width="100px" inline>
+ <el-form-item label="瑙傚療涓婚" prop="typeId">
+ <el-select v-model="searchForm.typeId" @change="changeType" style="width: 120px">
+ <el-option clearable filterable
+ v-for="item in categorys"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>-
+ <el-select v-model="searchForm.categoryId" @change="search" style="width: 120px">
+ <el-option clearable filterable
+ v-for="item in categorys1"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="涓婃姤浜哄憳" prop="memberName">
+ <el-input v-model="searchForm.memberName" clearable placeholder="浜哄憳濮撳悕鎴栨墜鏈哄彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <el-form-item label="宸ュ崟鍙�" prop="code">
+ <el-input v-model="searchForm.code" clearable placeholder="璇疯緭鍏ュ伐鍗曞彿" @keypress.enter.native="search"></el-input>
+ </el-form-item>
+ <section>
+ <el-button type="primary" @click="search">鎼滅储</el-button>
+ <el-button @click="reset">閲嶇疆</el-button>
+ </section>
+ </el-form>
+ </div>
+ <!-- 琛ㄦ牸鍜屽垎椤� -->
+ <template v-slot:table-wrap>
+ <ul class="toolbar" v-permissions="['business:workorder:exportExcel']">
+ <li> <el-button type="primary" :loading="isWorking.export" @click="exportExcel">瀵煎嚭</el-button></li>
+ </ul>
+ <el-table
+ :height="tableHeightNew"
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column prop="code" label="宸ュ崟鍙�" min-width="150px" fixed>
+ <template slot-scope="{row}">
+ <span style="color: #2E68EC;cursor: pointer" @click="$refs.operaWorkorderWindow.open('DCA浜嬩欢宸ュ崟璇︽儏', row)" >{{ row.code || '-'}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="typeName" label="瑙傚療涓婚" min-width="150px"></el-table-column>
+ <el-table-column prop="categoryName" label="浜岀骇瑙傚療涓婚" min-width="150px"></el-table-column>
+ <el-table-column prop="problemTitle" label="涓嶇鍚堥」" min-width="150px"></el-table-column>
+ <el-table-column prop="status" label="鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <span :class="'statusInfo'+row.status" v-if="row.status ==0">寰呭鐞�</span>
+ <span :class="'statusInfo'+row.status" v-else-if="row.status ==3 ||row.status ==4||row.status ==5">宸插鐞�</span>
+ <span :class="'statusInfo'+row.status" v-else>澶勭悊涓�</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="locationName" label="浣嶇疆" min-width="150px"></el-table-column>
+ <el-table-column prop="submitDate" label="涓婃姤鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="happenTime" label="鍙戠幇鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="memberName" label="涓婃姤浜哄憳" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.memberPhone" >{{row.memberName}} - {{row.memberPhone }}</span>
+ <span v-else >{{row.memberName}} </span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="companyName" label="鎵�灞為儴闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column
+ v-if="containPermissions(['business:workorder:update', 'business:workorder:delete'])"
+ label="鎿嶄綔"
+ min-width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button type="text" @click="$refs.operaWorkorderWindow.open('DCA浜嬩欢宸ュ崟璇︽儏', row)" icon="el-icon-zoom-out" >鏌ョ湅璇︽儏</el-button>
+ <!--<el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:workorder:delete']">鍒犻櫎</el-button>-->
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ @size-change="handleSizeChange"
+ @current-change="handlePageChange"
+ :pagination="tableData.pagination"
+ >
+ </pagination>
+ </template>
+ <!-- 鏂板缓/淇敼 -->
+ <OperaWorkorderDetailDcaInfoWindow ref="operaWorkorderWindow" @success="handlePageChange"/>
+ </TableLayout>
+</template>
+
+<script>
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaWorkorderDetailDcaInfoWindow from '@/components/business/OperaWorkorderDetailDcaInfoWindow'
+import { allList } from '@/api/business/category'
+export default {
+ name: 'Workorder',
+ extends: BaseTable,
+ components: {TableLayout, Pagination, OperaWorkorderDetailDcaInfoWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ type: '2',
+ memberName: '',
+ memberCompanyId: '',
+ localtionId: '',
+ categoryId: '',
+ typeId: '',
+ code: '',
+ categoryList: []
+ },
+ categoryprops: {
+ label: 'name',
+ value: 'id',
+ checkStrictly: true,
+ lazyLoad: this.lazyLoad
+ },
+ categorys: [],
+ categorys1: []
+ }
+ },
+ created () {
+ this.config({
+ module: '宸ュ崟淇℃伅琛�',
+ api: '/business/workorder',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.loadCategorys()
+ this.search()
+ },
+ methods: {
+ changeType(){
+ this.search()
+ this.categorys1 = []
+ this.searchForm.categoryId = null
+ this.loadCategorys1()
+ },
+ handleChangeCategory (value) {
+ if (this.searchForm.categoryList && this.searchForm.categoryList.length >= 1) {
+ this.searchForm.typeId = this.searchForm.categoryList[this.searchForm.categoryList.length - 1]
+ }
+ },
+ loadCategorys () {
+ allList({ type: 4, isRoot:1})
+ .then(res => {
+ if (res && res.length > 0) {
+ this.categorys = res
+ }
+ })
+ },
+ loadCategorys1 ( ) {
+ if (!this.searchForm.typeId) {
+ return
+ }
+ allList({ type: 4, parentId: this.searchForm.typeId })
+ .then(res => {
+ if (res && res.length > 0) {
+ this.categorys1 = res
+ }
+ })
+ },
+ }
+}
+</script>
diff --git a/admin/src/views/business/workorderShe.vue b/admin/src/views/business/workorderShe.vue
index 5a19c9e..dc3fe97 100644
--- a/admin/src/views/business/workorderShe.vue
+++ b/admin/src/views/business/workorderShe.vue
@@ -49,13 +49,6 @@
<span :class="'statusInfo'+row.status" v-else>澶勭悊涓�</span>
</template>
</el-table-column>
- <el-table-column prop="memberName" label="涓婃姤浜哄憳" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.memberPhone" >{{row.memberName}} - {{row.memberPhone }}</span>
- <span v-else >{{row.memberName}} </span>
- </template>
- </el-table-column>
- <el-table-column prop="companyName" label="鎵�鍦ㄩ儴闂�" min-width="100px"></el-table-column>
<el-table-column prop="memberType" label="娑夊強浜哄憳" min-width="100px">
<template slot-scope="{row}">
<span v-if="row.memberType == 2">渚涘簲鍟�-{{row.memberNames}}</span>
@@ -64,6 +57,7 @@
</template>
</el-table-column>
<el-table-column prop="locationName" label="鍙戠敓鍦扮偣" min-width="100px"></el-table-column>
+ <el-table-column prop="remark" label="鍏蜂綋浣嶇疆" min-width="100px"></el-table-column>
<el-table-column prop="outJiuyi" label="灏卞尰鎯呭喌" min-width="100px">
<template slot-scope="{row}">
<span v-if="row.outJiuyi == 0">闈炲閮ㄥ氨鍖�-
@@ -83,7 +77,14 @@
</template>
</el-table-column>
<el-table-column prop="eventInfo" label="浜嬩欢璇存槑" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" min-width="150px"></el-table-column>
+ <el-table-column prop="memberName" label="涓婃姤浜哄憳" min-width="100px">
+ <template slot-scope="{row}">
+ <span v-if="row.memberPhone" >{{row.memberName}} - {{row.memberPhone }}</span>
+ <span v-else >{{row.memberName}} </span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="companyName" label="鎵�灞為儴闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鎻愪氦鏃堕棿" min-width="150px"></el-table-column>
<el-table-column
v-if="containPermissions(['business:workorder:update', 'business:workorder:delete'])"
label="鎿嶄綔"
diff --git a/server/src/main/java/com/doumee/api/business/CategoryController.java b/server/src/main/java/com/doumee/api/business/CategoryController.java
index 1296aa0..b69a568 100644
--- a/server/src/main/java/com/doumee/api/business/CategoryController.java
+++ b/server/src/main/java/com/doumee/api/business/CategoryController.java
@@ -7,7 +7,6 @@
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.model.Category;
-import com.doumee.dao.business.model.Company;
import com.doumee.service.business.CategoryService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -16,7 +15,6 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
import java.util.List;
/**
@@ -80,7 +78,7 @@
@PostMapping("/exportExcel")
@RequiresPermissions("business:category:exportExcel")
public void exportExcel (@RequestBody PageWrap<Category> pageWrap, HttpServletResponse response) {
- ExcelExporter.build(Category.class).exportData(categoryService.findPage(pageWrap).getRecords(), "鍒嗙被淇℃伅琛�", response);
+ ExcelExporter.build(Category.class).export(categoryService.findPage(pageWrap).getRecords(), "鍒嗙被淇℃伅琛�", response);
}
@ApiOperation("鏍规嵁ID鏌ヨ")
diff --git a/server/src/main/java/com/doumee/api/business/CompanyController.java b/server/src/main/java/com/doumee/api/business/CompanyController.java
index 06d07ad..3d9eb96 100644
--- a/server/src/main/java/com/doumee/api/business/CompanyController.java
+++ b/server/src/main/java/com/doumee/api/business/CompanyController.java
@@ -9,15 +9,12 @@
import com.doumee.dao.business.model.Company;
import com.doumee.service.business.CompanyService;
import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
import java.util.List;
/**
@@ -90,7 +87,7 @@
@PostMapping("/exportExcel")
@RequiresPermissions("business:company:exportExcel")
public void exportExcel (@RequestBody PageWrap<Company> pageWrap, HttpServletResponse response) {
- ExcelExporter.build(Company.class).exportData(companyService.findPage(pageWrap).getRecords(), "缁勭粐淇℃伅琛�", response);
+ ExcelExporter.build(Company.class).export(companyService.findPage(pageWrap).getRecords(), "缁勭粐淇℃伅琛�", response);
}
@ApiOperation("鏍规嵁ID鏌ヨ")
diff --git a/server/src/main/java/com/doumee/api/business/CompanyMemberController.java b/server/src/main/java/com/doumee/api/business/CompanyMemberController.java
index 4bd5e0b..6777284 100644
--- a/server/src/main/java/com/doumee/api/business/CompanyMemberController.java
+++ b/server/src/main/java/com/doumee/api/business/CompanyMemberController.java
@@ -15,9 +15,6 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* @author 姹熻箘韫�
* @since 2025/04/03 16:30
@@ -73,7 +70,7 @@
@PostMapping("/exportExcel")
@RequiresPermissions("business:companymember:exportExcel")
public void exportExcel (@RequestBody PageWrap<CompanyMember> pageWrap, HttpServletResponse response) {
- ExcelExporter.build(CompanyMember.class).exportData(companyMemberService.findPage(pageWrap).getRecords(), "浜哄憳淇℃伅琛�", response);
+ ExcelExporter.build(CompanyMember.class).export(companyMemberService.findPage(pageWrap).getRecords(), "浜哄憳淇℃伅琛�", response);
}
@ApiOperation("鏍规嵁ID鏌ヨ")
diff --git a/server/src/main/java/com/doumee/api/business/ManagersController.java b/server/src/main/java/com/doumee/api/business/ManagersController.java
index 0e3170f..cb962e0 100644
--- a/server/src/main/java/com/doumee/api/business/ManagersController.java
+++ b/server/src/main/java/com/doumee/api/business/ManagersController.java
@@ -15,9 +15,6 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* @author 姹熻箘韫�
* @since 2025/04/02 17:49
@@ -73,7 +70,7 @@
@PostMapping("/exportExcel")
@RequiresPermissions("business:managers:exportExcel")
public void exportExcel (@RequestBody PageWrap<Managers> pageWrap, HttpServletResponse response) {
- ExcelExporter.build(Managers.class).exportData(managersService.findPage(pageWrap).getRecords(), "璐d换浜轰俊鎭〃", response);
+ ExcelExporter.build(Managers.class).export(managersService.findPage(pageWrap).getRecords(), "璐d换浜轰俊鎭〃", response);
}
@ApiOperation("鏍规嵁ID鏌ヨ")
diff --git a/server/src/main/java/com/doumee/api/business/MemberController.java b/server/src/main/java/com/doumee/api/business/MemberController.java
index 7770e56..8781748 100644
--- a/server/src/main/java/com/doumee/api/business/MemberController.java
+++ b/server/src/main/java/com/doumee/api/business/MemberController.java
@@ -3,7 +3,6 @@
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
-import com.doumee.core.constants.Constants;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
@@ -16,7 +15,6 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
import java.util.List;
/**
@@ -86,7 +84,7 @@
@PostMapping("/exportExcel")
@RequiresPermissions("business:member:exportExcel")
public void exportExcel (@RequestBody PageWrap<Member> pageWrap, HttpServletResponse response) {
- ExcelExporter.build(Member.class).exportData(memberService.findPage(pageWrap).getRecords(), "浜哄憳淇℃伅琛�", response);
+ ExcelExporter.build(Member.class).export(memberService.findPage(pageWrap).getRecords(), "浜哄憳淇℃伅琛�", response);
}
@ApiOperation("鏍规嵁ID鏌ヨ")
diff --git a/server/src/main/java/com/doumee/api/business/MultifileController.java b/server/src/main/java/com/doumee/api/business/MultifileController.java
index 0fc4546..cceeb16 100644
--- a/server/src/main/java/com/doumee/api/business/MultifileController.java
+++ b/server/src/main/java/com/doumee/api/business/MultifileController.java
@@ -1,7 +1,6 @@
package com.doumee.api.business;
import com.doumee.api.BaseController;
-import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
@@ -14,9 +13,6 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-
-import java.util.ArrayList;
-import java.util.List;
/**
* @author 姹熻箘韫�
@@ -69,12 +65,6 @@
return ApiResponse.success(multifileService.findPage(pageWrap));
}
- @ApiOperation("瀵煎嚭Excel")
- @PostMapping("/exportExcel")
- @RequiresPermissions("business:multifile:exportExcel")
- public void exportExcel (@RequestBody PageWrap<Multifile> pageWrap, HttpServletResponse response) {
- ExcelExporter.build(Multifile.class).exportData(multifileService.findPage(pageWrap).getRecords(), "闄勪欢涓婁紶淇℃伅琛�", response);
- }
@ApiOperation("鏍规嵁ID鏌ヨ")
@GetMapping("/{id}")
diff --git a/server/src/main/java/com/doumee/api/business/NoticesController.java b/server/src/main/java/com/doumee/api/business/NoticesController.java
index c494e2f..b5a081d 100644
--- a/server/src/main/java/com/doumee/api/business/NoticesController.java
+++ b/server/src/main/java/com/doumee/api/business/NoticesController.java
@@ -15,9 +15,6 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* @author 姹熻箘韫�
* @since 2025/04/02 17:49
@@ -73,7 +70,7 @@
@PostMapping("/exportExcel")
@RequiresPermissions("business:notices:exportExcel")
public void exportExcel (@RequestBody PageWrap<Notices> pageWrap, HttpServletResponse response) {
- ExcelExporter.build(Notices.class).exportData(noticesService.findPage(pageWrap).getRecords(), "绯荤粺娑堟伅淇℃伅琛�", response);
+ ExcelExporter.build(Notices.class).export(noticesService.findPage(pageWrap).getRecords(), "绯荤粺娑堟伅淇℃伅琛�", response);
}
@ApiOperation("鏍规嵁ID鏌ヨ")
diff --git a/server/src/main/java/com/doumee/api/business/WorkorderController.java b/server/src/main/java/com/doumee/api/business/WorkorderController.java
index 28822c1..7813df5 100644
--- a/server/src/main/java/com/doumee/api/business/WorkorderController.java
+++ b/server/src/main/java/com/doumee/api/business/WorkorderController.java
@@ -3,19 +3,30 @@
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.constants.Constants;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
+import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.model.Workorder;
+import com.doumee.dao.business.vo.WorkorderDbhDto;
+import com.doumee.dao.business.vo.WorkorderDcaChildDto;
+import com.doumee.dao.business.vo.WorkorderDcaDto;
+import com.doumee.dao.business.vo.WorkorderSheDto;
import com.doumee.service.business.WorkorderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
/**
@@ -73,7 +84,76 @@
@PostMapping("/exportExcel")
@RequiresPermissions("business:workorder:exportExcel")
public void exportExcel (@RequestBody PageWrap<Workorder> pageWrap, HttpServletResponse response) {
- ExcelExporter.build(Workorder.class).exportData(workorderService.findPage(pageWrap).getRecords(), "宸ュ崟淇℃伅琛�", response);
+ //0SHE浜嬩欢 1DCA浜嬩欢鎻愪氦璁板綍 2DCA宸ュ崟 3璺岀粖婊戜簨浠�
+ long index = 1;
+ if(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.ZERO)){
+ List<Workorder> records = workorderService.findPage(pageWrap).getRecords();
+ List<WorkorderSheDto> list = new ArrayList<>();
+ if(records!=null){
+ for(Workorder model : records){
+ WorkorderSheDto t = new WorkorderSheDto();
+ t.setIndex(index++);
+ BeanUtils.copyProperties(model,t);
+ if(Constants.equalsInteger(model.getOutJiuyi(),Constants.ONE)){
+ t.setJiuyiInfo("澶栭儴灏卞尰");
+ }else{
+ t.setJiuyiInfo("闈炲閮ㄥ氨鍖�");
+ if(Constants.equalsInteger(model.getIsYiwushi(),Constants.ONE)){
+ t.setJiuyiInfo(t.getJiuyiInfo() + "-鍖诲姟瀹�");
+ }else{
+ t.setJiuyiInfo(t.getJiuyiInfo() + "-闈炲尰鍔″");
+ if(Constants.equalsInteger(model.getIsHurted(),Constants.ONE)){
+ t.setJiuyiInfo(t.getJiuyiInfo() + "-鍙椾激");
+ }else{
+ t.setJiuyiInfo(t.getJiuyiInfo() + "-鏈彈浼�");
+ }
+ }
+ }
+ t.setMemberNames("鏈汉");
+ t.setMemberNames(t.getMemberNames()+"-"+StringUtils.defaultString(model.getMemberNames(),""));
+ list.add(t);
+ }
+ }
+ ExcelExporter.build(WorkorderSheDto.class).export(list, "SHE浜嬩欢宸ュ崟鎶ヨ〃_"+ DateUtil.formatDate(new Date(),"yyyyMMddHHmmss"), response);
+ }else if(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.ONE)){
+ List<Workorder> records = workorderService.findPage(pageWrap).getRecords();
+ List<WorkorderDcaDto> list = new ArrayList<>();
+ if(records!=null){
+ for(Workorder model : records){
+ WorkorderDcaDto t = new WorkorderDcaDto();
+ t.setIndex(index++);
+ BeanUtils.copyProperties(model,t);
+ list.add(t);
+ }
+ }
+ ExcelExporter.build(WorkorderDcaDto.class).export(list, "DCA浜嬩欢宸ュ崟鎻愪氦璁板綍鎶ヨ〃_"+ DateUtil.formatDate(new Date(),"yyyyMMddHHmmss"), response);
+ }else if(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.TWO)){
+ List<Workorder> records = workorderService.findPage(pageWrap).getRecords();
+ List<WorkorderDcaChildDto> list = new ArrayList<>();
+ if(records!=null){
+ for(Workorder model : records){
+ WorkorderDcaChildDto t = new WorkorderDcaChildDto();
+ t.setIndex(index++);
+ BeanUtils.copyProperties(model,t);
+ list.add(t);
+ }
+ }
+ ExcelExporter.build(WorkorderDcaChildDto.class).export(list, "DCA浜嬩欢宸ュ崟鎶ヨ〃_"+ DateUtil.formatDate(new Date(),"yyyyMMddHHmmss"), response);
+ }else if(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.THREE)){
+ List<Workorder> records = workorderService.findPage(pageWrap).getRecords();
+ List<WorkorderDbhDto> list = new ArrayList<>();
+ if(records!=null){
+ for(Workorder model : records){
+ WorkorderDbhDto t = new WorkorderDbhDto();
+ t.setIndex(index++);
+ BeanUtils.copyProperties(model,t);
+ list.add(t);
+ }
+ }
+ ExcelExporter.build(WorkorderDbhDto.class).export(list, "璺岀粖婊戜簨浠跺伐鍗曟姤琛╛"+ DateUtil.formatDate(new Date(),"yyyyMMddHHmmss"), response);
+ }else{
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
}
@ApiOperation("鏍规嵁ID鏌ヨ")
diff --git a/server/src/main/java/com/doumee/api/business/WorkorderLogController.java b/server/src/main/java/com/doumee/api/business/WorkorderLogController.java
index ea3c688..c50ed6d 100644
--- a/server/src/main/java/com/doumee/api/business/WorkorderLogController.java
+++ b/server/src/main/java/com/doumee/api/business/WorkorderLogController.java
@@ -15,9 +15,6 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* @author 姹熻箘韫�
* @since 2025/04/02 17:49
@@ -73,7 +70,7 @@
@PostMapping("/exportExcel")
@RequiresPermissions("business:workorderlog:exportExcel")
public void exportExcel (@RequestBody PageWrap<WorkorderLog> pageWrap, HttpServletResponse response) {
- ExcelExporter.build(WorkorderLog.class).exportData(workorderLogService.findPage(pageWrap).getRecords(), "宸ュ崟鎿嶄綔鍘嗗彶琛�", response);
+ ExcelExporter.build(WorkorderLog.class).export(workorderLogService.findPage(pageWrap).getRecords(), "宸ュ崟鎿嶄綔鍘嗗彶琛�", response);
}
@ApiOperation("鏍规嵁ID鏌ヨ")
diff --git a/server/src/main/java/com/doumee/api/system/SystemLoginLogController.java b/server/src/main/java/com/doumee/api/system/SystemLoginLogController.java
index f9034f5..bb09a75 100644
--- a/server/src/main/java/com/doumee/api/system/SystemLoginLogController.java
+++ b/server/src/main/java/com/doumee/api/system/SystemLoginLogController.java
@@ -39,6 +39,6 @@
@ApiOperation("瀵煎嚭Excel")
@RequiresPermissions("system:loginLog:query")
public void export (@RequestBody PageWrap<QuerySystemLoginLogDTO> pageWrap, HttpServletResponse response) {
- ExcelExporter.build(SystemLoginLog.class).exportData(systemLoginLogService.findPage(pageWrap).getRecords(), "鐧诲綍鏃ュ織", response);
+ ExcelExporter.build(SystemLoginLog.class).export(systemLoginLogService.findPage(pageWrap).getRecords(), "鐧诲綍鏃ュ織", response);
}
}
diff --git a/server/src/main/java/com/doumee/api/system/SystemTraceLogController.java b/server/src/main/java/com/doumee/api/system/SystemTraceLogController.java
index 79ac2d9..5998295 100644
--- a/server/src/main/java/com/doumee/api/system/SystemTraceLogController.java
+++ b/server/src/main/java/com/doumee/api/system/SystemTraceLogController.java
@@ -3,7 +3,6 @@
import com.doumee.api.BaseController;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.model.ApiResponse;
-import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.system.dto.QuerySystemTraceLogDTO;
import com.doumee.dao.system.model.SystemTraceLog;
@@ -39,6 +38,6 @@
@PostMapping("/exportExcel")
@RequiresPermissions("system:traceLog:query")
public void exportExcel (@RequestBody PageWrap<QuerySystemTraceLogDTO> pageWrap, HttpServletResponse response) {
- ExcelExporter.build(SystemTraceLog.class).exportData(systemTraceLogService.findPage(pageWrap).getRecords(), "鎿嶄綔鏃ュ織", response);
+ ExcelExporter.build(SystemTraceLog.class).export(systemTraceLogService.findPage(pageWrap).getRecords(), "鎿嶄綔鏃ュ織", response);
}
}
diff --git a/server/src/main/java/com/doumee/core/annotation/excel/ExcelColumn.java b/server/src/main/java/com/doumee/core/annotation/excel/ExcelColumn.java
new file mode 100644
index 0000000..c0de11a
--- /dev/null
+++ b/server/src/main/java/com/doumee/core/annotation/excel/ExcelColumn.java
@@ -0,0 +1,115 @@
+package com.doumee.core.annotation.excel;
+
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.IndexedColors;
+
+import java.lang.annotation.*;
+
+/**
+ * 鏍囪涓篍xcel鍒�
+ * @author Eva.Caesar Liu
+ * @date 2023/02/14 11:14
+ */
+@Inherited
+//@Target(ElementType.FIELD)
+@Target({ElementType.METHOD, ElementType.FIELD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ExcelColumn {
+ /**
+ * 瀵煎嚭瀛楁鍚嶏紙榛樿璋冪敤褰撳墠瀛楁鐨勨�済et鈥濇柟娉曪紝濡傛寚瀹氬鍑哄瓧娈典负瀵硅薄锛岃濉啓鈥滃璞″悕.瀵硅薄灞炴�р�濓紝渚嬶細鈥渁rea.name鈥濄�佲�渙ffice.name鈥濓級
+ */
+ String value() default "";
+ /**
+ * 瀛楁绫诲瀷锛�0锛氬鍑哄鍏ワ紱1锛氫粎瀵煎嚭锛�2锛氫粎瀵煎叆锛�
+ */
+ int type() default 0;
+ /**
+ * 鍒楀悕
+ */
+ String name();
+
+ /**
+ * 鍒楀锛堝崟浣嶄负瀛楃锛夛紝-1鑷姩璁$畻
+ */
+ int width() default -1;
+
+ /**
+ * 鎺掑簭锛屽�艰秺灏忚秺闈犲墠锛�-1鎸夊瓧娈靛弽灏勯『搴忔帓搴�
+ */
+ int index() default -1;
+
+ /**
+ * 瀵归綈鏂瑰紡
+ */
+ HorizontalAlignment align() default HorizontalAlignment.LEFT;
+
+ /**
+ * 鍒楄儗鏅壊
+ */
+ IndexedColors backgroundColor() default IndexedColors.GREY_25_PERCENT;
+
+ /**
+ * 鍒楁暟鎹崟鍏冩牸鑳屾櫙鑹�
+ */
+ IndexedColors dataBackgroundColor() default IndexedColors.WHITE;
+
+ /**
+ * 瀛椾綋棰滆壊
+ */
+ IndexedColors color() default IndexedColors.BLACK;
+
+ /**
+ * 瀛椾綋澶у皬锛堝儚绱狅級
+ */
+ short fontSize() default 12;
+
+ /**
+ * 绮椾綋
+ */
+ boolean bold() default false;
+
+ /**
+ * 鏂滀綋
+ */
+ boolean italic() default false;
+
+ /**
+ * 鍊兼槧灏勶紝濡�0=濂�;1=鐢�
+ */
+ String valueMapping() default "";
+
+ /**
+ * 鏁版嵁鍓嶇紑
+ */
+ String prefix() default "";
+
+ /**
+ * 鏁版嵁鍚庣紑
+ */
+ String suffix() default "";
+
+ /**
+ * 鏃ユ湡鏍煎紡
+ */
+ String dateFormat() default "yyyy-MM-dd";
+
+ /**
+ * 鑷畾涔夋暟鎹鐞嗗櫒
+ */
+ Class handler() default ExcelDataHandlerAdapter.class;
+
+ /**
+ * 鑷畾涔夋暟鎹鐞嗗櫒鍙傛暟
+ */
+ String[] args() default {};
+
+ /**
+ * 鍙嶅皠绫诲瀷
+ */
+ Class<?> fieldType() default Class.class;
+
+ /**
+ * 瀛楁褰掑睘缁勶紙鏍规嵁鍒嗙粍瀵煎嚭瀵煎叆锛�
+ */
+ int[] groups() default {};
+}
diff --git a/server/src/main/java/com/doumee/core/annotation/excel/ExcelDataConverterAdapter.java b/server/src/main/java/com/doumee/core/annotation/excel/ExcelDataHandlerAdapter.java
similarity index 62%
rename from server/src/main/java/com/doumee/core/annotation/excel/ExcelDataConverterAdapter.java
rename to server/src/main/java/com/doumee/core/annotation/excel/ExcelDataHandlerAdapter.java
index 8d666a4..33a153b 100644
--- a/server/src/main/java/com/doumee/core/annotation/excel/ExcelDataConverterAdapter.java
+++ b/server/src/main/java/com/doumee/core/annotation/excel/ExcelDataHandlerAdapter.java
@@ -2,16 +2,16 @@
/**
* Excel鏁版嵁鏍煎紡澶勭悊閫傞厤鍣�
- * @author dm
- * @since 2025/03/31 16:44
+ * @author Eva.Caesar Liu
+ * @date 2023/02/14 11:14
*/
-public interface ExcelDataConverterAdapter {
+public interface ExcelDataHandlerAdapter {
/**
* 鏍煎紡鍖�
- *
* @param args 鍙傛暟闆嗗悎锛岀涓�涓弬鏁颁负鍗曞厓鏍兼暟鎹�
+ *
* @return String
*/
- Object convert(Object... args);
+ Object format (Object... args);
}
diff --git a/server/src/main/java/com/doumee/core/annotation/excel/ExcelExportColumn.java b/server/src/main/java/com/doumee/core/annotation/excel/ExcelExportColumn.java
deleted file mode 100644
index 1a6ac31..0000000
--- a/server/src/main/java/com/doumee/core/annotation/excel/ExcelExportColumn.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package com.doumee.core.annotation.excel;
-
-import org.apache.poi.ss.usermodel.HorizontalAlignment;
-import org.apache.poi.ss.usermodel.IndexedColors;
-
-import java.lang.annotation.*;
-
-/**
- * 鏍囪涓篍xcel瀵煎嚭鍒�
- * @author dm
- * @since 2025/03/31 16:44
- */
-@Inherited
-@Target(ElementType.FIELD)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface ExcelExportColumn {
-
- /**
- * 鍒楀悕
- */
- String name();
-
- /**
- * 鍒楀锛堝崟浣嶄负瀛楃锛夛紝-1鎸夊瓧娈靛弽灏勯『搴忔帓搴�
- */
- int width() default -1;
-
- /**
- * 鎺掑簭锛屽�艰秺灏忚秺闈犲墠锛�-1鎸夊瓧娈靛弽灏勯『搴忔帓搴�
- */
- int index() default -1;
-
- /**
- * 瀵归綈鏂瑰紡
- */
- HorizontalAlignment align() default HorizontalAlignment.LEFT;
-
- /**
- * 鍒楀ご鑳屾櫙鑹�
- */
- IndexedColors backgroundColor() default IndexedColors.GREY_25_PERCENT;
-
- /**
- * 鏁版嵁鍗曞厓鏍肩殑鑳屾櫙鑹�
- */
- IndexedColors dataBackgroundColor() default IndexedColors.WHITE;
-
- /**
- * 瀛椾綋棰滆壊
- */
- IndexedColors color () default IndexedColors.BLACK;
-
- /**
- * 瀛椾綋澶у皬锛堝儚绱狅級
- */
- short fontSize () default 12;
-
- /**
- * 鏄惁鍔犵矖
- */
- boolean bold () default false;
-
- /**
- * 鏄惁鍊炬枩
- */
- boolean italic () default false;
-
- /**
- * 鍊兼槧灏勶紝濡�0=濂�;1=鐢�
- */
- String valueMapping() default "";
-
- /**
- * 鏁版嵁鍓嶇紑
- */
- String prefix() default "";
-
- /**
- * 鏁版嵁鍚庣紑
- */
- String suffix() default "";
-
- /**
- * 鏃ユ湡鏍煎紡锛屽彧鏈夋暟鎹负java.util.Date鏃舵墠鐢熸晥
- */
- String dateFormat() default "yyyy-MM-dd";
-
- /**
- * 鏁版嵁杞崲鍣�
- */
- Class<? extends ExcelDataConverterAdapter> converter() default ExcelDataConverterAdapter.class;
-
- /**
- * 鏁版嵁杞崲鍣ㄥ弬鏁�
- */
- String[] args() default {};
-
-}
diff --git a/server/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
index dd72cdc..477d2fd 100644
--- a/server/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
+++ b/server/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -5,6 +5,7 @@
import lombok.AllArgsConstructor;
import lombok.Data;
import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.core.annotation.AnnotationConfigurationException;
@@ -14,14 +15,14 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
+import java.nio.charset.Charset;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* Excel瀵煎嚭瀹炵幇
- * @author dm
- * @since 2025/03/31 16:44
+ * @author Eva.Caesar Liu
+ * @date 2023/02/14 11:14
*/
@Data
public class ExcelExporter<T> {
@@ -29,12 +30,12 @@
private static final String DEFAULT_SHEET_NAME = "Sheet1";
private Class<T> modelClass;
+ private static int maxrows = 50000;
private ExcelExporter(){}
/**
* 鏋勯�犲櫒
- *
* @param modelClass 瀹炰綋Class瀵硅薄
*/
public static <T> ExcelExporter<T> build(Class<T> modelClass) {
@@ -42,22 +43,26 @@
excelExporter.setModelClass(modelClass);
return excelExporter;
}
-
/**
* 瀵煎嚭鍒版寚瀹氳緭鍑烘祦
- *
* @param data 鏁版嵁
* @param sheetName Sheet鍚嶇О
- * @param os 杈撳嚭娴�
*/
- public void exportData(List<T> data, String sheetName, OutputStream os) {
+ public void exportWithFirstAndEnd (List<T> data, String sheetName,String first,String end, OutputStream os) {
SXSSFWorkbook sxssfWorkbook;
try {
sxssfWorkbook = new SXSSFWorkbook();
Sheet sheet = sxssfWorkbook.createSheet(sheetName);
// 鍒涘缓鍒楀ご
- sheet.createFreezePane(0, 1);
- Row header = sheet.createRow(0);
+ sheet.createFreezePane(0, 2);
+ sheet.addMergedRegion(new CellRangeAddress(0 ,0,0,this.getColumns().size()-1));
+ Row title = sheet.createRow(0);
+ title.setHeight((short) 1000);
+ Cell c = title.createCell(0);
+ c.setCellValue(first);
+ configFirstCell(sxssfWorkbook,c);
+
+ Row header = sheet.createRow(1);
List<ColumnInfo> columns = this.getColumns();
for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
ColumnInfo column = columns.get(columnIndex);
@@ -72,17 +77,27 @@
// 璁剧疆鍒楀ご鍗曞厓鏍�
configHeaderCell(sxssfWorkbook, cell, column.columnConfig);
}
+ List<CellStyle> styleList = new ArrayList<>();
+ for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
+ ColumnInfo column = columns.get(columnIndex);
+ styleList.add( configDataCell(sxssfWorkbook, column.columnConfig));
+ }
// 鍒涘缓鏁版嵁璁板綍
for (int rowIndex = 0; rowIndex < data.size(); rowIndex++) {
- Row row = sheet.createRow(rowIndex + 1);
+ Row row = sheet.createRow(rowIndex + 2);
for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
ColumnInfo column = columns.get(columnIndex);
Cell cell = row.createCell(columnIndex);
cell.setCellValue(getCellData(column, data.get(rowIndex)));
- // 璁剧疆鏁版嵁鍗曞厓鏍�
- configDataCell(sxssfWorkbook, cell, column.columnConfig);
+ cell.setCellStyle(styleList.get(columnIndex));
}
}
+ sheet.addMergedRegion(new CellRangeAddress(data.size()+2 ,data.size()+2,0,this.getColumns().size()-1));
+ Row endRow = sheet.createRow(data.size()+2);
+// endRow.setHeight((short) 600);
+ Cell c1 = endRow.createCell(0);
+ c1.setCellValue(end);
+ c1.setCellStyle( configEndCell(sxssfWorkbook));
sxssfWorkbook.write(os);
os.close();
} catch (Exception e) {
@@ -99,21 +114,117 @@
}
/**
+ * 瀵煎嚭鍒版寚瀹氳緭鍑烘祦
+ * @param data 鏁版嵁
+ * @param sheetName Sheet鍚嶇О
+ * @param os 杈撳嚭娴�
+ */
+ public void export (List<T> data, String sheetName, OutputStream os) {
+ SXSSFWorkbook sxssfWorkbook;
+ try {
+ sxssfWorkbook = new SXSSFWorkbook();
+ int totalSheet =1;
+ if( data!=null && data.size()>0){
+ totalSheet = data.size()/maxrows;
+ if(data.size()%maxrows !=0){
+ totalSheet += 1;
+ }
+ }
+ for (int i = 0; i < totalSheet; i++) {
+ List<T> list = null;
+ if(data.size() < maxrows * (i+1)) {
+ list = data.subList(maxrows*i,data.size());
+ }else{
+ list = data.subList(maxrows*i,maxrows*(i+1));
+ }
+ createSheetDataBiz(list,"銆�"+(i+1)+"銆�"+sheetName,sxssfWorkbook);
+ }
+ sxssfWorkbook.write(os);
+ os.close();
+ } catch (Exception e) {
+ throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
+ } finally {
+ if (os != null) {
+ try {
+ os.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ private void createSheetDataBiz(List<T> data, String sheetName, SXSSFWorkbook sxssfWorkbook) throws Exception{
+ Sheet sheet = sxssfWorkbook.createSheet(sheetName);
+ // 鍒涘缓鍒楀ご
+ sheet.createFreezePane(0, 1);
+ Row header = sheet.createRow(0);
+ List<ColumnInfo> columns = this.getColumns();
+ for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
+ ColumnInfo column = columns.get(columnIndex);
+ Cell cell = header.createCell(columnIndex);
+ cell.setCellValue(column.columnConfig.name());
+ // 鍒楀璁剧疆
+ if (column.columnConfig.width() == -1) {
+ sheet.setColumnWidth(columnIndex, column.columnConfig.name().length() * 2 * 256);
+ } else {
+ sheet.setColumnWidth(columnIndex, column.columnConfig.width() * 2 * 256);
+ }
+ // 璁剧疆鍒楀ご鍗曞厓鏍�
+ configHeaderCell(sxssfWorkbook, cell, column.columnConfig);
+ }
+ List<CellStyle> styleList = new ArrayList<>();
+ for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
+ ColumnInfo column = columns.get(columnIndex);
+ styleList.add( configDataCell(sxssfWorkbook, column.columnConfig));
+ }
+ // 鍒涘缓鏁版嵁璁板綍
+ for (int rowIndex = 0; rowIndex < data.size(); rowIndex++) {
+ Row row = sheet.createRow(rowIndex + 1);
+ for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
+ ColumnInfo column = columns.get(columnIndex);
+ Cell cell = row.createCell(columnIndex);
+ cell.setCellValue(getCellData(column, data.get(rowIndex)));
+ // 璁剧疆鏁版嵁鍗曞厓鏍兼牱寮�
+ cell.setCellStyle(styleList.get(columnIndex));
+ }
+ }
+ }
+
+ /**
* 瀵煎嚭鑷冲搷搴旀祦
- *
* @param data 鏁版嵁
* @param fileName Excel鏂囦欢鍚�
* @param sheetName Sheet鍚嶇О
* @param response HttpServletResponse瀵硅薄
*/
- public void exportData(List<T> data, String fileName, String sheetName, HttpServletResponse response) {
+ public void export (List<T> data, String fileName, String sheetName, HttpServletResponse response) {
try {
- String encodeFileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString()) + ".xlsx";
+ String encodeFileName = URLEncoder.encode(fileName, Charset.forName("UTF-8").toString()) + ".xlsx";
response.setHeader("Content-Disposition","attachment;filename=" + encodeFileName);
response.setContentType("application/octet-stream");
response.setHeader("doumee-opera-type", "download");
response.setHeader("doumee-download-filename", encodeFileName);
- this.exportData(data, sheetName, response.getOutputStream());
+ this.export(data, sheetName, response.getOutputStream());
+ } catch (IOException e) {
+ throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
+ }
+ }
+ /**
+ * 瀵煎嚭鑷冲搷搴旀祦
+ * @param data 鏁版嵁
+ * @param fileName Excel鏂囦欢鍚�
+ * @param sheetName Sheet鍚嶇О
+ * @param response HttpServletResponse瀵硅薄
+ */
+ public void exportWithFirstAndEnd (List<T> data, String fileName, String sheetName, String first,String end ,HttpServletResponse response) {
+ try {
+ String encodeFileName = URLEncoder.encode(fileName, Charset.forName("UTF-8").toString()) + ".xlsx";
+ response.setHeader("Content-Disposition","attachment;filename=" + encodeFileName);
+ response.setContentType("application/octet-stream");
+ response.setHeader("doumee-opera-type", "download");
+ response.setHeader("doumee-download-filename", encodeFileName);
+ this.exportWithFirstAndEnd(data, sheetName,first,end, response.getOutputStream());
} catch (IOException e) {
throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
}
@@ -121,16 +232,25 @@
/**
* 瀵煎嚭鑷冲搷搴旀祦
- *
* @param data 鏁版嵁
* @param fileName Excel鏂囦欢鍚�
* @param response HttpServletResponse瀵硅薄
*/
- public void exportData(List<T> data, String fileName, HttpServletResponse response) {
- this.exportData(data, fileName, DEFAULT_SHEET_NAME, response);
+ public void export (List<T> data, String fileName, HttpServletResponse response) {
+
+ this.export(data, fileName, DEFAULT_SHEET_NAME, response);
+ }
+ /**
+ * 瀵煎嚭鑷冲搷搴旀祦
+ * @param data 鏁版嵁
+ * @param fileName Excel鏂囦欢鍚�
+ * @param response HttpServletResponse瀵硅薄
+ */
+ public void exportWithFirstAndEnd (List<T> data, String fileName,String first,String end, HttpServletResponse response) {
+ this.exportWithFirstAndEnd(data, fileName, DEFAULT_SHEET_NAME, first,end,response);
}
- /**
+ /**O
* 鑾峰彇鍒楅泦鍚�
*/
private List<ColumnInfo> getColumns () {
@@ -138,12 +258,12 @@
Field[] fields = modelClass.getDeclaredFields();
int index = 0;
for (Field field : fields) {
- ExcelExportColumn excelColumn = field.getAnnotation(ExcelExportColumn.class);
+ ExcelColumn excelColumn = field.getAnnotation(ExcelColumn.class);
if (excelColumn == null) {
continue;
}
if (sortedFields.get(excelColumn.index()) != null) {
- throw new AnnotationConfigurationException("EVA: excel column contains the same index.");
+ throw new AnnotationConfigurationException("Excel column contains the same index.");
}
sortedFields.put(excelColumn.index() == -1 ? index : excelColumn.index(), new ColumnInfo(excelColumn, field));
index++;
@@ -154,32 +274,35 @@
/**
* 閰嶇疆鏁版嵁鍗曞厓鏍�
*/
- private void configDataCell (SXSSFWorkbook workbook, Cell cell, ExcelExportColumn columnConfig) {
- CellStyle style = workbook.createCellStyle();
- style.setAlignment(columnConfig.align());
- style.setVerticalAlignment(VerticalAlignment.CENTER);
- // 璁剧疆鑳屾櫙
- style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
- style.setFillForegroundColor(columnConfig.dataBackgroundColor().getIndex());
- // 瀛椾綋
- Font font = workbook.createFont();
- font.setFontHeightInPoints(columnConfig.fontSize());
- // 瀛椾綋棰滆壊
- font.setColor(columnConfig.color().getIndex());
- // 绮椾綋
- font.setBold(columnConfig.bold());
- // 鏂滀綋
- font.setItalic(columnConfig.italic());
- style.setFont(font);
- // 杈规
- configCellBorder(style);
- cell.setCellStyle(style);
+ private CellStyle configDataCell (SXSSFWorkbook workbook, ExcelColumn columnConfig) {
+ CellStyle configDataCellStyle = workbook.createCellStyle();
+ configDataCellStyle.setAlignment(columnConfig.align());
+ configDataCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+ // 璁剧疆鑳屾櫙
+ configDataCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+ configDataCellStyle.setFillForegroundColor(columnConfig.dataBackgroundColor().getIndex());
+ // 瀛椾綋
+ Font font = workbook.createFont();
+ font.setFontHeightInPoints(columnConfig.fontSize());
+ // 瀛椾綋棰滆壊
+ font.setColor(columnConfig.color().getIndex());
+ // 绮椾綋
+ font.setBold(columnConfig.bold());
+ // 鏂滀綋
+ font.setItalic(columnConfig.italic());
+ configDataCellStyle.setFont(font);
+ // 杈规
+ configCellBorder(configDataCellStyle);
+ configDataCellStyle.setWrapText(true);
+
+ return configDataCellStyle;
+// cell.setCellStyle(configDataCellStyle);
}
/**
* 閰嶇疆鍒楀ご鍗曞厓鏍�
*/
- private void configHeaderCell (SXSSFWorkbook workbook, Cell cell, ExcelExportColumn columnConfig) {
+ private void configHeaderCell (SXSSFWorkbook workbook, Cell cell, ExcelColumn columnConfig) {
CellStyle style = workbook.createCellStyle();
style.setAlignment(columnConfig.align());
style.setVerticalAlignment(VerticalAlignment.CENTER);
@@ -193,6 +316,44 @@
// 璁剧疆杈规
configCellBorder(style);
cell.setCellStyle(style);
+ }
+ /**
+ * 閰嶇疆鍒楀ご鍗曞厓鏍�
+ */
+ private void configFirstCell (SXSSFWorkbook workbook, Cell cell ) {
+ CellStyle style = workbook.createCellStyle();
+ style.setAlignment(HorizontalAlignment.CENTER);
+ style.setVerticalAlignment(VerticalAlignment.CENTER);
+ // 璁剧疆鑳屾櫙
+ style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+ style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
+ // 瀛椾綋
+ Font font = workbook.createFont();
+ font.setFontHeightInPoints((short)18);
+ style.setFont(font);
+ // 璁剧疆杈规
+ configCellBorder(style);
+ cell.setCellStyle(style);
+ }
+// public static CellStyle configEndCellStyle =null;
+ /**
+ * 閰嶇疆鍒楀ご鍗曞厓鏍�
+ */
+ private CellStyle configEndCell (SXSSFWorkbook workbook ) {
+ CellStyle style = workbook.createCellStyle();
+ style.setAlignment(HorizontalAlignment.RIGHT);
+ style.setVerticalAlignment(VerticalAlignment.CENTER);
+ // 璁剧疆鑳屾櫙
+ style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+ style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
+ // 瀛椾綋
+ Font font = workbook.createFont();
+ font.setFontHeightInPoints((short)14);
+ style.setFont(font);
+ // 璁剧疆杈规
+ configCellBorder(style);
+ return style;
+
}
/**
@@ -221,19 +382,19 @@
}
String stringValue = value.toString();
// 瀛樺湪鑷畾涔夋暟鎹鐞嗗櫒
- if (!columnInfo.columnConfig.converter().equals(ExcelDataConverterAdapter.class)) {
+ if (!columnInfo.columnConfig.handler().equals(ExcelDataHandlerAdapter.class)) {
try {
- Object instance = columnInfo.columnConfig.converter().newInstance();
- Method convertMethod = columnInfo.columnConfig.converter().getMethod("convert", Object[].class);
+ Object instance = columnInfo.columnConfig.handler().newInstance();
+ Method formatMethod = columnInfo.columnConfig.handler().getMethod("format", Object[].class);
List<Object> args = new ArrayList<>();
args.add(value);
for (String arg : columnInfo.columnConfig.args()) {
args.add(arg);
}
- value = convertMethod.invoke(instance, new Object[]{args.toArray()});
+ value = formatMethod.invoke(instance, new Object[]{args.toArray()});
stringValue = value.toString();
} catch (Exception e) {
- throw new IllegalStateException("EVA: can not convert data by " + columnInfo.columnConfig.converter(), e);
+ throw new IllegalStateException("Can not format data by " + columnInfo.columnConfig.handler(), e);
}
}
// 鏃ユ湡澶勭悊
@@ -258,17 +419,12 @@
return stringValue;
}
- /**
- * 鍒椾俊鎭�
- */
@Data
@AllArgsConstructor
private static class ColumnInfo {
- // 鍒楅厤缃�
- private ExcelExportColumn columnConfig;
+ private ExcelColumn columnConfig;
- // 瀛楁淇℃伅
private Field field;
}
diff --git a/server/src/main/java/com/doumee/core/annotation/excel/ExcelImportCallback.java b/server/src/main/java/com/doumee/core/annotation/excel/ExcelImportCallback.java
deleted file mode 100644
index 75ee333..0000000
--- a/server/src/main/java/com/doumee/core/annotation/excel/ExcelImportCallback.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.doumee.core.annotation.excel;
-
-import java.util.List;
-
-/**
- * 鏁版嵁瀵煎叆鍥炶皟
- * @author dm
- * @since 2025/03/31 16:44
- */
-public interface ExcelImportCallback<T> {
-
- /**
- * 瀵煎叆鍥炶皟鏂规硶
- *
- * @param rows 鏁版嵁琛�
- * @param sync 鏄惁鍚屾宸插瓨鍦ㄦ暟鎹�
- * @return 鍚屾鎴愬姛鏁�
- */
- int callback(List<T> rows, boolean sync);
-}
diff --git a/server/src/main/java/com/doumee/core/annotation/excel/ExcelImportColumn.java b/server/src/main/java/com/doumee/core/annotation/excel/ExcelImportColumn.java
deleted file mode 100644
index 2f4777c..0000000
--- a/server/src/main/java/com/doumee/core/annotation/excel/ExcelImportColumn.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.doumee.core.annotation.excel;
-
-import java.lang.annotation.*;
-
-/**
- * 鏍囪涓篍xcel瀵煎叆鍒�
- * @author dm
- * @since 2025/03/31 16:44
- */
-@Inherited
-@Target(ElementType.FIELD)
-@Retention(RetentionPolicy.RUNTIME)
-public @interface ExcelImportColumn {
-
- /**
- * 鎺掑簭锛屽�艰秺灏忚秺闈犲墠锛�-1鎸夊瓧娈靛弽灏勯『搴忔帓搴�
- */
- int index() default -1;
-
- /**
- * 鏁版嵁杞崲鍣�
- */
- Class<? extends ExcelDataConverterAdapter> converter() default ExcelDataConverterAdapter.class;
-
- /**
- * 鑷畾涔夋暟鎹鐞嗗櫒鍙傛暟
- */
- String[] args() default {};
-
-}
diff --git a/server/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java b/server/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java
index ea4ee4d..f8f067c 100644
--- a/server/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java
+++ b/server/src/main/java/com/doumee/core/annotation/excel/ExcelImporter.java
@@ -1,212 +1,394 @@
package com.doumee.core.annotation.excel;
-import com.doumee.core.constants.ResponseStatus;
-import com.doumee.core.exception.BusinessException;
-import lombok.AllArgsConstructor;
-import lombok.Data;
import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.core.annotation.AnnotationConfigurationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.multipart.MultipartFile;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
+import java.util.*;
/**
- * Excel瀵煎叆瀹炵幇
- * @author dm
- * @since 2025/03/31 16:44
+ * 瀵煎叆Excel鏂囦欢锛堟敮鎸佲�淴LS鈥濆拰鈥淴LSX鈥濇牸寮忥級
*/
-public class ExcelImporter<T> {
+public class ExcelImporter {
- private Class<T> modelClass;
-
- private ExcelImporter () {}
+ private static Logger log = LoggerFactory.getLogger(ExcelImporter.class);
/**
- * 鏋勯�燛xcelImporter瀵硅薄
- *
- * @param modelClass 瀹炰綋Class瀵硅薄
- * @return ExcelImporter瀹炰緥
+ * 宸ヤ綔钖勫璞�
*/
- public static <T> ExcelImporter<T> build(Class<T> modelClass) {
- ExcelImporter<T> excelImporter = new ExcelImporter<>();
- excelImporter.modelClass = modelClass;
- return excelImporter;
+ private Workbook wb;
+
+ /**
+ * 宸ヤ綔琛ㄥ璞�
+ */
+ private Sheet sheet;
+
+ /**
+ * 鏍囬琛屽彿
+ */
+ private int headerNum;
+ /**
+ * 鏍囬琛屽彿
+ */
+ private CellType changeType;
+
+ /**
+ * 鏋勯�犲嚱鏁�
+ * @param--path 瀵煎叆鏂囦欢锛岃鍙栫涓�涓伐浣滆〃
+ * @param headerNum 鏍囬琛屽彿锛屾暟鎹鍙�=鏍囬琛屽彿+1
+ * @throws InvalidFormatException
+ * @throws IOException
+ */
+ public ExcelImporter(String fileName, int headerNum)
+ throws InvalidFormatException, IOException {
+ this(new File(fileName), headerNum);
}
/**
- * 瀵煎叆鏁版嵁
- *
- * @param is 杈撳叆娴�
- * @param callback 鍥炶皟
- * @param sync 鏄惁鍚屾宸插瓨鍦ㄦ暟鎹�
- * @return 瀵煎叆鎴愬姛鏁�
+ * 鏋勯�犲嚱鏁�
+ * @param--path 瀵煎叆鏂囦欢瀵硅薄锛岃鍙栫涓�涓伐浣滆〃
+ * @param headerNum 鏍囬琛屽彿锛屾暟鎹鍙�=鏍囬琛屽彿+1 (eg: 1)
+ * @throws InvalidFormatException
+ * @throws IOException
*/
- public int importData (InputStream is, ExcelImportCallback<T> callback, boolean sync) {
- return this.importData(is, 0, callback, sync);
+ public ExcelImporter(File file, int headerNum)
+ throws InvalidFormatException, IOException {
+ this(file, headerNum, 0);
}
/**
- * 瀵煎叆鏁版嵁
- *
- * @param is 杈撳叆娴�
- * @param sheetIndex sheet鍧愭爣
- * @param callback 鍥炶皟
- * @param sync 鏄惁鍚屾宸插瓨鍦ㄦ暟鎹�
- * @return 瀵煎叆鎴愬姛鏁�
+ * 鏋勯�犲嚱鏁�
+ * @param--path 瀵煎叆鏂囦欢
+ * @param headerNum 鏍囬琛屽彿锛屾暟鎹鍙�=鏍囬琛屽彿+1
+ * @param sheetIndex 宸ヤ綔琛ㄧ紪鍙�
+ * @throws InvalidFormatException
+ * @throws IOException
*/
- public int importData (InputStream is, int sheetIndex, ExcelImportCallback<T> callback, boolean sync) {
- try {
- Workbook workbook = new XSSFWorkbook(is);
- Sheet sheet = workbook.getSheetAt(sheetIndex);
- // 鑾峰彇鍒椾俊鎭�
- List<ColumnInfo> columns = this.getColumns();
- List<T> data = new ArrayList<>();
- // 寰幆鑾峰彇excel琛岃褰�
- for (int i = 1; i <= sheet.getLastRowNum(); i++) {
- // 鏋勯�犳暟鎹疄渚嬪璞�
- T instance = modelClass.newInstance();
- Row row = sheet.getRow(i);
- // 寰幆鑾峰彇鍗曞厓鏍间俊鎭�
- for (int columnIndex = 0; columnIndex < columns.size(); columnIndex++) {
- Cell cell = row.getCell(columnIndex);
- if (cell == null) {
- continue;
- }
- if (StringUtils.isBlank(cell.toString())) {
- continue;
- }
- ColumnInfo columnInfo = columns.get(columnIndex);
- if (columnInfo == null) {
- break;
- }
- // 鍐欏叆瀵硅薄灞炴��
- columnInfo.getField().setAccessible(Boolean.TRUE);
- columnInfo.getField().set(instance, this.getCellValue(cell, columnInfo));
- columnInfo.getField().setAccessible(Boolean.FALSE);
- }
- // 濡傛灉鏄┖琛屽垯缁撴潫琛岃鍙�
- if (this.isEmptyRow(instance)) {
- break;
- }
- data.add(instance);
- }
- // 鎵ц鍥炶皟鍑芥暟
- return callback.callback(data, sync);
- } catch (Exception e) {
- throw new BusinessException(ResponseStatus.IMPORT_EXCEL_ERROR, e);
- } finally {
- if (is != null) {
- try {
- is.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
+ public ExcelImporter(String fileName, int headerNum, int sheetIndex)
+ throws InvalidFormatException, IOException {
+ this(new File(fileName), headerNum, sheetIndex);
+ }
+
+ /**
+ * 鏋勯�犲嚱鏁�
+ * @param--path 瀵煎叆鏂囦欢瀵硅薄
+ * @param headerNum 鏍囬琛屽彿锛屾暟鎹鍙�=鏍囬琛屽彿+1
+ * @param sheetIndex 宸ヤ綔琛ㄧ紪鍙�
+ * @throws InvalidFormatException
+ * @throws IOException
+ */
+ public ExcelImporter(File file, int headerNum, int sheetIndex)
+ throws InvalidFormatException, IOException {
+ this(file.getName(), new FileInputStream(file), headerNum, sheetIndex);
+ }
+
+ /**
+ * 鏋勯�犲嚱鏁� (閲嶈)
+ * @param--file 瀵煎叆鏂囦欢瀵硅薄
+ * @param headerNum 鏍囬琛屽彿锛屾暟鎹鍙�=鏍囬琛屽彿+1
+ * @param sheetIndex 宸ヤ綔琛ㄧ紪鍙�
+ * @throws InvalidFormatException
+ * @throws IOException
+ */
+ public ExcelImporter(MultipartFile multipartFile, int headerNum, int sheetIndex)
+ throws InvalidFormatException, IOException {
+ this(multipartFile.getOriginalFilename(), multipartFile.getInputStream(), headerNum, sheetIndex);
+ }
+ /**
+ * 鏋勯�犲嚱鏁� (閲嶈)
+ * @param--file 瀵煎叆鏂囦欢瀵硅薄
+ * @param headerNum 鏍囬琛屽彿锛屾暟鎹鍙�=鏍囬琛屽彿+1
+ * @param sheetIndex 宸ヤ綔琛ㄧ紪鍙�
+ * @throws InvalidFormatException
+ * @throws IOException
+ */
+ public ExcelImporter(MultipartFile multipartFile, int headerNum, int sheetIndex, CellType cellType)
+ throws InvalidFormatException, IOException {
+ this(multipartFile.getOriginalFilename(), multipartFile.getInputStream(), headerNum, sheetIndex,cellType);
+ }
+
+ /**
+ * 鏋勯�犲嚱鏁� 锛堬級
+ * @param--path 瀵煎叆鏂囦欢瀵硅薄
+ * @param headerNum 鏍囬琛屽彿锛屾暟鎹鍙�=鏍囬琛屽彿+1
+ * @param sheetIndex 宸ヤ綔琛ㄧ紪鍙� (eg: 0)
+ * @throws InvalidFormatException
+ * @throws IOException
+ */
+ public ExcelImporter(String fileName, InputStream in, int headerNum, int sheetIndex)
+ throws InvalidFormatException, IOException {
+ if (StringUtils.isBlank(fileName)){
+ throw new RuntimeException("瀵煎叆鏂囨。涓虹┖!");
+ }else if(fileName.toLowerCase().endsWith("xls")){
+ this.wb = new HSSFWorkbook(in);
+ }else if(fileName.toLowerCase().endsWith("xlsx")){
+ this.wb = new XSSFWorkbook(in);
+ }else{
+ throw new RuntimeException("鏂囨。鏍煎紡涓嶆纭�!");
}
+ if (this.wb.getNumberOfSheets()<sheetIndex){
+ throw new RuntimeException("鏂囨。涓病鏈夊伐浣滆〃!");
+ }
+ this.sheet = this.wb.getSheetAt(sheetIndex);
+ this.headerNum = headerNum;
+ log.debug("Initialize success.");
+ }
+ public ExcelImporter(String fileName, InputStream in, int headerNum, int sheetIndex,CellType cellType)
+ throws InvalidFormatException, IOException {
+ if (StringUtils.isBlank(fileName)){
+ throw new RuntimeException("瀵煎叆鏂囨。涓虹┖!");
+ }else if(fileName.toLowerCase().endsWith("xls")){
+ this.wb = new HSSFWorkbook(in);
+ }else if(fileName.toLowerCase().endsWith("xlsx")){
+ this.wb = new XSSFWorkbook(in);
+ }else{
+ throw new RuntimeException("鏂囨。鏍煎紡涓嶆纭�!");
+ }
+ if (this.wb.getNumberOfSheets()<sheetIndex){
+ throw new RuntimeException("鏂囨。涓病鏈夊伐浣滆〃!");
+ }
+ this.sheet = this.wb.getSheetAt(sheetIndex);
+ this.headerNum = headerNum;
+ this.changeType = cellType;
+ log.debug("Initialize success.");
+ }
+
+
+
+ /**
+ * 鑾峰彇琛屽璞�
+ * @param rownum
+ * @return
+ */
+ public Row getRow(int rownum){
+ return this.sheet.getRow(rownum);
}
/**
- * 鑾峰彇Cell鍊�
- *
- * @param cell 鍗曞厓鏍煎璞�
- * @param columnInfo 鍒楅厤缃�
+ * 鑾峰彇鏁版嵁琛屽彿
+ * @return
+ */
+ public int getDataRowNum(){
+ return headerNum+1;
+ }
+
+ /**
+ * 鑾峰彇鏈�鍚庝竴涓暟鎹鍙�
+ * @return
+ */
+ public int getLastDataRowNum(){
+ return this.sheet.getLastRowNum()+headerNum;
+ }
+
+ /**
+ * 鑾峰彇鏈�鍚庝竴涓垪鍙�
+ * @return
+ */
+ public int getLastCellNum(){
+ return this.getRow(headerNum).getLastCellNum();
+ }
+
+ /**
+ * 鑾峰彇鍗曞厓鏍煎��
+ * @param row 鑾峰彇鐨勮
+ * @param column 鑾峰彇鍗曞厓鏍煎垪鍙�
* @return 鍗曞厓鏍煎��
*/
- private Object getCellValue (Cell cell, ColumnInfo columnInfo) {
- CellType cellType = cell.getCellType();
- Type fieldType = columnInfo.getField().getGenericType();
- Object value = null;
- if (fieldType.getTypeName().equals("java.util.Date")) {
- value = cell.getDateCellValue();
- } else if (cellType.equals(CellType.NUMERIC)) {
- value = cell.getNumericCellValue();
- } else if (cellType.equals(CellType.STRING)) {
- value = cell.getStringCellValue();
- } else if (cellType.equals(CellType.BOOLEAN)) {
- value = cell.getBooleanCellValue();
- } else if (cellType.equals(CellType.BLANK)) {
- value = "";
- } else if (cellType.equals(CellType.ERROR)) {
- value = cell.getErrorCellValue();
- }
- // 璋冪敤杞崲鍣�
- if (!columnInfo.columnConfig.converter().equals(ExcelDataConverterAdapter.class)) {
- try {
- Object instance = columnInfo.columnConfig.converter().newInstance();
- Method convertMethod = columnInfo.columnConfig.converter().getMethod("convert", Object[].class);
- List<Object> args = new ArrayList<>();
- args.add(value);
- for (String arg : columnInfo.columnConfig.args()) {
- args.add(arg);
+ public Object getCellValue(Row row, int column){
+ Object val = "";
+ try{
+ Cell cell = row.getCell(column);
+ if (cell != null){
+ if (cell.getCellType() == CellType.NUMERIC){
+ cell.setCellType(CellType.STRING); // 纭繚鍗曞厓鏍肩被鍨嬩负瀛楃涓�
+ val = cell.getStringCellValue();
+ }else if (cell.getCellType() == CellType.STRING){
+ val = cell.getStringCellValue();
+ }else if (cell.getCellType() == CellType.FORMULA){
+ val = cell.getCellFormula();
+ }else if (cell.getCellType() == CellType.BOOLEAN){
+ val = cell.getBooleanCellValue();
+ }else if (cell.getCellType() == CellType.ERROR){
+ val = cell.getErrorCellValue();
}
- value = convertMethod.invoke(instance, new Object[]{args.toArray()});
- } catch (Exception e) {
- throw new IllegalStateException("EVA: can not convert data by " + columnInfo.columnConfig.converter(), e);
}
+ }catch (Exception e) {
+ return val;
}
- return value;
+ return val;
}
/**
- * 鑾峰彇鍒楅泦鍚�
+ * 鑾峰彇瀵煎叆鏁版嵁鍒楄〃
+ * @param cls 瀵煎叆瀵硅薄绫诲瀷
+ * @param groups 瀵煎叆鍒嗙粍 鍙负绌�
*/
- private List<ColumnInfo> getColumns () {
- Map<Integer, ColumnInfo> sortedFields = new TreeMap<>();
- Field[] fields = modelClass.getDeclaredFields();
- int index = 0;
- for (Field field : fields) {
- ExcelImportColumn excelColumn = field.getAnnotation(ExcelImportColumn.class);
- if (excelColumn == null) {
+ public <E> List<E> getDataList(Class<E> cls, int... groups) throws InstantiationException, IllegalAccessException{
+ List<Object[]> annotationList = new ArrayList<>();
+ // Get annotation field
+ Field[] fs = cls.getDeclaredFields();
+ for (Field f : fs){
+ ExcelColumn ef = f.getAnnotation(ExcelColumn.class);
+ if (ef != null && (ef.type()==0 || ef.type()==2)){
+ if (groups!=null && groups.length>0){
+ boolean inGroup = false;
+ for (int g : groups){
+ if (inGroup){
+ break;
+ }
+ for (int efg : ef.groups()){
+ if (g == efg){
+ inGroup = true;
+ annotationList.add(new Object[]{ef, f});
+ break;
+ }
+ }
+ }
+ }else{
+ annotationList.add(new Object[]{ef, f});
+ }
+ }
+ }
+ // Get annotation method
+ Method[] ms = cls.getDeclaredMethods();
+ for (Method m : ms){
+ ExcelColumn ef = m.getAnnotation(ExcelColumn.class);
+ if (ef != null && (ef.type()==0 || ef.type()==2)){
+ if (groups!=null && groups.length>0){
+ boolean inGroup = false;
+ for (int g : groups){
+ if (inGroup){
+ break;
+ }
+ for (int efg : ef.groups()){
+ if (g == efg){
+ inGroup = true;
+ annotationList.add(new Object[]{ef, m});
+ break;
+ }
+ }
+ }
+ }else{
+ annotationList.add(new Object[]{ef, m});
+ }
+ }
+ }
+ // Field sorting
+ Collections.sort(annotationList, (o1, o2) -> {
+ int index1 =((ExcelColumn)o1[0]).index(), index2=((ExcelColumn)o2[0]).index();
+ if(index1 == -1){
+ index1 = annotationList.size()+99999;
+ }
+ if(index2 == -1){
+ index2 = annotationList.size()+99999;
+ }
+ return new Integer(index1).compareTo(new Integer(index2));
+ });
+ //log.debug("Import column count:"+annotationList.size());
+ // Get excel data
+ List<E> dataList = new ArrayList<>();
+ System.out.println("璧峰鏁版嵁琛�:"+getDataRowNum());
+ System.out.println("缁撴潫鏁版嵁琛�:"+getLastDataRowNum());
+ for (int i = this.getDataRowNum(); i <= this.getLastDataRowNum(); i++) {
+ E e = (E)cls.newInstance();
+ int column = 0;
+ Row row = this.getRow(i);
+ if (Objects.isNull(row)){
continue;
}
- if (sortedFields.get(excelColumn.index()) != null) {
- throw new AnnotationConfigurationException("EVA: Excel column contains the same index.");
+ StringBuilder sb = new StringBuilder();
+ for (Object[] os : annotationList){
+ Object val = this.getCellValue(row, column++);
+ if (val != null){
+ ExcelColumn ef = (ExcelColumn)os[0];
+ // Get param type and type cast
+ Class<?> valType = Class.class;
+ if (os[1] instanceof Field){
+ valType = ((Field)os[1]).getType();
+ }else if(os[1] instanceof Method){
+ Method method = ((Method)os[1]);
+ if ("get".equals(method.getName().substring(0, 3))){
+ valType = method.getReturnType();
+ }else if("set".equals(method.getName().substring(0, 3))){
+ valType = ((Method)os[1]).getParameterTypes()[0];
+ }
+ }
+ //log.debug("Import value type: ["+i+","+column+"] " + valType);
+ try {
+ if (valType == String.class){
+ String s = String.valueOf(val.toString());
+ if(StringUtils.endsWith(s, ".0")){
+ val = StringUtils.substringBefore(s, ".0");
+ }else{
+ val = String.valueOf(val.toString()).trim();
+ }
+ }
+ else if (valType == Integer.class){
+ val = Double.valueOf(val.toString()).intValue();
+ }else if (valType == Long.class){
+ val = Double.valueOf(val.toString()).longValue();
+ }else if (valType == Double.class){
+ val = Double.valueOf(val.toString());
+ }else if (valType == Float.class){
+ val = Float.valueOf(val.toString());
+ }else if (valType == Date.class){
+ val = DateUtil.getJavaDate((Double)val);
+ }else{
+ if (ef.fieldType() != Class.class){
+ val = ef.fieldType().getMethod("getValue", String.class).invoke(null, val.toString());
+ }else{
+ val = Class.forName(this.getClass().getName().replaceAll(this.getClass().getSimpleName(),
+ "fieldtype."+valType.getSimpleName()+"Type")).getMethod("getValue", String.class).invoke(null, val.toString());
+ }
+ }
+ } catch (Exception ex) {
+ log.info("Get cell value ["+i+","+column+"] error: " + ex.toString());
+ val = null;
+ }
+ // set entity value
+ if (os[1] instanceof Field){
+ Reflections.invokeSetter(e, ((Field)os[1]).getName(), val);
+ }else if (os[1] instanceof Method){
+ String mthodName = ((Method)os[1]).getName();
+ if ("get".equals(mthodName.substring(0, 3))){
+ mthodName = "set"+StringUtils.substringAfter(mthodName, "get");
+ }
+ Reflections.invokeMethod(e, mthodName, new Class[] {valType}, new Object[] {val});
+ }
+ }
+ sb.append(val+", ");
}
- sortedFields.put(excelColumn.index() == -1 ? index : excelColumn.index(), new ColumnInfo(excelColumn, field));
- index++;
+ dataList.add(e);
+ log.debug("Read success: ["+i+"] "+sb.toString());
}
- return new ArrayList<>(sortedFields.values());
+ return dataList;
}
/**
- * 鍒ゆ柇鏄惁涓虹┖琛�
- *
- * @param row 琛屽璞�
- * @return Boolean
+ * 鍏抽棴娴� 娓呯悊涓存椂鏂囦欢
*/
- private boolean isEmptyRow(Object row) throws IllegalAccessException{
- Field[] fields = row.getClass().getDeclaredFields();
- for (Field field : fields) {
- field.setAccessible(Boolean.TRUE);
- if (field.get(row) != null) {
- field.setAccessible(Boolean.FALSE);
- return Boolean.FALSE;
+ public void dispose(){
+ try {
+ if(wb!=null){
+ wb.close();
}
- field.setAccessible(Boolean.FALSE);
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new RuntimeException(e);
}
- return Boolean.TRUE;
+
}
- /**
- * 鍒椾俊鎭�
- */
- @Data
- @AllArgsConstructor
- private static class ColumnInfo {
- // 鍒楅厤缃�
- private ExcelImportColumn columnConfig;
-
- // 瀛楁淇℃伅
- private Field field;
- }
-}
+}
\ No newline at end of file
diff --git a/server/src/main/java/com/doumee/core/annotation/excel/Reflections.java b/server/src/main/java/com/doumee/core/annotation/excel/Reflections.java
new file mode 100644
index 0000000..044dc97
--- /dev/null
+++ b/server/src/main/java/com/doumee/core/annotation/excel/Reflections.java
@@ -0,0 +1,294 @@
+package com.doumee.core.annotation.excel;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.Validate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.util.Assert;
+
+import java.lang.reflect.*;
+
+/**
+ * 鍙嶅皠宸ュ叿绫�.
+ * 鎻愪緵璋冪敤getter/setter鏂规硶, 璁块棶绉佹湁鍙橀噺, 璋冪敤绉佹湁鏂规硶, 鑾峰彇娉涘瀷绫诲瀷Class, 琚獳OP杩囩殑鐪熷疄绫荤瓑宸ュ叿鍑芥暟.
+ */
+@SuppressWarnings("rawtypes")
+public class Reflections {
+
+ private static final String SETTER_PREFIX = "set";
+
+ private static final String GETTER_PREFIX = "get";
+
+ private static final String CGLIB_CLASS_SEPARATOR = "$$";
+
+ private static Logger logger = LoggerFactory.getLogger(Reflections.class);
+
+ /**
+ * 璋冪敤Getter鏂规硶.
+ * 鏀寔澶氱骇锛屽锛氬璞″悕.瀵硅薄鍚�.鏂规硶
+ */
+ public static Object invokeGetter(Object obj, String propertyName) {
+ Object object = obj;
+ for (String name : StringUtils.split(propertyName, ".")){
+ String getterMethodName = GETTER_PREFIX + StringUtils.capitalize(name);
+ object = invokeMethod(object, getterMethodName, new Class[] {}, new Object[] {});
+ }
+ return object;
+ }
+
+ /**
+ * 璋冪敤Setter鏂规硶, 浠呭尮閰嶆柟娉曞悕銆�
+ * 鏀寔澶氱骇锛屽锛氬璞″悕.瀵硅薄鍚�.鏂规硶
+ */
+ public static void invokeSetter(Object obj, String propertyName, Object value) {
+ Object object = obj;
+ String[] names = StringUtils.split(propertyName, ".");
+ for (int i=0; i<names.length; i++){
+ if(i<names.length-1){
+ String getterMethodName = GETTER_PREFIX + StringUtils.capitalize(names[i]);
+ object = invokeMethod(object, getterMethodName, new Class[] {}, new Object[] {});
+ }else{
+ String setterMethodName = SETTER_PREFIX + StringUtils.capitalize(names[i]);
+ invokeMethodByName(object, setterMethodName, new Object[] { value });
+ }
+ }
+ }
+
+ /**
+ * 鐩存帴璇诲彇瀵硅薄灞炴�у��, 鏃犺private/protected淇グ绗�, 涓嶇粡杩噂etter鍑芥暟.
+ */
+ public static Object getFieldValue(final Object obj, final String fieldName) {
+ Field field = getAccessibleField(obj, fieldName);
+
+ if (field == null) {
+ throw new IllegalArgumentException("Could not find field [" + fieldName + "] on target [" + obj + "]");
+ }
+
+ Object result = null;
+ try {
+ result = field.get(obj);
+ } catch (IllegalAccessException e) {
+ logger.error("闈炴硶璁块棶鐨勫紓甯竰}", e.getMessage());
+ }
+ return result;
+ }
+
+ /**
+ * 鐩存帴璁剧疆瀵硅薄灞炴�у��, 鏃犺private/protected淇グ绗�, 涓嶇粡杩噑etter鍑芥暟.
+ */
+ public static void setFieldValue(final Object obj, final String fieldName, final Object value) {
+ Field field = getAccessibleField(obj, fieldName);
+
+ if (field == null) {
+ throw new IllegalArgumentException("Could not find field [" + fieldName + "] on target [" + obj + "]");
+ }
+
+ try {
+ field.set(obj, value);
+ } catch (IllegalAccessException e) {
+ logger.error("闈炴硶璁块棶鐨勫紓甯�:{}", e.getMessage());
+ }
+ }
+
+ /**
+ * 鐩存帴璋冪敤瀵硅薄鏂规硶, 鏃犺private/protected淇グ绗�.
+ * 鐢ㄤ簬涓�娆℃�ц皟鐢ㄧ殑鎯呭喌锛屽惁鍒欏簲浣跨敤getAccessibleMethod()鍑芥暟鑾峰緱Method鍚庡弽澶嶈皟鐢�.
+ * 鍚屾椂鍖归厤鏂规硶鍚�+鍙傛暟绫诲瀷锛�
+ */
+ public static Object invokeMethod(final Object obj, final String methodName, final Class<?>[] parameterTypes,
+ final Object[] args) {
+ Method method = getAccessibleMethod(obj, methodName, parameterTypes);
+ if (method == null) {
+ throw new IllegalArgumentException("Could not find method [" + methodName + "] on target [" + obj + "]");
+ }
+
+ try {
+ return method.invoke(obj, args);
+ } catch (Exception e) {
+ throw convertReflectionExceptionToUnchecked(e);
+ }
+ }
+
+ /**
+ * 鐩存帴璋冪敤瀵硅薄鏂规硶, 鏃犺private/protected淇グ绗︼紝
+ * 鐢ㄤ簬涓�娆℃�ц皟鐢ㄧ殑鎯呭喌锛屽惁鍒欏簲浣跨敤getAccessibleMethodByName()鍑芥暟鑾峰緱Method鍚庡弽澶嶈皟鐢�.
+ * 鍙尮閰嶅嚱鏁板悕锛屽鏋滄湁澶氫釜鍚屽悕鍑芥暟璋冪敤绗竴涓��
+ */
+ public static Object invokeMethodByName(final Object obj, final String methodName, final Object[] args) {
+ Method method = getAccessibleMethodByName(obj, methodName);
+ if (method == null) {
+ throw new IllegalArgumentException("Could not find method [" + methodName + "] on target [" + obj + "]");
+ }
+
+ try {
+ return method.invoke(obj, args);
+ } catch (Exception e) {
+ throw convertReflectionExceptionToUnchecked(e);
+ }
+ }
+
+ /**
+ * 寰幆鍚戜笂杞瀷, 鑾峰彇瀵硅薄鐨凞eclaredField, 骞跺己鍒惰缃负鍙闂�.
+ *
+ * 濡傚悜涓婅浆鍨嬪埌Object浠嶆棤娉曟壘鍒�, 杩斿洖null.
+ */
+ public static Field getAccessibleField(final Object obj, final String fieldName) {
+ Validate.notNull(obj, "object can't be null");
+ Validate.notBlank(fieldName, "fieldName can't be blank");
+ for (Class<?> superClass = obj.getClass(); superClass != Object.class; superClass = superClass.getSuperclass()) {
+ try {
+ Field field = superClass.getDeclaredField(fieldName);
+ makeAccessible(field);
+ return field;
+ } catch (NoSuchFieldException e) {//NOSONAR
+ // Field涓嶅湪褰撳墠绫诲畾涔�,缁х画鍚戜笂杞瀷
+ continue;// new add
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 寰幆鍚戜笂杞瀷, 鑾峰彇瀵硅薄鐨凞eclaredMethod,骞跺己鍒惰缃负鍙闂�.
+ * 濡傚悜涓婅浆鍨嬪埌Object浠嶆棤娉曟壘鍒�, 杩斿洖null.
+ * 鍖归厤鍑芥暟鍚�+鍙傛暟绫诲瀷銆�
+ *
+ * 鐢ㄤ簬鏂规硶闇�瑕佽澶氭璋冪敤鐨勬儏鍐�. 鍏堜娇鐢ㄦ湰鍑芥暟鍏堝彇寰桵ethod,鐒跺悗璋冪敤Method.invoke(Object obj, Object... args)
+ */
+ public static Method getAccessibleMethod(final Object obj, final String methodName,
+ final Class<?>... parameterTypes) {
+ Validate.notNull(obj, "object can't be null");
+ Validate.notBlank(methodName, "methodName can't be blank");
+
+ for (Class<?> searchType = obj.getClass(); searchType != Object.class; searchType = searchType.getSuperclass()) {
+ try {
+ Method method = searchType.getDeclaredMethod(methodName, parameterTypes);
+ makeAccessible(method);
+ return method;
+ } catch (NoSuchMethodException e) {
+ // Method涓嶅湪褰撳墠绫诲畾涔�,缁х画鍚戜笂杞瀷
+ continue;// new add
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 寰幆鍚戜笂杞瀷, 鑾峰彇瀵硅薄鐨凞eclaredMethod,骞跺己鍒惰缃负鍙闂�.
+ * 濡傚悜涓婅浆鍨嬪埌Object浠嶆棤娉曟壘鍒�, 杩斿洖null.
+ * 鍙尮閰嶅嚱鏁板悕銆�
+ *
+ * 鐢ㄤ簬鏂规硶闇�瑕佽澶氭璋冪敤鐨勬儏鍐�. 鍏堜娇鐢ㄦ湰鍑芥暟鍏堝彇寰桵ethod,鐒跺悗璋冪敤Method.invoke(Object obj, Object... args)
+ */
+ public static Method getAccessibleMethodByName(final Object obj, final String methodName) {
+ Validate.notNull(obj, "object can't be null");
+ Validate.notBlank(methodName, "methodName can't be blank");
+
+ for (Class<?> searchType = obj.getClass(); searchType != Object.class; searchType = searchType.getSuperclass()) {
+ Method[] methods = searchType.getDeclaredMethods();
+ for (Method method : methods) {
+ if (method.getName().equals(methodName)) {
+ makeAccessible(method);
+ return method;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 鏀瑰彉private/protected鐨勬柟娉曚负public锛屽敖閲忎笉璋冪敤瀹為檯鏀瑰姩鐨勮鍙ワ紝閬垮厤JDK鐨凷ecurityManager鎶辨�ㄣ��
+ */
+ public static void makeAccessible(Method method) {
+ if ((!Modifier.isPublic(method.getModifiers()) || !Modifier.isPublic(method.getDeclaringClass().getModifiers()))
+ && !method.isAccessible()) {
+ method.setAccessible(true);
+ }
+ }
+
+ /**
+ * 鏀瑰彉private/protected鐨勬垚鍛樺彉閲忎负public锛屽敖閲忎笉璋冪敤瀹為檯鏀瑰姩鐨勮鍙ワ紝閬垮厤JDK鐨凷ecurityManager鎶辨�ㄣ��
+ */
+ public static void makeAccessible(Field field) {
+ if ((!Modifier.isPublic(field.getModifiers()) || !Modifier.isPublic(field.getDeclaringClass().getModifiers()) || Modifier
+ .isFinal(field.getModifiers())) && !field.isAccessible()) {
+ field.setAccessible(true);
+ }
+ }
+
+ /**
+ * 閫氳繃鍙嶅皠, 鑾峰緱Class瀹氫箟涓0鏄庣殑娉涘瀷鍙傛暟鐨勭被鍨�, 娉ㄦ剰娉涘瀷蹇呴』瀹氫箟鍦ㄧ埗绫诲
+ * 濡傛棤娉曟壘鍒�, 杩斿洖Object.class.
+ * eg.
+ * public UserDao extends HibernateDao<User>
+ *
+ * @param clazz The class to introspect
+ * @return the first generic declaration, or Object.class if cannot be determined
+ */
+ @SuppressWarnings("unchecked")
+ public static <T> Class<T> getClassGenricType(final Class clazz) {
+ return getClassGenricType(clazz, 0);
+ }
+
+ /**
+ * 閫氳繃鍙嶅皠, 鑾峰緱Class瀹氫箟涓0鏄庣殑鐖剁被鐨勬硾鍨嬪弬鏁扮殑绫诲瀷.
+ * 濡傛棤娉曟壘鍒�, 杩斿洖Object.class.
+ *
+ * 濡俻ublic UserDao extends HibernateDao<User,Long>
+ *
+ * @param clazz clazz The class to introspect
+ * @param index the Index of the generic ddeclaration,start from 0.
+ * @return the index generic declaration, or Object.class if cannot be determined
+ */
+ public static Class getClassGenricType(final Class clazz, final int index) {
+
+ Type genType = clazz.getGenericSuperclass();
+
+ if (!(genType instanceof ParameterizedType)) {
+ logger.warn(clazz.getSimpleName() + "'s superclass not ParameterizedType");
+ return Object.class;
+ }
+
+ Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
+
+ if (index >= params.length || index < 0) {
+ logger.warn("Index: " + index + ", Size of " + clazz.getSimpleName() + "'s Parameterized Type: "
+ + params.length);
+ return Object.class;
+ }
+ if (!(params[index] instanceof Class)) {
+ logger.warn(clazz.getSimpleName() + " not set the actual class on superclass generic parameter");
+ return Object.class;
+ }
+
+ return (Class) params[index];
+ }
+
+ public static Class<?> getUserClass(Object instance) {
+ Assert.notNull(instance, "Instance must not be null");
+ Class clazz = instance.getClass();
+ if (clazz != null && clazz.getName().contains(CGLIB_CLASS_SEPARATOR)) {
+ Class<?> superClass = clazz.getSuperclass();
+ if (superClass != null && !Object.class.equals(superClass)) {
+ return superClass;
+ }
+ }
+ return clazz;
+
+ }
+
+ /**
+ * 灏嗗弽灏勬椂鐨刢hecked exception杞崲涓簎nchecked exception.
+ */
+ public static RuntimeException convertReflectionExceptionToUnchecked(Exception e) {
+ if (e instanceof IllegalAccessException || e instanceof IllegalArgumentException
+ || e instanceof NoSuchMethodException) {
+ return new IllegalArgumentException(e);
+ } else if (e instanceof InvocationTargetException) {
+ return new RuntimeException(((InvocationTargetException) e).getTargetException());
+ } else if (e instanceof RuntimeException) {
+ return (RuntimeException) e;
+ }
+ return new RuntimeException("Unexpected Checked Exception.", e);
+ }
+}
\ No newline at end of file
diff --git a/server/src/main/java/com/doumee/core/annotation/excel/converter/DoubleToStringConverter.java b/server/src/main/java/com/doumee/core/annotation/excel/converter/DoubleToStringConverter.java
deleted file mode 100644
index 107a9d0..0000000
--- a/server/src/main/java/com/doumee/core/annotation/excel/converter/DoubleToStringConverter.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.doumee.core.annotation.excel.converter;
-
-import com.doumee.core.annotation.excel.ExcelDataConverterAdapter;
-
-import java.math.BigDecimal;
-
-/**
- * 灏忔暟杞瓧绗︿覆
- * @author dm
- * @since 2025/03/31 16:44
- */
-public class DoubleToStringConverter implements ExcelDataConverterAdapter {
-
- /**
- * 杞崲
- *
- * @param args 鍙傛暟闆嗗悎
- * - args[0] 鍗曞厓鏍兼暟鎹�
- * - args[1] 淇濈暀绮惧害浣嶆暟
- */
- @Override
- public Object convert(Object... args) {
- Object value = args[0];
- if (value == null) {
- return null;
- }
- BigDecimal decimalValue = new BigDecimal(String.valueOf((value)));
- // 绮惧害澶勭悊
- if (args.length > 1) {
- decimalValue = decimalValue.setScale(Integer.valueOf(args[1].toString()), BigDecimal.ROUND_HALF_UP);
- }
- decimalValue.toString();
- return decimalValue.toPlainString();
- }
-}
diff --git a/server/src/main/java/com/doumee/core/annotation/excel/converter/IntegerToStringConverter.java b/server/src/main/java/com/doumee/core/annotation/excel/converter/IntegerToStringConverter.java
deleted file mode 100644
index ef0e27b..0000000
--- a/server/src/main/java/com/doumee/core/annotation/excel/converter/IntegerToStringConverter.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.doumee.core.annotation.excel.converter;
-
-import com.doumee.core.annotation.excel.ExcelDataConverterAdapter;
-
-/**
- * 鏁存暟杞瓧绗︿覆
- * @author dm
- * @since 2025/03/31 16:44
- */
-public class IntegerToStringConverter implements ExcelDataConverterAdapter {
-
- /**
- * 杞崲
- *
- * @param args 鍙傛暟闆嗗悎
- * - args[0] 鍗曞厓鏍兼暟鎹�
- */
- @Override
- public Object convert(Object... args) {
- Object value = args[0];
- if (value == null) {
- return null;
- }
- if (value instanceof String) {
- return value;
- }
- return "" + ((Double)value).longValue();
- }
-}
diff --git a/server/src/main/java/com/doumee/dao/business/model/Category.java b/server/src/main/java/com/doumee/dao/business/model/Category.java
index 363598c..9f9f611 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Category.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Category.java
@@ -1,14 +1,13 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
-import com.doumee.core.annotation.excel.ExcelExportColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
+
import java.util.Date;
import java.util.List;
@@ -24,65 +23,50 @@
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "涓婚敭", example = "1")
- @ExcelExportColumn(name="涓婚敭")
private Integer id;
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鍒涘缓浜虹紪鐮�")
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelExportColumn(name="鍒涘缓鏃堕棿")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鏇存柊浜虹紪鐮�")
private Integer editor;
@ApiModelProperty(value = "鏇存柊鏃堕棿")
- @ExcelExportColumn(name="鏇存柊鏃堕棿")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
@ApiModelProperty(value = "鍚嶇О")
- @ExcelExportColumn(name="鍚嶇О")
private String name;
@ApiModelProperty(value = "澶囨敞")
- @ExcelExportColumn(name="澶囨敞")
private String remark;
@ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤", example = "1")
- @ExcelExportColumn(name="鐘舵�� 0鍚敤 1绂佺敤")
private Integer status;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
- @ExcelExportColumn(name="鎺掑簭鐮�")
private Integer sortnum;
@ApiModelProperty(value = "鍥炬爣")
- @ExcelExportColumn(name="鍥炬爣")
private String imgurl;
@ApiModelProperty(value = "绫诲瀷 0SHE浼ゅ绫诲瀷 1璺岀粖婊戜激瀹崇被鍨� 2璺岀粖婊戝彂鐢熷湴鐐� 3DCA浣嶇疆 4DCA涓婚 5SHE椋庨櫓鍦扮偣 6DCA瑙傚療椤�", example = "1")
- @ExcelExportColumn(name="绫诲瀷 0SHE浼ゅ绫诲瀷 1璺岀粖婊戜激瀹崇被鍨� 2璺岀粖婊戝彂鐢熷湴鐐� 3DCA浣嶇疆 4DCA涓婚 5SHE椋庨櫓鍦扮偣 6DCA瑙傚療椤�")
private Integer type;
@ApiModelProperty(value = "鐖剁骇缂栫爜锛堣嚜鍏宠仈锛�", example = "1")
- @ExcelExportColumn(name="鐖剁骇缂栫爜锛堣嚜鍏宠仈锛�")
private Integer parentId;
@ApiModelProperty(value = "鍚嶇О璺緞")
- @ExcelExportColumn(name="鍚嶇О璺緞")
private String namePath;
@ApiModelProperty(value = "缂栫爜璺緞")
- @ExcelExportColumn(name="缂栫爜璺緞")
private String idPath;
@ApiModelProperty(value = "涓婄骇鍚嶇О")
@TableField(exist = false)
diff --git a/server/src/main/java/com/doumee/dao/business/model/Company.java b/server/src/main/java/com/doumee/dao/business/model/Company.java
index 0eb4d26..f5be827 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Company.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Company.java
@@ -1,14 +1,13 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
-import com.doumee.core.annotation.excel.ExcelExportColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
+
import java.util.Date;
import java.util.List;
@@ -24,76 +23,58 @@
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "涓婚敭", example = "1")
- @ExcelExportColumn(name="涓婚敭")
private Integer id;
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鍒涘缓浜虹紪鐮�")
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelExportColumn(name="鍒涘缓鏃堕棿")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鏇存柊浜虹紪鐮�")
private Integer editor;
@ApiModelProperty(value = "鏇存柊鏃堕棿")
- @ExcelExportColumn(name="鏇存柊鏃堕棿")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
@ApiModelProperty(value = "鍚嶇О")
- @ExcelExportColumn(name="鍚嶇О")
private String name;
@ApiModelProperty(value = "澶囨敞")
- @ExcelExportColumn(name="澶囨敞")
private String remark;
@ApiModelProperty(value = "鐘舵�� 0姝e父 1绂佺敤", example = "1")
- @ExcelExportColumn(name="鐘舵�� 0姝e父 1绂佺敤")
private Integer status;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
- @ExcelExportColumn(name="鎺掑簭鐮�")
private Integer sortnum;
@ApiModelProperty(value = "澶村儚")
- @ExcelExportColumn(name="澶村儚")
private String imgurl;
@ApiModelProperty(value = "绫诲瀷", example = "1")
- @ExcelExportColumn(name="绫诲瀷")
private Integer type;
@ApiModelProperty(value = "鎵�灞炵埗绾х紪鐮侊紙鍏宠仈company)", example = "1")
- @ExcelExportColumn(name="鎵�灞炵埗绾х紪鐮侊紙鍏宠仈company)")
private Integer parentId;
@ApiModelProperty(value = "缂栫爜")
- @ExcelExportColumn(name="缂栫爜")
private String code;
@ApiModelProperty(value = "浼佸井鏍囪瘑")
- @ExcelExportColumn(name="浼佸井鏍囪瘑")
private String qwId;
@ApiModelProperty(value = "鍚嶇О璺緞")
- @ExcelExportColumn(name="鍚嶇О璺緞")
private String namePath;
@ApiModelProperty(value = "缂栫爜璺緞")
- @ExcelExportColumn(name="缂栫爜璺緞")
private String idPath;
@ApiModelProperty(value = "浼佷笟寰俊鎵�灞炵埗绾х紪鐮侊紙鍏宠仈company)", example = "1")
- @ExcelExportColumn(name="浼佷笟寰俊鎵�灞炵埗绾х紪鐮侊紙鍏宠仈company)")
private String qwParentId;
diff --git a/server/src/main/java/com/doumee/dao/business/model/CompanyMember.java b/server/src/main/java/com/doumee/dao/business/model/CompanyMember.java
index dae2886..8df1158 100644
--- a/server/src/main/java/com/doumee/dao/business/model/CompanyMember.java
+++ b/server/src/main/java/com/doumee/dao/business/model/CompanyMember.java
@@ -1,13 +1,12 @@
package com.doumee.dao.business.model;
-import com.doumee.core.annotation.excel.ExcelExportColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
+
import java.util.Date;
/**
@@ -22,52 +21,40 @@
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "涓婚敭", example = "1")
- @ExcelExportColumn(name="涓婚敭")
private Integer id;
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鍒涘缓浜虹紪鐮�")
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelExportColumn(name="鍒涘缓鏃堕棿")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鏇存柊浜虹紪鐮�")
private Integer editor;
@ApiModelProperty(value = "鏇存柊鏃堕棿")
- @ExcelExportColumn(name="鏇存柊鏃堕棿")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
@ApiModelProperty(value = "澶囨敞")
- @ExcelExportColumn(name="澶囨敞")
private String remark;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
- @ExcelExportColumn(name="鎺掑簭鐮�")
private Integer sortnum;
@ApiModelProperty(value = "鎵�灞炵粍缁囩紪鐮侊紙鍏宠仈company)", example = "1")
- @ExcelExportColumn(name="鎵�灞炵粍缁囩紪鐮侊紙鍏宠仈company)")
private Integer companyId;
@ApiModelProperty(value = "鎵�灞炵粍缁囩紪鐮佽矾寰� ", example = "1")
- @ExcelExportColumn(name="鎵�灞炵粍缁囩紪鐮佽矾寰� ")
private String companyIdPath;
@ApiModelProperty(value = "浜哄憳缂栫爜锛堝叧鑱攎ember", example = "1")
- @ExcelExportColumn(name="浜哄憳缂栫爜锛堝叧鑱攎ember")
private Integer memberId;
@ApiModelProperty(value = "鏄惁涓洪儴闂ㄨ礋璐d汉0-鍚︼紱1-鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁涓洪儴闂ㄨ礋璐d汉0-鍚︼紱1-鏄�")
private Integer isLeader;
}
diff --git a/server/src/main/java/com/doumee/dao/business/model/Managers.java b/server/src/main/java/com/doumee/dao/business/model/Managers.java
index 7c643bc..679154a 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Managers.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Managers.java
@@ -1,14 +1,13 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
-import com.doumee.core.annotation.excel.ExcelExportColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
+
import java.util.Date;
/**
@@ -23,53 +22,41 @@
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "涓婚敭", example = "1")
- @ExcelExportColumn(name="涓婚敭")
private Integer id;
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鍒涘缓浜虹紪鐮�")
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelExportColumn(name="鍒涘缓鏃堕棿")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鏇存柊浜虹紪鐮�")
private Integer editor;
@ApiModelProperty(value = "鏇存柊鏃堕棿")
- @ExcelExportColumn(name="鏇存柊鏃堕棿")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
@ApiModelProperty(value = "鎵�灞炲垎绫荤紪锛堝叧鑱攃ategory)")
- @ExcelExportColumn(name="鎵�灞炲垎绫荤紪锛堝叧鑱攃ategory)")
private String categoryId;
@ApiModelProperty(value = "澶囨敞")
- @ExcelExportColumn(name="澶囨敞")
private String remark;
@ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤", example = "1")
- @ExcelExportColumn(name="鐘舵�� 0鍚敤 1绂佺敤")
private Integer status;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
- @ExcelExportColumn(name="鎺掑簭鐮�")
private Integer sortnum;
@ApiModelProperty(value = "绫诲瀷 0SHE璐熻矗浜� 1DCA鎵嬪姩鎶勯�佷汉鍛� 2DCA鏉冮檺浜哄憳", example = "1")
- @ExcelExportColumn(name="绫诲瀷 0SHE璐熻矗浜� 1DCA鎵嬪姩鎶勯�佷汉鍛� 2DCA鏉冮檺浜哄憳")
private Integer type;
@ApiModelProperty(value = "浜哄憳缂栫爜锛堝叧鑱攎ember)", example = "1")
- @ExcelExportColumn(name="浜哄憳缂栫爜锛堝叧鑱攎ember)")
private Integer memberId;
@ApiModelProperty(value = "缁勭粐鍚嶇О")
@TableField(exist = false)
diff --git a/server/src/main/java/com/doumee/dao/business/model/Member.java b/server/src/main/java/com/doumee/dao/business/model/Member.java
index 0be966e..25026fc 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Member.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Member.java
@@ -1,14 +1,13 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
-import com.doumee.core.annotation.excel.ExcelExportColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
+
import java.util.Date;
import java.util.List;
@@ -24,89 +23,68 @@
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "涓婚敭", example = "1")
- @ExcelExportColumn(name="涓婚敭")
private Integer id;
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鍒涘缓浜虹紪鐮�")
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelExportColumn(name="鍒涘缓鏃堕棿")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鏇存柊浜虹紪鐮�")
private Integer editor;
@ApiModelProperty(value = "鏇存柊鏃堕棿")
- @ExcelExportColumn(name="鏇存柊鏃堕棿")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
@ApiModelProperty(value = "濮撳悕")
- @ExcelExportColumn(name="濮撳悕")
private String name;
@ApiModelProperty(value = "澶囨敞")
- @ExcelExportColumn(name="澶囨敞")
private String remark;
@ApiModelProperty(value = "鐘舵�� 0姝e父 1绂佺敤", example = "1")
- @ExcelExportColumn(name="鐘舵�� 0姝e父 1绂佺敤")
private Integer status;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
- @ExcelExportColumn(name="鎺掑簭鐮�")
private Integer sortnum;
@ApiModelProperty(value = "澶村儚")
- @ExcelExportColumn(name="澶村儚")
private String imgurl;
@ApiModelProperty(value = "绫诲瀷", example = "1")
- @ExcelExportColumn(name="绫诲瀷")
private Integer type;
@ApiModelProperty(value = "鎵�灞炵粍缁囩紪鐮侊紙鍏宠仈company)", example = "1")
- @ExcelExportColumn(name="鎵�灞炵粍缁囩紪鐮侊紙鍏宠仈company)")
private String companyId;
@ApiModelProperty(value = "鎵嬫満鍙�")
- @ExcelExportColumn(name="鎵嬫満鍙�")
private String phone;
@ApiModelProperty(value = "閭")
- @ExcelExportColumn(name="閭")
private String email;
@ApiModelProperty(value = "鎬у埆 0鐢� 1濂� 2浣嶇疆", example = "1")
- @ExcelExportColumn(name="鎬у埆 0鐢� 1濂� 2浣嶇疆")
private Integer sex;
@ApiModelProperty(value = "宸ュ彿")
- @ExcelExportColumn(name="宸ュ彿")
private String code;
@ApiModelProperty(value = "浼佸井鏍囪瘑")
- @ExcelExportColumn(name="浼佸井鏍囪瘑")
private String qwId;
@ApiModelProperty(value = "璇佷欢鍙�")
- @ExcelExportColumn(name="璇佷欢鍙�")
private String idcard;
@ApiModelProperty(value = "鏈�杩戜笂绾挎椂闂�")
- @ExcelExportColumn(name="鏈�杩戜笂绾挎椂闂�")
private Date lastLoginDate;
@ApiModelProperty(value = "鐧诲綍娆℃暟", example = "1")
- @ExcelExportColumn(name="鐧诲綍娆℃暟")
private Integer loginCount;
@ApiModelProperty(value = "鏄惁鍖呭惈涓嬬骇缁勭粐鐢ㄦ埛")
diff --git a/server/src/main/java/com/doumee/dao/business/model/Multifile.java b/server/src/main/java/com/doumee/dao/business/model/Multifile.java
index 5408a5c..c5e23a1 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Multifile.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Multifile.java
@@ -1,14 +1,11 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
-import com.doumee.core.annotation.excel.ExcelExportColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
+
import java.util.Date;
/**
@@ -22,63 +19,49 @@
public class Multifile {
@ApiModelProperty(value = "涓婚敭", example = "1")
- @ExcelExportColumn(name="涓婚敭")
private Integer id;
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鍒涘缓浜虹紪鐮�")
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelExportColumn(name="鍒涘缓鏃堕棿")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鏇存柊浜虹紪鐮�")
private Integer editor;
@ApiModelProperty(value = "鏇存柊鏃堕棿")
- @ExcelExportColumn(name="鏇存柊鏃堕棿")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
@ApiModelProperty(value = "鏂囦欢鍚�")
- @ExcelExportColumn(name="鏂囦欢鍚�")
private String name;
@ApiModelProperty(value = "澶囨敞")
- @ExcelExportColumn(name="澶囨敞")
private String info;
@ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜", example = "1")
- @ExcelExportColumn(name="鍏宠仈瀵硅薄缂栫爜")
private Integer objId;
@ApiModelProperty(value = "绫诲瀷0鍥剧墖 1瑙嗛 2鍏朵粬", example = "1")
- @ExcelExportColumn(name="绫诲瀷0鍥剧墖 1瑙嗛 2鍏朵粬")
private Integer type;
// @ApiModelProperty(value = "鍏宠仈瀵硅薄绫诲瀷 0SHE涓婃姤 1璺岀粖婊戜笂鎶� 2璺岀粖婊戝鐞� 3璺岀粖婊戝垎閰嶇墿涓氫富绠� 4璺岀粖婊戝垎閰嶅鐞嗕汉 5DCA椋庨櫓涓婃姤 6DCA椋庨櫓澶勭悊 7DCA宸ュ崟鍥剧墖", example = "1")
// @ExcelExportColumn(name="鍏宠仈瀵硅薄绫诲瀷 0SHE涓婃姤 1璺岀粖婊戜笂鎶� 2璺岀粖婊戝鐞� 3璺岀粖婊戝垎閰嶇墿涓氫富绠� 4璺岀粖婊戝垎閰嶅鐞嗕汉 5DCA椋庨櫓涓婃姤 6DCA椋庨櫓澶勭悊 7DCA宸ュ崟鍥剧墖")
@ApiModelProperty(value = "鍏宠仈瀵硅薄绫诲瀷 0宸ュ崟涓婃姤 1宸ュ崟澶勭悊 2宸ュ崟杞氦", example = "1")
- @ExcelExportColumn(name="鍏宠仈瀵硅薄绫诲瀷 0宸ュ崟涓婃姤 1宸ュ崟澶勭悊 2宸ュ崟杞氦")
private Integer objType;
@ApiModelProperty(value = "鏂囦欢鍦板潃")
- @ExcelExportColumn(name="鏂囦欢鍦板潃")
private String fileurl;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
- @ExcelExportColumn(name="鎺掑簭鐮�")
private Integer sortnum;
@ApiModelProperty(value = "浼佷笟缂栫爜(鍏宠仈company琛級", example = "1")
- @ExcelExportColumn(name="浼佷笟缂栫爜(鍏宠仈company琛級")
private Integer companyId;
@ApiModelProperty(value = "鏂囦欢鍦板潃")
diff --git a/server/src/main/java/com/doumee/dao/business/model/Notices.java b/server/src/main/java/com/doumee/dao/business/model/Notices.java
index 53e03b7..0eb7c3d 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Notices.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Notices.java
@@ -1,13 +1,12 @@
package com.doumee.dao.business.model;
-import com.doumee.core.annotation.excel.ExcelExportColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
+
import java.util.Date;
/**
@@ -22,108 +21,83 @@
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "涓婚敭", example = "1")
- @ExcelExportColumn(name="涓婚敭")
private Integer id;
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鍒涘缓浜虹紪鐮�")
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelExportColumn(name="鍒涘缓鏃堕棿")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鏇存柊浜虹紪鐮�")
private Integer editor;
@ApiModelProperty(value = "鏇存柊鏃堕棿")
- @ExcelExportColumn(name="鏇存柊鏃堕棿")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
@ApiModelProperty(value = "澶囨敞")
- @ExcelExportColumn(name="澶囨敞")
private String remark;
@ApiModelProperty(value = "鏍囬")
- @ExcelExportColumn(name="鏍囬")
private String title;
@ApiModelProperty(value = "绠�浠�")
- @ExcelExportColumn(name="绠�浠�")
private String info;
@ApiModelProperty(value = "鍐呭")
- @ExcelExportColumn(name="鍐呭")
private String content;
@ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜", example = "1")
- @ExcelExportColumn(name="鍏宠仈瀵硅薄缂栫爜")
private Integer objId;
@ApiModelProperty(value = "鍏宠仈瀵硅薄绫诲瀷 0宸ュ崟")
- @ExcelExportColumn(name="鍏宠仈瀵硅薄绫诲瀷 0宸ュ崟")
private String objType;
@ApiModelProperty(value = "鍏宠仈瀵硅薄鍚嶇О")
- @ExcelExportColumn(name="鍏宠仈瀵硅薄鍚嶇О")
private String objName;
@ApiModelProperty(value = "绫诲瀷 0宸ュ崟涓婃姤 1鎶勯�� 2杞氦")
private String type;
@ApiModelProperty(value = "鐢ㄦ埛浼佸井涓婚敭")
- @ExcelExportColumn(name="鍏宠仈鍙傛暟1")
private String param1;
@ApiModelProperty(value = "鍏宠仈鍙傛暟2")
- @ExcelExportColumn(name="鍏宠仈鍙傛暟2")
private String param2;
@ApiModelProperty(value = "鍏宠仈鍙傛暟3")
- @ExcelExportColumn(name="鍏宠仈鍙傛暟3")
private String param3;
@ApiModelProperty(value = "鍏宠仈鍙傛暟4")
- @ExcelExportColumn(name="鍏宠仈鍙傛暟4")
private String param4;
@ApiModelProperty(value = "鍏宠仈鍙傛暟5")
- @ExcelExportColumn(name="鍏宠仈鍙傛暟5")
private String param5;
@ApiModelProperty(value = "鍏宠仈鐢ㄦ埛濮撳悕")
- @ExcelExportColumn(name="鍏宠仈鐢ㄦ埛濮撳悕")
private String memberName;
@ApiModelProperty(value = "鍏宠仈鐢ㄦ埛浼佸井缂栫爜")
- @ExcelExportColumn(name="鍏宠仈鐢ㄦ埛浼佸井缂栫爜")
private String qwId;
@ApiModelProperty(value = "鍏宠仈鐢ㄦ埛缂栫爜锛堝叧鑱攎ember)", example = "1")
- @ExcelExportColumn(name="鍏宠仈鐢ㄦ埛缂栫爜锛堝叧鑱攎ember)")
private Integer memberId;
@ApiModelProperty(value = "鍏宠仈浼佷笟缁勭粐缂栫爜(鍏宠仈company锛�", example = "1")
- @ExcelExportColumn(name="鍏宠仈浼佷笟缁勭粐缂栫爜(鍏宠仈company锛�")
private Integer companyId;
@ApiModelProperty(value = "鐘舵�� 0姝e父 1宸插叧闂�", example = "1")
- @ExcelExportColumn(name="鐘舵�� 0姝e父 1宸插叧闂�")
private Integer status;
@ApiModelProperty(value = "鏄惁鎶勯�� 0涓嶆槸 1鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁鎶勯�� 0涓嶆槸 1鏄�")
private Integer sendacopy;
@ApiModelProperty(value = "鏄惁宸茶 0鏈 1宸茶", example = "1")
- @ExcelExportColumn(name="鏄惁宸茶 0鏈 1宸茶")
private Integer readed;
}
diff --git a/server/src/main/java/com/doumee/dao/business/model/Workorder.java b/server/src/main/java/com/doumee/dao/business/model/Workorder.java
index 404c62a..37d581d 100644
--- a/server/src/main/java/com/doumee/dao/business/model/Workorder.java
+++ b/server/src/main/java/com/doumee/dao/business/model/Workorder.java
@@ -1,7 +1,6 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
-import com.doumee.core.annotation.excel.ExcelExportColumn;
import com.doumee.dao.web.dto.DCANoProblemDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -25,179 +24,135 @@
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "涓婚敭", example = "1")
- @ExcelExportColumn(name="涓婚敭")
private Integer id;
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鍒涘缓浜虹紪鐮�")
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelExportColumn(name="鍒涘缓鏃堕棿")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鏇存柊浜虹紪鐮�")
private Integer editor;
@ApiModelProperty(value = "鏇存柊鏃堕棿")
- @ExcelExportColumn(name="鏇存柊鏃堕棿")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
@ApiModelProperty(value = "DCA鍒嗙被锛堝叧鑱攃ategory)")
- @ExcelExportColumn(name="DCA鍒嗙被锛堝叧鑱攃ategory)")
private String categoryId;
@ApiModelProperty(value = "澶囨敞")
- @ExcelExportColumn(name="澶囨敞")
private String remark;
@ApiModelProperty(value = "鐘舵�� 鐘舵�� 0寰呯‘璁�/寰呭垵瀹� 1寰呭垎閰�/寰呯粓瀹� 2寰呭鐞� 3SHE鍏抽棴 4WTS鍏抽棴 5宸ョ▼甯堝叧闂�", example = "1")
- @ExcelExportColumn(name="鐘舵�� 鐘舵�� 0寰呯‘璁�/寰呭垵瀹� 1寰呭垎閰�/寰呯粓瀹� 2寰呭鐞� 3SHE鍏抽棴 4WTS鍏抽棴 5宸ョ▼甯堝叧闂�")
private Integer status;
@ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
- @ExcelExportColumn(name="鎺掑簭鐮�")
private Integer sortnum;
@ApiModelProperty(value = "绫诲瀷 0SHE浜嬩欢 1DCA浜嬩欢鎻愪氦璁板綍 2DCA宸ュ崟 3璺岀粖婊戜簨浠�", example = "1")
- @ExcelExportColumn(name="绫诲瀷 0SHE浜嬩欢 1DCA浜嬩欢鎻愪氦璁板綍 2DCA宸ュ崟 3璺岀粖婊戜簨浠�")
private Integer type;
@ApiModelProperty(value = "涓婃姤浜哄憳缂栫爜锛堝叧鑱攎ember)", example = "1")
- @ExcelExportColumn(name="涓婃姤浜哄憳缂栫爜锛堝叧鑱攎ember)")
private Integer memberId;
@ApiModelProperty(value = "閮ㄩ棬缂栫爜", example = "1")
- @ExcelExportColumn(name="閮ㄩ棬缂栫爜")
private Integer companyId;
@ApiModelProperty(value = "涓婃姤鏃堕棿", example = "1")
- @ExcelExportColumn(name="涓婃姤鏃堕棿")
private Date submitDate;
@ApiModelProperty(value = "SHE娑夊強浜哄憳绫诲瀷 0鏈汉 1鍚屼簨 2渚涘簲鍟�", example = "1")
- @ExcelExportColumn(name="SHE娑夊強浜哄憳绫诲瀷 0鏈汉 1鍚屼簨 2渚涘簲鍟�")
private Integer memberType;
@ApiModelProperty(value = "SHE娑夊強浜哄憳浼佷笟缂栫爜闆嗗悎")
- @ExcelExportColumn(name="SHE娑夊強浜哄憳浼佷笟缂栫爜闆嗗悎")
private String memberQwids;
@ApiModelProperty(value = "SHE娑夊強浜哄憳渚涘簲鍟嗛泦鍚�")
- @ExcelExportColumn(name="SHE娑夊強浜哄憳渚涘簲鍟嗛泦鍚�")
private String memberNames;
@ApiModelProperty(value = "鍙戠敓鍦扮偣/浣嶇疆缂栫爜锛堝叧鑱攃ategory锛�", example = "1")
- @ExcelExportColumn(name="鍙戠敓鍦扮偣/浣嶇疆缂栫爜锛堝叧鑱攃ategory锛�")
private Integer localtionId;
@ApiModelProperty(value = "鏄惁澶栭儴灏卞尰 0鍚� 1鏄�")
- @ExcelExportColumn(name="鏄惁澶栭儴灏卞尰 0鍚� 1鏄�")
private Integer outJiuyi;
@ApiModelProperty(value = "鏄惁鍖诲姟瀹� 0鍚� 1鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁鍖诲姟瀹� 0鍚� 1鏄�")
private Integer isYiwushi;
@ApiModelProperty(value = "鏄惁鍙椾激 0鍚� 1鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁鍙椾激 0鍚� 1鏄�")
private Integer isHurted;
@ApiModelProperty(value = "鏄惁鍜屽伐浣滅浉鍏�", example = "1")
- @ExcelExportColumn(name="鏄惁鍜屽伐浣滅浉鍏�")
private Integer workRelated;
@ApiModelProperty(value = "浜嬩欢璇存槑", example = "1")
- @ExcelExportColumn(name="浜嬩欢璇存槑")
private String eventInfo;
@ApiModelProperty(value = "閭欢閫氱煡浜哄憳缂栫爜闆嗗悎")
- @ExcelExportColumn(name="閭欢閫氱煡浜哄憳缂栫爜闆嗗悎")
private String emialMemberIds;
@ApiModelProperty(value = "浼佷笟寰俊閫氱煡浜哄憳缂栫爜闆嗗悎")
- @ExcelExportColumn(name="浼佷笟寰俊閫氱煡浜哄憳缂栫爜闆嗗悎")
private String qwnoticeMemberIds;
@ApiModelProperty(value = "鍙戠敓鏃堕棿")
- @ExcelExportColumn(name="鍙戠敓鏃堕棿")
private Date happenTime;
@ApiModelProperty(value = "椋庨櫓銆佷激瀹炽�佽瀵熶富棰樼被鍨�(鍏宠仈category锛�")
- @ExcelExportColumn(name="椋庨櫓銆佷激瀹炽�佽瀵熶富棰樼被鍨�(鍏宠仈category锛�")
private Integer typeId;
@ApiModelProperty(value = "椋庨櫓鎻忚堪", example = "1")
- @ExcelExportColumn(name="椋庨櫓鎻忚堪")
private String riskInfo;
@ApiModelProperty(value = "褰撳墠鐗╀笟涓荤浼佷笟寰俊缂栫爜", example = "1")
- @ExcelExportColumn(name="褰撳墠鐗╀笟涓荤浼佷笟寰俊缂栫爜")
private String managerId;
@ApiModelProperty(value = "褰撳墠澶勭悊浜哄憳浼佷笟寰俊缂栫爜", example = "1")
- @ExcelExportColumn(name="褰撳墠澶勭悊浜哄憳浼佷笟寰俊缂栫爜")
private String dealerId;
@ApiModelProperty(value = "鍒嗛厤鏃堕棿")
- @ExcelExportColumn(name="鍒嗛厤鏃堕棿")
private Date dispatchTime;
@ApiModelProperty(value = "鍒嗛厤澶囨敞")
- @ExcelExportColumn(name="鍒嗛厤澶囨敞")
private String dispatchInfo;
@ApiModelProperty(value = "澶勭悊鏃堕棿")
- @ExcelExportColumn(name="澶勭悊鏃堕棿")
private Date dealTime;
@ApiModelProperty(value = "澶勭悊澶囨敞")
- @ExcelExportColumn(name="澶勭悊澶囨敞")
private String dealInfo;
@ApiModelProperty(value = "DCA闂鏍囬")
- @ExcelExportColumn(name="DCA闂鏍囬")
private String problemTitle;
@ApiModelProperty(value = "DCA闂缂栫爜(鍏宠仈category锛�", example = "1")
- @ExcelExportColumn(name="DCA闂缂栫爜(鍏宠仈category锛�")
private Integer problemId;
@ApiModelProperty(value = "DCA闂鎻忚堪")
- @ExcelExportColumn(name="DCA闂鎻忚堪")
private String problemInfo;
@ApiModelProperty(value = "浣嶇疆鍦扮偣璺緞鍚嶇О")
- @ExcelExportColumn(name="浣嶇疆鍦扮偣璺緞鍚嶇О")
private String locationName;
@ApiModelProperty(value = "宸ュ崟鍙�")
- @ExcelExportColumn(name="宸ュ崟鍙�")
private String code;
@ApiModelProperty(value = "DCA绗﹀悎鏁伴噺", example = "1")
- @ExcelExportColumn(name="DCA绗﹀悎鏁伴噺")
private Integer dcaYesNum;
@ApiModelProperty(value = "DCA涓嶇鍚堟暟閲�", example = "1")
- @ExcelExportColumn(name="DCA涓嶇鍚堟暟閲�")
private Integer dcaNoNum;
@ApiModelProperty(value = "DCA鎻愪氦璁板綍缂栫爜锛堣嚜鍏宠仈锛�", example = "1")
- @ExcelExportColumn(name="DCA鎻愪氦璁板綍缂栫爜锛堣嚜鍏宠仈锛�")
private Integer dcaRecordId;
@ApiModelProperty(value = "DCA宸ュ崟鎶勯�佷汉鍛樹紒涓氬井淇$紪鐮侀泦鍚�(澶氫釜鑻辨枃閫楀彿闅斿紑锛�")
- @ExcelExportColumn(name="DCA宸ュ崟鎶勯�佷汉鍛樹紒涓氬井淇$紪鐮侀泦鍚�(澶氫釜鑻辨枃閫楀彿闅斿紑锛�")
private String dcaCsIds;
@ApiModelProperty(value = "涓嬫鍌績鏃堕棿")
- @ExcelExportColumn(name="涓嬫鍌績鏃堕棿")
private Date urgeDate;
@ApiModelProperty("闄勪欢淇℃伅")
diff --git a/server/src/main/java/com/doumee/dao/business/model/WorkorderLog.java b/server/src/main/java/com/doumee/dao/business/model/WorkorderLog.java
index 30815f8..d3b4657 100644
--- a/server/src/main/java/com/doumee/dao/business/model/WorkorderLog.java
+++ b/server/src/main/java/com/doumee/dao/business/model/WorkorderLog.java
@@ -1,14 +1,13 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.TableField;
-import com.doumee.core.annotation.excel.ExcelExportColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
-import com.fasterxml.jackson.annotation.JsonFormat;
+
import java.util.Date;
import java.util.List;
@@ -24,77 +23,59 @@
@TableId(type = IdType.AUTO)
@ApiModelProperty(value = "涓婚敭", example = "1")
- @ExcelExportColumn(name="涓婚敭")
private Integer id;
@ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鍒涘缓浜虹紪鐮�")
private Integer creator;
@ApiModelProperty(value = "鍒涘缓鏃堕棿")
- @ExcelExportColumn(name="鍒涘缓鏃堕棿")
private Date createDate;
@ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
- @ExcelExportColumn(name="鏇存柊浜虹紪鐮�")
private Integer editor;
@ApiModelProperty(value = "鏇存柊鏃堕棿")
- @ExcelExportColumn(name="鏇存柊鏃堕棿")
private Date editDate;
@ApiModelProperty(value = "鏄惁鍒犻櫎0鍚� 1鏄�", example = "1")
- @ExcelExportColumn(name="鏄惁鍒犻櫎0鍚� 1鏄�")
private Integer isdeleted;
@ApiModelProperty(value = "澶囨敞")
- @ExcelExportColumn(name="澶囨敞")
private String remark;
@ApiModelProperty(value = "宸ュ崟缂栫爜锛堝叧鑱攚orkorder)", example = "1")
- @ExcelExportColumn(name="宸ュ崟缂栫爜锛堝叧鑱攚orkorder)")
private Integer workorderId;
@ApiModelProperty(value = "鏍囬")
- @ExcelExportColumn(name="鏍囬")
private String title;
@ApiModelProperty(value = "绠�浠�")
- @ExcelExportColumn(name="绠�浠�")
private String content;
@ApiModelProperty(value = "鎿嶄綔绫诲瀷 0浠诲姟涓婃姤 1浠诲姟鍒嗛厤鐗╀笟涓荤 2浠诲姟鍒嗛厤澶勭悊浜� 3浠诲姟澶勭悊鍏抽棴 4浠诲姟鍌績", example = "1")
- @ExcelExportColumn(name="鎿嶄綔绫诲瀷 0浠诲姟涓婃姤 1浠诲姟鍒嗛厤鐗╀笟涓荤 2浠诲姟鍒嗛厤澶勭悊浜� 3浠诲姟澶勭悊鍏抽棴 4浠诲姟鍌績")
private Integer objType;
@ApiModelProperty(value = "鍏宠仈瀵硅薄缂栫爜")
- @ExcelExportColumn(name="鍏宠仈瀵硅薄缂栫爜")
private String objId;
@ApiModelProperty(value = "鎿嶄綔鍓嶅唴瀹�")
- @ExcelExportColumn(name="鎿嶄綔鍓嶅唴瀹�")
private String beforeContent;
@ApiModelProperty(value = "鎿嶄綔鍚庡唴瀹�")
- @ExcelExportColumn(name="鎿嶄綔鍚庡唴瀹�")
private String afterContent;
@ApiModelProperty(value = "鎿嶄綔浜�")
- @ExcelExportColumn(name="鍙傛暟1")
private String param1;
@ApiModelProperty(value = "澶勭悊浜�")
- @ExcelExportColumn(name="鍙傛暟2")
private String param2;
@ApiModelProperty(value = "鍙傛暟3")
- @ExcelExportColumn(name="鍙傛暟3")
private String param3;
@ApiModelProperty(value = "鍙傛暟4")
- @ExcelExportColumn(name="鍙傛暟4")
private String param4;
@ApiModelProperty(value = "鎿嶄綔浜哄悕绉�")
diff --git a/server/src/main/java/com/doumee/dao/business/vo/WorkorderAllDto.java b/server/src/main/java/com/doumee/dao/business/vo/WorkorderAllDto.java
new file mode 100644
index 0000000..18150e4
--- /dev/null
+++ b/server/src/main/java/com/doumee/dao/business/vo/WorkorderAllDto.java
@@ -0,0 +1,97 @@
+package com.doumee.dao.business.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.dao.business.model.Multifile;
+import com.doumee.dao.business.model.Workorder;
+import com.doumee.dao.business.model.WorkorderLog;
+import com.doumee.dao.web.dto.DCANoProblemDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/7/13 10:40
+ */
+@Data
+@ApiModel("宸ュ崟瀵煎嚭淇℃伅")
+public class WorkorderAllDto {
+ @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+ @ExcelColumn(name="鎻愪氦鏃堕棿",index =10 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date createDate;
+ @ApiModelProperty(value = "鏈�杩戞搷浣滄椂闂�")
+ @ExcelColumn(name="鎻愪氦鏃堕棿",index =10 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date editDate;
+ @ApiModelProperty(value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞",index =10 ,width = 10)
+ private String remark;
+ @ApiModelProperty(value = "鐘舵�� 鐘舵�� 0寰呯‘璁�/寰呭垵瀹� 1寰呭垎閰�/寰呯粓瀹� 2寰呭鐞� 4WTS鍏抽棴 5宸ョ▼甯堝叧闂�", example = "1")
+ @ExcelColumn(name="鐘舵��",index =13,width = 6, valueMapping = "0=寰呭鐞�;1=寰呭垎閰�;2=寰呭鐞�;3=SHE鍏抽棴;4=WTS鍏抽棴;5=宸ョ▼甯堝叧闂�;")
+ private Integer status;
+ @ApiModelProperty(value = "涓婃姤鏃堕棿", example = "1")
+ @ExcelColumn(name="涓婃姤鏃堕棿",index =10 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date submitDate;
+ @ApiModelProperty(value = "SHE娑夊強浜哄憳渚涘簲鍟嗛泦鍚�")
+ private String memberNames;
+ @ApiModelProperty(value = "鏄惁澶栭儴灏卞尰")
+ @ExcelColumn(name="鏄惁澶栭儴灏卞尰",index =13,width = 6, valueMapping = "0=鍚�;1=鏄�;")
+ private Integer outJiuyi;
+ @ApiModelProperty(value = "鏄惁鍖诲姟瀹�", example = "1")
+ @ExcelColumn(name="鏄惁鍖诲姟瀹�",index =13,width = 6, valueMapping = "0=鍚�;1=鏄�;")
+ private Integer isYiwushi;
+ @ApiModelProperty(value = "鏄惁鍙椾激", example = "1")
+ @ExcelColumn(name="鏄惁鍙椾激",index =13,width = 6, valueMapping = "0=鍚�;1=鏄�;")
+ private Integer isHurted;
+ @ApiModelProperty(value = "鏄惁鍜屽伐浣滅浉鍏�", example = "1")
+ @ExcelColumn(name="鏄惁鍜屽伐浣滅浉鍏�",index =13,width = 6, valueMapping = "0=鍚�;1=鏄�;")
+ private Integer workRelated;
+ @ApiModelProperty(value = "浜嬩欢璇存槑", example = "1")
+ @ExcelColumn(name="浜嬩欢璇存槑",index =13,width = 6)
+ private String eventInfo;
+ @ApiModelProperty(value = "鍙戠敓鏃堕棿")
+ @ExcelColumn(name="鍙戠敓鏃堕棿",index =10 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date happenTime;
+ @ApiModelProperty(value = "椋庨櫓鎻忚堪", example = "1")
+ @ExcelColumn(name="椋庨櫓鎻忚堪",index =13,width = 6)
+ private String riskInfo;
+ @ApiModelProperty(value = "瑙傚療椤�")
+ @ExcelColumn(name="椋庨櫓鎻忚堪",index =13,width = 6)
+ private String problemTitle;
+ @ApiModelProperty(value = "DCA闂鎻忚堪")
+ @ExcelColumn(name="DCA闂鎻忚堪",index =13,width = 6)
+ private String problemInfo;
+ @ApiModelProperty(value = "浣嶇疆鍦扮偣璺緞鍚嶇О")
+ @ExcelColumn(name="浣嶇疆鍦扮偣璺緞鍚嶇О",index =13,width = 6)
+ private String locationName;
+ @ApiModelProperty(value = "绗﹀悎椤规暟閲�", example = "1")
+ @ExcelColumn(name="绗﹀悎椤规暟閲�",index =13,width = 6)
+ private Integer dcaYesNum;
+ @ApiModelProperty(value = "DCA涓嶇鍚堟暟閲�", example = "1")
+ @ExcelColumn(name="绗﹀悎椤规暟閲�",index =13,width = 6)
+ private Integer dcaNoNum;
+ @ApiModelProperty("鎻愭姤浜哄憳鍚嶇О")
+ @ExcelColumn(name="鎻愭姤浜哄憳",index =13,width = 6)
+ private String memberName;
+ @ApiModelProperty("鍛樺伐鎵嬫満鍙�")
+ @ExcelColumn(name="鍛樺伐鎵嬫満鍙�",index =13,width = 6)
+ private String memberPhone;
+ @ApiModelProperty("鎻愭姤浜哄憳鎵�灞為儴闂�")
+ @ExcelColumn(name="鎵�灞為儴闂�",index =13,width = 6)
+ private String companyName;
+ @ApiModelProperty("椋庨櫓绫诲瀷鍚嶇О")
+ @ExcelColumn(name="椋庨櫓绫诲瀷",index =13,width = 6)
+ private String typeName;
+ @ApiModelProperty("浜岀骇涓婚鍚嶇О")
+ @ExcelColumn(name="浜岀骇涓婚",index =13,width = 6)
+ @TableField(exist = false)
+ private String categoryName;
+
+
+
+}
diff --git a/server/src/main/java/com/doumee/dao/business/vo/WorkorderDbhDto.java b/server/src/main/java/com/doumee/dao/business/vo/WorkorderDbhDto.java
new file mode 100644
index 0000000..71767d5
--- /dev/null
+++ b/server/src/main/java/com/doumee/dao/business/vo/WorkorderDbhDto.java
@@ -0,0 +1,57 @@
+package com.doumee.dao.business.vo;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/7/13 10:40
+ */
+@Data
+@ApiModel("璺岀粖婊戝伐鍗曞鍑轰俊鎭�")
+public class WorkorderDbhDto {
+ @ApiModelProperty(value = "搴忓彿")
+ @ExcelColumn(name="搴忓彿",index =1 ,width = 4)
+ private Long index;
+ @ApiModelProperty(value = "宸ュ崟鍙�")
+ @ExcelColumn(name="宸ュ崟鍙�",index =2 ,width = 8)
+ private String code;
+ @ApiModelProperty("椋庨櫓绫诲瀷")
+ @ExcelColumn(name="椋庨櫓绫诲瀷",index =3,width = 6)
+ private String typeName;
+ @ApiModelProperty(value = "鐘舵�� 鐘舵�� 0寰呯‘璁�/寰呭垵瀹� 1寰呭垎閰�/寰呯粓瀹� 2寰呭鐞� 4WTS鍏抽棴 5宸ョ▼甯堝叧闂�", example = "1")
+ @ExcelColumn(name="鐘舵��",index =4,width = 4, valueMapping = "0=寰呭鐞�;1=澶勭悊涓�;2=澶勭悊涓�;3=宸插鐞�;4=宸插鐞�;5=宸插鐞�;")
+ private Integer status;
+ @ApiModelProperty(value = "涓婃姤鏃堕棿", example = "1")
+ @ExcelColumn(name="涓婃姤鏃堕棿",index =5 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date submitDate;
+ @ApiModelProperty(value = "鍙戠幇鏃堕棿", example = "1")
+ @ExcelColumn(name="鍙戠幇鏃堕棿",index =6 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date happenTime;
+ @ApiModelProperty(value = "浣嶇疆", example = "1")
+ @ExcelColumn(name="浣嶇疆",index =7 ,width = 6)
+ private String locationName;
+ @ApiModelProperty(value = "椋庨櫓鎻忚堪", example = "1")
+ @ExcelColumn(name="riskInfo",index =11,width = 10)
+ private String eventInfo;
+ @ApiModelProperty("鎻愭姤浜哄憳鍚嶇О")
+ @ExcelColumn(name="涓婃姤鍛樺伐",index =12,width = 4)
+ private String memberName;
+ @ApiModelProperty("鍛樺伐鎵嬫満鍙�")
+ @ExcelColumn(name="鍛樺伐鎵嬫満鍙�",index =13,width = 6)
+ private String memberPhone;
+ @ApiModelProperty("鎻愭姤浜哄憳鎵�灞為儴闂�")
+ @ExcelColumn(name="鎵�灞為儴闂�",index =14,width = 8)
+ private String companyName;
+ @ApiModelProperty(value = "鎻愪氦鏃堕棿")
+ @ExcelColumn(name="鎻愪氦鏃堕棿",index =15 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date createDate;
+
+
+}
diff --git a/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaChildDto.java b/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaChildDto.java
new file mode 100644
index 0000000..5e89ba1
--- /dev/null
+++ b/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaChildDto.java
@@ -0,0 +1,65 @@
+package com.doumee.dao.business.vo;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/7/13 10:40
+ */
+@Data
+@ApiModel("DCA宸ュ崟璁板綍瀵煎嚭淇℃伅")
+public class WorkorderDcaChildDto {
+ @ApiModelProperty(value = "搴忓彿")
+ @ExcelColumn(name="搴忓彿",index =1 ,width = 4)
+ private Long index;
+ @ApiModelProperty(value = "宸ュ崟鍙�")
+ @ExcelColumn(name="宸ュ崟鍙�",index =2 ,width = 8)
+ private String code;
+ @ApiModelProperty("涓�绾ц瀵熶富棰�")
+ @ExcelColumn(name="涓�绾ц瀵熶富棰�",index =3,width = 6)
+ private String typeName;
+ @ApiModelProperty("浜岀骇瑙傚療涓婚")
+ @ExcelColumn(name="浜岀骇瑙傚療涓婚",index =4,width = 6)
+ private String categoryName;
+ @ApiModelProperty("涓嶇鍚堥」")
+ @ExcelColumn(name="涓嶇鍚堥」",index =5,width = 10)
+ private String problemTitle;
+ @ApiModelProperty(value = "鐘舵�� 鐘舵�� 0寰呯‘璁�/寰呭垵瀹� 1寰呭垎閰�/寰呯粓瀹� 2寰呭鐞� 4WTS鍏抽棴 5宸ョ▼甯堝叧闂�", example = "1")
+ @ExcelColumn(name="鐘舵��",index =6,width = 4, valueMapping = "0=寰呭鐞�;1=澶勭悊涓�;2=澶勭悊涓�;3=宸插鐞�;4=宸插鐞�;5=宸插鐞�;")
+ private Integer status;
+ @ApiModelProperty(value = "涓婃姤鏃堕棿", example = "1")
+ @ExcelColumn(name="涓婃姤鏃堕棿",index =7 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date submitDate;
+ @ApiModelProperty(value = "鍙戠幇鏃堕棿", example = "1")
+ @ExcelColumn(name="鍙戠幇鏃堕棿",index =8 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date happenTime;
+ @ApiModelProperty(value = "浣嶇疆", example = "1")
+ @ExcelColumn(name="浣嶇疆",index =9 ,width = 6)
+ private String locationName;
+ @ApiModelProperty(value = "闂鎻忚堪", example = "1")
+ @ExcelColumn(name="闂鎻忚堪",index =10,width = 4)
+ private String eventInfo;
+ @ApiModelProperty("鎻愭姤浜哄憳鍚嶇О")
+ @ExcelColumn(name="涓婃姤鍛樺伐",index =12,width = 4)
+ private String memberName;
+ @ApiModelProperty("鍛樺伐鎵嬫満鍙�")
+ @ExcelColumn(name="鍛樺伐鎵嬫満鍙�",index =13,width = 6)
+ private String memberPhone;
+ @ApiModelProperty("鎻愭姤浜哄憳鎵�灞為儴闂�")
+ @ExcelColumn(name="鎵�灞為儴闂�",index =14,width = 8)
+ private String companyName;
+ @ApiModelProperty(value = "鎻愪氦鏃堕棿")
+ @ExcelColumn(name="鎻愪氦鏃堕棿",index =15 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date createDate;
+
+
+
+
+}
diff --git a/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaDto.java b/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaDto.java
new file mode 100644
index 0000000..d9e5f3b
--- /dev/null
+++ b/server/src/main/java/com/doumee/dao/business/vo/WorkorderDcaDto.java
@@ -0,0 +1,56 @@
+package com.doumee.dao.business.vo;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/7/13 10:40
+ */
+@Data
+@ApiModel("DCA宸ュ崟璁板綍瀵煎嚭淇℃伅")
+public class WorkorderDcaDto {
+ @ApiModelProperty(value = "搴忓彿")
+ @ExcelColumn(name="搴忓彿",index =1 ,width = 4)
+ private Long index;
+ @ApiModelProperty(value = "宸ュ崟鍙�")
+ @ExcelColumn(name="宸ュ崟鍙�",index =2 ,width = 8)
+ private String code;
+ @ApiModelProperty("瑙傚療涓婚")
+ @ExcelColumn(name="瑙傚療涓婚",index =3,width = 6)
+ private String typeName;
+ @ApiModelProperty(value = "涓婃姤鏃堕棿", example = "1")
+ @ExcelColumn(name="涓婃姤鏃堕棿",index =5 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date submitDate;
+ @ApiModelProperty(value = "鍙戠幇鏃堕棿", example = "1")
+ @ExcelColumn(name="鍙戠幇鏃堕棿",index =6 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date happenTime;
+ @ApiModelProperty(value = "绗﹀悎椤规暟閲�", example = "1")
+ @ExcelColumn(name="绗﹀悎椤规暟閲�",index =7,width = 4)
+ private Integer dcaYesNum;
+ @ApiModelProperty(value = "涓嶇鍚堥」鏁伴噺", example = "1")
+ @ExcelColumn(name="涓嶇鍚堥」鏁伴噺",index =8,width = 4)
+ private Integer dcaNoNum;
+ @ApiModelProperty("鎻愭姤浜哄憳鍚嶇О")
+ @ExcelColumn(name="涓婃姤鍛樺伐",index =12,width = 4)
+ private String memberName;
+ @ApiModelProperty("鍛樺伐鎵嬫満鍙�")
+ @ExcelColumn(name="鍛樺伐鎵嬫満鍙�",index =13,width = 6)
+ private String memberPhone;
+ @ApiModelProperty("鎻愭姤浜哄憳鎵�灞為儴闂�")
+ @ExcelColumn(name="鎵�灞為儴闂�",index =14,width = 8)
+ private String companyName;
+ @ApiModelProperty(value = "鎻愪氦鏃堕棿")
+ @ExcelColumn(name="鎻愪氦鏃堕棿",index =15 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date createDate;
+
+
+
+
+}
diff --git a/server/src/main/java/com/doumee/dao/business/vo/WorkorderSheDto.java b/server/src/main/java/com/doumee/dao/business/vo/WorkorderSheDto.java
new file mode 100644
index 0000000..2a4e7a9
--- /dev/null
+++ b/server/src/main/java/com/doumee/dao/business/vo/WorkorderSheDto.java
@@ -0,0 +1,77 @@
+package com.doumee.dao.business.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.dao.business.model.Category;
+import com.doumee.dao.business.model.Multifile;
+import com.doumee.dao.business.model.Workorder;
+import com.doumee.dao.business.model.WorkorderLog;
+import com.doumee.dao.web.dto.DCANoProblemDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/7/13 10:40
+ */
+@Data
+@ApiModel("SHE宸ュ崟瀵煎嚭淇℃伅")
+public class WorkorderSheDto {
+ @ApiModelProperty(value = "搴忓彿")
+ @ExcelColumn(name="搴忓彿",index =1 ,width = 4)
+ private Long index;
+ @ApiModelProperty(value = "宸ュ崟鍙�")
+ @ExcelColumn(name="宸ュ崟鍙�",index =2 ,width = 8)
+ private String code;
+ @ApiModelProperty("浼ゅ绫诲瀷")
+ @ExcelColumn(name="浼ゅ绫诲瀷",index =3,width = 6)
+ private String typeName;
+ @ApiModelProperty(value = "涓婃姤鏃堕棿", example = "1")
+ @ExcelColumn(name="涓婃姤鏃堕棿",index =4 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date submitDate;
+ @ApiModelProperty(value = "鐘舵�� 鐘舵�� 0寰呯‘璁�/寰呭垵瀹� 1寰呭垎閰�/寰呯粓瀹� 2寰呭鐞� 4WTS鍏抽棴 5宸ョ▼甯堝叧闂�", example = "1")
+ @ExcelColumn(name="鐘舵��",index =5,width = 4, valueMapping = "0=寰呭鐞�;1=澶勭悊涓�;2=澶勭悊涓�;3=宸插鐞�;4=宸插鐞�;5=宸插鐞�;")
+ private Integer status;
+ @ApiModelProperty(value = "鍙戠敓鍦扮偣")
+ @ExcelColumn(name="鍙戠敓鍦扮偣",index =6,width = 8)
+ private String locationName;
+ @ApiModelProperty(value = "SHE娑夊強浜哄憳渚涘簲鍟嗛泦鍚�")
+ @ExcelColumn(name="娑夊強浜哄憳",index =7,width = 8)
+ private String memberNames;
+ @ApiModelProperty(value = "鍏蜂綋浣嶇疆")
+ @ExcelColumn(name="鍏蜂綋浣嶇疆",index =8,width = 8)
+ private String remark;
+ @ApiModelProperty(value = "灏卞尰鎯呭喌")
+ @ExcelColumn(name="灏卞尰鎯呭喌",index =9,width = 8)
+ private String jiuyiInfo;
+ @ApiModelProperty(value = "鏄惁鍜屽伐浣滅浉鍏�", example = "1")
+ @ExcelColumn(name="鏄惁鍜屽伐浣滅浉鍏�",index =10,width = 4, valueMapping = "0=鍚�;1=鏄�;")
+ private Integer workRelated;
+ @ApiModelProperty(value = "浜嬩欢璇存槑", example = "1")
+ @ExcelColumn(name="浜嬩欢璇存槑",index =11,width = 10)
+ private String eventInfo;
+
+ @ApiModelProperty("鎻愭姤浜哄憳鍚嶇О")
+ @ExcelColumn(name="涓婃姤鍛樺伐",index =12,width = 4)
+ private String memberName;
+ @ApiModelProperty("鍛樺伐鎵嬫満鍙�")
+ @ExcelColumn(name="鍛樺伐鎵嬫満鍙�",index =13,width = 6)
+ private String memberPhone;
+ @ApiModelProperty("鎻愭姤浜哄憳鎵�灞為儴闂�")
+ @ExcelColumn(name="鎵�灞為儴闂�",index =14,width = 8)
+ private String companyName;
+
+ @ApiModelProperty(value = "鎻愪氦鏃堕棿")
+ @ExcelColumn(name="鎻愪氦鏃堕棿",index =15 ,dateFormat = "yyyy-MM-dd HH:mm:ss",width = 10)
+ private Date createDate;
+
+
+}
diff --git a/server/src/main/java/com/doumee/dao/system/model/SystemLoginLog.java b/server/src/main/java/com/doumee/dao/system/model/SystemLoginLog.java
index d554baa..fa83b30 100644
--- a/server/src/main/java/com/doumee/dao/system/model/SystemLoginLog.java
+++ b/server/src/main/java/com/doumee/dao/system/model/SystemLoginLog.java
@@ -1,13 +1,10 @@
package com.doumee.dao.system.model;
-import com.doumee.core.annotation.excel.ExcelExportColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
-import org.apache.poi.ss.usermodel.HorizontalAlignment;
-import org.apache.poi.ss.usermodel.IndexedColors;
import java.util.Date;
@@ -28,47 +25,36 @@
private Integer userId;
@ApiModelProperty(value = "鐧诲綍鐢ㄦ埛鍚�")
- @ExcelExportColumn(name="鐧诲綍鐢ㄦ埛鍚�")
private String loginUsername;
@ApiModelProperty(value = "鐧诲綍IP")
- @ExcelExportColumn(name="鐧诲綍IP", color = IndexedColors.RED, width = 8)
private String ip;
@ApiModelProperty(value = "鐧诲綍鍦板潃")
- @ExcelExportColumn(name="鐧诲綍鍦板潃", width = 10)
private String location;
@ApiModelProperty(value = "瀹㈡埛绔�")
- @ExcelExportColumn(name="瀹㈡埛绔�", width = 10)
private String clientInfo;
@ApiModelProperty(value = "鎿嶄綔绯荤粺")
- @ExcelExportColumn(name="鎿嶄綔绯荤粺")
private String osInfo;
@ApiModelProperty(value = "鐧诲綍骞冲彴")
- @ExcelExportColumn(name="鐧诲綍骞冲彴")
private String platform;
@ApiModelProperty(value = "绯荤粺鐗堟湰")
- @ExcelExportColumn(name="绯荤粺鐗堟湰")
private String systemVersion;
@ApiModelProperty(value = "鏈嶅姟鍣↖P")
- @ExcelExportColumn(name="鏈嶅姟鍣↖P", width = 8)
private String serverIp;
@ApiModelProperty(value = "鏄惁鐧诲綍鎴愬姛")
- @ExcelExportColumn(name="鏄惁鐧诲綍鎴愬姛", valueMapping = "true=鏄�;false=鍚�", align = HorizontalAlignment.CENTER)
private Boolean success;
@ApiModelProperty(value = "澶辫触鍘熷洜")
- @ExcelExportColumn(name="澶辫触鍘熷洜", color = IndexedColors.RED, width = 16)
private String reason;
@ApiModelProperty(value = "鐧诲綍鏃堕棿")
- @ExcelExportColumn(name="鐧诲綍鏃堕棿", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 10)
private Date loginTime;
}
diff --git a/server/src/main/java/com/doumee/dao/system/model/SystemTraceLog.java b/server/src/main/java/com/doumee/dao/system/model/SystemTraceLog.java
index bf77f5d..2213746 100644
--- a/server/src/main/java/com/doumee/dao/system/model/SystemTraceLog.java
+++ b/server/src/main/java/com/doumee/dao/system/model/SystemTraceLog.java
@@ -1,6 +1,5 @@
package com.doumee.dao.system.model;
-import com.doumee.core.annotation.excel.ExcelExportColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -27,11 +26,9 @@
private Integer userId;
@ApiModelProperty(value = "鍥哄寲鐢ㄦ埛鍚�")
- @ExcelExportColumn(name="鎿嶄綔浜虹敤鎴峰悕")
private String username;
@ApiModelProperty(value = "鍥哄寲鐢ㄦ埛濮撳悕")
- @ExcelExportColumn(name="鎿嶄綔浜哄鍚�")
private String userRealname;
@ApiModelProperty(value = "鍥哄寲鐢ㄦ埛瑙掕壊")
@@ -41,75 +38,57 @@
private String userPermissions;
@ApiModelProperty(value = "鎿嶄綔妯″潡")
- @ExcelExportColumn(name="鎿嶄綔妯″潡")
private String operaModule;
@ApiModelProperty(value = "鎿嶄綔绫诲瀷")
- @ExcelExportColumn(name="鎿嶄綔绫诲瀷")
private String operaType;
@ApiModelProperty(value = "鎿嶄綔澶囨敞")
- @ExcelExportColumn(name="澶囨敞", width = 5)
private String operaRemark;
@ApiModelProperty(value = "鎿嶄綔寮�濮嬫椂闂�")
- @ExcelExportColumn(name="鎿嶄綔寮�濮嬫椂闂�", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 10)
private Date operaTime;
@ApiModelProperty(value = "鑰楁椂", example = "1")
- @ExcelExportColumn(name="鑰楁椂锛坢s锛�")
private Integer operaSpendTime;
@ApiModelProperty(value = "璇锋眰鏂瑰紡")
- @ExcelExportColumn(name="璇锋眰鏂瑰紡")
private String requestMethod;
@ApiModelProperty(value = "璇锋眰鍦板潃")
- @ExcelExportColumn(name="璇锋眰鍦板潃", width = 14)
private String requestUri;
@ApiModelProperty(value = "璇锋眰鍙傛暟")
- @ExcelExportColumn(name="璇锋眰鍙傛暟", width = 16)
private String requestParams;
@ApiModelProperty(value = "璇锋眰缁撴灉")
- @ExcelExportColumn(name="璇锋眰缁撴灉", width = 10)
private String requestResult;
@ApiModelProperty(value = "鐘舵�侊紙0鎿嶄綔澶辫触锛�1鎿嶄綔鎴愬姛锛�-1鏈緱鍒板鐞嗭級", example = "1")
- @ExcelExportColumn(name="鐘舵��", valueMapping = "0=鎿嶄綔澶辫触;1=鎿嶄綔鎴愬姛;-1=鏈鐞�", width = 4)
private Integer status;
@ApiModelProperty(value = "寮傚父绛夌骇")
- @ExcelExportColumn(name="寮傚父绛夌骇", valueMapping = "0=浣�;5=涓�;10=楂�")
private Integer exceptionLevel;
@ApiModelProperty(value = "寮傚父淇℃伅")
- @ExcelExportColumn(name="寮傚父淇℃伅", width = 16)
private String exceptionStack;
@ApiModelProperty(value = "IP")
- @ExcelExportColumn(name="IP", width = 8)
private String ip;
@ApiModelProperty(value = "鏈嶅姟鍣↖P")
- @ExcelExportColumn(name="鏈嶅姟鍣↖P", width = 8)
private String serverIp;
@ApiModelProperty(value = "鎺ュ彛鐗堟湰")
- @ExcelExportColumn(name="鎺ュ彛鐗堟湰")
private String systemVersion;
@ApiModelProperty(value = "鎿嶄綔骞冲彴")
- @ExcelExportColumn(name="鎿嶄綔骞冲彴")
private String platform;
@ApiModelProperty(value = "瀹㈡埛绔俊鎭�")
- @ExcelExportColumn(name="瀹㈡埛绔俊鎭�", width = 10)
private String clientInfo;
@ApiModelProperty(value = "绯荤粺淇℃伅")
- @ExcelExportColumn(name="绯荤粺淇℃伅")
private String osInfo;
}
--
Gitblit v1.9.3