From a68bf12a2975405f57f9a9d51b91c13a93c026f0 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 31 一月 2024 21:01:36 +0800
Subject: [PATCH] Mr.Shi
---
 server/service/src/main/java/com/doumee/dao/business/model/ApplyLog.java                        |    4 
 server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java                |    1 
 company/src/components/business/OperaInsuranceApplyWindow.vue                                   |   75 
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java      |   19 
 company/src/components/business/OperaInsuranceApplyCheckWindow.vue                              |   19 
 company/src/views/business/settleClaims.vue                                                     |    5 
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java |   41 
 server/company/src/main/java/com/doumee/api/business/SettleClaimsController.java                |    2 
 server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java               |    6 
 server/platform/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java          |   27 
 server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java                |    7 
 company/src/components/business/OperaApplyChangeCheckWindow.vue                                 |  426 ++++++
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java    |   24 
 company/src/components/business/InsuranceDetails.vue                                            |    7 
 server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java                |   27 
 company/src/components/business/OperaApplyChangeUnitDetailWindow.vue                            |  453 ++++++
 company/src/views/enterprise/switchCourt.vue                                                    |   20 
 company/src/views/business/switchCourt.vue                                                      |  284 ++-
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java       |  216 ++
 server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java       |    5 
 company/src/api/business/insuranceApply.js                                                      |   50 
 company/src/views/business/applyChange.vue                                                      |  284 ++-
 server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java              |    3 
 server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java                 |   16 
 company/src/views/business/insuranceApply.vue                                                   |    8 
 /dev/null                                                                                       |  249 ---
 server/platform/src/main/java/com/doumee/task/ScheduleTool.java                                 |    2 
 company/src/components/business/OperaApplyChangeDetailWindow.vue                                |  464 +++++++
 server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java                     |   22 
 server/service/src/main/java/com/doumee/service/business/third/SignService.java                 |   31 
 company/src/views/enterprise/add_subtract.vue                                                   |   52 
 company/src/views/enterprise/insuranceApply.vue                                                 |    6 
 company/src/components/common/UploadFile.vue                                                    |    2 
 company/src/components/enterprise/add_subtractDetails.vue                                       |    1 
 company/src/components/business/ApplyChangeUnitDetails.vue                                      |  342 +++++
 server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java                |  218 ++
 company/.env.development                                                                        |    4 
 company/src/components/business/OperaApplyChangeUnitCheckWindow.vue                             |  426 ++++++
 38 files changed, 3,144 insertions(+), 704 deletions(-)
diff --git a/company/.env.development b/company/.env.development
index e3d5925..d59afcd 100644
--- a/company/.env.development
+++ b/company/.env.development
@@ -2,12 +2,12 @@
 NODE_ENV = 'development'
 
 # 浼佷笟绔�-浠佸悍
-VUE_APP_API = 'http://192.168.0.134:10025/'
+# VUE_APP_API = 'http://192.168.0.134:10025/'
 
 # 骞冲彴绔�-浠佸悍
 # VUE_APP_API = 'http://192.168.0.134:10023/'
 
 
-# VUE_APP_API = 'http://localhost:10023/'
+VUE_APP_API = 'http://localhost:10023/'
 # VUE_APP_API = 'http://localhost:10023/'
 
diff --git a/company/src/api/business/insuranceApply.js b/company/src/api/business/insuranceApply.js
index 5044d3f..d7352e2 100644
--- a/company/src/api/business/insuranceApply.js
+++ b/company/src/api/business/insuranceApply.js
@@ -56,11 +56,29 @@
 export function getDetail (id) {
     return request.get(`business/insuranceApply/${id}`)
 }
+export function getChangeDetail (id) {
+    return request.get(`business/applyChange/${id}`)
+}
 export function getSignLink (id) {
     return request.get(`business/insuranceApply/getSignLink/${id}`)
 }
+export function getJiajianBaoSignLink (data) {
+    return request.post('/business/applyChange/getJiajianBaoSignLink', data, {
+        trim: true
+    })
+}
+export function getChangeUnitSignLink (data) {
+    return request.post('/business/applyChange/getChangeUnitSignLink', data, {
+        trim: true
+    })
+}
 export function getDetailList (data) {
     return request.post('/business/applyDetail/list', data, {
+        trim: true
+    })
+}
+export function getChangeDetailList (data) {
+    return request.post('/business/applyChagneDetail/list', data, {
         trim: true
     })
 }
@@ -91,6 +109,38 @@
         download: true
     })
 }
+export function exportJiajianBaoExcel (data) {
+    return request.post('/business/applyChange/exportJiajianBaoExcel', data, {
+        trim: true,
+        download: true
+    })
+}
+export function backChagne (data) {
+    return request.post('/business/applyChange/back', data, {
+        trim: true
+    })
+}
+export function editChangePidan (data) {
+    return request.post('/business/applyChange/editPidan', data, {
+        trim: true
+    })
+}
+export function uploadChangePidan (data) {
+    return request.post('/business/applyChange/uploadPidan', data, {
+        trim: true
+    })
+}
+export function dealBackChangeApply (data) {
+    return request.post('/business/applyChange/dealBackApply', data, {
+        trim: true
+    })
+}
+export function exportChangeUnitExcel (data) {
+    return request.post('/business/applyChange/exportChangeUnitExcel', data, {
+        trim: true,
+        download: true
+    })
+}
 
 // 瀵煎嚭Excel
 export function applyChagneDetailExcel (data) {
diff --git a/company/src/components/business/ApplyChangeUnitDetails.vue b/company/src/components/business/ApplyChangeUnitDetails.vue
new file mode 100644
index 0000000..bb5e99a
--- /dev/null
+++ b/company/src/components/business/ApplyChangeUnitDetails.vue
@@ -0,0 +1,342 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        width="100%"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <div class="box">
+          <div class="top">
+            {{title}}
+          </div>
+          <div class="box_table">
+            <div class="box_table_head">
+              <div class="box_table_head_item">鎶曚繚浼佷笟</div>
+              <div class="box_table_head_item">淇濋櫓鏂规</div>
+              <div class="box_table_head_item">淇濆崟鍙�</div>
+              <div class="box_table_head_item">淇濋櫓鐢熸晥璧锋湡</div>
+              <div class="box_table_head_item">淇濋櫓鐢熸晥姝㈡湡</div>
+              <div class="box_table_head_item">鎹㈠巶浜烘暟</div>
+              <div class="box_table_head_item">鎵瑰崟鐢熸晥鏈�</div>
+            </div>
+            <div class="box_table_content "  >
+              <div class="box_table_content_item box_table_content_header">{{ apply.companyName }}</div>
+              <div class="box_table_content_item box_table_content_header">{{ apply.solutionsName }}</div>
+              <div class="box_table_content_item box_table_content_header">{{ apply.code }}</div>
+              <div class="box_table_content_item box_table_content_header">{{ apply.startTime }}</div>
+              <div class="box_table_content_item box_table_content_header">{{ apply.endTime }}</div>
+              <div class="box_table_content_item box_table_content_header">{{ model.changeNum}}</div>
+              <div class="box_table_content_item box_table_content_header">{{ model.applyStartTime}}</div>
+            </div>
+          </div>
+            <div class="box_table">
+                <div class="box_table_head">
+                    <div class="box_table_head_item">搴忓彿</div>
+                    <div class="box_table_head_item">鍛樺伐濮撳悕</div>
+                    <div class="box_table_head_item">鎬у埆</div>
+                    <div class="box_table_head_item">韬唤璇佸彿</div>
+                    <div class="box_table_head_item">鍘熸淳閬e崟浣�</div>
+                    <div class="box_table_head_item">鍘熸墍灞炲伐绉�</div>
+                    <div class="box_table_head_item">鎹㈠巶鍚庢淳閬e崟浣�</div>
+                    <div class="box_table_head_item">鎹㈠巶鍚庢墍灞炲伐绉�</div>
+                </div>
+                <div class="box_table_content" v-for="(item, index) in detailList" :key="index">
+                    <div class="box_table_content_item">{{index + 1}}</div>
+                    <div class="box_table_content_item" >{{ item.memberName }}</div>
+                    <div class="box_table_content_item">{{  item.sex==0?"鐢�":(item.sex==1?"濂�":"" )}}</div>
+                    <div class="box_table_content_item">{{ item.memberIdcardNo }}</div>
+                    <div class="box_table_content_item">{{ item.oldDuName }}</div>
+                    <div class="box_table_content_item">{{item.oldWorkTypeName}}</div>
+                    <div class="box_table_content_item">{{ item.duName }}</div>
+                    <div class="box_table_content_item">{{item.workTypeName}}</div>
+                </div>
+            </div>
+          <div class="box_table" v-if="type==1" style="border-top: 0px solid #b4bbc5;" >
+            <div class="box_table_head">
+              <div class="box_table_head_item5">澶囨敞</div>
+              <div class="box_table_head_item5">
+                    <input v-model="form.checkInfo" style="width: 100%;height: 45px;border: 0px;outline: none;" placeholder="璇疯緭鍏�" v-trim/>
+              </div>
+            </div>
+          </div>
+        </div>
+        <template v-if="type==1" v-slot:footer>
+            <el-button type="primary"  :loading="isWorking.export" @click="check(0)">鎻愪氦閫氳繃</el-button>
+<!--            <el-button type="danger"  :loading="isWorking.export" @click="check(1)">瀹℃牳涓嶉�氳繃</el-button>-->
+            <el-button @click="visible=false">鍙栨秷</el-button>
+        </template>
+        <template v-else v-slot:footer>
+            <el-button type="primary"  :loading="isWorking.export" @click="exportComFilesDo">浼佷笟璇佷欢</el-button>
+            <el-button type="primary"  :loading="isWorking.export" @click="exportDetail">瀵煎嚭璇﹀崟</el-button>
+            <el-button @click="visible=false">鍙栨秷</el-button>
+        </template>
+    </GlobalWindow>
+</template>
+
+<script>
+    import BaseOpera from '@/components/base/BaseOpera'
+    import GlobalWindow from '@/components/common/GlobalWindow'
+    import {getChangeDetailList, exportChangeUnitExcel} from "@/api/business/insuranceApply";
+    import {exportComFiles} from "@/api/business/company";
+    // import {all as solutionAll} from "@/api/business/solutions";
+    export default {
+        name: 'ApplyChangeUnitDetails',
+        extends: BaseOpera,
+        components: { GlobalWindow },
+        data () {
+            return {
+                model:{},
+                apply:{},
+              type:0,
+              detailList:[],
+                // 琛ㄥ崟鏁版嵁
+                form: {
+                    id: null,
+                    dealBackApply:0,
+                    checkInfo: ''
+                },
+                // 楠岃瘉瑙勫垯
+                rules: {
+                },
+                reverse: true,
+                tableData: []
+            }
+        },
+        created () {
+            this.config({
+                api: '/business/insuranceApply',
+                'field.id': 'id'
+            })
+        },
+        methods: {
+            open(title,target,target2){
+              this.title=title
+              this.visible=true
+              this.apply = target
+              this.model = target2
+              this.form.id=target.id
+              this.getDetailListDo()
+            },
+           getDetailListDo() {
+             this.detailList = []
+             var that = this
+             getChangeDetailList({applyChangeId: this.model.id})
+                 .then(res => {
+                   that.detailList= res
+                 }).catch(err => {})
+           },
+          exportDetail(){
+            this.$dialog.exportConfirm('纭瀵煎嚭璇﹀崟鍚楋紵')
+                .then(() => {
+                  this.isWorking = true
+                  exportChangeUnitExcel({ id: this.model.id })
+                      .then(response => {
+                        this.download(response)
+                      })
+                      .catch(e => {
+                        console.log(e)
+                        this.$message.error('鏁版嵁涓嬭浇澶辫触锛�')
+                      })
+                      .finally(() => {
+                        this.isWorking = false
+                      })
+                })
+                .catch(() => {
+                })
+          },
+          exportComFilesDo(){
+            this.$dialog.exportConfirm('纭瀵煎嚭浼佷笟璇佷欢鍚楋紵')
+                .then(() => {
+                  this.isWorking = true
+                  exportComFiles({ id: this.apply.companyId })
+                      .then(response => {
+                        this.download(response)
+                      })
+                      .catch(e => {
+                        console.log(e)
+                        this.$message.error('鏁版嵁涓嬭浇澶辫触锛�')
+                      })
+                })
+                .catch(() => {
+                })
+
+          },
+            handleSizeChange(val) {
+                console.log(`姣忛〉 ${val} 鏉);
+            },
+            handleCurrentChange(val) {
+                console.log(`褰撳墠椤�: ${val}`);
+            },
+            handleClick(tab, event) {
+                console.log(tab, event);
+            },
+            onSubmit() {
+
+            }
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+    .box {
+        width: 100%;
+       .top{
+           width: 100%;
+           align-items: center;
+           flex-wrap: wrap;
+           border-top: 1px solid #b4bbc5;
+           border-left: 1px solid #b4bbc5;
+            font-size: 14px;
+            font-weight: bold;
+            text-align: center;
+          padding: 15px;
+         }
+        .box_header {
+            width: 100%;
+            display: flex;
+            align-items: center;
+            flex-wrap: wrap;
+            border-top: 1px solid #b4bbc5;
+            border-left: 1px solid #b4bbc5;
+            .box_header_item {
+                width: 50%;
+                height: 50px;
+                display: flex;
+                align-items: center;
+                border-right: 1px solid #b4bbc5;
+                border-bottom: 1px solid #b4bbc5;
+                box-sizing: border-box;
+
+                .box_header_item_label {
+                    flex: 1;
+                    height: 100%;
+                    display: flex;
+                    align-items: center;
+                    justify-content: center;
+                    font-size: 14px;
+                    color: black;
+                    background: #f2f2f2;
+                    border-right: 1px solid #b4bbc5;
+                }
+                .box_header_item_val {
+                    flex: 1;
+                    height: 100%;
+                    display: flex;
+                    align-items: center;
+                    justify-content: center;
+                    font-size: 14px;
+                    color: black;
+                }
+            }
+        }
+        .box_table {
+            width: 100%;
+            border-top: 1px solid #b4bbc5;
+            border-left: 1px solid #b4bbc5;
+            box-sizing: border-box;
+            .box_table_head {
+                width: 100%;
+                display: flex;
+                align-items: center;
+                .box_table_head_item1 {
+                    flex: 1;
+                    height: 50px;
+                    background: #f2f2f2;
+                    display: flex;
+                    align-items: center;
+                    justify-content: center;
+                    font-size: 14px;
+                    color: black;
+                    border-right: 1px solid #b4bbc5;
+                    border-bottom: 1px solid #b4bbc5;
+                    box-sizing: border-box;
+                    }
+                .box_table_head_item {
+                    flex: 1;
+                    height: 50px;
+                    background: #f2f2f2;
+                    display: flex;
+                    align-items: center;
+                    justify-content: center;
+                    font-size: 14px;
+                    color: black;
+                    border-right: 1px solid #b4bbc5;
+                    border-bottom: 1px solid #b4bbc5;
+                    box-sizing: border-box;
+                  &:nth-child(4) {
+                    flex: 1.5;;
+                  }
+                  &:nth-child(6) {
+                    flex: 1.5;;
+                  }
+                  &:nth-child(8) {
+                    flex: 1.5;;
+                  }
+                }
+              .box_table_head_item5 {
+                flex: 1;
+                height: 50px;
+                background: #f2f2f2;
+                display: flex;
+                align-items: center;
+                justify-content: center;
+                font-size: 14px;
+                color: black;
+                border-right: 1px solid #b4bbc5;
+                border-bottom: 1px solid #b4bbc5;
+                box-sizing: border-box;
+                &:nth-child(2) {
+                   flex: 5;
+                }
+              }
+              .box_form_item {
+                flex: 1;
+                height: 50px;
+                background: #ffffff;
+                display: flex;
+                align-items: center;
+                justify-content: center;
+                font-size: 14px;
+                color: black;
+                border-right: 1px solid #b4bbc5;
+                border-bottom: 1px solid #b4bbc5;
+                box-sizing: border-box;
+                &:nth-child(1) {
+                  //flex: 0.5;
+                }
+              }
+            }
+            .box_table_content {
+                width: 100%;
+                display: flex;
+                align-items: center;
+                .box_table_content_header{
+                  border-bottom: 0px solid #b4bbc5 !important;
+                }
+              .box_table_content_item {
+                    flex: 1;
+                    height: 50px;
+                    background: #ffffff;
+                    display: flex;
+                    align-items: center;
+                    justify-content: center;
+                    font-size: 14px;
+                    color: black;
+                    border-right: 1px solid #b4bbc5;
+                    border-bottom: 1px solid #b4bbc5;
+                    box-sizing: border-box;
+                &:nth-child(4) {
+                  flex: 1.5;
+                }
+                &:nth-child(6) {
+                  flex: 1.5;
+                }
+                &:nth-child(8) {
+                  flex: 1.5;
+                }
+                }
+            }
+        }
+    }
+</style>
diff --git a/company/src/components/business/InsuranceDetails.vue b/company/src/components/business/InsuranceDetails.vue
index e378b58..427249e 100644
--- a/company/src/components/business/InsuranceDetails.vue
+++ b/company/src/components/business/InsuranceDetails.vue
@@ -172,7 +172,9 @@
                       .then(response => {
                         this.visible = false
                         this.$emit('success')
-                      })
+                      }).catch(err => {
+                    this.$tip.apiFailed(err)
+                  })
                 })
                 .catch(() => {
                 })
@@ -189,9 +191,6 @@
                       .catch(e => {
                         console.log(e)
                         this.$message.error('鏁版嵁涓嬭浇澶辫触锛�')
-                      })
-                      .finally(() => {
-                        this.isWorking = false
                       })
                 })
                 .catch(() => {
diff --git a/company/src/components/business/OperaApplyChangeCheckWindow.vue b/company/src/components/business/OperaApplyChangeCheckWindow.vue
new file mode 100644
index 0000000..08a4444
--- /dev/null
+++ b/company/src/components/business/OperaApplyChangeCheckWindow.vue
@@ -0,0 +1,426 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        width="50%"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <!--    閫�鍥炴姇淇�    -->
+            <div v-if="visible1==true"  class="form">
+                <div class="form_item">
+                    <div class="form_item_label"><span>*</span>濉啓閫�鍥炶鏄庯細</div>
+                    <div class="form_item_val">
+                        <textarea  v-model="form.backCheckInfo" placeholder="璇疯緭鍏�"></textarea>
+                    </div>
+                </div>
+            </div>
+        <!--    涓婁紶淇濋櫓鍗�    -->
+            <div v-if="visible3==true" class="form">
+                <div class="form_item">
+                    <div class="form_item_label">瀹㈡埛鏈熸湜鎵瑰崟鐢熸晥璧锋湡锛�</div>
+                    <div class="form_item_val">{{ model.applyStartTime }}</div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label">鎵瑰崟鐢熸晥璧锋湡鏄惁涓�鑷达細</div>
+                    <div class="form_item_val">
+                        <el-radio-group v-model="form.selectRadio" @change="selectChange">
+                            <el-radio :label="0"  >涓庢壒鍗曚竴鑷�</el-radio>
+                            <el-radio :label="1" >涓庢壒鍗曚笉涓�鑷�</el-radio>
+                        </el-radio-group>
+                    </div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label"><span>*</span>鎵瑰崟鐢熸晥璧锋湡锛�</div>
+                    <div class="form_item_val">
+                        <el-date-picker
+                            v-model="form.applyStartTime"
+                            type="date"
+                            value-format="yyyy-MM-dd HH:mm:ss"
+                            placeholder="閫夋嫨鏃ユ湡">
+                        </el-date-picker>
+                    </div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label">鎵瑰崟鐢熸晥璧锋湡锛�</div>
+                    <div class="form_item_val">{{ form.applyStartTime }}</div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label"><span>*</span>鎵瑰崟鍙凤細</div>
+                    <div class="form_item_val" >
+                        <el-input v-model="form.validCode" placeholder="璇疯緭鍏�"></el-input>
+                    </div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label">涓婁紶鎵瑰崟锛�</div>
+                    <div class="form_item_val">
+                      <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
+                    </div>
+                </div>
+            </div>
+        <!--    淇敼淇濋櫓鍗�    -->
+            <div v-if="visible4==true" class="form">
+                <div class="form_item">
+                  <div class="form_item_label">鎵瑰崟鐢熸晥璧锋湡锛�</div>
+                  <div class="form_item_val">{{ model.applyStartTime }}</div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label"><span>*</span>鎵瑰崟鍙凤細</div>
+                    <div class="form_item_val">
+                        <el-input v-model="form.editValidCode" placeholder="璇疯緭鍏�"></el-input>
+                    </div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label"><span>*</span>涓婁紶鎵瑰崟锛�</div>
+                    <div class="form_item_val">
+                      <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList2" @uploadSuccess="editBaoxianFileUploaded" />
+                    </div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label"><span>*</span>淇敼鍘熷洜锛�</div>
+                    <div class="form_item_val">
+                        <el-input placeholder="璇疯緭鍏�" v-model="form.editCheckInfo" ></el-input>
+                    </div>
+                </div>
+            </div>
+        <!--    椹冲洖閫�鍥炵敵璇�    -->
+        <div v-if="visible5==true" class="form">
+            <div class="form_item">
+                <div class="form_item_label"><span>*</span>濉啓璇存槑锛�</div>
+                <div class="form_item_val">
+                    <textarea v-model="form.dealBackInfo"  placeholder="璇疯緭鍏�"></textarea>
+                </div>
+            </div>
+        </div>
+        <!--    鍚屾剰閫�鍥炵敵璇�    -->
+        <div v-if="visible6==true" class="form">
+            <div class="form_item">
+                <div class="form_item_label"><span>*</span>鍚屾剰閫�鍥炶鏄庯細</div>
+                <div class="form_item_val">
+                    <textarea  v-model="form.dealBackInfo"  placeholder="璇疯緭鍏�"></textarea>
+                </div>
+            </div>
+        </div>
+      <template v-slot:footer>
+        <el-button type="primary" @click="doSubmit">纭� 瀹�</el-button>
+        <el-button @click="visible=false">鍙栨秷</el-button>
+      </template>
+    </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import {
+  backChagne,
+  uploadChangePidan,
+  editChangePidan,
+  dealBackChangeApply
+} from '@/api/business/insuranceApply'
+import UploadFile from '@/components/common/UploadFile'
+export default {
+  name: 'OperaApplyChangeCheckWindow',
+  extends: BaseOpera,
+  components: {UploadFile, GlobalWindow },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      model: {},
+      falg :0,
+      form: {
+          id: null,
+          backCheckInfo:'',
+          dealBackInfo:'',
+          editCheckInfo:'',
+          editValidCode: '',
+          applyStartTime:null,
+         validCode:null,
+          pidanFile:null,
+         editPidanFile:null,
+          fileList1: [],
+          fileList2: [],
+          selectRadio:0
+      },
+      visible1: false,
+      visible3: false,
+      visible4: false,
+      visible5: false,
+      visible6: false,
+    }
+  },
+  created () {
+      this.config({
+          api: '/business/insuranceApply',
+          'field.id': 'id'
+      })
+  },
+  methods: {
+     open(title,target,flag){
+       this.visible=true
+       this.model={}
+       this.form= {
+         id: null,
+         backCheckInfo:'',
+         dealBackInfo:'',
+         editCheckInfo:'',
+         editValidCode: '',
+         applyStartTime:null,
+         validCode:null,
+         pidanFile:null,
+         editPidanFile:null,
+         fileList1: [],
+         fileList2: [],
+         selectRadio:0
+       },
+       this.model=target
+       this.form.applyStartTime=this.model.applyStartTime
+       this.form.editValidCode=this.model.validCode
+       this.title=title
+       this.flag = flag
+       this.visible1 = false
+       this.visible3 = false
+       this.visible4 = false
+       this.visible5 = false
+       this.visible6 = false
+       if(flag == 1){
+         this.visible1 = true
+       }
+       if(flag == 3){
+         this.visible3 = true
+       }
+       if(flag == 4){
+         this.visible4 = true
+       }
+       if(flag == 5){
+         this.visible5 = true
+       }
+       if(flag == 6){
+         this.visible6 = true
+       }
+     },
+    doSubmit(){
+      if (this.flag == 1) {
+        this.backDo()
+      } else if (this.flag == 3) {
+        this.uploadPidan()
+      } else if (this.flag == 4) {
+        this.editPidan()
+      } else if (this.flag == 5) {
+        this.dealBackApply(1)
+      } else if (this.flag == 6) {
+        this.dealBackApply(0)
+      }
+    },
+    selectChange(){
+       if(this.form.selectRadio == 0){
+         this.form.applyStartTime = this.model.validTime
+       }else{
+
+       }
+    },
+    baoxianFileUploaded(data){
+      this.form.pidanFile=data
+    },
+    editBaoxianFileUploaded(data){
+      this.form.editPidanFile=data
+    },
+    backDo(){
+      this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
+          .then(() => {
+            this.isWorking = true
+            backChagne({id:this.model.id,checkInfo:this.form.backCheckInfo})
+                .then(response => {
+                  this.visible = false
+                  this.$emit('success')
+                  }).catch(err => {
+                this.$tip.apiFailed(err)
+                 })
+          })
+    },
+    dealBackApply(type){
+      this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
+          .then(() => {
+            this.isWorking = true
+            dealBackChangeApply({ id: this.model.id, checkInfo: this.form.dealBackInfo, dealBackApply: type })
+                .then(response => {
+                  this.visible = false
+                  this.$emit('success')
+                }).catch(err => {
+                  this.$tip.apiFailed(err)
+                })
+          })
+    },
+    uploadPidan(){
+      this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
+          .then(() => {
+            this.isWorking = true
+            uploadChangePidan({id:this.model.id,applyStartTime:this.form.applyStartTime, validCode:this.form.validCode,pidanFile:this.form.pidanFile})
+                .then(response => {
+                  this.visible = false
+                  this.$emit('success')
+                }).catch(err => {
+                  this.$tip.apiFailed(err)
+                })
+          })
+
+    },
+    editPidan(){
+      this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
+          .then(() => {
+            this.isWorking = true
+            editChangePidan({id:this.model.id, checkInfo:this.form.editCheckInfo,validCode:this.form.editValidCode,pidanFile:this.form.editPidanFile})
+                .then(response => {
+                  this.visible = false
+                  this.$emit('success')
+                }).catch(err => {
+                  this.$tip.apiFailed(err)
+                })
+          })
+    },
+      handleRemove(file, fileList) {
+          console.log(file, fileList);
+      },
+      handlePreview(file) {
+          console.log(file);
+      },
+      handleExceed(files, fileList) {
+          this.$message.warning(`褰撳墠闄愬埗閫夋嫨 3 涓枃浠讹紝鏈閫夋嫨浜� ${files.length} 涓枃浠讹紝鍏遍�夋嫨浜� ${files.length + fileList.length} 涓枃浠禶);
+      },
+      beforeRemove(file, fileList) {
+          return this.$confirm(`纭畾绉婚櫎 ${ file.name }锛焋);
+      },
+      successEvent() {
+
+      },
+      handleSizeChange(val) {
+          console.log(`姣忛〉 ${val} 鏉);
+      },
+      handleCurrentChange(val) {
+          console.log(`褰撳墠椤�: ${val}`);
+      },
+      handleClick(tab, event) {
+          console.log(tab, event);
+      },
+      onSubmit() {
+
+      }
+  }
+}
+</script>
+<style>
+
+</style>
+<style lang="scss" scoped>
+    .form {
+        width: 100%;
+        display: flex;
+        align-items: center;
+        flex-direction: column;
+        .form_span {
+            width: 100%;
+            display: flex;
+            align-items: start;
+            flex-direction: column;
+            margin-bottom: 20px;
+            span {
+                font-size: 14px;
+                &:nth-child(1) {
+                    color: black;
+                    margin-bottom: 5px;
+                }
+                &:nth-child(2) {
+                    color: #8c939d;
+                }
+            }
+        }
+        .form_item {
+            width: 100%;
+            display: flex;
+            align-items: center;
+            margin-bottom: 20px;
+            &:last-child {
+                margin: 0 !important;
+            }
+            .form_item_label {
+                flex-shrink: 0;
+                width: 170px;
+                color: black;
+                font-size: 14px;
+                span {
+                    color: red;
+                    font-size: 14px;
+                }
+            }
+            .form_item_val {
+                flex: 1;
+                /*height: 40px;*/
+                margin-left: 20px;
+                textarea {
+                    width: 100%;
+                    height: 70px;
+                    border: 1px solid #cbcbcb;
+                    padding: 10px;
+                    outline: none;
+                    box-sizing: border-box;
+                }
+                input {
+                    width: 100%;
+                    height: 40px;
+                    outline: none;
+                    border-radius: 5px;
+                    border: 1px solid #cbcbcb;
+                    padding: 0 20px;
+                    box-sizing: border-box;
+                }
+            }
+        }
+    }
+    .desc {
+        width: 100%;
+        .desc_item {
+            width: 100%;
+            display: flex;
+            flex-direction: column;
+            .desc_item_label {
+                width: 100%;
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+                margin-bottom: 10px;
+                span {
+                    font-size: 14px;
+                    color: black;
+                    margin-right: 30px;
+                }
+            }
+            .desc_item_from {
+                width: 100%;
+                margin-bottom: 10px;
+                .desc_item_from_page {
+                    width: 100%;
+                    display: flex;
+                    align-items: center;
+                    justify-content: end;
+                    margin-top: 10px;
+                }
+            }
+            .desc_item_cate {
+                width: 100%;
+                margin-bottom: 10px;
+            }
+            .desc_item_search {
+                width: 100%;
+                margin-bottom: 20px;
+            }
+            .desc_item_review {
+                width: 100%;
+                .desc_item_review_label {
+                    font-size: 20px;
+                    color: black;
+                    font-weight: bold;
+                    margin-bottom: 15px;
+                }
+            }
+        }
+    }
+</style>
diff --git a/company/src/components/business/OperaApplyChangeDetailWindow.vue b/company/src/components/business/OperaApplyChangeDetailWindow.vue
new file mode 100644
index 0000000..221bfa8
--- /dev/null
+++ b/company/src/components/business/OperaApplyChangeDetailWindow.vue
@@ -0,0 +1,464 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        width="100%"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <div class="desc">
+            <div class="desc_item">
+                <div class="desc_item_label">
+                    <div class="desc_item_label_left">
+                        <span>鎶曚繚浼佷笟锛歿{ apply.companyName }}</span>
+                      <span v-if="model.status === 0">淇濆崟鐘舵�侊細寰呯缃�</span>
+                      <span v-if="model.status === 1">淇濆崟鐘舵�侊細宸茬绔�</span>
+                      <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸蹭笂浼犳壒鍗�</span>
+                      <span v-if="model.status === 3 || model.status === 4">淇濆崟鐘舵�侊細閫�鍥炵敵璇�</span>
+                      <span v-if="model.status ===5 || model.status === 8">淇濆崟鐘舵�侊細宸查��鍥�</span>
+                      <span v-if="model.status ===7">淇濆崟鐘舵�侊細宸插叧闂�</span>
+                        <span>鎻愪氦鏃堕棿锛歿{ model.createDate }}</span>
+                    </div>
+                  <div class="desc_item_label_right">
+                      <template v-if="userInfo.type === 1">
+                          <el-button type="primary" @click="$refs.ApplyChangeDetails.open('鍔犲噺淇濊鍗�',apply,model)">瀵煎嚭璇﹀崟</el-button>
+                          <el-button v-if="model.status == 4" type="primary" @click="$refs.OperaInsuranceApply.open('鎶曚繚鐢宠', {id: dataId})">鍐嶆鎶曚繚</el-button>
+                          <el-button type="primary" v-if="model.status == 0"   @click="goSign">绛剧讲鐢宠鍗�</el-button>
+                          <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鐢宠閫�鍥�</el-button>
+                          <el-button v-if="model.status == 5" type="primary" @click="viewApplyFile">鏌ョ湅鐢宠鍗�</el-button>
+                          <el-button v-if="model.status == 5" type="primary" @click="viewPidan">鏌ョ湅鎵瑰崟</el-button>
+                          <el-button v-if="model.status == 2" type="primary" @click="closeApply">鍏抽棴璁㈠崟</el-button>
+                      </template>
+                        <template v-else>
+                            <el-button type="primary" @click="$refs.ApplyChangeDetails.open('鍔犲噺淇濊鍗�',apply,model)">瀵煎嚭璇﹀崟</el-button>
+                            <el-button v-if="[1,2,4].includes(model.status)" type="primary" @click="viewApplyFile">鏌ョ湅鐢宠鍗�</el-button>
+                            <el-button v-if="[2].includes(model.status)" type="primary" @click="viewPidan">鏌ョ湅鎵瑰崟</el-button>
+                            <el-button v-if="[1].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('涓婁紶鎵瑰崟',model,3)">涓婁紶鎵瑰崟</el-button>
+                            <el-button  v-if="[3,4].includes(model.status)"  type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button>
+                            <el-button  v-if="[0,1,3,4].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('閫�鍥炴姇淇�',model,1)">閫�鍥炴姇淇�</el-button>
+                            <el-button  v-if="[2].includes(model.status)"  type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('淇敼鎵瑰崟',model,4)">淇敼鎵瑰崟</el-button>
+                        </template>
+                  </div>
+                </div>
+                <div class="desc_item_from">
+                    <el-table
+                        :data="tableData"
+                        border
+                        style="width: 100%">
+                        <el-table-column
+                            prop="validCode"
+                            align="center"
+                            label="鎵瑰崟鍙�">
+                        </el-table-column>
+                        <el-table-column
+                            prop="applyCode"
+                            align="center"
+                            label="淇濆崟鍙�">
+                        </el-table-column>
+                        <el-table-column
+                            prop="solutionsName"
+                            label="淇濋櫓鏂规"
+                            align="center"
+                            width="180">
+                        </el-table-column>
+                        <el-table-column
+                            prop="startTime"
+                            align="center"
+                            label="淇濋櫓鐢熸晥璧锋湡">
+                        </el-table-column>
+                        <el-table-column
+                            prop="endTime"
+                            align="center"
+                            label="淇濋櫓鐢熸晥姝㈡湡">
+                        </el-table-column>
+                      <el-table-column
+                          prop="applyStartTime"
+                          align="center"
+                          label="鎵瑰崟鐢熸晥璧锋湡">
+                      </el-table-column>
+                        <el-table-column
+                            prop="addNum"
+                            align="center"
+                            label="鍔犱繚浜烘暟">
+                        </el-table-column>
+                        <el-table-column
+                            prop="delNum"
+                            align="center"
+                            label="鍑忎繚浜烘暟">
+                        </el-table-column>
+                        <el-table-column
+                            prop="fee"
+                            align="center"
+                            label="璐圭敤鍙樻洿锛堝厓锛�">
+                        </el-table-column>
+                    </el-table>
+                </div>
+                <div class="desc_item_cate">
+                    <el-tabs v-model="activeName" @tab-click="handleClick">
+                        <el-tab-pane label="鍔犱繚璁板綍" name="0"></el-tab-pane>
+                        <el-tab-pane label="鍑忎繚璁板綍" name="1"></el-tab-pane>
+                    </el-tabs>
+                </div>
+                <div class="desc_item_from">
+                    <el-table
+                        :data="list"
+                        border
+                        style="width: 100%">
+                        <el-table-column label="搴忓彿">
+                            <template slot-scope="scope">
+                                <span>{{scope.$index + 1}}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column
+                            prop="memberName"
+                            label="鍛樺伐濮撳悕">
+                        </el-table-column>
+                        <el-table-column
+                            label="鎬у埆">
+                            <template slot-scope="{row}">
+                                <span v-if="row.sex === 0">鐢�</span>
+                                <span v-else>濂�</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column
+                            prop="memberIdcardNo"
+                            label="韬唤璇佸彿">
+                        </el-table-column>
+                        <el-table-column
+                            prop="duName"
+                            label="娲鹃仯鍗曚綅">
+                        </el-table-column>
+                        <el-table-column
+                            prop="workTypeName"
+                            label="鎵�灞炲伐绉�">
+                        </el-table-column>
+                        <el-table-column
+                            prop="startTime"
+                            label="淇濋櫓鐢熸晥璧锋湡">
+                        </el-table-column>
+                        <el-table-column
+                            prop="endTime"
+                            label="淇濋櫓鐢熸晥姝㈡湡">
+                        </el-table-column>
+                        <el-table-column
+                            prop="fee"
+                            label="浜х敓璐圭敤锛堝厓锛�">
+                        </el-table-column>
+                    </el-table>
+                    <div class="desc_item_from_page">
+                        <el-pagination
+                            @current-change="handleCurrentChange"
+                            :current-page="currentPage"
+                            :page-size="10"
+                            layout="total, prev, pager, next, jumper"
+                            :total="total">
+                        </el-pagination>
+                    </div>
+                </div>
+                <div class="desc_item_review">
+                    <div class="desc_item_review_label">瀹℃牳娴佺▼</div>
+                  <el-timeline :reverse="reverse">
+                    <el-timeline-item
+                        v-for="(activity, index) in activities"
+                        :key="index">
+                      <div style="display: flex; flex-direction: column;">
+                                <span style="font-size: 16px; font-weight: 400; color: black;">
+                                    {{activity.title}}
+                                    <span style="font-size: 16px; font-weight: 400; color: black; margin-left: 10px;" >
+                                        {{activity.content}}
+                                    </span>
+                                </span>
+                        <span style="margin-top: 5px; font-size: 12px; font-weight: 400; color: #999999;">
+                                    鎿嶄綔鍛�-{{activity.creatorName}}锛坽{activity.creatorType==1? activity.companyName: "骞冲彴绔�"}}锛墈{activity.createDate}}
+                                </span>
+                      </div>
+                    </el-timeline-item>
+                  </el-timeline>
+                </div>
+            </div>
+        </div>
+        <ApplyChangeDetails ref="ApplyChangeDetails" @success="successEvent" />
+        <OperaApplyChangeCheckWindow ref="OperaApplyChangeCheckWindow" @success="successEvent" />
+        <!--    浼佷笟鐢宠閫�鍥�    -->
+        <applyReturn ref="applyReturn" @success="successEvent" />
+        <!--    鏂板鎶曚繚    -->
+        <OperaInsuranceApply ref="OperaInsuranceApply" @success="successEvent" />
+        <!--    鍔犲噺淇濈敵璇�    -->
+        <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
+        <!--    鎹㈠巶鐢宠    -->
+        <factoryChange ref="factoryChange" @success="successEvent" />
+    </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import ApplyChangeDetails from '@/components/business/ApplyChangeDetails'
+import OperaApplyChangeCheckWindow from '@/components/business/OperaApplyChangeCheckWindow'
+import additionSubtractionApplication from '@/components/enterprise/additionSubtractionApplication'
+import factoryChange from '@/components/enterprise/factoryChange'
+import applyReturn from '@/components/enterprise/applyReturn'
+import {
+  getDetail,
+  getChangeDetail,
+  applyChagneDetailPage,
+  getJiajianBaoSignLink
+} from '@/api/business/insuranceApply'
+import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow'
+import { mapState } from 'vuex'
+
+export default {
+  name: 'OperaApplyChangeDetailWindow',
+  extends: BaseOpera,
+  components: {
+      GlobalWindow,
+      ApplyChangeDetails,
+      OperaApplyChangeCheckWindow,
+      applyReturn,
+      OperaInsuranceApply,
+      additionSubtractionApplication,
+      factoryChange
+  },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      dataId:null,
+      modelId:null,
+      apply:{},
+      model: {},
+      form: {
+          id: null,
+          editDate: ''
+      },
+      // 楠岃瘉瑙勫垯
+      rules: {
+      },
+      formInline: {
+          applyStatus: '',
+          duId: '',
+          workTypeId: '',
+          memberName: '',
+          types: ''
+      },
+      reverse: true,
+      radio: 0,
+      activities: [],
+      tableData: [],
+        list: [],
+      activeName: '0',
+        total: 0,
+      currentPage: 1
+    }
+  },
+  created () {
+      this.config({
+          api: '/business/insuranceApply',
+          'field.id': 'id'
+      })
+  },
+    computed: {
+      ...mapState(['userInfo'])
+    },
+  methods: {
+     open(title,target){
+        this.visible = true;
+        this.title = title
+        this.dataId = target.applyId
+        this.modelId = target.id
+        this.getDetail()
+        this.getList()
+     },
+      resetting() {
+            this.search()
+      },
+      search() {
+          this.currentPage = 1
+          this.getList()
+      },
+      getList() {
+           applyChagneDetailPage({
+               capacity: 10,
+               page: this.currentPage,
+               model: {
+                   applyChangId: this.modelId,
+                   types:[ this.activeName]
+               }
+           }).then(res => {
+               this.list = res.records
+               this.total = res.total
+           })
+      },
+      handleClick(e) {
+        this.activeName = e.index
+        this.resetting()
+      },
+    goSign(){
+      getJiajianBaoSignLink({id:this.modelId}).then(res => {
+        setTimeout(() => {
+          window.open(res)
+        }, 500);
+      }).catch(err => {
+       this.$tip.apiFailed(err)
+      })
+    },
+    viewApplyFile(){
+       if(this.model.applyFile && this.model.applyFile.fileurlFull){
+        window.open(this.model.applyFile.fileurlFull)
+       }
+    },
+    viewPidan(){
+      if(this.model.pidanFile && this.model.pidanFile.fileurlFull){
+        window.open(this.model.pidanFile.fileurlFull)
+      }
+    },
+    handleSizeChange(val){
+        console.log(val)
+    },
+    handleCurrentChange(val){
+        console.log(val)
+        this.page = val
+        this.getList()
+    },
+    onSubmit(){
+
+    },
+    getDetail(){
+      getDetail(this.dataId).then(res => {
+        this.apply = res
+        console.log(this.tableData)
+      }).catch(err => {
+      })
+      getChangeDetail(this.modelId).then(res => {
+        this.model = res
+        this.tableData = new Array()
+        this.tableData.push(res)
+        console.log(this.tableData)
+        this.activities = res.applyLogList
+      }).catch(err => {
+      })
+    },
+    successEvent(){
+       // this.visible=false
+      this.getDetail()
+      this.$emit('success')
+    }
+  }
+}
+</script>
+<style>
+
+</style>
+<style lang="scss" scoped>
+    .form {
+        width: 100%;
+        display: flex;
+        align-items: center;
+        flex-direction: column;
+        .form_span {
+            width: 100%;
+            display: flex;
+            align-items: start;
+            flex-direction: column;
+            margin-bottom: 20px;
+            span {
+                font-size: 14px;
+                &:nth-child(1) {
+                    color: black;
+                    margin-bottom: 5px;
+                }
+                &:nth-child(2) {
+                    color: #8c939d;
+                }
+            }
+        }
+        .form_item {
+            width: 100%;
+            display: flex;
+            align-items: center;
+            margin-bottom: 20px;
+            &:last-child {
+                margin: 0 !important;
+            }
+            .form_item_label {
+                flex-shrink: 0;
+                width: 170px;
+                color: black;
+                font-size: 14px;
+                span {
+                    color: red;
+                    font-size: 14px;
+                }
+            }
+            .form_item_val {
+                flex: 1;
+                /*height: 40px;*/
+                margin-left: 20px;
+                textarea {
+                    width: 100%;
+                    height: 70px;
+                    border: 1px solid #cbcbcb;
+                    padding: 10px;
+                    outline: none;
+                    box-sizing: border-box;
+                }
+                input {
+                    width: 100%;
+                    height: 40px;
+                    outline: none;
+                    border-radius: 5px;
+                    border: 1px solid #cbcbcb;
+                    padding: 0 20px;
+                    box-sizing: border-box;
+                }
+            }
+        }
+    }
+    .desc {
+        width: 100%;
+        .desc_item {
+            width: 100%;
+            display: flex;
+            flex-direction: column;
+            .desc_item_label {
+                width: 100%;
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+                margin-bottom: 10px;
+                span {
+                    font-size: 14px;
+                    color: black;
+                    margin-right: 30px;
+                }
+            }
+            .desc_item_from {
+                width: 100%;
+                margin-bottom: 10px;
+                .desc_item_from_page {
+                    width: 100%;
+                    display: flex;
+                    align-items: center;
+                    justify-content: end;
+                    margin-top: 10px;
+                }
+            }
+            .desc_item_cate {
+                width: 100%;
+                margin-bottom: 10px;
+            }
+            .desc_item_search {
+                width: 100%;
+                margin-bottom: 20px;
+            }
+            .desc_item_review {
+                width: 100%;
+                .desc_item_review_label {
+                    font-size: 20px;
+                    color: black;
+                    font-weight: bold;
+                    margin-bottom: 15px;
+                }
+            }
+        }
+    }
+</style>
diff --git a/company/src/components/business/OperaApplyChangeUnitCheckWindow.vue b/company/src/components/business/OperaApplyChangeUnitCheckWindow.vue
new file mode 100644
index 0000000..08a4444
--- /dev/null
+++ b/company/src/components/business/OperaApplyChangeUnitCheckWindow.vue
@@ -0,0 +1,426 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        width="50%"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <!--    閫�鍥炴姇淇�    -->
+            <div v-if="visible1==true"  class="form">
+                <div class="form_item">
+                    <div class="form_item_label"><span>*</span>濉啓閫�鍥炶鏄庯細</div>
+                    <div class="form_item_val">
+                        <textarea  v-model="form.backCheckInfo" placeholder="璇疯緭鍏�"></textarea>
+                    </div>
+                </div>
+            </div>
+        <!--    涓婁紶淇濋櫓鍗�    -->
+            <div v-if="visible3==true" class="form">
+                <div class="form_item">
+                    <div class="form_item_label">瀹㈡埛鏈熸湜鎵瑰崟鐢熸晥璧锋湡锛�</div>
+                    <div class="form_item_val">{{ model.applyStartTime }}</div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label">鎵瑰崟鐢熸晥璧锋湡鏄惁涓�鑷达細</div>
+                    <div class="form_item_val">
+                        <el-radio-group v-model="form.selectRadio" @change="selectChange">
+                            <el-radio :label="0"  >涓庢壒鍗曚竴鑷�</el-radio>
+                            <el-radio :label="1" >涓庢壒鍗曚笉涓�鑷�</el-radio>
+                        </el-radio-group>
+                    </div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label"><span>*</span>鎵瑰崟鐢熸晥璧锋湡锛�</div>
+                    <div class="form_item_val">
+                        <el-date-picker
+                            v-model="form.applyStartTime"
+                            type="date"
+                            value-format="yyyy-MM-dd HH:mm:ss"
+                            placeholder="閫夋嫨鏃ユ湡">
+                        </el-date-picker>
+                    </div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label">鎵瑰崟鐢熸晥璧锋湡锛�</div>
+                    <div class="form_item_val">{{ form.applyStartTime }}</div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label"><span>*</span>鎵瑰崟鍙凤細</div>
+                    <div class="form_item_val" >
+                        <el-input v-model="form.validCode" placeholder="璇疯緭鍏�"></el-input>
+                    </div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label">涓婁紶鎵瑰崟锛�</div>
+                    <div class="form_item_val">
+                      <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
+                    </div>
+                </div>
+            </div>
+        <!--    淇敼淇濋櫓鍗�    -->
+            <div v-if="visible4==true" class="form">
+                <div class="form_item">
+                  <div class="form_item_label">鎵瑰崟鐢熸晥璧锋湡锛�</div>
+                  <div class="form_item_val">{{ model.applyStartTime }}</div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label"><span>*</span>鎵瑰崟鍙凤細</div>
+                    <div class="form_item_val">
+                        <el-input v-model="form.editValidCode" placeholder="璇疯緭鍏�"></el-input>
+                    </div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label"><span>*</span>涓婁紶鎵瑰崟锛�</div>
+                    <div class="form_item_val">
+                      <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList2" @uploadSuccess="editBaoxianFileUploaded" />
+                    </div>
+                </div>
+                <div class="form_item">
+                    <div class="form_item_label"><span>*</span>淇敼鍘熷洜锛�</div>
+                    <div class="form_item_val">
+                        <el-input placeholder="璇疯緭鍏�" v-model="form.editCheckInfo" ></el-input>
+                    </div>
+                </div>
+            </div>
+        <!--    椹冲洖閫�鍥炵敵璇�    -->
+        <div v-if="visible5==true" class="form">
+            <div class="form_item">
+                <div class="form_item_label"><span>*</span>濉啓璇存槑锛�</div>
+                <div class="form_item_val">
+                    <textarea v-model="form.dealBackInfo"  placeholder="璇疯緭鍏�"></textarea>
+                </div>
+            </div>
+        </div>
+        <!--    鍚屾剰閫�鍥炵敵璇�    -->
+        <div v-if="visible6==true" class="form">
+            <div class="form_item">
+                <div class="form_item_label"><span>*</span>鍚屾剰閫�鍥炶鏄庯細</div>
+                <div class="form_item_val">
+                    <textarea  v-model="form.dealBackInfo"  placeholder="璇疯緭鍏�"></textarea>
+                </div>
+            </div>
+        </div>
+      <template v-slot:footer>
+        <el-button type="primary" @click="doSubmit">纭� 瀹�</el-button>
+        <el-button @click="visible=false">鍙栨秷</el-button>
+      </template>
+    </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import {
+  backChagne,
+  uploadChangePidan,
+  editChangePidan,
+  dealBackChangeApply
+} from '@/api/business/insuranceApply'
+import UploadFile from '@/components/common/UploadFile'
+export default {
+  name: 'OperaApplyChangeCheckWindow',
+  extends: BaseOpera,
+  components: {UploadFile, GlobalWindow },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      model: {},
+      falg :0,
+      form: {
+          id: null,
+          backCheckInfo:'',
+          dealBackInfo:'',
+          editCheckInfo:'',
+          editValidCode: '',
+          applyStartTime:null,
+         validCode:null,
+          pidanFile:null,
+         editPidanFile:null,
+          fileList1: [],
+          fileList2: [],
+          selectRadio:0
+      },
+      visible1: false,
+      visible3: false,
+      visible4: false,
+      visible5: false,
+      visible6: false,
+    }
+  },
+  created () {
+      this.config({
+          api: '/business/insuranceApply',
+          'field.id': 'id'
+      })
+  },
+  methods: {
+     open(title,target,flag){
+       this.visible=true
+       this.model={}
+       this.form= {
+         id: null,
+         backCheckInfo:'',
+         dealBackInfo:'',
+         editCheckInfo:'',
+         editValidCode: '',
+         applyStartTime:null,
+         validCode:null,
+         pidanFile:null,
+         editPidanFile:null,
+         fileList1: [],
+         fileList2: [],
+         selectRadio:0
+       },
+       this.model=target
+       this.form.applyStartTime=this.model.applyStartTime
+       this.form.editValidCode=this.model.validCode
+       this.title=title
+       this.flag = flag
+       this.visible1 = false
+       this.visible3 = false
+       this.visible4 = false
+       this.visible5 = false
+       this.visible6 = false
+       if(flag == 1){
+         this.visible1 = true
+       }
+       if(flag == 3){
+         this.visible3 = true
+       }
+       if(flag == 4){
+         this.visible4 = true
+       }
+       if(flag == 5){
+         this.visible5 = true
+       }
+       if(flag == 6){
+         this.visible6 = true
+       }
+     },
+    doSubmit(){
+      if (this.flag == 1) {
+        this.backDo()
+      } else if (this.flag == 3) {
+        this.uploadPidan()
+      } else if (this.flag == 4) {
+        this.editPidan()
+      } else if (this.flag == 5) {
+        this.dealBackApply(1)
+      } else if (this.flag == 6) {
+        this.dealBackApply(0)
+      }
+    },
+    selectChange(){
+       if(this.form.selectRadio == 0){
+         this.form.applyStartTime = this.model.validTime
+       }else{
+
+       }
+    },
+    baoxianFileUploaded(data){
+      this.form.pidanFile=data
+    },
+    editBaoxianFileUploaded(data){
+      this.form.editPidanFile=data
+    },
+    backDo(){
+      this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
+          .then(() => {
+            this.isWorking = true
+            backChagne({id:this.model.id,checkInfo:this.form.backCheckInfo})
+                .then(response => {
+                  this.visible = false
+                  this.$emit('success')
+                  }).catch(err => {
+                this.$tip.apiFailed(err)
+                 })
+          })
+    },
+    dealBackApply(type){
+      this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
+          .then(() => {
+            this.isWorking = true
+            dealBackChangeApply({ id: this.model.id, checkInfo: this.form.dealBackInfo, dealBackApply: type })
+                .then(response => {
+                  this.visible = false
+                  this.$emit('success')
+                }).catch(err => {
+                  this.$tip.apiFailed(err)
+                })
+          })
+    },
+    uploadPidan(){
+      this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
+          .then(() => {
+            this.isWorking = true
+            uploadChangePidan({id:this.model.id,applyStartTime:this.form.applyStartTime, validCode:this.form.validCode,pidanFile:this.form.pidanFile})
+                .then(response => {
+                  this.visible = false
+                  this.$emit('success')
+                }).catch(err => {
+                  this.$tip.apiFailed(err)
+                })
+          })
+
+    },
+    editPidan(){
+      this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
+          .then(() => {
+            this.isWorking = true
+            editChangePidan({id:this.model.id, checkInfo:this.form.editCheckInfo,validCode:this.form.editValidCode,pidanFile:this.form.editPidanFile})
+                .then(response => {
+                  this.visible = false
+                  this.$emit('success')
+                }).catch(err => {
+                  this.$tip.apiFailed(err)
+                })
+          })
+    },
+      handleRemove(file, fileList) {
+          console.log(file, fileList);
+      },
+      handlePreview(file) {
+          console.log(file);
+      },
+      handleExceed(files, fileList) {
+          this.$message.warning(`褰撳墠闄愬埗閫夋嫨 3 涓枃浠讹紝鏈閫夋嫨浜� ${files.length} 涓枃浠讹紝鍏遍�夋嫨浜� ${files.length + fileList.length} 涓枃浠禶);
+      },
+      beforeRemove(file, fileList) {
+          return this.$confirm(`纭畾绉婚櫎 ${ file.name }锛焋);
+      },
+      successEvent() {
+
+      },
+      handleSizeChange(val) {
+          console.log(`姣忛〉 ${val} 鏉);
+      },
+      handleCurrentChange(val) {
+          console.log(`褰撳墠椤�: ${val}`);
+      },
+      handleClick(tab, event) {
+          console.log(tab, event);
+      },
+      onSubmit() {
+
+      }
+  }
+}
+</script>
+<style>
+
+</style>
+<style lang="scss" scoped>
+    .form {
+        width: 100%;
+        display: flex;
+        align-items: center;
+        flex-direction: column;
+        .form_span {
+            width: 100%;
+            display: flex;
+            align-items: start;
+            flex-direction: column;
+            margin-bottom: 20px;
+            span {
+                font-size: 14px;
+                &:nth-child(1) {
+                    color: black;
+                    margin-bottom: 5px;
+                }
+                &:nth-child(2) {
+                    color: #8c939d;
+                }
+            }
+        }
+        .form_item {
+            width: 100%;
+            display: flex;
+            align-items: center;
+            margin-bottom: 20px;
+            &:last-child {
+                margin: 0 !important;
+            }
+            .form_item_label {
+                flex-shrink: 0;
+                width: 170px;
+                color: black;
+                font-size: 14px;
+                span {
+                    color: red;
+                    font-size: 14px;
+                }
+            }
+            .form_item_val {
+                flex: 1;
+                /*height: 40px;*/
+                margin-left: 20px;
+                textarea {
+                    width: 100%;
+                    height: 70px;
+                    border: 1px solid #cbcbcb;
+                    padding: 10px;
+                    outline: none;
+                    box-sizing: border-box;
+                }
+                input {
+                    width: 100%;
+                    height: 40px;
+                    outline: none;
+                    border-radius: 5px;
+                    border: 1px solid #cbcbcb;
+                    padding: 0 20px;
+                    box-sizing: border-box;
+                }
+            }
+        }
+    }
+    .desc {
+        width: 100%;
+        .desc_item {
+            width: 100%;
+            display: flex;
+            flex-direction: column;
+            .desc_item_label {
+                width: 100%;
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+                margin-bottom: 10px;
+                span {
+                    font-size: 14px;
+                    color: black;
+                    margin-right: 30px;
+                }
+            }
+            .desc_item_from {
+                width: 100%;
+                margin-bottom: 10px;
+                .desc_item_from_page {
+                    width: 100%;
+                    display: flex;
+                    align-items: center;
+                    justify-content: end;
+                    margin-top: 10px;
+                }
+            }
+            .desc_item_cate {
+                width: 100%;
+                margin-bottom: 10px;
+            }
+            .desc_item_search {
+                width: 100%;
+                margin-bottom: 20px;
+            }
+            .desc_item_review {
+                width: 100%;
+                .desc_item_review_label {
+                    font-size: 20px;
+                    color: black;
+                    font-weight: bold;
+                    margin-bottom: 15px;
+                }
+            }
+        }
+    }
+</style>
diff --git a/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue b/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
new file mode 100644
index 0000000..dffd29c
--- /dev/null
+++ b/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
@@ -0,0 +1,453 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        width="100%"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <div class="desc">
+            <div class="desc_item">
+                <div class="desc_item_label">
+                    <div class="desc_item_label_left">
+                        <span>鎶曚繚浼佷笟锛歿{ apply.companyName }}</span>
+                      <span v-if="model.status === 0">淇濆崟鐘舵�侊細寰呯缃�</span>
+                      <span v-if="model.status === 1">淇濆崟鐘舵�侊細宸茬绔�</span>
+                      <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸蹭笂浼犳壒鍗�</span>
+                      <span v-if="model.status === 3 || model.status === 4">淇濆崟鐘舵�侊細閫�鍥炵敵璇�</span>
+                      <span v-if="model.status ===5 || model.status === 8">淇濆崟鐘舵�侊細宸查��鍥�</span>
+                      <span v-if="model.status ===7">淇濆崟鐘舵�侊細宸插叧闂�</span>
+                        <span>鎻愪氦鏃堕棿锛歿{ model.createDate }}</span>
+                    </div>
+                  <div class="desc_item_label_right">
+                      <template v-if="userInfo.type === 1">
+                          <el-button v-if="[0, 2, 3, 10].includes(model.status)" type="danger" @click="$refs.applyReturn.open('鐢宠閫�鍥�', {id: dataId})">鐢宠閫�鍥�</el-button>
+                          <el-button v-if="model.status == 4" type="primary" @click="$refs.OperaInsuranceApply.open('鎶曚繚鐢宠', {id: dataId})">鍐嶆鎶曚繚</el-button>
+                          <el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">绛剧讲鐢宠鍗�</el-button>
+                          <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鐢宠閫�鍥�</el-button>
+                          <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅鐢宠鍗�</el-button>
+                          <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅鎵瑰崟</el-button>
+                          <el-button v-if="model.status == 2" type="primary" @click="goSign">鍏抽棴璁㈠崟</el-button>
+                      </template>
+                        <template v-else>
+                            <el-button type="primary" @click="$refs.ApplyChangeDetails.open('鎹㈠巶鐢宠璇﹀崟',apply,model)">瀵煎嚭璇﹀崟</el-button>
+                           <el-button type="primary" v-if="model.status == 0"   @click="goSign">绛剧讲鐢宠鍗�</el-button>
+                            <el-button v-if="[1,2,4].includes(model.status)" type="primary" @click="viewApplyFile">鏌ョ湅鐢宠鍗�</el-button>
+                            <el-button v-if="[2].includes(model.status)" type="primary" @click="viewPidan">鏌ョ湅鎵瑰崟</el-button>
+                            <el-button v-if="[1].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('涓婁紶鎵瑰崟',model,3)">涓婁紶鎵瑰崟</el-button>
+                            <el-button  v-if="[3,4].includes(model.status)"  type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button>
+                            <el-button  v-if="[0,1,3,4].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('閫�鍥炴姇淇�',model,1)">閫�鍥炴姇淇�</el-button>
+                            <el-button  v-if="[2].includes(model.status)"  type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('淇敼鎵瑰崟',model,4)">淇敼鎵瑰崟</el-button>
+                        </template>
+                  </div>
+                </div>
+                <div class="desc_item_from">
+                    <el-table
+                        :data="tableData"
+                        border
+                        style="width: 100%">
+                        <el-table-column
+                            prop="validCode"
+                            align="center"
+                            label="鎵瑰崟鍙�">
+                        </el-table-column>
+                        <el-table-column
+                            prop="applyCode"
+                            align="center"
+                            label="鍏宠仈淇濆崟鍙�">
+                        </el-table-column>
+                        <el-table-column
+                            prop="solutionsName"
+                            label="淇濋櫓鏂规"
+                            align="center"
+                            width="180">
+                        </el-table-column>
+                        <el-table-column
+                            prop="startTime"
+                            align="center"
+                            label="淇濋櫓鐢熸晥璧锋湡">
+                        </el-table-column>
+                        <el-table-column
+                            prop="endTime"
+                            align="center"
+                            label="淇濋櫓鐢熸晥姝㈡湡">
+                        </el-table-column>
+                      <el-table-column
+                          prop="applyStartTime"
+                          align="center"
+                          label="鎵瑰崟鐢熸晥璧锋湡">
+                      </el-table-column>
+                        <el-table-column
+                            prop="changeNum"
+                            align="center"
+                            label="鎹㈠巶浜烘暟">
+                        </el-table-column>
+                    </el-table>
+                </div>
+                <div class="desc_item_from">
+                    <el-table
+                        :data="list"
+                        border
+                        style="width: 100%">
+                        <el-table-column label="搴忓彿">
+                            <template slot-scope="scope">
+                                <span>{{scope.$index + 1}}</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column
+                            prop="memberName"
+                            label="鍛樺伐濮撳悕">
+                        </el-table-column>
+                        <el-table-column
+                            label="鎬у埆">
+                            <template slot-scope="{row}">
+                                <span v-if="row.sex === 0">鐢�</span>
+                                <span v-else>濂�</span>
+                            </template>
+                        </el-table-column>
+                        <el-table-column
+                            prop="memberIdcardNo"
+                            label="韬唤璇佸彿">
+                        </el-table-column>
+                        <el-table-column
+                            prop="oldDuName"
+                            label="鍘熸淳閬e崟浣�">
+                        </el-table-column>
+                        <el-table-column
+                            prop="oldWorkTypeName"
+                            label="鍘熸墍灞炲伐绉�">
+                        </el-table-column>
+                        <el-table-column
+                            prop="startTime"
+                            label="淇濋櫓鐢熸晥璧锋湡">
+                        </el-table-column>
+                      <el-table-column
+                          prop="duName"
+                          label="鎹㈠巶鍚庢淳閬e崟浣�">
+                      </el-table-column>
+                      <el-table-column
+                          prop="workTypeName"
+                          label="鎹㈠巶鍚庢墍灞炲伐绉�">
+                      </el-table-column>
+                      <el-table-column
+                          prop="endTime"
+                          label="淇濋櫓鐢熸晥姝㈡湡">
+                      </el-table-column>
+                    </el-table>
+                    <div class="desc_item_from_page">
+                        <el-pagination
+                            @current-change="handleCurrentChange"
+                            :current-page="currentPage"
+                            :page-size="10"
+                            layout="total, prev, pager, next, jumper"
+                            :total="total">
+                        </el-pagination>
+                    </div>
+                </div>
+                <div class="desc_item_review">
+                    <div class="desc_item_review_label">瀹℃牳娴佺▼</div>
+                  <el-timeline :reverse="reverse">
+                    <el-timeline-item
+                        v-for="(activity, index) in activities"
+                        :key="index">
+                      <div style="display: flex; flex-direction: column;">
+                                <span style="font-size: 16px; font-weight: 400; color: black;">
+                                    {{activity.title}}
+                                    <span style="font-size: 16px; font-weight: 400; color: black; margin-left: 10px;"   >
+                                       {{activity.content}}
+                                    </span>
+                                </span>
+                        <span style="margin-top: 5px; font-size: 12px; font-weight: 400; color: #999999;">
+                                    鎿嶄綔鍛�-{{activity.creatorName}}锛坽{activity.creatorType==1? activity.companyName: "骞冲彴绔�"}}锛墈{activity.createDate}}
+                                </span>
+                      </div>
+                    </el-timeline-item>
+                  </el-timeline>
+                </div>
+            </div>
+        </div>
+        <ApplyChangeUnitDetails ref="ApplyChangeDetails" @success="successEvent" />
+        <OperaApplyChangeUnitCheckWindow ref="OperaApplyChangeCheckWindow" @success="successEvent" />
+        <!--    浼佷笟鐢宠閫�鍥�    -->
+        <applyReturn ref="applyReturn" @success="successEvent" />
+        <!--    鏂板鎶曚繚    -->
+        <OperaInsuranceApply ref="OperaInsuranceApply" @success="successEvent" />
+        <!--    鍔犲噺淇濈敵璇�    -->
+        <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
+        <!--    鎹㈠巶鐢宠    -->
+        <factoryChange ref="factoryChange" @success="successEvent" />
+    </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import ApplyChangeUnitDetails from '@/components/business/ApplyChangeUnitDetails'
+import OperaApplyChangeUnitCheckWindow from '@/components/business/OperaApplyChangeUnitCheckWindow'
+import additionSubtractionApplication from '@/components/enterprise/additionSubtractionApplication'
+import factoryChange from '@/components/enterprise/factoryChange'
+import applyReturn from '@/components/enterprise/applyReturn'
+import {
+  getDetail,
+  getChangeDetail,
+  applyChagneDetailPage,
+  getChangeUnitSignLink
+} from '@/api/business/insuranceApply'
+import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow'
+import { mapState } from 'vuex'
+
+export default {
+  name: 'OperaApplyChangeDetailWindow',
+  extends: BaseOpera,
+  components: {
+      GlobalWindow,
+    ApplyChangeUnitDetails,
+    OperaApplyChangeUnitCheckWindow,
+      applyReturn,
+      OperaInsuranceApply,
+      additionSubtractionApplication,
+      factoryChange
+  },
+  data () {
+    return {
+      // 琛ㄥ崟鏁版嵁
+      dataId:null,
+      modelId:null,
+      apply:{},
+      model: {},
+      form: {
+          id: null,
+          editDate: ''
+      },
+      // 楠岃瘉瑙勫垯
+      rules: {
+      },
+      formInline: {
+          applyStatus: '',
+          duId: '',
+          workTypeId: '',
+          memberName: '',
+          types: ''
+      },
+      reverse: true,
+      radio: 0,
+      activities: [],
+      tableData: [],
+        list: [],
+      activeName: '0',
+        total: 0,
+      currentPage: 1
+    }
+  },
+  created () {
+      this.config({
+          api: '/business/insuranceApply',
+          'field.id': 'id'
+      })
+  },
+    computed: {
+      ...mapState(['userInfo'])
+    },
+  methods: {
+     open(title,target){
+        this.visible = true;
+        this.title = title
+        this.dataId = target.applyId
+        this.modelId = target.id
+        this.getDetail()
+        this.getList()
+     },
+      resetting() {
+            this.search()
+      },
+      search() {
+          this.currentPage = 1
+          this.getList()
+      },
+      getList() {
+           applyChagneDetailPage({
+               capacity: 10,
+               page: this.currentPage,
+               model: {
+                   applyChangId: this.modelId,
+                   types:[2]
+               }
+           }).then(res => {
+               this.list = res.records
+               this.total = res.total
+           })
+      },
+      handleClick(e) {
+        this.activeName = e.index
+        this.resetting()
+      },
+    goSign(){
+      getChangeUnitSignLink({id:this.modelId}).then(res => {
+        setTimeout(() => {
+          window.open(res)
+        }, 500);
+      }).catch(err => {
+       this.$tip.apiFailed(err)
+      })
+    },
+    viewApplyFile(){
+       if(this.model.applyUnitFile && this.model.applyUnitFile.fileurlFull){
+        window.open(this.model.applyUnitFile.fileurlFull)
+       }
+    },
+    viewPidan(){
+      if(this.model.pidanFile && this.model.pidanFile.fileurlFull){
+        window.open(this.model.pidanFile.fileurlFull)
+      }
+    },
+    handleSizeChange(val){
+        console.log(val)
+    },
+    handleCurrentChange(val){
+        console.log(val)
+        this.page = val
+        this.getList()
+    },
+    onSubmit(){
+
+    },
+    getDetail(){
+      getDetail(this.dataId).then(res => {
+        this.apply = res
+        console.log(this.tableData)
+      }).catch(err => {
+      })
+      getChangeDetail(this.modelId).then(res => {
+        this.model = res
+        this.tableData = new Array()
+        this.tableData.push(res)
+        console.log(this.tableData)
+        this.activities = res.applyLogList
+      }).catch(err => {
+      })
+    },
+    successEvent(){
+       // this.visible=false
+      this.getDetail()
+      this.$emit('success')
+    }
+  }
+}
+</script>
+<style>
+
+</style>
+<style lang="scss" scoped>
+    .form {
+        width: 100%;
+        display: flex;
+        align-items: center;
+        flex-direction: column;
+        .form_span {
+            width: 100%;
+            display: flex;
+            align-items: start;
+            flex-direction: column;
+            margin-bottom: 20px;
+            span {
+                font-size: 14px;
+                &:nth-child(1) {
+                    color: black;
+                    margin-bottom: 5px;
+                }
+                &:nth-child(2) {
+                    color: #8c939d;
+                }
+            }
+        }
+        .form_item {
+            width: 100%;
+            display: flex;
+            align-items: center;
+            margin-bottom: 20px;
+            &:last-child {
+                margin: 0 !important;
+            }
+            .form_item_label {
+                flex-shrink: 0;
+                width: 170px;
+                color: black;
+                font-size: 14px;
+                span {
+                    color: red;
+                    font-size: 14px;
+                }
+            }
+            .form_item_val {
+                flex: 1;
+                /*height: 40px;*/
+                margin-left: 20px;
+                textarea {
+                    width: 100%;
+                    height: 70px;
+                    border: 1px solid #cbcbcb;
+                    padding: 10px;
+                    outline: none;
+                    box-sizing: border-box;
+                }
+                input {
+                    width: 100%;
+                    height: 40px;
+                    outline: none;
+                    border-radius: 5px;
+                    border: 1px solid #cbcbcb;
+                    padding: 0 20px;
+                    box-sizing: border-box;
+                }
+            }
+        }
+    }
+    .desc {
+        width: 100%;
+        .desc_item {
+            width: 100%;
+            display: flex;
+            flex-direction: column;
+            .desc_item_label {
+                width: 100%;
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+                margin-bottom: 10px;
+                span {
+                    font-size: 14px;
+                    color: black;
+                    margin-right: 30px;
+                }
+            }
+            .desc_item_from {
+                width: 100%;
+                margin-bottom: 10px;
+                .desc_item_from_page {
+                    width: 100%;
+                    display: flex;
+                    align-items: center;
+                    justify-content: end;
+                    margin-top: 10px;
+                }
+            }
+            .desc_item_cate {
+                width: 100%;
+                margin-bottom: 10px;
+            }
+            .desc_item_search {
+                width: 100%;
+                margin-bottom: 20px;
+            }
+            .desc_item_review {
+                width: 100%;
+                .desc_item_review_label {
+                    font-size: 20px;
+                    color: black;
+                    font-weight: bold;
+                    margin-bottom: 15px;
+                }
+            }
+        }
+    }
+</style>
diff --git a/company/src/components/business/OperaInsuranceApplyCheckWindow.vue b/company/src/components/business/OperaInsuranceApplyCheckWindow.vue
index 82a670f..8c6e041 100644
--- a/company/src/components/business/OperaInsuranceApplyCheckWindow.vue
+++ b/company/src/components/business/OperaInsuranceApplyCheckWindow.vue
@@ -130,7 +130,7 @@
 } from "@/api/business/insuranceApply";
 import UploadFile from "@/components/common/UploadFile";
 export default {
-  name: 'OperaInsuranceApplyCheckWindow',
+  name: 'OperaChangeApplyCheckWindow',
   extends: BaseOpera,
   components: {UploadFile, GlobalWindow },
   data () {
@@ -293,7 +293,7 @@
       this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
           .then(() => {
             this.isWorking = true
-            uploadBaoxiandan({id:this.model.id,startTime:this.form.startTime,checkInfo:this.form.backCheckInfo,code:this.form.code,baoxiandanFile:this.form.baoxianFile})
+            uploadBaoxiandan({id:this.model.id,startTime:this.form.startTime,code:this.form.code,baoxiandanFile:this.form.baoxianFile})
                 .then(response => {
                   this.visible = false
                   this.$emit('success')
@@ -307,20 +307,7 @@
       this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
           .then(() => {
             this.isWorking = true
-            editBaoxiandan({id:this.model.id, checkInfo:this.form.backCheckInfo,code:this.form.editCode,baoxiandanFile:this.form.editBaoxianFile})
-                .then(response => {
-                  this.visible = false
-                  this.$emit('success')
-                }).catch(err => {
-                  this.$tip.apiFailed(err)
-                })
-          })
-    },
-    backeditBaoxiandan(){
-      this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
-          .then(() => {
-            this.isWorking = true
-            editBaoxiandan({id:this.model.id,checkInfo:this.form.backCheckInfo})
+            editBaoxiandan({id:this.model.id, checkInfo:this.form.editCheckInfo,code:this.form.editCode,baoxiandanFile:this.form.editBaoxianFile})
                 .then(response => {
                   this.visible = false
                   this.$emit('success')
diff --git a/company/src/components/business/OperaInsuranceApplyWindow.vue b/company/src/components/business/OperaInsuranceApplyWindow.vue
index 2277006..856a4ec 100644
--- a/company/src/components/business/OperaInsuranceApplyWindow.vue
+++ b/company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -8,10 +8,10 @@
     >
         <div class="desc">
             <div class="desc_item">
-                <div class="desc_item_label" v-if="model.statusCollect === 2 || model.statusCollect === 3">
+                <div class="desc_item_label" v-if="userInfo.type === 1 &&(model.statusCollect === 2 || model.statusCollect === 3)">
                     <div class="desc_item_label_left">
                         <span>淇濋櫓鍒版湡杩樻湁 <b style="color: #F95601;">{{model.loseEfficacyDays ? model.loseEfficacyDays : '-'}}</b> 澶�</span>
-                        <el-button type="primary" v-if="model.statusCollect === 2 || model.statusCollect === 3" @click="$refs.OperaInsuranceApply.open('鎶曚繚鐢宠', { id: dataId })">涓�閿画淇�</el-button>
+                        <el-button type="primary" v-if="model.statusCollect === 2 || model.statusCollect === 3" @click="$refs.OperaInsuranceApply.open('鎶曚繚鐢宠', { id: dataId })">鍦ㄧ嚎绛剧讲</el-button>
                         <el-button type="primary" v-if="model.statusCollect === 2" @click="$refs.additionSubtractionApplication.open('鍔犲噺淇濈敵璇�', { id: dataId })">鍔犲噺淇濈敵璇�</el-button>
                         <el-button type="primary" v-if="model.statusCollect === 2" @click="$refs.factoryChange.open('鎹㈠巶鐢宠', { id: dataId })">鎹㈠巶鐢宠</el-button>
                     </div>
@@ -24,24 +24,22 @@
                     </div>
                   <div class="desc_item_label_right">
                       <template v-if="userInfo.type === 1">
-                          <el-button v-if="[0, 2, 3, 10].includes(model.status)" type="danger" @click="$refs.applyReturn.open('鐢宠閫�鍥�', {id: dataId})">鐢宠閫�鍥�</el-button>
-                          <el-button v-if="model.status == 4" type="primary" @click="$refs.OperaInsuranceApply.open('鎶曚繚鐢宠', {id: dataId})">鍐嶆鎶曚繚</el-button>
-                          <el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">瀵煎嚭璇﹀崟</el-button>
-                          <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
-                          <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
+                          <el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">绛剧讲鐢宠鍗�</el-button>
+                          <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鐢宠閫�鍥�</el-button>
+                          <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鍐嶆鎶曚繚</el-button>
+                          <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鍏抽棴璁㈠崟</el-button>
                           <el-button v-if="model.status == 2" type="primary" @click="goSign">绛剧讲鎶曚繚鍗�</el-button>
                       </template>
-                        <template v-else>
+                      <template v-else>
                             <el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">瀵煎嚭璇﹀崟</el-button>
-                            <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
-                            <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
-                            <el-button v-if="model.status == 10" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶鎶曚繚鍗�',model,2)">涓婁紶鎶曚繚鍗�</el-button>
-                            <el-button v-if="model.status == 3" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶淇濋櫓鍗�',model,3)">涓婁紶淇濋櫓鍗�</el-button>
-                            <el-button  v-if="model.status == 6 || model.status == 7|| model.status == 8" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button>
-                            <el-button v-if="model.status == 0" type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚瀹℃牳',model,1)">鎶曚繚瀹℃牳</el-button>
-                            <el-button v-if="model.status != 5 && model.status != 4 && model.status != 1" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('閫�鍥炴姇淇�',model,1)">閫�鍥炴姇淇�</el-button>
-                            <el-button v-if="model.status == 5" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('淇敼淇濋櫓鍗�',model,4)">淇敼淇濋櫓鍗�</el-button>
-                        </template>
+                        <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
+                        <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
+                        <el-button v-if="model.status == 10" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶鎶曚繚鍗�',model,2)">涓婁紶鎶曚繚鍗�</el-button>
+                        <el-button v-if="model.status == 3" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶淇濋櫓鍗�',model,3)">涓婁紶淇濋櫓鍗�</el-button>
+                        <el-button  v-if="model.status == 6 || model.status == 7|| model.status == 8" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button>
+                        <el-button v-if="model.status != 5 && model.status != 4 && model.status != 1" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('閫�鍥炴姇淇�',model,1)">閫�鍥炴姇淇�</el-button>
+                        <el-button v-if="model.status == 5" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('淇敼淇濋櫓鍗�',model,4)">淇敼淇濋櫓鍗�</el-button>
+                      </template>
                   </div>
                 </div>
                 <div class="desc_item_from">
@@ -50,7 +48,7 @@
                         border
                         style="width: 100%">
                         <el-table-column
-                            prop="applyCode"
+                            prop="code"
                             align="center"
                             label="淇濆崟鍙�">
                         </el-table-column>
@@ -220,14 +218,23 @@
                 </div>
                 <div class="desc_item_review">
                     <div class="desc_item_review_label">瀹℃牳娴佺▼</div>
-                    <el-timeline :reverse="reverse">
-                        <el-timeline-item
-                            v-for="(activity, index) in activities"
-                            :key="index"
-                            :timestamp="activity.createDate">
-                            {{activity.title}}
-                        </el-timeline-item>
-                    </el-timeline>
+                  <el-timeline :reverse="reverse">
+                    <el-timeline-item
+                        v-for="(activity, index) in activities"
+                        :key="index">
+                      <div style="display: flex; flex-direction: column;">
+                                <span style="font-size: 16px; font-weight: 400; color: black;">
+                                    {{activity.title}}
+                                    <span style="font-size: 16px; font-weight: 400; color: black; margin-left: 10px;" v-if="activity.objType === 5 || activity.objType === 6 || activity.objType === 1 || activity.objType === 2">
+                                       鎻愪氦鎰忚锛歿{activity.content}}
+                                    </span>
+                                </span>
+                        <span style="margin-top: 5px; font-size: 12px; font-weight: 400; color: #999999;">
+                                    鎿嶄綔鍛�-{{activity.creatorName}}锛坽{activity.creatorType==1? activity.companyName: "骞冲彴绔�"}}锛墈{activity.createDate}}
+                                </span>
+                      </div>
+                    </el-timeline-item>
+                  </el-timeline>
                 </div>
             </div>
         </div>
@@ -476,16 +483,23 @@
       },
     goSign(){
       getSignLink(this.dataId).then(res => {
-        window.open(res)
+        setTimeout(() => {
+          window.open(res)
+        }, 500);
       }).catch(err => {
        this.$tip.apiFailed(err)
       })
     },
     viewToubaodan(){
        if(this.model.toubaodanSignedFile && this.model.toubaodanSignedFile.fileurlFull){
-        window.open(this.model.toubaodanSignedFile.fileurlFull)
+         setTimeout(() => {
+           window.open(this.model.toubaodanSignedFile.fileurlFull)
+         }, 500);
+
        } else if(this.model.toubaodanFile && this.model.toubaodanFile.fileurlFull){
-         window.open(this.model.toubaodanFile.fileurlFull)
+         setTimeout(() => {
+           window.open(this.model.toubaodanFile.fileurlFull)
+             },500)
        }
     },
     viewBaoxiandan(){
@@ -515,7 +529,8 @@
       })
     },
     successEvent(){
-       this.visible=false
+       // this.visible=false
+      this.getDetail()
       this.$emit('success')
     }
   }
diff --git a/company/src/components/business/applyChangeDetails.vue b/company/src/components/business/applyChangeDetails.vue
deleted file mode 100644
index 1f9ab1c..0000000
--- a/company/src/components/business/applyChangeDetails.vue
+++ /dev/null
@@ -1,249 +0,0 @@
-<template>
-    <GlobalWindow
-        :title="title"
-        width="50%"
-        :visible.sync="visible"
-        :confirm-working="isWorking"
-        @confirm="confirm"
-    >
-        <div class="box">
-            <div class="box_header">
-                <div class="box_header_item">
-                    <div class="box_header_item_label">鎶曚繚浼佷笟</div>
-                    <div class="box_header_item_val">瀹夊窘鏍煎姏鏈烘鍒堕�犲巶</div>
-                </div>
-                <div class="box_header_item">
-                    <div class="box_header_item_label">淇濋櫓鏂规</div>
-                    <div class="box_header_item_val">骞冲畨淇濋櫓闆囦富璐d换闄〢鐗�</div>
-                </div>
-                <div class="box_header_item">
-                    <div class="box_header_item_label">鍏宠仈淇濆崟鍙�</div>
-                    <div class="box_header_item_val">11121241241241</div>
-                </div>
-                <div class="box_header_item">
-                    <div class="box_header_item_label">鎶曚繚浜烘暟</div>
-                    <div class="box_header_item_val">50</div>
-                </div>
-            </div>
-            <div class="box_table">
-                <div class="box_table_headText">鍔犱繚鍛樺伐</div>
-                <div class="box_table_head">
-                    <div class="box_table_head_item">搴忓彿</div>
-                    <div class="box_table_head_item">鍛樺伐濮撳悕</div>
-                    <div class="box_table_head_item">韬唤璇佸彿</div>
-                    <div class="box_table_head_item">娲鹃仯鍗曚綅</div>
-                    <div class="box_table_head_item">鎵�灞炲伐绉�</div>
-                    <div class="box_table_head_item">璐圭敤</div>
-                </div>
-                <div class="box_table_content" v-for="(item, index) in 3" :key="index">
-                    <div class="box_table_content_item">{{index + 1}}</div>
-                    <div class="box_table_content_item">鐜嬫煇鏌�</div>
-                    <div class="box_table_content_item">340411190001010011</div>
-                    <div class="box_table_content_item">瀹夊窘鏍煎姏鏈烘鍒堕�犲巶</div>
-                    <div class="box_table_content_item">4绫� 鏈烘鍔犲伐/鍒堕��</div>
-                    <div class="box_table_content_item">200</div>
-                </div>
-            </div>
-            <div class="box_table">
-                <div class="box_table_headText">鍑忎繚鍛樺伐</div>
-                <div class="box_table_head">
-                    <div class="box_table_head_item">搴忓彿</div>
-                    <div class="box_table_head_item">鍛樺伐濮撳悕</div>
-                    <div class="box_table_head_item">韬唤璇佸彿</div>
-                    <div class="box_table_head_item">娲鹃仯鍗曚綅</div>
-                    <div class="box_table_head_item">鎵�灞炲伐绉�</div>
-                    <div class="box_table_head_item">璐圭敤</div>
-                </div>
-                <div class="box_table_content" v-for="(item, index) in 3" :key="index">
-                    <div class="box_table_content_item">{{index + 1}}</div>
-                    <div class="box_table_content_item">鐜嬫煇鏌�</div>
-                    <div class="box_table_content_item">340411190001010011</div>
-                    <div class="box_table_content_item">瀹夊窘鏍煎姏鏈烘鍒堕�犲巶</div>
-                    <div class="box_table_content_item">4绫� 鏈烘鍔犲伐/鍒堕��</div>
-                    <div class="box_table_content_item">-200</div>
-                </div>
-            </div>
-            <div class="box_header">
-                <div class="box_header_item">
-                    <div class="box_header_item_label">鍔犱繚浜烘暟</div>
-                    <div class="box_header_item_val">2</div>
-                </div>
-                <div class="box_header_item">
-                    <div class="box_header_item_label">鍑忎繚浜烘暟</div>
-                    <div class="box_header_item_val">1</div>
-                </div>
-                <div class="box_header_item" style="flex: 1;">
-                    <div class="box_header_item_label" style="flex: 0.333 !important;">璐圭敤鍙樻洿</div>
-                    <div class="box_header_item_val">100</div>
-                </div>
-            </div>
-        </div>
-        <template v-slot:footer>
-            <el-button type="primary">浼佷笟璇佷欢</el-button>
-            <el-button type="primary">瀵煎嚭璇﹀崟</el-button>
-            <el-button @click="visible = false">鍙栨秷</el-button>
-        </template>
-    </GlobalWindow>
-</template>
-
-<script>
-    import BaseOpera from '@/components/base/BaseOpera'
-    import GlobalWindow from '@/components/common/GlobalWindow'
-    export default {
-        name: 'applyChangeDetails',
-        extends: BaseOpera,
-        components: { GlobalWindow },
-        data () {
-            return {
-                // 琛ㄥ崟鏁版嵁
-                form: {
-                    id: null,
-                    editDate: ''
-                },
-                // 楠岃瘉瑙勫垯
-                rules: {
-                },
-                formInline: {
-                    user: '',
-                    region: ''
-                },
-                reverse: true,
-                activities: [{
-                    content: '娲诲姩鎸夋湡寮�濮�',
-                    timestamp: '2018-04-15'
-                }, {
-                    content: '閫氳繃瀹℃牳',
-                    timestamp: '2018-04-13'
-                }, {
-                    content: '鍒涘缓鎴愬姛',
-                    timestamp: '2018-04-11'
-                }],
-                tableData: [],
-                activeName: 'first',
-                currentPage: 1
-            }
-        },
-        created () {
-            this.config({
-                api: '/business/insuranceApply',
-                'field.id': 'id'
-            })
-        },
-        methods: {
-            handleSizeChange(val) {
-                console.log(`姣忛〉 ${val} 鏉);
-            },
-            handleCurrentChange(val) {
-                console.log(`褰撳墠椤�: ${val}`);
-            },
-            handleClick(tab, event) {
-                console.log(tab, event);
-            },
-            onSubmit() {
-
-            }
-        }
-    }
-</script>
-
-<style lang="scss" scoped>
-    .box {
-        width: 100%;
-        .box_header {
-            width: 100%;
-            display: flex;
-            align-items: center;
-            flex-wrap: wrap;
-            border-top: 1px solid #b4bbc5;
-            border-left: 1px solid #b4bbc5;
-            .box_header_item {
-                width: 50%;
-                height: 50px;
-                display: flex;
-                align-items: center;
-                border-right: 1px solid #b4bbc5;
-                border-bottom: 1px solid #b4bbc5;
-                box-sizing: border-box;
-                .box_header_item_label {
-                    flex: 1;
-                    height: 100%;
-                    display: flex;
-                    align-items: center;
-                    justify-content: center;
-                    font-size: 14px;
-                    color: black;
-                    background: #f2f2f2;
-                    border-right: 1px solid #b4bbc5;
-                }
-                .box_header_item_val {
-                    flex: 1;
-                    height: 100%;
-                    display: flex;
-                    align-items: center;
-                    justify-content: center;
-                    font-size: 14px;
-                    color: black;
-                }
-            }
-        }
-        .box_table {
-            width: 100%;
-            border-left: 1px solid #b4bbc5;
-            box-sizing: border-box;
-            .box_table_headText {
-                width: 100%;
-                height: 50px;
-                display: flex;
-                align-items: center;
-                justify-content: center;
-                background: #f2f2f2;
-                font-size: 14px;
-                color: black;
-                border-right: 1px solid #b4bbc5;
-                border-bottom: 1px solid #b4bbc5;
-            }
-            .box_table_head {
-                width: 100%;
-                display: flex;
-                align-items: center;
-                .box_table_head_item {
-                    flex: 1;
-                    height: 50px;
-                    background: #f2f2f2;
-                    display: flex;
-                    align-items: center;
-                    justify-content: center;
-                    font-size: 14px;
-                    color: black;
-                    border-right: 1px solid #b4bbc5;
-                    border-bottom: 1px solid #b4bbc5;
-                    box-sizing: border-box;
-                    &:nth-child(1) {
-                        flex: 0.5;
-                    }
-                }
-            }
-            .box_table_content {
-                width: 100%;
-                display: flex;
-                align-items: center;
-                .box_table_content_item {
-                    flex: 1;
-                    height: 50px;
-                    background: #ffffff;
-                    display: flex;
-                    align-items: center;
-                    justify-content: center;
-                    font-size: 14px;
-                    color: black;
-                    border-right: 1px solid #b4bbc5;
-                    border-bottom: 1px solid #b4bbc5;
-                    box-sizing: border-box;
-                    &:nth-child(1) {
-                        flex: 0.5;
-                    }
-                }
-            }
-        }
-    }
-</style>
diff --git a/company/src/components/common/UploadFile.vue b/company/src/components/common/UploadFile.vue
index 565bb40..0ceb06f 100644
--- a/company/src/components/common/UploadFile.vue
+++ b/company/src/components/common/UploadFile.vue
@@ -33,12 +33,14 @@
   },
   data() {
     return {
+      fileList:null,
       uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload?folder='+this.uploadData.folder
     }
   },
 
   methods: {
     // 涓婁紶鍥剧墖
+    handleExceed(){},
     handleFileSuccess(res, file) {
       if (res.code == 200) {
         let { data } = res
diff --git a/company/src/components/enterprise/add_subtractDetails.vue b/company/src/components/enterprise/add_subtractDetails.vue
index 1591b4e..8a26686 100644
--- a/company/src/components/enterprise/add_subtractDetails.vue
+++ b/company/src/components/enterprise/add_subtractDetails.vue
@@ -1,6 +1,7 @@
 <template>
     <GlobalWindow
         :title="title"
+        width="100%"
         :visible.sync="visible"
         :confirm-working="isWorking"
         @confirm="confirm"
diff --git a/company/src/views/business/applyChange.vue b/company/src/views/business/applyChange.vue
index a2198db..9296816 100644
--- a/company/src/views/business/applyChange.vue
+++ b/company/src/views/business/applyChange.vue
@@ -1,126 +1,170 @@
 <template>
-    <TableLayout :permissions="['business:applychange:query']">
-        <!-- 鎼滅储琛ㄥ崟 -->
-        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-            <el-form-item label="淇濆崟鐘舵��" prop="status">
-                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" @change="search">
-                    <el-option label="寰呯缃�" value="0"></el-option>
-                    <el-option label="宸茬绔� " value="1"></el-option>
-                    <el-option label="宸蹭笂浼犳壒鍗�" value="2"></el-option>
-                    <el-option label="閫�鍥炵敵璇�" value="3"></el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item label="鎶曚繚浼佷笟" prop="status">
-                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
-                    <el-option
-                        v-for="item in options"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value">
-                    </el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item label="淇濋櫓鏂规" prop="status">
-                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
-                    <el-option
-                        v-for="item in options"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value">
-                    </el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item label="鎻愪氦鏃ユ湡" prop="status">
-                <el-date-picker
-                    v-model="searchForm.status"
-                    type="daterange"
-                    range-separator="鑷�"
-                    start-placeholder="寮�濮嬫棩鏈�"
-                    end-placeholder="缁撴潫鏃ユ湡">
-                </el-date-picker>
-            </el-form-item>
-            <section>
-                <el-button type="primary" @click="search">鎼滅储</el-button>
-                <el-button @click="reset">閲嶇疆</el-button>
-                <el-button @click="$refs.operaApplyChangeWindow.open('鍔犲噺淇濊鎯�')">鏌ョ湅璇︽儏</el-button>
-            </section>
-        </el-form>
-        <!-- 琛ㄦ牸鍜屽垎椤� -->
-        <template v-slot:table-wrap>
-            <el-table
-                v-loading="isWorking.search"
-                :data="tableData.list"
-                stripe
-            >
-                <el-table-column label="搴忓彿" width="80px">
-                    <template slot-scope="scope">
-                        <span>{{scope.$index + 1}}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column prop="status" label="淇濆崟鐘舵��" min-width="100px">
-                    <template slot-scope="{row}">
-                        <span v-if="row.status === 0">寰呯缃�</span>
-                        <span v-if="row.status === 1">宸茬绔�</span>
-                        <span v-if="row.status === 2">宸蹭笂浼犳壒鍗�</span>
-                        <span v-if="row.status === 3">閫�鍥炵敵璇�</span>
-                    </template>
-                </el-table-column>
-                <el-table-column prop="code" label="鎶曚繚浼佷笟" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="鍏宠仈淇濆崟鍙�" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="鍔犱繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="鍑忎繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="璐圭敤鍙樻洿" min-width="100px"></el-table-column>
-                <el-table-column prop="createDate" label="鎻愪氦鏃堕棿" min-width="100px"></el-table-column>
-<!--                v-if="containPermissions(['business:applychange:update', 'business:applychange:delete'])"-->
-                <el-table-column
-                    label="鎿嶄綔"
-                    min-width="120"
-                    fixed="right"
-                >
-                    <template slot-scope="{row}">
-<!--                        v-permissions="['business:applychange:update']"-->
-                        <el-button type="text" @click="$refs.operaApplyChangeWindow.open('鍔犲噺淇濊鎯�', row)" icon="el-icon-edit">鏌ョ湅璇︽儏</el-button>
-                    </template>
-                </el-table-column>
-            </el-table>
-            <pagination
-                @size-change="handleSizeChange"
-                @current-change="handlePageChange"
-                :pagination="tableData.pagination"
-            >
-            </pagination>
-        </template>
-        <!-- 鏂板缓/淇敼 -->
-        <OperaApplyChangeWindow ref="operaApplyChangeWindow" @success="handlePageChange"/>
-    </TableLayout>
+  <TableLayout :permissions="['business:applychange:query']">
+    <!-- 鎼滅储琛ㄥ崟 -->
+    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+      <el-form-item label="淇濆崟鐘舵��" prop="status">
+        <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" @change="search">
+          <el-option label="鍏ㄩ儴" value=""></el-option>
+          <el-option label="寰呯缃�" value="0"></el-option>
+          <el-option label="寰呭鏍�" value="1"></el-option>
+          <el-option label="宸茬敓鏁�" value="2"></el-option>
+          <el-option label="鐢宠閫�鍥�" value="3"></el-option>
+          <!--                    3 4 閮芥槸閫�鍥炵敵璇蜂腑-->
+          <el-option label="宸查��鍥�" value="5"></el-option>
+          <el-option label="宸插叧闂�" value="6"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鎶曚繚浼佷笟" prop="companyId">
+        <el-select v-model="searchForm.companyId" placeholder="璇烽�夋嫨" @change="search">
+          <el-option
+              v-for="item in companyList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="淇濋櫓鏂规" prop="baseSolutionsId">
+        <el-select v-model="searchForm.baseSolutionsId" placeholder="璇烽�夋嫨" @change="search">
+          <el-option
+              v-for="item in solutionList"
+              :key="item.baseId"
+              :label="item.name"
+              :value="item.baseId">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鎻愪氦鏃ユ湡" prop="status">
+        <el-date-picker
+            @change="changeTime"
+            v-model="searchForm.time"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            range-separator="鑷�"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡">
+        </el-date-picker>
+      </el-form-item>
+      <section>
+        <el-button type="primary" @click="search">鎼滅储</el-button>
+        <el-button @click="reset">閲嶇疆</el-button>
+      </section>
+    </el-form>
+    <!-- 琛ㄦ牸鍜屽垎椤� -->
+    <template v-slot:table-wrap>
+      <el-table
+          v-loading="isWorking.search"
+          :data="tableData.list"
+          stripe
+      >
+        <el-table-column label="搴忓彿" width="80px">
+          <template slot-scope="scope">
+            <span>{{scope.$index + 1}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="status" label="淇濆崟鐘舵��" min-width="100px">
+          <template slot-scope="{row}">
+            <span v-if="row.status === 0">寰呯缃�</span>
+            <span v-if="row.status === 1">宸茬绔�</span>
+            <span v-if="row.status === 2">宸蹭笂浼犳壒鍗�</span>
+            <span v-if="row.status === 3 || row.status === 4">閫�鍥炵敵璇�</span>
+            <span v-if="row.status ===5 || row.status === 8">宸查��鍥�</span>
+            <span v-if="row.status ===7">宸插叧闂�</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="companyName" label="鎶曚繚浼佷笟" min-width="100px"></el-table-column>
+        <el-table-column prop="applyCode" label="鍏宠仈淇濆崟鍙�" min-width="100px"></el-table-column>
+        <el-table-column prop="solutionsName" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
+        <el-table-column prop="addNum" label="鍔犱繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="delNum" label="鍑忎繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="fee" label="璐圭敤鍙樻洿" min-width="100px"></el-table-column>
+        <el-table-column prop="createDate" label="鎻愪氦鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column
+            label="鎿嶄綔"
+            min-width="120"
+            fixed="right"
+        >
+          <template slot-scope="{row}">
+            <el-button type="text" @click="$refs.operaApplyChangeDetailWindow.open('鍔犲噺淇濊鎯�', row)">鏌ョ湅璇︽儏</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+          @size-change="handleSizeChange"
+          @current-change="handlePageChange"
+          :pagination="tableData.pagination"
+      >
+      </pagination>
+    </template>
+    <!-- 璇︽儏 -->
+    <OperaApplyChangeDetailWindow ref="operaApplyChangeDetailWindow" @success="handlePageChange"/>
+  </TableLayout>
 </template>
 
 <script>
-    import BaseTable from '@/components/base/BaseTable'
-    import TableLayout from '@/layouts/TableLayout'
-    import Pagination from '@/components/common/Pagination'
-    import OperaApplyChangeWindow from '@/components/business/OperaApplyChangeWindow'
-    export default {
-        name: 'ApplyChange',
-        extends: BaseTable,
-        components: { TableLayout, Pagination, OperaApplyChangeWindow },
-        data () {
-            return {
-                // 鎼滅储
-                searchForm: {
-                    status: ''
-                }
-            }
-        },
-        created () {
-            this.config({
-                module: '鍔犲噺淇濇崲鍘傜敵璇蜂俊鎭〃',
-                api: '/business/applyChange',
-                'field.id': 'id',
-                'field.main': 'id'
-            })
-            this.search()
-        }
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow'
+import {all as solutionAll, all} from '@/api/business/solutions'
+import {pageAll as companyAll} from "@/api/business/company";
+export default {
+  name: 'add_subtract',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaApplyChangeDetailWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        status: '',
+        type: '0',
+        solutionsId: '',
+        createDateE: '',
+        createDateS: '',
+        time: []
+      },
+      solutionList:[],
+      companyList:[]
     }
+  },
+  created () {
+    this.config({
+      module: '鍔犲噺淇濇崲鍘傜敵璇蜂俊鎭〃',
+      api: '/business/applyChange',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+    this.loadSelectList()
+  },
+  methods: {
+    loadSelectList() {
+      solutionAll({dataType:2}).then(res => {
+        this.solutionList = res
+      }).catch(err => {
+      })
+      companyAll({}).then(res => {
+        this.companyList = res
+      }).catch(err => {
+      })
+    },
+    changeTime(e) {
+      if (e.length > 0) {
+        this.searchForm.createDateS = e[0]
+        this.searchForm.createDateE = e[1]
+      } else {
+        this.searchForm.createDateS = ''
+        this.searchForm.createDateE = ''
+      }
+      this.search()
+    },
+    reset() {
+      this.searchForm.createDateS = ''
+      this.searchForm.createDateE = ''
+      this.searchForm.time = []
+      this.$refs.searchForm.resetFields();
+      this.search()
+    }
+  }
+}
 </script>
diff --git a/company/src/views/business/insuranceApply.vue b/company/src/views/business/insuranceApply.vue
index 1f2ea6d..10eeb13 100644
--- a/company/src/views/business/insuranceApply.vue
+++ b/company/src/views/business/insuranceApply.vue
@@ -18,9 +18,9 @@
                 <el-select v-model="searchForm.companyId" placeholder="璇烽�夋嫨" @change="search">
                     <el-option
                         v-for="item in companyList"
-                        :key="item.id"
+                        :key="item.baseId"
                         :label="item.name"
-                        :value="item.id">
+                        :value="item.baseId">
                     </el-option>
                 </el-select>
             </el-form-item>
@@ -108,7 +108,7 @@
             searchForm: {
                 createTimeS: '',
                 createTimeE: '',
-                solutionId: '',
+                baseSolutionId: '',
                 companyId: '',
                 statusCollect: ''
             },
@@ -131,7 +131,7 @@
         //   this.search()
         // },
         loadSelectList() {
-          solutionAll({dataType:0}).then(res => {
+          solutionAll({dataType:2}).then(res => {
               this.solutionList = res
             }).catch(err => {
             })
diff --git a/company/src/views/business/settleClaims.vue b/company/src/views/business/settleClaims.vue
index 0934dfd..480ee90 100644
--- a/company/src/views/business/settleClaims.vue
+++ b/company/src/views/business/settleClaims.vue
@@ -5,6 +5,9 @@
             <el-form-item label="鍛樺伐濮撳悕" prop="memberName">
                 <el-input v-model="searchForm.memberName" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
             </el-form-item>
+            <el-form-item label="韬唤璇�" prop="memberIdcardNo">
+                <el-input v-model="searchForm.memberIdcardNo" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
+            </el-form-item>
             <el-form-item label="鎶ユ鍗曚綅" prop="companyId" v-if="userInfo.type === 0">
                 <el-select v-model="searchForm.companyId" placeholder="璇烽�夋嫨" @change="search">
                     <el-option
@@ -58,6 +61,7 @@
                 <el-table-column prop="reportNum" label="鎶ユ鍙�" min-width="100px"></el-table-column>
                 <el-table-column prop="companyName" label="鎶ユ浼佷笟" min-width="100px"></el-table-column>
                 <el-table-column prop="memberName" label="鍑洪櫓浜�" min-width="100px"></el-table-column>
+                <el-table-column prop="memberIdcardNo" label="韬唤璇佸彿" min-width="100px"></el-table-column>
                 <el-table-column prop="solutionName" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
                 <el-table-column prop="duName" label="娲鹃仯鍗曚綅" min-width="100px"></el-table-column>
                 <el-table-column prop="worktypeName" label="鎵�灞炲伐绉�" min-width="100px"></el-table-column>
@@ -118,6 +122,7 @@
                     companyId: '',
                     duName: '',
                     memberName:'',
+                    memberIdcardNo:'',
                     status: '',
                     informantName: ''
                 }
diff --git a/company/src/views/business/switchCourt.vue b/company/src/views/business/switchCourt.vue
index 2ee2b31..c660623 100644
--- a/company/src/views/business/switchCourt.vue
+++ b/company/src/views/business/switchCourt.vue
@@ -1,126 +1,170 @@
 <template>
-    <TableLayout :permissions="['business:applychange:query']">
-        <!-- 鎼滅储琛ㄥ崟 -->
-        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-            <el-form-item label="淇濆崟鐘舵��" prop="status">
-                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" @change="search">
-                    <el-option label="寰呯缃�" value="0"></el-option>
-                    <el-option label="宸茬绔� " value="1"></el-option>
-                    <el-option label="宸蹭笂浼犳壒鍗�" value="2"></el-option>
-                    <el-option label="閫�鍥炵敵璇�" value="3"></el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item label="鎶曚繚浼佷笟" prop="status">
-                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
-                    <el-option
-                        v-for="item in options"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value">
-                    </el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item label="淇濋櫓鏂规" prop="status">
-                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
-                    <el-option
-                        v-for="item in options"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value">
-                    </el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item label="鎻愪氦鏃ユ湡" prop="status">
-                <el-date-picker
-                    v-model="searchForm.status"
-                    type="daterange"
-                    range-separator="鑷�"
-                    start-placeholder="寮�濮嬫棩鏈�"
-                    end-placeholder="缁撴潫鏃ユ湡">
-                </el-date-picker>
-            </el-form-item>
-            <section>
-                <el-button type="primary" @click="search">鎼滅储</el-button>
-                <el-button @click="reset">閲嶇疆</el-button>
-                <el-button @click="$refs.operaApplyChangeWindow.open('鍔犲噺淇濊鎯�')">鏌ョ湅璇︽儏</el-button>
-            </section>
-        </el-form>
-        <!-- 琛ㄦ牸鍜屽垎椤� -->
-        <template v-slot:table-wrap>
-            <el-table
-                    v-loading="isWorking.search"
-                    :data="tableData.list"
-                    stripe
-            >
-                <el-table-column label="搴忓彿" width="80px">
-                    <template slot-scope="scope">
-                        <span>{{scope.$index + 1}}</span>
-                    </template>
-                </el-table-column>
-                <el-table-column prop="status" label="淇濆崟鐘舵��" min-width="100px">
-                    <template slot-scope="{row}">
-                        <span v-if="row.status === 0">寰呯缃�</span>
-                        <span v-if="row.status === 1">宸茬绔�</span>
-                        <span v-if="row.status === 2">宸蹭笂浼犳壒鍗�</span>
-                        <span v-if="row.status === 3">閫�鍥炵敵璇�</span>
-                    </template>
-                </el-table-column>
-                <el-table-column prop="code" label="鎶曚繚浼佷笟" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="鍏宠仈淇濆崟鍙�" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="鍔犱繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="鍑忎繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="璐圭敤鍙樻洿" min-width="100px"></el-table-column>
-                <el-table-column prop="createDate" label="鎻愪氦鏃堕棿" min-width="100px"></el-table-column>
-                <!--                v-if="containPermissions(['business:applychange:update', 'business:applychange:delete'])"-->
-                <el-table-column
-                    label="鎿嶄綔"
-                    min-width="120"
-                    fixed="right"
-                >
-                    <template slot-scope="{row}">
-                        <!--                        v-permissions="['business:applychange:update']"-->
-                        <el-button type="text" @click="$refs.operaApplyChangeWindow.open('鍔犲噺淇濊鎯�', row)" icon="el-icon-edit">鏌ョ湅璇︽儏</el-button>
-                    </template>
-                </el-table-column>
-            </el-table>
-            <pagination
-                @size-change="handleSizeChange"
-                @current-change="handlePageChange"
-                :pagination="tableData.pagination"
-            >
-            </pagination>
-        </template>
-        <!-- 鏂板缓/淇敼 -->
-        <OperaSwitchCourtWindow ref="operaApplyChangeWindow" @success="handlePageChange"/>
-    </TableLayout>
+  <TableLayout :permissions="['business:applychange:query']">
+    <!-- 鎼滅储琛ㄥ崟 -->
+    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
+      <el-form-item label="淇濆崟鐘舵��" prop="status">
+        <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" @change="search">
+          <el-option label="鍏ㄩ儴" value=""></el-option>
+          <el-option label="寰呯缃�" value="0"></el-option>
+          <el-option label="寰呭鏍�" value="1"></el-option>
+          <el-option label="宸茬敓鏁�" value="2"></el-option>
+          <el-option label="鐢宠閫�鍥�" value="3"></el-option>
+          <!--                    3 4 閮芥槸閫�鍥炵敵璇蜂腑-->
+          <el-option label="宸查��鍥�" value="5"></el-option>
+          <el-option label="宸插叧闂�" value="6"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鎶曚繚浼佷笟" prop="companyId">
+        <el-select v-model="searchForm.companyId" placeholder="璇烽�夋嫨" @change="search">
+          <el-option
+              v-for="item in companyList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="淇濋櫓鏂规" prop="baseSolutionsId">
+        <el-select v-model="searchForm.baseSolutionsId" placeholder="璇烽�夋嫨" @change="search">
+          <el-option
+              v-for="item in solutionList"
+              :key="item.baseId"
+              :label="item.name"
+              :value="item.baseId">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鎻愪氦鏃ユ湡" prop="status">
+        <el-date-picker
+            @change="changeTime"
+            v-model="searchForm.time"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            range-separator="鑷�"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡">
+        </el-date-picker>
+      </el-form-item>
+      <section>
+        <el-button type="primary" @click="search">鎼滅储</el-button>
+        <el-button @click="reset">閲嶇疆</el-button>
+      </section>
+    </el-form>
+    <!-- 琛ㄦ牸鍜屽垎椤� -->
+    <template v-slot:table-wrap>
+      <el-table
+          v-loading="isWorking.search"
+          :data="tableData.list"
+          stripe
+      >
+        <el-table-column label="搴忓彿" width="80px">
+          <template slot-scope="scope">
+            <span>{{scope.$index + 1}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="status" label="淇濆崟鐘舵��" min-width="100px">
+          <template slot-scope="{row}">
+            <span v-if="row.status === 0">寰呯缃�</span>
+            <span v-if="row.status === 1">宸茬绔�</span>
+            <span v-if="row.status === 2">宸蹭笂浼犳壒鍗�</span>
+            <span v-if="row.status === 3 || row.status === 4">閫�鍥炵敵璇�</span>
+            <span v-if="row.status ===5 || row.status === 8">宸查��鍥�</span>
+            <span v-if="row.status ===7">宸插叧闂�</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="companyName" label="鎶曚繚浼佷笟" min-width="100px"></el-table-column>
+        <el-table-column prop="applyCode" label="鍏宠仈淇濆崟鍙�" min-width="100px"></el-table-column>
+        <el-table-column prop="solutionsName" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
+        <el-table-column prop="addNum" label="鍔犱繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="delNum" label="鍑忎繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
+        <el-table-column prop="fee" label="璐圭敤鍙樻洿" min-width="100px"></el-table-column>
+        <el-table-column prop="createDate" label="鎻愪氦鏃堕棿" min-width="100px"></el-table-column>
+        <el-table-column
+            label="鎿嶄綔"
+            min-width="120"
+            fixed="right"
+        >
+          <template slot-scope="{row}">
+            <el-button type="text" @click="$refs.operaApplyChangeDetailWindow.open('鍔犲噺淇濊鎯�', row)">鏌ョ湅璇︽儏</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+          @size-change="handleSizeChange"
+          @current-change="handlePageChange"
+          :pagination="tableData.pagination"
+      >
+      </pagination>
+    </template>
+    <!-- 璇︽儏 -->
+    <OperaApplyChangeUnitDetailWindow ref="operaApplyChangeDetailWindow" @success="handlePageChange"/>
+  </TableLayout>
 </template>
 
 <script>
-    import BaseTable from '@/components/base/BaseTable'
-    import TableLayout from '@/layouts/TableLayout'
-    import Pagination from '@/components/common/Pagination'
-    import OperaSwitchCourtWindow from '@/components/business/OperaSwitchCourtWindow'
-    export default {
-        name: 'switchCourt',
-        extends: BaseTable,
-        components: { TableLayout, Pagination, OperaSwitchCourtWindow },
-        data () {
-            return {
-                // 鎼滅储
-                searchForm: {
-                    status: ''
-                }
-            }
-        },
-        created () {
-            this.config({
-                module: '鍔犲噺淇濇崲鍘傜敵璇蜂俊鎭〃',
-                api: '/business/applyChange',
-                'field.id': 'id',
-                'field.main': 'id'
-            })
-            this.search()
-        }
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
+import {all as solutionAll, all} from '@/api/business/solutions'
+import {pageAll as companyAll} from "@/api/business/company";
+export default {
+  name: 'add_subtract',
+  extends: BaseTable,
+  components: { TableLayout, Pagination, OperaApplyChangeUnitDetailWindow },
+  data () {
+    return {
+      // 鎼滅储
+      searchForm: {
+        status: '',
+        type: '1',
+        solutionsId: '',
+        createDateE: '',
+        createDateS: '',
+        time: []
+      },
+      solutionList:[],
+      companyList:[]
     }
+  },
+  created () {
+    this.config({
+      module: '鍔犲噺淇濇崲鍘傜敵璇蜂俊鎭〃',
+      api: '/business/applyChange',
+      'field.id': 'id',
+      'field.main': 'id'
+    })
+    this.search()
+    this.loadSelectList()
+  },
+  methods: {
+    loadSelectList() {
+      solutionAll({dataType:2}).then(res => {
+        this.solutionList = res
+      }).catch(err => {
+      })
+      companyAll({}).then(res => {
+        this.companyList = res
+      }).catch(err => {
+      })
+    },
+    changeTime(e) {
+      if (e.length > 0) {
+        this.searchForm.createDateS = e[0]
+        this.searchForm.createDateE = e[1]
+      } else {
+        this.searchForm.createDateS = ''
+        this.searchForm.createDateE = ''
+      }
+      this.search()
+    },
+    reset() {
+      this.searchForm.createDateS = ''
+      this.searchForm.createDateE = ''
+      this.searchForm.time = []
+      this.$refs.searchForm.resetFields();
+      this.search()
+    }
+  }
+}
 </script>
diff --git a/company/src/views/enterprise/add_subtract.vue b/company/src/views/enterprise/add_subtract.vue
index 54b14c0..9f45503 100644
--- a/company/src/views/enterprise/add_subtract.vue
+++ b/company/src/views/enterprise/add_subtract.vue
@@ -14,16 +14,16 @@
                     <el-option label="宸插叧闂�" value="6"></el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item label="淇濋櫓鏂规" prop="solutionsId">
-                <el-select v-model="searchForm.solutionsId" placeholder="璇烽�夋嫨" @change="search">
-                    <el-option
-                        v-for="item in list"
-                        :key="item.id"
-                        :label="item.name"
-                        :value="item.id">
-                    </el-option>
-                </el-select>
-            </el-form-item>
+          <el-form-item label="淇濋櫓鏂规" prop="baseSolutionsId">
+            <el-select v-model="searchForm.baseSolutionsId" placeholder="璇烽�夋嫨" @change="search">
+              <el-option
+                  v-for="item in solutionList"
+                  :key="item.baseId"
+                  :label="item.name"
+                  :value="item.baseId">
+              </el-option>
+            </el-select>
+          </el-form-item>
             <el-form-item label="鎻愪氦鏃ユ湡" prop="status">
                 <el-date-picker
                     @change="changeTime"
@@ -42,6 +42,12 @@
         </el-form>
         <!-- 琛ㄦ牸鍜屽垎椤� -->
         <template v-slot:table-wrap>
+<<<<<<< HEAD
+=======
+            <ul class="toolbar" v-permissions="['business:applychange:create']">
+                <li><el-button type="primary" @click="$refs.operaApplyChangeWindow.open('鏂板缓')" v-permissions="['business:applychange:create']">鏂板缓</el-button></li>
+            </ul>
+>>>>>>> 48eb5dc61ac07d232632b13d040006128ed5cceb
             <el-table
                 v-loading="isWorking.search"
                 :data="tableData.list"
@@ -60,12 +66,12 @@
                         <span v-if="row.status === 3">閫�鍥炵敵璇�</span>
                     </template>
                 </el-table-column>
-                <el-table-column prop="code" label="鎶曚繚浼佷笟" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="鍏宠仈淇濆崟鍙�" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="鍔犱繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="鍑忎繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="璐圭敤鍙樻洿" min-width="100px"></el-table-column>
+                <el-table-column prop="companyName" label="鎶曚繚浼佷笟" min-width="100px"></el-table-column>
+                <el-table-column prop="applyCode" label="鍏宠仈淇濆崟鍙�" min-width="100px"></el-table-column>
+                <el-table-column prop="solutionsName" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
+                <el-table-column prop="addNum" label="鍔犱繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
+                <el-table-column prop="delNum" label="鍑忎繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
+                <el-table-column prop="fee" label="璐圭敤鍙樻洿" min-width="100px"></el-table-column>
                 <el-table-column prop="createDate" label="鎻愪氦鏃堕棿" min-width="100px"></el-table-column>
                 <el-table-column
                     label="鎿嶄綔"
@@ -94,7 +100,7 @@
     import TableLayout from '@/layouts/TableLayout'
     import Pagination from '@/components/common/Pagination'
     import add_subtractDetails from '@/components/enterprise/add_subtractDetails'
-    import { all } from '@/api/business/solutions'
+    import {all as solutionAll, all} from '@/api/business/solutions'
     export default {
         name: 'add_subtract',
         extends: BaseTable,
@@ -105,12 +111,12 @@
                 searchForm: {
                     status: '',
                     type: '0',
-                    solutionsId: '',
+                    baseSolutionsId: '',
                     createDateE: '',
                     createDateS: '',
                     time: []
                 },
-                list: []
+                solutionList: []
             }
         },
         created () {
@@ -125,10 +131,10 @@
         },
         methods: {
             getAll() {
-                all()
-                    .then(res => {
-                        this.list = res
-                    })
+              solutionAll({dataType:2}).then(res => {
+                this.solutionList = res
+              }).catch(err => {
+              })
             },
             changeTime(e) {
                 if (e.length > 0) {
diff --git a/company/src/views/enterprise/insuranceApply.vue b/company/src/views/enterprise/insuranceApply.vue
index c956493..93dc251 100644
--- a/company/src/views/enterprise/insuranceApply.vue
+++ b/company/src/views/enterprise/insuranceApply.vue
@@ -18,9 +18,9 @@
                 <el-select v-model="searchForm.baseSolutionId" placeholder="璇烽�夋嫨" @change="search">
                     <el-option
                         v-for="item in solutionList"
-                        :key="item.id"
+                        :key="item.baseId"
                         :label="item.name"
-                        :value="item.id">
+                        :value="item.baseId">
                     </el-option>
                 </el-select>
             </el-form-item>
@@ -124,7 +124,7 @@
     },
     methods:{
         loadSelectList() {
-          solutionAll({ dataType:0 }).then(res => {
+          solutionAll({ dataType:2}).then(res => {
               this.solutionList = res
             })
         }
diff --git a/company/src/views/enterprise/switchCourt.vue b/company/src/views/enterprise/switchCourt.vue
index 5d645ee..b270fca 100644
--- a/company/src/views/enterprise/switchCourt.vue
+++ b/company/src/views/enterprise/switchCourt.vue
@@ -48,7 +48,7 @@
         <!-- 琛ㄦ牸鍜屽垎椤� -->
         <template v-slot:table-wrap>
             <ul class="toolbar" v-permissions="['business:applychange:create']">
-                <li><el-button type="primary" @click="$refs.operaApplyChangeWindow.open('鍔犲噺淇濊鎯�')" v-permissions="['business:applychange:create']">鏂板缓</el-button></li>
+                <li><el-button type="primary" @click="$refs.operaApplyChangeWindow.open('鏂板缓')" v-permissions="['business:applychange:create']">鏂板缓</el-button></li>
             </ul>
             <el-table
                     v-loading="isWorking.search"
@@ -102,6 +102,8 @@
     import TableLayout from '@/layouts/TableLayout'
     import Pagination from '@/components/common/Pagination'
     import add_subtractDetails from '@/components/enterprise/add_subtractDetails'
+    import {all as solutionAll} from "@/api/business/solutions";
+    import {pageAll as companyAll} from "@/api/business/company";
     export default {
         name: 'switchCourt',
         extends: BaseTable,
@@ -124,6 +126,22 @@
                 'field.main': 'id'
             })
             this.search()
+        },
+      methods:{
+        // handlePageChange() {
+        //   this.search()
+        // },
+        loadSelectList() {
+          solutionAll({dataType:2}).then(res => {
+            this.solutionList = res
+          }).catch(err => {
+          })
+          companyAll({}).then(res => {
+            this.companyList = res
+          }).catch(err => {
+          })
         }
+
+      }
     }
 </script>
diff --git a/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java b/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
index e0c12bf..2debb6c 100644
--- a/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
+++ b/server/company/src/main/java/com/doumee/api/business/ApplyChangeController.java
@@ -4,8 +4,10 @@
 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.LoginUserInfo;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.dto.ApplyChangeCyclePriceDTO;
 import com.doumee.dao.business.dto.ApplyChangeOptDTO;
 import com.doumee.dao.business.dto.CountCyclePriceDTO;
@@ -15,7 +17,8 @@
 import com.doumee.service.business.ApplyChangeService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.authz.annotation.RequiresPermissions;    
+import org.apache.shiro.SecurityUtils;
+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;
@@ -64,11 +67,11 @@
         return ApiResponse.success(null);
     }
 
-    @ApiOperation("鏍规嵁ID淇敼")
-    @PostMapping("/updateById")
+    @ApiOperation("淇敼淇℃伅")
+    @PostMapping("/update")
     @RequiresPermissions("business:applychange:update")
-    public ApiResponse updateById(@RequestBody ApplyChange applyChange) {
-        applyChangeService.updateById(applyChange);
+    public ApiResponse update(@RequestBody ApplyChange applyChange) {
+        applyChangeService.update(applyChange);
         return ApiResponse.success(null);
     }
 
@@ -83,7 +86,7 @@
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:applychange:exportExcel")
     public void exportExcel (@RequestBody PageWrap<ApplyChange> pageWrap, HttpServletResponse response) {
-        ExcelExporter.build(ApplyChange.class).export(applyChangeService.findPage(pageWrap).getRecords(), "鍔犲噺淇濇崲鍘傜敵璇蜂俊鎭〃", response);
+        ExcelExporter.build(ApplyChange.class).export(applyChangeService.findPageForCompany(pageWrap).getRecords(), "鍔犲噺淇濇崲鍘傜敵璇蜂俊鎭〃", response);
     }
     @ApiOperation("瀵煎嚭鍔犲噺淇濊鎯呭崟")
     @PostMapping("/exportJiajianBaoExcel")
@@ -116,7 +119,6 @@
     public ApiResponse findById(@PathVariable Integer id) {
         return ApiResponse.success(applyChangeService.findDetail(id));
     }
-
 
     @ApiOperation(value = "涓氬姟澶勭悊",notes = "閫�鍥炵敵璇凤紝鍏抽棴绛�")
     @PostMapping("/applyChangeOpt")
diff --git a/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java b/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
index 657a943..be8ece9 100644
--- a/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
+++ b/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
@@ -136,9 +136,6 @@
     }
 
 
-
-
-
     @ApiOperation("娴嬭瘯瀹為檯閲戦")
     @GetMapping("/testFee")
     public ApiResponse testFee(@RequestParam Integer id) {
diff --git a/server/company/src/main/java/com/doumee/api/business/SettleClaimsController.java b/server/company/src/main/java/com/doumee/api/business/SettleClaimsController.java
index 768d4a7..6e2d2fa 100644
--- a/server/company/src/main/java/com/doumee/api/business/SettleClaimsController.java
+++ b/server/company/src/main/java/com/doumee/api/business/SettleClaimsController.java
@@ -107,7 +107,7 @@
     }
     @ApiOperation("鍒犻櫎闄勪欢")
     @GetMapping("/delFile/{id}/{fileId}")
-    @RequiresPermissions("business:settleclaims:query")
+    @RequiresPermissions("business:settleclaims:update")
     public ApiResponse delFile(@PathVariable(name = "id") Integer id,@PathVariable(name = "fileId") Integer fileId) {
         return ApiResponse.success(settleClaimsService.delFile(id,fileId));
     }
diff --git a/server/platform/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java b/server/platform/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
index db2c56a..b2bdb4d 100644
--- a/server/platform/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
@@ -6,6 +6,7 @@
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.dao.business.dto.ApplyDetailPageDTO;
 import com.doumee.dao.business.model.ApplyChagneDetail;
 import com.doumee.service.business.ApplyChagneDetailService;
 import io.swagger.annotations.Api;
@@ -67,20 +68,26 @@
         return ApiResponse.success(null);
     }
 //
-//    @ApiOperation("鍒嗛〉鏌ヨ")
-//    @PostMapping("/page")
-//    @RequiresPermissions("business:applychagnedetail:query")
-//    public ApiResponse<PageData<ApplyChagneDetail>> findPage (@RequestBody PageWrap<ApplyChagneDetail> pageWrap) {
-//        return ApiResponse.success(applyChagneDetailService.findPage(pageWrap));
-//    }
+@ApiOperation("鍒嗛〉鏌ヨ")
+@PostMapping("/page")
+@RequiresPermissions("business:applychagnedetail:query")
+public ApiResponse<PageData<ApplyChagneDetail>> findPage (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap) {
+    return ApiResponse.success(applyChagneDetailService.findPageForCompany(pageWrap));
+}
 
-/*    @ApiOperation("瀵煎嚭Excel")
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/list")
+    @RequiresPermissions("business:applychagnedetail:query")
+    public ApiResponse<List<ApplyChagneDetail>> findList (@RequestBody ApplyChagneDetail  pageWrap) {
+        return ApiResponse.success(applyChagneDetailService.findList(pageWrap));
+    }
+
+    @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:applychagnedetail:exportExcel")
-    public void exportExcel (@RequestBody PageWrap<ApplyChagneDetail> pageWrap, HttpServletResponse response) {
-        ExcelExporter.build(ApplyChagneDetail.class).export(applyChagneDetailService.findPage(pageWrap).getRecords(), "鍔犲噺淇濇崲鍘傜敵璇锋槑缁嗕俊鎭〃", response);
-    }*/
+    public void exportExcel (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap, HttpServletResponse response) {
 
+    }
     @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
     @RequiresPermissions("business:applychagnedetail:query")
diff --git a/server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java b/server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java
index 0ef9bc1..d8a1d53 100644
--- a/server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/ApplyChangeController.java
@@ -62,11 +62,22 @@
     @PreventRepeat
     @ApiOperation("骞冲彴淇敼鎵瑰崟")
     @PostMapping("/editPidan")
-    @RequiresPermissions("business:applychange:editPidan")
+    @RequiresPermissions("business:applychange:uploadPidan")
     public ApiResponse editPidan(@RequestBody ApplyChange applyChange) {
         return ApiResponse.success(applyChangeService.editPidan(applyChange));
     }
-
+    @ApiOperation("鑾峰彇鍔犲噺淇濈绔犲湴鍧�")
+    @PostMapping("/getJiajianBaoSignLink")
+    @RequiresPermissions("business:applychange:sign")
+    public ApiResponse<String> getSignLinkJiajiabao (@RequestBody ApplyChange model, HttpServletResponse response) {
+        return ApiResponse.success( applyChangeService.getSignLinkJiajiabao(model));
+    }
+    @ApiOperation("鑾峰彇缂撳瓨鐢宠绛剧珷鍦板潃")
+    @PostMapping("/getChangeUnitSignLink")
+    @RequiresPermissions("business:applychange:sign")
+    public ApiResponse<String> getChangeUnitSignLink (@RequestBody ApplyChange model, HttpServletResponse response) {
+        return ApiResponse.success( applyChangeService.getSignLinkChangeUnit(model));
+    }
     @ApiOperation("鏍规嵁ID鍒犻櫎")
     @GetMapping("/delete/{id}")
     @RequiresPermissions("business:applychange:delete")
@@ -100,25 +111,25 @@
     @PostMapping("/page")
     @RequiresPermissions("business:applychange:query")
     public ApiResponse<PageData<ApplyChange>> findPage (@RequestBody PageWrap<ApplyChange> pageWrap) {
-        return ApiResponse.success(applyChangeService.findPage(pageWrap));
+        return ApiResponse.success(applyChangeService.findPageForCompany(pageWrap));
     }
 
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:applychange:exportExcel")
     public void exportExcel (@RequestBody PageWrap<ApplyChange> pageWrap, HttpServletResponse response) {
-        ExcelExporter.build(ApplyChange.class).export(applyChangeService.findPage(pageWrap).getRecords(), "鍔犲噺淇濇崲鍘傜敵璇蜂俊鎭〃", response);
+        ExcelExporter.build(ApplyChange.class).export(applyChangeService.findPageForCompany(pageWrap).getRecords(), "鍔犲噺淇濇崲鍘傜敵璇蜂俊鎭〃", response);
     }
 
     @ApiOperation("瀵煎嚭鍔犲噺淇濊鎯呭崟")
     @PostMapping("/exportJiajianBaoExcel")
-    @RequiresPermissions("business:insuranceapply:exportExcel")
+    @RequiresPermissions("business:applychange:exportExcel")
     public void exportJiajianBaoExcel (@RequestBody ApplyChange model, HttpServletResponse response) {
         ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcel(applyChangeService.exportJiajianBaoExcel(model),   response);
     }
     @ApiOperation("瀵煎嚭鎹㈠巶鐢宠璇︽儏鍗�")
     @PostMapping("/exportChangeUnitExcel")
-    @RequiresPermissions("business:insuranceapply:exportExcel")
+    @RequiresPermissions("business:applychange:exportExcel")
     public void exportChangeUnitExcel (@RequestBody ApplyChange model, HttpServletResponse response) {
         ExcelExporter.build(ApplyChange.class).exportChangeUnitExcel(applyChangeService.exportChangeUnitExcel(model),   response);
     }
@@ -127,7 +138,7 @@
     @ApiOperation("鏍规嵁ID鏌ヨ")
     @GetMapping("/{id}")
     @RequiresPermissions("business:applychange:query")
-    public ApiResponse findById(@PathVariable Integer id) {
-        return ApiResponse.success(applyChangeService.findById(id));
+    public ApiResponse<ApplyChange> findById(@PathVariable Integer id) {
+        return ApiResponse.success(applyChangeService.findDetail(id));
     }
 }
diff --git a/server/platform/src/main/java/com/doumee/task/ScheduleTool.java b/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
index 2967f11..ba0fe87 100644
--- a/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
+++ b/server/platform/src/main/java/com/doumee/task/ScheduleTool.java
@@ -48,7 +48,7 @@
     /**
      * @throws Exception
      */
-    @Scheduled(fixedDelay= 60*1000*60,initialDelay = 30000)
+    @Scheduled(fixedDelay= 60*1000*2 ,initialDelay = 30000)
     public void deal() throws Exception {
         log.info("==============瀹氭椂鏌ヨ浼佷笟鐢靛瓙绛剧缃茬姸鎬�=======start======");
         insuranceApplyService.dealWaitSignedData();
diff --git a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
index 3526bbe..4ddccfc 100644
--- a/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
+++ b/server/service/src/main/java/com/doumee/core/annotation/excel/ExcelExporter.java
@@ -256,6 +256,9 @@
      * 閰嶇疆鏁版嵁鍗曞厓鏍�
      */
     private void configDataCell (SXSSFWorkbook workbook, Cell cell ) {
+        if(cell == null){
+            return;
+        }
         CellStyle style = workbook.createCellStyle();
         style.setAlignment(HorizontalAlignment.CENTER);
         style.setVerticalAlignment(VerticalAlignment.CENTER);
@@ -274,6 +277,9 @@
      * 閰嶇疆鏁版嵁鍗曞厓鏍�
      */
     private void configDataCell (SXSSFWorkbook workbook, Cell cell, ExcelColumn columnConfig) {
+        if(cell == null){
+            return;
+        }
         CellStyle style = workbook.createCellStyle();
         style.setAlignment(columnConfig.align());
         style.setVerticalAlignment(VerticalAlignment.CENTER);
@@ -300,6 +306,9 @@
      * 閰嶇疆鍒楀ご鍗曞厓鏍�
      */
     private void configHeaderCell (SXSSFWorkbook workbook, Cell cell, ExcelColumn columnConfig) {
+        if(cell == null){
+            return;
+        }
         CellStyle style = workbook.createCellStyle();
         style.setAlignment(columnConfig.align());
         style.setVerticalAlignment(VerticalAlignment.CENTER);
@@ -322,6 +331,9 @@
      * 閰嶇疆鍒楀ご鍗曞厓鏍�
      */
     private void configFirstCell (SXSSFWorkbook workbook, Cell cell ) {
+        if(cell == null){
+            return;
+        }
         CellStyle style = workbook.createCellStyle();
         style.setAlignment(HorizontalAlignment.CENTER);
         style.setVerticalAlignment(VerticalAlignment.CENTER);
@@ -338,6 +350,9 @@
         cell.setCellStyle(style);
     }
     private void configTitleCell (SXSSFWorkbook workbook, Cell cell ) {
+        if(cell == null){
+            return;
+        }
         CellStyle style = workbook.createCellStyle();
         style.setAlignment(HorizontalAlignment.CENTER);
         style.setVerticalAlignment(VerticalAlignment.CENTER);
@@ -357,6 +372,9 @@
      * 閰嶇疆鍒楀ご鍗曞厓鏍�
      */
     private void configInfoCell (SXSSFWorkbook workbook, Cell cell,HorizontalAlignment p ) {
+        if(cell == null){
+            return;
+        }
         CellStyle style = workbook.createCellStyle();
         style.setAlignment(p);
         style.setVerticalAlignment(VerticalAlignment.CENTER);
@@ -368,6 +386,7 @@
         font.setFontHeightInPoints((short)12);
         font.setBold(true);
         style.setFont(font);
+        style.setWrapText(true);
         // 璁剧疆杈规
         configCellBorder(style);
         cell.setCellStyle(style);
@@ -376,6 +395,9 @@
      * 閰嶇疆鍒楀ご鍗曞厓鏍�
      */
     private void configEndCell (SXSSFWorkbook workbook, Cell cell ) {
+        if(cell == null){
+            return;
+        }
         CellStyle style = workbook.createCellStyle();
         style.setAlignment(HorizontalAlignment.RIGHT);
         style.setVerticalAlignment(VerticalAlignment.CENTER);
@@ -585,7 +607,7 @@
             response.setContentType("application/octet-stream");
             response.setHeader("eva-opera-type", "download");
             response.setHeader("eva-download-filename", encodeFileName);
-            this.exportJiajianBaoExcelDo(model,"鍔犲噺淇濈敵璇疯〃_", response.getOutputStream());
+            this.exportJiajianBaoExcelDo(model,"鍔犲噺淇濈敵璇疯〃", response.getOutputStream());
         } catch (IOException e) {
             throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
         }
@@ -602,13 +624,19 @@
         try {
             sxssfWorkbook = new SXSSFWorkbook();
             Sheet sheet = sxssfWorkbook.createSheet(sheetName);
+            for (int i = 0; i < 12; i++) {
+                sheet.setColumnWidth(i, ((i==3|| i== 5 || i==9|| i==11)?16:8) * 2 * 256);
+            }
             sheet.createFreezePane(0, 1);
-            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,8));
+            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,11));
             Row title = sheet.createRow(0);
-            title.setHeight((short) 1000);
+            title.setHeight((short) 800);
             Cell c = title.createCell(0);
             c.setCellValue(sheetName);
-            configFirstCell(sxssfWorkbook,c);
+            for (int i = 0; i < 12; i++) {
+//                title.createCell(i).setCellValue(i==0?sheetName:"");
+                configTitleCell(sxssfWorkbook,title.getCell(i));
+            }
             Row header1 = sheet.createRow(1);
             header1.createCell(0).setCellValue("鎶曚繚浼佷笟");
             header1.createCell(3).setCellValue("淇濋櫓鏂规");
@@ -624,7 +652,6 @@
             sheet.addMergedRegion(new CellRangeAddress(1  ,1,0,2));
             sheet.addMergedRegion(new CellRangeAddress(1  ,1,6,8));
 
-
             Row header2 = sheet.createRow(2);
             header2.createCell(0).setCellValue(data.getCompanyName());
             header2.createCell(3).setCellValue(data.getSolutionsName());
@@ -636,14 +663,16 @@
             header2.createCell(11).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getValidTime()));
             sheet.addMergedRegion(new CellRangeAddress(2 ,2,0,2));
             sheet.addMergedRegion(new CellRangeAddress(2  ,2,6,8));
-            //绌虹櫧琛�
+            for (int i = 0; i < 12; i++) {
+                configDataCell(sxssfWorkbook,   header2.getCell(i));
+            }
             Row header3 = sheet.createRow(3);
-            header2.createCell(0).setCellValue("鍔犱繚浜哄憳");
-            header2.createCell(6).setCellValue("鍑忎繚浜哄憳");
+            header3.createCell(0).setCellValue("鍔犱繚浜哄憳");
+            header3.createCell(6).setCellValue("鍑忎繚浜哄憳");
             sheet.addMergedRegion(new CellRangeAddress(3  ,3,0,5));
             sheet.addMergedRegion(new CellRangeAddress(3  ,3,6,11));
             for (int i = 0; i < 12; i++) {
-                configFirstCell(sxssfWorkbook,header2.getCell(i));
+                configFirstCell(sxssfWorkbook,   header3.getCell(i));
             }
             Row header4 = sheet.createRow(4);
             header4.createCell(0).setCellValue("搴忓彿");
@@ -671,17 +700,28 @@
                     header5.createCell(0).setCellValue(rowIndex+1);
                     header5.createCell(1).setCellValue(StringUtils.defaultString(addModel.getMemberName(),""));
                     header5.createCell(2).setCellValue(Constants.equalsInteger(addModel.getSex(),0)?"鐢�":(Constants.equalsInteger(addModel.getSex(),1)?"濂�":"-"));
-                    header5.createCell(3).setCellValue(StringUtils.defaultString(addModel.getIdcardNo(),""));
+                    header5.createCell(3).setCellValue(StringUtils.defaultString(addModel.getMemberIdcardNo(),""));
                     header5.createCell(4).setCellValue(StringUtils.defaultString(addModel.getDuName(),""));
                     header5.createCell(5).setCellValue(StringUtils.defaultString(addModel.getWorkTypeName(),""));
+                }else{
+                    for (int i = 0; i < 6; i++) {
+                        header5.createCell(i).setCellValue("");
+                    }
                 }
                 if(delModel!=null){
                     header5.createCell(6).setCellValue(rowIndex+1);
                     header5.createCell(7).setCellValue(StringUtils.defaultString(delModel.getMemberName(),""));
                     header5.createCell(8).setCellValue(Constants.equalsInteger(delModel.getSex(),0)?"鐢�":(Constants.equalsInteger(delModel.getSex(),1)?"濂�":"-"));
-                    header5.createCell(9).setCellValue(StringUtils.defaultString(delModel.getIdcardNo(),""));
+                    header5.createCell(9).setCellValue(StringUtils.defaultString(delModel.getMemberIdcardNo(),""));
                     header5.createCell(10).setCellValue(StringUtils.defaultString(delModel.getDuName(),""));
                     header5.createCell(11).setCellValue(StringUtils.defaultString(delModel.getWorkTypeName(),""));
+                }else{
+                    for (int i =6; i < 12; i++) {
+                        header5.createCell(i).setCellValue("");
+                    }
+                }
+                for (int i = 0; i < 12; i++) {
+                    configDataCell(sxssfWorkbook,   header5.getCell(i));
                 }
             }
             sxssfWorkbook.write(os);
@@ -709,13 +749,17 @@
         try {
             sxssfWorkbook = new SXSSFWorkbook();
             Sheet sheet = sxssfWorkbook.createSheet(sheetName);
+            for (int i = 0; i < 12; i++) {
+                sheet.setColumnWidth(i, ((i==3|| i==4|| i== 5 || i==9||i==10||  i==11)?16:8) * 2 * 256);
+            }
             sheet.createFreezePane(0, 1);
-            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,8));
+            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,11));
             Row title = sheet.createRow(0);
-            title.setHeight((short) 1000);
-            Cell c = title.createCell(0);
-            c.setCellValue(sheetName);
-            configFirstCell(sxssfWorkbook,c);
+            title.setHeight((short) 2000);
+            for (int i = 0; i < 12; i++) {
+                title.createCell(i).setCellValue(i==0?sheetName:"");
+                configTitleCell(sxssfWorkbook,title.getCell(i));
+            }
             Row header1 = sheet.createRow(1);
             header1.createCell(0).setCellValue("鎶曚繚浼佷笟");
             header1.createCell(3).setCellValue("淇濋櫓鏂规");
@@ -731,26 +775,31 @@
             sheet.addMergedRegion(new CellRangeAddress(1  ,1,0,2));
             sheet.addMergedRegion(new CellRangeAddress(1  ,1,6,8));
 
-
             Row header2 = sheet.createRow(2);
             header2.createCell(0).setCellValue(data.getCompanyName());
+            header2.createCell(1).setCellValue("");
+            header2.createCell(2).setCellValue("");
             header2.createCell(3).setCellValue(data.getSolutionsName());
             header2.createCell(4).setCellValue(data.getApplyCode());
             header2.createCell(5).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getStartTime()));
             header2.createCell(6).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getEndTime()));
+            header2.createCell(7).setCellValue("");
+            header2.createCell(8).setCellValue("");
             header2.createCell(9).setCellValue(data.getAddNum());
             header2.createCell(10).setCellValue(data.getDelNum());
             header2.createCell(11).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getValidTime()));
             sheet.addMergedRegion(new CellRangeAddress(2 ,2,0,2));
             sheet.addMergedRegion(new CellRangeAddress(2  ,2,6,8));
-            //绌虹櫧琛�
+            for (int i = 0; i < 12; i++) {
+                configDataCell(sxssfWorkbook,   header2.getCell(i));
+            }
             Row header3 = sheet.createRow(3);
-            header2.createCell(0).setCellValue("鍔犱繚浜哄憳");
-            header2.createCell(6).setCellValue("鍑忎繚浜哄憳");
+            header3.createCell(0).setCellValue("鍔犱繚浜哄憳");
+            header3.createCell(6).setCellValue("鍑忎繚浜哄憳");
             sheet.addMergedRegion(new CellRangeAddress(3  ,3,0,5));
             sheet.addMergedRegion(new CellRangeAddress(3  ,3,6,11));
             for (int i = 0; i < 12; i++) {
-                configFirstCell(sxssfWorkbook,header2.getCell(i));
+                configFirstCell(sxssfWorkbook,   header3.getCell(i));
             }
             Row header4 = sheet.createRow(4);
             header4.createCell(0).setCellValue("搴忓彿");
@@ -778,31 +827,58 @@
                     header5.createCell(0).setCellValue(rowIndex+1);
                     header5.createCell(1).setCellValue(StringUtils.defaultString(addModel.getMemberName(),""));
                     header5.createCell(2).setCellValue(Constants.equalsInteger(addModel.getSex(),0)?"鐢�":(Constants.equalsInteger(addModel.getSex(),1)?"濂�":"-"));
-                    header5.createCell(3).setCellValue(StringUtils.defaultString(addModel.getIdcardNo(),""));
+                    header5.createCell(3).setCellValue(StringUtils.defaultString(addModel.getMemberIdcardNo(),""));
                     header5.createCell(4).setCellValue(StringUtils.defaultString(addModel.getDuName(),""));
                     header5.createCell(5).setCellValue(StringUtils.defaultString(addModel.getWorkTypeName(),""));
+                }else{
+                    for (int i = 0; i < 6; i++) {
+                        header5.createCell(i).setCellValue("");
+                    }
                 }
                 if(delModel!=null){
                     header5.createCell(6).setCellValue(rowIndex+1);
                     header5.createCell(7).setCellValue(StringUtils.defaultString(delModel.getMemberName(),""));
                     header5.createCell(8).setCellValue(Constants.equalsInteger(delModel.getSex(),0)?"鐢�":(Constants.equalsInteger(delModel.getSex(),1)?"濂�":"-"));
-                    header5.createCell(9).setCellValue(StringUtils.defaultString(delModel.getIdcardNo(),""));
+                    header5.createCell(9).setCellValue(StringUtils.defaultString(delModel.getMemberIdcardNo(),""));
                     header5.createCell(10).setCellValue(StringUtils.defaultString(delModel.getDuName(),""));
                     header5.createCell(11).setCellValue(StringUtils.defaultString(delModel.getWorkTypeName(),""));
+                }else{
+                    for (int i =6; i < 12; i++) {
+                        header5.createCell(i).setCellValue("");
+                    }
+                }
+                for (int i = 0; i < 12; i++) {
+                    configDataCell(sxssfWorkbook,   header5.getCell(i));
                 }
             }
