From bf15135228cbb9ac186cc8cc39e9da32d3f1d90f Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 19 六月 2024 15:51:19 +0800
Subject: [PATCH] 提交一把
---
company/src/components/enterprise/importEmployees.vue | 99 ++++++
company/src/api/business/member.js | 4
company/src/components/enterprise/additionSubtractionApplication.vue | 20
company/src/components/business/OperaWtbApplyShopWindow.vue | 20 +
company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue | 56 +--
company/src/components/business/OperaInsuranceApplyWindow.vue | 22 +
company/src/components/enterprise/addEmployeeWithDu.vue | 195 +++++++++++++
company/src/views/enterprise/myPolicy.vue | 13
server/company/src/main/java/com/doumee/api/business/MemberController.java | 10
server/service/src/main/java/com/doumee/dao/business/dto/MemberReduceImport.java | 52 +++
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 267 +++++++++++++-----
company/public/template/personnel_reduce.xlsx | 0
server/service/src/main/java/com/doumee/dao/business/dto/MemberImport.java | 15
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 14
company/src/assets/style/style.scss | 14 +
company/src/views/enterprise/insuranceApply.vue | 13
server/service/src/main/java/com/doumee/service/business/MemberService.java | 2
server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java | 11
18 files changed, 674 insertions(+), 153 deletions(-)
diff --git a/company/public/template/personnel_reduce.xlsx b/company/public/template/personnel_reduce.xlsx
new file mode 100644
index 0000000..cce2001
--- /dev/null
+++ b/company/public/template/personnel_reduce.xlsx
Binary files differ
diff --git a/company/src/api/business/member.js b/company/src/api/business/member.js
index 1a50806..e61cad0 100644
--- a/company/src/api/business/member.js
+++ b/company/src/api/business/member.js
@@ -21,6 +21,10 @@
export function importExcel (data) {
return request.post('/business/member/importExcel', data)
}
+// 瀵煎叆妯℃澘
+export function importReuduceExcel (data) {
+ return request.post('/business/member/importReuduceExcel', data)
+}
// 鍒楄〃鏌ヨ
export function findList (data) {
diff --git a/company/src/assets/style/style.scss b/company/src/assets/style/style.scss
index 9c7344c..620ff86 100644
--- a/company/src/assets/style/style.scss
+++ b/company/src/assets/style/style.scss
@@ -101,6 +101,20 @@
.du-status2 {
color: #F95601 !important;
}
+
+.tip-warn {
+ margin: 4px 0 25px 0;
+ font-size: 12px;
+ color: #999;
+ line-height: 25px;
+ i {
+ color: orange;
+ margin-right: 4px;
+ font-size: 14px;
+ position: relative;
+ top: 1px;
+ }
+}
.union-change-status2,
.apply-status5,.apply-status27,.settle-status7,.change-status2,
.tax-status1,.du-status1,.settle-status4 ,.union-apply-status3 {
diff --git a/company/src/components/business/OperaInsuranceApplyWindow.vue b/company/src/components/business/OperaInsuranceApplyWindow.vue
index 46c2341..543a23e 100644
--- a/company/src/components/business/OperaInsuranceApplyWindow.vue
+++ b/company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -11,7 +11,7 @@
<div class="desc_item_label" v-if="userInfo.type === 1 &&(model.statusCollect === 2 || model.statusCollect === 3)">
<div class="desc_item_label_left">
<span>淇濋櫓鍒版湡杩樻湁 <b style="color: #F95601;">{{model.loseEfficacyDays ? model.loseEfficacyDays : '-'}}</b> 澶�</span>
- <el-button type="primary" v-if="model.statusCollect === 2 || model.statusCollect === 3" @click="$refs.OperaInsuranceApplyAddWindow.open('缁繚', {id: dataId,type: 1 })">涓�閿画淇�</el-button>
+ <el-button type="primary" v-if="model.statusCollect === 2 || model.statusCollect === 3" @click="goYjxb">涓�閿画淇�</el-button>
<el-button type="primary" v-if="model.statusCollect === 2" @click="$refs.additionSubtractionApplication.open('鍔犲噺淇濈敵璇�', { id: dataId })">鍔犲噺淇濈敵璇�</el-button>
<el-button type="primary" v-if="model.statusCollect === 2" @click="$refs.factoryChange.open('鏇存崲娲鹃仯鍗曚綅鐢宠', { id: dataId })">鏇存崲娲鹃仯鍗曚綅鐢宠</el-button>
</div>
@@ -29,7 +29,7 @@
<!-- $refs.operaverifyPhoneNumberWindew.open('楠岃瘉鎵嬫満鍙�')-->
<el-button v-if="model.status == 2" type="primary" :disabled="loading" :loading="loading" @click="goSign()">绛剧讲鎶曚繚鍗�</el-button>
<el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
- <el-button v-if="model.status == 4" type="primary" @click="$refs.OperaInsuranceApplyAddWindow.open('鎶曚繚鐢宠', {id: dataId})">鍐嶆鎶曚繚</el-button>
+ <el-button v-if="model.status == 4" type="primary" @click="$refs.operaInsuranceApplyAddWindow.open('鎶曚繚鐢宠', {id: dataId})">鍐嶆鎶曚繚</el-button>
<el-button v-if="[0, 2, 3, 10].includes(model.status)" type="danger" @click="$refs.applyReturn.open('鐢宠閫�鍥�', {id: dataId})">鐢宠閫�鍥�</el-button>
<el-button v-if="model.status == 4" type="primary" @click="closeOrder">鍏抽棴璁㈠崟</el-button>
</template>
@@ -455,7 +455,7 @@
<!-- 浼佷笟鐢宠閫�鍥� -->
<applyReturn ref="applyReturn" @success="successEvent" />
<!-- 鏂板鎶曚繚 -->
- <OperaInsuranceApplyAddWindow ref="OperaInsuranceApplyAddWindow" @success="successEvent" />
+ <OperaInsuranceApplyAddWindow ref="operaInsuranceApplyAddWindow" @success="result" />
<!-- 鍔犲噺淇濈敵璇� -->
<additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
<!-- 鏇存崲娲鹃仯鍗曚綅鐢宠 -->
@@ -485,13 +485,12 @@
import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
import applyReturn from '@/components/enterprise/applyReturn'
-import { getDetail, getSignLink, applyDetailPage, applyChagneDetailPage, exportExcel, applyChagneDetailExcel, applyOpt } from '@/api/business/insuranceApply'
+import { getDetail, getSignLink, applyDetailPage, exportExcel, applyChagneDetailExcel, applyOpt } from '@/api/business/insuranceApply'
import { findListByDTO } from '@/api/business/dispatchUnit'
import { fetchList } from '@/api/business/applyChange'
import { findListByDTO as worktypeFindListByDTO } from '@/api/business/worktype'
import OperaInsuranceApplyAddWindow from '@/components/enterprise/OperaInsuranceApplyAddWindow'
import { mapState } from 'vuex'
-
import OperaPdfViewerWindow from '@/components/business/OperaPdfViewerWindow'
export default {
name: 'OperaInsuranceApplyWindow1',
@@ -502,11 +501,11 @@
InsuranceDetails,
OperaInsuranceApplyCheckWindow,
applyReturn,
- OperaInsuranceApplyAddWindow,
additionSubtractionApplication,
factoryChange,
OperaApplyChangeDetailWindow,
OperaApplyChangeUnitDetailWindow,
+ OperaInsuranceApplyAddWindow,
operaverifyPhoneNumberWindew
},
data () {
@@ -587,6 +586,17 @@
this.getDW()
this.getGZ()
},
+ result(flag,param){
+ console.log(flag,param)
+ if(param && param.godetail && param.id){
+ this.open('濮旀墭淇濊鎯�',{id:param.id})
+ }else{
+ this.successEvent()
+ }
+ },
+ goYjxb(){
+ this.$refs.operaInsuranceApplyAddWindow.open('缁繚', {id: this.dataId,type: 1 })
+ },
// 鍏抽棴璁㈠崟
closeOrder () {
this.$confirm('纭鍏抽棴姝よ鍗曞悧?', '鎻愮ず', {
diff --git a/company/src/components/business/OperaWtbApplyShopWindow.vue b/company/src/components/business/OperaWtbApplyShopWindow.vue
index a1b815a..fac86e0 100644
--- a/company/src/components/business/OperaWtbApplyShopWindow.vue
+++ b/company/src/components/business/OperaWtbApplyShopWindow.vue
@@ -11,7 +11,7 @@
<div class="desc_item_label" v-if="userInfo.type === 1 && model.status ===27 ">
<div class="desc_item_label_left">
<span>淇濋櫓鍒版湡杩樻湁 <b style="color: #F95601;">{{model.loseEfficacyDays ? model.loseEfficacyDays : '-'}}</b> 澶�</span>
- <el-button type="primary" v-if="model.status === 27" @click="$refs.OperaInsuranceApplyAddWindow.open('缁繚', {id: dataId,type: 1 })">涓�閿画淇�</el-button>
+ <el-button type="primary" v-if="model.status === 27" @click="goYjxb">涓�閿画淇�</el-button>
<el-button type="primary" v-if="model.status === 27 && ( model.loseEfficacyDays ||!model.loseEfficacyDays)" @click="$refs.additionSubtractionApplication.open('鍔犲噺淇濈敵璇�', { id: dataId })">鍔犲噺淇濈敵璇�</el-button>
<el-button type="primary" v-if="model.status === 27 && ( model.loseEfficacyDays ||!model.loseEfficacyDays)" @click="$refs.factoryChange.open('鏇存崲娲鹃仯鍗曚綅鐢宠', { id: dataId })">鏇存崲娲鹃仯鍗曚綅鐢宠</el-button>
</div>
@@ -461,7 +461,7 @@
<!-- 浼佷笟鐢宠閫�鍥� -->
<applyReturn ref="applyReturn" @success="successEvent" />
<!-- 鏂板鎶曚繚 -->
- <OperaInsuranceApplyAddWindowNew ref="OperaInsuranceApplyAddWindow" @success="successEvent" />
+ <OperaInsuranceApplyAddWindowNew ref="OperaInsuranceApplyAddWindow" @success="result" />
<!-- 鍔犲噺淇濈敵璇� -->
<additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
<!-- 鏇存崲娲鹃仯鍗曚綅鐢宠 -->
@@ -505,10 +505,9 @@
</el-dialog>
</GlobalWindow>
</template>
-
<script>
import BaseOpera from '@/components/base/BaseOpera'
-import OperaInsuranceApplyAddWindowNew from '@/components/enterprise/OperaInsuranceApplyAddWindowNew'
+import OperaInsuranceApplyAddWindowNew from '@/components/enterprise/OperaInsuranceApplyAddWindow'
import GlobalWindow from '@/components/common/GlobalWindow'
import InsuranceDetails from '@/components/business/InsuranceDetails'
import OperaWtbApplyCheckWindow from '@/components/business/OperaWtbApplyCheckWindow'
@@ -532,7 +531,7 @@
import { fetchList } from '@/api/business/applyChange'
import { findListByDTO as worktypeFindListByDTO } from '@/api/business/worktype'
import { mapState } from 'vuex'
-import {sendSms} from "@/api/business/smsEmail";
+import {sendSms} from '@/api/business/smsEmail';
export default {
name: 'OperaWtbApplyShopWindow',
@@ -906,6 +905,9 @@
this.$tip.apiFailed(err)
})
},
+ goYjxb(){
+ this.$refs.OperaInsuranceApplyAddWindow.open('缁繚', {id: this.dataId,type: 1 })
+ },
viewToubaodan () {
if (this.model.toubaodanSignedFile && this.model.toubaodanSignedFile.fileurlFull) {
setTimeout(() => {
@@ -960,6 +962,14 @@
}).catch(err => {
})
},
+ result(flag,param){
+ console.log(flag,param)
+ if(param && param.godetail && param.id){
+ this.open('濮旀墭淇濊鎯�',{id:param.id})
+ }else{
+ this.successEvent()
+ }
+ },
successEvent () {
// this.visible=false
this.getDetail()
diff --git a/company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue b/company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue
index 7e8a4ab..15fb687 100644
--- a/company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue
+++ b/company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue
@@ -168,10 +168,10 @@
<confirmJobType ref="confirmJobType" @result="getUser" />
<!-- 鏌ョ湅璇﹀崟 -->
<detailsPolicyholder ref="detailsPolicyholder" @success="successEvent" />
- <!-- 鐩翠繚鎶曚繚璇︽儏 -->
+<!-- <!– 鐩翠繚鎶曚繚璇︽儏 –>
<OperaInsuranceApplyDetails ref="OperaInsuranceApplyDetails" />
- <!-- 濮旀墭鎶曚繚璇︽儏 -->
- <OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" />
+ <!– 濮旀墭鎶曚繚璇︽儏 –>
+ <OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" />-->
</GlobalWindow>
</template>
@@ -179,28 +179,30 @@
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 addEmployee from '@/components/enterprise/addEmployeeWithDu'
import importEmployees from '@/components/enterprise/importEmployees'
import confirmJobType from '@/components/enterprise/confirmJobType'
import detailsPolicyholder from '@/components/business/detailsPolicyholder'
-import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow'
-import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow'
import { all, getNewVersion } from '@/api/business/solutions'
import { mapState } from 'vuex'
-import { create, getCountCyclePriceVO, getDetail, findList, updateData } from '@/api/business/insuranceApply'
+import { create, getCountCyclePriceVO, getDetail, findList } from '@/api/business/insuranceApply'
import { UTable, UTableColumn } from 'umy-ui'
-// Vue.component(UTable.name, UTable);
-// Vue.component(UTableColumn.name, UTableColumn);
export default {
name: 'OperaInsuranceApplyAddWindowNew',
extends: BaseOpera,
components: {
- GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, detailsPolicyholder, UTable, UTableColumn
- , OperaWtbApplyShopWindow, OperaInsuranceApplyDetails
+ GlobalWindow,
+ selectEmployees,
+ addEmployee,
+ importEmployees,
+ confirmJobType,
+ detailsPolicyholder,
+ UTable,
+ UTableColumn
},
data () {
return {
- sumFee:0,
+ sumFee: 0,
form: {
id: null,
ID: null,
@@ -240,7 +242,7 @@
// 鐩戝惉tableData鐨勫彉鍖�
tableData: {
deep: true,
- handler(newVal, oldVal) {
+ handler (newVal, oldVal) {
// 鏁版嵁鍙樺寲鏃剁殑澶勭悊閫昏緫
this.getSummaries2()
console.log(this.tableData.length)
@@ -262,15 +264,9 @@
solutionId: this.form.solutionId
}).then(res => {
console.log(res)
- this.visible = false
- if (this.item.type == 1) {
- this.$emit('success', 1, { id: res })
- this.$refs.OperaWtbApplyShopWindow.open('濮旀墭鎶曚繚璇︽儏', { id: res })
- } else {
- this.$emit('success', 1, { id: res })
- this.$refs.OperaInsuranceApplyDetails.open('鎶曚繚璇︽儏', { id: res })
- }
+ this.$emit('success', 1, { id: res,godetail:true,type:this.item.type})
this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+ this.visible = false
// this.$emit('success','濮旀墭鎶曚繚璇︽儏', { id: res })
})
.catch(e => {
@@ -364,7 +360,7 @@
})
sums[index] = total.toFixed(2)
// }
- }else {
+ } else {
sums[index] = ''
}
})
@@ -372,8 +368,8 @@
return sums
},
getSummaries2 () {
- this.sumFee = 0;
- if(this.tableData&&this.tableData.length){
+ this.sumFee = 0
+ if (this.tableData && this.tableData.length) {
this.tableData.forEach((column, index) => {
this.sumFee = parseFloat(this.sumFee) + parseFloat(column.fee)
})
@@ -412,9 +408,9 @@
let price = 0
// if (this.item && this.item.type != 1) {
- this.tableData.forEach(item => {
- price = price + item.fee
- })
+ this.tableData.forEach(item => {
+ price = price + item.fee
+ })
// }
this.$refs.detailsPolicyholder.open('鎶曚繚璇︽儏鍗�', {
companyName: this.userInfo.company.name,
@@ -481,7 +477,7 @@
this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
return
}
- this.$refs.addEmployee.open('娣诲姞鍛樺伐', { arr: this.tableData, price: this.price })
+ this.$refs.addEmployee.open('娣诲姞鍛樺伐', { arr: this.tableData, price: this.price, solutionId: this.form.solutionId })
},
uploadUser () {
if (!this.form.solutionId) {
@@ -492,7 +488,7 @@
},
// 鍒囨崲鏂规
changeSolution (e) {
- this.sumFee =0;
+ this.sumFee = 0
this.form.applyEndTime = ''
this.form.applyStartTime = ''
if (!this.form.id) {
@@ -536,7 +532,7 @@
})
this.tableData.forEach(item => {
// if (this.item.type != 0) {
- item.fee = this.price
+ item.fee = this.price
// }
})
},
diff --git a/company/src/components/enterprise/addEmployeeWithDu.vue b/company/src/components/enterprise/addEmployeeWithDu.vue
new file mode 100644
index 0000000..e181877
--- /dev/null
+++ b/company/src/components/enterprise/addEmployeeWithDu.vue
@@ -0,0 +1,195 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <el-form :inline="true" class="demo-form-inline">
+ <div v-for="(item, index) in list" :key="index">
+ <el-form-item label="濮撳悕" required>
+ <el-input v-model="item.memberName" placeholder="璇疯緭鍏�"></el-input>
+ </el-form-item>
+ <el-form-item label="韬唤璇佸彿" required>
+ <el-input v-model="item.idCard" maxlength="18" placeholder="璇疯緭鍏�"></el-input>
+ </el-form-item>
+ <el-form-item label="娲鹃仯鍗曚綅" >
+ <el-select v-model="item.duId" @change="selectChange(index)" placeholder="璇烽�夋嫨" clearable>
+ <el-option
+ v-for="item in dispatching"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎵�灞炲伐绉�" >
+ <el-select v-model="item.worktypeId" @change="selectChangeWT(index)" placeholder="璇烽�夋嫨" clearable>
+ <el-option
+ v-for="item1 in item.options"
+ :key="item1.id"
+ :label="item1.name"
+ :value="item1.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" v-if="index === 0" @click="add">娣诲姞</el-button>
+ <el-button type="danger" v-else @click="dele(index)">鍒犻櫎</el-button>
+ </el-form-item>
+ </div>
+ </el-form>
+ </GlobalWindow>
+</template>
+
+<script>
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { findListByDTO } from '@/api/business/dispatchUnit'
+import { findListByDTO as worktype } from '@/api/business/worktype'
+export default {
+ name: 'addEmployee',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ tempIndex: -1,
+ dispatching: [],
+ solutionId: null,
+ list: [
+ {
+ memberName: '',
+ idCard: '',
+ workTypeName: '',
+ worktypeId: '',
+ duName: '',
+ options: [],
+ duId: '',
+ fee: ''
+ }
+ ],
+ price: 0,
+ arr: []
+ }
+ },
+ methods: {
+ open (title, obj, tempIndex) {
+ this.title = title
+ this.visible = true
+ this.tempIndex = tempIndex
+ this.solutionId = obj.solutionId
+ this.list = [
+ {
+ memberName: '',
+ idCard: '',
+ workTypeName: '',
+ worktypeId: '',
+ duName: '',
+ options: [],
+ duId: '',
+ fee: ''
+ }
+ ]
+ this.arr = obj.arr
+ this.price = obj.price
+ this.getFindListByDTO()
+ },
+ getFindListByDTO () {
+ findListByDTO({
+ solutionId: this.solutionId
+ // dataType: 0
+ }).then(res => {
+ this.dispatching = res
+ })
+ },
+ selectChange (index) {
+ this.list[index].options = []
+ let duSolutionId = ''
+ this.list[index].duName = null
+ this.dispatching.forEach(item => {
+ if (item.id === this.list[index].duId) {
+ duSolutionId = item.duSolutionId
+ this.list[index].duName = item.name
+ }
+ })
+ worktype({ id: duSolutionId, queryType: 1 })
+ .then(res => {
+ this.list[index].options = res
+ })
+ },
+ selectChangeWT (index) {
+ this.list[index].workTypeName =null
+ this.list[index].options.forEach(item => {
+ if (item.id === this.list[index].worktypeId) {
+ this.list[index].workTypeName = item.name
+ }
+ })
+ },
+ add () {
+ this.list.push({
+ memberName: '',
+ idCard: '',
+ workTypeName: '',
+ worktypeId: '',
+ duName: '',
+ duId: '',
+ options: [],
+ fee: '',
+ id: this.tempIndex - 1
+ })
+ },
+ dele (index) {
+ this.list.splice(index, 1)
+ },
+ hasDuplicates (arr) {
+ return arr.some((value, index) => arr.indexOf(value) !== index)
+ },
+ confirm () {
+ // 鍒ゆ柇鍒楄〃鍚︽槸鏈夌┖鍊�
+ // for (let i = 0; this.list.length; i++) {
+ // if (!this.list[i].memberName || !this.list[i].idCard) {
+ // this.$message.warning('璇峰厛瀹屽杽淇℃伅鍚庡啀鎻愪氦')
+ // return
+ // }
+ // }
+ // 鍒ゆ柇鏂板綍鍏ユ暟鎹韩浠借瘉鏄惁鏈夐噸澶�
+ const idcardList = this.list.map(item => item.idCard)
+ if (this.hasDuplicates(idcardList)) {
+ this.$message.warning('韬唤璇佹湁閲嶅')
+ return
+ }
+ // 鍒ゆ柇韬唤璇佹槸鍚︽湁鏁�
+ for (let i = 0; i < this.list.length; i++) {
+ const regExp = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
+ if (!regExp.test(this.list[i].idCard)) {
+ this.$message.warning(`绗�${i + 1}椤瑰憳宸ヨ韩浠借瘉涓嶅悎娉昤)
+ return
+ }
+ }
+ // 鍒ゆ柇璇︽儏鍒楄〃鏁版嵁韬唤璇佹槸鍚︽湁閲嶅
+ let next = true
+ this.list.forEach(item => {
+ this.arr.forEach(child => {
+ if (item.idCard === child.idCard) {
+ next = false
+ }
+ })
+ })
+ if (next) {
+ this.list.forEach(item => {
+ item.fee = this.price
+ })
+ this.$emit('result', this.list)
+ this.visible = false
+ } else {
+ this.$message.warning('韬唤璇佸彿涓嶈兘閲嶅锛�')
+ }
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>
diff --git a/company/src/components/enterprise/additionSubtractionApplication.vue b/company/src/components/enterprise/additionSubtractionApplication.vue
index 39ca24b..f382fa1 100644
--- a/company/src/components/enterprise/additionSubtractionApplication.vue
+++ b/company/src/components/enterprise/additionSubtractionApplication.vue
@@ -101,7 +101,7 @@
<div class="btns">
<div class="btns_item">
<el-button type="primary" @click="seleUser">閫夊彇鍛樺伐</el-button>
- <el-button type="primary" @click="uploadUser" v-if="activeName !== '1'">瀵煎叆鍛樺伐</el-button>
+ <el-button type="primary" @click="uploadUser">瀵煎叆鍛樺伐</el-button>
<el-button type="primary" @click="addUser" v-if="activeName !== '1'">娣诲姞鍛樺伐</el-button>
<el-button type="danger" @click="deleItem">鍒犻櫎</el-button>
</div>
@@ -350,14 +350,14 @@
let total = 0
if (this.activeName === '0') {
this.form.addDetailList.forEach(item => {
- total += item.fee
+ total += item.fee || 0
})
- sums[index] = total.toFixed(2)
+ sums[index] = (total || 0).toFixed(2)
} else {
this.form.delDetailList.forEach(item => {
total += item.reducePrice
})
- sums[index] = total.toFixed(2)
+ sums[index] = (total || 0).toFixed(2)
}
}
})
@@ -485,9 +485,9 @@
return
}*/
if (this.activeName === '0') {
- this.$refs.selectEmployees.open('閫夊彇鍛樺伐', { arr: this.form.addDetailList, price: this.price, notInInsuranceApplyId: this.form.id, validTime: this.form.applyStartTime })
+ this.$refs.selectEmployees.open('閫夊彇鍔犱繚鍛樺伐', { arr: this.form.addDetailList, price: this.price, notInInsuranceApplyId: this.form.id, validTime: this.form.applyStartTime })
} else {
- this.$refs.selectEmployees.open('閫夊彇鍛樺伐', { arr: this.form.delDetailList, price: this.reducePrice, insuranceApplyId: this.form.id, validTime: this.form.applyStartTime })
+ this.$refs.selectEmployees.open('閫夊彇鍑忎繚鍛樺伐', { arr: this.form.delDetailList, price: this.reducePrice, insuranceApplyId: this.form.id, validTime: this.form.applyStartTime })
}
},
addUser () {
@@ -496,9 +496,9 @@
return
}
if (this.activeName === '0') {
- this.$refs.addEmployee.open('娣诲姞鍛樺伐', { arr: this.form.addDetailList, price: this.price })
+ this.$refs.addEmployee.open('娣诲姞鍔犱繚鍛樺伐', { arr: this.form.addDetailList, price: this.price })
} else {
- this.$refs.addEmployee.open('娣诲姞鍛樺伐', { arr: this.form.delDetailList, price: this.reducePrice })
+ this.$refs.addEmployee.open('娣诲姞鍑忎繚鍛樺伐', { arr: this.form.delDetailList, price: this.reducePrice })
}
},
uploadUser () {
@@ -507,9 +507,9 @@
return
}
if (this.activeName === '0') {
- this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.form.addDetailList, price: this.price, solutionId: this.form.solutionId })
+ this.$refs.importEmployees.open('鍔犱繚鍛樺伐鍚嶅崟', { arr: this.form.addDetailList,type:1, price: this.price, solutionId: this.form.solutionId })
} else {
- this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.form.delDetailList, price: this.reducePrice, solutionId: this.form.solutionId })
+ this.$refs.importEmployees.open('鍑忎繚鍛樺伐鍚嶅崟', { arr: this.form.delDetailList,type:0, price: this.reducePrice, solutionId: this.form.solutionId,insuranceApplyId: this.form.id })
}
},
// 鍒囨崲鏂规
diff --git a/company/src/components/enterprise/importEmployees.vue b/company/src/components/enterprise/importEmployees.vue
index 9aa8d16..45550ff 100644
--- a/company/src/components/enterprise/importEmployees.vue
+++ b/company/src/components/enterprise/importEmployees.vue
@@ -6,6 +6,12 @@
:confirm-working="isWorking"
@confirm="confirm"
>
+ <p class="tip-warn" v-if="type ==1"><i class="el-icon-warning"></i>鎻愰啋锛�<br>
+ <span style="">鍔犱繚浜哄憳鍚嶅崟涓紝浜哄憳濮撳悕銆佽韩浠借瘉鍙枫�佹淳閬e崟浣嶅拰宸ョ淇℃伅鍧囦负蹇呭~椤癸紝澶囨敞淇℃伅鍙负绌猴紝璇峰綍鍏ュ悎娉曟暟鎹��</span>
+ </p>
+ <p class="tip-warn" v-if="type !=1"><i class="el-icon-warning"></i>鎻愰啋锛�<br>
+ <span style="">鍑忎繚浜哄憳鍚嶅崟涓紝浜哄憳濮撳悕銆佽韩浠借瘉鍙峰潎涓哄繀濉」锛屽娉ㄤ俊鎭彲涓虹┖锛岃褰曞叆鍚堟硶鏁版嵁銆�</span>
+ </p>
<el-form class="demo-form-inline">
<el-form-item label="涓婁紶鍚嶅崟" required>
<div style="width: 100%;display: flex;align-items: center;">
@@ -26,7 +32,7 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
-import { importExcel } from '@/api/business/member'
+import { importExcel,importReuduceExcel } from '@/api/business/member'
export default {
name: 'importEmployees',
extends: BaseOpera,
@@ -39,7 +45,9 @@
price: 0,
type: null,
solutionId: null,
+ applyId: null,
addList: [],
+ delList: [],
fileName: ''
}
},
@@ -47,24 +55,24 @@
open (title, obj) {
this.title = title
this.addList = []
+ this.delList = []
this.fileName = ''
this.type = obj.type
this.visible = true
this.solutionId = obj.solutionId
+ this.applyId = obj.insuranceApplyId
this.list = obj.arr
this.price = obj.price
- this.importing=false
- this.confirming=false
+ this.importing= false
+ this.confirming= false
},
// 瀵煎嚭妯℃澘
exportTemplate () {
// 鎶曚繚鐢宠
if (this.type === 1) {
window.open('/template/personnel_add.xlsx')
- // window.open(process.env.VUE_APP_MEMBER1_URL)
} else {
- window.open('/template/personnel_add.xlsx')
- // window.open(process.env.VUE_APP_MEMBER_URL)
+ window.open('/template/personnel_reduce.xlsx')
}
},
clickRef () {
@@ -74,7 +82,15 @@
this.importing=true
this.$refs.fileExcel.click()
},
- result (e) {
+ result(e){
+ if (this.type === 1) {
+ this.result1(e)
+ } else {
+ this.result2(e)
+ }
+ },
+ result1 (e) {
+ this.addList = []
const data = new FormData()
data.append('file', e.target.files[0])
data.append('solutionId', this.solutionId)
@@ -98,10 +114,41 @@
this.$refs.fileExcel.value = null
})
},
+ result2 (e) {
+ this.delList = []
+ const data = new FormData()
+ data.append('file', e.target.files[0])
+ data.append('applyId', this.applyId)
+ importReuduceExcel(data)
+ .then(res => {
+ res.forEach(item => {
+ item.memberName = item.name
+ })
+ this.delList = res
+ this.fileName = e.target.files[0].name
+ this.importing =false
+ })
+ .catch(err => {
+ this.importing = false
+ this.$message.error(err)
+ this.fileName = ''
+ })
+ .finally(() => {
+ this.importing =false
+ this.$refs.fileExcel.value = null
+ })
+ },
confirm () {
+ if (this.type === 1) {
+ this.confirm1()
+ } else {
+ this.confirm2()
+ }
+ },
+ confirm1 () {
if(this.addList==null || this.addList.length ==0){
this.$message.error('瀵煎叆浜哄憳鍚嶅崟涓虹┖锛岃鍏堜笂浼犱汉鍛樺悕鍗�')
- return;
+ return
}
if(this.confirming){
return
@@ -110,7 +157,13 @@
for (let i = 0; i < this.addList.length; i++) {
for (let a = 0; a < this.list.length; a++) {
if (this.addList[i].idCard === this.list[a].idcardNo) {
- this.$message.warning(`[${this.addList[i].name}]鍛樺伐閲嶅`)
+ this.$message.warning(`銆�${this.addList[i].name}銆戝憳宸ヨ韩浠借瘉銆�${this.addList[i].idCard}銆戦噸澶峘)
+ this.confirming = false
+ return
+ }
+ if (this.addList[i].idCard === this.list[a].idCard) {
+ this.$message.warning(`銆�${this.addList[i].name}銆戝憳宸ヨ韩浠借瘉銆�${this.addList[i].idCard}銆戦噸澶峘)
+ this.confirming = false
return
}
}
@@ -118,10 +171,34 @@
this.addList.forEach(item => {
item.fee = this.price
})
-
- // this.confirming = false
this.visible = false
this.$emit('result', this.addList)
+ },
+ confirm2() {
+ if(this.delList==null || this.delList.length ==0){
+ this.$message.error('瀵煎叆浜哄憳鍚嶅崟涓虹┖锛岃鍏堜笂浼犱汉鍛樺悕鍗�')
+ return
+ }
+ if(this.confirming){
+ return
+ }
+ this.confirming = true
+ for (let i = 0; i < this.delList.length; i++) {
+ for (let a = 0; a < this.list.length; a++) {
+ if (this.delList[i].idCard === this.list[a].idcardNo) {
+ this.$message.warning(`銆�${this.delList[i].name}銆戝憳宸ヨ韩浠借瘉銆�${this.delList[i].idCard}銆戦噸澶峘)
+ this.confirming = false
+ return
+ }
+ if (this.delList[i].idCard === this.list[a].idCard) {
+ this.$message.warning(`銆�${this.delList[i].name}銆戝憳宸ヨ韩浠借瘉銆�${this.delList[i].idCard}銆戦噸澶峘)
+ this.confirming = false
+ return
+ }
+ }
+ }
+ this.visible = false
+ this.$emit('result', this.delList)
}
}
}
diff --git a/company/src/views/enterprise/insuranceApply.vue b/company/src/views/enterprise/insuranceApply.vue
index 3db129b..b35060d 100644
--- a/company/src/views/enterprise/insuranceApply.vue
+++ b/company/src/views/enterprise/insuranceApply.vue
@@ -107,7 +107,7 @@
</pagination>
</template>
<!-- 鏂板鎶曚繚 -->
- <OperaInsuranceApplyAddWindow ref="OperaInsuranceApplyAddWindow" @success="handlePageChange" />
+ <OperaInsuranceApplyAddWindow ref="OperaInsuranceApplyAddWindow" @success="result" />
<OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" @success="handlePageChange" />
<!-- 鎶曚繚璇︽儏 -->
<OperaInsuranceApplyDetails ref="OperaInsuranceApplyDetails" @success="handlePageChange" />
@@ -155,6 +155,17 @@
this.$refs.searchForm.resetFields()
this.search()
},
+ result(flag,param){
+ console.log(flag,param)
+ if(param && param.godetail && param.id){
+ if (param.type == 1) {
+ this.$refs.OperaWtbApplyShopWindow.open('濮旀墭鎶曚繚璇︽儏', { id: param.id })
+ } else {
+ this.$refs.OperaInsuranceApplyDetails.open('鎶曚繚璇︽儏', { id: param.id })
+ }
+ }
+ this.handlePageChange()
+ },
godetail (row) {
if (row.solutionType == 1) {
this.$refs.OperaWtbApplyShopWindow.open('濮旀墭鎶曚繚璇︽儏', { id: row.id })
diff --git a/company/src/views/enterprise/myPolicy.vue b/company/src/views/enterprise/myPolicy.vue
index 91636c2..c268ab0 100644
--- a/company/src/views/enterprise/myPolicy.vue
+++ b/company/src/views/enterprise/myPolicy.vue
@@ -141,7 +141,7 @@
</pagination>
</template>
<!-- 鏂板鎶曚繚 -->
- <OperaInsuranceApplyWindow ref="OperaInsuranceApplyWindow" @success="handlePageChange" />
+ <OperaInsuranceApplyWindow ref="OperaInsuranceApplyWindow" @success="result" />
<!-- 鎶曚繚璇︽儏 -->
<OperaInsuranceApplyDetails ref="OperaInsuranceApplyDetails" @success="handlePageChange" />
<OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" @success="handlePageChange" />
@@ -215,6 +215,17 @@
this.$refs.OperaInsuranceApplyDetails.open('鎶曚繚璇︽儏', { id: row.id })
}
},
+ result(flag,param){
+ console.log(flag,param)
+ if(param && param.godetail && param.id){
+ if (param.type == 1) {
+ this.$refs.OperaWtbApplyShopWindow.open('濮旀墭鎶曚繚璇︽儏', { id: param.id })
+ } else {
+ this.$refs.OperaInsuranceApplyDetails.open('鎶曚繚璇︽儏', { id: param.id })
+ }
+ }
+ this.handlePageChange()
+ },
see () {
this.searchForm.statusCollect = '7'
this.search()
diff --git a/server/company/src/main/java/com/doumee/api/business/MemberController.java b/server/company/src/main/java/com/doumee/api/business/MemberController.java
index e617ad0..fa86c20 100644
--- a/server/company/src/main/java/com/doumee/api/business/MemberController.java
+++ b/server/company/src/main/java/com/doumee/api/business/MemberController.java
@@ -10,6 +10,7 @@
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.dto.MemberImport;
import com.doumee.dao.business.dto.MemberQueryDTO;
+import com.doumee.dao.business.dto.MemberReduceImport;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.MemberInsurance;
import com.doumee.service.business.MemberService;
@@ -124,5 +125,14 @@
public ApiResponse<List<MemberImport>> importExcel (@ApiParam(value = "file") MultipartFile file,Integer solutionId) {
return ApiResponse.success(memberService.importBatch(file,solutionId));
}
+ @ApiOperation(value = "浜哄憳鍑忎繚淇℃伅瀵煎叆" ,notes = "淇濆崟鐢宠")
+ @PostMapping("/importReuduceExcel")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class),
+ })
+ @RequiresPermissions("business:member:importExcel")
+ public ApiResponse<List<MemberReduceImport>> importReuduceExcel (@ApiParam(value = "file") MultipartFile file, Integer applyId) {
+ return ApiResponse.success(memberService.importReduceBatch(file,applyId));
+ }
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/MemberImport.java b/server/service/src/main/java/com/doumee/dao/business/dto/MemberImport.java
index 4e56900..30cf01e 100644
--- a/server/service/src/main/java/com/doumee/dao/business/dto/MemberImport.java
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/MemberImport.java
@@ -6,6 +6,8 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.math.BigDecimal;
+
/**
* 鍛樺伐淇℃伅瀵煎叆琛�
* @author 姹熻箘韫�
@@ -15,22 +17,22 @@
@ApiModel("鍛樺伐淇℃伅瀵煎叆")
public class MemberImport {
- @ExcelColumn(name="搴忓彿",value = "sn" )
+ @ExcelColumn(name="搴忓彿",value = "sn" ,index = 1)
private Integer sn;
- @ExcelColumn(name="濮撳悕",value = "name" )
+ @ExcelColumn(name="濮撳悕",value = "name" ,index = 2)
private String name;
- @ExcelColumn(name="韬唤璇佸彿",value = "idCard" )
+ @ExcelColumn(name="韬唤璇佸彿",value = "idCard" ,index = 3)
private String idCard;
- @ExcelColumn(name="娲鹃仯鍗曚綅" , value = "duName")
+ @ExcelColumn(name="娲鹃仯鍗曚綅" , value = "duName" ,index = 4)
private String duName;
- @ExcelColumn(name="宸ョ" , value = "workTypeName")
+ @ExcelColumn(name="宸ョ" , value = "workTypeName" ,index = 5)
private String workTypeName;
- @ExcelColumn(name="澶囨敞",value = "澶囨敞")
+ @ExcelColumn(name="澶囨敞",value = "澶囨敞" ,index = 6)
private String remark;
@ApiModelProperty(name="骞撮緞",value = "age")
@@ -45,4 +47,5 @@
@ApiModelProperty(value = "鎵�灞炲伐绉嶄富閿�")
private Integer worktypeId;
+
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/dto/MemberReduceImport.java b/server/service/src/main/java/com/doumee/dao/business/dto/MemberReduceImport.java
new file mode 100644
index 0000000..f123bef
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/dto/MemberReduceImport.java
@@ -0,0 +1,52 @@
+package com.doumee.dao.business.dto;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 鍛樺伐淇℃伅瀵煎叆琛�
+ * @author 姹熻箘韫�
+ * @date 2024/01/16 10:03
+ */
+@Data
+@ApiModel("鍛樺伐淇℃伅瀵煎叆")
+public class MemberReduceImport {
+
+ @ExcelColumn(name="搴忓彿",value = "sn" ,index = 1)
+ private Integer sn;
+
+ @ExcelColumn(name="濮撳悕",value = "name" ,index = 2)
+ private String name;
+
+ @ExcelColumn(name="韬唤璇佸彿",value = "idCard" ,index = 3)
+ private String idCard;
+
+ @ApiModelProperty(name="娲鹃仯鍗曚綅" , value = "workTypeName")
+ private String duName;
+ @ExcelColumn(name="澶囨敞",value = "澶囨敞")
+ private String remark;
+
+ @ApiModelProperty(name="宸ョ" , value = "workTypeName")
+ private String workTypeName;
+
+
+ @ApiModelProperty(name="骞撮緞",value = "age")
+ private Integer age;
+
+ @ApiModelProperty(value = "鎬у埆")
+ private Integer sex;
+
+ @ApiModelProperty(value = "娲鹃仯鍗曚綅涓婚敭")
+ private Integer duId;
+
+ @ApiModelProperty(value = "鎵�灞炲伐绉嶄富閿�")
+ private Integer worktypeId;
+
+ @ApiModelProperty(value = "璐圭敤")
+ private BigDecimal fee;
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java
index 7694fc1..2fadde3 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyDetail.java
@@ -173,4 +173,15 @@
@TableField(exist = false)
private String companyName;
+ @ApiModelProperty(value = "淇濆崟鏄庣粏琛屾湇鍔¤垂")
+ @TableField(exist = false)
+ private BigDecimal detailServerCost;
+
+ @ApiModelProperty(value = "琛屼繚闄╃敓鏁堟鏈�")
+ @TableField(exist = false)
+ private Date parentEndTime;
+
+ @ApiModelProperty(value = "琛屼繚闄╃敓鏁堣捣鏈�")
+ @TableField(exist = false)
+ private Date parentStartTime;
}
diff --git a/server/service/src/main/java/com/doumee/service/business/MemberService.java b/server/service/src/main/java/com/doumee/service/business/MemberService.java
index 14012d5..d8465aa 100644
--- a/server/service/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/service/src/main/java/com/doumee/service/business/MemberService.java
@@ -4,6 +4,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.dto.MemberImport;
import com.doumee.dao.business.dto.MemberQueryDTO;
+import com.doumee.dao.business.dto.MemberReduceImport;
import com.doumee.dao.business.model.Member;
import org.springframework.web.multipart.MultipartFile;
@@ -107,5 +108,6 @@
List<Member> findListByDTO(MemberQueryDTO memberQueryDTO);
List<MemberImport> importBatch(MultipartFile file,Integer solutionId);
+ List<MemberReduceImport> importReduceBatch(MultipartFile file, Integer applyId);
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
index 58c7774..d72bf05 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -1895,7 +1895,7 @@
.apply(" t1.BASE_ID in ( select du.id from dispatch_unit du where du.STATUS = 0 and du.ISDELETED = 0 ) ")
);
if(!CollectionUtils.isNotEmpty(duSolutionList)){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌娲鹃仯鍗曚綅");
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝淇濋櫓鏂规涓嬫湭鏌ヨ鍒版淳閬e崟浣嶄俊鎭紝璇风‘淇濇淳閬e崟浣嶅拰宸ヤ綔閰嶇疆骞跺鏍搁�氳繃锛�");
}
//鏌ヨ鎵�鏈夋淳閬e崟浣嶄笅鐨勫伐绉�
List<Integer> duSolutionIdList = duSolutionList.stream().map(i->i.getId()).collect(Collectors.toList());
@@ -1907,7 +1907,7 @@
.eq(checkNewData,Worktype::getDataType,Constants.TWO)
.in(DuWorktype::getDuSolutionId,duSolutionIdList));
if(!CollectionUtils.isNotEmpty(duWorktypeList)){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏁版嵁寮傚父锛氫繚闄╂柟妗堜笅鏈煡璇㈠埌宸ョ淇℃伅");
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝淇濋櫓鏂规涓嬫湭鏌ヨ鍒板伐绉嶄俊鎭紝璇风‘淇濇淳閬e崟浣嶅拰宸ヤ綔閰嶇疆骞跺鏍搁�氳繃锛�");
}
if(CollectionUtils.isNotEmpty(applyDetailList)){
@@ -1934,7 +1934,7 @@
member.setCompanyId(insuranceApply.getCompanyId());
member.setSex(Constants.getSexByIdCard(applyDetail.getIdcardNo()));
if(!IdcardUtil.isValidCard(applyDetail.getIdcardNo())){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚鍛樺伐淇℃伅韬唤璇佷俊鎭敊璇痆"+member.getName()+"]");
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鎶曚繚鍛樺伐銆�"+member.getName()+"銆戣韩浠借瘉淇℃伅銆�"+applyDetail.getIdcardNo()+"銆戦敊璇�");
}
member.setIdcardNo(applyDetail.getIdcardNo());
member.setApplyId(insuranceApply.getId());
@@ -1957,7 +1957,7 @@
||Objects.isNull(applyDetail.getDuId())
||Objects.isNull(applyDetail.getWorktypeId())
){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚鍛樺伐淇℃伅鏁版嵁缂哄け");
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鎶曚繚鍛樺伐淇℃伅鏁版嵁缂哄け锛岃鎸夌収瑕佹眰濉啓鍛樺伐鐨勬湁鏁堜俊鎭紒");
}
applyDetail.setCreateDate(new Date());
applyDetail.setCreator(loginUserInfo.getId());
@@ -2011,18 +2011,18 @@
//鑾峰彇璁$畻鎬诲ぉ鏁�
Integer maxDays = DateUtil.calculateBetween(applyDetail.getStartTime(),applyDetail.getEndTime(),0);
if(Constants.equalsInteger(maxDays,0)||Objects.isNull(applyDetail.getFee())){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚淇℃伅寮傚父锛氭�诲ぉ鏁颁笌鎬婚噾棰濋敊璇�");
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚淇℃伅寮傚父锛氭姇淇濇�诲ぉ鏁颁笌鎬婚噾棰濋敊璇�");
}
applyDetail.setPrice(
applyDetail.getFee().divide(new BigDecimal(maxDays),7,RoundingMode.HALF_UP)
);
//楠岃瘉娲鹃仯鍗曚綅淇℃伅鏄惁瀛樺湪
if(duSolutionList.stream().filter(d->d.getDispatchUnitId().equals(applyDetail.getDuId())).collect(Collectors.toList()).size()<=Constants.ZERO){
- throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒");
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+applyDetail.getIdcardNo()+"銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒");
}
if(duWorktypeList.stream().filter(d->d.getWorkTypeId().equals(applyDetail.getWorktypeId()))
.collect(Collectors.toList()).size()<=Constants.ZERO){
- throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒");
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+applyDetail.getIdcardNo()+"銆戝憳宸ュ伐绉嶄俊鎭湭鏌ヨ鍒帮紒");
}
}
applyDetailJoinMapper.insertBatchSomeColumn(applyDetailList);
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 2e7eb25..8963283 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -10,12 +10,15 @@
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.InsuranceApplyMapper;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.SolutionsMapper;
import com.doumee.dao.business.WorktypeMapper;
import com.doumee.dao.business.dto.MemberImport;
import com.doumee.dao.business.dto.MemberQueryDTO;
+import com.doumee.dao.business.dto.MemberReduceImport;
import com.doumee.dao.business.dto.WorktypeImport;
+import com.doumee.dao.business.join.ApplyDetailJoinMapper;
import com.doumee.dao.business.join.DispatchUnitJoinMapper;
import com.doumee.dao.business.join.MemberJoinMapper;
import com.doumee.dao.business.model.*;
@@ -53,12 +56,16 @@
@Autowired
private DispatchUnitJoinMapper dispatchUnitJoinMapper;
+ @Autowired
+ private ApplyDetailJoinMapper applyDetailJoinMapper;
@Autowired
private WorktypeMapper worktypeMapper;
@Autowired
private SolutionsMapper solutionsMapper;
+ @Autowired
+ private InsuranceApplyMapper insuranceApplyMapper;
@Override
public Integer create(Member member) {
@@ -359,21 +366,114 @@
}
@Override
- public List<MemberImport> importBatch(MultipartFile file,Integer solutionId){
+ public List<MemberReduceImport> importReduceBatch(MultipartFile file, Integer applyId){
+ if(applyId == null ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨鏈夋晥鐨勬柟妗堝啀杩涜鎿嶄綔锛�");
+ }
LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
if(!loginUserInfo.getType().equals(Constants.ONE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氫汉鍛樻棤娉曡繘琛岃鎿嶄綔");
}
- List<Member> list = memberJoinMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
- .selectAll(Member.class)
- .selectAs(DispatchUnit::getName,Member::getDuName)
- .selectAs(Worktype::getName,Member::getWorkTypeName)
- .leftJoin(DispatchUnit.class,DispatchUnit::getId,Member::getDuId)
- .leftJoin(Worktype.class,Worktype::getId,Member::getWorktypeId)
- .isNotNull(Member::getIdcardNo)
- .eq(Member::getCompanyId,loginUserInfo.getCompanyId())
- .eq(Member::getIsdeleted,Constants.ZERO)
- );
+ ExcelImporter ie = null;
+ List<MemberReduceImport> dataList =null;
+ try {
+ ie = new ExcelImporter(file,1,0);
+ dataList = ie.getDataList(MemberReduceImport.class,null);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ if(dataList == null || dataList.size() ==0){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�");
+ }
+
+ InsuranceApply insuranceApply = insuranceApplyMapper.selectById(applyId);
+ if (Objects.isNull(insuranceApply) || !Constants.equalsInteger(insuranceApply.getCompanyId(),loginUserInfo.getCompanyId())) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝淇濆崟淇℃伅涓嶅瓨鍦紝璇峰埛鏂伴〉闈㈤噸璇曪紒");
+ }
+ if (!(Constants.equalsInteger(insuranceApply.getStatus(), Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
+ ||Constants.equalsInteger(insuranceApply.getStatus(), Constants.InsuranceApplyStatus.WTB_DONE.getKey())
+ )) {
+ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "瀵逛笉璧凤紝淇濆崟褰撳墠鐘舵�佷笉鏀寔璇ユ搷浣滐紒");
+ }
+ if (DateUtil.compareDate(insuranceApply.getEndTime(),new Date()) >= Constants.ZERO ) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "淇濆崟宸茶繃淇濓紝涓嶆敮鎸佽鎿嶄綔");
+ }
+ if (DateUtil.compareDate(insuranceApply.getEndTime(),new Date()) >= Constants.ZERO ) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "淇濆崟宸茶繃淇濓紝涓嶆敮鎸佽鎿嶄綔");
+ }
+
+ Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
+ if(Objects.isNull(solutions)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌淇濋櫓鏂规");
+ }
+ int index = Constants.TWO;
+ Map<String,String> idCardMap = new HashMap<>();
+ for(MemberReduceImport model : dataList){
+ //鏍¢獙鍙傛暟鏄惁鍚堟硶
+ validReduceImportParam(model,idCardMap,dataList,index);
+ index += 1;
+ }
+ index = Constants.TWO;
+ for(MemberReduceImport model : dataList){
+ ApplyDetail detail =applyDetailJoinMapper.selectJoinOne(ApplyDetail.class,new MPJLambdaWrapper<ApplyDetail>()
+ .selectAll(ApplyDetail.class)
+ .selectAs(Worktype::getName,ApplyDetail::getWorkTypeName)
+ .selectAs(DispatchUnit::getName,ApplyDetail::getDuName)
+ .selectAs(InsuranceApply::getStartTime,ApplyDetail::getStartTime)
+ .selectAs(InsuranceApply::getFinalEndTime,ApplyDetail::getEndTime)
+ .selectAs(InsuranceApply::getServerCost,ApplyDetail::getDetailServerCost)
+ .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId)
+ .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId)
+ .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
+ .eq(ApplyDetail::getApplyId,insuranceApply.getId())
+ .eq(ApplyDetail::getApplyId,insuranceApply.getId())
+ .eq(ApplyDetail::getIdcardNo,model.getIdCard())
+ .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(new Date(),1))
+ .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(new Date(),3)));
+ if(detail == null){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍛樺伐銆�" + model.getName()+model.getIdCard() + "銆戦潪鍦ㄤ繚浜哄憳锛屽娉曡繘琛岃鎿嶄綔");
+ }
+ model.setDuId(detail.getDuId());
+ model.setDuName(detail.getDuName());
+ model.setWorktypeId(detail.getWorktypeId());
+ model.setWorkTypeName(detail.getWorkTypeName());
+ model.setFee(
+ Constants.reduceFee(solutions,
+ Objects.isNull(detail.getDetailServerCost())?
+ solutions.getPrice():solutions.getPrice().add(detail.getDetailServerCost()),detail.getParentStartTime(),detail.getParentEndTime(),detail.getStartTime(),
+ detail.getEndTime()).subtract(detail.getFee()));
+ index += 1;
+ }
+ return dataList;
+ }
+
+ private void validReduceImportParam(MemberReduceImport model, Map<String, String> idCardMap, List<MemberReduceImport> dataList, int index) {
+ if(StringUtils.isBlank(model.getName())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹鍚嶄笉鑳戒负绌猴紒");
+ }
+ if(StringUtils.isBlank(model.getIdCard())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹韩浠借瘉鍙蜂笉鑳戒负绌猴紒");
+ }
+ if(StringUtils.isBlank(model.getIdCard())||model.getIdCard().length()!=18){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹韩浠借瘉銆�"+model.getIdCard()+"銆戞牸寮忎笉姝g‘锛�");
+ }
+ if(!IdcardUtil.isValidCard(model.getIdCard())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹韩浠借瘉銆�"+model.getIdCard()+"銆戜俊鎭笉姝g‘锛�");
+ }
+ if(Objects.nonNull(idCardMap.get(model.getIdCard()))){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鏂囨。涓"+index+"琛屾暟鎹韩浠借瘉鍙枫��"+model.getIdCard()+"銆戝瓨鍦ㄧ浉鍚屾暟鎹紒");
+ }
+ idCardMap.put(model.getIdCard(), model.getIdCard());
+ }
+ @Override
+ public List<MemberImport> importBatch(MultipartFile file,Integer solutionId){
+ if(solutionId == null ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝璇烽�夋嫨鏈夋晥鐨勬柟妗堝啀杩涜鎿嶄綔锛�");
+ }
+ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+ if(!loginUserInfo.getType().equals(Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氫汉鍛樻棤娉曡繘琛岃鎿嶄綔");
+ }
ExcelImporter ie = null;
List<MemberImport> dataList =null;
try {
@@ -385,14 +485,14 @@
if(dataList == null || dataList.size() ==0){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�");
}
-// List<String> idCardList = dataList.stream().map(m->m.getIdCard()).collect(Collectors.toList());
-// Set<String> set = new HashSet<>(idCardList);
-// if(idCardList.size() != set.size()){
-// throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁瀛樺湪韬唤璇佸彿鐩稿悓鏁版嵁锛�");
-// }
- List<DispatchUnit> dispatchUnitList = new ArrayList<>();
- if(!Objects.isNull(solutionId)){
- dispatchUnitList = dispatchUnitJoinMapper.selectJoinList(DispatchUnit.class,
+ int index = Constants.TWO;
+ Map<String,String> idCardMap = new HashMap<>();
+ for(MemberImport model : dataList){
+ //鏍¢獙鍙傛暟鏄惁鍚堟硶
+ validImportParam(model,idCardMap,dataList,index,solutionId);
+ index += 1;
+ }
+ List<DispatchUnit> dispatchUnitList = dispatchUnitJoinMapper.selectJoinList(DispatchUnit.class,
new MPJLambdaWrapper<DispatchUnit>()
.selectAll(DispatchUnit.class)
.select("(select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.solution_id="+solutionId+" limit 1) as du_solution_id" )
@@ -402,70 +502,85 @@
.eq(loginUserInfo.getType().equals(Constants.ONE),DispatchUnit::getCompanyId,loginUserInfo.getCompanyId())
.exists("select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.status = 1 and b.solution_id="+solutionId )
);
- if(CollectionUtils.isNotEmpty(dispatchUnitList)){
- for (DispatchUnit dispatchUnit:dispatchUnitList) {
- List<Worktype> worktypeList = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda()
- .eq(Worktype::getIsdeleted,Constants.ZERO)
- .eq(Worktype::getDataType,Constants.TWO)
- .eq(Worktype::getStatus,Constants.ZERO)
- .apply("id in ( select dw.work_type_id from du_worktype dw where dw.status = 1" +
- " and dw.du_solution_id = "+dispatchUnit.getDuSolutionId()+" )")
- );
- dispatchUnit.setWorktypeList(worktypeList);
- }
+ if(CollectionUtils.isNotEmpty(dispatchUnitList)){
+ for (DispatchUnit dispatchUnit:dispatchUnitList) {
+ List<Worktype> worktypeList = worktypeMapper.selectList(new QueryWrapper<Worktype>().lambda()
+ .eq(Worktype::getIsdeleted,Constants.ZERO)
+ .eq(Worktype::getDataType,Constants.TWO)
+ .eq(Worktype::getStatus,Constants.ZERO)
+ .apply("id in ( select dw.work_type_id from du_worktype dw where dw.status = 1" +
+ " and dw.du_solution_id = "+dispatchUnit.getDuSolutionId()+" )")
+ );
+ dispatchUnit.setWorktypeList(worktypeList);
}
}
- long index = Constants.TWO;
- Map<String,String> idCardMap = new HashMap<>();
+ index = Constants.TWO;
for(MemberImport model : dataList){
- if(StringUtils.isBlank(model.getIdCard())||model.getIdCard().length()!=18){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹韩浠借瘉淇℃伅寮傚父锛�");
- }
- if(!IdcardUtil.isValidCard(model.getIdCard())){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹韩浠借瘉淇℃伅寮傚父锛�");
- }
- if(StringUtils.isBlank(model.getName())){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹鍚嶄俊鎭紓甯革紒");
- }
- if(Objects.nonNull(idCardMap.get(model.getIdCard()))){
- throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹韩浠借瘉鍙枫��"+model.getIdCard()+"銆戝瓨鍦ㄧ浉鍚屾暟鎹紒");
- }
- idCardMap.put(model.getIdCard(), model.getIdCard());
- index = index + Constants.ONE;
- if(CollectionUtils.isNotEmpty(list)){
- Optional<Member> memberOptional= list.stream().filter(m->m.getIdcardNo().equals(model.getIdCard())).findFirst();
- if(memberOptional.isPresent()){
- Member member = memberOptional.get();
- model.setIdCard(member.getIdcardNo());
- model.setSex(member.getSex());
- }else{
- model.setSex(Constants.getSexByIdCard(model.getIdCard()));
- }
- }else{
- model.setSex(Constants.getSexByIdCard(model.getIdCard()));
- }
- if(StringUtils.isNotBlank(model.getDuName())&&CollectionUtils.isNotEmpty(dispatchUnitList)){
- Optional<DispatchUnit> dispatchUnitOptional= dispatchUnitList.stream().filter(m->m.getName().equals(model.getDuName())).findFirst();
- if(dispatchUnitOptional.isPresent()){
- DispatchUnit dispatchUnit = dispatchUnitOptional.get();
- model.setDuId(dispatchUnit.getId());
- if(StringUtils.isNotBlank(model.getWorkTypeName())&&CollectionUtils.isNotEmpty(dispatchUnit.getWorktypeList())){
- Optional<Worktype> worktypeOptional= dispatchUnit.getWorktypeList().stream().filter(m->m.getName().equals(model.getWorkTypeName())).findFirst();
- if(worktypeOptional.isPresent()){
- Worktype worktype = worktypeOptional.get();
- model.setWorktypeId(worktype.getId());
- }
+ //鏍¢獙浜哄憳鏄惁宸茬粡鍦ㄥ弬淇濅腑
+ isMemberValidForSolution(model,index,solutionId);
+ //妫�鏌ユ淳閬e崟浣嶅拰宸ョ鏈夋晥鎬�
+ dealDuAndWorktype(model,index,dispatchUnitList);
+ index += 1;
+ }
+ return dataList;
+ }
+
+ private void isMemberValidForSolution(MemberImport model, int index, Integer solutionId) {
+ /* ApplyDetail detail = applyDetailJoinMapper.selectJoinOne(ApplyDetail.class,new MPJLambdaWrapper<ApplyDetail>()
+ .last("limit 1"));
+ if(detail!=null){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛岃韩浠借瘉涓恒��"+model.getIdCard()+"銆戜汉鍛樺凡缁忓湪璇ユ柟妗堜笅瀛樺湪鎶曚繚璁板綍锛�");
+ }*/
+ }
+
+ private void dealDuAndWorktype(MemberImport model, int index, List<DispatchUnit> dispatchUnitList ) {
+
+ if(CollectionUtils.isNotEmpty(dispatchUnitList)){
+ Optional<DispatchUnit> dispatchUnitOptional= dispatchUnitList.stream().filter(m->m.getName().equals(model.getDuName())).findFirst();
+ if(dispatchUnitOptional.isPresent()){
+ DispatchUnit dispatchUnit = dispatchUnitOptional.get();
+ model.setDuId(dispatchUnit.getId());
+ if(StringUtils.isNotBlank(model.getWorkTypeName())&&CollectionUtils.isNotEmpty(dispatchUnit.getWorktypeList())){
+ Optional<Worktype> worktypeOptional= dispatchUnit.getWorktypeList().stream().filter(m->m.getName().equals(model.getWorkTypeName())).findFirst();
+ if(worktypeOptional.isPresent()){
+ Worktype worktype = worktypeOptional.get();
+ model.setWorktypeId(worktype.getId());
}
}
}
- if(Objects.isNull(model.getDuId())){
- model.setWorkTypeName(null);
- model.setDuName(null);
- }else if(Objects.isNull(model.getWorktypeId())){
- model.setWorkTypeName(null);
- }
}
- return dataList;
+ if(Objects.isNull(model.getDuId())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹淳閬e崟浣嶃��"+model.getDuName()+"銆戜笉姝g‘锛�");
+ }
+ if(Objects.isNull(model.getWorktypeId())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹伐绉嶃��"+model.getWorkTypeName()+"銆戜笉姝g‘锛�");
+ }
+ }
+
+ private void validImportParam(MemberImport model, Map<String, String> idCardMap, List<MemberImport> dataList,int index,Integer solutionId) {
+ if(StringUtils.isBlank(model.getName())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹鍚嶄笉鑳戒负绌猴紒");
+ }
+ if(StringUtils.isBlank(model.getIdCard())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹韩浠借瘉鍙蜂笉鑳戒负绌猴紒");
+ }
+ if(StringUtils.isBlank(model.getDuName())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹淳閬e崟浣嶄笉鑳戒负绌猴紒");
+ }
+ if(StringUtils.isBlank(model.getWorkTypeName())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹伐绉嶄笉鑳戒负绌猴紒");
+ }
+ if(StringUtils.isBlank(model.getIdCard())||model.getIdCard().length()!=18){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹韩浠借瘉銆�"+model.getIdCard()+"銆戞牸寮忎笉姝g‘锛�");
+ }
+ if(!IdcardUtil.isValidCard(model.getIdCard())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹韩浠借瘉銆�"+model.getIdCard()+"銆戜俊鎭笉姝g‘锛�");
+ }
+ if(Objects.nonNull(idCardMap.get(model.getIdCard()))){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鏂囨。涓"+index+"琛屾暟鎹韩浠借瘉鍙枫��"+model.getIdCard()+"銆戝瓨鍦ㄧ浉鍚屾暟鎹紒");
+ }
+ idCardMap.put(model.getIdCard(), model.getIdCard());
+
}
--
Gitblit v1.9.3