From c1138d041adf44d911d55b70b08f2ea6a9c378a9 Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期三, 03 四月 2024 18:32:00 +0800
Subject: [PATCH] 提交一把

---
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java |    3 
 company/src/components/business/UnionChangeDetails.vue                                          |  374 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 company/src/components/business/OperaUnionChangeDetailWindow.vue                                |   32 +---
 3 files changed, 387 insertions(+), 22 deletions(-)

diff --git a/company/src/components/business/OperaUnionChangeDetailWindow.vue b/company/src/components/business/OperaUnionChangeDetailWindow.vue
index af730f7..bb5a3d4 100644
--- a/company/src/components/business/OperaUnionChangeDetailWindow.vue
+++ b/company/src/components/business/OperaUnionChangeDetailWindow.vue
@@ -19,26 +19,14 @@
                     </div>
                   <div class="desc_item_label_right">
                         <template v-if="2">
-                            <el-button type="primary"  @click="$refs.ApplyChangeDetails.open('鍔犲噺淇濊鍗�',apply,model,0)">瀵煎嚭璇﹀崟</el-button>
-                            <el-button v-if="[1,2,4,7,9].includes(model.status)" type="primary" @click="viewApplyFile">鏌ョ湅鐢宠鍗�</el-button>
+                            <el-button type="primary"  @click="$refs.ApplyChangeDetails.open('鍔犲噺淇濊鍗�',model,0)">瀵煎嚭璇﹀崟</el-button>
+                            <el-button v-if="[1,2].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=" model.solutionType == 1 && [1].includes(model.status)" type="primary" @click="$refs.ApplyChangeDetails.open('鎶曚繚瀹℃牳',apply,model,1)">鎶曚繚瀹℃牳</el-button>
-                            <el-button v-if=" model.solutionType == 1 && [0,1].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('閫�鍥炵敵璇�',model,1)">閫�鍥炵敵璇�</el-button>
-                            <el-button v-if=" model.solutionType == 1 && [7].includes(model.status)" type="danger" @click="closeOrder">鍏抽棴璁㈠崟</el-button>
-                            <el-button v-if=" model.solutionType == 0 && [1].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('涓婁紶鎵瑰崟',model,3)">涓婁紶鎵瑰崟</el-button>
-                            <el-button  v-if="model.solutionType == 0 &&[3,4].includes(model.status)"  type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button>
-                            <el-button  v-if="model.solutionType == 0 &&[0,1].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('閫�鍥炴姇淇�',model,1)">閫�鍥炴姇淇�</el-button>
-                            <el-button  v-if="model.solutionType == 0 &&[2].includes(model.status)"  type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('淇敼鎵瑰崟',model,4)">淇敼鎵瑰崟</el-button>
+                            <el-button v-if=" [1].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('涓婁紶鎵瑰崟',model,3)">涓婁紶鎵瑰崟</el-button>
+                            <el-button  v-if="[0,1].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('閫�鍥炴姇淇�',model,1)">閫�鍥炴姇淇�</el-button>
                         </template>
                         <template  v-if="0">
-                          <el-button type="primary" @click="$refs.ApplyChangeDetails.open('鍔犲噺淇濊鍗�',apply,model,0)">瀵煎嚭璇﹀崟</el-button>
-                          <el-button v-if="[1,2,4,7,9].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=" model.solutionType == 0 && [1].includes(model.status)" type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('涓婁紶鎵瑰崟',model,3)">涓婁紶鎵瑰崟</el-button>
-                          <el-button  v-if="model.solutionType == 0 &&[3,4].includes(model.status)"  type="primary" @click="$refs.OperaApplyChangeCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button>
-                          <el-button  v-if="model.solutionType == 0 &&[0,1].includes(model.status)" type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('閫�鍥炴姇淇�',model,1)">閫�鍥炴姇淇�</el-button>
-                          <el-button  v-if="model.solutionType == 0 &&[2].includes(model.status)"  type="danger" @click="$refs.OperaApplyChangeCheckWindow.open('淇敼鎵瑰崟',model,4)">淇敼鎵瑰崟</el-button>
-                        </template>
+                                             </template>
                   </div>
                 </div>
                 <div class="desc_item_from">
@@ -162,11 +150,11 @@
                         </el-pagination>
                     </div>
                 </div>
-                <div class="desc_item_review">
+                <div class="desc_item_review" v-if="model.applyLogList">
                     <div class="desc_item_review_label">瀹℃牳娴佺▼</div>
                   <el-timeline :reverse="reverse">
                     <el-timeline-item
-                        v-for="(activity, index) in activities"
+                        v-for="(activity, index) in model.applyLogList"
                         :key="index">
                       <div style="display: flex; flex-direction: column;">
                                 <span style="font-size: 16px; font-weight: 400; color: black;">
@@ -184,7 +172,7 @@
                 </div>
             </div>
         </div>
-        <ApplyChangeDetails ref="ApplyChangeDetails" @success="successEvent" />
+        <UnionChangeDetails ref="ApplyChangeDetails" @success="successEvent" />
         <OperaApplyChangeCheckWindow ref="OperaApplyChangeCheckWindow" @success="successEvent" />
         <!--    浼佷笟鐢宠閫�鍥�    -->
 <!--        <applyReturn ref="applyReturn" @success="successEvent" />-->
@@ -233,7 +221,7 @@
 <script>
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
-import ApplyChangeDetails from '@/components/business/ApplyChangeDetails'
+import UnionChangeDetails from '@/components/business/UnionChangeDetails'
 import OperaApplyChangeCheckWindow from '@/components/business/OperaApplyChangeCheckWindow'
 import reinsurance from '@/components/enterprise/reinsurance'
 import factoryChange from '@/components/enterprise/factoryChange'
@@ -256,7 +244,7 @@
   extends: BaseOpera,
   components: {
       GlobalWindow,
-      ApplyChangeDetails,
+    UnionChangeDetails,
       OperaApplyChangeCheckWindow,
       add_subtract_return,
       OperaInsuranceApply,
diff --git a/company/src/components/business/UnionChangeDetails.vue b/company/src/components/business/UnionChangeDetails.vue
new file mode 100644
index 0000000..d6d8408
--- /dev/null
+++ b/company/src/components/business/UnionChangeDetails.vue
@@ -0,0 +1,374 @@
+<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 class="box_table_head_item">鎵瑰崟鐢熸晥鏈�</div>
+            </div>
+            <div class="box_table_content "  >
+              <div class="box_table_content_item box_table_content_header">{{ model.shopName }}</div>
+              <div class="box_table_content_item box_table_content_header">{{ model.solutionsName }}</div>
+              <div class="box_table_content_item box_table_content_header">{{ model.startTime }}</div>
+              <div class="box_table_content_item box_table_content_header">{{ model.endTime }}</div>
+              <div class="box_table_content_item box_table_content_header">{{ model.applyCode }}</div>
+              <div class="box_table_content_item box_table_content_header">{{ model.addNum}}</div>
+              <div class="box_table_content_item box_table_content_header">{{ model.delNum}}</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 box_table_content">
+              <div class="box_table_head_item" style=" flex: 1;border-bottom: 0px">琚繚闄╀汉</div>
+              <div class="box_table_content_item box_table_content_header" style=" flex: 7;">{{ apply.companyNames }}</div>
+            </div>
+          </div>
+            <div class="box_table" v-if="addList && addList.length>0">
+              <div class="box_table_head">
+                <div class="box_table_head_item1">鍔犱繚鍛樺伐</div>
+              </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 class="box_table_head_item">鎵�灞炲伐绉�</div>
+                </div>
+                <div class="box_table_content" v-for="(item, index) in addList" :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.companyName }}</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="delList && delList.length>0">
+              <div class="box_table_head">
+                <div class="box_table_head_item1">鍑忎繚鍛樺伐</div>
+              </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 class="box_table_head_item">鎵�灞炲伐绉�</div>
+                </div>
+                <div class="box_table_content" v-for="(item, index) in delList" :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.companyName }}</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-if="type==2" v-slot:footer>
+            <el-button @click="visible=false">杩斿洖</el-button>
+        </template>
+        <template v-else v-slot:footer>
+            <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, exportJiajianBaoExcel} from "@/api/business/insuranceApply";
+    import {check } from "@/api/business/applyChange";
+    import {exportComFiles} from "@/api/business/company";
+    export default {
+        name: 'ApplyChangeDetails',
+        extends: BaseOpera,
+        components: { GlobalWindow },
+        data () {
+            return {
+                model:{},
+                apply:{},
+              type:0,
+              delList:[],
+              addList:[],
+                // 琛ㄥ崟鏁版嵁
+                form: {
+                    id: null,
+                    dealBackApply:0,
+                    checkInfo: ''
+                },
+                // 楠岃瘉瑙勫垯
+                rules: {
+                },
+                reverse: false,
+                tableData: []
+            }
+        },
+        created () {
+            this.config({
+                api: '/business/insuranceApply',
+                'field.id': 'id'
+            })
+        },
+        methods: {
+            open(title,target,target2){
+              this.title=title
+              this.visible=true
+              this.model = target
+              this.form.id=target.id
+              this.type=target2
+              this.getDetailListDo()
+            },
+           check (type) {
+            this.form.dealBackApply = type
+            this.$dialog.messageConfirm('纭杩涜璇ユ搷浣滃悧锛�')
+                .then(() => {
+                  this.isWorking = true
+                  check(this.form)
+                      .then(response => {
+                        this.visible = false
+                        this.$emit('success')
+                      }).catch(err => {
+                    this.$tip.apiFailed(err)
+                  })
+                })
+                .catch(() => {
+                })
+          },
+           getDetailListDo() {
+             this.delList=[]
+             this.addList=[]
+             getChangeDetailList({unionChangeId: this.model.id})
+                 .then(res => {
+                   res.forEach(item1 => {
+                     if (item1.type == 1) {
+                       this.delList.push(item1);
+                     } else {
+                       this.addList.push(item1);
+                     }
+                   })
+
+                 }).catch(err => {})
+           },
+          exportDetail(){
+            this.$dialog.exportConfirm('纭瀵煎嚭璇﹀崟鍚楋紵')
+                .then(() => {
+                  this.isWorking = true
+                  exportJiajianBaoExcel({ id: this.model.id })
+                      .then(response => {
+                        this.download(response)
+                      })
+                      .catch(e => {
+                        console.log(e)
+                        this.$message.error('鏁版嵁涓嬭浇澶辫触锛�')
+                      })
+                      .finally(() => {
+                        this.isWorking = false
+                      })
+                })
+                .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-sizing: border-box;
+         }
+        .box_header {
+            width: 100%;
+            display: flex;
+            align-items: center;
+            flex-wrap: wrap;
+            border-top: 1px solid #b4bbc5;
+            border-left: 1px solid #b4bbc5;
+            box-sizing: border-box;
+            .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-sizing: border-box;
+                }
+                .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(3) {
+                  }
+                  &:nth-child(9) {
+                  }
+                }
+              .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) {
+                }
+              }
+              .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) {
+                }
+              }
+            }
+            .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(3) {
+                }
+                &:nth-child(9) {
+                }
+                }
+            }
+        }
+    }
+</style>
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 0266b4f..768ce06 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
@@ -98,10 +98,12 @@
         queryWrapper.select("t3.name",ApplyChagneDetail::getDuName);
         queryWrapper.select("t4.name",ApplyChagneDetail::getOldWorkTypeName);
         queryWrapper.select("t5.name",ApplyChagneDetail::getOldDuName);
+        queryWrapper.selectAs(Company::getName,ApplyChagneDetail::getCompanyName);
         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(Company.class,Company::getId,Member::getCompanyId);
         queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId);
         queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId);
         queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getOldWorktypeId);
@@ -111,6 +113,7 @@
         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.eq(!Objects.isNull(applyDetailPageDTO.getUnionChangeId()),ApplyChagneDetail::getUnionChangeId,applyDetailPageDTO.getUnionChangeId());
         queryWrapper.like(StringUtils.isNotBlank(applyDetailPageDTO.getMemberName()),Member::getName,applyDetailPageDTO.getMemberName());
 
         List<ApplyChagneDetail> pageData = applyChangeDetailJoinMapper.selectJoinList( ApplyChagneDetail.class, queryWrapper);

--
Gitblit v1.9.3