-            int rowIndex = 4+data.getChangeDetailList().size();
-            Row header6= sheet.createRow(4+data.getChangeDetailList().size());
+            int rowIndex = 5+maxNum;
+            Row header6= sheet.createRow(rowIndex);
             header6.createCell(0).setCellValue("鎶曚繚浼佷笟鐢虫槑:\n" +
                     "1銆佸湪鐢宠涔︿笂濉啓鐨勪竴鍒囧唴瀹瑰睘瀹烇紝鍚﹀垯鏈紒涓氭壙鎷呬竴鍒囨硶寰嬭矗浠汇�俓n" +
                     "2銆佺敱浜庡彉鏇村彈鐩婁汉浜х敓鐨勬硶寰嬬籂绾锋湰浼佷笟鎰挎壙鎷呬竴鍒囨硶寰嬭矗浠汇�俓n" +
                     "3銆佹湰鐢宠琛ㄧ殑绛剧珷涓烘湰浼佷笟浜茶嚜绛剧讲锛屽鐢辨浜х敓鐨勬硶寰嬬籂绾锋湰浼佷笟鎰挎壙鎷呬竴鍒囨硶寰嬭矗浠汇�俓n");
-            configInfoCell(sxssfWorkbook,header6.getCell(0),HorizontalAlignment.LEFT);
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex ,rowIndex,1,12));
+            for (int i = 1; i < 12; i++) {
+                header6.createCell(i).setCellValue("");
+            }
+            for (int i =0; i < 12; i++) {
+                if(i>0){
+                    header6.createCell(i).setCellValue("");
+                }
+                configInfoCell(sxssfWorkbook,header6.getCell(i),HorizontalAlignment.LEFT);
+            }
+            header6.setHeight((short) 2000);
+            sheet.addMergedRegion(new CellRangeAddress(rowIndex ,rowIndex,0,11));
             Row header7= sheet.createRow(rowIndex+1);
