jiangping
2024-01-30 2e8224782416e546a832aa8cff789bdc7505afa0
开发业务接口
已添加1个文件
已修改8个文件
1262 ■■■■ 文件已修改
company/src/api/business/settleClaims.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaSettleClaimsCheckWindow.vue 499 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaSettleClaimsWindow.vue 372 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/settleClaims.vue 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/utils/Constants.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/SettleClaimsLog.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/business/settleClaims.js
@@ -6,8 +6,48 @@
        trim: true
    })
}
export function confirmFile (data) {
    return request.post('/business/settleClaims/confirm', data, {
        trim: true
    })
}
export function remark (data) {
    return request.post('/business/settleClaims/remark', data, {
        trim: true
    })
}
export function addCode (data) {
    return request.post('/business/settleClaims/addCode', data, {
        trim: true
    })
}
export function dealBiz (data) {
    return request.post('/business/settleClaims/dealBiz', data, {
        trim: true
    })
}
export function doneCommit (data) {
    return request.post('/business/settleClaims/doneCommit', data, {
        trim: true
    })
}
export function back (data) {
    return request.post('/business/settleClaims/back', data, {
        trim: true
    })
}
export function exportFiles (data) {
    return request.post('/business/settleClaims/exportFiles', data, {
        trim: true,
        download: true
    })
}
// ä¿®æ”¹
export function updateById (data) {
    return request.post('/business/settleClaims/updateById', data)
}
export function findById (id) {
    return request.get(`business/settleClaims/${id}`)
}
company/src/components/business/OperaSettleClaimsCheckWindow.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,499 @@
<template>
    <GlobalWindow
        :title="title"
        width="60%"
        :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">
                        <input type="text" v-model="form.reportNum" placeholder="请输入">
                    </div>
                </div>
            </div>
            <div  v-if="visible2==true" class="form">
                <div class="form_item">
                    <div class="form_item_label">
                        <span>*</span>处理进展:
                    </div>
                    <div class="form_item_val">
                        <textarea v-model="form.bizInfo" placeholder="请输入"></textarea>
                    </div>
                </div>
            </div>
            <div  v-if="visible3==true" class="form">
                <div class="form_item">
                    <div class="form_item_label">
                        <span>*</span>填写撤销说明:
                    </div>
                    <div class="form_item_val">
                        <textarea v-model="form.backInfo" placeholder="请输入"></textarea>
                    </div>
                </div>
            </div>
            <div  v-if="visible4==true" class="form">
                <div class="form_item">
                    <div class="form_item_label">
                        <span>*</span>结案内容:
                    </div>
                    <div class="form_item_val">
                        <textarea v-model="form.doneInfo" placeholder="请输入"></textarea>
                    </div>
                </div>
                <div class="form_item">
                    <div class="form_item_label">
                         åŒ»ç–—理赔:
                    </div>
                    <div class="form_item_val">
                        <input v-model="form.ylClaimAccount" placeholder="请输入" />
                    </div>
                </div>
                <div class="form_item">
                    <div class="form_item_label">
                        è¯¯å·¥ç†èµ”:
                    </div>
                    <div class="form_item_val">
                        <input v-model="form.wgClaimAccount" placeholder="请输入" />
                    </div>
                </div>
                <div class="form_item">
                    <div class="form_item_label">
                        ä¼¤æ®‹ç†èµ”:
                    </div>
                    <div class="form_item_val">
                        <input v-model="form.scClaimAccount" placeholder="请输入" />
                    </div>
                </div>
                <div class="form_item">
                    <div class="form_item_label">
                         æ­»äº¡ç†èµ”:
                    </div>
                    <div class="form_item_val">
                        <input v-model="form.swClaimAccount" placeholder="请输入" />
                    </div>
                </div>
            </div>
            <div v-if="visible5 ==true"  class="form">
                <div class="form_span" v-for="(item,index) in remarkLogList" :key="index">
                    <span>理赔员-{{ item.creatorName }} {{item.createDate }}</span>
                    <span>{{item.content }}</span>
                </div>
                <div class="form_item">
                    <div class="form_item_label">
                        <span>*</span>填写备注标签:
                    </div>
                    <div class="form_item_val">
                        <textarea v-model="form.remarkInfo" 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 {addCode, back, dealBiz,doneCommit, remark} from "@/api/business/settleClaims";
    export default {
        name: 'OperaSettleClaimsCheckWindow',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
              remarkLogList:[],
              type:0,
                // è¡¨å•数据
              form: {
                id: null,
                checkInfo: null,
                bizInfo: null,
                doneInfo: null,
                backInfo: null,
                remarkInfo: null,
                ylClaimAccount: null,
                wgClaimAccount: null,
                swClaimAccount: null,
                scClaimAccount: null,
                reportNum: null,
              },
              model:{},
                activeName: 'first',
                reverse: true,
                tableData: [],
                visible1: false,
                visible2: false,
                visible3: false,
                visible4: false,
                visible5: false
            }
        },
        created () {
            this.config({
                api: '/business/settleClaims',
                'field.id': 'id'
            })
        },
        methods: {
          open(title,target,target1,type){
            this.model ={}
            this.model = target
            this.title=title
            this.visible=true
            this.type=type
            this.remarkLogList= target1
            this.visible1=false,
            this.visible2= false,
            this.visible3=false,
            this. visible4= false,
            this. visible5= false
            this.form=target
            this. form= {
              id: null,
               checkInfo: null,
              doneInfo: null,
              remarkInfo: null,
              bizInfo: null,
              backInfo: null,
              ylClaimAccount: null,
              wgClaimAccount: null,
              swClaimAccount: null,
              scClaimAccount: null,
               reportNum: null,
            }
            if(type==1){
              this.visible1=true
            }
            if(type==2){
              this.visible2=true
            }
            if(type==3){
              this.visible3=true
            }
            if(type==4){
              this.visible4=true
            }
            if(type==5){
              this.visible5=true
            }
       },
            doSubmit(type) {
              var that =this
              if(this.type ===5){
                // this.isWorking = true
                remark({id:that.model.id,checkInfo:that.form.remarkInfo})
                    .then(response => {
                      this.visible=false
                      this.$emit('success')
                    }).catch(err => {
                  this.$tip.apiFailed(err)
                })
              }else if(this.type === 4){
                // this.isWorking = true
                doneCommit({id: that.model.id, checkInfo: that.form.doneInfo,
                  ylClaimAccount: that.form.ylClaimAccount,
                  wgClaimAccount: that.form.wgClaimAccount,
                  swClaimAccount: that.form.swClaimAccount,
                  scClaimAccount: that.form.scClaimAccount})
                    .then(response => {
                      this.visible=false
                      this.$emit('success')
                    }).catch(err => {
                  this.$tip.apiFailed(err)
                })
              }else if(this.type===2){
                //理赔处理
                dealBiz({ id: that.model.id, checkInfo:that.form.bizInfo })
                    .then(response => {
                      this.visible=false
                      this.$emit('success')
                    }).catch(err => {
                  console.log(err)
                  this.$tip.apiFailed(err)
                }).finally(() => {
                  this.isWorking = false
                })
              }else if(this.type===3){
                //理赔处理
                back({ id: that.model.id, checkInfo:that.form.backInfo })
                    .then(response => {
                      this.visible=false
                      this.$emit('success')
                    }).catch(err => {
                  console.log(err)
                  this.$tip.apiFailed(err)
                }).finally(() => {
                  this.isWorking = false
                })
              }else if(this.type===1){
                //添加备案号
                addCode({ id: that.model.id, reportNum:that.form.reportNum })
                    .then(response => {
                      this.visible=false
                      this.$emit('success')
                    }).catch(err => {
                      console.log(err)
                      this.$tip.apiFailed(err)
                    }).finally(() => {
                      this.isWorking = false
                    })
              }
            }
        }
    }
