Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
8
8timerapiv200
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
8timerv2
8timerapiv200
Commits
60787f3e
Commit
60787f3e
authored
3 years ago
by
翁国栋
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
运营后台--
保险列表
parent
8c5c01e1
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
669 additions
and
325 deletions
+669
-325
src/main/java/cn/timer/api/bean/insure/CallBack.java
+3
-0
src/main/java/cn/timer/api/bean/insure/InsureUser.java
+8
-2
src/main/java/cn/timer/api/config/interceptor/WebSecurityConfig.java
+2
-1
src/main/java/cn/timer/api/controller/insure/CallBackContorll.java
+84
-3
src/main/java/cn/timer/api/controller/insure/InsureContorll.java
+487
-201
src/main/java/cn/timer/api/controller/superadmin/SuperLoginController.java
+2
-2
src/main/java/cn/timer/api/dao/insure/InsurePolicyMapper.java
+4
-1
src/main/java/cn/timer/api/dao/insure/InsureUserMapper.java
+6
-1
src/main/java/cn/timer/api/dto/insure/InsureDto.java
+3
-0
src/main/java/cn/timer/api/dto/insure/PolicyDto.java
+5
-0
src/main/resources/mapping/insure/InsureApplicantMapper.xml
+0
-38
src/main/resources/mapping/insure/InsurePolicyMapper.xml
+14
-35
src/main/resources/mapping/insure/InsureUserMapper.xml
+50
-40
src/main/resources/mapping/yggl/YgglMainEmpMapper.xml
+1
-1
No files found.
src/main/java/cn/timer/api/bean/insure/CallBack.java
View file @
60787f3e
...
...
@@ -3,6 +3,7 @@ package cn.timer.api.bean.insure;
import
lombok.Data
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* @Description TODO
...
...
@@ -21,4 +22,6 @@ public class CallBack implements Serializable {
private
String
serial_no
;
private
String
policy_file
;
private
String
total_expenditure
;
private
String
endorsement_file
;
private
OrderImportInfo
order_import_info
;
}
This diff is collapsed.
Click to expand it.
src/main/java/cn/timer/api/bean/insure/InsureUser.java
View file @
60787f3e
...
...
@@ -142,7 +142,13 @@ public class InsureUser extends Model<InsureUser> {
@ApiModelProperty
(
value
=
"失效日期"
)
private
Date
policyDateEnd
;
@Transient
private
String
[]
userIds
;
@ApiModelProperty
(
value
=
"投保状态:1成功 2失败 3待更新"
)
private
Integer
insureStatus
;
@ApiModelProperty
(
value
=
"保单id"
)
private
Integer
policyId
;
@ApiModelProperty
(
value
=
"替换流水号,使用trans_id,RP_开头"
)
private
String
replaceTransId
;
}
This diff is collapsed.
Click to expand it.
src/main/java/cn/timer/api/config/interceptor/WebSecurityConfig.java
View file @
60787f3e
...
...
@@ -36,7 +36,8 @@ public class WebSecurityConfig implements WebMvcConfigurer {
registry
.
addInterceptor
(
getSessionInterceptor
())
.
addPathPatterns
(
"/**"
)
.
excludePathPatterns
(
"/callback/**"
)
.
excludePathPatterns
(
"/callBack/policy/**"
)
.
excludePathPatterns
(
"/callBack/policy/CallBack"
)
.
excludePathPatterns
(
"/callBack/policy/insuredCallBack"
)
.
excludePathPatterns
(
"/superLogin/**"
)
.
excludePathPatterns
(
"/actuator/*"
)
.
excludePathPatterns
(
"/doc*"
)
...
...
This diff is collapsed.
Click to expand it.
src/main/java/cn/timer/api/controller/insure/CallBackContorll.java
View file @
60787f3e
package
cn
.
timer
.
api
.
controller
.
insure
;
import
cn.timer.api.bean.admin.AdminAssoTxjlb
;
import
cn.timer.api.bean.insure.CallBack
;
import
cn.timer.api.bean.insure.InsurePolicy
;
import
cn.timer.api.bean.insure.InsureUser
;
import
cn.timer.api.bean.yggl.YgglMainEmp
;
import
com.alibaba.fastjson.JSONObject
;
import
com.aliyuncs.http.HttpRequest
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.github.xiaoymin.knife4j.annotations.ApiOperationSupport
;
import
com.google.common.collect.Maps
;
import
com.google.gson.JsonObject
;
import
com.mysql.cj.util.StringUtils
;
import
com.sun.xml.internal.bind.v2.TODO
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.web.bind.annotation.*
;
import
javax.security.auth.callback.Callback
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
/**
* @Description TODO
...
...
@@ -22,12 +43,72 @@ import javax.security.auth.callback.Callback;
@RequestMapping
(
value
=
"/callBack/policy"
,
produces
=
{
"application/json"
})
public
class
CallBackContorll
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
CallBackContorll
.
class
);
/*保全测试用*/
private
static
String
appidq
=
"1000115041006006938"
;
/*保全测试用*/
private
static
String
secretq
=
"6ba1bf4aa0bd14368c95ff0b9934a17b"
;
@PostMapping
(
value
=
"/insuredCallBack"
)
@ApiOperation
(
value
=
"6.投保申请回调"
,
httpMethod
=
"Post"
,
notes
=
"投保申请回调"
)
@ApiOperationSupport
(
order
=
2
)
private
Integer
c
allBack
(
@RequestParam
String
pid
,
@RequestParam
String
sign
,
@RequestParam
String
timestamp
,
@RequestBody
CallBack
callBack
){
private
String
insuredC
allBack
(
@RequestParam
String
pid
,
@RequestParam
String
sign
,
@RequestParam
String
timestamp
,
@RequestBody
CallBack
callBack
){
log
.
info
(
String
.
valueOf
(
callBack
));
return
1
;
return
"1"
;
}
@PostMapping
(
value
=
"/CallBack"
)
@ApiOperation
(
value
=
"7.保全增员申请回调"
,
httpMethod
=
"Post"
,
notes
=
"投保申请回调"
)
@ApiOperationSupport
(
order
=
2
)
private
Map
callBack
(
HttpServletRequest
request
,
@RequestParam
String
pid
,
@RequestParam
String
sign
,
@RequestParam
String
timestamp
)
throws
IOException
{
Map
map
=
Maps
.
newHashMap
();
map
.
put
(
"status"
,
"error"
);
if
(
StringUtils
.
isNullOrEmpty
(
pid
)||
StringUtils
.
isNullOrEmpty
(
sign
)&&
StringUtils
.
isNullOrEmpty
(
timestamp
)){
return
map
;
}
if
(!
pid
.
equals
(
appidq
)){
return
map
;
}
InputStream
is
=
null
;
is
=
request
.
getInputStream
();
StringBuilder
sb
=
new
StringBuilder
();
byte
[]
b
=
new
byte
[
4096
];
for
(
int
n
;
(
n
=
is
.
read
(
b
))
!=
-
1
;)
{
sb
.
append
(
new
String
(
b
,
0
,
n
));
}
String
value
=
DigestUtils
.
md5Hex
(
appidq
+
secretq
+
timestamp
+
sb
.
toString
());
if
(!
value
.
equals
(
sign
)){
return
map
;
}
CallBack
callBack
=
JSONObject
.
parseObject
(
sb
.
toString
(),
CallBack
.
class
);
if
(
callBack
.
getStatus
().
equals
(
"1"
))
{
log
.
info
(
"callBack"
+
JSONObject
.
toJSONString
(
callBack
));
List
<
InsureUser
>
list
=
InsureUser
.
builder
().
build
().
selectList
(
new
QueryWrapper
<
InsureUser
>().
lambda
().
eq
(
InsureUser:
:
getBatchNo
,
callBack
.
getOrder_import_info
().
getUuid
()));
list
.
forEach
(
i
->
{
i
.
setInsureStatus
(
1
);
i
.
updateById
();
YgglMainEmp
.
builder
().
isInsure
(
1
).
build
().
update
(
new
QueryWrapper
<
YgglMainEmp
>().
lambda
().
eq
(
YgglMainEmp:
:
getId
,
i
.
getUserId
()));
});
List
<
InsureUser
>
oldlist
=
InsureUser
.
builder
().
build
().
selectList
(
new
QueryWrapper
<
InsureUser
>().
lambda
().
eq
(
InsureUser:
:
getReplaceTransId
,
callBack
.
getOrder_import_info
().
getUuid
()));
if
(
oldlist
!=
null
||
oldlist
.
size
()>
0
)
{
oldlist
.
forEach
(
i
->
{
i
.
setInsureStatus
(
4
);
i
.
updateById
();
YgglMainEmp
.
builder
().
isInsure
(
3
).
build
().
update
(
new
QueryWrapper
<
YgglMainEmp
>().
lambda
().
eq
(
YgglMainEmp:
:
getId
,
i
.
getUserId
()));
});
}
InsurePolicy
insurePolicy
=
InsurePolicy
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
InsurePolicy
>().
lambda
().
eq
(
InsurePolicy:
:
getPolicyNo
,
list
.
get
(
0
).
getPolicyNo
()));
if
(
oldlist
==
null
||
oldlist
.
size
()==
0
)
{
insurePolicy
.
setTotalPremium
(
String
.
valueOf
(
Double
.
valueOf
(
insurePolicy
.
getTotalPremium
())
+
Double
.
valueOf
(
callBack
.
getOrder_import_info
().
getTotal_money
())));
}
insurePolicy
.
setPolicyFile
(
callBack
.
getOrder_import_info
().
getEndorsement_file
());
insurePolicy
.
setUpdateTime
(
new
Date
());
insurePolicy
.
updateById
();
}
else
{
//TODO 写入日志
}
Map
trueMap
=
Maps
.
newHashMap
();
trueMap
.
put
(
"status"
,
"1"
);
return
trueMap
;
}
}
This diff is collapsed.
Click to expand it.
src/main/java/cn/timer/api/controller/insure/InsureContorll.java
View file @
60787f3e
package
cn
.
timer
.
api
.
controller
.
insure
;
//import cn.timer.api.bean.insure.InsuredUser;
import
cn.timer.api.bean.crm.CrmBusinessGroupMember
;
import
cn.timer.api.bean.insure.InsureApplicant
;
import
cn.timer.api.bean.insure.InsureLog
;
import
cn.timer.api.bean.insure.InsurePolicy
;
import
cn.timer.api.bean.insure.InsureUser
;
import
cn.timer.api.bean.qyzx.QyzxEntInfoM
;
...
...
@@ -10,6 +9,7 @@ import cn.timer.api.bean.yggl.YgglMainEmp;
import
cn.timer.api.config.annotation.CurrentUser
;
import
cn.timer.api.config.annotation.UserBean
;
import
cn.timer.api.controller.insure.bean.ExcelBean
;
import
cn.timer.api.controller.insure.enums.InsuranceEnum
;
import
cn.timer.api.dao.insure.InsurePolicyMapper
;
import
cn.timer.api.dao.insure.InsureUserMapper
;
import
cn.timer.api.dao.yggl.YgglMainEmpMapper
;
...
...
@@ -17,16 +17,13 @@ import cn.timer.api.dto.insure.InsureDto;
import
cn.timer.api.dto.insure.PolicyDto
;
import
cn.timer.api.utils.*
;
import
com.alibaba.druid.util.Base64
;
import
com.alibaba.fastjson.TypeReference
;
import
com.aliyuncs.http.HttpRequest
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.aliyun.oss.common.utils.StringUtils
;
import
com.beust.jcommander.internal.Lists
;
import
com.github.xiaoymin.knife4j.annotations.ApiOperationSupport
;
import
com.google.common.collect.Maps
;
import
com.google.gson.JsonObject
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.models.auth.In
;
import
org.apache.commons.codec.digest.DigestUtils
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
...
...
@@ -39,15 +36,18 @@ import org.springframework.web.bind.annotation.*;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.*
;
import
java.net.URLEncoder
;
import
java.security.Policy
;
import
java.net.HttpURLConnection
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
java.text.DateFormat
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
com.alibaba.fastjson.JSONObject
;
...
...
@@ -72,9 +72,9 @@ public class InsureContorll {
private
static
String
secret
=
"acb329868c31d5b3ba03de40dac13dd9"
;
/*保全测试用*/
private
static
String
appidq
=
"1000115041006006938"
;
private
static
String
appidq
=
"1000115041006006938"
;
/*保全测试用*/
private
static
String
secretq
=
"6ba1bf4aa0bd14368c95ff0b9934a17b"
;
private
static
String
secretq
=
"6ba1bf4aa0bd14368c95ff0b9934a17b"
;
/*测试用投保上传文件地址*/
...
...
@@ -86,6 +86,8 @@ public class InsureContorll {
/*测试用保全申请地址*/
private
static
String
batchUrl
=
"http://sandbox.portal.unistar-ins.com/fuli/Home/WelfareProduct/batch_declare"
;
private
static
SimpleDateFormat
dtf3
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
@Autowired
private
YgglMainEmpMapper
ygglMainEmpMapper
;
...
...
@@ -98,58 +100,63 @@ public class InsureContorll {
/**
* 设置请求参数
*
* @param sign
* @return
*/
private
Map
setParams
(
String
sign
,
String
appid
,
String
secret
)
{
private
Map
setParams
(
String
sign
,
String
appid
,
String
secret
)
{
/*当前时间戳*/
long
timestamp
=
System
.
currentTimeMillis
()/
1000
;
log
.
info
(
"时间戳"
+
timestamp
);
long
timestamp
=
System
.
currentTimeMillis
()
/
1000
;
log
.
info
(
"时间戳"
+
timestamp
);
Map
paramsMap
=
Maps
.
newHashMap
();
paramsMap
.
put
(
"pid"
,
appid
);
paramsMap
.
put
(
"timestamp"
,
String
.
valueOf
(
timestamp
));
paramsMap
.
put
(
"trace_id"
,
appid
+
timestamp
+
new
Random
().
nextInt
((
9999
-
100
)
+
1
)
+
10
);
paramsMap
.
put
(
"pid"
,
appid
);
paramsMap
.
put
(
"timestamp"
,
String
.
valueOf
(
timestamp
));
paramsMap
.
put
(
"trace_id"
,
appid
+
timestamp
+
new
Random
().
nextInt
((
9999
-
100
)
+
1
)
+
10
);
// paramsMap.put("sign",Md5.md5(appid+secret+timestamp+sign.trim()));
String
value
=
appid
+
secret
+
timestamp
+
sign
;
log
.
info
(
"body参数======"
+
sign
);
String
value
=
appid
+
secret
+
timestamp
+
sign
;
log
.
info
(
"body参数======"
+
sign
);
paramsMap
.
put
(
"sign"
,
DigestUtils
.
md5Hex
(
value
));
log
.
info
(
"params参数======"
+
JSONObject
.
toJSONString
(
paramsMap
));
log
.
info
(
"params参数======"
+
JSONObject
.
toJSONString
(
paramsMap
));
return
paramsMap
;
}
@PostMapping
(
value
=
"/insured_add"
)
@ApiOperation
(
value
=
"1.投保申请"
,
httpMethod
=
"Post"
,
notes
=
"投保申请"
)
@ApiOperationSupport
(
order
=
2
)
public
Result
<
Object
>
insured_add
(
@RequestBody
InsureDto
insureDto
)
{
public
Result
<
Object
>
insured_add
(
@RequestBody
InsureDto
insureDto
)
throws
ParseException
{
QyzxEntInfoM
qyzxEntInfoM
=
QyzxEntInfoM
.
builder
().
id
(
Integer
.
parseInt
(
insureDto
.
getOrgCode
())).
build
().
selectById
();
// 企业信息
DateTimeFormatter
dtf2
=
DateTimeFormatter
.
ofPattern
(
"yyyyMMddHHmmss"
);
DateFormat
dtf3
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
LocalDateTime
now
=
LocalDateTime
.
now
();
Date
date
=
Date
.
from
(
now
.
atZone
(
ZoneId
.
systemDefault
()).
toInstant
());
Map
bodyMap
=
Maps
.
newHashMap
();
ArrayList
<
Map
>
quotationsArry
=
new
ArrayList
<
Map
>();
bodyMap
.
put
(
"is_ss"
,
0
);
Map
quotations
=
Maps
.
newHashMap
();
quotations
.
put
(
"trans_id"
,
"MB_"
+
dtf2
.
format
(
now
));
/*报价请求流水号*/
quotations
.
put
(
"applicant_type"
,
"2"
);
/*投保人类型:2-企业*/
quotations
.
put
(
"quotation_type"
,
3
);
/*报价类型:3-投保申请*/
quotations
.
put
(
"currency"
,
"5"
);
/*币种:5人民币*/
quotations
.
put
(
"source_type"
,
""
);
/*币种:5人民币*/
quotations
.
put
(
"cps_email"
,
""
);
/*币种:5人民币*/
quotations
.
put
(
"cps_tel"
,
""
);
/*币种:5人民币*/
quotations
.
put
(
"last_serial_number"
,
""
);
/*币种:5人民币*/
quotations
.
put
(
"from_source"
,
""
);
/*币种:5人民币*/
quotations
.
put
(
"operator_name"
,
""
);
/*币种:5人民币*/
bodyMap
.
put
(
"is_ss"
,
0
);
Map
quotations
=
Maps
.
newHashMap
();
Integer
price
=
getPrice
(
insureDto
.
getBenefitBasicPlan
(),
insureDto
.
getBenefitOccupationCategory
());
if
(
price
==
0
){
return
ResultUtil
.
error
(
"报价不存在"
);
}
quotations
.
put
(
"trans_id"
,
"MB_"
+
dtf2
.
format
(
now
));
/*报价请求流水号*/
quotations
.
put
(
"applicant_type"
,
"2"
);
/*投保人类型:2-企业*/
quotations
.
put
(
"quotation_type"
,
3
);
/*报价类型:3-投保申请*/
quotations
.
put
(
"currency"
,
"5"
);
/*币种:5人民币*/
quotations
.
put
(
"source_type"
,
""
);
/*币种:5人民币*/
quotations
.
put
(
"cps_email"
,
""
);
/*币种:5人民币*/
quotations
.
put
(
"cps_tel"
,
""
);
/*币种:5人民币*/
quotations
.
put
(
"last_serial_number"
,
""
);
/*币种:5人民币*/
quotations
.
put
(
"from_source"
,
""
);
/*币种:5人民币*/
quotations
.
put
(
"operator_name"
,
""
);
/*币种:5人民币*/
/*企业信息*/
InsureApplicant
insureApplicant
=
InsureApplicant
.
builder
().
id
(
1
).
build
().
selectById
();
if
(
insureApplicant
==
null
)
{
if
(
insureApplicant
==
null
)
{
return
ResultUtil
.
error
(
"未设置投保人"
);
}
Map
companyApplicantMap
=
Maps
.
newHashMap
();
companyApplicantMap
.
put
(
"applicant_e_name"
,
insureApplicant
.
getApplicantEName
());
/*企业/网点名称*/
companyApplicantMap
.
put
(
"applicant_e_address"
,
insureApplicant
.
getApplicantEAddress
());
/*企业/网点地址*/
companyApplicantMap
.
put
(
"applicant_e_name"
,
insureApplicant
.
getApplicantEName
());
/*企业/网点名称*/
companyApplicantMap
.
put
(
"applicant_e_address"
,
insureApplicant
.
getApplicantEAddress
());
/*企业/网点地址*/
companyApplicantMap
.
put
(
"applicant_e_contacts"
,
insureApplicant
.
getApplicantEContacts
());
/*企业授权操作人姓名*/
companyApplicantMap
.
put
(
"applicant_e_phone"
,
insureApplicant
.
getApplicantEPhone
());
/*操作人的联系电话*/
companyApplicantMap
.
put
(
"applicant_e_no_type"
,
insureApplicant
.
getApplicantENoType
());
/*企业证件类型*/
...
...
@@ -157,30 +164,30 @@ public class InsureContorll {
companyApplicantMap
.
put
(
"applicant_e_mail"
,
insureApplicant
.
getApplicantEMail
());
/*企业邮箱*/
companyApplicantMap
.
put
(
"applicant_province_city"
,
"21721"
);
/*省市区*/
/*人员清单填被保人员*/
String
url
=
creaXSSFWorkbook
(
insureDto
.
getUserIds
()
);
if
(!
StringUtil
.
isNotBlank
(
url
))
{
String
url
=
creaXSSFWorkbook
(
insureDto
.
getUserIds
(),
price
);
if
(!
StringUtil
.
isNotBlank
(
url
))
{
return
ResultUtil
.
error
(
"文件错误"
);
}
companyApplicantMap
.
put
(
"applicant_employee_list"
,
url
);
quotations
.
put
(
"company_applicant"
,
companyApplicantMap
);
companyApplicantMap
.
put
(
"applicant_employee_list"
,
url
);
quotations
.
put
(
"company_applicant"
,
companyApplicantMap
);
Map
basicMap
=
Maps
.
newHashMap
();
basicMap
.
put
(
"partner_pid"
,
"1231"
);
/*分销商pid*/
basicMap
.
put
(
"plan_code_id"
,
"61b85207b73d2ab09fb2959"
);
/*计划代码,选项值:61b85207b73d2ab09fb2959 (生产环境) 61b85207b73d2ab09fb2959 (沙箱环境)*/
basicMap
.
put
(
"product_code_id"
,
"61b85207a9f87da19fb5986"
);
/*产品代码,选项值:61b85207a9f87da19fb5986 (生产环境) 61b85207a9f87da19fb5986 (沙箱环境)*/
basicMap
.
put
(
"partner_pid"
,
"1231"
);
/*分销商pid*/
basicMap
.
put
(
"plan_code_id"
,
"61b85207b73d2ab09fb2959"
);
/*计划代码,选项值:61b85207b73d2ab09fb2959 (生产环境) 61b85207b73d2ab09fb2959 (沙箱环境)*/
basicMap
.
put
(
"product_code_id"
,
"61b85207a9f87da19fb5986"
);
/*产品代码,选项值:61b85207a9f87da19fb5986 (生产环境) 61b85207a9f87da19fb5986 (沙箱环境)*/
basicMap
.
put
(
"policy_date_start"
,
insureDto
.
getPolicyDateStart
());
basicMap
.
put
(
"policy_date_end"
,
insureDto
.
getPolicyDateEnd
());
basicMap
.
put
(
"channel"
,
""
);
basicMap
.
put
(
"fee"
,
""
);
basicMap
.
put
(
"partner_user_rate"
,
""
);
basicMap
.
put
(
"promotion_fee"
,
""
);
basicMap
.
put
(
"agent_id"
,
""
);
basicMap
.
put
(
"policy_insure_notify"
,
""
);
basicMap
.
put
(
"promotion_id"
,
0
);
basicMap
.
put
(
"policy_number_last_year"
,
""
);
quotations
.
put
(
"basic"
,
basicMap
);
quotations
.
put
(
"individual_applicant"
,
Maps
.
newHashMap
());
basicMap
.
put
(
"policy_date_end"
,
insureDto
.
getPolicyDateEnd
());
basicMap
.
put
(
"channel"
,
""
);
basicMap
.
put
(
"fee"
,
""
);
basicMap
.
put
(
"partner_user_rate"
,
""
);
basicMap
.
put
(
"promotion_fee"
,
""
);
basicMap
.
put
(
"agent_id"
,
""
);
basicMap
.
put
(
"policy_insure_notify"
,
""
);
basicMap
.
put
(
"promotion_id"
,
0
);
basicMap
.
put
(
"policy_number_last_year"
,
""
);
quotations
.
put
(
"basic"
,
basicMap
);
quotations
.
put
(
"individual_applicant"
,
Maps
.
newHashMap
());
...
...
@@ -188,42 +195,59 @@ public class InsureContorll {
/*被保人员 填被保企业信息*/
ArrayList
<
Map
>
insuredArray
=
new
ArrayList
<>();
Map
insured
=
Maps
.
newHashMap
();
insured
.
put
(
"trans_id"
,
"P_"
+
qyzxEntInfoM
.
getId
()+
"_"
+
dtf2
.
format
(
now
));
insured
.
put
(
"price"
,
insureDto
.
getUserIds
().
length
*
15
);
/*根据基础计划生成*/
insured
.
put
(
"trans_id"
,
"PI_"
+
qyzxEntInfoM
.
getId
()
+
"_"
+
dtf2
.
format
(
now
));
insured
.
put
(
"price"
,
insureDto
.
getUserIds
().
length
*
price
);
/*根据基础计划生成*/
insured
.
put
(
"insured_applicant_relations"
,
"36960"
);
insured
.
put
(
"insured_mobile"
,
qyzxEntInfoM
.
get
LinkMan
Phone
());
insured
.
put
(
"insured_e_contact"
,
qyzxEntInfoM
.
get
LinkMan
());
insured
.
put
(
"insured_mobile"
,
qyzxEntInfoM
.
getPhone
());
insured
.
put
(
"insured_e_contact"
,
qyzxEntInfoM
.
get
OperName
());
insured
.
put
(
"insured_name"
,
qyzxEntInfoM
.
getName
());
insured
.
put
(
"insured_no_type"
,
"3306"
);
insured
.
put
(
"insured_no"
,
qyzxEntInfoM
.
getCreditCode
());
insured
.
put
(
"insured_zm_openid"
,
""
);
insured
.
put
(
"benefit_basic_plan"
,
insureDto
.
getBenefitBasicPlan
());
/*基础计划写死*/
insured
.
put
(
"benefit_occupation_category"
,
insureDto
.
getBenefitOccupationCategory
());
insured
.
put
(
"benefit_EL_employee_number_t"
,
insureDto
.
getUserIds
().
length
);
insured
.
put
(
"benefit_EL_employee_number_t"
,
insureDto
.
getUserIds
().
length
);
insuredArray
.
add
(
insured
);
quotations
.
put
(
"insured"
,
insuredArray
);
quotations
.
put
(
"file"
,
Lists
.
newArrayList
());
quotations
.
put
(
"insured"
,
insuredArray
);
quotations
.
put
(
"file"
,
Lists
.
newArrayList
());
quotations
.
put
(
"specifically_agreed_file"
,
Lists
.
newArrayList
());
quotations
.
put
(
"policy_no"
,
""
);
quotations
.
put
(
"callback_policy"
,
"/callBack/insuredCallBack"
);
quotations
.
put
(
"insured"
,
insuredArray
);
quotations
.
put
(
"callback_policy"
,
"/callBack/
policy/
insuredCallBack"
);
quotations
.
put
(
"insured"
,
insuredArray
);
quotationsArry
.
add
(
quotations
);
bodyMap
.
put
(
"quotations"
,
quotationsArry
);
bodyMap
.
put
(
"quotations"
,
quotationsArry
);
log
.
info
(
JSONObject
.
toJSONString
(
bodyMap
));
Map
dataMap
=
requestAgent
(
bodyMap
);
if
(
dataMap
!=
null
)
{
Object
o
=
dataMap
.
get
(
"data"
);
Map
<
String
,
Object
>
map
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
o
));;
List
<
YgglMainEmp
>
ygglMainEmpList
=
ygglMainEmpMapper
.
selectListByIds
(
insureDto
.
getUserIds
());
Map
policyMap
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
map
.
get
(
"policy"
)),
Map
.
class
);
if
(
dataMap
!=
null
)
{
Object
o
=
dataMap
.
get
(
"data"
);
Map
<
String
,
Object
>
map
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
o
));
List
<
YgglMainEmp
>
ygglMainEmpList
=
ygglMainEmpMapper
.
selectListByIds
(
insureDto
.
getUserIds
());
Map
policyMap
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
map
.
get
(
"policy"
)),
Map
.
class
);
InsureUser
insureUser
;
for
(
YgglMainEmp
y:
ygglMainEmpList
)
{
InsurePolicy
insurePolicy
=
InsurePolicy
.
builder
().
build
();
insurePolicy
.
setPolicyDateStart
(
dtf3
.
parse
(
insureDto
.
getPolicyDateStart
()));
insurePolicy
.
setPolicyDateEnd
(
dtf3
.
parse
(
insureDto
.
getPolicyDateEnd
()));
insurePolicy
.
setPolicyNo
(
policyMap
.
get
(
"policy_no"
).
toString
());
insurePolicy
.
setType
(
2
);
/*年单或者月单*/
insurePolicy
.
setCurrency
(
"5"
);
insurePolicy
.
setStatus
(
"1"
);
insurePolicy
.
setPolicyFile
(
policyMap
.
get
(
"policy_file"
).
toString
());
insurePolicy
.
setKitUrl
(
policyMap
.
get
(
"kit_url"
).
toString
());
insurePolicy
.
setOrgCode
(
qyzxEntInfoM
.
getId
());
insurePolicy
.
setCreateTime
(
date
);
insurePolicy
.
setUpdateTime
(
date
);
insurePolicy
.
setSchemeName
(
"【新】-安诚-雇主责任险(劳务公司)预付款"
);
/*先写死*/
insurePolicy
.
setTotalPremium
(
String
.
valueOf
(
insureDto
.
getUserIds
().
length
*
price
));
insurePolicy
.
insert
();
for
(
YgglMainEmp
y
:
ygglMainEmpList
)
{
insureUser
=
InsureUser
.
builder
().
build
();
insureUser
.
setUserId
(
y
.
getId
());
insureUser
.
setInsuredName
(
qyzxEntInfoM
.
getName
());
insureUser
.
setPrice
(
"15"
);
/*前端获取的保费*/
insureUser
.
setTransId
(
"MB_"
+
dtf2
.
format
(
now
));
insureUser
.
setBatchNo
(
"P_"
+
qyzxEntInfoM
.
getId
()+
"_"
+
dtf2
.
format
(
now
));
insureUser
.
setPrice
(
price
.
toString
());
/*前端获取的保费*/
insureUser
.
setTransId
(
"MB_"
+
dtf2
.
format
(
now
));
insureUser
.
setPremium
(
String
.
valueOf
(
ygglMainEmpList
.
size
()
*
price
));
insureUser
.
setBatchNo
(
"P_"
+
qyzxEntInfoM
.
getId
()
+
"_"
+
dtf2
.
format
(
now
));
insureUser
.
setBenefitBasicPlan
(
insureDto
.
getBenefitBasicPlan
());
insureUser
.
setPolicyNo
(
policyMap
.
get
(
"policy_no"
).
toString
());
insureUser
.
setUserId
(
y
.
getId
());
...
...
@@ -233,42 +257,32 @@ public class InsureContorll {
insureUser
.
setInsuredNo
(
y
.
getZjNum
());
insureUser
.
setInsuredEContact
(
y
.
getName
());
insureUser
.
setApplicantEmployeeList
(
url
);
insureUser
.
setInsureStatus
(
1
);
insureUser
.
setPolicyDateStart
(
dtf3
.
parse
(
insureDto
.
getPolicyDateStart
()));
insureUser
.
setPolicyDateEnd
(
dtf3
.
parse
(
insureDto
.
getPolicyDateEnd
()));
insureUser
.
setStatus
(
"1"
);
insureUser
.
setPolicyId
(
insurePolicy
.
getId
());
y
.
setIsInsure
(
1
);
y
.
insertOrUpdate
();
insureUser
.
insert
();
}
InsurePolicy
insurePolicy
=
InsurePolicy
.
builder
().
build
();
try
{
insurePolicy
.
setPolicyDateStart
(
dtf3
.
parse
(
insureDto
.
getPolicyDateStart
()));
insurePolicy
.
setPolicyDateEnd
(
dtf3
.
parse
(
insureDto
.
getPolicyDateEnd
()));
insurePolicy
.
setPolicyNo
(
policyMap
.
get
(
"policy_no"
).
toString
());
insurePolicy
.
setType
(
2
);
/*年单或者月单*/
insurePolicy
.
setCurrency
(
"5"
);
insurePolicy
.
setStatus
(
"1"
);
insurePolicy
.
setPolicyFile
(
policyMap
.
get
(
"policy_file"
).
toString
());
insurePolicy
.
setKitUrl
(
policyMap
.
get
(
"kit_url"
).
toString
());
insurePolicy
.
setOrgCode
(
qyzxEntInfoM
.
getId
());
insurePolicy
.
setCreateTime
(
new
Date
());
insurePolicy
.
setSchemeName
(
"【新】-安诚-雇主责任险(劳务公司)预付款"
);
/*先写死*/
insurePolicy
.
insert
();
}
catch
(
ParseException
e
)
{
insurePolicy
.
setPolicyDateStart
(
null
);
insurePolicy
.
setPolicyDateEnd
(
null
);
e
.
printStackTrace
();
}
}
return
ResultUtil
.
error
(
""
);
}
/*测试用生产环境不需要*/
synchronized
private
Map
requestAgent
(
Map
bodyMap
){
String
data
=
HttpUtils
.
sendPost
(
insuredUrl
,
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appid
,
secret
),
bodyMap
);
Map
dataMap
=
JSONObject
.
parseObject
(
data
,
Map
.
class
);
synchronized
private
Map
requestAgent
(
Map
bodyMap
)
{
String
data
=
HttpUtils
.
sendPost
(
insuredUrl
,
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appid
,
secret
),
bodyMap
);
Map
dataMap
=
JSONObject
.
parseObject
(
data
,
Map
.
class
);
InsureLog
.
builder
().
requestParam
(
JSONObject
.
toJSONString
(
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appid
,
secret
))).
type
(
1
)
.
requestData
(
JSONObject
.
toJSONString
(
bodyMap
)).
createTime
(
new
Date
()).
requestType
(
1
).
returnBody
(
data
).
requestPath
(
insuredUrl
)
.
returnCode
(
dataMap
.
get
(
"errcode"
).
toString
()).
returnMsg
(
dataMap
.
get
(
"errmsg"
).
toString
()).
build
().
insert
();
if
(
dataMap
.
get
(
"errcode"
).
toString
().
equals
(
"suc"
))
{
return
dataMap
;
}
else
{
if
(
dataMap
.
get
(
"errcode"
).
toString
().
equals
(
"e1"
)&&(
dataMap
.
get
(
"errmsg"
).
toString
().
equals
(
"出单中"
)||
dataMap
.
get
(
"errmsg"
).
toString
().
equals
(
"系统正在处理中,请稍候再试"
)))
{
}
else
{
if
(
dataMap
.
get
(
"errcode"
).
toString
().
equals
(
"e1"
)
&&
(
dataMap
.
get
(
"errmsg"
).
toString
().
equals
(
"出单中"
)
||
dataMap
.
get
(
"errmsg"
).
toString
().
equals
(
"系统正在处理中,请稍候再试"
)))
{
try
{
Thread
.
sleep
(
30000
);
return
requestAgent
(
bodyMap
);
...
...
@@ -282,90 +296,55 @@ public class InsureContorll {
}
@PostMapping
(
value
=
"/file_upload"
)
@ApiOperation
(
value
=
"3.投保上传文件"
,
httpMethod
=
"Post"
,
notes
=
"上传文件"
)
@ApiOperationSupport
(
order
=
2
)
public
Result
<
Object
>
fileUpload
(
@CurrentUser
UserBean
userBean
,
@RequestParam
(
required
=
true
)
MultipartFile
file
)
{
if
(
file
==
null
)
{
return
ResultUtil
.
error
(
"上传失败,请选择上传文件"
);
}
byte
[]
bytes
=
null
;
try
{
bytes
=
file
.
getBytes
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
log
.
warn
(
"文件转换Base64异常"
);
}
String
fileBase64
=
Base64
.
byteArrayToBase64
(
bytes
);
/*body参数 begin*/
Map
bodyMap
=
Maps
.
newHashMap
();
bodyMap
.
put
(
"app"
,
"mall"
);
bodyMap
.
put
(
"name"
,
file
.
getName
());
bodyMap
.
put
(
"file"
,
fileBase64
);
/*end*/
String
data
=
HttpUtils
.
sendPost
(
uploadUrl
,
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appid
,
secret
),
bodyMap
);
log
.
info
(
"请求返回的结果====="
+
data
);
/*文件流base64*/
return
ResultUtil
.
data
(
message
(
data
));
};
/**
* 设置错误信息
* @param data
* @return
*/
private
Object
message
(
String
data
){
Map
<
String
,
Object
>
dataMap
=
JSONObject
.
parseObject
(
data
);
if
(
dataMap
.
get
(
"errcode"
).
toString
().
equals
(
"suc"
))
{
return
dataMap
.
get
(
"data"
);
}
return
dataMap
.
get
(
"errmsg"
);
}
/**
* 生成投保问文件
*
* @param ids
* @return
*/
public
String
creaXSSFWorkbook
(
String
[]
ids
)
{
if
(
ids
.
length
<=
0
)
{
public
String
creaXSSFWorkbook
(
String
[]
ids
,
Integer
price
)
{
if
(
ids
.
length
<=
0
)
{
return
"error"
;
}
LocalDate
localDate
=
LocalDate
.
now
();
List
<
YgglMainEmp
>
ygglMainEmpList
=
ygglMainEmpMapper
.
selectListByIds
(
ids
);
List
list
=
Lists
.
newArrayList
();
for
(
YgglMainEmp
y:
ygglMainEmpList
)
{
String
[]
arr
=
new
String
[]{
String
.
valueOf
(
y
.
getId
()),
y
.
getName
(),
"身份证"
,
y
.
getZjNum
(),
"50万意外/5万医疗/扩展24小时(A类)"
,
""
,
"深圳名邦人力资源管理有限公司"
,
"无"
,
"A类"
};
Date
date
=
new
Date
();
List
<
YgglMainEmp
>
ygglMainEmpList
=
ygglMainEmpMapper
.
selectListByIds
(
ids
);
List
list
=
Lists
.
newArrayList
();
for
(
YgglMainEmp
y
:
ygglMainEmpList
)
{
String
[]
arr
=
new
String
[]{
String
.
valueOf
(
y
.
getId
()),
y
.
getName
(),
"身份证"
,
y
.
getZjNum
(),
InsuranceEnum
.
getEnum
(
price
).
getName
(),
""
,
"深圳名邦人力资源管理有限公司"
,
"无"
,
InsuranceEnum
.
getEnum
(
price
).
getType
()};
list
.
add
(
arr
);
}
String
[]
rowName
=
new
String
[]{
"ID"
,
"name"
,
"ID_type"
,
"ID_number"
,
"Scheme_name"
,
"Date_start"
,
"Branch"
,
"Tricycle_frame_number"
,
"benefit_occupation_category"
};
String
[]
rowName
=
new
String
[]{
"ID"
,
"name"
,
"ID_type"
,
"ID_number"
,
"Scheme_name"
,
"Date_start"
,
"Branch"
,
"Tricycle_frame_number"
,
"benefit_occupation_category"
};
XSSFWorkbook
xssfWorkbook
=
ExcelUtils
.
exportExcel
(
localDate
+
"_"
+
list
.
size
()+
"名人员清单.xlsx"
,
rowName
,
list
);
XSSFWorkbook
xssfWorkbook
=
ExcelUtils
.
exportExcel
(
localDate
+
"_投保"
+
list
.
size
()
+
"名人员清单.xlsx"
,
rowName
,
list
);
ByteArrayOutputStream
byteArrayOutputStream
=
new
ByteArrayOutputStream
();
ByteArrayOutputStream
byteArrayOutputStream
=
new
ByteArrayOutputStream
();
try
{
xssfWorkbook
.
write
(
byteArrayOutputStream
);
byte
[]
bytes
=
byteArrayOutputStream
.
toByteArray
();
String
fileBase64
=
Base64
.
byteArrayToBase64
(
bytes
);
String
fileBase64
=
Base64
.
byteArrayToBase64
(
bytes
);
/*body参数 begin*/
Map
bodyMap
=
Maps
.
newHashMap
();
bodyMap
.
put
(
"app"
,
"mall"
);
bodyMap
.
put
(
"name"
,
localDate
+
"_"
+
list
.
size
()+
"名人员清单.xlsx"
);
bodyMap
.
put
(
"file"
,
fileBase64
);
Map
bodyMap
=
Maps
.
newHashMap
();
bodyMap
.
put
(
"app"
,
"mall"
);
bodyMap
.
put
(
"name"
,
localDate
+
"_"
+
list
.
size
()
+
"名人员清单.xlsx"
);
bodyMap
.
put
(
"file"
,
fileBase64
);
/*end*/
String
data
=
HttpUtils
.
sendPost
(
uploadUrl
,
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appid
,
secret
),
bodyMap
);
Map
<
String
,
Object
>
dataMap
=
JSONObject
.
parseObject
(
data
);
String
data
=
HttpUtils
.
sendPost
(
uploadUrl
,
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appid
,
secret
),
bodyMap
);
Map
<
String
,
Object
>
dataMap
=
JSONObject
.
parseObject
(
data
);
/*创建日志*/
InsureLog
.
builder
().
requestParam
(
JSONObject
.
toJSONString
(
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appid
,
secret
))).
type
(
4
)
.
requestData
(
JSONObject
.
toJSONString
(
bodyMap
)).
createTime
(
new
Date
()).
requestType
(
1
).
returnBody
(
data
).
requestPath
(
uploadUrl
)
.
returnCode
(
dataMap
.
get
(
"errcode"
).
toString
()).
returnMsg
(
dataMap
.
get
(
"errmsg"
).
toString
()).
build
().
insert
();
if
(
dataMap
.
get
(
"errcode"
).
toString
().
equals
(
"suc"
))
{
Object
o
=
dataMap
.
get
(
"data"
);
Map
<
String
,
Object
>
map
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
o
));
Object
o
=
dataMap
.
get
(
"data"
);
Map
<
String
,
Object
>
map
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
o
));
return
map
.
get
(
"url"
).
toString
();
}
/*文件流base64*/
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
}
finally
{
try
{
xssfWorkbook
.
close
();
byteArrayOutputStream
.
close
();
...
...
@@ -377,97 +356,156 @@ public class InsureContorll {
return
"suc"
;
}
@PostMapping
(
value
=
"/policyList"
)
@ApiOperation
(
value
=
"3.保单列表"
,
httpMethod
=
"Post"
,
notes
=
"保单列表"
)
@ApiOperationSupport
(
order
=
2
)
public
Result
<
Object
>
policyList
(
@RequestBody
PolicyDto
policyDto
)
{
List
<
PolicyDto
>
list
=
insureUserMapper
.
selectPolicyList
(
String
.
valueOf
(
policyDto
.
getId
()));
return
ResultUtil
.
data
(
Optional
.
ofNullable
(
list
).
orElse
(
Lists
.
newArrayList
()));
Map
map
=
Maps
.
newHashMap
();
List
<
PolicyDto
>
list
=
insureUserMapper
.
selectPolicyList
(
policyDto
.
getPage
(),
String
.
valueOf
(
policyDto
.
getId
()));
map
.
put
(
"list"
,
Optional
.
ofNullable
(
list
).
orElse
(
Lists
.
newArrayList
()));
map
.
put
(
"total"
,
insureUserMapper
.
totalUser
(
String
.
valueOf
(
policyDto
.
getId
())));
return
ResultUtil
.
data
(
map
);
}
@PostMapping
(
value
=
"/policyListAdmin"
)
@ApiOperation
(
value
=
"4.保单列表--运营后台端"
,
httpMethod
=
"Post"
,
notes
=
"保单列表"
)
@ApiOperation
(
value
=
"4.保单列表--运营后台端"
,
httpMethod
=
"Post"
,
notes
=
"保单列表
--运营后台端
"
)
@ApiOperationSupport
(
order
=
2
)
public
Result
<
Object
>
policyListAdmin
(
@RequestBody
InsurePolicy
insurePolicy
)
{
List
<
PolicyDto
>
list
=
insurePolicyMapper
.
policyList
();
return
ResultUtil
.
data
(
list
);
public
Result
<
Object
>
policyListAdmin
(
@RequestBody
cn
.
timer
.
api
.
utils
.
Page
page
)
{
Map
map
=
Maps
.
newHashMap
();
List
<
PolicyDto
>
list
=
insurePolicyMapper
.
policyList
(
page
);
map
.
put
(
"list"
,
list
);
map
.
put
(
"total"
,
insurePolicyMapper
.
totalPolicy
());
return
ResultUtil
.
data
(
map
);
}
@GetMapping
(
value
=
"/policyDetail"
)
@ApiOperation
(
value
=
"5.保单信息"
,
httpMethod
=
"Get"
,
notes
=
"保单
列表
"
)
@ApiOperation
(
value
=
"5.保单信息"
,
httpMethod
=
"Get"
,
notes
=
"保单
信息
"
)
@ApiOperationSupport
(
order
=
2
)
public
Result
<
Object
>
policyDetail
(
@RequestParam
(
"policyId"
)
Integer
policyId
)
{
PolicyDto
policyDto
=
insurePolicyMapper
.
getPolicyDetail
(
policyId
);
if
(
policyDto
==
null
)
{
PolicyDto
policyDto
=
insurePolicyMapper
.
getPolicyDetail
(
policyId
);
if
(
policyDto
==
null
)
{
return
ResultUtil
.
error
(
"保单不存在"
);
}
return
ResultUtil
.
data
(
policyDto
);
}
@PostMapping
(
value
=
"/joinUser"
)
@ApiOperation
(
value
=
"
5
.增员"
,
httpMethod
=
"Post"
,
notes
=
"增员"
)
@ApiOperation
(
value
=
"
2
.增员"
,
httpMethod
=
"Post"
,
notes
=
"增员"
)
@ApiOperationSupport
(
order
=
2
)
public
Result
<
Object
>
policyDetail
(
@RequestBody
InsureDto
insureDto
)
{
InsurePolicy
insurePolicy
=
InsurePolicy
.
builder
().
id
(
Integer
.
parseInt
(
insureDto
.
getId
())).
build
().
selectById
();
if
(
insurePolicy
==
null
){
public
Result
<
Object
>
joinUser
(
@RequestBody
InsureDto
insureDto
)
throws
ParseException
{
InsurePolicy
insurePolicy
=
InsurePolicy
.
builder
().
id
(
Integer
.
parseInt
(
insureDto
.
getId
())).
build
().
selectById
();
if
(
insurePolicy
==
null
)
{
return
ResultUtil
.
error
(
"保单不存在"
);
}
Integer
price
=
getPrice
(
insureDto
.
getBenefitBasicPlan
(),
insureDto
.
getBenefitOccupationCategory
());
LocalDateTime
now
=
LocalDateTime
.
now
();
String
url
=
creaXSSFWorkbook1
(
insureDto
.
getUserIds
());
log
.
info
(
"保全增员文件地址"
,
url
);
String
url
=
creaXSSFWorkbook1
(
insureDto
.
getUserIds
()
,
insureDto
.
getPolicyDateStart
(),
price
);
log
.
info
(
"保全增员文件地址"
,
url
);
DateTimeFormatter
dtf2
=
DateTimeFormatter
.
ofPattern
(
"yyyyMMddHHmmss"
);
Map
bodyMap
=
Maps
.
newHashMap
();
bodyMap
.
put
(
"contract_no"
,
insurePolicy
.
getPolicyNo
());
bodyMap
.
put
(
"order_status"
,
"1"
);
bodyMap
.
put
(
"callback_plan"
,
""
);
bodyMap
.
put
(
"file_url"
,
url
);
bodyMap
.
put
(
"from_source"
,
"API"
);
bodyMap
.
put
(
"import_review_callback"
,
""
);
bodyMap
.
put
(
"import_callback"
,
""
);
bodyMap
.
put
(
"third_uuid"
,
"BQ_"
+
insurePolicy
.
getOrgCode
()+
"_"
+
dtf2
.
format
(
now
));
String
data
=
HttpUtils
.
sendPost
(
batchUrl
,
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appidq
,
secretq
),
bodyMap
);
log
.
info
(
"保全增员返回"
,
data
);
return
ResultUtil
.
data
(
""
);
bodyMap
.
put
(
"contract_no"
,
insurePolicy
.
getPolicyNo
());
bodyMap
.
put
(
"order_status"
,
"1"
);
bodyMap
.
put
(
"callback_plan"
,
""
);
bodyMap
.
put
(
"file_url"
,
url
);
bodyMap
.
put
(
"from_source"
,
"API"
);
bodyMap
.
put
(
"import_review_callback"
,
""
);
bodyMap
.
put
(
"import_callback"
,
"http://vdr75zl.nat.ipyingshe.com/callBack/policy/CallBack"
);
bodyMap
.
put
(
"third_uuid"
,
"IS_"
+
insurePolicy
.
getOrgCode
()
+
"_"
+
dtf2
.
format
(
now
));
String
responData
=
HttpUtils
.
sendPost
(
batchUrl
,
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appidq
,
secretq
),
bodyMap
);
Map
<
String
,
Object
>
dataMap
=
JSONObject
.
parseObject
(
responData
);
InsureLog
.
builder
().
requestParam
(
JSONObject
.
toJSONString
(
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appid
,
secret
))).
type
(
2
)
.
requestData
(
JSONObject
.
toJSONString
(
bodyMap
)).
createTime
(
new
Date
()).
requestType
(
1
).
returnBody
(
responData
).
requestPath
(
batchUrl
)
.
returnCode
(
dataMap
.
get
(
"errcode"
).
toString
()).
returnMsg
(
dataMap
.
get
(
"errmsg"
).
toString
()).
build
().
insert
();
if
(
dataMap
.
get
(
"errcode"
).
toString
().
equals
(
"suc"
))
{
Map
<
String
,
Object
>
data
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
dataMap
.
get
(
"data"
)));
Map
<
String
,
Object
>
orderImportInfo
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
data
.
get
(
"order_import_info"
)));
String
status
=
orderImportInfo
.
get
(
"status"
).
toString
();
if
(
status
.
equals
(
"5"
)
||
status
.
equals
(
"6"
)
||
status
.
equals
(
"7"
))
{
//TODO 写入日志
return
ResultUtil
.
error
(
"信息填写错误,请查看日志"
);
}
else
{
List
<
YgglMainEmp
>
ygglMainEmpList
=
ygglMainEmpMapper
.
selectListByIds
(
insureDto
.
getUserIds
());
QyzxEntInfoM
qyzxEntInfoM
=
QyzxEntInfoM
.
builder
().
id
(
Integer
.
parseInt
(
insureDto
.
getOrgCode
())).
build
().
selectById
();
ygglMainEmpList
.
forEach
(
y
->
{
try
{
InsureUser
.
builder
()
.
transId
(
"IS_"
+
insurePolicy
.
getOrgCode
()
+
"_"
+
dtf2
.
format
(
now
))
.
insuredName
(
qyzxEntInfoM
.
getName
())
.
price
(
price
.
toString
())
/*前端获取的保费*/
.
premium
(
String
.
valueOf
(
price
*
ygglMainEmpList
.
size
()))
.
batchNo
(
data
.
get
(
"import_uuid"
).
toString
())
.
benefitBasicPlan
(
insureDto
.
getBenefitBasicPlan
())
.
policyNo
(
orderImportInfo
.
get
(
"contract_no"
).
toString
())
.
userId
(
y
.
getId
())
.
orgCode
(
y
.
getOrgCode
())
.
benefitOccupationCategory
(
insureDto
.
getBenefitOccupationCategory
())
.
insuredMobile
(
y
.
getPhone
())
.
benefitOccupationCategory
(
insureDto
.
getBenefitOccupationCategory
())
.
insuredNo
(
y
.
getZjNum
())
.
insuredEContact
(
y
.
getName
())
.
applicantEmployeeList
(
data
.
get
(
"file_url"
).
toString
())
.
policyDateStart
(
dtf3
.
parse
(
insureDto
.
getPolicyDateStart
()))
.
policyDateEnd
(
dtf3
.
parse
(
insureDto
.
getPolicyDateEnd
()))
.
status
(
"1"
).
insureStatus
(
3
).
policyId
(
insurePolicy
.
getId
()).
build
().
insert
();
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
y
.
setIsInsure
(
2
);
y
.
insertOrUpdate
();
});
return
ResultUtil
.
data
(
"核保成功,等待系统更新"
);
}
}
return
ResultUtil
.
error
(
dataMap
.
get
(
"请求异常"
));
}
/**
* 生成保全增员文件
*
* @param ids
* @return
*/
public
String
creaXSSFWorkbook1
(
String
[]
ids
)
{
if
(
ids
.
length
<=
0
)
{
public
String
creaXSSFWorkbook1
(
String
[]
ids
,
String
date
,
Integer
price
)
{
if
(
ids
.
length
<=
0
)
{
return
"error"
;
}
LocalDate
localDate
=
LocalDate
.
now
();
List
<
YgglMainEmp
>
ygglMainEmpList
=
ygglMainEmpMapper
.
selectListByIds
(
ids
);
List
list
=
Lists
.
newArrayList
();
for
(
YgglMainEmp
y
:
ygglMainEmpList
)
{
String
[]
arr
=
new
String
[]{
String
.
valueOf
(
y
.
getId
()),
y
.
getName
(),
"身份证"
,
y
.
getZjNum
(),
"50万意外/5万医疗/扩展24小时(A类)"
,
""
,
"深圳名邦人力资源管理有限公司"
,
"无"
,
"A类"
};
List
<
YgglMainEmp
>
ygglMainEmpList
=
ygglMainEmpMapper
.
selectListByIds
(
ids
);
List
list
=
Lists
.
newArrayList
();
for
(
YgglMainEmp
y
:
ygglMainEmpList
)
{
String
[]
arr
=
new
String
[]{
String
.
valueOf
(
y
.
getId
()),
y
.
getName
(),
"身份证"
,
y
.
getZjNum
(),
InsuranceEnum
.
getEnum
(
price
).
getName
(),
date
,
"深圳名邦人力资源管理有限公司"
,
"无"
,
InsuranceEnum
.
getEnum
(
price
).
getType
()
};
list
.
add
(
arr
);
}
String
[]
rowName
=
new
String
[]{
"ID"
,
"name"
,
"ID_type"
,
"ID_number"
,
"Scheme_name"
,
"Date_start"
,
"Branch"
,
"Tricycle_frame_number"
,
"benefit_occupation_category"
};
String
[]
rowName
=
new
String
[]{
"ID"
,
"name"
,
"ID_type"
,
"ID_number"
,
"Scheme_name"
,
"Date_start"
,
"Branch"
,
"Tricycle_frame_number"
,
"benefit_occupation_category"
};
XSSFWorkbook
xssfWorkbook
=
ExcelUtils
.
exportExcel
(
localDate
+
"_"
+
list
.
size
()+
"名人员清单.xlsx"
,
rowName
,
list
);
XSSFWorkbook
xssfWorkbook
=
ExcelUtils
.
exportExcel
(
localDate
+
"_补充"
+
list
.
size
()
+
"名人员清单.xlsx"
,
rowName
,
list
);
ByteArrayOutputStream
byteArrayOutputStream
=
new
ByteArrayOutputStream
();
try
{
xssfWorkbook
.
write
(
byteArrayOutputStream
);
byte
[]
bytes
=
byteArrayOutputStream
.
toByteArray
();
String
fileBase64
=
Base64
.
byteArrayToBase64
(
bytes
);
String
fileBase64
=
Base64
.
byteArrayToBase64
(
bytes
);
/*body参数 begin*/
Map
bodyMap
=
Maps
.
newHashMap
();
bodyMap
.
put
(
"media"
,
fileBase64
);
Map
bodyMap
=
Maps
.
newHashMap
();
bodyMap
.
put
(
"media"
,
fileBase64
);
/*end*/
String
data
=
HttpUtils
.
sendPost
(
uploadUrl2
,
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appidq
,
secretq
),
bodyMap
);
Map
<
String
,
Object
>
dataMap
=
JSONObject
.
parseObject
(
data
);
String
data
=
HttpUtils
.
sendPost
(
uploadUrl2
,
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appidq
,
secretq
),
bodyMap
);
Map
<
String
,
Object
>
dataMap
=
JSONObject
.
parseObject
(
data
);
InsureLog
.
builder
().
requestParam
(
JSONObject
.
toJSONString
(
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appid
,
secret
))).
type
(
5
)
.
requestData
(
JSONObject
.
toJSONString
(
bodyMap
)).
createTime
(
new
Date
()).
requestType
(
1
).
returnBody
(
data
).
requestPath
(
uploadUrl2
)
.
returnCode
(
dataMap
.
get
(
"errcode"
).
toString
()).
returnMsg
(
dataMap
.
get
(
"errmsg"
).
toString
()).
build
().
insert
();
if
(
dataMap
.
get
(
"errcode"
).
toString
().
equals
(
"suc"
))
{
Object
o
=
dataMap
.
get
(
"data"
);
Map
<
String
,
Object
>
map
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
o
));
Object
o
=
dataMap
.
get
(
"data"
);
Map
<
String
,
Object
>
map
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
o
));
return
map
.
get
(
"file_url"
).
toString
();
}
/*文件流base64*/
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
}
finally
{
try
{
xssfWorkbook
.
close
();
byteArrayOutputStream
.
close
();
...
...
@@ -475,8 +513,256 @@ public class InsureContorll {
e
.
printStackTrace
();
}
}
return
"suc"
;
}
@GetMapping
(
value
=
"/downPolicyFile"
)
@ApiOperation
(
value
=
"7.下载电子表单"
,
httpMethod
=
"Get"
,
notes
=
"下载电子表单"
)
@ApiOperationSupport
(
order
=
2
)
public
void
downPolicyFile
(
@RequestParam
(
"policyId"
)
String
policyId
,
HttpServletRequest
request
,
HttpServletResponse
response
)
{
InsurePolicy
insurePolicy
=
InsurePolicy
.
builder
().
id
(
Integer
.
parseInt
(
policyId
)).
build
().
selectById
();
if
(
insurePolicy
==
null
||
StringUtils
.
isNullOrEmpty
(
insurePolicy
.
getPolicyFile
())){
return
;
}
BufferedInputStream
in
=
null
;
OutputStream
os
=
null
;
try
{
response
.
setContentType
(
"application/octet-stream"
);
response
.
setHeader
(
"content-disposition"
,
"attachment; filename="
+
new
String
((
insurePolicy
.
getPolicyNo
()+
".pdf"
).
getBytes
(
"UTF8"
),
"ISO-8859-1"
));
response
.
setCharacterEncoding
(
"UTF-8"
);
URL
url
=
new
URL
(
insurePolicy
.
getPolicyFile
());
in
=
new
BufferedInputStream
(
url
.
openStream
());
os
=
response
.
getOutputStream
();
int
i
;
while
((
i
=
in
.
read
())
!=
-
1
)
{
os
.
write
(
i
);
}
os
.
flush
();
in
.
close
();
response
.
getOutputStream
();
}
catch
(
MalformedURLException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
if
(
in
!=
null
)
{
in
.
close
();
}
if
(
os
!=
null
)
{
os
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
@PostMapping
(
value
=
"/replaceUser"
)
@ApiOperation
(
value
=
"6.保全替换"
,
httpMethod
=
"Post"
,
notes
=
"保全替换"
)
@ApiOperationSupport
(
order
=
2
)
public
Result
<
Object
>
replaceUser
(
@RequestBody
InsureDto
insureDto
)
{
InsurePolicy
insurePolicy
=
InsurePolicy
.
builder
().
id
(
Integer
.
parseInt
(
insureDto
.
getId
())).
build
().
selectById
();
if
(
insurePolicy
==
null
)
{
return
ResultUtil
.
error
(
"保单不存在"
);
}
List
<
InsureUser
>
oldInsureUserList
=
insureUserMapper
.
selectListByIds
(
insureDto
.
getOldIds
());
String
[]
oldUser
=
new
String
[
oldInsureUserList
.
size
()];
for
(
int
i
=
0
;
i
<
oldInsureUserList
.
size
();
i
++)
{
oldUser
[
i
]=
oldInsureUserList
.
get
(
i
).
getUserId
().
toString
();
}
Integer
price
=
getPrice
(
insureDto
.
getBenefitBasicPlan
(),
insureDto
.
getBenefitOccupationCategory
());
LocalDateTime
now
=
LocalDateTime
.
now
();
String
url
=
creaXSSFWorkbook2
(
insureDto
.
getUserIds
(),
insureDto
.
getPolicyDateStart
(),
oldUser
,
insureDto
.
getBenefitOccupationCategory
());
log
.
info
(
"保全替换文件地址"
,
url
);
DateTimeFormatter
dtf2
=
DateTimeFormatter
.
ofPattern
(
"yyyyMMddHHmmss"
);
Map
bodyMap
=
Maps
.
newHashMap
();
bodyMap
.
put
(
"contract_no"
,
insurePolicy
.
getPolicyNo
());
bodyMap
.
put
(
"order_status"
,
"3"
);
bodyMap
.
put
(
"callback_plan"
,
""
);
bodyMap
.
put
(
"file_url"
,
url
);
bodyMap
.
put
(
"from_source"
,
"API"
);
bodyMap
.
put
(
"import_review_callback"
,
""
);
bodyMap
.
put
(
"import_callback"
,
"http://vdr75zl.nat.ipyingshe.com/callBack/policy/CallBack"
);
bodyMap
.
put
(
"third_uuid"
,
"RP_"
+
insurePolicy
.
getOrgCode
()
+
"_"
+
dtf2
.
format
(
now
));
String
responData
=
HttpUtils
.
sendPost
(
batchUrl
,
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appidq
,
secretq
),
bodyMap
);
Map
<
String
,
Object
>
dataMap
=
JSONObject
.
parseObject
(
responData
);
InsureLog
.
builder
().
requestParam
(
JSONObject
.
toJSONString
(
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appid
,
secret
))).
type
(
3
)
.
requestData
(
JSONObject
.
toJSONString
(
bodyMap
)).
createTime
(
new
Date
()).
requestType
(
1
).
returnBody
(
responData
).
requestPath
(
batchUrl
)
.
returnCode
(
dataMap
.
get
(
"errcode"
).
toString
()).
returnMsg
(
dataMap
.
get
(
"errmsg"
).
toString
()).
build
().
insert
();
if
(
dataMap
.
get
(
"errcode"
).
toString
().
equals
(
"suc"
))
{
Map
<
String
,
Object
>
data
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
dataMap
.
get
(
"data"
)));
Map
<
String
,
Object
>
orderImportInfo
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
data
.
get
(
"order_import_info"
)));
String
status
=
orderImportInfo
.
get
(
"status"
).
toString
();
if
(
status
.
equals
(
"5"
)
||
status
.
equals
(
"6"
)
||
status
.
equals
(
"7"
))
{
//TODO 写入日志
return
ResultUtil
.
error
(
"信息填写错误,请查看日志"
);
}
else
{
List
<
YgglMainEmp
>
ygglMainEmpList
=
ygglMainEmpMapper
.
selectListByIds
(
insureDto
.
getUserIds
());
QyzxEntInfoM
qyzxEntInfoM
=
QyzxEntInfoM
.
builder
().
id
(
Integer
.
parseInt
(
insureDto
.
getOrgCode
())).
build
().
selectById
();
ygglMainEmpList
.
forEach
(
y
->
{
try
{
InsureUser
.
builder
()
.
transId
(
"RP_"
+
insurePolicy
.
getOrgCode
()
+
"_"
+
dtf2
.
format
(
now
))
.
insuredName
(
qyzxEntInfoM
.
getName
())
.
price
(
price
.
toString
())
/*前端获取的保费*/
.
premium
(
String
.
valueOf
(
price
*
ygglMainEmpList
.
size
()))
.
batchNo
(
data
.
get
(
"import_uuid"
).
toString
())
.
benefitBasicPlan
(
insureDto
.
getBenefitBasicPlan
())
.
policyNo
(
orderImportInfo
.
get
(
"contract_no"
).
toString
())
.
userId
(
y
.
getId
())
.
orgCode
(
y
.
getOrgCode
())
.
benefitOccupationCategory
(
insureDto
.
getBenefitOccupationCategory
())
.
insuredMobile
(
y
.
getPhone
())
.
benefitOccupationCategory
(
insureDto
.
getBenefitOccupationCategory
())
.
insuredNo
(
y
.
getZjNum
())
.
insuredEContact
(
y
.
getName
())
.
applicantEmployeeList
(
data
.
get
(
"file_url"
).
toString
())
.
policyDateStart
(
dtf3
.
parse
(
insureDto
.
getPolicyDateStart
()))
.
policyDateEnd
(
dtf3
.
parse
(
insureDto
.
getPolicyDateEnd
()))
.
status
(
"1"
).
insureStatus
(
3
).
policyId
(
insurePolicy
.
getId
()).
build
().
insert
();
}
catch
(
ParseException
e
)
{
e
.
printStackTrace
();
}
y
.
setIsInsure
(
2
);
y
.
insertOrUpdate
();
});
oldInsureUserList
.
forEach
(
o
->{
o
.
setReplaceTransId
(
data
.
get
(
"import_uuid"
).
toString
());
o
.
updateById
();
});
return
ResultUtil
.
data
(
"核保成功,等待系统更新"
);
}
}
return
ResultUtil
.
data
(
"成功"
);
}
/**
* 生成保全替换文件
*
* @param ids
* @return
*/
public
String
creaXSSFWorkbook2
(
String
[]
ids
,
String
date
,
String
[]
oldIds
,
String
type
)
{
if
(
ids
.
length
<=
0
||
oldIds
.
length
<=
0
)
{
return
"error"
;
}
LocalDate
localDate
=
LocalDate
.
now
();
List
<
YgglMainEmp
>
newList
=
ygglMainEmpMapper
.
selectListByIds
(
ids
);
List
<
YgglMainEmp
>
oldList
=
ygglMainEmpMapper
.
selectListByIds
(
oldIds
);
if
(
newList
.
size
()!=
oldList
.
size
()){
return
"error"
;
}
List
list
=
Lists
.
newArrayList
();
for
(
int
i
=
0
;
i
<
newList
.
size
();
i
++)
{
String
[]
arr
=
new
String
[]{
String
.
valueOf
(
oldList
.
get
(
i
).
getId
()),
oldList
.
get
(
i
).
getName
(),
"身份证"
,
oldList
.
get
(
i
).
getZjNum
(),
date
.
substring
(
0
,
10
),
newList
.
get
(
i
).
getName
(),
"身份证"
,
newList
.
get
(
i
).
getZjNum
(),
""
,
""
,
""
,
""
,
""
,
""
,
"无"
,
"1"
,
type
.
equals
(
"63119"
)?
"A类"
:
type
.
equals
(
"63120"
)?
"B类"
:
"C类"
};
list
.
add
(
arr
);
}
String
[]
rowName
=
new
String
[]{
"ID"
,
"name"
,
"ID_type"
,
"ID_number"
,
"Update_date"
,
"replace_name"
,
"replace_ID_type"
,
"replace_ID_number"
,
"Date_of_birth"
,
"insured_type"
,
"insured_relationship"
,
"cert_type_related_insured"
,
"insured_relationship_id"
,
"Branch"
,
"Tricycle_frame_number"
,
"insured_number"
,
"benefit_occupation_category"
};
XSSFWorkbook
xssfWorkbook
=
ExcelUtils
.
exportExcel
(
localDate
+
"_替换"
+
list
.
size
()
+
"名人员清单.xlsx"
,
rowName
,
list
);
ByteArrayOutputStream
byteArrayOutputStream
=
new
ByteArrayOutputStream
();
try
{
xssfWorkbook
.
write
(
byteArrayOutputStream
);
byte
[]
bytes
=
byteArrayOutputStream
.
toByteArray
();
String
fileBase64
=
Base64
.
byteArrayToBase64
(
bytes
);
/*body参数 begin*/
Map
bodyMap
=
Maps
.
newHashMap
();
bodyMap
.
put
(
"media"
,
fileBase64
);
/*end*/
String
data
=
HttpUtils
.
sendPost
(
uploadUrl2
,
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appidq
,
secretq
),
bodyMap
);
Map
<
String
,
Object
>
dataMap
=
JSONObject
.
parseObject
(
data
);
InsureLog
.
builder
().
requestParam
(
JSONObject
.
toJSONString
(
setParams
(
JSONObject
.
toJSONString
(
bodyMap
),
appid
,
secret
))).
type
(
6
)
.
requestData
(
JSONObject
.
toJSONString
(
bodyMap
)).
createTime
(
new
Date
()).
requestType
(
1
).
returnBody
(
data
).
requestPath
(
uploadUrl2
)
.
returnCode
(
dataMap
.
get
(
"errcode"
).
toString
()).
returnMsg
(
dataMap
.
get
(
"errmsg"
).
toString
()).
build
().
insert
();
if
(
dataMap
.
get
(
"errcode"
).
toString
().
equals
(
"suc"
))
{
Object
o
=
dataMap
.
get
(
"data"
);
Map
<
String
,
Object
>
map
=
JSONObject
.
parseObject
(
JSONObject
.
toJSONString
(
o
));
return
map
.
get
(
"file_url"
).
toString
();
}
/*文件流base64*/
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
xssfWorkbook
.
close
();
byteArrayOutputStream
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
"suc"
;
}
/*获取基础计划的价格*/
private
Integer
getPrice
(
String
plan
,
String
type
){
/*
基础计划
30万雇主/3万医疗 36968,
50万雇主/5万医疗 36969,
80万雇主/10万医疗 36970,
80万雇主/20万医疗 36971,
100万雇主/10万医疗 36972
*/
/*行业类型
* A类 63119
* B类 63120
* C类 63121\
* */
switch
(
plan
){
case
"36968"
:
if
(
type
.
equals
(
"63119"
)){
return
12
;
}
else
if
(
type
.
equals
(
"63120"
)){
return
18
;
}
break
;
case
"36969"
:
if
(
type
.
equals
(
"63119"
)){
return
15
;
}
else
if
(
type
.
equals
(
"63120"
)){
return
20
;
}
else
if
(
type
.
equals
(
"63121"
)){
return
60
;
}
break
;
case
"36970"
:
if
(
type
.
equals
(
"63119"
)){
return
18
;
}
else
if
(
type
.
equals
(
"63120"
)){
return
35
;
}
else
if
(
type
.
equals
(
"63121"
)){
return
75
;
}
break
;
case
"36971"
:
if
(
type
.
equals
(
"63119"
)){
return
25
;
}
else
if
(
type
.
equals
(
"63120"
)){
return
38
;
}
break
;
case
"36972"
:
if
(
type
.
equals
(
"63119"
)){
return
28
;
}
else
if
(
type
.
equals
(
"63120"
)){
return
40
;
}
break
;
}
return
0
;
}
}
This diff is collapsed.
Click to expand it.
src/main/java/cn/timer/api/controller/superadmin/SuperLoginController.java
View file @
60787f3e
...
...
@@ -34,7 +34,7 @@ public class SuperLoginController {
@Autowired
private
HttpSession
session
;
@PostMapping
(
value
=
"/adminLogin"
)
@ApiOperation
(
value
=
"运营后台登录"
,
httpMethod
=
"P
OST
"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"运营后台登录"
,
httpMethod
=
"P
ost
"
,
notes
=
"接口发布说明"
)
public
Result
<
Object
>
adminLogin
(
@RequestBody
EntRegisterDto
entRegisterDto
,
HttpServletRequest
request
){
String
ip
=
UserIp
.
getIpAddr
(
request
);
AdminAccount
adminAccount
=
AdminAccount
.
builder
().
build
().
selectOne
(
new
QueryWrapper
<
AdminAccount
>().
lambda
()
...
...
@@ -49,7 +49,7 @@ public class SuperLoginController {
return
ResultUtil
.
data
(
adminAccount
);
};
@PostMapping
(
value
=
"/adminOutLogin"
)
@ApiOperation
(
value
=
"运营后台退出"
,
httpMethod
=
"P
OST
"
,
notes
=
"接口发布说明"
)
@ApiOperation
(
value
=
"运营后台退出"
,
httpMethod
=
"P
ost
"
,
notes
=
"接口发布说明"
)
public
Result
<
String
>
adminOutLogin
(
HttpServletRequest
request
){
session
=
request
.
getSession
();
session
.
removeAttribute
(
"ai"
);
...
...
This diff is collapsed.
Click to expand it.
src/main/java/cn/timer/api/dao/insure/InsurePolicyMapper.java
View file @
60787f3e
...
...
@@ -2,7 +2,9 @@ package cn.timer.api.dao.insure;
import
cn.timer.api.bean.insure.InsurePolicy
;
import
cn.timer.api.dto.insure.PolicyDto
;
import
cn.timer.api.utils.Page
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
io.swagger.models.auth.In
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
...
...
@@ -17,7 +19,8 @@ import java.util.List;
*/
@Repository
public
interface
InsurePolicyMapper
extends
BaseMapper
<
InsurePolicy
>
{
public
List
<
PolicyDto
>
policyList
();
public
List
<
PolicyDto
>
policyList
(
@Param
(
"page"
)
Page
page
);
PolicyDto
getPolicyDetail
(
@Param
(
"id"
)
Integer
id
);
Integer
totalPolicy
();
}
This diff is collapsed.
Click to expand it.
src/main/java/cn/timer/api/dao/insure/InsureUserMapper.java
View file @
60787f3e
package
cn
.
timer
.
api
.
dao
.
insure
;
import
cn.timer.api.bean.insure.InsureUser
;
import
cn.timer.api.bean.yggl.YgglMainEmp
;
import
cn.timer.api.dto.insure.PolicyDto
;
import
cn.timer.api.utils.Page
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
...
...
@@ -16,6 +19,8 @@ import java.util.List;
*/
@Repository
public
interface
InsureUserMapper
extends
BaseMapper
<
InsureUser
>
{
public
List
<
PolicyDto
>
selectPolicyList
(
String
id
);
List
<
PolicyDto
>
selectPolicyList
(
@Param
(
"page"
)
Page
page
,
@Param
(
"id"
)
String
id
);
Integer
totalUser
(
@Param
(
"id"
)
String
id
);
List
<
InsureUser
>
selectListByIds
(
@Param
(
"array"
)
String
[]
ids
);
}
This diff is collapsed.
Click to expand it.
src/main/java/cn/timer/api/dto/insure/InsureDto.java
View file @
60787f3e
package
cn
.
timer
.
api
.
dto
.
insure
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.models.auth.In
;
import
lombok.AllArgsConstructor
;
import
lombok.Builder
;
import
lombok.Data
;
...
...
@@ -28,5 +29,7 @@ public class InsureDto {
private
String
benefitBasicPlan
;
/*方案名称*/
private
String
benefitOccupationCategory
;
private
String
tricycleFrameNumber
;
private
Integer
type
;
/*类型 1是新增 3是替换*/
private
String
[]
oldIds
;
// private String
}
This diff is collapsed.
Click to expand it.
src/main/java/cn/timer/api/dto/insure/PolicyDto.java
View file @
60787f3e
package
cn
.
timer
.
api
.
dto
.
insure
;
import
cn.timer.api.utils.Page
;
import
lombok.Data
;
import
java.util.Date
;
...
...
@@ -31,5 +32,9 @@ public class PolicyDto {
private
String
benefitBasicPlan
;
private
String
price
;
private
String
orgCode
;
private
Page
page
;
private
String
policyFile
;
private
String
benefitOccupationCategory
;
private
Integer
userId
;
}
This diff is collapsed.
Click to expand it.
src/main/resources/mapping/insure/InsureApplicantMapper.xml
View file @
60787f3e
...
...
@@ -259,44 +259,6 @@
</foreach>
</insert>
<update
id=
"update"
parameterType=
"cn.timer.api.bean.insure.InsureApplicant"
>
update insure_applicant
<set>
<if
test=
"applicantEName != null"
>
`applicant_e_name` = #{applicantEName},
</if>
<if
test=
"applicantEAddress != null"
>
`applicant_e_address` = #{applicantEAddress},
</if>
<if
test=
"applicantEmployeeList != null"
>
`applicant_employee_list` = #{applicantEmployeeList},
</if>
<if
test=
"applicantEContacts != null"
>
`applicant_e_contacts` = #{applicantEContacts},
</if>
<if
test=
"applicantEPhone != null"
>
`applicant_e_phone` = #{applicantEPhone},
</if>
<if
test=
"applicantENoType != null"
>
`applicant_e_no_type` = #{applicantENoType},
</if>
<if
test=
"applicantENo != null"
>
`applicant_e_no` = #{applicantENo},
</if>
<if
test=
"applicantEMail != null"
>
`applicant_e_mail` = #{applicantEMail},
</if>
<if
test=
"applicantProvinceCity != null"
>
`applicant_province_city` = #{applicantProvinceCity},
</if>
<if
test=
"applicantInvoiceReceivingAddress != null"
>
`applicant_invoice_receiving_address` =
#{applicantInvoiceReceivingAddress},
</if>
<if
test=
"applicantInvoiceBillingPhone != null"
>
`applicant_invoice_billing_phone` =
#{applicantInvoiceBillingPhone},
</if>
<if
test=
"applicantBusinessBankName != null"
>
`applicant_business_bank_name` =
#{applicantBusinessBankName},
</if>
<if
test=
"policyNo != null"
>
`policy_no` = #{policyNo},
</if>
<if
test=
"applicantType != null"
>
`applicant_type` = #{applicantType},
</if>
<if
test=
"transId != null"
>
`trans_id` = #{transId},
</if>
<if
test=
"currency != null"
>
`currency` = #{currency},
</if>
<if
test=
"applicantInvoicedAmount != null"
>
`applicant_invoiced_amount` = #{applicantInvoicedAmount}
</if>
<if
test=
"applicantCorporateBankAccount != null"
>
`applicant_corporate_bank_account` = #{applicantCorporateBankAccount}
</if>
</set>
where id = #{id}
</update>
<delete
id=
"delete"
>
delete
from insure_applicant
where id = #{value}
</delete>
<delete
id=
"deleteBatch"
>
delete from insure_applicant where id in
<foreach
item=
"id"
collection=
"array"
open=
"("
separator=
","
close=
")"
>
...
...
This diff is collapsed.
Click to expand it.
src/main/resources/mapping/insure/InsurePolicyMapper.xml
View file @
60787f3e
...
...
@@ -224,36 +224,6 @@
</insert>
<update
id=
"update"
parameterType=
"cn.timer.api.bean.insure.InsurePolicy"
>
update insure_policy
<set>
<if
test=
"schemeName != null"
>
`scheme_name` = #{schemeName},
</if>
<if
test=
"policyDateStart != null"
>
`policy_date_start` = #{policyDateStart},
</if>
<if
test=
"policyDateEnd != null"
>
`policy_date_end` = #{policyDateEnd},
</if>
<if
test=
"productCodeId != null"
>
`product_code_id` = #{productCodeId},
</if>
<if
test=
"planCodeId != null"
>
`plan_code_id` = #{planCodeId},
</if>
<if
test=
"partnerPid != null"
>
`partner_pid` = #{partnerPid},
</if>
<if
test=
"policyNo != null"
>
`policy_no` = #{policyNo},
</if>
<if
test=
"type != null"
>
`type` = #{type},
</if>
<if
test=
"currency != null"
>
`currency` = #{currency},
</if>
<if
test=
"totalPremium != null"
>
`total_premium` = #{totalPremium},
</if>
<if
test=
"status != null"
>
`status` = #{status},
</if>
<if
test=
"policyFile != null"
>
`policy_file` = #{policyFile},
</if>
<if
test=
"kitUrl != null"
>
`kit_url` = #{kitUrl},
</if>
<if
test=
"insureApplicantId != null"
>
`insure_applicant_id` = #{insureApplicantId},
</if>
<if
test=
"orgCode != null"
>
`org_code` = #{orgCode},
</if>
<if
test=
"createTime != null"
>
`create_time` = #{createTime}
</if>
<if
test=
"updateTime != null"
>
`update_time` = #{updateTime}
</if>
</set>
where id = #{id}
</update>
<delete
id=
"delete"
>
delete
from insure_policy
where id = #{value}
</delete>
<delete
id=
"deleteBatch"
>
delete from insure_policy where id in
<foreach
item=
"id"
collection=
"array"
open=
"("
separator=
","
close=
")"
>
...
...
@@ -264,12 +234,20 @@
<select
id=
"policyList"
resultType=
"cn.timer.api.dto.insure.PolicyDto"
>
select ip.id AS id, ip.scheme_name AS schemeName, ip.type AS type, count(iu.id) AS totaPolicy,
count(iu.org_code) AS totalCompany, count(iu.id) AS totalUser, ip.total_premium AS totalPremium,
ip.update_time AS updateTime
ip.update_time AS updateTime
,ip.policy_file AS policyFile
from insure_policy ip
LEFT JOIN insure_user iu on iu.policy_no = ip.policy_no
GROUP BY ip.policy_no
LEFT JOIN insure_user iu on iu.policy_id = ip.id
where iu.insure_status=1
GROUP BY ip.id
<if
test=
"page.offset != null and page.totalPage !=null"
>
limit #{page.offset},#{page.totalPage}
</if>
</select>
<select
id=
"totalPolicy"
resultType=
"java.lang.Integer"
>
select count(ip.id)
from insure_policy ip
</select>
<select
id=
"getPolicyDetail"
resultType=
"cn.timer.api.dto.insure.PolicyDto"
>
SELECT
...
...
@@ -280,10 +258,11 @@
ip.policy_no as policyNo,
ip.org_code as orgCode,
iu.insured_name as insuredName,
iu.benefit_basic_plan as benefitBasicPlan
iu.benefit_basic_plan as benefitBasicPlan,
iu.benefit_occupation_category as benefitOccupationCategory
FROM
insure_policy ip
LEFT JOIN insure_user iu ON iu.policy_
no = ip.policy_no
LEFT JOIN insure_user iu ON iu.policy_
id = ip.id
WHERE
ip.id = #{id}
LIMIT 1
...
...
This diff is collapsed.
Click to expand it.
src/main/resources/mapping/insure/InsureUserMapper.xml
View file @
60787f3e
...
...
@@ -26,6 +26,9 @@
<result
property=
"applicantEmployeeList"
column=
"applicant_employee_list"
/>
<result
property=
"policyDateStart"
column=
"policy_date_start"
/>
<result
property=
"policyDateEnd"
column=
"policy_date_end"
/>
<result
property=
"insureStatus"
column=
"insure_status"
/>
<result
property=
"policyId"
column=
"policy_id"
/>
<result
property=
"replaceTransId"
column=
"replace_trans_id"
/>
</resultMap>
<select
id=
"queryObject"
resultType=
"cn.timer.api.bean.insure.InsureUser"
>
...
...
@@ -66,6 +69,8 @@
<if
test=
"applicantEmployeeList != null and applicantEmployeeList != ''"
>
AND `applicant_employee_list` =
#{applicantEmployeeList}
</if>
<if
test=
"insureStatus != null and insureStatus != ''"
>
AND `insure_status` = #{insureStatus}
</if>
<if
test=
"policyId != null and policyId != ''"
>
AND `policy_id` = #{policyId}
</if>
</where>
<choose>
<when
test=
"sidx != null and sidx.trim() != ''"
>
...
...
@@ -112,6 +117,8 @@
<if
test=
"applicantEmployeeList != null and applicantEmployeeList != ''"
>
AND `applicant_employee_list` =
#{applicantEmployeeList}
</if>
<if
test=
"insureStatus != null and insureStatus != ''"
>
AND `insure_status` = #{insureStatus}
</if>
<if
test=
"policyId != null and policyId != ''"
>
AND `policy_id` = #{policyId}
</if>
</where>
</select>
...
...
@@ -134,7 +141,9 @@
`type`,
`org_code`,
`user_id`,
`applicant_employee_list`)
`applicant_employee_list`,
`insure_status`,
`policy_id`)
values (#{transId},
#{price},
#{insuredName},
...
...
@@ -152,7 +161,8 @@
#{type},
#{orgCode},
#{userId},
#{applicantEmployeeList})
#{applicantEmployeeList},
#{policyId})
</insert>
<insert
id=
"saveSelective"
parameterType=
"cn.timer.api.bean.insure.InsureUser"
useGeneratedKeys=
"true"
...
...
@@ -177,6 +187,8 @@
<if
test=
"orgCode != null"
>
,`org_code`
</if>
<if
test=
"userId != null"
>
,`user_id`
</if>
<if
test=
"applicantEmployeeList != null"
>
,`applicant_employee_list`
</if>
<if
test=
"insureStatus != null"
>
,`insure_status`
</if>
<if
test=
"policyId != null"
>
,`policy_id`
</if>
)
values
(
...
...
@@ -198,6 +210,8 @@
<if
test=
"orgCode != null"
>
,#{orgCode}
</if>
<if
test=
"userId != null"
>
,#{userId}
</if>
<if
test=
"applicantEmployeeList != null"
>
,#{applicantEmployeeList}
</if>
<if
test=
"insureStatus != null"
>
,#{insureStatus}
</if>
<if
test=
"policyId != null"
>
,#{policyId}
</if>
)
</insert>
...
...
@@ -222,7 +236,9 @@
`type`,
`org_code`,
`user_id`,
`applicant_employee_list`
`applicant_employee_list`,
`insure_status`,
`policy_id`
)
values
<foreach
collection=
"list"
item=
"item"
index=
"index"
separator=
","
>
...
...
@@ -244,45 +260,14 @@
#{item.type},
#{item.orgCode},
#{item.userId},
#{item.applicantEmployeeList}
#{item.applicantEmployeeList},
#{item.insureStatus},
#{item.policyId}
)
</foreach>
</insert>
<update
id=
"update"
parameterType=
"cn.timer.api.bean.insure.InsureUser"
>
update insure_user
<set>
<if
test=
"transId != null"
>
`trans_id` = #{transId},
</if>
<if
test=
"price != null"
>
`price` = #{price},
</if>
<if
test=
"insuredName != null"
>
`insured_name` = #{insuredName},
</if>
<if
test=
"batchNo != null"
>
`batch_no` = #{batchNo},
</if>
<if
test=
"premium != null"
>
`premium` = #{premium},
</if>
<if
test=
"insuredMobile != null"
>
`insured_mobile` = #{insuredMobile},
</if>
<if
test=
"insuredNo != null"
>
`insured_no` = #{insuredNo},
</if>
<if
test=
"insuredEContact != null"
>
`insured_e_contact` = #{insuredEContact},
</if>
<if
test=
"benefitBasicPlan != null"
>
`benefit_basic_plan` = #{benefitBasicPlan},
</if>
<if
test=
"benefitOccupationCategory != null"
>
`benefit_occupation_category` = #{benefitOccupationCategory},
</if>
<if
test=
"benefitElEmployeeNumberT != null"
>
`benefit_EL_employee_number_t` = #{benefitElEmployeeNumberT},
</if>
<if
test=
"tricycleFrameNumber != null"
>
`Tricycle_frame_number` = #{tricycleFrameNumber},
</if>
<if
test=
"policyNo != null"
>
`policy_no` = #{policyNo},
</if>
<if
test=
"status != null"
>
`status` = #{status},
</if>
<if
test=
"type != null"
>
`type` = #{type},
</if>
<if
test=
"orgCode != null"
>
`org_code` = #{orgCode},
</if>
<if
test=
"userId != null"
>
`user_id` = #{userId},
</if>
<if
test=
"applicantEmployeeList != null"
>
`applicant_employee_list` = #{applicantEmployeeList}
</if>
</set>
where id = #{id}
</update>
<delete
id=
"delete"
>
delete
from insure_user
where id = #{value}
</delete>
<delete
id=
"deleteBatch"
>
delete from insure_user where id in
<foreach
item=
"id"
collection=
"array"
open=
"("
separator=
","
close=
")"
>
...
...
@@ -292,13 +277,38 @@
<select
id=
"selectPolicyList"
resultType=
"cn.timer.api.dto.insure.PolicyDto"
>
select iu.id,yme.`name`,yme.zj_type,yme.zj_num,iu.policy_no,iu.`status`,ip.scheme_name,iu.policy_date_start,
iu.policy_date_end,ip.create_time,iu.insured_name,iu.benefit_basic_plan AS benefitBasicPlan,iu.price AS price from insure_user iu
iu.policy_date_end,ip.create_time,iu.insured_name,iu.benefit_basic_plan AS benefitBasicPlan,iu.price AS price,
iu.user_id as userId
from insure_user iu
LEFT JOIN yggl_main_emp yme on yme.id=iu.user_id
LEFT JOIN insure_policy ip on ip.
policy_no=iu.policy_no
where yme.org_code = 3
LEFT JOIN insure_policy ip on ip.
id=iu.policy_id
where yme.org_code = 3
AND iu.insure_status=1
<if
test=
"id !=null and id !=''"
>
and ip.id=#{id}
</if>
<if
test=
"page.offset != null and page.totalPage !=null"
>
limit #{page.offset},#{page.totalPage}
</if>
</select>
<select
id=
"totalUser"
resultType=
"java.lang.Integer"
>
select count(iu.id) from insure_user iu
LEFT JOIN yggl_main_emp yme on yme.id=iu.user_id
LEFT JOIN insure_policy ip on ip.id=iu.policy_id
where yme.org_code = 3 AND iu.insure_status=1
<if
test=
"id !=null and id !=''"
>
and ip.id=#{id}
</if>
</select>
<!--根据id数组查询员工-->
<select
id=
"selectListByIds"
resultType=
"cn.timer.api.bean.insure.InsureUser"
>
SELECT
*
FROM insure_user
WHERE id IN
<foreach
item=
"id"
collection=
"array"
open=
"("
separator=
","
close=
")"
>
#{id}
</foreach>
</select>
</mapper>
This diff is collapsed.
Click to expand it.
src/main/resources/mapping/yggl/YgglMainEmpMapper.xml
View file @
60787f3e
...
...
@@ -250,7 +250,7 @@
AND
a.job_status in (0,1,2)
<if
test=
"isInsure!=null and isInsure != ''"
>
AND a.is_insure
=#{isInsure}
AND a.is_insure
in (1,2)
</if>
ORDER BY
emp_num DESC
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment