nidapeng
2024-04-03 c1138d041adf44d911d55b70b08f2ea6a9c378a9
提交一把
已添加1个文件
已修改2个文件
409 ■■■■■ 文件已修改
company/src/components/business/OperaUnionChangeDetailWindow.vue 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/UnionChangeDetails.vue 374 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,
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>
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);