From 27e41b5c21b4ba13178b2184c76c4d8cba0952b6 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 01 二月 2024 19:21:18 +0800
Subject: [PATCH] Mr.Shi
---
company/src/components/business/OperaInsuranceApplyWindow.vue | 21
company/src/components/business/OperaSettleClaimsCheckWindow.vue | 482 ++++++++++++----------
company/src/views/business/taxes.vue | 12
server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java | 2
server/service/src/main/java/com/doumee/service/business/third/EmailService.java | 49 ++
company/src/components/business/OperaInsuranceApplyCheckWindow.vue | 246 ++++++-----
server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java | 26 +
server/service/src/main/java/com/doumee/service/business/third/EmayService.java | 42 +
company/src/components/business/OperaTaxesWindow.vue | 106 ++--
server/service/src/main/java/com/doumee/dao/business/model/SmsEmail.java | 6
server/service/src/main/resources/application-test.yml | 29 +
server/service/src/main/java/com/doumee/core/utils/Constants.java | 1
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 100 ++++
server/service/src/main/resources/application-pro.yml | 22
company/src/components/business/OperaCompanyWindow.vue | 2
company/src/components/business/OperaApplyChangeUnitDetailWindow.vue | 5
company/src/views/business/switchCourt.vue | 2
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java | 17
company/src/views/business/applyChange.vue | 2
server/service/src/main/java/com/doumee/service/business/SmsEmailService.java | 1
company/src/components/business/OperaApplyChangeDetailWindow.vue | 5
server/pom.xml | 5
server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java | 10
server/service/src/main/resources/application-dev.yml | 12
server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java | 19
25 files changed, 746 insertions(+), 478 deletions(-)
diff --git a/company/src/components/business/OperaApplyChangeDetailWindow.vue b/company/src/components/business/OperaApplyChangeDetailWindow.vue
index 78a0233..7b74b15 100644
--- a/company/src/components/business/OperaApplyChangeDetailWindow.vue
+++ b/company/src/components/business/OperaApplyChangeDetailWindow.vue
@@ -12,8 +12,13 @@
<div class="desc_item_label_left">
<span>鎶曚繚浼佷笟锛歿{ apply.companyName }}</span>
<span v-if="model.status === 0">淇濆崟鐘舵�侊細寰呯缃�</span>
+<<<<<<< HEAD
<span v-if="model.status === 1">淇濆崟鐘舵�侊細寰呭鏍�</span>
<span v-if="model.status === 2">淇濆崟鐘舵�侊細宸蹭笂浼犳壒鍗�</span>
+=======
+ <span v-if="model.status === 1">淇濆崟鐘舵�侊細宸茬绔�</span>
+ <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸茬敓鏁�</span>
+>>>>>>> 35bd55ad951fe8c5fb997dfa7bd836ad53db96fe
<span v-if="model.status === 3 || model.status === 4">淇濆崟鐘舵�侊細閫�鍥炵敵璇�</span>
<span v-if="model.status === 5 || model.status === 8">淇濆崟鐘舵�侊細宸查��鍥�</span>
<span v-if="model.status === 7 || model.status === 6">淇濆崟鐘舵�侊細宸插叧闂�</span>
diff --git a/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue b/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
index 58d893e..40346f0 100644
--- a/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
+++ b/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
@@ -12,8 +12,13 @@
<div class="desc_item_label_left">
<span>鎶曚繚浼佷笟锛歿{ apply.companyName }}</span>
<span v-if="model.status === 0">淇濆崟鐘舵�侊細寰呯缃�</span>
+<<<<<<< HEAD
<span v-if="model.status === 1">淇濆崟鐘舵�侊細寰呭鏍�</span>
<span v-if="model.status === 2">淇濆崟鐘舵�侊細宸蹭笂浼犳壒鍗�</span>
+=======
+ <span v-if="model.status === 1">淇濆崟鐘舵�侊細宸茬绔�</span>
+ <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸茬敓鏁�</span>
+>>>>>>> 35bd55ad951fe8c5fb997dfa7bd836ad53db96fe
<span v-if="model.status === 3 || model.status === 4">淇濆崟鐘舵�侊細閫�鍥炵敵璇�</span>
<span v-if="model.status ===5 || model.status === 8">淇濆崟鐘舵�侊細宸查��鍥�</span>
<span v-if="model.status ===7">淇濆崟鐘舵�侊細宸插叧闂�</span>
diff --git a/company/src/components/business/OperaCompanyWindow.vue b/company/src/components/business/OperaCompanyWindow.vue
index ea7823e..6bf7e17 100644
--- a/company/src/components/business/OperaCompanyWindow.vue
+++ b/company/src/components/business/OperaCompanyWindow.vue
@@ -1,7 +1,7 @@
<template>
<GlobalWindow
:title="title"
- width="50%"
+ width="60%"
:visible.sync="visible"
:confirm-working="isWorking"
@confirm="confirm"
diff --git a/company/src/components/business/OperaInsuranceApplyCheckWindow.vue b/company/src/components/business/OperaInsuranceApplyCheckWindow.vue
index 8c6e041..d0ceff9 100644
--- a/company/src/components/business/OperaInsuranceApplyCheckWindow.vue
+++ b/company/src/components/business/OperaInsuranceApplyCheckWindow.vue
@@ -7,109 +7,65 @@
@confirm="confirm"
>
<!-- 閫�鍥炴姇淇� -->
- <div v-if="visible1==true" class="form">
- <div class="form_item">
- <div class="form_item_label"><span>*</span>濉啓閫�鍥炶鏄庯細</div>
- <div class="form_item_val">
- <textarea v-model="form.backCheckInfo" placeholder="璇疯緭鍏�"></textarea>
- </div>
- </div>
- </div>
- <!-- 涓婁紶鎶曚繚鍗� -->
- <div v-if="visible2==true" class="form">
- <div class="form_item">
- <div class="form_item_label">涓婁紶鎶曚繚鍗曪細</div>
- <div class="form_item_val">
- <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList" @uploadSuccess="toubaoFileUploaded" />
- </div>
- </div>
- </div>
+ <el-form v-if="visible1==true" :model="form" ref="form1" :rules="rules1" style="width: 100%;">
+ <el-form-item label="濉啓閫�鍥炶鏄庯細" prop="backCheckInfo">
+ <el-input type="textarea" v-model="form.backCheckInfo" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ </el-form>
+ <el-form v-if="visible2==true" :model="form" ref="form2" :rules="rules2" style="width: 100%;">
+ <el-form-item label="涓婁紶鎶曚繚鍗曪細" prop="toubaodanFile">
+ <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList" @uploadSuccess="toubaoFileUploaded" />
+ </el-form-item>
+ </el-form>
<!-- 涓婁紶淇濋櫓鍗� -->
- <div v-if="visible3==true" class="form">
- <div class="form_item">
- <div class="form_item_label">瀹㈡埛鏈熸湜淇濋櫓鐢熸晥璧锋湡锛�</div>
- <div class="form_item_val">{{ model.applyStartTime }}</div>
- </div>
- <div class="form_item">
- <div class="form_item_label">淇濋櫓鐢熸晥璧锋湡鏄惁涓�鑷达細</div>
- <div class="form_item_val">
- <el-radio-group v-model="form.selectRadio" @change="selectChange">
- <el-radio :label="0" >涓庝繚鍗曚竴鑷�</el-radio>
- <el-radio :label="1" >涓庝繚鍗曚笉涓�鑷�</el-radio>
- </el-radio-group>
- </div>
- </div>
- <div class="form_item">
- <div class="form_item_label"><span>*</span>淇濋櫓鐢熸晥璧锋湡锛�</div>
- <div class="form_item_val">
- <el-date-picker
- v-model="form.startTime"
- type="date"
- value-format="yyyy-MM-dd HH:mm:ss"
- placeholder="閫夋嫨鏃ユ湡">
- </el-date-picker>
- </div>
- </div>
- <div class="form_item">
- <div class="form_item_label">淇濋櫓鐢熸晥璧锋湡锛�</div>
- <div class="form_item_val">{{ form.startTime }}</div>
- </div>
- <div class="form_item">
- <div class="form_item_label"><span>*</span>淇濆崟鍙凤細</div>
- <div class="form_item_val" >
- <el-input v-model="form.code" placeholder="璇疯緭鍏�"></el-input>
- </div>
- </div>
- <div class="form_item">
- <div class="form_item_label">涓婁紶淇濋櫓鍗曪細</div>
- <div class="form_item_val">
- <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
- </div>
- </div>
- </div>
+ <el-form v-if="visible3==true" :model="form" ref="form3" :rules="rules3" style="width: 100%;">
+ <el-form-item label="瀹㈡埛鏈熸湜淇濋櫓鐢熸晥璧锋湡锛�">
+ {{ model.applyStartTime }}
+ </el-form-item>
+ <el-form-item label="" >
+ <el-radio-group v-model="form.selectRadio" @change="selectChange">
+ <el-radio :label="0" >涓庝繚鍗曚竴鑷�</el-radio>
+ <el-radio :label="1" >涓庝繚鍗曚笉涓�鑷�</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="淇濋櫓鐢熸晥璧锋湡锛�" prop="startTime" >
+ <el-date-picker
+ v-model="form.startTime"
+ type="date"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="閫夋嫨鏃ユ湡">
+ </el-date-picker>
+ </el-form-item>
+ <el-form-item label="淇濋櫓鐢熸晥璧锋湡锛�">
+ {{ form.startTime }}
+ </el-form-item>
+ <el-form-item label="淇濆崟鍙凤細" prop="code">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ <el-form-item label="涓婁紶淇濋櫓鍗曪細" prop="baoxianFile">
+ <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="baoxianFileUploaded" />
+ </el-form-item>
+ </el-form>
<!-- 淇敼淇濋櫓鍗� -->
- <div v-if="visible4==true" class="form">
- <div class="form_item">
- <div class="form_item_label">淇濋櫓鐢熸晥璧锋湡锛�</div>
- <div class="form_item_val">{{ model.startTime }}</div>
- </div>
- <div class="form_item">
- <div class="form_item_label"><span>*</span>淇濆崟鍙凤細</div>
- <div class="form_item_val">
- <el-input v-model="form.editCode" placeholder="璇疯緭鍏�"></el-input>
- </div>
- </div>
- <div class="form_item">
- <div class="form_item_label"><span>*</span>涓婁紶淇濋櫓鍗曪細</div>
- <div class="form_item_val">
- <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList2" @uploadSuccess="editBaoxianFileUploaded" />
- </div>
- </div>
- <div class="form_item">
- <div class="form_item_label"><span>*</span>淇敼鍘熷洜锛�</div>
- <div class="form_item_val">
- <el-input placeholder="璇疯緭鍏�" v-model="form.editCheckInfo" ></el-input>
- </div>
- </div>
- </div>
- <!-- 椹冲洖閫�鍥炵敵璇� -->
- <div v-if="visible5==true" class="form">
- <div class="form_item">
- <div class="form_item_label"><span>*</span>濉啓璇存槑锛�</div>
- <div class="form_item_val">
- <textarea v-model="form.dealBackInfo" placeholder="璇疯緭鍏�"></textarea>
- </div>
- </div>
- </div>
- <!-- 鍚屾剰閫�鍥炵敵璇� -->
- <div v-if="visible6==true" class="form">
- <div class="form_item">
- <div class="form_item_label"><span>*</span>鍚屾剰閫�鍥炶鏄庯細</div>
- <div class="form_item_val">
- <textarea v-model="form.dealBackInfo" placeholder="璇疯緭鍏�"></textarea>
- </div>
- </div>
- </div>
+ <el-form v-if="visible4==true" :model="form" ref="form4" :rules="rules4" style="width: 100%;">
+ <el-form-item label="淇濋櫓鐢熸晥璧锋湡锛�">
+ {{ model.startTime }}
+ </el-form-item>
+ <el-form-item label="淇濆崟鍙凤細" prop="editCode">
+ <el-input v-model="form.editCode" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ <el-form-item label="涓婁紶淇濋櫓鍗曪細" prop="editBaoxianFile">
+ <UploadFile :uploadData="{ folder: 'apply',fileType:'.pdf' }" :fileList="form.fileList1" @uploadSuccess="editBaoxianFileUploaded" />
+ </el-form-item>
+ <el-form-item label="淇敼鍘熷洜锛�" prop="editCheckInfo">
+ <el-input type="textarea" v-model="form.editCheckInfo" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ </el-form>
+ <el-form v-if="visible5==true || visible6==true" :model="form" ref="form5" :rules="rules5" style="width: 100%;">
+ <el-form-item label="濉啓璇存槑锛�" prop="dealBackInfo">
+ <el-input type="textarea" v-model="form.dealBackInfo" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ </el-form>
<template v-slot:footer>
<el-button type="primary" @click="doSubmit">纭� 瀹�</el-button>
<el-button @click="visible=false">鍙栨秷</el-button>
@@ -129,6 +85,7 @@
check
} from "@/api/business/insuranceApply";
import UploadFile from "@/components/common/UploadFile";
+import {remark} from "@/api/business/settleClaims";
export default {
name: 'OperaChangeApplyCheckWindow',
extends: BaseOpera,
@@ -138,6 +95,43 @@
// 琛ㄥ崟鏁版嵁
model: {},
falg :0,
+ rules1: {
+ backCheckInfo: [
+ { required: true, message: '璇峰畬鍠勪俊鎭�' }
+ ]
+ },
+ rules2: {
+ toubaodanFile: [
+ { required: true, message: '璇峰畬鍠勪俊鎭�' }
+ ]
+ },
+ rules3: {
+ code: [
+ { required: true, message: '璇峰畬鍠勪俊鎭�' }
+ ],
+ startTime: [
+ { required: true, message: '璇峰畬鍠勪俊鎭�' }
+ ],
+ baoxianFile: [
+ { required: true, message: '璇峰畬鍠勪俊鎭�' }
+ ],
+ },
+ rules5: {
+ dealBackInfo: [
+ { required: true, message: '璇峰畬鍠勪俊鎭�' }
+ ]
+ },
+ rules4: {
+ editCode: [
+ { required: true, message: '璇峰畬鍠勪俊鎭�' }
+ ],
+ editBaoxianFile: [
+ { required: true, message: '璇峰畬鍠勪俊鎭�' }
+ ],
+ editCheckInfo: [
+ { required: true, message: '璇峰畬鍠勪俊鎭�' }
+ ]
+ },
form: {
id: null,
backCheckInfo:'',
@@ -221,17 +215,53 @@
},
doSubmit(){
if (this.flag == 1) {
- this.backDo()
- } else if (this.flag == 2) {
- this.uploadToubaodan()
+ this.$refs.form1.validate((valid) => {
+ // debugger
+ if (!valid) {
+ return
+ }
+ this.backDo()
+ })
+ } else if (this.flag == 2) {
+ this.$refs.form2.validate((valid) => {
+ // debugger
+ if (!valid) {
+ return
+ }
+ this.uploadToubaodan()
+ })
} else if (this.flag == 3) {
- this.uploadBaoxiandan()
+ this.$refs.form3.validate((valid) => {
+ // debugger
+ if (!valid) {
+ return
+ }
+ this.uploadBaoxiandan()
+ })
} else if (this.flag == 4) {
- this.editBaoxiandan()
+ this.$refs.form4.validate((valid) => {
+ // debugger
+ if (!valid) {
+ return
+ }
+ this.editBaoxiandan()
+ })
} else if (this.flag == 5) {
- this.dealBackApply(1)
+ this.$refs.form5.validate((valid) => {
+ // debugger
+ if (!valid) {
+ return
+ }
+ this.dealBackApply(1)
+ })
} else if (this.flag == 6) {
- this.dealBackApply(0)
+ this.$refs.form5.validate((valid) => {
+ // debugger
+ if (!valid) {
+ return
+ }
+ this.dealBackApply(0)
+ })
}
},
selectChange(){
diff --git a/company/src/components/business/OperaInsuranceApplyWindow.vue b/company/src/components/business/OperaInsuranceApplyWindow.vue
index 5e08c61..fc12b61 100644
--- a/company/src/components/business/OperaInsuranceApplyWindow.vue
+++ b/company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -31,16 +31,17 @@
<el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
<el-button v-if="model.status == 2" type="primary" @click="goSign">绛剧讲鎶曚繚鍗�</el-button>
</template>
- <template v-else>
- <el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">瀵煎嚭璇﹀崟</el-button>
- <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
- <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
- <el-button v-if="model.status == 10" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶鎶曚繚鍗�',model,2)">涓婁紶鎶曚繚鍗�</el-button>
- <el-button v-if="model.status == 3" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶淇濋櫓鍗�',model,3)">涓婁紶淇濋櫓鍗�</el-button>
- <el-button v-if="model.status == 6 || model.status == 7|| model.status == 8" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button>
- <el-button v-if="model.status != 5 && model.status != 4 && model.status != 1" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('閫�鍥炴姇淇�',model,1)">閫�鍥炴姇淇�</el-button>
- <el-button v-if="model.status == 5" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('淇敼淇濋櫓鍗�',model,4)">淇敼淇濋櫓鍗�</el-button>
- </template>
+ <template v-else>
+ <el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">瀵煎嚭璇﹀崟</el-button>
+ <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鏌ョ湅鎶曚繚鍗�</el-button>
+ <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅淇濋櫓鍗�</el-button>
+ <el-button v-if="model.status == 10" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶鎶曚繚鍗�',model,2)">涓婁紶鎶曚繚鍗�</el-button>
+ <el-button v-if="model.status == 3" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('涓婁紶淇濋櫓鍗�',model,3)">涓婁紶淇濋櫓鍗�</el-button>
+ <el-button v-if="model.status == 6 || model.status == 7|| model.status == 8" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('椹冲洖閫�鍥炵敵璇�',model,5)">椹冲洖閫�鍥炵敵璇�</el-button>
+ <el-button v-if="model.status == 0" type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚瀹℃牳',model,1)">鎶曚繚瀹℃牳</el-button>
+ <el-button v-if="model.status != 5 && model.status != 4 && model.status != 1" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('閫�鍥炴姇淇�',model,1)">閫�鍥炴姇淇�</el-button>
+ <el-button v-if="model.status == 5" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('淇敼淇濋櫓鍗�',model,4)">淇敼淇濋櫓鍗�</el-button>
+ </template>
</div>
</div>
<div class="desc_item_from">
diff --git a/company/src/components/business/OperaSettleClaimsCheckWindow.vue b/company/src/components/business/OperaSettleClaimsCheckWindow.vue
index a88f38b..d3d79f9 100644
--- a/company/src/components/business/OperaSettleClaimsCheckWindow.vue
+++ b/company/src/components/business/OperaSettleClaimsCheckWindow.vue
@@ -6,92 +6,51 @@
:confirm-working="isWorking"
@confirm="confirm"
>
- <div v-if="visible1==true" class="form">
- <div class="form_item">
- <div class="form_item_label">
- <span>*</span>鎶ユ鍙凤細
- </div>
- <div class="form_item_val">
- <input type="text" v-model="form.reportNum" placeholder="璇疯緭鍏�">
- </div>
- </div>
- </div>
-
- <div v-if="visible2==true" class="form">
- <div class="form_item">
- <div class="form_item_label">
- <span>*</span>澶勭悊杩涘睍锛�
- </div>
- <div class="form_item_val">
- <textarea v-model="form.bizInfo" placeholder="璇疯緭鍏�"></textarea>
- </div>
- </div>
- </div>
- <div v-if="visible3==true" class="form">
- <div class="form_item">
- <div class="form_item_label">
- <span>*</span>濉啓鎾ら攢璇存槑锛�
- </div>
- <div class="form_item_val">
- <textarea v-model="form.backInfo" placeholder="璇疯緭鍏�"></textarea>
- </div>
- </div>
- </div>
- <div v-if="visible4==true" class="form">
- <div class="form_item">
- <div class="form_item_label">
- <span>*</span>缁撴鍐呭锛�
- </div>
- <div class="form_item_val">
- <textarea v-model="form.doneInfo" placeholder="璇疯緭鍏�"></textarea>
- </div>
- </div>
- <div class="form_item">
- <div class="form_item_label">
- 鍖荤枟鐞嗚禂锛�
- </div>
- <div class="form_item_val">
- <input v-model="form.ylClaimAccount" placeholder="璇疯緭鍏�" />
- </div>
- </div>
- <div class="form_item">
- <div class="form_item_label">
- 璇伐鐞嗚禂锛�
- </div>
- <div class="form_item_val">
- <input v-model="form.wgClaimAccount" placeholder="璇疯緭鍏�" />
- </div>
- </div>
- <div class="form_item">
- <div class="form_item_label">
- 浼ゆ畫鐞嗚禂锛�
- </div>
- <div class="form_item_val">
- <input v-model="form.scClaimAccount" placeholder="璇疯緭鍏�" />
- </div>
- </div>
- <div class="form_item">
- <div class="form_item_label">
- 姝讳骸鐞嗚禂锛�
- </div>
- <div class="form_item_val">
- <input v-model="form.swClaimAccount" placeholder="璇疯緭鍏�" />
- </div>
- </div>
- </div>
+ <el-form v-if="visible1==true" :model="form" ref="form1" :rules="rules1" style="width: 100%;">
+ <el-form-item label="鎶ユ鍙凤細" prop="reportNum">
+ <el-input v-model="form.reportNum" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ </el-form>
+ <el-form v-if="visible2==true" :model="form" ref="form2" :rules="rules2" style="width: 100%;">
+ <el-form-item label="澶勭悊杩涘睍锛�" prop="bizInfo">
+ <el-input type="textarea" v-model="form.bizInfo" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ </el-form>
+ <el-form v-if="visible3==true" :model="form" ref="form3" :rules="rules3" style="width: 100%;">
+ <el-form-item label="鎾ら攢璇存槑锛�" prop="backInfo">
+ <el-input type="textarea" v-model="form.backInfo" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ </el-form>
+ <el-form v-if="visible4==true" :model="form" ref="form4" :rules="rules4" style="width: 100%;">
+ <el-form-item label="缁撴鍐呭锛�" prop="doneInfo">
+ <el-input type="textarea" v-model="form.doneInfo" @change="changeAccount" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鍖荤枟鐞嗚禂(鍏�)锛�" prop="ylClaimAccount">
+ <el-input type="number" v-model="form.ylClaimAccount" @change="changeAccount" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ <el-form-item label="璇伐鐞嗚禂(鍏�)锛�" prop="wgClaimAccount">
+ <el-input type="number" v-model="form.wgClaimAccount" @change="changeAccount" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ <el-form-item label="浼ゆ畫鐞嗚禂(鍏�)锛�" prop="scClaimAccount">
+ <el-input type="number" v-model="form.scClaimAccount" @change="changeAccount" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ <el-form-item label="姝讳骸鐞嗚禂(鍏�)锛�" prop="swClaimAccount">
+ <el-input type="number" v-model="form.swClaimAccount" @change="changeAccount" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ <el-form-item label="鎬婚噾棰濓細" >
+ <el-input type="number" readonly v-model="form.totalAccount" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ </el-form>
<div v-if="visible5 ==true" class="form">
<div class="form_span" v-for="(item,index) in remarkLogList" :key="index">
<span>鐞嗚禂鍛�-{{ item.creatorName }} {{item.createDate }}</span>
<span>{{item.content }}</span>
</div>
- <div class="form_item">
- <div class="form_item_label">
- <span>*</span>濉啓澶囨敞鏍囩锛�
- </div>
- <div class="form_item_val">
- <textarea v-model="form.remarkInfo" placeholder="璇疯緭鍏�"></textarea>
- </div>
- </div>
+ <el-form :model="form" ref="form5" :rules="rules5" style="width: 100%;">
+ <el-form-item label="濉啓澶囨敞鏍囩锛�" prop="remarkInfo">
+ <el-input type="textarea" v-model="form.remarkInfo" placeholder="璇疯緭鍏�" v-trim/>
+ </el-form-item>
+ </el-form>
</div>
<template v-slot:footer>
<el-button type="primary" @click="doSubmit">纭畾</el-button>
@@ -101,155 +60,220 @@
</template>
<script>
- import BaseOpera from '@/components/base/BaseOpera'
- import GlobalWindow from '@/components/common/GlobalWindow'
- import {addCode, back, dealBiz,doneCommit, remark} from "@/api/business/settleClaims";
- export default {
- name: 'OperaSettleClaimsCheckWindow',
- extends: BaseOpera,
- components: { GlobalWindow },
- data () {
- return {
- remarkLogList:[],
- type:0,
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null,
- checkInfo: null,
- bizInfo: null,
- doneInfo: null,
- backInfo: null,
- remarkInfo: null,
- ylClaimAccount: null,
- wgClaimAccount: null,
- swClaimAccount: null,
- scClaimAccount: null,
- reportNum: null,
- },
- model:{},
- activeName: 'first',
- reverse: true,
- tableData: [],
- visible1: false,
- visible2: false,
- visible3: false,
- visible4: false,
- visible5: false
- }
- },
- created () {
- this.config({
- api: '/business/settleClaims',
- 'field.id': 'id'
- })
- },
- methods: {
- open(title,target,target1,type){
- this.model ={}
- this.model = target
- this.title=title
- this.visible=true
- this.type=type
- this.remarkLogList= target1
- this.visible1=false,
- this.visible2= false,
- this.visible3=false,
- this. visible4= false,
- this. visible5= false
- this.form=target
- this. form= {
- id: null,
- checkInfo: null,
- doneInfo: null,
- remarkInfo: null,
- bizInfo: null,
- backInfo: null,
- ylClaimAccount: null,
- wgClaimAccount: null,
- swClaimAccount: null,
- scClaimAccount: null,
- reportNum: null,
- }
- if(type==1){
- this.visible1=true
- }
- if(type==2){
- this.visible2=true
- }
- if(type==3){
- this.visible3=true
- }
- if(type==4){
- this.visible4=true
- }
- if(type==5){
- this.visible5=true
- }
- },
- doSubmit(type) {
- var that =this
- if(this.type ===5){
- // this.isWorking = true
- remark({id:that.model.id,checkInfo:that.form.remarkInfo})
- .then(response => {
- this.visible=false
- this.$emit('success')
- }).catch(err => {
- this.$tip.apiFailed(err)
- })
- }else if(this.type === 4){
- // this.isWorking = true
- doneCommit({id: that.model.id, checkInfo: that.form.doneInfo,
- ylClaimAccount: that.form.ylClaimAccount,
- wgClaimAccount: that.form.wgClaimAccount,
- swClaimAccount: that.form.swClaimAccount,
- scClaimAccount: that.form.scClaimAccount})
- .then(response => {
- this.visible=false
- this.$emit('success')
- }).catch(err => {
- this.$tip.apiFailed(err)
- })
- }else if(this.type===2){
- //鐞嗚禂澶勭悊
- dealBiz({ id: that.model.id, checkInfo:that.form.bizInfo })
- .then(response => {
- this.visible=false
- this.$emit('success')
- }).catch(err => {
- console.log(err)
- this.$tip.apiFailed(err)
- }).finally(() => {
- this.isWorking = false
- })
- }else if(this.type===3){
- //鐞嗚禂澶勭悊
- back({ id: that.model.id, checkInfo:that.form.backInfo })
- .then(response => {
- this.visible=false
- this.$emit('success')
- }).catch(err => {
- console.log(err)
- this.$tip.apiFailed(err)
- }).finally(() => {
- this.isWorking = false
- })
- }else if(this.type===1){
- //娣诲姞澶囨鍙�
- addCode({ id: that.model.id, reportNum:that.form.reportNum })
- .then(response => {
- this.visible=false
- this.$emit('success')
- }).catch(err => {
- console.log(err)
- this.$tip.apiFailed(err)
- }).finally(() => {
- this.isWorking = false
- })
- }
- }
- }
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+import { addCode, back, dealBiz, doneCommit, remark } from '@/api/business/settleClaims'
+export default {
+ name: 'OperaSettleClaimsCheckWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ remarkLogList: [],
+ type: 0,
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null,
+ checkInfo: null,
+ bizInfo: null,
+ doneInfo: null,
+ backInfo: null,
+ remarkInfo: null,
+ ylClaimAccount: 0,
+ wgClaimAccount: 0,
+ swClaimAccount: 0,
+ scClaimAccount: 0,
+ reportNum: null,
+ totalAccount:0
+ },
+ model: {},
+ activeName: 'first',
+ reverse: true,
+ tableData: [],
+ visible1: false,
+ visible2: false,
+ visible3: false,
+ visible4: false,
+ visible5: false,
+ rules1: {
+ reportNum: [
+ { required: true, message: '璇疯緭鍏�' }
+ ]
+ },
+ rules2: {
+ bizInfo: [
+ { required: true, message: '璇疯緭鍏�' }
+ ]
+ },
+ rules3: {
+ backInfo: [
+ { required: true, message: '璇疯緭鍏�' }
+ ]
+ },
+ rules5: {
+ remarkInfo: [
+ { required: true, message: '璇疯緭鍏�' }
+ ]
+ },
+ rules4: {
+ doneInfo: [
+ { required: true, message: '璇疯緭鍏�' }
+ ]
+ }
}
+ },
+ created () {
+ this.config({
+ api: '/business/settleClaims',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ open (title, target, target1, type) {
+ this.model = {}
+ this.model = target
+ this.title = title
+ this.visible = true
+ this.type = type
+ this.remarkLogList = target1
+ this.visible1 = false,
+ this.visible2 = false,
+ this.visible3 = false,
+ this.visible4 = false,
+ this.visible5 = false
+ this.form = target
+ this.form = {
+ id: null,
+ checkInfo: null,
+ doneInfo: null,
+ remarkInfo: null,
+ bizInfo: null,
+ backInfo: null,
+ ylClaimAccount: 0,
+ wgClaimAccount: 0,
+ swClaimAccount: 0,
+ scClaimAccount: 0,
+ reportNum: null,
+ totalAccount:0
+ }
+ if (type == 1) {
+ this.visible1 = true
+ }
+ if (type == 2) {
+ this.visible2 = true
+ }
+ if (type == 3) {
+ this.visible3 = true
+ }
+ if (type == 4) {
+ this.visible4 = true
+ }
+ if (type == 5) {
+ this.visible5 = true
+ }
+ },
+ changeAccount(){
+ this.form.swClaimAccount = parseFloat(this.form.swClaimAccount).toFixed(2)
+ this.form.scClaimAccount = parseFloat(this.form.scClaimAccount).toFixed(2)
+ this.form.wgClaimAccount = parseFloat(this.form.wgClaimAccount).toFixed(2)
+ this.form.ylClaimAccount = parseFloat(this.form.ylClaimAccount).toFixed(2)
+ this.form.totalAccount = parseFloat( this.form.scClaimAccount || 0) + parseFloat( this.form.swClaimAccount || 0)
+ + parseFloat( this.form.wgClaimAccount|| 0)
+ + parseFloat( this.form.ylClaimAccount|| 0)
+ },
+ doSubmit (type) {
+ var that = this
+ if (this.type === 5) {
+ this.$refs.form5.validate((valid) => {
+ // debugger
+ if (!valid) {
+ return
+ }
+ remark({ id: that.model.id, checkInfo: that.form.remarkInfo })
+ .then(response => {
+ this.visible = false
+ this.$emit('success')
+ }).catch(err => {
+ this.$tip.apiFailed(err)
+ })
+ })
+ } else if (this.type === 4) {
+ this.$refs.form4.validate((valid) => {
+ // debugger
+ if (!valid) {
+ return
+ }
+ doneCommit({
+ id: that.model.id,
+ checkInfo: that.form.doneInfo,
+ ylClaimAccount: that.form.ylClaimAccount,
+ wgClaimAccount: that.form.wgClaimAccount,
+ swClaimAccount: that.form.swClaimAccount,
+ scClaimAccount: that.form.scClaimAccount
+ }).then(response => {
+ this.visible = false
+ this.$emit('success')
+ }).catch(err => {
+ this.$tip.apiFailed(err)
+ })
+ })
+ } else if (this.type === 2) {
+ this.$refs.form2.validate((valid) => {
+ // debugger
+ if (!valid) {
+ return
+ }
+ // 鐞嗚禂澶勭悊
+ dealBiz({ id: that.model.id, checkInfo: that.form.bizInfo })
+ .then(response => {
+ this.visible = false
+ this.$emit('success')
+ }).catch(err => {
+ console.log(err)
+ this.$tip.apiFailed(err)
+ }).finally(() => {
+ this.isWorking = false
+ })
+ })
+ } else if (this.type === 3) {
+ this.$refs.form3.validate((valid) => {
+ // debugger
+ if (!valid) {
+ return
+ }
+ back({ id: that.model.id, checkInfo: that.form.backInfo })
+ .then(response => {
+ this.visible = false
+ this.$emit('success')
+ }).catch(err => {
+ console.log(err)
+ this.$tip.apiFailed(err)
+ }).finally(() => {
+ this.isWorking = false
+ })
+ })
+ } else if (this.type === 1) {
+ // 娣诲姞澶囨鍙�
+ this.$refs.form1.validate((valid) => {
+ // debugger
+ if (!valid) {
+ return
+ }
+ addCode({ id: that.model.id, reportNum: that.form.reportNum })
+ .then(response => {
+ this.visible = false
+ this.$emit('success')
+ }).catch(err => {
+ console.log(err)
+ this.$tip.apiFailed(err)
+ }).finally(() => {
+ this.isWorking = false
+ })
+ })
+ }
+ }
+ }
+}
</script>
<style>
.v-modal {
diff --git a/company/src/components/business/OperaTaxesWindow.vue b/company/src/components/business/OperaTaxesWindow.vue
index e3d809c..40e83e2 100644
--- a/company/src/components/business/OperaTaxesWindow.vue
+++ b/company/src/components/business/OperaTaxesWindow.vue
@@ -1,7 +1,7 @@
<template>
<GlobalWindow
:title="title"
- width="50%"
+ width="100%"
submitText="杩斿洖淇敼"
:visible.sync="visible"
:confirm-working="isWorking"
@@ -87,57 +87,59 @@
</template>
<script>
- import BaseOpera from '@/components/base/BaseOpera'
- import GlobalWindow from '@/components/common/GlobalWindow'
- export default {
- name: 'OperaCompanyWindow',
- extends: BaseOpera,
- components: { GlobalWindow },
- data () {
- return {
- // 琛ㄥ崟鏁版嵁
- form: {
- id: null
- },
- // 楠岃瘉瑙勫垯
- rules: {},
- tableData:[]
- }
- },
- created () {
- this.config({
- api: '/business/taxes',
- 'field.id': 'id'
- })
- },
- methods: {
- getSummaries(param) {
- const { columns, data } = param;
- const sums = [];
- columns.forEach((column, index) => {
- if (index === 0) {
- sums[index] = '鍚堣';
- return;
- } else {
- if (index == 9||index==10||index==11||index==12) {
- const values = data.map(item => Number(item[column.property]));
- if (!values.every(value => isNaN(value))) {
- sums[index] = values.reduce((prev, curr) => {
- const value = Number(curr);
- if (!isNaN(value)) {
- return prev + curr;
- } else {
- return prev;
- }
- }, 0);
- }
- }
- }
- });
- return sums;
- }
- }
+import BaseOpera from '@/components/base/BaseOpera'
+import GlobalWindow from '@/components/common/GlobalWindow'
+export default {
+ name: 'OperaCompanyWindow',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ // 琛ㄥ崟鏁版嵁
+ form: {
+ id: null
+ },
+ // 楠岃瘉瑙勫垯
+ rules: {},
+ tableData: []
}
+ },
+ created () {
+ this.config({
+ api: '/business/taxes',
+ 'field.id': 'id'
+ })
+ },
+ methods: {
+ open(title,targer){
+
+ },
+ getSummaries (param) {
+ const { columns, data } = param
+ const sums = []
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = '鍚堣'
+ } else {
+ if (index == 9 || index == 10 || index == 11 || index == 12) {
+ const values = data.map(item => Number(item[column.property]))
+ if (!values.every(value => isNaN(value))) {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = Number(curr)
+ if (!isNaN(value)) {
+ return prev + curr
+ } else {
+ return prev
+ }
+ }, 0)
+ }
+ }
+ }
+ })
+ return sums
+ }
+ }
+}
</script>
<style lang="scss" scoped>
@@ -150,7 +152,7 @@
justify-content: space-between;
margin-bottom: 20px;
span {
- font-size: 18px;
+ font-size: 14px;
font-weight: 500;
color: #000000;
}
diff --git a/company/src/views/business/applyChange.vue b/company/src/views/business/applyChange.vue
index 9296816..1f35fe8 100644
--- a/company/src/views/business/applyChange.vue
+++ b/company/src/views/business/applyChange.vue
@@ -66,7 +66,7 @@
<template slot-scope="{row}">
<span v-if="row.status === 0">寰呯缃�</span>
<span v-if="row.status === 1">宸茬绔�</span>
- <span v-if="row.status === 2">宸蹭笂浼犳壒鍗�</span>
+ <span v-if="row.status === 2">宸茬敓鏁�</span>
<span v-if="row.status === 3 || row.status === 4">閫�鍥炵敵璇�</span>
<span v-if="row.status ===5 || row.status === 8">宸查��鍥�</span>
<span v-if="row.status ===7">宸插叧闂�</span>
diff --git a/company/src/views/business/switchCourt.vue b/company/src/views/business/switchCourt.vue
index 3806712..5bf3682 100644
--- a/company/src/views/business/switchCourt.vue
+++ b/company/src/views/business/switchCourt.vue
@@ -66,7 +66,7 @@
<template slot-scope="{row}">
<span v-if="row.status === 0">寰呯缃�</span>
<span v-if="row.status === 1">宸茬绔�</span>
- <span v-if="row.status === 2">宸蹭笂浼犳壒鍗�</span>
+ <span v-if="row.status === 2">宸茬敓鏁�</span>
<span v-if="row.status === 3 || row.status === 4">閫�鍥炵敵璇�</span>
<span v-if="row.status ===5 || row.status === 8">宸查��鍥�</span>
<span v-if="row.status ===7">宸插叧闂�</span>
diff --git a/company/src/views/business/taxes.vue b/company/src/views/business/taxes.vue
index 6f1a9da..eb05330 100644
--- a/company/src/views/business/taxes.vue
+++ b/company/src/views/business/taxes.vue
@@ -52,9 +52,9 @@
<span v-if="row.status === 2">骞冲彴鎾ゅ洖</span>
</template>
</el-table-column>
- <el-table-column prop="companyId" label="鐢宠浼佷笟" min-width="100px"></el-table-column>
- <el-table-column prop="companyId" label="鐢宠寮�绁ㄦ椂闂�" min-width="100px"></el-table-column>
- <el-table-column prop="companyId" label="鐢宠浜�" min-width="100px"></el-table-column>
+ <el-table-column prop="companyName" label="鐢宠浼佷笟" min-width="100px"></el-table-column>
+ <el-table-column prop="createDate" label="鐢宠寮�绁ㄦ椂闂�" min-width="100px"></el-table-column>
+ <el-table-column prop="creatorName" label="鐢宠浜�" min-width="100px"></el-table-column>
<el-table-column prop="price" label="寮�绁ㄩ噾棰濓紙鍏冿級" min-width="100px"></el-table-column>
<el-table-column label="鎶曚繚绫诲瀷" min-width="100px">
<template slot-scope="{row}">
@@ -70,14 +70,14 @@
</el-table-column>
<el-table-column prop="type" label="鍙戠エ鐢靛瓙鐗�" min-width="100px">
<template slot-scope="{row}">
- <img v-if="row.imgurlfull!=null" :src="row.imgurlfull" style="width: 90px;height: 90px">
+ <img v-if="row.imgurlFull!=null" :src="row.imgurlFull" style="width: 40px;height: 40px">
</template>
</el-table-column>
- <el-table-column label="鎿嶄綔" min-width="100px">
+ <el-table-column label="鎿嶄綔" min-width="180px">
<template slot-scope="{row}">
<el-button v-if="row.status==0" type="text" @click="$refs.OperaTaxesUploadWindow.open('涓婁紶鍙戠エ',row)">涓婁紶鍙戠エ</el-button>
<el-button v-if="row.status ==1 " type="text" @click="$refs.OperaTaxesUploadWindow.open('淇敼鍙戠エ',row)">淇敼鍙戠エ</el-button>
- <el-button type="text">鐢宠璇︽儏</el-button>
+ <el-button type="text" @click="$refs.OperaTaxesWindow.open('鐢宠璇︽儏',row)">鐢宠璇︽儏</el-button>
</template>
</el-table-column>
</el-table>
diff --git a/server/pom.xml b/server/pom.xml
index 108a258..aa859e4 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -190,7 +190,10 @@
<artifactId>mybatis-plus-join</artifactId>
<version>1.4.2.2</version>
</dependency>
-
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-mail</artifactId>
+ </dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 5270010..14fe22d 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -1420,6 +1420,7 @@
}
}
zipOutputStream.closeArchiveEntry();
+ file.delete();
}
}
}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
index 96a19e8..a9025e9 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
@@ -95,9 +95,9 @@
@ApiModelProperty(value = "鏈熸湜淇濋櫓鐢熸晥璧锋湡")
@ExcelColumn(name="鏈熸湜淇濋櫓鐢熸晥璧锋湡")
//鍏ュ弬
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- //鍑哄弬
- @JsonFormat(pattern="yyyy-MM-dd")
+// @DateTimeFormat(pattern = "yyyy-MM-dd")
+// //鍑哄弬
+// @JsonFormat(pattern="yyyy-MM-dd")
private Date validTime;
@ApiModelProperty(value = "鎵瑰崟鍙�")
@@ -193,7 +193,9 @@
@ApiModelProperty(value = "淇濋櫓鐢熸晥姝㈡湡")
@TableField(exist = false)
private Date endTime;
-
+ @ApiModelProperty(value = "鏂规閭欢")
+ @TableField(exist = false)
+ private String solutionEmail;
@ApiModelProperty(value = "鏃ュ織璁板綍")
@TableField(exist = false)
private List<ApplyLog> applyLogList;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java b/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
index 452c5ae..69961ec 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
@@ -71,26 +71,26 @@
@ApiModelProperty(value = "鏈熸湜淇濋櫓鐢熸晥姝㈡湡")
@ExcelColumn(name="鏈熸湜淇濋櫓鐢熸晥姝㈡湡")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @JsonFormat(pattern="yyyy-MM-dd")
+// @DateTimeFormat(pattern = "yyyy-MM-dd")
+// @JsonFormat(pattern="yyyy-MM-dd")
private Date applyEndTime;
@ApiModelProperty(value = "鏈熸湜淇濋櫓鐢熸晥璧锋湡")
@ExcelColumn(name="鏈熸湜淇濋櫓鐢熸晥璧锋湡")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @JsonFormat(pattern="yyyy-MM-dd")
+// @DateTimeFormat(pattern = "yyyy-MM-dd")
+// @JsonFormat(pattern="yyyy-MM-dd")
private Date applyStartTime;
@ApiModelProperty(value = "瀹為檯淇濋櫓鐢熸晥姝㈡湡")
@ExcelColumn(name="瀹為檯淇濋櫓鐢熸晥姝㈡湡")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @JsonFormat(pattern="yyyy-MM-dd")
+// @DateTimeFormat(pattern = "yyyy-MM-dd")
+// @JsonFormat(pattern="yyyy-MM-dd")
private Date endTime;
@ApiModelProperty(value = "瀹為檯淇濋櫓鐢熸晥璧锋湡")
@ExcelColumn(name="瀹為檯淇濋櫓鐢熸晥璧锋湡")
- @DateTimeFormat(pattern = "yyyy-MM-dd")
- @JsonFormat(pattern="yyyy-MM-dd")
+// @DateTimeFormat(pattern = "yyyy-MM-dd")
+// @JsonFormat(pattern="yyyy-MM-dd")
private Date startTime;
@ApiModelProperty(value = "鏈�杩戞搷浣滄椂闂�")
@@ -132,6 +132,9 @@
@ApiModelProperty(value = "鏂规鍚嶇О")
@TableField(exist = false)
private String solutionsName;
+ @ApiModelProperty(value = "鏂规閭欢")
+ @TableField(exist = false)
+ private String solutionEmail;
@ApiModelProperty(value = "绛剧珷鍏抽敭瀛�")
@TableField(exist = false)
private String signKeyword;
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/SmsEmail.java b/server/service/src/main/java/com/doumee/dao/business/model/SmsEmail.java
index 345c331..6babd31 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/SmsEmail.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/SmsEmail.java
@@ -1,5 +1,6 @@
package com.doumee.dao.business.model;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -9,6 +10,8 @@
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
+import java.util.List;
+import java.util.Map;
/**
* 鐭俊閭欢淇℃伅琛�
@@ -86,5 +89,8 @@
@ApiModelProperty(value = "鍏宠仈瀵硅薄绫诲瀷")
@ExcelColumn(name="鍏宠仈瀵硅薄绫诲瀷")
private String objType;
+ @ApiModelProperty(value = "闄勪欢闆嗗悎")
+ @TableField(exist = false)
+ private List<Map<String,Object>> fileList;
}
diff --git a/server/service/src/main/java/com/doumee/service/business/SmsEmailService.java b/server/service/src/main/java/com/doumee/service/business/SmsEmailService.java
index d647275..8d5dfaf 100644
--- a/server/service/src/main/java/com/doumee/service/business/SmsEmailService.java
+++ b/server/service/src/main/java/com/doumee/service/business/SmsEmailService.java
@@ -20,6 +20,7 @@
*/
Integer create(SmsEmail smsEmail);
Integer sendSms(SmsEmail smsEmail);
+ Integer sendEmail(SmsEmail smsEmail);
/**
* 涓婚敭鍒犻櫎
*
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
index 489a5ee..0d06fbd 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -522,19 +522,20 @@
applyLogType = Constants.ApplyLogType.CA_PALTFORM_REFUSE_APPLY;
info = applyLogType.getInfo();
info = info.replace("${param}", param.getCheckInfo());
- update.setStatus(Constants.ApplyChangeStatus.SIGNATURE.getKey());
+//
+ if( Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())){
+ update.setStatus(Constants.ApplyChangeStatus.SIGNATURE.getKey());
+ }else if( Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey())){
+ update.setStatus(Constants.ApplyChangeStatus.UPLOAD.getKey());
+ }
}else{
//濡傛灉鏄悓鎰�,涓ょ鐢宠閫�鍥炵姸鎬侀兘鍙搷浣�
if(!(Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())
||Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey()))){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
}
- applyLogType = Constants.ApplyLogType.CA_PALTFORM_REFUSE_APPLY;
- if( Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())){
- update.setStatus(Constants.ApplyChangeStatus.SIGNATURE.getKey());
- }else if( Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey())){
- update.setStatus(Constants.ApplyChangeStatus.UPLOAD.getKey());
- }
+ update.setStatus(Constants.ApplyChangeStatus.PLATFORM_AGREE.getKey());
+ applyLogType = Constants.ApplyLogType.CA_PLATFORM_AGREE_BACK_APPLY;
}
update.setEditDate(new Date());
update.setEditor(user.getId());
@@ -1320,7 +1321,7 @@
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
Company company = user.getCompany();
if(debugModel){
-company = companyMapper.selectById(model.getCompanyId());
+ company = companyMapper.selectById(model.getCompanyId());
}
if(company== null || StringUtils.isBlank( company.getEmail()) || !Constants.equalsInteger(company.getSignStatus(),Constants.THREE)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝浼佷笟灏氭湭鍏峰鍦ㄧ嚎绛剧珷鏉′欢锛岃鑱旂郴骞冲彴绠$悊鍛樼‘璁");
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 9da21c5..c3e08a2 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
@@ -24,6 +24,8 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.SmsEmailService;
+import com.doumee.service.business.third.EmailService;
import com.doumee.service.business.third.SignService;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -36,6 +38,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.io.File;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -53,7 +56,9 @@
@Autowired
private InsuranceApplyMapper insuranceApplyMapper;
@Autowired
- private ApplyChangeMapper applyChangeMapper;
+ private SmsEmailService smsEmailService;
+ @Autowired
+ private ApplyChangeJoinMapper applyChangeMapper;
@Autowired
private SystemDictDataBiz systemDictDataBiz;
@@ -396,14 +401,13 @@
return tempFileName;
}
}catch (Exception e){
-
}
return null;
}
- public Integer uploadSignedFileDo(InsuranceApply model,String fileurl) {
+ public Multifile uploadSignedFileDo(InsuranceApply model,String fileurl,String fullUrl) {
InsuranceApply update = new InsuranceApply();
update.setEditDate(new Date());
update.setEditor(model.getCreator());
@@ -422,15 +426,19 @@
f.setObjType(Constants.MultiFile.BD_SIGNED_PDF.getKey());
f.setType(Constants.TWO);
f.setFileurl(fileurl);
+ f.setFileurlFull(fullUrl);
+ f.setInfo("鎶曚繚鍗曚紒涓氱绾﹀悎鍚�");
f.setName("鎶曚繚鍗曠绾﹀悎鍚�.pdf");
multifileMapper.insert(f);
Constants.ApplyLogType applyLogType = Constants.ApplyLogType.SIGNATURE;
ApplyLog log = new ApplyLog(update,applyLogType.getName(), null,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
applyLogMapper.insert(log);
- return 1;
+
+ startSendEmail(f, model.getCompanyName(),model.getSolutionsName(),model.getSolutionEmail());
+ return f;
}
- public Integer uploadChangeSignedFileDo(ApplyChange model,String fileurl) {
+ public Multifile uploadChangeSignedFileDo(ApplyChange model,String fileurl,String fullurl) {
ApplyChange update = new ApplyChange();
update.setEditDate(new Date());
update.setEditor(model.getCreator());
@@ -449,19 +457,53 @@
f.setObjType(Constants.equalsInteger(Constants.ZERO,model.getType())?Constants.MultiFile.CA_APPLY_JIAJIAN_SIGN.getKey() : Constants.MultiFile.CA_APPLY_CHANGEUNIT_SIGN.getKey());
f.setType(Constants.TWO);
f.setFileurl(fileurl);
+ f.setFileurlFull(fullurl);
+ f.setInfo("浼佷笟鐢宠琛ㄧ缃叉枃浠�");
f.setName("绛剧珷鐢宠琛�.pdf");
multifileMapper.insert(f);
Constants.ApplyLogType applyLogType =Constants.equalsInteger(Constants.ZERO,model.getType())? Constants.ApplyLogType.CA_JIAJIAN_APPLY_SIGN: Constants.ApplyLogType.CA_CHANGUNIT_APPLY_SIGN;
ApplyLog log = new ApplyLog(update,applyLogType.getName(), null,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
applyLogMapper.insert(log);
- return 1;
+
+ startSendEmail(f,model.getCompanyName(),model.getSolutionsName(),model.getSolutionEmail());
+ return f;
}
+
+ private void startSendEmail(Multifile f, String companyName, String solutionsName, String solutionEmail) {
+ if(StringUtils.isBlank(solutionEmail) || f==null|| StringUtils.isBlank(f.getFileurl())){
+ return;
+ }
+ SmsEmail email = new SmsEmail();
+ email.setTitle(f.getInfo());
+ email.setEmail(solutionEmail);
+ email.setContent("鏉ヨ嚜浼佷笟銆�"+companyName+"銆戝叧浜庝繚闄╂柟妗堛��"+solutionsName+"銆戠殑"+f.getInfo());
+ File file = Constants.getFileByNetFile(f.getFileurlFull(),f.getName());
+ if(file!=null && file.isFile()){
+ Map<String,Object> files = new HashMap<>();
+ files.put("name",f.getName());
+ files.put("file",file);
+ email.setFileList(new ArrayList<>());
+ email.getFileList().add(files);
+ smsEmailService.sendEmail(email);
+ file.delete();//鍙戦�佸悗鍒犻櫎涓存椂鏂囦欢
+ }
+ }
+
@Override
public void dealWaitSignedData(){
- List<InsuranceApply> applyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>().lambda()
+ List<InsuranceApply> applyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class,
+ new MPJLambdaWrapper<InsuranceApply>()
+ .selectAll(InsuranceApply.class)
+ .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
+ .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail)
+ .selectAs(Company::getName,InsuranceApply::getCompanyName)
+ .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+ .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())
.isNotNull(InsuranceApply::getSignApplyNo));
+ String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode();
if(applyList !=null && applyList.size()>0 ){
for(InsuranceApply model : applyList){
String status = signService.linkFileStatus(model.getSignApplyNo());
@@ -474,11 +516,19 @@
//濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
return;
}
- uploadSignedFileDo(model,fileUrl);
+ uploadSignedFileDo(model,fileUrl,path+fileUrl);
return;
}
}
- List<ApplyChange> chagneList = applyChangeMapper.selectList(new QueryWrapper<ApplyChange>().lambda()
+ List<ApplyChange> chagneList = applyChangeMapper.selectJoinList(ApplyChange.class,
+ new MPJLambdaWrapper<ApplyChange>()
+ .selectAll(ApplyChange.class)
+ .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
+ .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail)
+ .selectAs(Company::getName,InsuranceApply::getCompanyName)
+ .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
+ .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+ .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
.eq(ApplyChange::getStatus,Constants.ApplyChangeStatus.UPLOAD.getKey())
.isNotNull(ApplyChange::getSignApplyNo));
if(chagneList !=null && chagneList.size()>0 ){
@@ -493,7 +543,7 @@
//濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
return;
}
- uploadChangeSignedFileDo(model,fileUrl);
+ uploadChangeSignedFileDo(model,fileUrl,path+fileUrl);
return;
}
}
@@ -505,7 +555,18 @@
}
if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE )){
//濡傛灉宸蹭繚鍏�,鍙笅杞界绾﹂檮浠�
- InsuranceApply model = insuranceApplyMapper.selectOne(new QueryWrapper<InsuranceApply>().lambda().eq(InsuranceApply::getSignApplyNo,data.getApplyNo()).last("limit 1" ));
+ String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode();
+ InsuranceApply model = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,
+ new MPJLambdaWrapper<InsuranceApply>()
+ .selectAll(InsuranceApply.class)
+ .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
+ .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail)
+ .selectAs(Company::getName,InsuranceApply::getCompanyName)
+ .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+ .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
+ .eq(InsuranceApply::getSignApplyNo,data.getApplyNo())
+ .last("limit 1" ));
if(model != null && Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())){
//瀹屾垚绛剧讲宸插畬鎴愭搷浣�
String link = signService.linkFile(data.getApplyNo());
@@ -514,11 +575,19 @@
//濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
return;
}
- uploadSignedFileDo(model,fileUrl);
+ uploadSignedFileDo(model,fileUrl,path+fileUrl);
return;
}
-
- ApplyChange applyChange = applyChangeMapper.selectOne(new QueryWrapper<ApplyChange>().lambda().eq(ApplyChange::getSignApplyNo,data.getApplyNo()).last("limit 1" ));
+ ApplyChange applyChange = applyChangeMapper.selectJoinOne(ApplyChange.class,
+ new MPJLambdaWrapper<ApplyChange>()
+ .selectAll(ApplyChange.class)
+ .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
+ .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail)
+ .selectAs(Company::getName,InsuranceApply::getCompanyName)
+ .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
+ .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+ .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
+ .eq(ApplyChange::getSignApplyNo,data.getApplyNo()).last("limit 1" ));
if(applyChange != null &&Constants.equalsInteger(applyChange.getStatus(),Constants.ApplyChangeStatus.UPLOAD.getKey())){
String link = signService.linkFile(data.getApplyNo());
String fileUrl = uploadSignFile(link);
@@ -526,7 +595,7 @@
//濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
return;
}
- uploadChangeSignedFileDo(applyChange,fileUrl);
+ uploadChangeSignedFileDo(applyChange,fileUrl,path+fileUrl);
}
}else if(Constants.equalsInteger(data.getSignStatus(), Constants.TWO )){
//濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓
@@ -628,7 +697,6 @@
info = info.replace("${param}", update.getCheckInfo());
ApplyLog log = new ApplyLog(update,applyLogType.getName(),info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
applyLogMapper.insert(log);
-
return 1;
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
index 99bd7d2..d9e8421 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -196,7 +196,7 @@
Constants.SettleClaimsLogType applyLogType = Constants.SettleClaimsLogType.PLATFORM_REMARK;
String info =applyLogType.getInfo();
- info = info.replace("${param}", update.getCheckInfo());
+ info = info.replace("${param}", param.getCheckInfo());
SettleClaimsLog log = new SettleClaimsLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(), JSONObject.toJSONString(model), JSONObject.toJSONString(update));
settleClaimsLogMapper.insert(log);
return 1;
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
index 0679e4b..78dc00b 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SmsEmailServiceImpl.java
@@ -14,6 +14,7 @@
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.service.business.third.EmailService;
import com.doumee.service.business.third.EmayService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -38,6 +39,8 @@
private SystemDictDataBiz systemDictDataBiz;
@Autowired
private EmayService emayService;
+ @Autowired
+ private EmailService emailService;
public static void isCaptcheValide(SmsEmailMapper smsEmailMapper, String phone, String captche) {
SmsEmail model = smsEmailMapper.selectOne(new QueryWrapper<SmsEmail>().lambda()
@@ -69,11 +72,33 @@
return smsEmail.getId();
}
@Override
+ public Integer sendEmail(SmsEmail smsEmail) {
+ if(StringUtils.isBlank(smsEmail.getEmail())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ boolean result= emailService.sendEmail(smsEmail.getEmail(),smsEmail.getTitle(),smsEmail.getContent(),smsEmail.getFileList());
+ smsEmail.setRemark("閭欢鍙戠敓鎴愬姛");
+ if(!result){
+ smsEmail.setRemark("閭欢鍙戠敓澶辫触");
+ }
+ smsEmail.setIsdeleted(Constants.ZERO);
+ smsEmail.setCreateDate(new Date());
+ smsEmail.setStatus(Constants.ONE);
+ smsEmail.setType(Constants.TWO);
+ smsEmailMapper.insert(smsEmail);
+
+ return smsEmail.getId();
+ }
+ @Override
public Integer sendSms(SmsEmail smsEmail) {
if(StringUtils.isBlank(smsEmail.getPhone())){
throw new BusinessException(ResponseStatus.BAD_REQUEST);
}
String code = Constants.getRandom6Num();
+ boolean result= emayService.sendSingleSms(smsEmail.getPhone(),code);
+ if(!result){
+ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐭俊楠岃瘉鐮佸彂閫佸け璐ワ紝璇风◢鍚庨噸璇曪紒");
+ }
smsEmail.setRemark(code);
smsEmail.setIsdeleted(Constants.ZERO);
smsEmail.setCreateDate(new Date());
@@ -84,6 +109,7 @@
smsEmailMapper.insert(smsEmail);
return smsEmail.getId();
+
}
@Override
diff --git a/server/service/src/main/java/com/doumee/service/business/third/EmailService.java b/server/service/src/main/java/com/doumee/service/business/third/EmailService.java
new file mode 100644
index 0000000..25ba032
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/service/business/third/EmailService.java
@@ -0,0 +1,49 @@
+package com.doumee.service.business.third;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.core.io.FileSystemResource;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.MimeMessageHelper;
+import org.springframework.stereotype.Service;
+
+import javax.activation.DataSource;
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+import java.io.File;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class EmailService {
+ @Autowired
+ private JavaMailSender javaMailSender;//娉ㄥ叆JavaMailSender
+ @Value("${spring.mail.username}")
+ private String fromEmail;
+ public boolean sendEmail(String toEmail, String title, String content, List<Map<String,Object>> fileList) {
+ try {
+ AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
+ context.refresh();
+ MimeMessage message = javaMailSender.createMimeMessage();
+ MimeMessageHelper helper = new MimeMessageHelper(message, true);
+
+ helper.setTo(toEmail);
+ helper.setFrom(fromEmail);
+ helper.setSubject(title);
+ helper.setText(content);
+ if(fileList!=null){
+ for (Map<String,Object> f : fileList){
+ // 璁剧疆闄勪欢
+ helper.addAttachment((String) f.get("name"),new FileSystemResource((File) f.get("file")));
+ }
+ }
+ javaMailSender.send(message);
+ System.out.println("閭欢鍙戦�佹垚鍔燂紒");
+ return true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+ }
diff --git a/server/service/src/main/java/com/doumee/service/business/third/EmayService.java b/server/service/src/main/java/com/doumee/service/business/third/EmayService.java
index 0292bf6..a34bf7b 100644
--- a/server/service/src/main/java/com/doumee/service/business/third/EmayService.java
+++ b/server/service/src/main/java/com/doumee/service/business/third/EmayService.java
@@ -61,30 +61,32 @@
return 0;
}
- public boolean sendSingleSms(String mobile,String content) throws SDKParamsException {
+ public boolean sendSingleSms(String mobile,String content) {
try {
client = new SmsSDKClient(ip,port,appKey,appSecret);
- } catch (SDKParamsException e) {
- throw new RuntimeException(e);
- }
- if(client == null){
- return false;
- }
- String customSmsId = "1";
- String extendedCode = "01";
- SmsSingleRequest request = new SmsSingleRequest(mobile, content, customSmsId, extendedCode, "");
- ResultModel<SmsResponse> result = client.sendSingleSms(request);
- saveInterfaceLog(ip+"/"+port,"銆愮煭淇°�戝彂閫�", JSONObject.toJSONString(result),JSONObject.toJSONString(result));
- if (result.getCode().equals("SUCCESS")) {
- System.out.println("璇锋眰鎴愬姛");
- SmsResponse response = result.getResult();
- System.out.println("sendSingleSms:" + response.toString());
- return true;
- } else {
- System.out.println("璇锋眰澶辫触");
- return false;
+ if(client == null){
+ return false;
+ }
+ String customSmsId = "1";
+ String extendedCode = "01";
+
+ SmsSingleRequest request = new SmsSingleRequest(mobile, content, customSmsId, extendedCode, "");
+ ResultModel<SmsResponse> result = client.sendSingleSms(request);
+ saveInterfaceLog(ip+"/"+port,"銆愮煭淇°�戝彂閫�", JSONObject.toJSONString(result),JSONObject.toJSONString(result));
+ if (result.getCode().equals("SUCCESS")) {
+ System.out.println("璇锋眰鎴愬姛");
+ SmsResponse response = result.getResult();
+ System.out.println("sendSingleSms:" + response.toString());
+ return true;
+ } else {
+ System.out.println("璇锋眰澶辫触");
+ return false;
+ }
+ } catch (Exception e) {
+
}
+ return false;
}
diff --git a/server/service/src/main/resources/application-dev.yml b/server/service/src/main/resources/application-dev.yml
index 997e0f8..c93459c 100644
--- a/server/service/src/main/resources/application-dev.yml
+++ b/server/service/src/main/resources/application-dev.yml
@@ -18,6 +18,18 @@
password: rtjgfEr@&0c0m
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
+ mail:
+ host: smtp.exmail.qq.com
+ username: jp@doumee.com
+ password: 2Jz9HFW2U7vRnCRu
+ default-encoding: UTF-8
+ properties:
+ mail:
+ smtp:
+ auth: true
+ starttls:
+ enable: true
+ required: true
redis:
# database: 0
diff --git a/server/service/src/main/resources/application-pro.yml b/server/service/src/main/resources/application-pro.yml
index 54757db..d051d4e 100644
--- a/server/service/src/main/resources/application-pro.yml
+++ b/server/service/src/main/resources/application-pro.yml
@@ -13,12 +13,22 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://57b57595ddc66.sh.cdb.myqcloud.com:4464/yunyibao?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
- username: test
- password: doumee@168
+ url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/yunyibao?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
+ username: doumee
+ password: rtjgfEr@&0c0m
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
-
+ mail:
+ host: smtp.exmail.qq.com
+ username: jp@doumee.com
+ password: 2Jz9HFW2U7vRnCRu
+ properties:
+ mail:
+ smtp:
+ auth: true
+ starttls:
+ enable: true
+ required: true
redis:
# database: 0
host: 127.0.0.1
@@ -39,7 +49,6 @@
debug_model: false
-captcha_check: true
# Swagger閰嶇疆
swagger:
@@ -49,3 +58,6 @@
enabled: true
# 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
redirect-uri: /
+
+project:
+ imgAuthen: false
\ No newline at end of file
diff --git a/server/service/src/main/resources/application-test.yml b/server/service/src/main/resources/application-test.yml
index 723dedd..828e620 100644
--- a/server/service/src/main/resources/application-test.yml
+++ b/server/service/src/main/resources/application-test.yml
@@ -4,6 +4,8 @@
enabled: true
mime-types: application/json
+ tomcat:
+ max-swallow-size: -1
servlet:
session:
timeout: PT3H #琛ㄧず12灏忔椂
@@ -11,22 +13,35 @@
spring:
# 鏁版嵁婧愰厤缃�
datasource:
- url: jdbc:mysql://57b57595ddc66.sh.cdb.myqcloud.com:4464/yunyibao?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
- username: test
- password: doumee@168
+ url: jdbc:mysql://sh-cdb-aiskr3vy.sql.tencentcdb.com:62443/yunyibao?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8
+ username: doumee
+ password: rtjgfEr@&0c0m
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
+ mail:
+ host: smtp.exmail.qq.com
+ username: jp@doumee.com
+ password: Jiangping0427
+ redis:
+ # database: 0
+ host: 127.0.0.1
+ port: 6379
+ password:
+ timeout: 5000 # 杩炴帴姹犱腑鐨勬渶灏忕┖闂茶繛鎺�
+
+ jackson:
+ time-zone: GMT+8
+ date-format: yyyy-MM-dd HH:mm:ss
knife4j:
enable: true
basic:
enable: true
username: admin
- password: test@168.com
+ password: 111111
-debug_model: true
+debug_model: false
-captcha_check: false
# Swagger閰嶇疆
swagger:
@@ -38,4 +53,4 @@
redirect-uri: /
project:
- imgAuthenti: false
\ No newline at end of file
+ imgAuthen: false
\ No newline at end of file
--
Gitblit v1.9.3