test.txt
9.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
currentpolicyaddress
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP
gabr.due_month
inner join gras_assign_batch_record gabr on gabr.batch_seq=sbp.sequence
c129f073605b4f4e800c394c1c66a20c
e70c1c41d0d1470abf9b712acffab8ce
7dc7b0c7853e4641958337a416e4f888
53bbbbff975e4116804a3e328c442c0c
分单结果批量调整满足条件
1.失效件:
(1)保单进入失效月次月至失效日起两年内;
(2)失效原因满足下列其中一项:
保全:未在规定宽限期内缴纳续期保费;
保全:借款本金和利息和超过保单现金价值;
保全:保单的现金价值不足以垫缴保费;
(3)保单渠道与收展服务人员岗位相匹配。
2.缓缴件
(1)保单有效状态的长险(万能险);
(2)保单渠道与收展服务人员岗位相匹配。
自定义查询保单落图:gras/falling/queryPageData----》FallingMapService.queryPageDatas()
获取分区区域列表:gras/branchGeo/getBranchGeoInfoPageByCode----》grasBranchGeoService.selectBranchGeoInfoPageByCode()
获取区域点面数据:gras/branch/getBranchGeoByBranchCode---》branchInfoService.getBranchGeoByBranchCode()
根据机构代码获取渠道:/gras/branchRegion.getBranchRegion--》grasBranchGeoService.getBranchRegion()
根据机构号查询保单:/gras/resultCheck/selectByBranchCode----》ResultCheckService.selectByBranchCode()
根据传入条件查询保单信息:/gras/resultCheck/queryPolicy--》ResultCheckService.queryPolicy()
FallingMapService.outInResult()
FallingMapService.resultput()
ElasticSearchServiceImpl类
ElasticSearchPolicyServiceImpl类
/gras/menu/updateMenus---》menuService.updateByRoleIdAndMenus()
/gras/resultCheck/getDatasExportToExcel----》ResultCheckService.selectForExcel()
批量调整:gras/resultCheck/adjustEmp----》ResultCheckService.adjustEmp
1:目前系统中删除操作涉及的表有:GRAS_BRANCH_GEO、GRAS_BRANCH_STYLE、GRAS_AREA_STAFF、GRAS_SYS_ROLE_MENU、GRAS_SYS_MENU、GRAS_ASSIGN_FAILED_RECORD
]863605用户,调整保单号:P000000042641127,收展服务人员:H000000000005697,保单渠道为银代,收展服务人员岗位为银代收展专员
要在代码中写一个机制,连接-更新-完成数据库的一个事物时写一次用户信息,确保一次数据库操作(事务)都有写用户信息。这样触发器才能获取到正确的用户
"UIWL_AN1","UIED_AN1","UIAN_DN1","UIAN_EN1","UBWL_AN1","UBEN_AN1","UBED_CN1"
四、保单离职交接规则:
1判断是否为离职交接保单前置条件:此规则定义的离职人员是指离职时间为操作离职保单交接这个动作的当月或前一个月;
例如:人员在操作批量调整的当月和上一月离职为离职交接
2.离职人员名下所有已实收及未收保单均要交接,并计入新接收人考核;
3.离职人员名下未收件交接遵循“应缴月为同一个月份的保单只能交接给同一个人,不允许分别交接给多个人员”,
注意:同一个月份保单交接,批量导入时,RN系统是从第一行开始往下校验,即“如果操作同一个月份的保单交接,
服务人员填了多个接收人员工号,系统会先校验第一行的工号,后面出现的工号不允许再交接该月的保单”。
4.不同月份的保单可以分别交接给不同的人或交接给同一个人
例如:A在2018年4月离职,A名下所有保单有2月、3月、4月、5月、6月的保单需交接。2月的单交接给B,
(2月的单不可以一部分交接给B,一部分又交接给C)、3月、4月的单可以交接给C、5月的单可以交接给D、6月的单可以交接给E、或者2月-6月的单全部交接给B。
System[gras]
void setUser(String userName);
<parameterMap id="stsReturn_param" type="java.lang.String">
<parameter property="userName" jdbcType="VARCHAR" javaType="java.lang.String" mode="IN"></parameter>
</parameterMap>
<update id="setUser" parameterMap="stsReturn_param">
call gracde.gra_sys_package.set_user(?)
</update>
RNPolicyServicerChgRecord queryLastTimeServicerChg(Map<String,String> paramMap);
select * from (
select * from RN_POLICY_SERVICER_CHG_RECORD rnpscr
where rnpscr.policy_no in (
select rpsi.policy_no from rn_policy_service_info rpsi,policy_prem_info ppi
where ppi.policy_no=rpsi.policy_no
and rpsi.service_no=#{sreceiveNo}
and ppi.prem_due_date >= "TO_DATE"(#{startMonths},'yyyy-MM-dd hh24:mi:ss')
and ppi.prem_due_date < "TO_DATE"(#{endMonth},'yyyy-MM-dd hh24:mi:ss')
)
and rnpscr.change_mode='0'
order by rnpscr.UPDATED_DATE DESC
)where rownum = 1
//人员转岗校验
Map<String,String> map= transferPost(policyNo,servicerNo);
if(map.get("flag").equals(MyConstant.ISPASS_NO)){
failedList.add(policyNo);
policyFailedMap = new HashMap<>();
policyFailedMap.put("policyNo", policyNo);
policyFailedMap.put("servicerNo", servicerNo);
policyFailedMap.put("cause", map.get("msg"));
policyFailedList.add(policyFailedMap);
failedCount += 1;
continue;
}
//服务人员转岗
private Map<String,String> transferPost(String policyNo,String newEmpNo){
Map<String,String> retMap=new HashMap<String,String>();
RNPolicyServiceInfo rnPolicyServiceInfo = servicerInfoService
.selectByPolicyNo(policyNo);
String oldEmpNo=rnPolicyServiceInfo.getServiceNo();
Date nowDate = new Date();
//获取当前年份
int nowYear = DateUtil.getYear(nowDate);
int nowMonth = DateUtil.getMonth(nowDate);
//1:收展服务人员转岗的情况下,该人员在原岗位时已分配的保单不同意调整,
//应由该服务人员继续服务至过保单考核,此类保单次年再按照规则分配给其他相应收展服务人员
if(!surrenderEmp(oldEmpNo,policyNo,nowYear)){
retMap.put("flag", MyConstant.ISPASS_NO);
retMap.put("msg", "该保单原收展服务人员转岗后已分配的保单不能调整");
return retMap;
}
//收展服务人员转岗当月,可以进行次月应收保单分配
if(!receiveEmp(newEmpNo,policyNo,nowYear,nowMonth)){
retMap.put("flag", MyConstant.ISPASS_NO);
retMap.put("msg", "该保单原收展服务人员转岗后已分配的保单不能调整");
return retMap;
}
retMap.put("flag", MyConstant.ISPASS_YES);
return retMap;
}
/**
* @param newEmpNo
* @param policyNo
* @param nowYear
* @param nowMonth
*/
private boolean receiveEmp(String newEmpNo, String policyNo, int nowYear, int nowMonth)
{
RenewalStaffChangeHistory newEmpChangeHistory=oracleRenewalStaffChangeHistory.queryTransferPostByEmpNo(newEmpNo);
if(newEmpChangeHistory==null){
return true;
}
Date dueMonth=newEmpChangeHistory.getUpdatedDate();
int month = DateUtil.getMonth(dueMonth);
int year = DateUtil.getYear(dueMonth);
//若是当月转岗 可以进行当月之后的应收保单分配
if(year==nowYear && month==nowMonth){
PolicyPremInfo policyPremInfo= premInfoService.selectByPolicyNo(policyNo);
Date premDueDate=DateUtil.getDateFormat(policyPremInfo.getPremDueDate());
int premDueDateMonth = DateUtil.getMonth(premDueDate);
int premDueDateYear = DateUtil.getYear(premDueDate);
if((year==premDueDateYear && premDueDateMonth>month) || premDueDateYear>year){
return true;
}else{
return false;
}
}else{
//如果不是当月,那就是之前转岗的,那也符合条件
return true;
}
}
/**
* @param oldEmpNo
* @param policyNo
* @param nowYear
* @param nowMonth
*/
private boolean surrenderEmp(String oldEmpNo, String policyNo, int nowYear)
{
//取renewal_staff_change_history表, change_type=4,change_status=3的数据
RenewalStaffChangeHistory oldEmpNoChangeHistory=oracleRenewalStaffChangeHistory.queryTransferPostByEmpNo(oldEmpNo);
if(oldEmpNoChangeHistory==null){
return true;
}
Date dueMonth=oldEmpNoChangeHistory.getUpdatedDate();
int year = DateUtil.getYear(dueMonth);
//原收展服务人员名下的保单,次年才可以交接给其他服务人员
if(year>nowYear){
return true;
}else{
return false;
}
}