-            header7.createCell(0).setCellValue("鎶曚繚浼佷笟绛剧珷 锛�                            \n" +"鏃ユ湡锛�     骞�     鏈�     鏃�    ");
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex+1 ,rowIndex+1,1,12));
-            configInfoCell(sxssfWorkbook,header7.getCell(0),HorizontalAlignment.RIGHT);
+            header7.setHeight((short) 3000);
+            header7.createCell(0).setCellValue("鎶曚繚浼佷笟绛剧珷 锛�                            \n \n \n" +"鏃ユ湡锛�     骞�     鏈�     鏃�    ");
+            for (int i =0; i < 12; i++) {
+                if(i>0){
+                    header7.createCell(i).setCellValue("");
+                }
+                configInfoCell(sxssfWorkbook,header7.getCell(i),HorizontalAlignment.RIGHT);
+            }
+            sheet.addMergedRegion(new CellRangeAddress(rowIndex+1 ,rowIndex+1,0,11));
+
             //涓存椂缂撳啿鍖�
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             //鍒涘缓涓存椂鏂囦欢
@@ -816,6 +892,7 @@
                 return tempPdf;
             }
         } catch (Exception e) {
+            e.printStackTrace();
             // throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
         }
         return null;
@@ -831,16 +908,26 @@
         try {
             sxssfWorkbook = new SXSSFWorkbook();
             Sheet sheet = sxssfWorkbook.createSheet(sheetName);
+            for (int i = 0; i < 8; i++) {
+                sheet.setColumnWidth(i, ((i==3|| i== 5 || i==7)?16:8) * 2 * 256);
+            }
             sheet.createFreezePane(0, 1);
-            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,8));
+            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,7));
             Row title = sheet.createRow(0);
             title.setHeight((short) 1000);
             Cell c = title.createCell(0);
             c.setCellValue(sheetName);
             configFirstCell(sxssfWorkbook,c);
+            for (int i = 0; i < 8; i++) {
+                if(i>0){
+                    title.createCell(i).setCellValue("");
+                }
+                configTitleCell(sxssfWorkbook,title.getCell(i));
+            }
             Row header1 = sheet.createRow(1);
             header1.createCell(0).setCellValue("鎶曚繚浼佷笟");
             header1.createCell(1).setCellValue("淇濋櫓鏂规");
+            header1.createCell(2).setCellValue("");
             header1.createCell(3).setCellValue("淇濆崟鍙�");
             header1.createCell(4).setCellValue("淇濋櫓鐢熸晥璧锋湡");
             header1.createCell(5).setCellValue("淇濋櫓鐢熸晥姝㈡湡");
@@ -854,13 +941,16 @@
             Row header2 = sheet.createRow(2);
             header2.createCell(0).setCellValue(data.getCompanyName());
             header2.createCell(1).setCellValue(data.getSolutionsName());
+            header2.createCell(2).setCellValue("");
             header2.createCell(3).setCellValue(data.getApplyCode());
             header2.createCell(4).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getStartTime()));
             header2.createCell(5).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getEndTime()));
             header2.createCell(6).setCellValue(data.getChangeNum());
-            header2.createCell(7).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getValidTime()));
+            header2.createCell(7).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getApplyStartTime()));
             sheet.addMergedRegion(new CellRangeAddress(2  ,2,1,2));
-
+            for (int i = 0; i < 8; i++) {
+                configDataCell(sxssfWorkbook,header2.getCell(i));
+            }
             Row header4 = sheet.createRow(3);
             header4.createCell(0).setCellValue("搴忓彿");
             header4.createCell(1).setCellValue("鍛樺伐濮撳悕");
@@ -880,11 +970,14 @@
                 header5.createCell(0).setCellValue(rowIndex+1);
                 header5.createCell(1).setCellValue(StringUtils.defaultString(addModel.getMemberName(),""));
                 header5.createCell(2).setCellValue(Constants.equalsInteger(addModel.getSex(),0)?"鐢�":(Constants.equalsInteger(addModel.getSex(),1)?"濂�":"-"));
-                header5.createCell(3).setCellValue(StringUtils.defaultString(addModel.getIdcardNo(),""));
+                header5.createCell(3).setCellValue(StringUtils.defaultString(addModel.getMemberIdcardNo(),""));
                 header5.createCell(4).setCellValue(StringUtils.defaultString(addModel.getOldDuName(),""));
                 header5.createCell(5).setCellValue(StringUtils.defaultString(addModel.getOldWorkTypeName(),""));
                 header5.createCell(6).setCellValue(StringUtils.defaultString(addModel.getDuName(),""));
                 header5.createCell(7).setCellValue(StringUtils.defaultString(addModel.getWorkTypeName(),""));
+                for (int i = 0; i < 8; i++) {
+                    configDataCell(sxssfWorkbook,header5.getCell(i));
+                }
             }
             sxssfWorkbook.write(os);
             os.close();
@@ -910,16 +1003,26 @@
         try {
             sxssfWorkbook = new SXSSFWorkbook();
             Sheet sheet = sxssfWorkbook.createSheet(sheetName);
+            for (int i = 0; i < 8; i++) {
+                sheet.setColumnWidth(i, ((i==3|| i== 4|| i== 5 ||i== 6 || i==7)?16:8) * 2 * 256);
+            }
             sheet.createFreezePane(0, 1);
-            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,8));
+            sheet.addMergedRegion(new CellRangeAddress(0   ,0,0,7));
             Row title = sheet.createRow(0);
-            title.setHeight((short) 1000);
+            title.setHeight((short) 2000);
             Cell c = title.createCell(0);
             c.setCellValue(sheetName);
             configFirstCell(sxssfWorkbook,c);
+            for (int i = 0; i < 8; i++) {
+                if(i>0){
+                    title.createCell(i).setCellValue("");
+                }
+                configTitleCell(sxssfWorkbook,title.getCell(i));
+            }
             Row header1 = sheet.createRow(1);
             header1.createCell(0).setCellValue("鎶曚繚浼佷笟");
             header1.createCell(1).setCellValue("淇濋櫓鏂规");
+            header1.createCell(2).setCellValue("");
             header1.createCell(3).setCellValue("淇濆崟鍙�");
             header1.createCell(4).setCellValue("淇濋櫓鐢熸晥璧锋湡");
             header1.createCell(5).setCellValue("淇濋櫓鐢熸晥姝㈡湡");
@@ -933,13 +1036,16 @@
             Row header2 = sheet.createRow(2);
             header2.createCell(0).setCellValue(data.getCompanyName());
             header2.createCell(1).setCellValue(data.getSolutionsName());
+            header2.createCell(2).setCellValue("");
             header2.createCell(3).setCellValue(data.getApplyCode());
             header2.createCell(4).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getStartTime()));
             header2.createCell(5).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getEndTime()));
             header2.createCell(6).setCellValue(data.getChangeNum());
-            header2.createCell(7).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getValidTime()));
+            header2.createCell(7).setCellValue(com.doumee.core.utils.DateUtil.getPlusTime2(data.getApplyStartTime()));
             sheet.addMergedRegion(new CellRangeAddress(2  ,2,1,2));
-
+            for (int i = 0; i < 8; i++) {
+                configDataCell(sxssfWorkbook,header2.getCell(i));
+            }
             Row header4 = sheet.createRow(3);
             header4.createCell(0).setCellValue("搴忓彿");
             header4.createCell(1).setCellValue("鍛樺伐濮撳悕");
@@ -959,28 +1065,47 @@
                 header5.createCell(0).setCellValue(rowIndex+1);
                 header5.createCell(1).setCellValue(StringUtils.defaultString(addModel.getMemberName(),""));
                 header5.createCell(2).setCellValue(Constants.equalsInteger(addModel.getSex(),0)?"鐢�":(Constants.equalsInteger(addModel.getSex(),1)?"濂�":"-"));
-                header5.createCell(3).setCellValue(StringUtils.defaultString(addModel.getIdcardNo(),""));
+                header5.createCell(3).setCellValue(StringUtils.defaultString(addModel.getMemberIdcardNo(),""));
                 header5.createCell(4).setCellValue(StringUtils.defaultString(addModel.getOldDuName(),""));
                 header5.createCell(5).setCellValue(StringUtils.defaultString(addModel.getOldWorkTypeName(),""));
                 header5.createCell(6).setCellValue(StringUtils.defaultString(addModel.getDuName(),""));
                 header5.createCell(7).setCellValue(StringUtils.defaultString(addModel.getWorkTypeName(),""));
+                for (int i = 0; i < 8; i++) {
+                    configDataCell(sxssfWorkbook,header5.getCell(i));
+                }
             }
             int rowIndex = 4+data.getChangeDetailList().size();
-            Row header6= sheet.createRow(4+data.getChangeDetailList().size());
+            Row header6= sheet.createRow(rowIndex);
             header6.createCell(0).setCellValue("鎶曚繚浼佷笟鐢虫槑:\n" +
                     "1銆佸湪鐢宠涔︿笂濉啓鐨勪竴鍒囧唴瀹瑰睘瀹烇紝鍚﹀垯鏈紒涓氭壙鎷呬竴鍒囨硶寰嬭矗浠汇�俓n" +
                     "2銆佺敱浜庡彉鏇村彈鐩婁汉浜х敓鐨勬硶寰嬬籂绾锋湰浼佷笟鎰挎壙鎷呬竴鍒囨硶寰嬭矗浠汇�俓n" +
                     "3銆佹湰鐢宠琛ㄧ殑绛剧珷涓烘湰浼佷笟浜茶嚜绛剧讲锛屽鐢辨浜х敓鐨勬硶寰嬬籂绾锋湰浼佷笟鎰挎壙鎷呬竴鍒囨硶寰嬭矗浠汇�俓n");
-            configInfoCell(sxssfWorkbook,header6.getCell(0),HorizontalAlignment.LEFT);
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex ,rowIndex,1,8));
+            for (int i = 1; i < 8; i++) {
+                header6.createCell(i).setCellValue("");
+            }
+            for (int i =0; i < 8; i++) {
+                if(i>0){
+                    header6.createCell(i).setCellValue("");
+                }
+                configInfoCell(sxssfWorkbook,header6.getCell(i),HorizontalAlignment.LEFT);
+            }
+            header6.setHeight((short) 2000);
+            sheet.addMergedRegion(new CellRangeAddress(rowIndex ,rowIndex,0,7));
             Row header7= sheet.createRow(rowIndex+1);
-            header7.createCell(0).setCellValue("鎶曚繚浼佷笟绛剧珷 锛�                            \n" +"鏃ユ湡锛�     骞�     鏈�     鏃�    ");
-            sheet.addMergedRegion(new CellRangeAddress(rowIndex+1 ,rowIndex+1,1,8));
-            configInfoCell(sxssfWorkbook,header7.getCell(0),HorizontalAlignment.RIGHT);
+            header7.setHeight((short) 3000);
+            header7.createCell(0).setCellValue("鎶曚繚浼佷笟绛剧珷 锛�                            \n \n \n" +"鏃ユ湡锛�     骞�     鏈�     鏃�    ");
+            for (int i =0; i < 8; i++) {
+                if(i>0){
+                    header7.createCell(i).setCellValue("");
+                }
+                configInfoCell(sxssfWorkbook,header7.getCell(i),HorizontalAlignment.RIGHT);
+            }
+            sheet.addMergedRegion(new CellRangeAddress(rowIndex+1 ,rowIndex+1,0,7));
+
             //涓存椂缂撳啿鍖�
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             //鍒涘缓涓存椂鏂囦欢
-             sxssfWorkbook.write(out);
+            sxssfWorkbook.write(out);
             byte [] bookByteAry = out.toByteArray();
             InputStream     in = new ByteArrayInputStream(bookByteAry);
             String tempPdf =System.getProperty("java.io.tmpdir")+File.separator+UUID.randomUUID().toString()+".pdf";
@@ -989,7 +1114,6 @@
             if(f!=null && f.isFile()){
                 return tempPdf;
             }
-            return tempPdf;
         } catch (Exception e) {
            // throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR, e);
         }
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java b/server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java
index b51654a..d102de0 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/ApplyDetailPageDTO.java
@@ -16,6 +16,7 @@
     @ApiModelProperty(value = "鍦ㄤ繚鐘舵�侊細1=淇濋殰涓紱2=涓嶅湪淇濓紱 0=鍏ㄩ儴")
     private Integer applyStatus;
 
+
     @ApiModelProperty(value = "娲鹃仯鍗曚綅涓婚敭")
     private Integer duId;
 
@@ -24,6 +25,10 @@
 
     @ApiModelProperty(value = "鍛樺伐濮撳悕")
     private String memberName;
+
+    @ApiModelProperty(value = "鍛樺伐涓婚敭")
+    private Integer memberId;
+
     @ApiModelProperty(value = "鍛樺伐濮撳悕",hidden = true)
     private String companyName;
     @ApiModelProperty(value = "鏂规鍚嶇О",hidden = true)
@@ -43,6 +48,8 @@
 
     @ApiModelProperty(value = "淇濆崟涓婚敭")
     private Integer applyId;
+    @ApiModelProperty(value = "鍔犲噺淇濅富閿�")
+    private Integer applyChangId;
 
     @ApiModelProperty(value = "绫诲瀷锛�0=鍔犱繚锛�1=鍑忎繚锛�2=鎹㈠巶 ")
     private List<Integer> types;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
index 9e28fe4..4e4de3a 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java
@@ -101,6 +101,9 @@
     @ApiModelProperty(value = "鍛樺伐鍚嶇О")
     @TableField(exist = false)
     private String memberName;
+    @ApiModelProperty(value = "鍛樺伐韬唤璇佸彿")
+    @TableField(exist = false)
+    private String memberIdcardNo;
     @ApiModelProperty(value = "鎬у埆 0鐢� 1濂�")
     @TableField(exist = false)
     private Integer sex;
@@ -130,5 +133,8 @@
     @ApiModelProperty(value = "淇濋櫓鏃堕棿鍗曚綅0澶� 1鍗婃湀 2鏈� 3骞�", example = "1")
     @TableField(exist = false)
     private Integer solutionTimeUnit;
+    @ApiModelProperty(value = "鎶曚繚鐢宠缂栫爜", example = "1")
+    @TableField(exist = false)
+    private Integer applyId;
 
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
index a5ad527..96a19e8 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
@@ -152,6 +152,19 @@
     @ApiModelProperty(value = "淇濋櫓鏂规涓婚敭")
     @TableField(exist = false)
     private Integer solutionsId;
+    @ApiModelProperty(value = "淇濋櫓鏂规涓婚敭(鍩鸿〃锛�")
+    @TableField(exist = false)
+    private Integer baseSolutionsId;
+    @ApiModelProperty(value = "鐢宠鍗曢檮浠�")
+    @TableField(exist = false)
+    private Multifile applyFile;
+    @ApiModelProperty(value = "鐢宠鍗曟崲鍘傞檮浠�")
+    @TableField(exist = false)
+    private Multifile applyUnitFile;
+    @ApiModelProperty(value = "鎵瑰崟闄勪欢")
+    @TableField(exist = false)
+    private Multifile pidanFile;
+
 
     @ApiModelProperty(value = "鍔犱繚鏄庣粏鏁版嵁")
     @TableField(exist = false)
@@ -170,9 +183,6 @@
     @TableField(exist = false)
     private Integer companyId;
 
-    @ApiModelProperty(value = "鎵瑰崟闄勪欢瀵硅薄")
-    @TableField(exist = false)
-    private Multifile pidanFile;
     @ApiModelProperty(value = "澶勭悊浼佷笟鐢宠鐘舵��  0鍚屾剰 1椹冲洖")
     @TableField(exist = false)
     private int dealBackApply;
@@ -184,9 +194,9 @@
     @TableField(exist = false)
     private Date endTime;
 
-
-
-
+    @ApiModelProperty(value = "鏃ュ織璁板綍")
+    @TableField(exist = false)
+    private List<ApplyLog> applyLogList;
     public TaxesInvoicingVO toTaxesInvoicingVO(){
         TaxesInvoicingVO taxesInvoicingVO = new TaxesInvoicingVO();
         taxesInvoicingVO.setId(this.getId());
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyLog.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyLog.java
index 9f8389c..7b95188 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyLog.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyLog.java
@@ -10,6 +10,7 @@
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 鎶曚繚鐢宠鎿嶄綔鍘嗗彶琛�
@@ -115,6 +116,9 @@
     @ApiModelProperty(value = "鍒涘缓浜哄悕绉�", example = "1")
     @TableField(exist = false)
     private String  creatorName;
+    @ApiModelProperty(value = "鍒涘缓浜洪鍨� 0骞冲彴 1浼佷笟", example = "1")
+    @TableField(exist = false)
+    private Integer  creatorType;
 
     @ApiModelProperty(value = "鍏徃鍚嶇О", example = "1")
     @TableField(exist = false)
diff --git a/server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java b/server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java
index df79445..14b0e80 100644
--- a/server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java
+++ b/server/service/src/main/java/com/doumee/service/business/ApplyChangeService.java
@@ -24,6 +24,7 @@
      * @return Integer
      */
     Integer create(ApplyChange applyChange);
+    Integer update(ApplyChange applyChange);
     Integer back(ApplyChange param);
     Integer dealBackApply(ApplyChange param);
     Integer uploadPidan(ApplyChange insuranceApply);
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
index 47cc01f..a6e53bc 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
@@ -90,9 +90,30 @@
     }
 
     @Override
-    public List<ApplyChagneDetail> findList(ApplyChagneDetail applyChagneDetail) {
-        QueryWrapper<ApplyChagneDetail> wrapper = new QueryWrapper<>(applyChagneDetail);
-        return applyChagneDetailMapper.selectList(wrapper);
+    public List<ApplyChagneDetail> findList(ApplyChagneDetail applyDetailPageDTO) {
+        MPJLambdaWrapper<ApplyChagneDetail> queryWrapper = new MPJLambdaWrapper<>();
+        Utils.MP.blankToNull(applyDetailPageDTO );
+        queryWrapper.select("t2.name",ApplyChagneDetail::getWorkTypeName);
+        queryWrapper.select("t3.name",ApplyChagneDetail::getDuName);
+        queryWrapper.select("t4.name",ApplyChagneDetail::getOldWorkTypeName);
+        queryWrapper.select("t5.name",ApplyChagneDetail::getOldDuName);
+        queryWrapper.selectAs(Member::getName,ApplyChagneDetail::getMemberName);
+        queryWrapper.selectAs(Member::getSex,ApplyChagneDetail::getSex);
+        queryWrapper.selectAs(Member::getIdcardNo,ApplyChagneDetail::getMemberIdcardNo);
+        queryWrapper.leftJoin(Member.class,Member::getId,ApplyChagneDetail::getMemberId);
+        queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId);
+        queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId);
+        queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getOldWorktypeId);
+        queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getOldDuId);
+        queryWrapper.exists(!Objects.isNull(applyDetailPageDTO.getApplyId()),
+                " select 1 from apply_change ac where ac.isdeleted = 0 and ac.status in (1,2)  and ac.apply_id = "+applyDetailPageDTO.getApplyId()+" and ac.id = t.apply_change_id  ");
+        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getDuId()),ApplyChagneDetail::getDuId,applyDetailPageDTO.getDuId());
+        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getWorktypeId()),ApplyChagneDetail::getWorktypeId,applyDetailPageDTO.getWorktypeId());
+        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getApplyChangeId()),ApplyChagneDetail::getApplyChangeId,applyDetailPageDTO.getApplyChangeId());
+        queryWrapper.like(StringUtils.isNotBlank(applyDetailPageDTO.getMemberName()),Member::getName,applyDetailPageDTO.getMemberName());
+
+        List<ApplyChagneDetail> pageData = applyChangeDetailJoinMapper.selectJoinList( ApplyChagneDetail.class, queryWrapper);
+        return pageData;
     }
 
 
@@ -167,9 +188,18 @@
         MPJLambdaWrapper<ApplyChagneDetail> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
         queryWrapper.selectAll(ApplyChagneDetail.class);
-        queryWrapper.selectAs(DispatchUnit::getName,ApplyChagneDetail::getDuName);
-        queryWrapper.selectAs(Worktype::getName,ApplyChagneDetail::getWorkTypeName);
+        queryWrapper.select("t2.name",ApplyChagneDetail::getWorkTypeName);
+        queryWrapper.select("t3.name",ApplyChagneDetail::getDuName);
+        queryWrapper.select("t4.name",ApplyChagneDetail::getOldWorkTypeName);
+        queryWrapper.select("t5.name",ApplyChagneDetail::getOldDuName);
         queryWrapper.selectAs(Member::getName,ApplyChagneDetail::getMemberName);
+        queryWrapper.selectAs(Member::getSex,ApplyChagneDetail::getSex);
+        queryWrapper.selectAs(Member::getIdcardNo,ApplyChagneDetail::getMemberIdcardNo);
+        queryWrapper.leftJoin(Member.class,Member::getId,ApplyChagneDetail::getMemberId);
+        queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId);
+        queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId);
+        queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getOldWorktypeId);
+        queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getOldDuId);
         ApplyDetailPageDTO applyDetailPageDTO = pageWrap.getModel();
         queryWrapper.exists(!Objects.isNull(applyDetailPageDTO.getApplyId()),
                 " select 1 from apply_change ac where ac.isdeleted = 0 and ac.status in (1,2)  and ac.apply_id = "+applyDetailPageDTO.getApplyId()+" and ac.id = t.apply_change_id  ");
@@ -183,6 +213,7 @@
                 ApplyChagneDetail::getEndTime, DateUtil.getDate(new Date(),"yyyy-MM-dd")+" 23:59:59");
         queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getDuId()),ApplyChagneDetail::getDuId,applyDetailPageDTO.getDuId());
         queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getWorkTypeId()),ApplyChagneDetail::getWorktypeId,applyDetailPageDTO.getWorkTypeId());
+        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getApplyChangId()),ApplyChagneDetail::getApplyChangeId,applyDetailPageDTO.getApplyChangId());
         queryWrapper.like(StringUtils.isNotBlank(applyDetailPageDTO.getMemberName()),Member::getName,applyDetailPageDTO.getMemberName());
         queryWrapper.ge(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeS()),ApplyChagneDetail::getStartTime,applyDetailPageDTO.getStartTimeS()+" 00:00:00");
         queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeE()),ApplyChagneDetail::getStartTime,applyDetailPageDTO.getStartTimeE()+" 23:59:59");
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
index 3370231..c8e661a 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -16,12 +16,10 @@
 import com.doumee.dao.business.dto.ApplyChangeOptDTO;
 import com.doumee.dao.business.dto.CountCyclePriceDTO;
 import com.doumee.dao.business.dto.InsuranceApplyOptDTO;
-import com.doumee.dao.business.join.ApplyChagneDetailJoinMapper;
-import com.doumee.dao.business.join.ApplyChangeJoinMapper;
-import com.doumee.dao.business.join.ApplyDetailJoinMapper;
-import com.doumee.dao.business.join.DuSolutionJoinMapper;
+import com.doumee.dao.business.join.*;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.vo.CountCyclePriceVO;
+import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.ApplyChangeService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -33,14 +31,12 @@
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -68,6 +64,8 @@
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
     @Autowired
+    private CompanyMapper companyMapper;
+    @Autowired
     private SignService signService;
     @Autowired
     private ApplyChagneDetailJoinMapper applyChagneDetailJoinMapper;
@@ -87,6 +85,10 @@
 
     @Autowired
     private ApplyLogMapper applyLogMapper;
+    @Value("${debug_model}")
+    private boolean debugModel;
+    @Autowired
+    private ApplyLogJoinMapper applyLogJoinMapper;
 
     @Autowired
     private SolutionsMapper solutionsMapper;
@@ -262,7 +264,8 @@
                         .selectAs(Solutions::getTimeUnit,ApplyChagneDetail::getSolutionTimeUnit)
                         .selectAs(Solutions::getPrice,ApplyChagneDetail::getSolutionPrice)
                   .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
-                  .leftJoin(Solutions.class, Solutions::getId, ApplyChange::getSolutionsId)
+                  .leftJoin(InsuranceApply.class, InsuranceApply::getId, ApplyChange::getApplyId)
+                  .leftJoin(Solutions.class, Solutions::getId, InsuranceApply::getSolutionId)
                   .eq(ApplyChagneDetail::getApplyChangeId,update.getId())
                   .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO) );
         if(detailList ==null || detailList.size()==0){
@@ -299,7 +302,8 @@
                         .selectAs(Solutions::getTimeUnit,ApplyChagneDetail::getSolutionTimeUnit)
                         .selectAs(Solutions::getPrice,ApplyChagneDetail::getSolutionPrice)
                   .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
-                  .leftJoin(Solutions.class, Solutions::getId, ApplyChange::getSolutionsId)
+                  .leftJoin(InsuranceApply.class, InsuranceApply::getId, ApplyChange::getApplyId)
+                  .leftJoin(Solutions.class, Solutions::getId, InsuranceApply::getSolutionId)
                   .eq(ApplyChagneDetail::getApplyChangeId,update.getId())
                   .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO) );
         if(detailList ==null || detailList.size()==0){
@@ -326,7 +330,8 @@
                 add.setDuId(detail.getDuId());
                 add.setStartTime(update.getApplyStartTime());
                 add.setEndTime(detail.getEndTime());
-                add.setFee(Constants.countDetailFee(detail.getSolutionTimeUnit(),detail.getSolutionPrice(), add.getStartTime(),add.getEndTime()));
+                add.setFee(new BigDecimal(0));
+//                add.setFee(Constants.countDetailFee(detail.getSolutionTimeUnit(),detail.getSolutionPrice(), add.getStartTime(),add.getEndTime()));
                 if(DateUtil.daysBetweenDates(add.getStartTime(),new Date() )>=0){
                     //濡傛灉宸蹭骇鐢熻垂鐢紝璁$畻宸蹭骇鐢熻垂鐢�
                     add.setCurrentFee(Constants.countDetailFee(detail.getSolutionTimeUnit(),detail.getSolutionPrice(), add.getStartTime(),new Date()));
@@ -349,7 +354,7 @@
                 BigDecimal updateCurrentFee = new BigDecimal(0);
                 if(DateUtil.daysBetweenDates(update.getApplyStartTime(),new Date() )>0){
                     //濡傛灉鐢熸晥鏃堕棿 鏄粖澶╀箣鍓嶏紝閫�鍥炲凡浜х敓璐圭敤锛岃绠楀凡浜х敓璐圭敤(鎬昏垂鐢�-宸蹭骇鐢熻垂鐢�)
-                    updateCurrentFee = updateFee.subtract(oldModel.getCurrentFee());
+                    updateCurrentFee = updateFee.subtract(Constants.formatBigdecimal(oldModel.getCurrentFee()));
                 }
                 applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda()
                         .setSql(" fee = ifnull(fee,0)+"+updateFee)
@@ -454,11 +459,12 @@
         if (!loginUserInfo.getType().equals(Constants.ONE)) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢ㄦ埛绫诲瀷閿欒锛氶潪浼佷笟鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
         }
+        BigDecimal fee = BigDecimal.ZERO;
+
         InsuranceApply insuranceApply = insuranceApplyMapper.selectById(applyChange.getApplyId());
         if (Objects.isNull(insuranceApply)) {
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        System.out.println(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey());
         if (!Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) {
             throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "淇濆崟鐘舵�侀敊璇�");
         }
@@ -491,6 +497,90 @@
         applyChange.setStatus(Constants.ZERO);
         applyChangeMapper.insert(applyChange);
 
+        this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,fee);
+
+        ApplyChange applyChangeFee = new ApplyChange();
+        applyChangeFee.setId(applyChange.getId());
+        applyChangeFee.setFee(fee);
+        applyChangeMapper.updateById(applyChangeFee);
+
+        this.saveApplyLog(applyChange,Constants.ApplyChangeLogStatus.UPLOAD,null);
+        return applyChange.getId();
+    }
+
+
+
+
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public Integer update(ApplyChange applyChange) {
+        if (Objects.isNull(applyChange)
+                || Objects.isNull(applyChange.getId())
+                || Objects.isNull(applyChange.getApplyId())
+                || Objects.isNull(applyChange.getValidTime())
+                || Objects.isNull(applyChange.getType())
+                || !(applyChange.getType().equals(Constants.ZERO) || applyChange.getType().equals(Constants.ONE))
+        ) {
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if (!loginUserInfo.getType().equals(Constants.ONE)) {
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢ㄦ埛绫诲瀷閿欒锛氶潪浼佷笟鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
+        }
+        ApplyChange dbApplyChange = applyChangeMapper.selectById(applyChange.getId());
+        if(Objects.isNull(dbApplyChange)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(!dbApplyChange.getStatus().equals(Constants.ApplyChangeStatus.PLATFORM_AGREE.getKey())){
+            throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "涓氬姟淇濈敵璇峰崟鐘舵�侀敊璇�");
+        }
+
+        InsuranceApply insuranceApply = insuranceApplyMapper.selectById(applyChange.getApplyId());
+        if (Objects.isNull(insuranceApply)) {
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if (!Constants.equalsInteger(insuranceApply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())) {
+            throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "淇濆崟鐘舵�侀敊璇�");
+        }
+        if (DateUtil.compareDate(insuranceApply.getEndTime(),new Date()) >= Constants.ZERO
+        ) {
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "淇濆崟宸茶繃淇濓紝鏃犳硶杩涜璇ユ搷浣�");
+        }
+        Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濋櫓鏂规");
+        }
+        CompanySolution companySolution = companySolutionMapper.selectOne(new QueryWrapper<CompanySolution>().lambda()
+                .eq(CompanySolution::getCompanyId,loginUserInfo.getCompanyId())
+                .eq(CompanySolution::getSolutionBaseId,solutions.getId())
+                .eq(CompanySolution::getIsdeleted,Constants.ZERO)
+                .last(" limit 1 ")
+        );
+        if(Objects.isNull(companySolution)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌浼佷笟鍒嗛厤淇濋櫓鏂规淇℃伅");
+        }
+        //鐢宠鏃堕棿蹇呴』澶勪簬淇濆崟鐨勬椂闂磋寖鍥村唴
+        if (!(DateUtil.compareDate( insuranceApply.getStartTime(),applyChange.getValidTime()) >= Constants.ZERO
+                && DateUtil.compareDate( applyChange.getValidTime(),insuranceApply.getEndTime()) >= Constants.ZERO)) {
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢宠鏃ユ湡鏈浜庝繚鍗曟棩鏈熷唴锛屾棤娉曡繘琛岃鎿嶄綔");
+        }
+
+
+        applyChange.setEditDate(new Date());
+        applyChange.setEditor(loginUserInfo.getId());
+        applyChange.setStatus(Constants.ZERO);
+        BigDecimal fee = BigDecimal.ZERO;
+        this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,fee);
+        applyChange.setFee(fee);
+        applyChangeMapper.updateById(applyChange);
+        this.saveApplyLog(applyChange,Constants.ApplyChangeLogStatus.UPLOAD,null);
+        return applyChange.getId();
+    }
+
+
+    public void dealApplyChangeData(ApplyChange applyChange,InsuranceApply insuranceApply,CompanySolution companySolution,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal fee){
+
+
         //鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬e崟浣�
         List<DuSolution>  duSolutionList = duSolutionJoinMapper.selectJoinList(DuSolution.class,new MPJLambdaWrapper<DuSolution>()
                 .selectAll(DuSolution.class)
@@ -514,17 +604,16 @@
         if (!CollectionUtils.isNotEmpty(duWorktypeList)) {
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌宸ョ淇℃伅");
         }
-        BigDecimal fee = BigDecimal.ZERO;
+
         //鍔犱繚鏁版嵁
         List<ApplyChagneDetail> addDetailList = applyChange.getAddDetailList();
         if (CollectionUtils.isNotEmpty(addDetailList)) {
-           if(companySolution.getCanAdd().equals(Constants.ZERO)){
-               throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽姞淇�");
-           }
+            if(companySolution.getCanAdd().equals(Constants.ZERO)){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽姞淇�");
+            }
             this.addChangeDetail(applyChange,addDetailList,duWorktypeList,duSolutionList,insuranceApply,solutions,loginUserInfo);
 
             fee = addDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add);
-
         }
 
         //鍑忎繚鏁版嵁
@@ -533,23 +622,19 @@
             if(companySolution.getCanReduce().equals(Constants.ZERO)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽噺淇�");
             }
-             this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo);
+            this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo);
             fee = fee.add(delDetailList.stream().map(ApplyChagneDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
         }
-        ApplyChange applyChangeFee = new ApplyChange();
-        applyChangeFee.setId(applyChange.getId());
-        applyChangeFee.setFee(fee);
-        applyChangeMapper.updateById(applyChangeFee);
 
         //鎹㈠巶涓氬姟
         List<ApplyChagneDetail> changeDetailList = applyChange.getChangeDetailList();
         if (CollectionUtils.isNotEmpty(changeDetailList)) {
             this.changeDetail(applyChange,changeDetailList,duWorktypeList,duSolutionList,loginUserInfo);
         }
-
-        this.saveApplyLog(applyChange,Constants.ApplyChangeLogStatus.UPLOAD,null);
-        return applyChange.getId();
     }
+
+
+
 
 
     public void saveApplyLog(ApplyChange applyChange,Constants.ApplyChangeLogStatus applyChangeLogStatus,String content){
@@ -894,6 +979,7 @@
         queryWrapper
                 .selectAll(ApplyChange.class)
                 .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
+                .selectAs(Solutions::getName,ApplyChange::getSolutionsName)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 0  )",ApplyChange::getAddNum)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 1  )",ApplyChange::getDelNum)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 2  )",ApplyChange::getChangeNum)
@@ -906,7 +992,8 @@
                         Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey(),
                         Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())
                 .eq(!Objects.isNull(model.getCompanyId()),InsuranceApply::getCompanyId,model.getCompanyId())
-                .eq(!Objects.isNull(model.getSolutionsId()),ApplyChange::getSolutionsId,model.getSolutionsId())
+//                .eq(!Objects.isNull(model.getSolutionsId()),ApplyChange::getSolutionsId,model.getSolutionsId())
+                .eq(!Objects.isNull(model.getBaseSolutionsId()),Solutions::getBaseId,model.getBaseSolutionsId())
                 .ge(StringUtils.isNotBlank(model.getCreateDateS()),ApplyChange::getCreateDate, model.getCreateDateS()+" 00:00:00" )
                 .le(StringUtils.isNotBlank(model.getCreateDateE()),ApplyChange::getCreateDate, model.getCreateDateE()+" 23:59:59" );
 
@@ -1016,15 +1103,59 @@
         queryWrapper.selectAll(ApplyChange.class)
                 .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
                 .selectAs(Company::getName,ApplyChange::getCompanyName)
+                .selectAs(InsuranceApply::getStartTime,ApplyChange::getStartTime)
+                .selectAs(InsuranceApply::getEndTime,ApplyChange::getEndTime)
+                .selectAs(Solutions::getName,ApplyChange::getSolutionsName)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 0  )",ApplyChange::getAddNum)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 1  )",ApplyChange::getDelNum)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 2  )",ApplyChange::getChangeNum)
-                .select("( select ifnull(sum(ad.FEE),0) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID  )",ApplyChange::getChangeMoney)
                 .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
                 .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                 .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
                 .eq(ApplyChange::getId,id);
         ApplyChange applyChange =  applyChangeJoinMapper.selectOne(queryWrapper);
+
+        //鏌ヨ鎿嶄綔璁板綍
+        List<ApplyLog> applyLogList = applyLogJoinMapper.selectJoinList(ApplyLog.class,
+                new MPJLambdaWrapper<ApplyLog>()
+                        .selectAll(ApplyLog.class)
+                        .selectAs(SystemUser::getRealname,ApplyLog::getCreatorName)
+                        .selectAs(SystemUser::getType,ApplyLog::getCreatorType)
+                        .selectAs(Company::getName,ApplyLog::getCompanyName)
+                        .leftJoin(SystemUser.class,SystemUser::getId,ApplyLog::getCreator)
+                        .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
+                        .eq(ApplyLog::getObjId,applyChange.getId())
+                        .orderByAsc(ApplyLog::getCreateDate)
+        );
+        applyChange.setApplyLogList(applyLogList);
+
+        List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
+                .eq(Multifile::getObjId,applyChange.getId())
+                .in(Multifile::getObjType, Arrays.asList(new Integer[]{Constants.MultiFile.CA_APPLY_JIAJIAN_SIGN.getKey()
+                        ,Constants.MultiFile.CA_PD_PDF.getKey()
+                        ,Constants.MultiFile.CA_APPLY_CHANGEUNIT_SIGN.getKey()}))
+                .eq(Multifile::getIsdeleted,Constants.ZERO));
+        if(multifiles!=null){
+            String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()
+                    +systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode();
+            for(Multifile f : multifiles){
+                if(StringUtils.isBlank(f.getFileurl())){
+                    continue;
+                }
+                f.setFileurlFull(path+f.getFileurl());
+                if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.CA_APPLY_JIAJIAN_SIGN.getKey())){
+                    //绛剧讲鍚庣敵璇峰崟
+                    applyChange.setApplyFile(f);
+                }else    if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.CA_APPLY_CHANGEUNIT_SIGN.getKey())){
+                    //绛剧讲鍚庣敵璇峰崟
+                    applyChange.setApplyUnitFile(f);
+                }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.CA_PD_PDF.getKey())){
+                    //绛剧讲鍚庣殑鎶曚繚鍗�
+                    applyChange.setPidanFile(f);
+                }
+            }
+        }
+
         return applyChange;
     }
     /**
@@ -1035,7 +1166,7 @@
     @Override
     public  ApplyChange  exportChangeUnitExcel(ApplyChange param){
         ApplyChange model = findJoinDetail(param);
-        if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getType())){
+        if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getIsdeleted())){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
 
@@ -1067,7 +1198,7 @@
     }
 
     private String getOnlineSignLink(ApplyChange model) {
-        if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getType())){
+        if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getIsdeleted())){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
         if(!Constants.equalsInteger(Constants.ZERO,model.getStatus())){
@@ -1075,14 +1206,21 @@
         }
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         Company company = user.getCompany();
-        if(company== null || StringUtils.isBlank( company.getEmail()) || !Constants.equalsInteger(company.getSignStatus(),Constants.ONE)){
+        if(debugModel){
+company = companyMapper.selectById(model.getCompanyId());
+        }
+        if(company== null || StringUtils.isBlank( company.getEmail()) || !Constants.equalsInteger(company.getSignStatus(),Constants.THREE)){
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝浼佷笟灏氭湭鍏峰鍦ㄧ嚎绛剧珷鏉′欢锛岃鑱旂郴骞冲彴绠$悊鍛樼‘璁");
         }
-
-        String fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"缂撳瓨鐢宠琛�");
+        String fileUrl = null;
+        if(Constants.equalsObject(model.getType(), Constants.ONE)){
+              fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�");
+        }else{
+            fileUrl = ExcelExporter.build(ApplyChange.class).exportJiajianBaoExcelToPdf(model,"鍔犲噺淇濈敵璇疯〃");
+        }
         String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode();
         notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString());
-        String applyNo = signService.applySignLocalFile(company.getName(),fileUrl,company.getName(),company.getCode(),company.getEmail(),null,company.getSignId(),notifyUrl);
+        String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"鎶曚繚浼佷笟绛剧珷",company.getSignId(),notifyUrl);
         if(StringUtils.isBlank(applyNo) ){
             throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇鍦ㄧ嚎绛剧珷鍦板潃澶辫触锛岃绋嶅悗閲嶈瘯锛�");
         }
@@ -1096,6 +1234,7 @@
         update.setEditDate(new Date());
         update.setSignApplyNo(applyNo);
         applyChangeMapper.updateById(update);
+
         return  link;
     }
 
@@ -1109,7 +1248,7 @@
     public  ApplyChange  exportJiajianBaoExcel(ApplyChange param){
 
         ApplyChange model = findJoinDetail(param);
-        if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getType())){
+        if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getIsdeleted())){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
 
@@ -1135,12 +1274,13 @@
                 .selectAll(ApplyChange.class)
                 .selectAs(Solutions::getName,ApplyChange::getSolutionsName)
                 .selectAs(Company::getName,ApplyChange::getCompanyName)
+                .selectAs(InsuranceApply::getCompanyId,ApplyChange::getCompanyId)
                 .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode)
                 .selectAs(InsuranceApply::getStartTime,ApplyChange::getStartTime)
                 .selectAs(InsuranceApply::getStartTime,ApplyChange::getEndTime)
                 .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
                 .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
-                .leftJoin(Company.class,Company::getId,ApplyChange::getCompanyId)
+                .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
                 .eq(ApplyChange::getId,param.getId())
                 .last("limit 1");
 
@@ -1152,7 +1292,7 @@
                 .selectAll(ApplyChagneDetail.class)
                 .selectAs(Member::getName,ApplyChagneDetail::getMemberName)
                 .selectAs(Member::getSex,ApplyChagneDetail::getSex)
-                .selectAs(Member::getIdcardNo,ApplyChagneDetail::getIdcardNo)
+                .selectAs(Member::getIdcardNo,ApplyChagneDetail::getMemberIdcardNo)
                 .selectAs(Worktype::getName,ApplyChagneDetail::getWorkTypeName)
                 .selectAs(DispatchUnit::getName,ApplyChagneDetail::getDuName)
                 .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId)
@@ -1174,7 +1314,7 @@
                 .select("t3.name as oldWorktypeName")
                 .select("t4.name as oldDuName")
                 .selectAs(Member::getSex,ApplyChagneDetail::getSex)
-                .selectAs(Member::getIdcardNo,ApplyChagneDetail::getIdcardNo)
+                .selectAs(Member::getIdcardNo,ApplyChagneDetail::getMemberIdcardNo)
                 .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId)
                 .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId)
                 .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getOldWorktypeId)
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
index 638ff33..4936fdf 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java
@@ -249,12 +249,16 @@
         MPJLambdaWrapper<ApplyDetail> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper.selectAll(ApplyDetail.class);
         queryWrapper.selectAs(DispatchUnit::getName,ApplyDetail::getDuName);
+        queryWrapper.selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode);
+        queryWrapper.selectAs(Solutions::getName,ApplyDetail::getSolutionName);
         queryWrapper.selectAs(Worktype::getName,ApplyDetail::getWorkTypeName);
         queryWrapper.selectAs(Member::getIdcardNo,ApplyDetail::getIdcardNo);
         queryWrapper.selectAs(Member::getName,ApplyDetail::getMemberName);
         queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId);
         queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId);
         queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId);
+        queryWrapper.leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId);
+        queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId);
         queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getApplyId()),ApplyDetail::getApplyId,applyDetailPageDTO.getApplyId());
         queryWrapper.ge(!Objects.isNull(applyDetailPageDTO.getApplyStatus())
                         &&!applyDetailPageDTO.getApplyStatus().equals(Constants.ZERO),
@@ -270,6 +274,7 @@
         queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getDuId()),ApplyDetail::getDuId,applyDetailPageDTO.getDuId());
         queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getWorkTypeId()),ApplyDetail::getWorktypeId,applyDetailPageDTO.getWorkTypeId());
         queryWrapper.like(StringUtils.isNotBlank(applyDetailPageDTO.getMemberName()),Member::getName,applyDetailPageDTO.getMemberName());
+        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getMemberId()),Member::getId,applyDetailPageDTO.getMemberId());
         queryWrapper.ge(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeS()),ApplyDetail::getStartTime,applyDetailPageDTO.getStartTimeS()+" 00:00:00");
         queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeE()),ApplyDetail::getStartTime,applyDetailPageDTO.getStartTimeE()+" 23:59:59");
         queryWrapper.ge(StringUtils.isNotBlank(applyDetailPageDTO.getEndTimeS()),ApplyDetail::getEndTime,applyDetailPageDTO.getEndTimeS()+" 00:00:00");
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
index d9c548e..cf56469 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -431,10 +431,14 @@
     @Override
     public   void dealWaitSignedData(){
         List<InsuranceApply> applyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>().lambda()
-                .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WAIT_SIGNATURE)
+                .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())
                 .isNotNull(InsuranceApply::getSignApplyNo));
         if(applyList !=null && applyList.size()>0 ){
             for(InsuranceApply model : applyList){
+                String status = signService.linkFileStatus(model.getSignApplyNo());
+                if(!StringUtils.equals(status,"3")){
+                    continue;
+                }
                 String link = signService.linkFile(model.getSignApplyNo());
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
@@ -446,10 +450,14 @@
             }
         }
         List<ApplyChange> chagneList = applyChangeMapper.selectList(new QueryWrapper<ApplyChange>().lambda()
-                .eq(ApplyChange::getStatus,Constants.ApplyChangeStatus.UPLOAD)
+                .eq(ApplyChange::getStatus,Constants.ApplyChangeStatus.UPLOAD.getKey())
                 .isNotNull(ApplyChange::getSignApplyNo));
         if(chagneList !=null && chagneList.size()>0 ){
             for(ApplyChange model : chagneList){
+                String status = signService.linkFileStatus(model.getSignApplyNo());
+                if(!StringUtils.equals(status,"3")){
+                    continue;
+                }
                 String link = signService.linkFile(model.getSignApplyNo());
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
@@ -919,6 +927,12 @@
         //浼佷笟浜哄憳鏌ョ湅鏈紒涓氭暟鎹�
         if(loginUserInfo.getType().equals(Constants.ONE)){
             queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId());
+        }else{
+            if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){
+                queryWrapper.in(InsuranceApply::getCompanyId, loginUserInfo.getCompanyIdList());
+            }else{
+                queryWrapper.eq(InsuranceApply::getCompanyId, -1);
+            }
         }
         if (pageWrap.getModel().getSolutionId() != null) {
             queryWrapper.eq(InsuranceApply::getSolutionId, pageWrap.getModel().getSolutionId());
@@ -999,6 +1013,12 @@
         //浼佷笟浜哄憳鏌ョ湅鏈紒涓氭暟鎹�
         if(loginUserInfo.getType().equals(Constants.ONE)){
             queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId());
+        }else{
+            if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){
+                queryWrapper.in(InsuranceApply::getCompanyId, loginUserInfo.getCompanyIdList());
+            }else{
+                queryWrapper.eq(InsuranceApply::getCompanyId, -1);
+            }
         }
         if (model.getSolutionId() != null) {
             queryWrapper.eq(InsuranceApply::getSolutionId, model.getSolutionId());
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
index 88de5eb..9175834 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -73,8 +73,21 @@
      */
     @Override
     public  Integer delFile(Integer id,Integer fileId){
-
-        return 0;
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        return   multifileJoinMapper.update(null,new UpdateWrapper<Multifile>().lambda()
+                .set(Multifile::getIsdeleted,Constants.ONE)
+                .set(Multifile::getEditDate,new Date())
+                .set(Multifile::getEditor,user.getId())
+                .eq(Multifile::getIsdeleted,Constants.ZERO)
+                .eq(Multifile::getObjId,id)
+                .eq(Multifile::getId,fileId)
+                .in(Multifile::getObjType,Arrays.asList(new Integer[]{
+                        Constants.MultiFile.LP_YGGX_FILE.getKey(),
+                        Constants.MultiFile.LP_MZCL_FILE.getKey(),
+                        Constants.MultiFile.LP_ZYCL_FILE.getKey(),
+                        Constants.MultiFile.LP_SCZL_FILE.getKey(),
+                        Constants.MultiFile.LP_JACL_FILE.getKey(),
+                })));
     }
     @Override
     public      Integer back(SettleClaims  param){
@@ -706,6 +719,7 @@
                 .selectAs(Company::getName,SettleClaims::getCompanyName)
                 .selectAs(Solutions::getName,SettleClaims::getSolutionName)
                 .selectAs(Member::getName,SettleClaims::getMemberName)
+                .selectAs(Member::getIdcardNo,SettleClaims::getMemberIdcardNo)
                 .selectAs(Worktype::getName,SettleClaims::getWorktypeName)
                 .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime)
                 .selectAs(DispatchUnit::getName,SettleClaims::getDuName)
@@ -728,6 +742,7 @@
             pageWrap.getModel().setCompanyId(user.getCompanyId());
         }
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),Member::getName, pageWrap.getModel().getMemberName());
+        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberIdcardNo()),Member::getIdcardNo, pageWrap.getModel().getMemberIdcardNo());
         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDuName()),DispatchUnit::getName, pageWrap.getModel().getDuName());
         queryWrapper.eq(pageWrap.getModel().getBaseSolutionId()!=null,Solutions::getBaseId, pageWrap.getModel().getBaseSolutionId());
         queryWrapper.eq(pageWrap.getModel().getBaseDuId()!=null,DispatchUnit::getBaseId, pageWrap.getModel().getBaseDuId());
diff --git a/server/service/src/main/java/com/doumee/service/business/third/SignService.java b/server/service/src/main/java/com/doumee/service/business/third/SignService.java
index a5c52aa..2ccc931 100644
--- a/server/service/src/main/java/com/doumee/service/business/third/SignService.java
+++ b/server/service/src/main/java/com/doumee/service/business/third/SignService.java
@@ -317,7 +317,7 @@
           params.put("serverCa",1); //浣跨敤浜戣瘉涔�
           params.put("file",new File(file));
           params.put("dealType",5); //鎸囧畾鍚堝悓鏂囦欢绛剧讲鏂瑰紡 5 涓洪儴鍒嗚嚜鍔ㄧ
-          params.put("positionType",1); //鎸囧畾閫氳繃琛ㄥ崟鍩熸柟寮忚缃瀛椾綅缃�
+          params.put("positionType",2); //鎸囧畾閫氳繃琛ㄥ崟鍩熸柟寮忚缃瀛椾綅缃�
           params.put("fileType",0);
           params.put("needQifengSign",1);
           params.put("notifyUrl",notifyUrl);
@@ -331,7 +331,7 @@
 //          sReq.setChapteJson(postionJson);
           sReq.setSearchKey(postionJson);
           sReq.setSignId(singId);
-          sReq.setSearchConvertExtend("{\"fixX\":10,\"fixY\":-50}");
+          sReq.setSearchConvertExtend("{\"fixX\":-80,\"fixY\":-80}");
           sReq.setNoNeedVerify(1);
           signatories.add(sReq);
           params.put("signatories",signatories.toJSONString());
@@ -381,6 +381,33 @@
      * 鑾峰彇绛剧讲閾炬帴鍦板潃(杩斿洖鏂囦欢鍦板潃锛岀缃插悗鎵嶆槸鏂囦欢鍦板潃锛屽惁鍒欒烦杞埌绛剧讲椤甸潰)
      * @param applyNo
      */
+    public String  linkFileStatus(String applyNo) {
+
+        try {    initParams();
+            Map<String, Object> params = bodyParams;
+            String url = SERVICE_URL + "/v2/sign/status";
+            //鏋勫缓璇锋眰鍙傛暟
+            params.put("applyNo",applyNo); //鍙戣捣鍚堝悓绛剧讲鎺ュ彛杩斿洖鐨凙PL缂栧彿
+//            params.put("fullName",fullName); //绛剧害浜哄悕绉�
+//            params.put("identityCard",identityCard); //绛剧害浜鸿瘉浠跺彿
+//            params.put("identityType",12); //璇佷欢绫诲瀷 1韬唤璇�, 2鎶ょ収, 3鍙拌優璇�, 4娓境灞呮皯鏉ュ線鍐呭湴閫氳璇�, 11钀ヤ笟鎵х収, 12缁熶竴绀句細淇$敤浠g爜, 20瀛愯处鍙�, 99鍏朵粬
+            String str= HttpClientUtils.init().getPost(url,null,params,true);
+            System.out.println(str);
+            saveInterfaceLog(url,"銆愮數瀛愮銆戠绾︾姸鎬佹煡璇�",JSONObject.toJSONString(params),str);
+            JSONObject json = JSONObject.parseObject(str);
+            if(json!=null && json.getBoolean("success")){
+                //0 锛氭湭绛� 1 锛氬凡绛� 2锛氭嫆绛� 3锛氬凡淇濆叏
+                return  json.getString("data");
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return  null;
+    }
+    /**
+     * 鑾峰彇绛剧讲閾炬帴鍦板潃(杩斿洖鏂囦欢鍦板潃锛岀缃插悗鎵嶆槸鏂囦欢鍦板潃锛屽惁鍒欒烦杞埌绛剧讲椤甸潰)
+     * @param applyNo
+     */
     public String  linkFile(String applyNo) {
 
         try {    initParams();
--
Gitblit v1.9.3