</script>
<style>
    .v-modal {
        z-index: 2000 !important;
    }
</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: #8c939d;
                    margin-bottom: 5px;
                }
                &:nth-child(2) {
                    color: #8c939d;
                  color: black;
                }
            }
        }
        .form_item {
            width: 100%;
            display: flex;
            align-items: start;
            margin-bottom: 20px;
            &:last-child {
                margin: 0 !important;
            }
            .form_item_label {
                flex-shrink: 0;
                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: 100%;
                    outline: none;
                    border-radius: 5px;
                    border: 1px solid #cbcbcb;
                    padding: 0 20px;
                    box-sizing: border-box;
                }
            }
        }
    }
    .desc {
        width: 100%;
        display: flex;
        align-items: center;
        flex-direction: column;
        .desc_label {
            width: 100%;
            display: flex;
            align-items: center;
            justify-content: space-between;
            .desc_label_left {
                flex: 1;
                display: flex;
                align-items: center;
                .desc_label_left_title {
                    font-size: 20px;
                    font-weight: bold;
                    color: black;
                }
                .desc_label_left_time {
                    font-size: 14px;
                    color: rgba(249, 86, 1, 0.996);
                    margin-left: 10px;
                }
                .desc_label_left_code {
                    font-size: 15px;
                    color: black;
                    margin-left: 30px;
                }
            }
            .desc_label_right {
                flex-shrink: 0;
            }
        }
        .desc_list {
            width: 100%;
            margin-top: 20px;
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            .desc_list_item {
                width: 33.3%;
                display: flex;
                align-items: center;
                margin-bottom: 10px;
                .desc_list_item_label {
                    width: 130px;
                    flex-shrink: 0;
                    font-size: 15px;
                    color: black;
                }
                .desc_list_item_val {
                    flex: 1;
                    font-size: 15px;
                    color: black;
                }
                .desc_list_item_videos {
                    flex: 1;
                    display: flex;
                    align-items: center;
                    flex-wrap: wrap;
                    .desc_list_item_imgs_video {
                        width: 150px;
                        height: 150px;
                        background: black;
                        margin-right: 10px;
                        video {
                            width: 100%;
                            height: 100%;
                        }
                    }
                }
            }
        }
        .desc_xian {
            width: 100%;
            height: 1px;
            margin: 10px 0;
            background: #ececec;
        }
        .desc_data {
            width: 100%;
            display: flex;
            flex-direction: column;
            margin-top: 20px;
            .desc_data_label {
                font-size: 16px;
                color: black;
                font-weight: 600;
                margin-bottom: 20px;
            }
            .desc_data_cate {
                width: 100%;
                margin: 0 0 10px 0;
            }
            .desc_data_list {
                width: 100%;
                display: flex;
                align-items: center;
                flex-wrap: wrap;
                justify-content: space-between;
                .desc_data_list_item1 {
                    width: 24.5%;
                }
                .desc_data_list_item {
                    width: 24.5%;
                    padding: 10px;
                    box-sizing: border-box;
                    border: 1px solid #e2e2e2;
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    position: relative;
                    margin-bottom: 10px;
                    .desc_data_list_item_dele {
                        position: absolute;
                        top: 10px;
                        right: 10px;
                        font-size: 14px;
                        cursor: pointer;
                        color: rgba(249, 86, 1, 0.996078431372549);
                    }
                    .desc_data_list_item_upload {
                        flex: 1;
                        height: 80px;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                    }
                    .desc_data_list_item_img {
                        flex-shrink: 0;
                        width: 80px;
                        height: 80px;
                        display: flex;
                        align-items: center;
                        justify-content: center;
                        overflow: hidden;
                        .el-icon-plus {
                            font-size: 26px;
                            color: #ffffff;
                        }
                        img {
                            width: 100%;
                            height: 100%;
                        }
                    }
                    .desc_data_list_item_info {
                        flex: 1;
                        height: 80px;
                        display: flex;
                        flex-direction: column;
                        justify-content: space-between;
                        span {
                            &:nth-child(1) {
                                font-size: 14px;
                                color: black;
                            }
                            &:nth-child(2) {
                                font-size: 14px;
                                color: #888888;
                            }
                            &:nth-child(3) {
                                font-size: 14px;
                                color: #888888;
                            }
                        }
                    }
                }
            }
        }
        .desc_times {
            width: 100%;
            margin-top: 20px;
        }
    }
</style>
company/src/components/business/OperaSettleClaimsWindow.vue
@@ -1,7 +1,7 @@
<template>
    <GlobalWindow
        :title="title"
        width="80%"
        width="100%"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
@@ -13,17 +13,17 @@
                        æŠ¥æ¡ˆè¯¦æƒ…
                    </span>
                    <span class="desc_label_left_time">
                        æŠ¥æ¡ˆæ—¥æœŸï¼š2015-10-03 10:15:22
                        æŠ¥æ¡ˆæ—¥æœŸï¼š{{ model.createDate }}
                    </span>
                    <span class="desc_label_left_code">
                        æŠ¥æ¡ˆå·ï¼š214141241241
                        æŠ¥æ¡ˆå·ï¼š{{ model.reportNum }}
                    </span>
                </div>
                <div class="desc_label_right">
                    <el-button type="primary" @click="visible1 = true">添加报案号</el-button>
                    <el-button type="primary" @click="visible2 = true">理赔处理</el-button>
                    <el-button type="primary" @click="visible4 = true">结案提交</el-button>
                    <el-button type="danger" @click="visible3 = true">撤销申请</el-button>
                    <el-button type="primary"  v-if="model.status !=1 && model.status !=4" @click="$refs.operaInsuranceApplyCheckWindow.open('添加报案号',model,remarkLogList,1)">添加报案号</el-button>
                    <el-button type="primary"  v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('理赔处理',model,remarkLogList,2)">理赔处理</el-button>
                    <el-button type="primary" v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('结案提交',model,remarkLogList,4)">结案提交</el-button>
                    <el-button type="danger"  v-if="model.status !=1 && model.status !=4" @click="$refs.operaInsuranceApplyCheckWindow.open('撤销申请',model,remarkLogList,3)">撤销申请</el-button>
                </div>
            </div>
            <div class="desc_list">
@@ -32,7 +32,7 @@
                        å‡ºé™©äººå§“名:
                    </div>
                    <div class="desc_list_item_val">
                        å´ä¸‰ä¸‡
                      {{model.memberName}}
                    </div>
                </div>
                <div class="desc_list_item">
@@ -40,7 +40,7 @@
                        å‡ºé™©äººèº«ä»½è¯å·ï¼š
                    </div>
                    <div class="desc_list_item_val">
                        320224403660011111
                      {{ model.memberIdcardNo }}
                    </div>
                </div>
                <div class="desc_list_item">
@@ -48,7 +48,7 @@
                        äº‹æ•…发生时间:
                    </div>
                    <div class="desc_list_item_val">
                        2015-10-02 10:15:22
                      {{ model.createDate }}
                    </div>
                </div>
                <div class="desc_list_item">
@@ -56,8 +56,8 @@
                        æ‰€å±žä¿å•号:
                    </div>
                    <div class="desc_list_item_val" style="cursor: pointer; color: rgba(39, 157, 255, 0.968627450980392);">
                        11121624116241
                        <el-button type="primary" style="margin-left: 10px;">查看保险单</el-button>
                      {{ model.applyCode }}
                        <el-button v-if="model.baoxiandanFile && model.baoxiandanFile.fileurlFull" type="primary" style="margin-left: 10px;" @click="openBaoxiandan">查看保险单</el-button>
                    </div>
                </div>
                <div class="desc_list_item">
