Commit ae679169 by jianan

龙虎榜调N22接口

parent 6276df5c
package com.yd.api.practitioner;
import com.alibaba.fastjson.JSONObject;
import com.yd.api.practitioner.service.PractitionerBasicInfoService;
import com.yd.api.practitioner.service.PractitionerService;
import com.yd.api.practitioner.service.ScheduleTrackService;
......@@ -31,6 +30,8 @@ import com.yd.api.practitioner.vo.subordinate.QueryTeamMemberDetailResponseVO;
import com.yd.api.practitioner.vo.subordinate.SubordinateSystemMemberQueryRequestVO;
import com.yd.api.practitioner.vo.subordinate.SubordinateSystemMemberQueryResponseVO;
import com.yd.api.result.JsonResult;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryResponseVO;
import com.yd.rmi.n22.policy.service.N22PolicyService;
import com.yd.rmi.n22.staff.service.N22StaffService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -627,11 +628,11 @@ public class PractitionerController {
* @return
*/
@RequestMapping("/test")
public Object test(@RequestBody PolicyListQueryRequestVO requestVO) throws Exception{
public Object test(@RequestBody PractitionerRankRequestVO requestVO){
JsonResult result = new JsonResult();
PolicyListQueryResponseVO responseVO = practitionerBasicInfoService.policyListQuery(requestVO);
result.setData(responseVO);
PractitionerRankResponseVO responseVO = practitionerService.practitionerRank(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
......
......@@ -242,7 +242,7 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
List<SalaryDetails> salaryDetailsList = salaryDetailsSearchResponseVO.getResponseBody().getSalaryDetailsLIST();
// list分组
Map<String, List<SalaryDetails>> group = this.groupByCheckDate(salaryDetailsList);
Map<String, List<SalaryDetails>> group = n22SalaryService.groupByYearmonth(salaryDetailsList);
// 组装返回参数
List<PayScaleInfo> resultList = new ArrayList<>();
......@@ -332,37 +332,6 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
return sum;
}
/**
* 通过for循环逻辑,编程上会麻烦点,但是效率上高很多
*/
private Map<String, List<SalaryDetails>> groupByCheckDate(List<SalaryDetails> salaryDetailsList) {
Map<String, List<SalaryDetails>> result = new HashMap<String, List<SalaryDetails>>();
int year = 0;
String month = "";
String key = "";
for (SalaryDetails SalaryDetails : salaryDetailsList) {
year = SalaryDetails.getYear();
month = SalaryDetails.getMonth();
key = year + month;
List<SalaryDetails> childList = result.get(key);
if (childList == null) {
childList = new ArrayList<SalaryDetails>();
result.put(key, childList);
}
childList.add(SalaryDetails);
}
result.forEach((cc, list) -> {
System.out.println("CheckDate is:" + cc);
list.forEach((SalaryDetails) -> {
System.out.println("SalaryDetails is:" + SalaryDetails);
});
});
return result;
}
@Override
public PayScalePdfResponseVO payScalePdf(PayScalePdfRequestVO requestVO) {
PayScalePdfResponseVO responseVO = new PayScalePdfResponseVO();
......
......@@ -5,6 +5,7 @@ import com.yd.api.customer.service.CustomerService;
import com.yd.api.customer.vo.register.RegisterRequestVO;
import com.yd.api.customer.vo.register.RegisterResponseVO;
import com.yd.api.practitioner.vo.login.CanSeeSalaryListResponseVO;
import com.yd.api.practitioner.vo.payscale.PayScaleInfo;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsActionsUpdateResponseVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsQueryResponseVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginBasicInfo;
......@@ -52,6 +53,15 @@ import com.yd.dal.service.meta.MdDropOptionsDALService;
import com.yd.rmi.ali.mail.service.MailService;
import com.yd.rmi.ali.oss.service.OssService;
import com.yd.rmi.cache.SystemConfigService;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryResponseVO;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyInfoN22;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryRequestBody;
import com.yd.rmi.n22.policy.service.N22PolicyService;
import com.yd.rmi.n22.salary.pojo.SalaryDetails;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchRequestBody;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchResponseVO;
import com.yd.rmi.n22.salary.service.N22SalaryService;
import com.yd.rmi.n22.staff.pojo.GetStaffNewRequestBody;
import com.yd.rmi.n22.staff.pojo.GetStaffNewResponseVO;
import com.yd.rmi.n22.staff.pojo.Staff;
......@@ -166,6 +176,10 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
private MailService mailService;
@Autowired
private N22StaffService n22StaffService;
@Autowired
private N22SalaryService n22SalaryService;
@Autowired
private N22PolicyService n22PolicyService;
@Override
public PractitionerLoginResponseVO practitionerLogin(PractitionerLoginRequestVO requestVO) {
......@@ -279,41 +293,41 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
type = (type == null) ? 1 : type;//默认:保费
time = (time == null) ? 1 : time;//默认:本月
platform = (platform == null) ? 1 : platform;
if(!Strings.isNullOrEmpty(mobileNo)){
if (!Strings.isNullOrEmpty(mobileNo)) {
//查询该手机号码的经纪人id,是否存在
Map<Integer,PractitionerBasicInfo> practitionerBasicInfoMap = getPractitionerBasicInfo(mobileNo);
if(!practitionerBasicInfoMap.isEmpty()){
Map<Integer, PractitionerBasicInfo> practitionerBasicInfoMap = getPractitionerBasicInfo(mobileNo);
if (!practitionerBasicInfoMap.isEmpty()) {
PractitionerBasicInfo practitionerBasicInfo = practitionerBasicInfoMap.get(platform);
Long practitionerTypeId = null;
if(platform == 1){
if (platform == 1) {
practitionerTypeId = practitionerBasicInfo.getPractitionerTypeId();
}else{
} else {
PractitionerBasicInfo practitionerBasicInfoYD = practitionerBasicInfoMap.get(1);
if(practitionerBasicInfoYD != null){
if (practitionerBasicInfoYD != null) {
practitionerTypeId = practitionerBasicInfoYD.getPractitionerTypeId();
}
}
if(practitionerBasicInfo != null && practitionerTypeId != null){
if (practitionerBasicInfo != null && practitionerTypeId != null) {
String practitionerId = practitionerBasicInfo.getPractitionerId();
if(!Strings.isNullOrEmpty(practitionerId)){
List<PractitionerRankInfo> rankInfoList = getPractitionerRankInfo(time,platform,practitionerTypeId);
if (!Strings.isNullOrEmpty(practitionerId)) {
List<PractitionerRankInfo> rankInfoList = getPractitionerRankInfo(time, platform, practitionerTypeId);
//按照指定类型排序
getPractitionerRankResult(responseVO,rankInfoList,type,practitionerBasicInfoMap,time,platform,practitionerTypeId);
getPractitionerRankResult(responseVO, rankInfoList, type, practitionerBasicInfoMap, time, platform, practitionerTypeId);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
}
}
}else{
} else {
responseVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830001"))); //该经纪人不存在
}
}else{
String [] param = {"mobileNo"};
} else {
String[] param = {"mobileNo"};
responseVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("610001", param)));
}
return responseVO;
}
private List<PractitionerRankInfo> getPractitionerRankInfo(Integer time, Integer platform,Long practitionerTypeId) {
List<PractitionerRankInfo> rankInfoList;
List<PractitionerRankInfo> rankInfoList = new ArrayList<>();
if(platform == 1){
rankInfoList = aclPractitionerDALService.getPractitionerRankInfoForOnline(time,practitionerTypeId);
//特殊人员处理
......@@ -324,11 +338,158 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
rankInfoList.addAll(rankInfoListSpecials);
}
}else{
rankInfoList = aclPractitionerDALService.getPractitionerRankInfoForOffline(time);
// rankInfoList = aclPractitionerDALService.getPractitionerRankInfoForOffline(time);
// 调用N22接口查寿险
try {
rankInfoList = this.getPractitionerRankInfoFromN22(time);
} catch (Exception e) {
e.printStackTrace();
}
}
return rankInfoList;
}
private List<PractitionerRankInfo> getPractitionerRankInfoFromN22(Integer time) throws Exception {
// 根据查询时间范围获取查询开始时间和结束时间
String startTime;
String endTime;
if (Integer.valueOf("1") == time) {
startTime = CommonUtil.getBeginDayOfMonth();
endTime = CommonUtil.getEndDayOfMonth();
} else if (Integer.valueOf("3") == time) {
startTime = CommonUtil.getStartOrEndDayOfQuarter(true);
endTime = CommonUtil.getStartOrEndDayOfQuarter(false);
} else {
startTime = CommonUtil.getBeginDayOfYear();
endTime = CommonUtil.getEndDayOfYear();
}
// 循环查询每个经纪人的数据
List<AclPractitioner> list = aclPractitionerDALService.queryAllLifePractitioner();
List<PractitionerRankInfo> rankInfoList = new ArrayList<>();
for (AclPractitioner practitioner : list) {
PractitionerRankInfo rankInfo = this.queryPersonalRankInfoFromN22(practitioner.getMobileNo(), startTime, endTime);
if (rankInfo != null) {
rankInfoList.add(rankInfo);
}
}
return rankInfoList;
}
private PractitionerRankInfo queryPersonalRankInfoFromN22(String mobileNo, String startTime, String endTime) throws Exception {
// 1.根据手机号查询经纪人在N22系统的Agent_id
GetStaffNewRequestBody getStaffNewRequestBody = new GetStaffNewRequestBody();
getStaffNewRequestBody.setMobile(mobileNo);
GetStaffNewResponseVO resp = n22StaffService.getStaffNew(getStaffNewRequestBody);
if ("未查询到该坐席".equals(resp.getResponseHead().getMessage())){
return null;
}
if (!"查询成功".equals(resp.getResponseHead().getMessage())){
throw new Exception("查询N22的Agent_id错误");
}
List<Staff> staffList = resp.getResponseBody().getStaff();
if (staffList.size() == 0) {
throw new Exception("查询N22的经纪人错误");
}
Staff staff = staffList.get(0);
String agent_id = staff.getAgent_id();
// 2.根据Agent_id当前经纪人的佣金明细
SalaryDetailsSearchRequestBody salaryDetailsSearchRequestBody = new SalaryDetailsSearchRequestBody();
salaryDetailsSearchRequestBody.setLoginName(agent_id);
salaryDetailsSearchRequestBody.setSearchType("1");
salaryDetailsSearchRequestBody.setCheckStatus("1");
salaryDetailsSearchRequestBody.setStartDate(startTime);
salaryDetailsSearchRequestBody.setEndDate(endTime);
SalaryDetailsSearchResponseVO salaryDetailsSearchResponseVO = n22SalaryService.salaryDetailsSearch(salaryDetailsSearchRequestBody);
if (!"查询成功".equals(salaryDetailsSearchResponseVO.getResponseHead().getMessage())){
throw new Exception( "查询N22佣金明细列表错误");
}
List<SalaryDetails> salaryDetailsList = salaryDetailsSearchResponseVO.getResponseBody().getSalaryDetailsLIST();
// 3.按年月分组
Map<String, List<SalaryDetails>> group = n22SalaryService.groupByYearmonth(salaryDetailsList);
// 4.统计FYC,FYP,count
PractitionerRankInfo rankInfo = null;
for (String key : group.keySet()) {
System.out.println("Key = " + key);
List<SalaryDetails> list = group.get(key);
// 计算每组FYC,FYP,count
rankInfo = this.getFypAndFycAndCount(list);
}
return rankInfo;
}
private Double getFyp(String policyNo) throws Exception{
// 请求参数
PolicyDetailQueryRequestBody policyInfoRequestBody = new PolicyDetailQueryRequestBody();
policyInfoRequestBody.setPolicyNo(policyNo);
PolicyDetailQueryResponseVO policyDetailQueryResponseVO = n22PolicyService.policyInfo(policyInfoRequestBody);
if (!"查询成功".equals(policyDetailQueryResponseVO.getResponseHead().getMessage())){
throw new Exception("查询N22经纪人保单详情错误");
}
Double premium = policyDetailQueryResponseVO.getResponseBody().getPremium();
return premium;
}
private PractitionerRankInfo getFypAndFycAndCount(List<SalaryDetails> list) throws Exception {
Integer count = 0;
Double fyc = 0D;
Double fyp = 0D;
// 判断list中是否存在保单佣金
boolean isFYCExist = false;
for (SalaryDetails s : list) {
// 1.计算FYC
if ("FYC".equals(s.getSalaryName())) {
fyc = BigDecimal.valueOf(s.getCommission())
.add(BigDecimal.valueOf(fyc))
.doubleValue();
count = count + 1;
isFYCExist = true;
}
}
if (!isFYCExist) {
return null;
}
// FYP
Double premium = 0D;
for (SalaryDetails s : list) {
// 2.调用N22保单接口获取每个保单的保费
if ("FYC".equals(s.getSalaryName())) {
premium = this.getFyp(s.getAppl_No());
fyp = BigDecimal.valueOf(premium)
.add(BigDecimal.valueOf(fyp))
.doubleValue();
}
}
PractitionerRankInfo rankInfo = new PractitionerRankInfo();
rankInfo.setCount(count);
rankInfo.setFyp(fyp);
rankInfo.setFyc(fyc);
rankInfo.setName(list.get(0).getStaffName());
rankInfo.setSpcDivName(list.get(0).getRoleGroupDescription());
return rankInfo;
}
private Map<Integer,PractitionerBasicInfo> getPractitionerBasicInfo(String mobileNo) {
Map<Integer,PractitionerBasicInfo> practitionerBasicInfoMap = new HashMap<>();
PractitionerBasicInfo practitionerBasicInfo1 = aclPractitionerDALService.getPractitionerBasicInfoForOnline(mobileNo);
......
......@@ -78,4 +78,7 @@ public interface AclPractitionerMapper {
List<TeamMemberDetail> queryTeamMemberDetailList(List<Long> practitionerIdList);
List<String> findLeaveOfficeByPractitionerId(Long practitionerId);
List<AclPractitioner> queryAllLifePractitioner();
}
\ No newline at end of file
......@@ -190,4 +190,10 @@ public interface AclPractitionerDALService {
List<TeamMemberDetail> queryTeamMemberDetailList(List<Long> practitionerIdList);
List<String> findLeaveOfficeByPractitionerId(Long practitionerId);
/**
* 查询所有寿险经纪人
* @return
*/
List<AclPractitioner> queryAllLifePractitioner();
}
......@@ -206,4 +206,9 @@ public class AclPractitionerDALServiceImpl implements AclPractitionerDALService
mobileNos.forEach(m -> mobileNoList.add(jpaCryptoConverter.decode(m)));
return mobileNoList;
}
@Override
public List<AclPractitioner> queryAllLifePractitioner() {
return aclPractitionerMapper.queryAllLifePractitioner();
}
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class BuryingPointN22 {
@JsonProperty("Pointname")
private String pointName;//埋点名称
@JsonProperty("PointStartDate")
private String pointStartDate;//埋点开始时间
@JsonProperty("PointEndDate")
private String pointEndDate;//埋点结束时间
private String Pointname;//埋点名称
private String PointStartDate;//埋点开始时间
private String PointEndDate;//埋点结束时间
}
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class InstallmentPremiumN22 {
private String periods;//期数
@JsonProperty("share_ratio")
private String shareRatio;//分期比率
private String share_ratio;//分期比率
private String premium;//分期金额
@JsonProperty("chargedate")
private String chargeDate;//分期付款时间
private String chargedate;//分期付款时间
}
......@@ -6,12 +6,12 @@ import java.util.List;
@Data
public class InsuredDetailN22 {
private Long feeId;//费用序列号, 内部使用.目前该字段无需填写.
private Long sgp;//毛保费
private Long agp;//调整后毛保费
private Long snp;//净保费
private Long anp;//调整后净保费
private Long app;//实付保费
private String feeId;//费用序列号, 内部使用.目前该字段无需填写.
private String sgp;//毛保费
private String agp;//调整后毛保费
private String snp;//净保费
private String anp;//调整后净保费
private String app;//实付保费
private Object feeAmounts;//费用明细清单
private String insuredId;//标的序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String insuredType;//标的类型. 参考标的类型
......
package com.yd.rmi.n22.policy.pojo.policydetail;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class PolicyDetailQueryRequestBody {
@JsonProperty("Epid")
private String epId;//epid :saas为当前库的代码如e00008 非saas忽略
@JsonProperty("Loginname")
private String loginName;//员工ID
@JsonProperty("policyNo")
private String policyNo;//保单号
private String Epid; //epid :saas为当前库的代码如e00008 非saas忽略
private String Loginname; //员工ID
private String policyNo; //保单号
private String relation_id; //保单工单guid
private String staff_id; //员工内部ID
private Integer clearDataFlag; //是否明文数据:1是,0否,数据脱敏时有效
}
......@@ -9,19 +9,19 @@ import java.util.List;
@Data
public class PolicyDetailQueryResponseBody {
private Long policyId;//保单序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private Long productId;//产品序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String policyId;//保单序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String productId;//产品序列号, 内部使用.如果是第三方输入数据, 该字段无需填写.
private String vendorCode;//产品提供商代码, 必须提供
private String vendorName;//产品供应商名称(保司名称)
private String productCode;//产品代码, 必须提供
private String productName;//产品名称
private String productVersion;//产品版本, 必须提供.
private Date effectiveDate;//保单生效日2017/10/18 00:00:00
private Date expiryDate;//保单失效日2017/10/18 00:00:00
private Date quotationNo;//订单号, 内部使用.
private String effectiveDate;//保单生效日2017/10/18 00:00:00
private String expiryDate;//保单失效日2017/10/18 00:00:00
private String quotationNo;//订单号, 内部使用.
private String policyNo;//保单号.
private Date issueDate;//出单日
private Date quoteDate;//首次报价日
private String issueDate;//出单日
private String quoteDate;//首次报价日
private String thirdQuoteNo;//第三方(例如:保司)报价单号
private String thirdOrderNo;//第三方(例如:保司)订单号
private String ePolicyDownloadUrl;//电子保单下载地址
......@@ -37,17 +37,13 @@ public class PolicyDetailQueryResponseBody {
private AgentN22 agent;//代理人. 参考 代理人 说明
private String thirdPartyAgentId;//第三方代理人号,对于第三方的只做保存,用于报表显示.
private String thirdPartyAgentName;//第三方代理人姓名,对于第三方的只做保存,用于报表显示.
@JsonProperty("order_player")
private String orderPlayer;//打单员
@JsonProperty("beto_rolegroup")
private String betoRoleGroup;//机构code
@JsonProperty("beto_rolegroupdesc")
private String betoRoleGroupDesc;//机构名称
private String order_player;//打单员
private String beto_rolegroup;//机构code
private String beto_rolegroupdesc;//机构名称
private List<BuryingPointN22> buryingPointList;//互联网产品埋点列表,用于记录在投保过程中各个阶段的时间点
@JsonProperty("BuryingVideo")
private String buryingVideo;//埋点视频编号
@JsonProperty("installment_premium")
private List<InstallmentPremiumN22> installmentPremium;//保单分期列表
private String BuryingVideo;//埋点视频编号
private List<InstallmentPremiumN22> installment_premium;//保单分期列表
private String sourceCode;//保单来源,如XXAPP下单,在保单同步时填写后,会在这里体现
private String butler;//管家
}
package com.yd.rmi.n22.policy.service;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryResponseVO;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryResponseVO;
......@@ -7,4 +9,5 @@ public interface N22PolicyService {
PolicyListQueryResponseVO policyList(PolicyListQueryRequestBody requestBody);
PolicyDetailQueryResponseVO policyInfo(PolicyDetailQueryRequestBody requestBody);
}
......@@ -2,6 +2,8 @@ package com.yd.rmi.n22.policy.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.yd.rmi.n22.common.utils.N22Utils;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policydetail.PolicyDetailQueryResponseVO;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryRequestBody;
import com.yd.rmi.n22.policy.pojo.policylist.PolicyListQueryResponseVO;
import com.yd.rmi.n22.policy.service.N22PolicyService;
......@@ -35,4 +37,25 @@ public class N22PolicyServiceImpl implements N22PolicyService {
return rObj;
}
@Override
public PolicyDetailQueryResponseVO policyInfo(PolicyDetailQueryRequestBody requestBody) {
JSONObject obj = new JSONObject(); //传参
PolicyDetailQueryResponseVO rObj; //返回结果
JSONObject requestHead = new JSONObject();
requestHead.put("seqNo", UUID.randomUUID().toString());
obj.put("requestHead", requestHead);
obj.put("requestBody", requestBody);
logger.info("N22查询保单详情请求报文:"+obj.toString());
String url = "https://life.ydinsurance.cn/EliteGeneralHttpTask/GeneralService/PolicyInfo";
String result = N22Utils.postTransaction(url, obj.toString());
logger.info("N22查询保单详情响应报文:"+result);
rObj = JSONObject.parseObject(result, PolicyDetailQueryResponseVO.class);
return rObj;
}
}
package com.yd.rmi.n22.salary.service;
import com.yd.rmi.n22.salary.pojo.SalaryDetails;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchRequestBody;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchResponseVO;
import java.util.List;
import java.util.Map;
public interface N22SalaryService {
SalaryDetailsSearchResponseVO salaryDetailsSearch(SalaryDetailsSearchRequestBody salaryDetailsSearchRequestBody);
Map<String, List<SalaryDetails>> groupByYearmonth(List<SalaryDetails> salaryDetailsList);
}
......@@ -2,6 +2,7 @@ package com.yd.rmi.n22.salary.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.yd.rmi.n22.common.utils.N22Utils;
import com.yd.rmi.n22.salary.pojo.SalaryDetails;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchRequestBody;
import com.yd.rmi.n22.salary.pojo.SalaryDetailsSearchResponseVO;
import com.yd.rmi.n22.salary.service.N22SalaryService;
......@@ -9,7 +10,8 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import java.util.UUID;
import java.util.*;
@Service
public class N22SalaryServiceImpl implements N22SalaryService {
......@@ -36,4 +38,32 @@ public class N22SalaryServiceImpl implements N22SalaryService {
return response;
}
@Override
public Map<String, List<SalaryDetails>> groupByYearmonth(List<SalaryDetails> salaryDetailsList) {
Map<String, List<SalaryDetails>> result = new HashMap<String, List<SalaryDetails>>();
int year = 0;
String month = "";
String key = "";
for (SalaryDetails SalaryDetails : salaryDetailsList) {
year = SalaryDetails.getYear();
month = SalaryDetails.getMonth();
key = year + month;
List<SalaryDetails> childList = result.get(key);
if (childList == null) {
childList = new ArrayList<SalaryDetails>();
result.put(key, childList);
}
childList.add(SalaryDetails);
}
result.forEach((cc, list) -> {
System.out.println("CheckDate is:" + cc);
list.forEach((SalaryDetails) -> {
System.out.println("SalaryDetails is:" + SalaryDetails);
});
});
return result;
}
}
......@@ -52,18 +52,18 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, insurer_id, insurer_branch_id, dept_id, subordinate_system_id, practitioner_code,
id, insurer_id, insurer_branch_id, dept_id, subordinate_system_id, practitioner_code,
`name`, mobile_no, id_type_id, id_type, id_no, practitioner_birthdate, practitioner_reg_no,
practitioner_reg_company, effective_start_date, effective_end_date, remark, customer_id,
employee_no, contract_no, is_active, created_at, created_by, updated_at, updated_by,
province_id, province_name, city_id, city_name, cert_list, bio_intro, wechat_id,
qq_id, is_profile_show, is_name_show, is_mobile_show, education_level, graduated_university,
mentor_id, introducer_id, gender, contract_oss_path, hiring_basic_info_id, can_login_dyd,
employee_no, contract_no, is_active, created_at, created_by, updated_at, updated_by,
province_id, province_name, city_id, city_name, cert_list, bio_intro, wechat_id,
qq_id, is_profile_show, is_name_show, is_mobile_show, education_level, graduated_university,
mentor_id, introducer_id, gender, contract_oss_path, hiring_basic_info_id, can_login_dyd,
can_see_salary_list
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
<!--@mbg.generated-->
select
select
<include refid="Base_Column_List" />
from ag_acl_practitioner
where id = #{id,jdbcType=BIGINT}
......@@ -75,20 +75,20 @@
</delete>
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.yd.dal.entity.customer.AclPractitioner" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into ag_acl_practitioner (insurer_id, insurer_branch_id, dept_id,
insert into ag_acl_practitioner (insurer_id, insurer_branch_id, dept_id,
subordinate_system_id, practitioner_code, `name`,
mobile_no, id_type_id, id_type,
id_no, practitioner_birthdate, practitioner_reg_no,
practitioner_reg_company, effective_start_date,
effective_end_date, remark, customer_id,
employee_no, contract_no, is_active,
created_at, created_by, updated_at,
updated_by, province_id, province_name,
city_id, city_name, cert_list,
bio_intro, wechat_id, qq_id,
is_profile_show, is_name_show, is_mobile_show,
education_level, graduated_university, mentor_id,
introducer_id, gender, contract_oss_path,
employee_no, contract_no, is_active,
created_at, created_by, updated_at,
updated_by, province_id, province_name,
city_id, city_name, cert_list,
bio_intro, wechat_id, qq_id,
is_profile_show, is_name_show, is_mobile_show,
education_level, graduated_university, mentor_id,
introducer_id, gender, contract_oss_path,
hiring_basic_info_id, can_login_dyd, can_see_salary_list
)
values (#{insurerId,jdbcType=BIGINT}, #{insurerBranchId,jdbcType=BIGINT}, #{deptId,jdbcType=BIGINT},
......@@ -96,15 +96,15 @@
#{mobileNo,jdbcType=VARCHAR,typeHandler=com.yd.util.deshandler.DESTypeHandler}, #{idTypeId,jdbcType=BIGINT}, #{idType,jdbcType=VARCHAR},
#{idNo,jdbcType=VARCHAR,typeHandler=com.yd.util.deshandler.DESTypeHandler}, #{practitionerBirthdate,jdbcType=DATE}, #{practitionerRegNo,jdbcType=VARCHAR},
#{practitionerRegCompany,jdbcType=VARCHAR}, #{effectiveStartDate,jdbcType=DATE},
#{effectiveEndDate,jdbcType=DATE}, #{remark,jdbcType=LONGVARCHAR}, #{customerId,jdbcType=BIGINT},
#{employeeNo,jdbcType=VARCHAR}, #{contractNo,jdbcType=VARCHAR}, #{isActive,jdbcType=INTEGER},
#{createdAt,jdbcType=TIMESTAMP}, #{createdBy,jdbcType=BIGINT}, #{updatedAt,jdbcType=TIMESTAMP},
#{updatedBy,jdbcType=BIGINT}, #{provinceId,jdbcType=BIGINT}, #{provinceName,jdbcType=VARCHAR},
#{cityId,jdbcType=BIGINT}, #{cityName,jdbcType=VARCHAR}, #{certList,jdbcType=VARCHAR},
#{bioIntro,jdbcType=LONGVARCHAR}, #{wechatId,jdbcType=VARCHAR}, #{qqId,jdbcType=VARCHAR},
#{isProfileShow,jdbcType=INTEGER}, #{isNameShow,jdbcType=INTEGER}, #{isMobileShow,jdbcType=INTEGER},
#{educationLevel,jdbcType=VARCHAR}, #{graduatedUniversity,jdbcType=VARCHAR}, #{mentorId,jdbcType=BIGINT},
#{introducerId,jdbcType=BIGINT}, #{gender,jdbcType=INTEGER}, #{contractOssPath,jdbcType=VARCHAR},
#{effectiveEndDate,jdbcType=DATE}, #{remark,jdbcType=LONGVARCHAR}, #{customerId,jdbcType=BIGINT},
#{employeeNo,jdbcType=VARCHAR}, #{contractNo,jdbcType=VARCHAR}, #{isActive,jdbcType=INTEGER},
#{createdAt,jdbcType=TIMESTAMP}, #{createdBy,jdbcType=BIGINT}, #{updatedAt,jdbcType=TIMESTAMP},
#{updatedBy,jdbcType=BIGINT}, #{provinceId,jdbcType=BIGINT}, #{provinceName,jdbcType=VARCHAR},
#{cityId,jdbcType=BIGINT}, #{cityName,jdbcType=VARCHAR}, #{certList,jdbcType=VARCHAR},
#{bioIntro,jdbcType=LONGVARCHAR}, #{wechatId,jdbcType=VARCHAR}, #{qqId,jdbcType=VARCHAR},
#{isProfileShow,jdbcType=INTEGER}, #{isNameShow,jdbcType=INTEGER}, #{isMobileShow,jdbcType=INTEGER},
#{educationLevel,jdbcType=VARCHAR}, #{graduatedUniversity,jdbcType=VARCHAR}, #{mentorId,jdbcType=BIGINT},
#{introducerId,jdbcType=BIGINT}, #{gender,jdbcType=INTEGER}, #{contractOssPath,jdbcType=VARCHAR},
#{hiringBasicInfoId,jdbcType=BIGINT}, #{canLoginDyd,jdbcType=BIGINT}, #{canSeeSalaryList,jdbcType=BIGINT}
)
</insert>
......@@ -1119,32 +1119,32 @@
<insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
<!--@mbg.generated-->
insert into ag_acl_practitioner
(insurer_id, insurer_branch_id, dept_id, subordinate_system_id, practitioner_code,
`name`, mobile_no, id_type_id, id_type, id_no, practitioner_birthdate, practitioner_reg_no,
practitioner_reg_company, effective_start_date, effective_end_date, remark, customer_id,
employee_no, contract_no, is_active, created_at, created_by, updated_at, updated_by,
province_id, province_name, city_id, city_name, cert_list, bio_intro, wechat_id,
qq_id, is_profile_show, is_name_show, is_mobile_show, education_level, graduated_university,
mentor_id, introducer_id, gender, contract_oss_path, hiring_basic_info_id, can_login_dyd,
(insurer_id, insurer_branch_id, dept_id, subordinate_system_id, practitioner_code,
`name`, mobile_no, id_type_id, id_type, id_no, practitioner_birthdate, practitioner_reg_no,
practitioner_reg_company, effective_start_date, effective_end_date, remark, customer_id,
employee_no, contract_no, is_active, created_at, created_by, updated_at, updated_by,
province_id, province_name, city_id, city_name, cert_list, bio_intro, wechat_id,
qq_id, is_profile_show, is_name_show, is_mobile_show, education_level, graduated_university,
mentor_id, introducer_id, gender, contract_oss_path, hiring_basic_info_id, can_login_dyd,
can_see_salary_list)
values
<foreach collection="list" item="item" separator=",">
(#{item.insurerId,jdbcType=BIGINT}, #{item.insurerBranchId,jdbcType=BIGINT}, #{item.deptId,jdbcType=BIGINT},
#{item.subordinateSystemId,jdbcType=BIGINT}, #{item.practitionerCode,jdbcType=VARCHAR},
#{item.name,jdbcType=VARCHAR}, #{item.mobileNo,jdbcType=VARCHAR}, #{item.idTypeId,jdbcType=BIGINT},
#{item.idType,jdbcType=VARCHAR}, #{item.idNo,jdbcType=VARCHAR}, #{item.practitionerBirthdate,jdbcType=DATE},
#{item.practitionerRegNo,jdbcType=VARCHAR}, #{item.practitionerRegCompany,jdbcType=VARCHAR},
#{item.effectiveStartDate,jdbcType=DATE}, #{item.effectiveEndDate,jdbcType=DATE},
#{item.remark,jdbcType=LONGVARCHAR}, #{item.customerId,jdbcType=BIGINT}, #{item.employeeNo,jdbcType=VARCHAR},
#{item.contractNo,jdbcType=VARCHAR}, #{item.isActive,jdbcType=INTEGER}, #{item.createdAt,jdbcType=TIMESTAMP},
#{item.createdBy,jdbcType=BIGINT}, #{item.updatedAt,jdbcType=TIMESTAMP}, #{item.updatedBy,jdbcType=BIGINT},
#{item.provinceId,jdbcType=BIGINT}, #{item.provinceName,jdbcType=VARCHAR}, #{item.cityId,jdbcType=BIGINT},
#{item.cityName,jdbcType=VARCHAR}, #{item.certList,jdbcType=VARCHAR}, #{item.bioIntro,jdbcType=LONGVARCHAR},
#{item.wechatId,jdbcType=VARCHAR}, #{item.qqId,jdbcType=VARCHAR}, #{item.isProfileShow,jdbcType=INTEGER},
#{item.isNameShow,jdbcType=INTEGER}, #{item.isMobileShow,jdbcType=INTEGER}, #{item.educationLevel,jdbcType=VARCHAR},
#{item.graduatedUniversity,jdbcType=VARCHAR}, #{item.mentorId,jdbcType=BIGINT},
#{item.introducerId,jdbcType=BIGINT}, #{item.gender,jdbcType=INTEGER}, #{item.contractOssPath,jdbcType=VARCHAR},
#{item.hiringBasicInfoId,jdbcType=BIGINT}, #{item.canLoginDyd,jdbcType=BIGINT},
(#{item.insurerId,jdbcType=BIGINT}, #{item.insurerBranchId,jdbcType=BIGINT}, #{item.deptId,jdbcType=BIGINT},
#{item.subordinateSystemId,jdbcType=BIGINT}, #{item.practitionerCode,jdbcType=VARCHAR},
#{item.name,jdbcType=VARCHAR}, #{item.mobileNo,jdbcType=VARCHAR}, #{item.idTypeId,jdbcType=BIGINT},
#{item.idType,jdbcType=VARCHAR}, #{item.idNo,jdbcType=VARCHAR}, #{item.practitionerBirthdate,jdbcType=DATE},
#{item.practitionerRegNo,jdbcType=VARCHAR}, #{item.practitionerRegCompany,jdbcType=VARCHAR},
#{item.effectiveStartDate,jdbcType=DATE}, #{item.effectiveEndDate,jdbcType=DATE},
#{item.remark,jdbcType=LONGVARCHAR}, #{item.customerId,jdbcType=BIGINT}, #{item.employeeNo,jdbcType=VARCHAR},
#{item.contractNo,jdbcType=VARCHAR}, #{item.isActive,jdbcType=INTEGER}, #{item.createdAt,jdbcType=TIMESTAMP},
#{item.createdBy,jdbcType=BIGINT}, #{item.updatedAt,jdbcType=TIMESTAMP}, #{item.updatedBy,jdbcType=BIGINT},
#{item.provinceId,jdbcType=BIGINT}, #{item.provinceName,jdbcType=VARCHAR}, #{item.cityId,jdbcType=BIGINT},
#{item.cityName,jdbcType=VARCHAR}, #{item.certList,jdbcType=VARCHAR}, #{item.bioIntro,jdbcType=LONGVARCHAR},
#{item.wechatId,jdbcType=VARCHAR}, #{item.qqId,jdbcType=VARCHAR}, #{item.isProfileShow,jdbcType=INTEGER},
#{item.isNameShow,jdbcType=INTEGER}, #{item.isMobileShow,jdbcType=INTEGER}, #{item.educationLevel,jdbcType=VARCHAR},
#{item.graduatedUniversity,jdbcType=VARCHAR}, #{item.mentorId,jdbcType=BIGINT},
#{item.introducerId,jdbcType=BIGINT}, #{item.gender,jdbcType=INTEGER}, #{item.contractOssPath,jdbcType=VARCHAR},
#{item.hiringBasicInfoId,jdbcType=BIGINT}, #{item.canLoginDyd,jdbcType=BIGINT},
#{item.canSeeSalaryList,jdbcType=BIGINT})
</foreach>
</insert>
......@@ -1708,4 +1708,13 @@
<select id="findLeaveOfficeByPractitionerId" resultType="string">
select mobile_no from ag_acl_practitioner where is_active = 0 and subordinate_system_id = #{practitionerId,jdbcType=BIGINT}
</select>
<select id="queryAllLifePractitioner" resultMap="BaseResultMap">
SELECT p.*
from ag_acl_practitioner p
left join ag_acl_practitioner_setting s on s.practitioner_id = p.id
where s.practitioner_type_id = 28
and p.is_active=1
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment