jiangping
2024-02-02 f8b1073fbb28d37e08016eed32c682f8c5eae391
Merge remote-tracking branch 'origin/master'
已修改16个文件
407 ■■■■■ 文件已修改
company/.env.development 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/package-lock.json 160 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaCompanyDescWindow.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaInsuranceApplyWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/dispatchUnitDetailsPlat.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/insuranceRecords.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/member.vue 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/index.vue 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/business/MemberController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/MemberController.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/SolutionsController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/.env.development
@@ -2,13 +2,13 @@
NODE_ENV = 'development'
# 企业端-仁康
VUE_APP_API = 'http://192.168.0.134:10025/'
#VUE_APP_API = 'http://192.168.0.134:10025/'
# 平台端-仁康
# VUE_APP_API = 'http://192.168.0.134:10023/'
# 平台端-萍姐
# VUE_APP_API = 'http://192.168.0.103:10023/'
 VUE_APP_API = 'http://192.168.0.103:10023/'
# VUE_APP_API = 'http://localhost:10023/'
# VUE_APP_API = 'http://localhost:10023/'
company/package-lock.json
@@ -1814,6 +1814,63 @@
          "integrity": "sha1-/q7SVZc9LndVW4PbwIhRpsY1IPo=",
          "dev": true
        },
        "ansi-styles": {
          "version": "4.3.0",
          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-convert": "^2.0.1"
          }
        },
        "chalk": {
          "version": "4.1.2",
          "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
          "dev": true,
          "optional": true,
          "requires": {
            "ansi-styles": "^4.1.0",
            "supports-color": "^7.1.0"
          }
        },
        "color-convert": {
          "version": "2.0.1",
          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-name": "~1.1.4"
          }
        },
        "color-name": {
          "version": "1.1.4",
          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
          "dev": true,
          "optional": true
        },
        "has-flag": {
          "version": "4.0.0",
          "resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
          "dev": true,
          "optional": true
        },
        "loader-utils": {
          "version": "2.0.4",
          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
          "dev": true,
          "optional": true,
          "requires": {
            "big.js": "^5.2.2",
            "emojis-list": "^3.0.0",
            "json5": "^2.1.2"
          }
        },
        "ssri": {
          "version": "8.0.1",
          "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-8.0.1.tgz?cache=0&sync_timestamp=1617826515595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fssri%2Fdownload%2Fssri-8.0.1.tgz",
@@ -1821,6 +1878,28 @@
          "dev": true,
          "requires": {
            "minipass": "^3.1.1"
          }
        },
        "supports-color": {
          "version": "7.2.0",
          "resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
          "dev": true,
          "optional": true,
          "requires": {
            "has-flag": "^4.0.0"
          }
        },
        "vue-loader-v16": {
          "version": "npm:vue-loader@16.8.3",
          "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
          "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
          "dev": true,
          "optional": true,
          "requires": {
            "chalk": "^4.1.0",
            "hash-sum": "^2.0.0",
            "loader-utils": "^2.0.0"
          }
        }
      }
@@ -13224,87 +13303,6 @@
          "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz",
          "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=",
          "dev": true
        }
      }
    },
    "vue-loader-v16": {
      "version": "npm:vue-loader@16.8.3",
      "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.8.3.tgz",
      "integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
      "dev": true,
      "optional": true,
      "requires": {
        "chalk": "^4.1.0",
        "hash-sum": "^2.0.0",
        "loader-utils": "^2.0.0"
      },
      "dependencies": {
        "ansi-styles": {
          "version": "4.3.0",
          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-convert": "^2.0.1"
          }
        },
        "chalk": {
          "version": "4.1.2",
          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
          "dev": true,
          "optional": true,
          "requires": {
            "ansi-styles": "^4.1.0",
            "supports-color": "^7.1.0"
          }
        },
        "color-convert": {
          "version": "2.0.1",
          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
          "dev": true,
          "optional": true,
          "requires": {
            "color-name": "~1.1.4"
          }
        },
        "color-name": {
          "version": "1.1.4",
          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
          "dev": true,
          "optional": true
        },
        "has-flag": {
          "version": "4.0.0",
          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
          "dev": true,
          "optional": true
        },
        "loader-utils": {
          "version": "2.0.4",
          "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz",
          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
          "dev": true,
          "optional": true,
          "requires": {
            "big.js": "^5.2.2",
            "emojis-list": "^3.0.0",
            "json5": "^2.1.2"
          }
        },
        "supports-color": {
          "version": "7.2.0",
          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
          "dev": true,
          "optional": true,
          "requires": {
            "has-flag": "^4.0.0"
          }
        }
      }
    },
company/src/components/business/OperaCompanyDescWindow.vue
@@ -95,7 +95,12 @@
                    <div class="info_list_item_label" style="width: 100px;">营业执照:</div>
                    <div class="info_list_item_val">
                        <div class="image" v-if="form.businessImg.fileurlFull">
                            <img :src="form.businessImg.fileurlFull" alt="">
                          <el-image
                              v-if="form.businessImg.fileurlFull!=null"
                              style="width: 90px; height: 90px"
                              :src="form.businessImg.fileurlFull"
                              :preview-src-list="[form.businessImg.fileurlFull]">
                          </el-image>
                        </div>
                    </div>
                </div>
@@ -103,10 +108,22 @@
                    <div class="info_list_item_label" style="width: 100px;">法人身份证:</div>
                    <div class="info_list_item_val">
                        <div class="image" v-if="form.idcardImgList[0].fileurlFull">
                            <img :src="form.idcardImgList[0].fileurlFull" alt="">
                          <el-image
                              append-to-body
                              v-if="form.idcardImgList[0].fileurlFull"
                              style="width: 90px; height: 90px"
                              :src="form.idcardImgList[0].fileurlFull"
                              :preview-src-list="[form.idcardImgList[0].fileurlFull]">
                          </el-image>
                        </div>
                        <div class="image" v-if="form.idcardImgList[1].fileurlFull">
                            <img :src="form.idcardImgList[1].fileurlFull" alt="">
                          <el-image
                              append-to-body
                              v-if="form.idcardImgList[1].fileurlFull"
                              style="width: 90px; height: 90px"
                              :src="form.idcardImgList[1].fileurlFull"
                              :preview-src-list="[form.idcardImgList[1].fileurlFull]">
                          </el-image>
                        </div>
                    </div>
                </div>
@@ -114,7 +131,12 @@
                    <div class="info_list_item_label" style="width: 100px;">企业签章:</div>
                    <div class="info_list_item_val">
                        <div class="image" v-if="form.signImg.fileurlFull">
                            <img :src="form.signImg.fileurlFull" alt="">
                          <el-image
                              v-if="form.signImg.fileurlFull!=null"
                              style="width: 90px; height: 90px"
                              :src="form.signImg.fileurlFull"
                              :preview-src-list="[form.signImg.fileurlFull]">
                          </el-image>
                        </div>
                    </div>
                </div>
company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -228,7 +228,7 @@
                                <span style="font-size: 16px; font-weight: 400; color: black;">
                                    {{activity.title}}
                                    <span style="font-size: 16px; font-weight: 400; color: black; margin-left: 10px;" v-if="activity.objType === 5 || activity.objType === 6 || activity.objType === 1 || activity.objType === 2">
                                       提交意见:{{activity.content}}
                                      {{activity.content}}
                                    </span>
                                </span>
                        <span style="margin-top: 5px; font-size: 12px; font-weight: 400; color: #999999;">
company/src/components/business/dispatchUnitDetailsPlat.vue
@@ -93,7 +93,7 @@
                                <span style="font-size: 16px; font-weight: 400; color: black;">
                                    {{activity.title}}
                                    <span style="font-size: 16px; font-weight: 400; color: black; margin-left: 10px;" v-if="activity.objType === 5 || activity.objType === 6 || activity.objType === 1 || activity.objType === 2">
                                       提交意见:{{activity.content}}
                                       {{activity.content}}
                                    </span>
                                </span>
                                <span style="margin-top: 5px; font-size: 12px; font-weight: 400; color: #999999;">
company/src/components/enterprise/insuranceRecords.vue
@@ -79,20 +79,14 @@
                this.title = title
                this.list = []
                this.visible = true
      this.form = {
        id: null,
        name: '',
        idcardNo: '',
        solutionsStatus: ''
      }
      this.form = target
                // 新建
                if (target == null) {
                    this.$nextTick(() => {
                        this.$refs.form.resetFields()
                        this.form[this.configData['field.id']] = null
                    })
                    return
                }
                // 编辑
                this.$nextTick(() => {
                    for (const key in this.form) {
                        this.form[key] = target[key]
                    }
                })
                this.getList()
            },
            expr() {
@@ -109,7 +103,7 @@
            },
            getList() {
                findList({
                    memberId: this.form.id
        memberId: this.form.id || -1
                }).then(res => {
                    console.log(res)
                    this.list = res
company/src/views/business/member.vue
@@ -24,7 +24,20 @@
                    <el-option label="不在保" value="2"></el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="派遣单位" prop="duId">
            <el-form-item  v-if="userInfo.type === 0" label="所属企业" prop="companyId">
                <el-select v-model="searchForm.companyId" placeholder="请选择" @change="search">
                    <el-option
                        v-for="(item, index) in companyList"
                        :key="index"
                        :label="item.name"
                        :value="item.id">
                    </el-option>
                </el-select>
            </el-form-item>
          <el-form-item label="派遣单位" prop="duName">
            <el-input v-model="searchForm.duName" placeholder="请输入" maxlength="18" @keypress.enter.native="search"></el-input>
          </el-form-item>
<!--            <el-form-item label="派遣单位" prop="duId">
                <el-select v-model="searchForm.duId" placeholder="请选择" @change="search">
                    <el-option
                        v-for="(item, index) in options"
@@ -33,7 +46,7 @@
                        :value="item.id">
                    </el-option>
                </el-select>
            </el-form-item>
            </el-form-item>-->
            <section>
                <el-button type="primary" @click="search">搜索</el-button>
                <el-button @click="reset">重置</el-button>
@@ -111,6 +124,7 @@
    import { findListByDTO } from '@/api/business/dispatchUnit'
    import { memberExportExcel } from '@/api/business/member'
    import { mapState } from 'vuex'
    import {pageAll as companyAll} from "@/api/business/company";
    export default {
        name: 'Member',
        extends: BaseTable,
@@ -126,7 +140,8 @@
                    solutionId: ''
                },
                options: [],
                solutions: []
                solutions: [],
                companyList: []
            }
        },
        computed: {
@@ -153,14 +168,20 @@
                })
            },
            getSolutions() {
                all()
                all({})
                    .then(res => {
                        this.solutions = res
                    })
             /* if(this.userInfo.type ==1){
                findListByDTO({ dataType: 2 })
                    .then(res => {
                        this.options = res
                    })
              }*/
              companyAll({}).then(res => {
                this.companyList = res
              })
            },
            calculateAge(idNumber) {
                if (!idNumber) return
company/src/views/index.vue
@@ -16,11 +16,11 @@
        <div class="home_content_left_item" ref="picture3"></div>
      </div>
      <div class="home_content_right">
        <div class="home_content_right_label">代办事项</div>
        <div class="home_content_right_label" v-if="tabs && tabs.length>0" >代办事项</div>
        <el-tabs v-model="activeName" @tab-click="handleClick">
          <el-tab-pane label="保单代办" name="first"></el-tab-pane>
          <el-tab-pane label="理赔提醒" name="second"></el-tab-pane>
          <el-tab-pane v-for="a in tabs" :key="a.path" :label="a.label" :name="a.name"></el-tab-pane>
        </el-tabs>
        <div v-if="activeName === '0'"  v-permissions="['business:notice:insurance']" >
        <div class="home_content_right_list">
          <div class="list_item" v-for="(item, index) in 1" :key="index">
            <div class="list_item_left">
@@ -46,18 +46,74 @@
          </el-pagination>
        </div>
      </div>
        <div v-if="activeName === '1'"  v-permissions="['business:notice:tax']">
          <div class="home_content_right_list">
            <div class="list_item" v-for="(item, index) in 1" :key="index">
              <div class="list_item_left">
                <span>投保申请(待签署1)</span>
                <span>保险方案(雇主责任险A)</span>
              </div>
              <div class="list_item_center">
                <span>安徽平安人力资源有限公司</span>
                <span>提交时间  2023-09-11 00:00:00</span>
              </div>
              <div class="list_item_right">
                <span>查看详情</span>
              </div>
            </div>
          </div>
          <div class="home_content_right_page">
            <el-pagination
                @current-change="handleCurrentChange"
                :current-page="page"
                :page-size="5"
                layout="total, prev, pager, next, jumper"
                :total="0">
            </el-pagination>
          </div>
        </div>
        <div v-if="activeName === '2'"  v-permissions="['business:notice:settle']">
          <div class="home_content_right_list">
            <div class="list_item" v-for="(item, index) in 1" :key="index">
              <div class="list_item_left">
                <span>投保申请(待签署2)</span>
                <span>保险方案(雇主责任险A)</span>
              </div>
              <div class="list_item_center">
                <span>安徽平安人力资源有限公司</span>
                <span>提交时间  2023-09-11 00:00:00</span>
              </div>
              <div class="list_item_right">
                <span>查看详情</span>
              </div>
            </div>
          </div>
          <div class="home_content_right_page">
            <el-pagination
                @current-change="handleCurrentChange"
                :current-page="page"
                :page-size="5"
                layout="total, prev, pager, next, jumper"
                :total="0">
            </el-pagination>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import * as echarts from 'echarts';
import {mapState} from "vuex";
export default {
  name: 'Index',
  data () {
    return {
      activeName: 'first',
      activeName: '0',
      tabs:[],
      page: 1,
      table:null,
      cate: [
        {
          name: '投保申请',
@@ -87,12 +143,28 @@
      ]
    }
  },
  computed: {
    ...mapState(['userInfo'])
  },
  mounted() {
    this.setPicture1()
    this.setPicture2()
    this.setPicture3()
    this.initPanel()
  },
  methods: {
    initPanel(){
      var pemissons = this.userInfo.permissions;
      if(pemissons.includes("business:notice:insurance")){
        this.tabs.push( {name:"0",label:"投保代办"})
      }
      if(pemissons.includes("business:notice:tax")){
        this.tabs.push( {name:"1",label:"发票代办"})
      }
      if(pemissons.includes("business:notice:settle")){
        this.tabs.push( {name:"2",label:"理赔代办"})
      }
    },
    handleClick(e) {
      this.activeName = e.name
    },
server/company/src/main/java/com/doumee/api/business/MemberController.java
@@ -80,8 +80,8 @@
    @PostMapping("/page")
    @RequiresPermissions("business:member:query")
    public ApiResponse<PageData<Member>> findPage (@RequestBody PageWrap<MemberQueryDTO> pageWrap) {
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        pageWrap.getModel().setCompanyId(user.getCompanyId());
//        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
//        pageWrap.getModel().setCompanyId(user.getCompanyId());
        return ApiResponse.success(memberService.findPageForCompany(pageWrap));
    }
@@ -89,15 +89,15 @@
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:member:exportExcel")
    public void exportExcel (@RequestBody PageWrap<MemberQueryDTO> pageWrap, HttpServletResponse response) {
        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
     /*   LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        pageWrap.getModel().setCompanyId(user.getCompanyId());
        List<Member> list = memberService.findPageForCompany(pageWrap).getRecords();
        for (int i = 0; i < list.size(); i++) {
            Member member = list.get(i);
            member.setSn(i+1);
            member.setAge(Constants.getAgeByIdCard(member.getIdcardNo()));
        }
        ExcelExporter.build(Member.class).exportWithFirstAndEnd(list, "员工列表详单","员工列表详单",null, response);
        }*/
        ExcelExporter.build(Member.class).exportWithFirstAndEnd( memberService.findPageForCompany(pageWrap).getRecords(), "员工列表详单","员工列表详单",null, response);
    }
server/platform/src/main/java/com/doumee/api/business/MemberController.java
@@ -4,12 +4,16 @@
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.dto.MemberQueryDTO;
import com.doumee.dao.business.model.Member;
import com.doumee.service.business.MemberService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;    
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -70,17 +74,26 @@
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:member:query")
    public ApiResponse<PageData<Member>> findPage (@RequestBody PageWrap<Member> pageWrap) {
        return ApiResponse.success(memberService.findPage(pageWrap));
    public ApiResponse<PageData<Member>> findPage (@RequestBody PageWrap<MemberQueryDTO> pageWrap) {
//        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
//        pageWrap.getModel().setCompanyId(user.getCompanyId());
        return ApiResponse.success(memberService.findPageForCompany(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:member:exportExcel")
    public void exportExcel (@RequestBody PageWrap<Member> pageWrap, HttpServletResponse response) {
        ExcelExporter.build(Member.class).export(memberService.findPage(pageWrap).getRecords(), "用工信息表", response);
    public void exportExcel (@RequestBody PageWrap<MemberQueryDTO> pageWrap, HttpServletResponse response) {
      /*  LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        pageWrap.getModel().setCompanyId(user.getCompanyId());
        List<Member> list = memberService.findPageForCompany(pageWrap).getRecords();
        for (int i = 0; i < list.size(); i++) {
            Member member = list.get(i);
            member.setSn(i+1);
            member.setAge(Constants.getAgeByIdCard(member.getIdcardNo()));
        }*/
        ExcelExporter.build(Member.class).exportWithFirstAndEnd( memberService.findPageForCompany(pageWrap).getRecords(), "员工列表详单","员工列表详单",null, response);
    }
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
    @RequiresPermissions("business:member:query")
server/platform/src/main/java/com/doumee/api/business/MemberInsuranceController.java
@@ -66,7 +66,12 @@
        memberInsuranceService.updateById(memberInsurance);
        return ApiResponse.success(null);
    }
    @ApiOperation("列表查询")
    @PostMapping("/findList")
    @RequiresPermissions("business:memberinsurance:query")
    public ApiResponse<List<MemberInsurance>> findList (@RequestBody MemberInsurance memberInsurance) {
        return ApiResponse.success(memberInsuranceService.findList(memberInsurance));
    }
    @ApiOperation("分页查询")
    @PostMapping("/page")
    @RequiresPermissions("business:memberinsurance:query")
server/platform/src/main/java/com/doumee/api/business/SolutionsController.java
@@ -88,6 +88,7 @@
        return ApiResponse.success(solutionsService.findList(pageWrap));
    }
    @ApiOperation("导出Excel")
    @PostMapping("/exportExcel")
    @RequiresPermissions("business:solutions:exportExcel")
server/service/src/main/java/com/doumee/dao/business/dto/MemberQueryDTO.java
@@ -10,6 +10,8 @@
    @ApiModelProperty(value = "员工名称")
    private String name;
    @ApiModelProperty(value = "派遣單位名称")
    private String duName;
    @ApiModelProperty(value = "身份证号码")
    private String idCard;
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -1135,12 +1135,23 @@
                .in(!Objects.isNull(model.getStatus())&&model.getStatus().equals(Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey()),ApplyChange::getStatus,
                        Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey(),
                        Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())
                .eq(!Objects.isNull(model.getCompanyId()),InsuranceApply::getCompanyId,model.getCompanyId())
//                .eq(!Objects.isNull(model.getCompanyId()),InsuranceApply::getCompanyId,model.getCompanyId())
//                .eq(!Objects.isNull(model.getSolutionsId()),ApplyChange::getSolutionsId,model.getSolutionsId())
                .eq(!Objects.isNull(model.getBaseSolutionsId()),Solutions::getBaseId,model.getBaseSolutionsId())
                .ge(StringUtils.isNotBlank(model.getCreateDateS()),ApplyChange::getCreateDate, model.getCreateDateS()+" 00:00:00" )
                .le(StringUtils.isNotBlank(model.getCreateDateE()),ApplyChange::getCreateDate, model.getCreateDateE()+" 23:59:59" );
        LoginUserInfo loginUserInfo =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        //企业人员查看本企业数据
        if(loginUserInfo.getType().equals(Constants.ONE)){
            queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId());
        }else{
            if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){
                queryWrapper.in(InsuranceApply::getCompanyId, loginUserInfo.getCompanyIdList());
            }else{
                queryWrapper.eq(InsuranceApply::getCompanyId, -1);
            }
            queryWrapper.eq(pageWrap.getModel().getCompanyId()!=null,InsuranceApply::getCompanyId, pageWrap.getModel().getCompanyId());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -1131,6 +1131,7 @@
            }else{
                queryWrapper.eq(InsuranceApply::getCompanyId, -1);
            }
            queryWrapper.eq(pageWrap.getModel().getCompanyId()!=null,InsuranceApply::getCompanyId, pageWrap.getModel().getCompanyId());
        }
        if (pageWrap.getModel().getSolutionId() != null) {
            queryWrapper.eq(InsuranceApply::getSolutionId, pageWrap.getModel().getSolutionId());
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -22,6 +22,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import lombok.extern.java.Log;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -177,24 +178,40 @@
        MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        MemberQueryDTO memberQueryDTO = pageWrap.getModel();
        LoginUserInfo loginUserInfo =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        //企业人员查看本企业数据
        if(loginUserInfo.getType().equals(Constants.ONE)){
            queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId());
        }else{
            if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){
                queryWrapper.in(InsuranceApply::getCompanyId, loginUserInfo.getCompanyIdList());
            }else{
                queryWrapper.eq(InsuranceApply::getCompanyId, -1);
            }
            queryWrapper.eq(pageWrap.getModel().getCompanyId()!=null,InsuranceApply::getCompanyId, pageWrap.getModel().getCompanyId());
        }
        queryWrapper.selectAll(Member.class)
                .selectAs(DispatchUnit::getName,Member::getDuName)
                .selectAs(Worktype::getName,Member::getWorkTypeName)
                .selectAs(Solutions::getName,Member::getSolutionName)
                .selectAs(Company::getName,Member::getCompanyName)
                .select(" case when  now() between t.start_time and t.end_time then 1  else 2 end solutionsStatus ")
                .leftJoin(InsuranceApply.class,InsuranceApply::getId,Member::getApplyId)
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .leftJoin(DispatchUnit.class,DispatchUnit::getId,Member::getDuId)
                .leftJoin(Worktype.class,Worktype::getId,Member::getWorktypeId)
                .leftJoin(Company.class,Company::getId,Member::getCompanyId)
                .eq(Member::getIsdeleted, Constants.ZERO)
                .eq(Member::getCompanyId, memberQueryDTO.getCompanyId())
//                .eq(Member::getCompanyId, memberQueryDTO.getCompanyId())
                .like(StringUtils.isNotBlank(memberQueryDTO.getName()),Member::getName, memberQueryDTO.getName())
                .like(StringUtils.isNotBlank(memberQueryDTO.getIdCard()),Member::getIdcardNo, memberQueryDTO.getIdCard())
                .like(StringUtils.isNotBlank(memberQueryDTO.getDuName()),DispatchUnit::getName, memberQueryDTO.getDuName())
                .eq(!Objects.isNull(memberQueryDTO.getDuId()),Member::getDuId, memberQueryDTO.getDuId())
                .eq(!Objects.isNull(memberQueryDTO.getSolutionsId()),Solutions::getId, memberQueryDTO.getSolutionsId())
                .apply(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&memberQueryDTO.getSolutionsStatus().equals(Constants.ONE),"now() between t.start_time and t.end_time")
                .apply(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&memberQueryDTO.getSolutionsStatus().equals(Constants.TWO),"now()  >  t.end_time")
        ;
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());