@@ -65,7 +65,7 @@
                        ä¿é™©ç”Ÿæ•ˆèµ·æœŸï¼š
                    </div>
                    <div class="desc_list_item_val">
                        2015-10-02 10:15:22
                      {{ model.baoxianStartTime }}
                    </div>
                </div>
                <div class="desc_list_item">
@@ -73,7 +73,7 @@
                        ä¿é™©ç”Ÿæ•ˆæ­¢æœŸï¼š
                    </div>
                    <div class="desc_list_item_val">
                        2015-10-02 10:15:22
                      {{ model.baoxianEndTime }}
                    </div>
                </div>
                <div class="desc_list_item">
@@ -81,7 +81,7 @@
                        æ´¾é£å•位:
                    </div>
                    <div class="desc_list_item_val">
                        èŠœæ¹–æ ¼åŠ›ç²¾å¯†åˆ¶é€ æœ‰é™å…¬å¸
                      {{ model.duName }}
                    </div>
                </div>
                <div class="desc_list_item">
@@ -89,7 +89,7 @@
                        æ‰€å±žå·¥ç§ï¼š
                    </div>
                    <div class="desc_list_item_val">
                        4类机械加工
                      {{ model.worktypeName }}
                    </div>
                </div>
                <div class="desc_list_item">
@@ -97,39 +97,39 @@
                        å°±è¯ŠåŒ»ç–—机构:
                    </div>
                    <div class="desc_list_item_val">
                        å®‰å¾½çœäººæ°‘医院
                      {{ model.hospital }}
                    </div>
                </div>
                <div class="desc_list_item">
                    <div class="desc_list_item_label">
                        äº‹æ•…类型:
                    </div>
                    <div class="desc_list_item_val">
                        å·¥ä½œæœŸé—´å—伤
                    </div>
                    <div class="desc_list_item_val"  v-if="model.medicalInsurance ===1">上下班途中受伤</div>
                    <div class="desc_list_item_val" v-else-if="model.medicalInsurance ===2">非工作时间受伤</div>
                    <div class="desc_list_item_val"  v-else-if="model.medicalInsurance ===3">意外受</div>
                    <div class="desc_list_item_val"  v-else>工作期间受伤</div>
                </div>
                <div class="desc_list_item">
                    <div class="desc_list_item_label">
                        æ˜¯å¦ä½é™¢ï¼š
                    </div>
                    <div class="desc_list_item_val">
                        å¦
                        <div class="desc_list_item_val"  v-if="model.inHospital ===1">是</div>
                        <div class="desc_list_item_val"  v-else>否</div>
                    </div>
                </div>
                <div class="desc_list_item">
                    <div class="desc_list_item_label">
                        æ˜¯å¦æœ‰åŒ»ç–—保险:
                    </div>
                    <div class="desc_list_item_val">
                        å¦
                    </div>
                    <div class="desc_list_item_val">{{ model.medicalInsurance ===1?"是":"否" }}</div>
                </div>
                <div class="desc_list_item">
                    <div class="desc_list_item_label">
                        å‡ºé™©åœ°åŒºï¼š
                    </div>
                    <div class="desc_list_item_val">
                        å®‰å¾½çœåˆè‚¥å¸‚
                      {{model.areaInfo}}
                    </div>
                </div>
                <div class="desc_list_item">
@@ -137,37 +137,27 @@
                        æŠ¥æ¡ˆäººå§“名:
                    </div>
                    <div class="desc_list_item_val">
                        çŽ‹æž—
                      {{model.informantName}}
                    </div>
                </div>
                <div class="desc_list_item">
                    <div class="desc_list_item_label">
                        æŠ¥æ¡ˆäººè”系方式:
                    </div>
                    <div class="desc_list_item_val">
                        13355667788
                    </div>
                    <div class="desc_list_item_label"> æŠ¥æ¡ˆäººè”系方式:  </div>
                    <div class="desc_list_item_val">  {{model.informantPhone}} </div>
                </div>
                <div class="desc_list_item" style="width: 100%;">
                    <div class="desc_list_item_label">
                        äº‹æ•…描述:
                    </div>
                    <div class="desc_list_item_val">
                        2021å¹´01月24日凌晨03点左右,员工周光磊在苏州工业园区长宏光电科技有限公司光电生产部光学膜裁切课车间,用手动叉车搬运原材料时,原材料掉落砸到右脚,凌晨3:30左右公司派专车送往苏州工业园区星湖医院就诊,为员工伤口进行包扎止血后,凌晨05:45转送至苏州瑞华骨科医院进一步治疗。
                    </div>
                    <div class="desc_list_item_label"> äº‹æ•…描述: </div>
                    <div class="desc_list_item_val">{{model.content}}</div>
                </div>
                <div class="desc_list_item" style="width: 100%;">
                    <div class="desc_list_item_label">
                        æŠ¥æ¡ˆè§†é¢‘:
                    </div>
                    <div class="desc_list_item_videos">
                        <div class="desc_list_item_imgs_video">
                            <video src="blob:https://www.bilibili.com/f8718314-82c5-43d2-9b26-2c4d701b6bab"></video>
                        </div>
                        <div class="desc_list_item_imgs_video">
                            <video src="blob:https://www.bilibili.com/f8718314-82c5-43d2-9b26-2c4d701b6bab"></video>
                    <div v-if="model.reportFileList && model.reportFileList.length>0" class="desc_list_item_videos">
                        <div class="desc_list_item_imgs_video"   v-for="(item, index) in reportFileList" :key="index">
                            <video src="${item.fileurlFull}"></video>
                        </div>
                    </div>
                    <div v-else class="desc_list_item_videos">-</div>
                </div>
            </div>
            <div class="desc_xian"></div>
@@ -176,14 +166,14 @@
                    <span class="desc_label_left_title">
                        ç†èµ”资料
                    </span>
                    <span class="desc_label_left_time" style="color: black">
                        èµ„料完成日期:2015-10-03 10:15:22
                    <span v-if="doneFileDate!=null" class="desc_label_left_time" style="color: black">
                        èµ„料完成日期:{{doneFileDate}}
                    </span>
                </div>
                <div class="desc_label_right">
                    <el-button type="primary" @click="visible5 = true">备注标签</el-button>
                    <el-button type="primary" @click="submit">资料确认</el-button>
                    <el-button type="primary">资料下载</el-button>
                    <el-button type="primary"  v-if="model.status !=1 && model.status !=4"  @click="$refs.operaInsuranceApplyCheckWindow.open('备注标签',model,remarkLogList,5)">备注标签</el-button>
                    <el-button type="primary"  v-if="model.status !=1 && model.status !=4" @click="submit(0)">资料确认</el-button>
                    <el-button type="primary"  @click="submit(1)">资料下载</el-button>
                </div>
            </div>
            <div class="desc_data">
@@ -284,196 +274,72 @@
            <div class="desc_times">
                <el-timeline :reverse="reverse">
                    <el-timeline-item
                        v-for="(activity, index) in activities"
                        v-for="(activity, index) in model.settleClaimsLogList"
                        :key="index"
                        :timestamp="activity.timestamp">
                        {{activity.content}}
                      <div style="display: flex;  flex-direction: column;" v-if="activity.objType==3">
                                <span style="font-size: 16px; font-weight: bold; color: #0d5ada;">
                                    {{activity.title}}
                                      <span style="font-size: 16px; font-weight: bold; color: #0d5ada; margin-left: 10px;" >
                                      <span v-if=" model.ylClaimAccount &&  model.ylClaimAccount>0">医疗理赔{{ model.ylClaimAccount }}元;</span>
                                      <span v-if=" model.wgClaimAccount &&  model.wgClaimAccount>0">误工理赔{{ model.wgClaimAccount }}元;</span>
                                      <span v-if=" model.scClaimAccount &&  model.scClaimAccount>0">伤残理赔{{ model.scClaimAccount }}元;</span>
                                      <span v-if=" model.swClaimAccount &&  model.swClaimAccount>0">死亡理赔{{ model.swClaimAccount }}元;</span>
                                      ç†èµ”总额:{{ model.claimAccount }}元
                                    </span>
                                </span>
                                 <span style="margin-top: 5px; font-size: 12px; font-weight: 400; color: #999999;">
                                        {{activity.content}}
                                 </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>
                      <div style="display: flex; flex-direction: column;" v-else>
                                <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>
        <el-dialog
            title="添加报案号"
            :visible.sync="visible1"
            :show-close="false"
            :close-on-click-modal="false"
            width="30%"
            center>
            <div class="form">
                <div class="form_item">
                    <div class="form_item_label">
                        <span>*</span>报案号:
                    </div>
                    <div class="form_item_val">
                        <input type="text" placeholder="请输入">
                    </div>
                </div>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="visible1 = false">取 æ¶ˆ</el-button>
                <el-button type="primary" @click="visible1 = false">ç¡® å®š</el-button>
            </span>
        </el-dialog>
        <el-dialog
            title="理赔处理"
            :visible.sync="visible2"
            :show-close="false"
            :close-on-click-modal="false"
            width="30%"
            center>
            <div class="form">
                <div class="form_item">
                    <div class="form_item_label">
                        <span>*</span>处理进展:
                    </div>
                    <div class="form_item_val">
                        <textarea placeholder="请输入"></textarea>
                    </div>
                </div>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="visible2 = false">取 æ¶ˆ</el-button>
                <el-button type="primary" @click="visible2 = false">ç¡® å®š</el-button>
            </span>
        </el-dialog>
        <el-dialog
            title="撤销申请"
            :visible.sync="visible3"
            :show-close="false"
            :close-on-click-modal="false"
            width="30%"
            center>
            <div class="form">
                <div class="form_item">
                    <div class="form_item_label">
                        <span>*</span>填写撤销说明:
                    </div>
                    <div class="form_item_val">
                        <textarea placeholder="请输入"></textarea>
                    </div>
                </div>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="visible3 = false">取 æ¶ˆ</el-button>
                <el-button type="primary" @click="visible3 = false">ç¡® å®š</el-button>
            </span>
        </el-dialog>
        <el-dialog
            title="理赔结案"
            :visible.sync="visible4"
            :show-close="false"
            :close-on-click-modal="false"
            width="30%"
            center>
            <div class="form">
                <div class="form_item">
                    <div class="form_item_label">
                        <span>*</span>结案内容:
                    </div>
                    <div class="form_item_val">
                        <textarea placeholder="请输入"></textarea>
                    </div>
                </div>
                <div class="form_item">
                    <div class="form_item_label">
                        <span>*</span>理赔费用:
                    </div>
                    <div class="form_item_val">
                        <el-table
                            :data="tableData"
                            border
                            style="width: 100%">
                            <el-table-column
                                prop="date"
                                label="医疗理赔">
                            </el-table-column>
                            <el-table-column
                                prop="name"
                                label="误工理赔">
                            </el-table-column>
                            <el-table-column
                                prop="address"
                                label="伤残理赔">
                            </el-table-column>
                            <el-table-column
                                prop="address"
                                label="死亡理赔">
                            </el-table-column>
                            <el-table-column
                                prop="address"
                                label="理赔总额">
                            </el-table-column>
                        </el-table>
                    </div>
                </div>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="visible4 = false">取 æ¶ˆ</el-button>
                <el-button type="primary" @click="visible4 = false">ç¡® å®š</el-button>
            </span>
        </el-dialog>
        <el-dialog
            title="备注标签"
            :visible.sync="visible5"
            :show-close="false"
            :close-on-click-modal="false"
            width="30%"
            center>
            <div class="form">
                <div class="form_span">
                    <span>理赔员-王林  2023-11-11 10:33:12</span>
                    <span>李福贤 å³ä¸­æŒ‡è¿œèŠ‚æŒ‡éª¨éª¨æŠ˜æ‰“åŒ…å¤„ç†5000(含医疗误工 ä¼¤)免鉴定和认定可以吗?</span>
                </div>
                <div class="form_span">
                    <span>理赔员-李某  2023-11-11 10:33:12</span>
                    <span>理赔试着申请下 éœ€æä¾›æ£€æŸ¥æŠ¥å‘Šå• åŽŸä»¶å¯„ä¿å¸</span>
                </div>
                <div class="form_item">
                    <div class="form_item_label">
                        <span>*</span>填写撤销说明:
                    </div>
                    <div class="form_item_val">
                        <textarea placeholder="请输入"></textarea>
                    </div>
                </div>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="visible5 = false">取 æ¶ˆ</el-button>
                <el-button type="primary" @click="visible5 = false">æ·» åŠ </el-button>
            </span>
        </el-dialog>
      <template v-slot:footer>
        <el-button @click="visible=false">返回</el-button>
      </template>
      <OperaSettleClaimsCheckWindow ref="operaInsuranceApplyCheckWindow"  @success="callback" />
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import OperaSettleClaimsCheckWindow from '@/components/business/OperaSettleClaimsCheckWindow'
    import {confirmFile, findById,exportFiles} from '@/api/business/settleClaims';
    export default {
        name: 'OperaSettleClaimsWindow',
        extends: BaseOpera,
        components: { GlobalWindow },
        components: { GlobalWindow, OperaSettleClaimsCheckWindow },
        data () {
            return {
              doneFileDate:null,
              remarkLogList:[],
                // è¡¨å•数据
                form: {
                    id: null,
                },
              model:{},
                // éªŒè¯è§„则
                rules: {
                },
                activeName: 'first',
                reverse: true,
                activities: [
                    {
                        content: '提交报案申请\n' +
                            '\n' +
                            '\n' +
                            '提交意见:-',
                        timestamp: '操作员-张伟(安徽平安人力资源有限公司)\n' +
                            '\n' +
                            '2023-09-11 00:00:00'
                    }
                ],
                tableData: [],
                visible1: false,
                visible2: false,
@@ -489,24 +355,80 @@
            })
        },
        methods: {
          open(title,target){
            this.model ={}
            this.model = target
            this.title=title
            this.visible=true
            this.doneFileDate=null
            this.remarkLogList=[]
            this.getDetail()
          },
          openBaoxiandan(){
            window.open(this.model.baoxiandanFile.fileurlFull);
          },
          getDetail(){
            findById( this.model.id)
                .then(res => {
              this.model = res
              this.remarkLogList=[]
              var logList = this.model.settleClaimsLogList
              if(logList){
                logList.forEach(item => {
                   if( item.objType==2){
                     this.doneFileDate = item.createDate
                   }
                  if(item.objType==7){
                    this.remarkLogList.push(item)
                  }
                })
              }
            }).catch(err => {
            })
          },
            handleClick(tab, event) {
                console.log(tab, event);
            },
            submit() {
                this.$confirm('理赔材料收集完成,请及时提交保险公司!', '资料收集完成', {
                    confirmButtonText: '提交',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    this.$message({
                        type: 'success',
                        message: '提交成功!'
                    });
                }).catch(() => {
          callback(){
            this.getDetail()
            this.$emit('success')
          },
            submit(type) {
              var that =this
              if(type ==0){
                this.$dialog.messageConfirm('理赔材料收集完成,请及时提交保险公司!')
                    .then(() => {
                      // this.isWorking = true
                      confirmFile({id:that.model.id})
                          .then(response => {
                            that.getDetail()
                          }).catch(err => {
                        this.$tip.apiFailed(err)
                      })
                    })
              }else if(type==1){
                //资料下载
                this.$dialog.exportConfirm('确认进行资料下载吗?')
                    .then(() => {
                      this.isWorking = true
                      exportFiles({ id: that.model.id })
                          .then(response => {
                            this.download(response)
                          }).catch(err => {
                            console.log(err)
                            this.$message.error("下载资料失败,请确认资料数据不为空")
                          }).finally(() => {
                            this.isWorking = false
                          })
                    })
                    .catch(() => {
                    })
              }
                });
            }
        }
    }
</script>
<style>
company/src/views/business/settleClaims.vue
@@ -2,26 +2,26 @@
    <TableLayout :permissions="['business:settleclaims:query']">
        <!-- æœç´¢è¡¨å• -->
        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
            <el-form-item label="员工姓名" prop="informantName">
                <el-input v-model="searchForm.informantName" placeholder="请输入" @keypress.enter.native="search"></el-input>
            <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="companyId">
                <el-select v-model="searchForm.companyId" placeholder="请选择" @keypress.enter.native="search">
                    <el-option
                        v-for="item in options"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value">
                        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="solutionId">
                <el-select v-model="searchForm.solutionId" placeholder="请选择" @keypress.enter.native="search">
            <el-form-item label="保险方案" prop="baseSolutionId">
                <el-select v-model="searchForm.baseSolutionId" placeholder="请选择" @keypress.enter.native="search">
                    <el-option
                        v-for="item in options"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value">
                        v-for="item in solutionList"
                        :key="item.id"
                        :label="item.name"
                        :value="item.id">
                    </el-option>
                </el-select>
            </el-form-item>
@@ -32,15 +32,8 @@
                    <el-option label="已结案" value="2"></el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="派遣单位" prop="duId">
                <el-select v-model="searchForm.duId" placeholder="请选择" @keypress.enter.native="search">
                    <el-option
                        v-for="item in options"
                        :key="item.value"
                        :label="item.label"
                        :value="item.value">
                    </el-option>
                </el-select>
            <el-form-item label="派遣单位" prop="duName">
              <el-input v-model="searchForm.duName" placeholder="请输入" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <section>
                <el-button type="primary" @click="search">搜索</el-button>
@@ -61,18 +54,18 @@
                    </template>
                </el-table-column>
                <el-table-column prop="reportNum" label="报案号" min-width="100px"></el-table-column>
                <el-table-column prop="companyId" label="报案企业" min-width="100px"></el-table-column>
                <el-table-column prop="companyId" label="出险人" min-width="100px"></el-table-column>
                <el-table-column prop="solutionId" label="保险方案" min-width="100px"></el-table-column>
                <el-table-column prop="duId" label="派遣单位" min-width="100px"></el-table-column>
                <el-table-column prop="worktypeId" label="所属工种" min-width="100px"></el-table-column>
                <el-table-column prop="worktypeId" label="保险生效起期" min-width="100px"></el-table-column>
                <el-table-column prop="create_date" 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="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>
                <el-table-column prop="baoxianStartTime" label="保险生效起期" min-width="100px"></el-table-column>
                <el-table-column prop="createDate" label="报案时间" min-width="100px"></el-table-column>
                <el-table-column prop="status" label="案件状态" min-width="100px">
                    <template slot-scope="{row}">
                        <span v-if="row.status === 0 || row.status === 2">处理中</span>
                        <span v-if="row.status === 1">已撤案</span>
                        <span v-if="row.status === 3">已结案</span>
                        <span  style="color: #2E68EC"  v-if="row.status === 0 || row.status === 2 || row.status === 3">处理中</span>
                        <span style="color: red" v-if="row.status === 1">已撤案</span>
                        <span style="color: green "  v-if="row.status ===4">已结案</span>
                    </template>
                </el-table-column>
                <el-table-column
@@ -82,7 +75,7 @@
                    fixed="right"
                >
                    <template slot-scope="{row}">
                        <el-button type="text" @click="$refs.operaSettleClaimsWindow.open('编辑理赔申请表', row)" icon="el-icon-edit" v-permissions="['business:settleclaims:update']">查看详情</el-button>
                        <el-button type="text" @click="$refs.operaSettleClaimsWindow.open('报案理赔申请表', row)" icon="el-icon-view" v-permissions="['business:settleclaims:update']">查看详情</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -103,6 +96,8 @@
    import TableLayout from '@/layouts/TableLayout'
    import Pagination from '@/components/common/Pagination'
    import OperaSettleClaimsWindow from '@/components/business/OperaSettleClaimsWindow'
    import {all as solutionAll} from '@/api/business/solutions'
    import {pageAll as companyAll} from '@/api/business/company'
    export default {
        name: 'SettleClaims',
        extends: BaseTable,
@@ -110,10 +105,13 @@
        data () {
            return {
                // æœç´¢
              solutionList:[],
              companyList:[],
                searchForm: {
                    solutionId: '',
                    baseSolutionId: '',
                    companyId: '',
                    duId: '',
                    duName: '',
                    memberName:'',
                    status: '',
                    informantName: ''
                }
@@ -127,6 +125,23 @@
                'field.main': 'id'
            })
            this.search()
            this.loadSelectList()
        },
      methods:{
        // handlePageChange() {
        //   this.search()
        // },
        loadSelectList() {
          solutionAll({dataType:0}).then(res => {
            this.solutionList = res
          }).catch(err => {
          })
          companyAll({}).then(res => {
            this.companyList = res
          }).catch(err => {
          })
        }
      }
    }
</script>
server/platform/src/main/java/com/doumee/api/business/SettleClaimsController.java
@@ -8,6 +8,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.SCSupplementDTO;
import com.doumee.dao.business.model.SettleClaims;
import com.doumee.service.business.SettleClaimsService;
import io.swagger.annotations.Api;
@@ -63,6 +64,15 @@
    public ApiResponse back(@RequestBody SettleClaims settleClaims) {
        return ApiResponse.success(settleClaimsService.back(settleClaims));
    }
    @ApiOperation("附件上传")
    @PostMapping("/claimsUploadFile")
    @RequiresPermissions("business:settleclaims:update")
    public ApiResponse claimsUploadFile(@RequestBody SCSupplementDTO scSupplementDTO) {
        settleClaimsService.claimsUploadFile(scSupplementDTO);
        return ApiResponse.success(null);
    }
    @ApiOperation("备注标签")
    @PostMapping("/remark")
    @RequiresPermissions("business:settleclaims:remark")
@@ -77,12 +87,12 @@
    }
    @ApiOperation("资料下载")
    @PostMapping("/exportFiles")
    @RequiresPermissions("business:locks:exportExcel")
    public void exportFiles(@RequestParam Integer id,HttpServletResponse response) {
        if(id == null){
    @RequiresPermissions("business:settleclaims:exportExcel")
    public void exportFiles(@RequestBody SettleClaims model,HttpServletResponse response) {
        if(model.getId() == null){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        settleClaimsService.exportFiles(id,response);
        settleClaimsService.exportFiles(model.getId(),response);
    }
    @ApiOperation("根据ID删除")
    @GetMapping("/delete/{id}")
server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -1012,12 +1012,12 @@
        UPLOAD(0, "提交报案","提交意见:${param}"),
        PLATFORM_RETURN(1, "平台退回","提交意见:${param}"),
        PLATFORM_CONFIRM_INFORMATION(2, "平台确认资料",""),
        PLATFORM_FINISH(3, "平台完成受理","提交意见:${param}"),
        PLATFORM_FINISH(3, "结案提交","提交意见:${param}"),
        UPDATE_DATA(4, "修改信息","提交意见:${param}"),
        SUPPLEMENT(5, "补充说明","提交意见:${param}"),
        PLATFORM_LP_DEAL(6, "平台理赔处理","提交意见:${param}"),
        PLATFORM_REMARK(7, "平台备注标签",""),
        PLATFORM_ADDCODE(8, "平台添加报案号",""),
        PLATFORM_REMARK(7, "平台备注标签","${param}"),
        PLATFORM_ADDCODE(8, "平台添加报案号","备案号:${param}"),
        PLATFORM_UN_AGREE_BACK(9, "企业下载资料",""),
        PLATFORM_DOWNLOAD(10, "平台下载资料",""),
        PLATFORM_CHECK_PASS(11, "平台上传资料",""),
server/service/src/main/java/com/doumee/dao/business/model/SettleClaims.java
@@ -73,10 +73,9 @@
    @ExcelColumn(name="事故发生时间")
    private String happenTime;
    @ApiModelProperty(value = "最近操作时间")
    @ExcelColumn(name="最近操作时间")
    private Date idcardNo;
    @ApiModelProperty(value = "证件号")
    @ExcelColumn(name="证件号")
    private String idcardNo;
    @ApiModelProperty(value = "派遣单位编码(关联dispatch_unit)", example = "1")
    @ExcelColumn(name="派遣单位编码(关联dispatch_unit)")
@@ -144,11 +143,12 @@
    @ExcelColumn(name="理赔总额")
    private BigDecimal claimAccount;
    @ApiModelProperty(value = "报案人联系方式")
    @ExcelColumn(name="报案人联系方式")
    private String informantPhone;
    @ApiModelProperty(value = "就诊医疗机构")
    @ExcelColumn(name="就诊医疗机构")
    private String hospital;
    @ApiModelProperty(value = "出险地区(关联areas)", example = "1")
    @ExcelColumn(name="出险地区(关联areas)")
@@ -167,6 +167,9 @@
    private Integer insuranceApplyId;
    @ApiModelProperty(value = "保险单附件")
    @TableField(exist = false)
    private  Multifile  baoxiandanFile;
    @ApiModelProperty(value = "报案视频")
    @TableField(exist = false)
    private List<Multifile> reportFileList;
@@ -194,4 +197,41 @@
    @ApiModelProperty(value = "日志列表")
    @TableField(exist = false)
    List<SettleClaimsLog> settleClaimsLogList;
    @ApiModelProperty(value = "出险人")
    @TableField(exist = false)
    private String memberName;
    @ApiModelProperty(value = "出险人身份证")
    @TableField(exist = false)
    private String memberIdcardNo;
    @ApiModelProperty(value = "企业名称")
    @TableField(exist = false)
    private String companyName;
    @ApiModelProperty(value = "保险方案名称")
    @TableField(exist = false)
    private String solutionName;
    @ApiModelProperty(value = "派遣单位名称")
    @TableField(exist = false)
    private String duName;
    @ApiModelProperty(value = "工种名称")
    @TableField(exist = false)
    private String worktypeName;
    @ApiModelProperty(value = "保单号")
    @TableField(exist = false)
    private String applyCode;
    @ApiModelProperty(value = "保险生效起期")
    @TableField(exist = false)
    private Date baoxianStartTime;
    @ApiModelProperty(value = "保险生效起期")
    @TableField(exist = false)
    private Date baoxianEndTime;
    @ApiModelProperty(value = "方案基表编码(关联solutions)", example = "1")
    @TableField(exist = false)
    private Integer baseSolutionId;
    @ApiModelProperty(value = "派遣单位基表编码(关联solutions)", example = "1")
    @TableField(exist = false)
    private Integer baseDuId;
}
server/service/src/main/java/com/doumee/dao/business/model/SettleClaimsLog.java
@@ -31,6 +31,7 @@
        this.objId=objId;
        this.objType = objType;
        this.beforeContent=before;
        this.settleClainmsId=apply.getId();
        this.afterContent=after;
    }
    @TableId(type = IdType.AUTO)
@@ -95,6 +96,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)
server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -17,6 +17,7 @@
import com.doumee.dao.business.join.SettleClaimsJoinMapper;
import com.doumee.dao.business.join.SettleClaimsLogJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.service.business.SettleClaimsLogService;
import com.doumee.service.business.SettleClaimsService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -114,8 +115,7 @@
     */
    @Override
    public      Integer confirm(SettleClaims  param){
        if(param.getId() == null
                ||StringUtils.isBlank( param.getCheckInfo()) ){
        if(param.getId() == null ){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
        }
@@ -141,7 +141,7 @@
        Constants.SettleClaimsLogType applyLogType = Constants.SettleClaimsLogType.PLATFORM_CONFIRM_INFORMATION;
        String info =applyLogType.getInfo();
        info = info.replace("${param}", update.getCheckInfo());
//        info = info.replace("${param}", update.getCheckInfo());
        SettleClaimsLog log = new SettleClaimsLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(), JSONObject.toJSONString(model), JSONObject.toJSONString(update));
        settleClaimsLogMapper.insert(log);
        return  1;
@@ -162,17 +162,17 @@
        if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if((Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())
     /*   if((Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())
                ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey()))){
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请当前不支持该操作~");
        }
*/
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        SettleClaims update = new SettleClaims();
        update.setEditDate(new Date());
        update.setEditor(user.getId());
        update.setCheckDate(update.getEditDate());
        update.setCheckInfo(param.getCheckInfo());
        update.setCheckInfo("添加备注标签");
        update.setCheckUserId(user.getId());
        update.setId(model.getId());
        settleClaimsMapper.updateById(update);
@@ -277,7 +277,7 @@
    @Override
    public Integer addCode(SettleClaims param){
        if(param.getId() == null
                ||StringUtils.isBlank( param.getCode()) ){
                ||StringUtils.isBlank( param.getReportNum()) ){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
        }
@@ -285,10 +285,10 @@
        if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        if(!Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.WAIT_ACCEPTANCE.getKey())){
        if((Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.FINISH_ACCEPTANCE.getKey())
                ||Constants.equalsInteger(model.getStatus(),Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey()))){
            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请当前不支持该操作~");
        }
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        SettleClaims update = new SettleClaims();
        update.setEditDate(new Date());
@@ -298,11 +298,13 @@
        update.setCheckUserId(user.getId());
        update.setId(model.getId());
        update.setStatus(Constants.SettleClaimsStatus.DEAL_ING.getKey());
        update.setCode(param.getCode());
        update.setReportNum(param.getReportNum());
        settleClaimsMapper.updateById(update);
        Constants.SettleClaimsLogType applyLogType = Constants.SettleClaimsLogType.PLATFORM_ADDCODE;
        SettleClaimsLog log = new SettleClaimsLog(update,applyLogType.getName(), null,update.getId(),applyLogType.getKey(), JSONObject.toJSONString(model), JSONObject.toJSONString(update));
        String info =applyLogType.getInfo();
        info = info.replace("${param}", update.getReportNum());
        SettleClaimsLog log = new SettleClaimsLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(), JSONObject.toJSONString(model), JSONObject.toJSONString(update));
        settleClaimsLogMapper.insert(log);
        return  1;
@@ -419,25 +421,55 @@
        }
    }
    @Override
    public SettleClaims getSettleClaimsDetail(Integer id){
        SettleClaims settleClaims = settleClaimsJoinMapper.selectJoinOne(SettleClaims.class,new MPJLambdaWrapper<SettleClaims>()
                .selectAll(SettleClaims.class)
        MPJLambdaWrapper<SettleClaims>  queryWrapper =    new MPJLambdaWrapper<SettleClaims>();
        queryWrapper.selectAll(SettleClaims.class)
                .selectAs(Company::getName,SettleClaims::getCompanyName)
                .selectAs(Solutions::getName,SettleClaims::getSolutionName)
                .selectAs(Member::getName,SettleClaims::getMemberName)
                .selectAs(Member::getIdcardNo,SettleClaims::getMemberIdcardNo)
                .selectAs(InsuranceApply::getCode,SettleClaims::getApplyCode)
                .selectAs(Worktype::getName,SettleClaims::getWorktypeName)
                .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime)
                .selectAs(InsuranceApply::getEndTime,SettleClaims::getBaoxianEndTime)
                .selectAs(DispatchUnit::getName,SettleClaims::getDuName)
                .leftJoin(Company.class,Company::getId,SettleClaims::getCompanyId)
                .leftJoin(Member.class,Member::getId,SettleClaims::getMemberId)
                .leftJoin(InsuranceApply.class,InsuranceApply::getId,SettleClaims::getInsuranceApplyId)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,SettleClaims::getDuId)
                .leftJoin(Worktype.class,Worktype::getId,SettleClaims::getWorktypeId)
                .eq(SettleClaims::getId,id)
                .last(" limit 1 ")
        );
                .leftJoin(InsuranceApply.class,InsuranceApply::getId,SettleClaims::getInsuranceApplyId)
                .leftJoin(Solutions.class,Solutions::getId,SettleClaims::getSolutionId)
                .eq(SettleClaims::getId,id);
        SettleClaims settleClaims = settleClaimsJoinMapper.selectJoinOne(SettleClaims.class,queryWrapper);
        if(settleClaims == null){
            throw new BusinessException(ResponseStatus.DATA_EMPTY);
        }
        List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>()
                .lambda().eq(Multifile::getObjId,id)
                .eq(Multifile::getIsdeleted,Constants.ZERO)
                .orderByAsc(Multifile::getCreateDate)
        );
        String rPath = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode();
        String path = rPath+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.SETTLE_FILE).getCode();
        if(multifileList!=null){
            for(Multifile f : multifileList){
                if(f!=null&& StringUtils.isNotBlank(f.getFileurl())){
                    f.setFileurlFull(path+f.getFileurl());
                }
            }
        }
        Multifile baoxiandanFile = multifileMapper.selectOne(new QueryWrapper<Multifile>()
                .lambda().eq(Multifile::getObjId,settleClaims.getInsuranceApplyId())
                .eq(Multifile::getIsdeleted,Constants.ZERO)
                .eq(Multifile::getObjType,Constants.MultiFile.BD_DONE_PDF.getKey())
                .last("limit 1"));
        if(baoxiandanFile!=null&& StringUtils.isNotBlank(baoxiandanFile.getFileurl())){
            path = rPath+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode();
            baoxiandanFile.setFileurlFull(path+baoxiandanFile.getFileurl());
        }
        settleClaims.setBaoxiandanFile(baoxiandanFile);//保险单
        if(CollectionUtils.isNotEmpty(multifileList)){
            settleClaims.setReportFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_SGXC_FILE.getKey())).collect(Collectors.toList()));
@@ -450,17 +482,17 @@
            settleClaims.setDisabilityFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_SCZL_FILE.getKey())).collect(Collectors.toList()));
            settleClaims.setCompensationFileList(multifileList.stream().filter(m->m.getObjType().equals(Constants.MultiFile.LP_JACL_FILE.getKey())).collect(Collectors.toList()));
        }
        //查询操作记录
        List<SettleClaimsLog> settleClaimsLogList = settleClaimsLogJoinMapper.selectJoinList(SettleClaimsLog.class,
                new MPJLambdaWrapper<SettleClaimsLog>()
                        .selectAll(SettleClaimsLog.class)
                        .selectAs(Member::getName,SettleClaimsLog::getCreatorName)
                        .selectAs(SystemUser::getRealname,SettleClaimsLog::getCreatorName)
                        .selectAs(SystemUser::getType,SettleClaimsLog::getCreatorType)
                        .selectAs(Company::getName,SettleClaimsLog::getCompanyName)
                        .leftJoin(Member.class,Member::getId,SettleClaimsLog::getCreator)
                        .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                        .leftJoin(SystemUser.class,SystemUser::getId,SettleClaimsLog::getCreator)
                        .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId)
                        .eq(SettleClaimsLog::getSettleClainmsId,settleClaims.getId())
                        .orderByAsc(SettleClaimsLog::getCreateDate)
        );
@@ -640,6 +672,7 @@
    @Override
    public SettleClaims findById(Integer id) {
        return settleClaimsMapper.selectById(id);
    }
@@ -658,109 +691,142 @@
    @Override
    public PageData<SettleClaims> findPage(PageWrap<SettleClaims> pageWrap) {
        IPage<SettleClaims> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<SettleClaims> queryWrapper = new QueryWrapper<>();
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        Utils.MP.blankToNull(pageWrap.getModel());
        MPJLambdaWrapper<SettleClaims>  queryWrapper =    new MPJLambdaWrapper<SettleClaims>();
        queryWrapper.selectAll(SettleClaims.class)
                .selectAs(Company::getName,SettleClaims::getCompanyName)
                .selectAs(Solutions::getName,SettleClaims::getSolutionName)
                .selectAs(Member::getName,SettleClaims::getMemberName)
                .selectAs(Worktype::getName,SettleClaims::getWorktypeName)
                .selectAs(InsuranceApply::getStartTime,SettleClaims::getBaoxianStartTime)
                .selectAs(DispatchUnit::getName,SettleClaims::getDuName)
                .leftJoin(Company.class,Company::getId,SettleClaims::getCompanyId)
                .leftJoin(Member.class,Member::getId,SettleClaims::getMemberId)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,SettleClaims::getDuId)
                .leftJoin(Worktype.class,Worktype::getId,SettleClaims::getWorktypeId)
                .leftJoin(InsuranceApply.class,InsuranceApply::getId,SettleClaims::getInsuranceApplyId)
                .leftJoin(Solutions.class,Solutions::getId,SettleClaims::getSolutionId);
        queryWrapper.eq(DispatchUnit::getIsdeleted,Constants.ZERO);
        if(Constants.equalsInteger(user.getType(),Constants.ZERO)){
            //只能看权限范围内
            if(user.getCompanyIdList() == null || user.getCompanyIdList().size() == 0){
                queryWrapper. eq(Company::getId,-1);//设置无效访问
            }else {
                queryWrapper. in(Company::getId, user.getCompanyIdList());
            }
        } else  {
            //企业用户只看自己的数据
            pageWrap.getModel().setCompanyId(user.getCompanyId());
        }
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),Member::getName, pageWrap.getModel().getMemberName());
        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());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(SettleClaims::getId, pageWrap.getModel().getId());
            queryWrapper.eq(SettleClaims::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(SettleClaims::getCreator, pageWrap.getModel().getCreator());
            queryWrapper.eq(SettleClaims::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(SettleClaims::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(SettleClaims::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
            queryWrapper.ge(SettleClaims::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.le(SettleClaims::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(SettleClaims::getEditor, pageWrap.getModel().getEditor());
            queryWrapper.eq(SettleClaims::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(SettleClaims::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(SettleClaims::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
            queryWrapper.ge(SettleClaims::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.le(SettleClaims::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(SettleClaims::getIsdeleted, pageWrap.getModel().getIsdeleted());
            queryWrapper.eq(SettleClaims::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getRemark() != null) {
            queryWrapper.lambda().eq(SettleClaims::getRemark, pageWrap.getModel().getRemark());
            queryWrapper.eq(SettleClaims::getRemark, pageWrap.getModel().getRemark());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(SettleClaims::getSortnum, pageWrap.getModel().getSortnum());
            queryWrapper.eq(SettleClaims::getSortnum, pageWrap.getModel().getSortnum());
        }
        if (pageWrap.getModel().getSolutionId() != null) {
            queryWrapper.lambda().eq(SettleClaims::getSolutionId, pageWrap.getModel().getSolutionId());
            queryWrapper.eq(SettleClaims::getSolutionId, pageWrap.getModel().getSolutionId());
        }
        if (pageWrap.getModel().getCompanyId() != null) {
            queryWrapper.lambda().eq(SettleClaims::getCompanyId, pageWrap.getModel().getCompanyId());
            queryWrapper.eq(SettleClaims::getCompanyId, pageWrap.getModel().getCompanyId());
        }
        if (pageWrap.getModel().getMemberId() != null) {
            queryWrapper.lambda().eq(SettleClaims::getMemberId, pageWrap.getModel().getMemberId());
            queryWrapper.eq(SettleClaims::getMemberId, pageWrap.getModel().getMemberId());
        }
        if (pageWrap.getModel().getHappenTime() != null) {
            queryWrapper.lambda().eq(SettleClaims::getHappenTime, pageWrap.getModel().getHappenTime());
            queryWrapper.eq(SettleClaims::getHappenTime, pageWrap.getModel().getHappenTime());
        }
        if (pageWrap.getModel().getIdcardNo() != null) {
            queryWrapper.lambda().ge(SettleClaims::getIdcardNo, Utils.Date.getStart(pageWrap.getModel().getIdcardNo()));
            queryWrapper.lambda().le(SettleClaims::getIdcardNo, Utils.Date.getEnd(pageWrap.getModel().getIdcardNo()));
            queryWrapper.eq(SettleClaims::getIdcardNo, pageWrap.getModel().getIdcardNo());
        }
        if (pageWrap.getModel().getDuId() != null) {
            queryWrapper.lambda().eq(SettleClaims::getDuId, pageWrap.getModel().getDuId());
            queryWrapper.eq(SettleClaims::getDuId, pageWrap.getModel().getDuId());
        }
        if (pageWrap.getModel().getWorktypeId() != null) {
            queryWrapper.lambda().eq(SettleClaims::getWorktypeId, pageWrap.getModel().getWorktypeId());
            queryWrapper.eq(SettleClaims::getWorktypeId, pageWrap.getModel().getWorktypeId());
        }
        if (pageWrap.getModel().getFee() != null) {
            queryWrapper.lambda().eq(SettleClaims::getFee, pageWrap.getModel().getFee());
            queryWrapper.eq(SettleClaims::getFee, pageWrap.getModel().getFee());
        }
        if (pageWrap.getModel().getCheckInfo() != null) {
            queryWrapper.lambda().eq(SettleClaims::getCheckInfo, pageWrap.getModel().getCheckInfo());
            queryWrapper.eq(SettleClaims::getCheckInfo, pageWrap.getModel().getCheckInfo());
        }
        if (pageWrap.getModel().getCheckUserId() != null) {
            queryWrapper.lambda().eq(SettleClaims::getCheckUserId, pageWrap.getModel().getCheckUserId());
            queryWrapper.eq(SettleClaims::getCheckUserId, pageWrap.getModel().getCheckUserId());
        }
        if (pageWrap.getModel().getCode() != null) {
            queryWrapper.lambda().eq(SettleClaims::getCode, pageWrap.getModel().getCode());
            queryWrapper.eq(SettleClaims::getCode, pageWrap.getModel().getCode());
        }
        if (pageWrap.getModel().getStatus() != null) {
            queryWrapper.lambda().eq(SettleClaims::getStatus, pageWrap.getModel().getStatus());
            queryWrapper.eq(SettleClaims::getStatus, pageWrap.getModel().getStatus());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.lambda().eq(SettleClaims::getType, pageWrap.getModel().getType());
            queryWrapper.eq(SettleClaims::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getInHospital() != null) {
            queryWrapper.lambda().eq(SettleClaims::getInHospital, pageWrap.getModel().getInHospital());
            queryWrapper.eq(SettleClaims::getInHospital, pageWrap.getModel().getInHospital());
        }
        if (pageWrap.getModel().getMedicalInsurance() != null) {
            queryWrapper.lambda().eq(SettleClaims::getMedicalInsurance, pageWrap.getModel().getMedicalInsurance());
            queryWrapper.eq(SettleClaims::getMedicalInsurance, pageWrap.getModel().getMedicalInsurance());
        }
        if (pageWrap.getModel().getContent() != null) {
            queryWrapper.lambda().eq(SettleClaims::getContent, pageWrap.getModel().getContent());
            queryWrapper.eq(SettleClaims::getContent, pageWrap.getModel().getContent());
        }
        if (pageWrap.getModel().getInformantName() != null) {
            queryWrapper.lambda().eq(SettleClaims::getInformantName, pageWrap.getModel().getInformantName());
            queryWrapper.eq(SettleClaims::getInformantName, pageWrap.getModel().getInformantName());
        }
        if (pageWrap.getModel().getInformantPhone() != null) {
            queryWrapper.lambda().eq(SettleClaims::getInformantPhone, pageWrap.getModel().getInformantPhone());
            queryWrapper.eq(SettleClaims::getInformantPhone, pageWrap.getModel().getInformantPhone());
        }
        if (pageWrap.getModel().getAreaId() != null) {
            queryWrapper.lambda().eq(SettleClaims::getAreaId, pageWrap.getModel().getAreaId());
            queryWrapper.eq(SettleClaims::getAreaId, pageWrap.getModel().getAreaId());
        }
        if (pageWrap.getModel().getAreaInfo() != null) {
            queryWrapper.lambda().eq(SettleClaims::getAreaInfo, pageWrap.getModel().getAreaInfo());
            queryWrapper.eq(SettleClaims::getAreaInfo, pageWrap.getModel().getAreaInfo());
        }
        if (pageWrap.getModel().getReportNum() != null) {
            queryWrapper.lambda().eq(SettleClaims::getReportNum, pageWrap.getModel().getReportNum());
            queryWrapper.eq(SettleClaims::getReportNum, pageWrap.getModel().getReportNum());
        }
        if (pageWrap.getModel().getInsuranceApplyId() != null) {
            queryWrapper.lambda().eq(SettleClaims::getInsuranceApplyId, pageWrap.getModel().getInsuranceApplyId());
            queryWrapper.eq(SettleClaims::getInsuranceApplyId, pageWrap.getModel().getInsuranceApplyId());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
        queryWrapper.orderByAsc(SettleClaims::getCreateDate);
        /*for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(settleClaimsMapper.selectPage(page, queryWrapper));
        }*/
        PageData<SettleClaims> pageData = PageData.from(settleClaimsJoinMapper.selectJoinPage(page,SettleClaims.class, queryWrapper));
        return pageData;
    }
    @Override