jiangping
2024-06-20 49c7ea314c2070a2090fee2c77acbd21435f0455
提交一把
已修改7个文件
820 ■■■■ 文件已修改
company/src/components/business/OperaApplyChangeDetailWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaInsuranceApplyWindow.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaWtbApplyShopWindow.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/additionSubtractionApplication.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/factoryChange.vue 700 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/java/com/doumee/api/common/PublicController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaApplyChangeDetailWindow.vue
@@ -211,7 +211,7 @@
        <OperaInsuranceApply ref="OperaInsuranceApply" @success="successEvent" />
        <!--    加减保申请    -->
        <reinsurance ref="reinsurance" @success="successEvent" />
      <OperaPdfViewerWindow ref="OperaPdfViewerWindow" />
        <OperaPdfViewerWindow ref="OperaPdfViewerWindow" />
        <!--    更换派遣单位申请    -->
        <factoryChange ref="factoryChange" @success="successEvent" />
        <!--    投保详情    -->
company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -457,9 +457,9 @@
        <!--    新增投保    -->
        <OperaInsuranceApplyAddWindow ref="operaInsuranceApplyAddWindow" @success="result" />
        <!--    加减保申请    -->
        <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
        <additionSubtractionApplication ref="additionSubtractionApplication" @success="successChangeEvent" />
        <!--    更换派遣单位申请    -->
        <factoryChange ref="factoryChange" @success="successEvent" />
        <factoryChange ref="factoryChange" @success="successChangeUnitEvent" />
        <!-- 加减保详情 -->
        <OperaApplyChangeDetailWindow ref="OperaApplyChangeDetailWindow" @success="successEvent"/>
        <!-- 更换派遣单位详情 -->
@@ -833,6 +833,14 @@
      }).catch(err => {
      })
    },
    successChangeEvent (param) {
      this.$refs.OperaApplyChangeDetailWindow.open('加减保详情',param)
      this.successEvent()
    },
    successChangeUnitEvent (param) {
      this.$refs.OperaApplyChangeUnitDetailWindow.open('更换派遣单位详情', param)
      this.successEvent()
    },
    successEvent () {
      // this.visible=false
      this.getDetail()
company/src/components/business/OperaWtbApplyShopWindow.vue
@@ -465,9 +465,9 @@
        <!--    加减保申请    -->
        <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
        <!--    更换派遣单位申请    -->
        <factoryChange ref="factoryChange" @success="successEvent" />
        <factoryChange ref="factoryChange" @success="successChangeUnitEvent" />
        <!-- 加减保详情 -->
        <OperaApplyChangeDetailWindow ref="OperaApplyChangeDetailWindow" @success="successEvent"/>
        <OperaApplyChangeDetailWindow ref="OperaApplyChangeDetailWindow" @success="successChangeEvent"/>
        <!-- 更换派遣单位详情 -->
        <OperaApplyChangeUnitDetailWindow ref="OperaApplyChangeUnitDetailWindow" @success="successEvent"/>
        <!--    验证手机号    -->
@@ -970,6 +970,14 @@
        this.successEvent()
      }
    },
    successChangeUnitEvent (param) {
      this.$refs.OperaApplyChangeUnitDetailWindow.open('更换派遣单位详情', param)
      this.successEvent()
    },
    successChangeEvent (param) {
      this.$refs.OperaApplyChangeDetailWindow.open('加减保详情',param)
      this.successEvent()
    },
    successEvent () {
      // this.visible=false
      this.getDetail()
company/src/components/enterprise/additionSubtractionApplication.vue
@@ -187,7 +187,7 @@
        <!--    详情    -->
        <ApplyChangeDetails1 ref="ApplyChangeDetails1" @success="success" />
        <!-- 加减保详情 -->
        <OperaApplyChangeDetailWindow ref="OperaApplyChangeDetailWindow" />
<!--        <OperaApplyChangeDetailWindow ref="OperaApplyChangeDetailWindow" />-->
    </GlobalWindow>
</template>
@@ -199,7 +199,7 @@
import importEmployees from '@/components/enterprise/importEmployees'
import confirmJobType from '@/components/enterprise/confirmJobType'
import ApplyChangeDetails1 from '@/components/business/ApplyChangeDetails1'
import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow'
// import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow'
import { all } from '@/api/business/solutions'
import { getDetail } from '@/api/business/insuranceApply'
import { create, getChangeCountCyclePriceVO } from '@/api/business/applyChange'
@@ -208,7 +208,15 @@
export default {
  name: 'additionSubtractionApplication',
  extends: BaseOpera,
  components: { GlobalWindow, selectEmployees, OperaApplyChangeDetailWindow, addEmployee, importEmployees, confirmJobType, ApplyChangeDetails1 },
  components: {
    GlobalWindow,
    selectEmployees,
    // OperaApplyChangeDetailWindow,
    addEmployee,
    importEmployees,
    confirmJobType,
    ApplyChangeDetails1
  },
  data () {
    return {
      form: {
@@ -407,8 +415,8 @@
      }).then(res => {
        this.visible = false
        this.$tip.apiSuccess('操作成功')
        this.$refs.OperaApplyChangeDetailWindow.open('加减保详情', { applyId: this.form.id, id: res })
        this.$emit('success')
        // this.$refs.OperaApplyChangeDetailWindow.open('加减保详情', { applyId: this.form.id, id: res })
        this.$emit('success', { applyId: this.form.id, id: res })
      }).catch(e => {
        this.$tip.apiFailed(e)
      }).finally(() => {
company/src/components/enterprise/factoryChange.vue
@@ -166,357 +166,365 @@
        <!--    详单    -->
        <ApplyChangeUnitDetails1 ref="ApplyChangeUnitDetails1" @success="success" />
        <!-- 更新派遣单位详情 -->
        <OperaApplyChangeUnitDetailWindow ref="OperaApplyChangeUnitDetailWindow" />
<!--        <OperaApplyChangeUnitDetailWindow ref="OperaApplyChangeUnitDetailWindow" />-->
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import selectEmployees from '@/components/enterprise/selectEmployees'
    import addEmployee from '@/components/enterprise/addEmployee'
    import importEmployees from '@/components/enterprise/importEmployees'
    import confirmJobType from '@/components/enterprise/confirmJobType'
    import ApplyChangeUnitDetails1 from '@/components/business/ApplyChangeUnitDetails1'
    import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
    import { all } from '@/api/business/solutions'
    import { getDetail, findList } from '@/api/business/insuranceApply'
    import { create } from '@/api/business/applyChange'
    import { getDate, compareDates, getTomorrow } from '@/utils/util'
    export default {
        name: 'factoryChange',
        extends: BaseOpera,
        components: { GlobalWindow, OperaApplyChangeUnitDetailWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, ApplyChangeUnitDetails1 },
        data () {
            return {
                form: {
                    id: null,
                    solutionId: '',
                    solutionsName: '',
                    applyStartTime: '',
                    applyEndTime: '',
                    factory: []
                },
                newVersionSolutionId: '',
                pickerOptions: {},
                price: '',
                endTime: '',    //     实际保险生效止期
                company: [],
                seleData: [],
                item: null,
                // 验证规则
                rules: {
                    applyStartTime: [
                        { required: true, message: '请选择批单生效起期' }
                    ]
                },
                list: []
            }
        },
        created () {
            this.config({
                api: '/business/insuranceApply',
                'field.id': 'id'
            })
        },
        methods: {
            open (title, target) {
                this.title = title
                this.form.addDetailList = []
                this.form.delDetailList = []
                this.list = []
                this.form.factory = []
                this.form.id = null
                this.item = null
                this.form.solutionId = ''
                this.form.solutionsName = ''
                this.form.applyStartTime = ''
                this.form.applyEndTime = ''
                if (target && target.id) {
                    this.$nextTick(() => {
                        this.$refs.form.resetFields()
                        this.form.id = target.id
                        this.getDetails()
                    })
                } else {
                    this.$nextTick(() => {
                        this.$refs.form.resetFields()
                        this.form[this.configData['field.id']] = null
                    })
                }
                this.getCompany()
                this.visible = true
                // this.updatePickerOptions()
            },
            success() {
                this.form.factory.forEach(item => {
                    item.idcardNo = item.idCard
                })
                this.isWorking = true
                create({
                    applyId: this.form.id,
                    changeDetailList: this.form.factory,
                    validTime: this.form.applyStartTime,
                    type: 1
                }).then(res => {
                    this.visible = false
                    this.$refs.OperaApplyChangeUnitDetailWindow.open('更换派遣单位详情', { applyId: this.form.id, id: res })
                    this.$tip.apiSuccess('操作成功')
                    // this.$emit('success')
                }).catch(e => {
                    this.$tip.apiFailed(e)
                }).finally(() => {
                    this.isWorking = false
                })
            },
            // 获取投保详情
            getDetails() {
                findList({ applyId: this.form.id })
                    .then(res => {
                        res.forEach(item => {
                            item.idCard = item.idcardNo
                            item.fee = ''
                        })
                        res.forEach(item => {
                            item.oldDuId = item.duId
                            item.oldDuName = item.duName
                            item.oldWorkTypeName = item.workTypeName
                            item.oldWorktypeId = item.worktypeId
                            item.workTypeName = ''
                            item.worktypeId = ''
                            item.duId = ''
                            item.duName = ''
                        })
                        // this.form.factory = res
                    })
                getDetail(this.form.id)
                    .then(res => {
                        console.log(res)
                        this.list.push(res)
                        this.endTime = res.endTime
                        this.form.solutionId = res.solutionId
                        this.newVersionSolutionId = res.newVersionSolutionId
                        this.form.solutionsName = res.solutionsName
                        this.pickerOptions = {
                            disabledDate(time) {
                                // 当前日期大于等于生效日期并且最后一次操作时间等于空
                                if ([1,3].includes(compareDates(getDate(), res.startTime)) && !res.lastChangeDate) {
                                    return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(getTomorrow()).getTime()
                                    // 当前日期小于生效日期并且最后一次操作时间等于空
                                } else if (compareDates(getDate(), res.startTime) === 2 && !res.lastChangeDate) {
                                    return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.startTime).getTime()
                                    // 最后一次操作时间有值
                                } else if (res.lastChangeDate) {
                                    // 当前日期大于最后一次操作时间
                                    if ([1,3].includes(compareDates(getDate(), res.lastChangeDate))) {
                                        return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(getTomorrow()).getTime()
                                        // 当前时间小于最后一次操作时间
                                    } else if (compareDates(getDate(), res.lastChangeDate) === 2) {
                                        return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.lastChangeDate).getTime()
                                    }
                                }
                            }
                        };
                        this.changeSolution1(res.solutionId)
                    })
            },
            deleItem() {
                if (this.seleData.length === 0) {
                    this.$message.warning('至少选择一项内容')
                    return
                }
                this.seleData.forEach(item => {
                    this.form.factory.forEach((row, index) => {
                        if (item === row.memberName) {
                            this.form.factory.splice(index, 1)
                        }
                    })
                })
            },
            confirm() {
                this.$refs.form.validate((valid) => {
                    if (valid) {
                        // if (this.form.addDetailList.length === 0) {
                        //     this.$message.warning('至少添加一项员工')
                        //     return
                        // }
                        for (let i = 0; i < this.form.factory.length; i++) {
                            if (!this.form.factory[i].worktypeId || !this.form.factory[i].duId) {
                                this.$message.warning('请完善派遣单位和工种信息')
                                return
                            }
                        }
                        this.$refs.ApplyChangeUnitDetails1.open('更换派遣单位详单', this.form.factory, {...this.list[0], applyStartTime: this.form.applyStartTime})
                        // this.form.factory.forEach(item => {
                        //     item.idcardNo = item.idCard
                        // })
                        // let arr = JSON.parse(JSON.stringify(this.form.factory))
                        // arr.forEach(item => {
                        //     item.idcardNo = item.idCard
                        // })
                        // this.isWorking = true
                        // create({
                        //     applyId: this.form.id,
                        //     changeDetailList: this.form.factory,
                        //     validTime: this.form.applyStartTime,
                        //     type: 1
                        // }).then(() => {
                        //     this.visible = false
                        //     this.$tip.apiSuccess('操作成功')
                        //     this.$emit('success')
                        // }).catch(e => {
                        //     this.$tip.apiFailed(e)
                        // }).finally(() => {
                        //     this.isWorking = false
                        // })
                    }
                })
            },
            seleUser() {
                if (!this.form.solutionId) {
                    this.$message.warning('请先选择保险方案')
                    return
                }
                if (!this.form.applyStartTime) {
                    this.$message.warning('请先选择批单生效起期')
                    return
                }
                this.$refs.selectEmployees.open('选取员工', { arr: this.form.delDetailList, price: this.price, insuranceApplyId: this.form.id, validTime: this.form.applyStartTime })
            },
            addUser() {
                if (!this.form.solutionId) {
                    this.$message.warning('请先选择保险方案')
                    return
                }
                this.$refs.addEmployee.open('添加员工', { arr: this.form.factory, price: this.price })
            },
            uploadUser() {
                if (!this.form.solutionId) {
                    this.$message.warning('请先选择保险方案')
                    return
                }
                this.$refs.importEmployees.open('上传名单', { arr: this.form.factory, price: this.price })
            },
            // 切换方案
            changeSolution1(e) {
                this.company.forEach(item => {
                    if (item.id === e) {
                        this.item = item
                    }
                })
                // this.tableData.forEach(item => {
                //     item.fee = this.price
                // })
            },
            dele(index) {
                this.form.factory.splice(index, 1)
            },
            getUser(obj) {
                console.log(obj)
                this.seleData.forEach(item => {
                    this.form.factory.forEach(row => {
                        if (item === row.memberName) {
                            row.workTypeName = obj.workTypeName
                            row.worktypeId = obj.worktypeId
                            row.duName = obj.duName
                            row.duId = obj.duId
                        }
                    })
                })
                this.seleData = []
                this.$refs.multipleTable.clearSelection();
            },
            // 选择员工
            sele() {
                if (!this.form.solutionId) {
                    this.$message.warning('请选择保险方案')
                    return
                }
                if (this.seleData.length === 0) {
                    this.$message.warning('请选择员工')
                    return
                }
                this.$refs.confirmJobType.open('确认工种', { solutionId: this.newVersionSolutionId })
            },
            // 查询全部方案
            getCompany() {
                all({})
                    .then(res => {
                        this.company = res
                    })
            },
            getAgeByIdCard(idCard){
                const sexAndAge = {}
                //获取用户身份证号码
                const userCard = idCard
                //如果用户身份证号码为undefined则返回空
                if (!userCard) {
                    return sexAndAge
                }
                // 获取出生日期
                const yearBirth = userCard.substring(6, 10)
                const monthBirth = userCard.substring(10, 12)
                const dayBirth = userCard.substring(12, 14)
                // 获取当前年月日并计算年龄
                const myDate = new Date()
                const monthNow = myDate.getMonth() + 1
                const dayNow = myDate.getDate()
                let age = myDate.getFullYear() - yearBirth
                if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) {
                    age--
                }
                // 得到年龄
                sexAndAge.age = age
                return sexAndAge.age
            },
            handleSelectionChange (e) {
                this.seleData = e.map(item => item.memberName)
            },
            // 选取员工
            getValue1 (list) {
                let arr = JSON.parse(JSON.stringify(list))
                arr.forEach(item => {
                    item.oldDuId = item.duId
                    item.oldDuName = item.duName
                    item.oldWorkTypeName = item.workTypeName
                    item.oldWorktypeId = item.worktypeId
                    item.duId = ''
                    item.duName = ''
                    item.workTypeName = ''
                    item.worktypeId = ''
                })
                for (let a = 0; a < arr.length; a++) {
                    for (let b = 0; b < this.form.factory.length; b++) {
                        if (arr[a].id === this.form.factory[b].id) {
                            this.$message.warning(`${arr[a].companyName}员工重复!`)
                            return
                        }
                    }
                }
                this.form.factory.push(...arr)
            },
            getValue(list) {
                let arr = JSON.parse(JSON.stringify(list))
                arr.forEach(item => {
                    item.oldDuId = item.duId
                    item.oldDuName = item.duName
                    item.oldWorkTypeName = item.workTypeName
                    item.oldWorktypeId = item.worktypeId
                    item.duId = ''
                    item.duName = ''
                    item.workTypeName = ''
                    item.worktypeId = ''
                })
                this.form.factory.push(...arr)
            }
        }
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import selectEmployees from '@/components/enterprise/selectEmployees'
import addEmployee from '@/components/enterprise/addEmployee'
import importEmployees from '@/components/enterprise/importEmployees'
import confirmJobType from '@/components/enterprise/confirmJobType'
import ApplyChangeUnitDetails1 from '@/components/business/ApplyChangeUnitDetails1'
// import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
import { all } from '@/api/business/solutions'
import { getDetail, findList } from '@/api/business/insuranceApply'
import { create } from '@/api/business/applyChange'
import { getDate, compareDates, getTomorrow } from '@/utils/util'
export default {
  name: 'factoryChange',
  extends: BaseOpera,
  components: {
    GlobalWindow,
    // OperaApplyChangeUnitDetailWindow,
    selectEmployees,
    addEmployee,
    importEmployees,
    confirmJobType,
    ApplyChangeUnitDetails1
  },
  data () {
    return {
      form: {
        id: null,
        solutionId: '',
        solutionsName: '',
        applyStartTime: '',
        applyEndTime: '',
        factory: []
      },
      newVersionSolutionId: '',
      pickerOptions: {},
      price: '',
      endTime: '', //     实际保险生效止期
      company: [],
      seleData: [],
      item: null,
      // 验证规则
      rules: {
        applyStartTime: [
          { required: true, message: '请选择批单生效起期' }
        ]
      },
      list: []
    }
  },
  created () {
    this.config({
      api: '/business/insuranceApply',
      'field.id': 'id'
    })
  },
  methods: {
    open (title, target) {
      this.title = title
      this.form.addDetailList = []
      this.form.delDetailList = []
      this.list = []
      this.form.factory = []
      this.form.id = null
      this.item = null
      this.form.solutionId = ''
      this.form.solutionsName = ''
      this.form.applyStartTime = ''
      this.form.applyEndTime = ''
      if (target && target.id) {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          this.form.id = target.id
          this.getDetails()
        })
      } else {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          this.form[this.configData['field.id']] = null
        })
      }
      this.getCompany()
      this.visible = true
      // this.updatePickerOptions()
    },
    success () {
      this.form.factory.forEach(item => {
        item.idcardNo = item.idCard
      })
      this.isWorking = true
      create({
        applyId: this.form.id,
        changeDetailList: this.form.factory,
        validTime: this.form.applyStartTime,
        type: 1
      }).then(res => {
        this.visible = false
        // this.$refs.OperaApplyChangeUnitDetailWindow.open('更换派遣单位详情', { applyId: this.form.id, id: res })
        this.$tip.apiSuccess('操作成功')
        this.$emit('success',{ applyId: this.form.id, id: res })
      }).catch(e => {
        this.$tip.apiFailed(e)
      }).finally(() => {
        this.isWorking = false
      })
    },
    // 获取投保详情
    getDetails () {
      findList({ applyId: this.form.id })
        .then(res => {
          res.forEach(item => {
            item.idCard = item.idcardNo
            item.fee = ''
          })
          res.forEach(item => {
            item.oldDuId = item.duId
            item.oldDuName = item.duName
            item.oldWorkTypeName = item.workTypeName
            item.oldWorktypeId = item.worktypeId
            item.workTypeName = ''
            item.worktypeId = ''
            item.duId = ''
            item.duName = ''
          })
          // this.form.factory = res
        })
      getDetail(this.form.id)
        .then(res => {
          console.log(res)
          this.list.push(res)
          this.endTime = res.endTime
          this.form.solutionId = res.solutionId
          this.newVersionSolutionId = res.newVersionSolutionId
          this.form.solutionsName = res.solutionsName
          this.pickerOptions = {
            disabledDate (time) {
              // 当前日期大于等于生效日期并且最后一次操作时间等于空
              if ([1, 3].includes(compareDates(getDate(), res.startTime)) && !res.lastChangeDate) {
                return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(getTomorrow()).getTime()
                // 当前日期小于生效日期并且最后一次操作时间等于空
              } else if (compareDates(getDate(), res.startTime) === 2 && !res.lastChangeDate) {
                return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.startTime).getTime()
                // 最后一次操作时间有值
              } else if (res.lastChangeDate) {
                // 当前日期大于最后一次操作时间
                if ([1, 3].includes(compareDates(getDate(), res.lastChangeDate))) {
                  return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(getTomorrow()).getTime()
                  // 当前时间小于最后一次操作时间
                } else if (compareDates(getDate(), res.lastChangeDate) === 2) {
                  return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.lastChangeDate).getTime()
                }
              }
            }
          }
          this.changeSolution1(res.solutionId)
        })
    },
    deleItem () {
      if (this.seleData.length === 0) {
        this.$message.warning('至少选择一项内容')
        return
      }
      this.seleData.forEach(item => {
        this.form.factory.forEach((row, index) => {
          if (item === row.memberName) {
            this.form.factory.splice(index, 1)
          }
        })
      })
    },
    confirm () {
      this.$refs.form.validate((valid) => {
        if (valid) {
          // if (this.form.addDetailList.length === 0) {
          //     this.$message.warning('至少添加一项员工')
          //     return
          // }
          for (let i = 0; i < this.form.factory.length; i++) {
            if (!this.form.factory[i].worktypeId || !this.form.factory[i].duId) {
              this.$message.warning('请完善派遣单位和工种信息')
              return
            }
          }
          this.$refs.ApplyChangeUnitDetails1.open('更换派遣单位详单', this.form.factory, { ...this.list[0], applyStartTime: this.form.applyStartTime })
          // this.form.factory.forEach(item => {
          //     item.idcardNo = item.idCard
          // })
          // let arr = JSON.parse(JSON.stringify(this.form.factory))
          // arr.forEach(item => {
          //     item.idcardNo = item.idCard
          // })
          // this.isWorking = true
          // create({
          //     applyId: this.form.id,
          //     changeDetailList: this.form.factory,
          //     validTime: this.form.applyStartTime,
          //     type: 1
          // }).then(() => {
          //     this.visible = false
          //     this.$tip.apiSuccess('操作成功')
          //     this.$emit('success')
          // }).catch(e => {
          //     this.$tip.apiFailed(e)
          // }).finally(() => {
          //     this.isWorking = false
          // })
        }
      })
    },
    seleUser () {
      if (!this.form.solutionId) {
        this.$message.warning('请先选择保险方案')
        return
      }
      if (!this.form.applyStartTime) {
        this.$message.warning('请先选择批单生效起期')
        return
      }
      this.$refs.selectEmployees.open('选取员工', { arr: this.form.delDetailList, price: this.price, insuranceApplyId: this.form.id, validTime: this.form.applyStartTime })
    },
    addUser () {
      if (!this.form.solutionId) {
        this.$message.warning('请先选择保险方案')
        return
      }
      this.$refs.addEmployee.open('添加员工', { arr: this.form.factory, price: this.price })
    },
    uploadUser () {
      if (!this.form.solutionId) {
        this.$message.warning('请先选择保险方案')
        return
      }
      this.$refs.importEmployees.open('上传名单', { arr: this.form.factory, price: this.price })
    },
    // 切换方案
    changeSolution1 (e) {
      this.company.forEach(item => {
        if (item.id === e) {
          this.item = item
        }
      })
      // this.tableData.forEach(item => {
      //     item.fee = this.price
      // })
    },
    dele (index) {
      this.form.factory.splice(index, 1)
    },
    getUser (obj) {
      console.log(obj)
      this.seleData.forEach(item => {
        this.form.factory.forEach(row => {
          if (item === row.memberName) {
            row.workTypeName = obj.workTypeName
            row.worktypeId = obj.worktypeId
            row.duName = obj.duName
            row.duId = obj.duId
          }
        })
      })
      this.seleData = []
      this.$refs.multipleTable.clearSelection()
    },
    // 选择员工
    sele () {
      if (!this.form.solutionId) {
        this.$message.warning('请选择保险方案')
        return
      }
      if (this.seleData.length === 0) {
        this.$message.warning('请选择员工')
        return
      }
      this.$refs.confirmJobType.open('确认工种', { solutionId: this.newVersionSolutionId })
    },
    // 查询全部方案
    getCompany () {
      all({})
        .then(res => {
          this.company = res
        })
    },
    getAgeByIdCard (idCard) {
      const sexAndAge = {}
      // 获取用户身份证号码
      const userCard = idCard
      // 如果用户身份证号码为undefined则返回空
      if (!userCard) {
        return sexAndAge
      }
      // 获取出生日期
      const yearBirth = userCard.substring(6, 10)
      const monthBirth = userCard.substring(10, 12)
      const dayBirth = userCard.substring(12, 14)
      // 获取当前年月日并计算年龄
      const myDate = new Date()
      const monthNow = myDate.getMonth() + 1
      const dayNow = myDate.getDate()
      let age = myDate.getFullYear() - yearBirth
      if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) {
        age--
      }
      // 得到年龄
      sexAndAge.age = age
      return sexAndAge.age
    },
    handleSelectionChange (e) {
      this.seleData = e.map(item => item.memberName)
    },
    // 选取员工
    getValue1 (list) {
      const arr = JSON.parse(JSON.stringify(list))
      arr.forEach(item => {
        item.oldDuId = item.duId
        item.oldDuName = item.duName
        item.oldWorkTypeName = item.workTypeName
        item.oldWorktypeId = item.worktypeId
        item.duId = ''
        item.duName = ''
        item.workTypeName = ''
        item.worktypeId = ''
      })
      for (let a = 0; a < arr.length; a++) {
        for (let b = 0; b < this.form.factory.length; b++) {
          if (arr[a].id === this.form.factory[b].id) {
            this.$message.warning(`${arr[a].companyName}员工重复!`)
            return
          }
        }
      }
      this.form.factory.push(...arr)
    },
    getValue (list) {
      const arr = JSON.parse(JSON.stringify(list))
      arr.forEach(item => {
        item.oldDuId = item.duId
        item.oldDuName = item.duName
        item.oldWorkTypeName = item.workTypeName
        item.oldWorktypeId = item.worktypeId
        item.duId = ''
        item.duName = ''
        item.workTypeName = ''
        item.worktypeId = ''
      })
      this.form.factory.push(...arr)
    }
  }
}
</script>
<style lang="scss" scoped>
server/company/src/main/java/com/doumee/api/common/PublicController.java
@@ -68,8 +68,6 @@
            systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(),
            systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode());
    }
    @ApiOperation(value = "上传图片", notes = "上传图片", httpMethod = "POST", position = 6)
    @ApiImplicitParams({
            @ApiImplicitParam(name = "folder", value = "文件夹", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -1088,30 +1088,10 @@
        applyChange.setIsdeleted(Constants.ZERO);
        //根据申请日期 处理加减保的 实际生效日期
        if(applyChange.getType().equals(Constants.ZERO)){
            if(Objects.nonNull(solutions.getAddValidDays())){
                applyChange.setApplyStartTime(
                        DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getAddValidDays())
                );
            }else{
                applyChange.setApplyStartTime(applyChange.getValidTime());
            }
            if(Objects.nonNull(solutions.getDelValidDays())){
                applyChange.setDelValidTime(
                        DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getDelValidDays())
                );
            }else{
                applyChange.setDelValidTime(applyChange.getValidTime());
            }
            //仅支持替换  保证加减保日期为同一天
            if(Constants.equalsInteger(solutions.getDelOnlyReplace(),Constants.ONE)){
                applyChange.setApplyStartTime(
                        applyChange.getDelValidTime()
                );
            }
            initJJBValidTime(applyChange,insuranceApply,solutions);
        }else{
            applyChange.setApplyStartTime(applyChange.getValidTime());
        }
        applyChange.setStatus(Constants.ZERO);
        applyChangeMapper.insert(applyChange);
@@ -1180,7 +1160,6 @@
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "保单已过保,无法进行该操作");
        }
        if (DateUtil.compareDate(applyChange.getValidTime(),insuranceApply.getStartTime()) > Constants.ZERO) {
            //如果保单尚未生效,设置期望生效日期为保单生效开始时间
            applyChange.setValidTime(insuranceApply.getStartTime());
        }
        Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
@@ -1217,27 +1196,8 @@
        };
        if(applyChange.getType().equals(Constants.ZERO)){
            if(Objects.nonNull(solutions.getAddValidDays())){
                applyChange.setApplyStartTime(
                        DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getAddValidDays())
                );
            }else{
                applyChange.setApplyStartTime(applyChange.getValidTime());
            }
            if(Objects.nonNull(solutions.getDelValidDays())){
                applyChange.setDelValidTime(
                        DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getDelValidDays())
                );
            }else{
                applyChange.setDelValidTime(applyChange.getValidTime());
            }
            //仅支持替换  保证加减保日期为同一天
            if(Constants.equalsInteger(solutions.getDelOnlyReplace(),Constants.ONE)){
                applyChange.setApplyStartTime(
                        applyChange.getDelValidTime()
                );
            }
            //处理期望生效日期
            initJJBValidTime(applyChange,insuranceApply,solutions);
        }else{
            applyChange.setApplyStartTime(applyChange.getValidTime());
        }
@@ -1267,6 +1227,34 @@
        return applyChange.getId();
    }
    private void initJJBValidTime(ApplyChange applyChange, InsuranceApply insuranceApply, Solutions solutions) {
        if( applyChange.getValidTime().getTime()>=insuranceApply.getStartTime().getTime()
                && Objects.nonNull(solutions.getAddValidDays())){
            //如果保单已生效,按照t+n的规则
            applyChange.setApplyStartTime(
                    DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getAddValidDays())
            );
        }else{
            //如果保单未生或者没有配置生效天数,设置期望生效日期为保单生效开始时间
            applyChange.setApplyStartTime(applyChange.getValidTime());
        }
        if(applyChange.getValidTime().getTime()>=insuranceApply.getStartTime().getTime()
                &&Objects.nonNull(solutions.getDelValidDays())){
            applyChange.setDelValidTime(
                    DateUtil.afterDateByType(applyChange.getValidTime(),0,solutions.getDelValidDays())
            );
        }else{
            applyChange.setDelValidTime(applyChange.getValidTime());
        }
        //仅支持替换  保证加减保日期为同一天
        if(Constants.equalsInteger(solutions.getDelOnlyReplace(),Constants.ONE)){
            applyChange.setApplyStartTime(
                    applyChange.getDelValidTime()
            );
        }
    }
    public BigDecimal dealApplyChangeData(ApplyChange applyChange,InsuranceApply insuranceApply
            ,CompanySolution companySolution,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal fee){