Commit 80955531 by Mahjong

Merge remote-tracking branch 'origin/dev' into dev

parents 9d3ad856 8c1362ee
package com.yd.api.agms.service;
import javax.servlet.http.HttpServletResponse;
import com.yd.api.agms.vo.hiring.*;
import com.yd.api.result.CommonResultResponseVO;
/**
* @author xxy
......@@ -28,4 +31,9 @@ public interface AgmsHiringService {
PractitionerHiringApproveResponseVO practitionerHiringApprove(PractitionerHiringApproveRequestVO requestVO);
PractitionerHiringListResponseVO practitionerHiringListV2(PractitionerHiringListRequestVO requestVO);
PractitionerHiringListResponseVO practitionerApplyList(PractitionerHiringListRequestVO requestVO);
CommonResultResponseVO exportPractitionerApplyList(PractitionerHiringListRequestVO requestVO,HttpServletResponse response);
}
package com.yd.api.agms.service;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharingListRequestVO;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharingListResponseVO;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharingSaveRequestVO;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharingSaveResponseVO;
import com.yd.api.agms.vo.practitioner.*;
import com.yd.api.result.CommonResultResponseVO;
import javax.servlet.http.HttpServletResponse;
/**
* @author xxy
......@@ -22,4 +22,21 @@ public interface AgmsPractitionerService {
* @return 响应数据
*/
PractitionerFileSharingListResponseVO practitionerFileSharingList(PractitionerFileSharingListRequestVO requestVO);
/**
* 经纪人日程管理
* @param requestVO
* @return
*/
PractitionerScheduleResponseVO practitionerSchedule(PractitionerScheduleRequestVO requestVO);
CommonResultResponseVO practitionerScheduleExport(PractitionerScheduleRequestVO requestVO, HttpServletResponse response);
PractitionerLeadsGoalsResponseVO practitionerLeadsGoals(PractitionerLeadsGoalsRequestVO requestVO);
CommonResultResponseVO practitionerLeadsGoalsExport(PractitionerLeadsGoalsRequestVO requestVO, HttpServletResponse response);
PractitionerActivityResponseVO practitionerActivity(PractitionerActivityRequestVO requestVO);
CommonResultResponseVO practitionerActivityExport(PractitionerActivityRequestVO requestVO, HttpServletResponse response);
}
......@@ -67,7 +67,15 @@ public class CommissionPayoutStatusQueryRequestVO {
private Long s3Id;
private Long s2Id;
private Long s1Id;
/**
* 渠道Id
*/
private Long channelId;
/**
* 渠道类型: 对公:1; 对私:2
*/
private String channelType;
private PageInfo<CommissionPayoutStatus> page;
public Long getInsurerId() {
......@@ -212,5 +220,22 @@ public class CommissionPayoutStatusQueryRequestVO {
public void setCommissionTypeDropOptionCodeList(List<String> commissionTypeDropOptionCodeList) {
this.commissionTypeDropOptionCodeList = commissionTypeDropOptionCodeList;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public String getChannelType() {
return channelType;
}
public void setChannelType(String channelType) {
this.channelType = channelType;
}
}
......@@ -45,6 +45,8 @@ public class ExportFortunePayRequestVO {
private Long s3Id;
private Long s2Id;
private Long s1Id;
private Long channelId;
private String channelType;
/**
* 获取 预计发佣年月
......@@ -205,4 +207,21 @@ public class ExportFortunePayRequestVO {
", commissionPayoutStatus=" + commissionPayoutStatus +
'}';
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public String getChannelType() {
return channelType;
}
public void setChannelType(String channelType) {
this.channelType = channelType;
}
}
......@@ -47,5 +47,8 @@ public class WithdrawQueryRequestVO {
private String systemFlag;
private Long s3Id;
private Long s2Id;
private Long s1Id;
private Long s1Id;
private Long channelId;
private String channelType;
}
......@@ -25,10 +25,14 @@ public class PractitionerHiringApproveRequestVO {
*/
private Integer hiringApproveStepsSeq;
/**
* 1:通过,0:驳回
* 1:通过,0:驳回(回退)
*/
private Long approvingStatus;
/**
* 回退到哪一个节点(null:报聘人, -2:辅导人, 1:体系负责人, 2:公司运营主管, 3:寿险总经理, 4:公司总经理)
*/
private String stepsSeqBackTo;
/**
* 备注,驳回原因
*/
private String rejectNote;
......@@ -141,4 +145,12 @@ public class PractitionerHiringApproveRequestVO {
public void setPractitionerId(Long practitionerId) {
this.practitionerId = practitionerId;
}
public String getStepsSeqBackTo() {
return stepsSeqBackTo;
}
public void setStepsSeqBackTo(String stepsSeqBackTo) {
this.stepsSeqBackTo = stepsSeqBackTo;
}
}
......@@ -18,6 +18,8 @@ public class PractitionerHiringListRequestVO {
private Long s3Id;
private Long s2Id;
private Long s1Id;
private String startDate;
private String endDate;
private PageInfo<PractitionerHiringListInfo> pageInfo;
......@@ -115,4 +117,21 @@ public class PractitionerHiringListRequestVO {
public void setS1Id(Long s1Id) {
this.s1Id = s1Id;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
}
package com.yd.api.agms.vo.practitioner;
import lombok.Data;
@Data
public class PractitionerActivityInfo {
private String practitionerName;
private String type;
private String score;
private String timePeriod;
}
package com.yd.api.agms.vo.practitioner;
import com.github.pagehelper.PageInfo;
import lombok.Data;
@Data
public class PractitionerActivityRequestVO {
private Long practitionerId;
private String startDate;
private String endDate;
private PageInfo<PractitionerActivityInfo> page;
}
package com.yd.api.agms.vo.practitioner;
import com.github.pagehelper.PageInfo;
import com.yd.api.result.CommonResult;
import lombok.Data;
import java.util.List;
@Data
public class PractitionerActivityResponseVO {
private CommonResult commonResult;
private List<PractitionerActivityInfo> list;
private PageInfo<PractitionerActivityInfo> page;
}
package com.yd.api.agms.vo.practitioner;
import lombok.Data;
import java.util.Date;
@Data
public class PractitionerLeadsGoalsInfo {
/**
* p.name 经纪人名称,
* CASE (t.statistic_time_unit) WHEN 1 THEN '年度目标' WHEN 3 THEN '月度目标' ELSE '其他' END 目标类型,
* t.seq_time 设置年份或者月份,
* t.premium 保费,t.commission 佣金,
* t.pieces 件数,
* t.piece_average_premium 件均保费,
* t.created_at 设置时间
*/
private String practitionerName;
private String type;
private String seqTime;
private String premium;
private String commission;
private String pieces;
private String pieceAveragePremium;
private Date createdAt;
}
package com.yd.api.agms.vo.practitioner;
import com.github.pagehelper.PageInfo;
import lombok.Data;
@Data
public class PractitionerLeadsGoalsRequestVO {
private String date;
private Long practitionerId;
private Integer type;
private PageInfo<PractitionerLeadsGoalsInfo> page;
}
package com.yd.api.agms.vo.practitioner;
import com.github.pagehelper.PageInfo;
import com.yd.api.result.CommonResult;
import lombok.Data;
import java.util.List;
@Data
public class PractitionerLeadsGoalsResponseVO {
private CommonResult commonResult;
private List<PractitionerLeadsGoalsInfo> list;
private PageInfo<PractitionerLeadsGoalsInfo> page;
}
package com.yd.api.agms.vo.practitioner;
import lombok.Data;
import java.util.Date;
@Data
public class PractitionerScheduleInfo {
/**
* p.name 经纪人名称,
* 日程,
* CASE (t.task_type) WHEN 1 THEN '商机' WHEN 2 THEN '增员' ELSE '其他' END 日程类型,
* op.drop_option_name 日程内容,
* t.track_time 日程,
* t.task_time_from 任务开始时间,
* task_time_end 任务结束时间,
* t.notice 备注,
* t.created_at 设置时间
*/
private String practitionerName;
private String trackTime;
private String taskType;
private String dropOptionName;
private String taskTimeFrom;
private String taskTimeEnd;
private String notice;
private Date createdAt;
}
package com.yd.api.agms.vo.practitioner;
import com.github.pagehelper.PageInfo;
import lombok.Data;
@Data
public class PractitionerScheduleRequestVO {
private String trackTime;
private Long practitionerId;
private Integer taskType;
private String dropOptionName;
private PageInfo<PractitionerScheduleInfo> page;
}
package com.yd.api.agms.vo.practitioner;
import com.github.pagehelper.PageInfo;
import com.yd.api.result.CommonResult;
import lombok.Data;
import java.util.List;
@Data
public class PractitionerScheduleResponseVO {
private CommonResult commonResult;
private List<PractitionerScheduleInfo> list;
private PageInfo<PractitionerScheduleInfo> page;
}
......@@ -1221,6 +1221,8 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
List<RenewalYearPerformanceCommission> c12List = new ArrayList<>();
List<Commission> c13List = new ArrayList<>();
List<Commission> c14List = new ArrayList<>();
List<Commission> d01List = new ArrayList<>();
List<Commission> d02List = new ArrayList<>();
List<OtherCommission> otherCommissionLis = new ArrayList<>();
......@@ -1231,7 +1233,7 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
List<WithdrawLabelInfo> list = agmsFortuneDalService.salaryPolicyNoDetails(info);
if(null != list && list.size() >0){
for(WithdrawLabelInfo withdrawLabelInfo : list){
if ("C01,C02,C03,C04,C05,C08,C11,R03,C14,C15,R02,".indexOf(withdrawLabelInfo.getDropOptionCode()+",") != -1) {
if ("C01,C02,C03,C04,C05,C08,C11,R03,C14,C15,R02,D01,D02,".indexOf(withdrawLabelInfo.getDropOptionCode()+",") != -1) {
Commission commission = new Commission();
commission.setCommission(withdrawLabelInfo.getReferralAmount().doubleValue());//佣金
commission.setCustomer(withdrawLabelInfo.getInsurerName());//保险公司
......@@ -1284,6 +1286,12 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
if ("C14".equals(withdrawLabelInfo.getDropOptionCode())) {
c14List.add(commission);
}
if ("D01".equals(withdrawLabelInfo.getDropOptionCode())) {
d01List.add(commission);
}
if ("D02".equals(withdrawLabelInfo.getDropOptionCode())) {
d02List.add(commission);
}
//体系推荐奖
if ("C15".equals(withdrawLabelInfo.getDropOptionCode())) {
RecommendSystemCommission recommendSystemCommission = new RecommendSystemCommission();
......@@ -1347,7 +1355,7 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
}
//C99:其他,C98:公司激励奖金,C97:其它税前加扣款,C96:加码奖金,C95:季度奖金,C94,银盾在线佣金
if ("C99,C94,C95,C96,C97,C98,S01,S03,".indexOf(withdrawLabelInfo.getDropOptionCode()+",") != -1) {
if ("C99,C94,C95,C96,C97,C98,S01,S03,D91,D92,".indexOf(withdrawLabelInfo.getDropOptionCode()+",") != -1) {
OtherCommission otherCommission = new OtherCommission();
otherCommission.setComments(withdrawLabelInfo.getRemark());
otherCommission.setCommissionName(withdrawLabelInfo.getCommissionType());
......@@ -1423,7 +1431,10 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
responseBody.setOtherCommissionList(newOtherCommissionLis);
//C11 独立经纪人展业津贴
responseBody.setIndependentBrokerAllowanceList(c11List);
//D01 首年渠道服务费
responseBody.setChannelFristYearCommissionList(d01List);
//D02 续年渠道服务费
responseBody.setChannelRenewalYearCommissionList(d02List);
}
/**
......@@ -1517,7 +1528,7 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
if ("C14".equals(commissionType)) {
return "A-006";
}
return null;
return commissionType;
}
private void queryYdOnlineCommission(SearchStaffSalaryDetailsRequestBody requestVO, SearchStaffSalaryDetailsResponseBody responseBody) {
......
......@@ -442,7 +442,7 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
hiringListInfoList = practitionerHiringDalService.queryUnhandledList(practitionerId);
} else {
// 当前经纪人通过或拒绝的记录
int status = Long.valueOf("1").equals(approvingStatus) ? 1 : 0;
int status = approvingStatus.intValue();
hiringListInfoList = practitionerHiringDalService.queryHandledList(practitionerId, status);
}
......
......@@ -754,6 +754,15 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
practitionerItem.setPractitionerId(practitionerIdForOnLine.toString());
}
practitionerIdItem = practitionerItem.getPractitionerId();
if (practitionerId.equals(practitionerIdItem)) {//赋值、
if(boole){
BeanUtils.copyProperties(practitionerItem, practitionerInfo);
practitionerInfo.setRank(rank);
}
if (rank > 10) {
break;
}
}
if (rank <= 10) {//排名
if(practitionerId.equals(practitionerIdItem)){
if(!boole) continue;
......@@ -766,13 +775,6 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
fortuneStatistics.setRank(rank);
rankList.add(fortuneStatistics);
}
if (practitionerId.equals(practitionerIdItem)) {//赋值
BeanUtils.copyProperties(practitionerItem, practitionerInfo);
practitionerInfo.setRank(rank);
if (rank > 10) {
break;
}
}
rank++;
}
}
......
......@@ -104,6 +104,14 @@ public class CommissionPayoutStatus {
private String monthPeriod;
private String remark;
/**
* 渠道类型: 对公:1; 对私:2或者空
*/
private String channelType;
/**
* 所属渠道
*/
private String channelName;
public String getCommissionPayoutYearmonth() {
return commissionPayoutYearmonth;
......@@ -283,6 +291,7 @@ public class CommissionPayoutStatus {
", commissionPayoutStatus='" + commissionPayoutStatus + '\'' +
", monthPeriod='" + monthPeriod + '\'' +
", remark='" + remark + '\'' +
", channelType='" + channelType + '\'' +
'}';
}
@JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
......@@ -301,4 +310,28 @@ public class CommissionPayoutStatus {
public void setRemark(String remark) {
this.remark = remark;
}
/**
* 渠道类型: 对公:1; 对私:2或者空
* @return the channelType
*/
public String getChannelType() {
return channelType;
}
/**
* 渠道类型: 对公:1; 对私:2或者空
* @param channelType the channelType to set
*/
public void setChannelType(String channelType) {
this.channelType = channelType;
}
public String getChannelName() {
return channelName;
}
public void setChannelName(String channelName) {
this.channelName = channelName;
}
}
......@@ -64,6 +64,12 @@ public class CommissionPayoutStatusQueryInfo {
* 体系子集id
*/
List<Long> subsystemIdList;
/**
* 渠道Id
*/
private Long channelId;
private String channelType;//渠道类型: 对公:1; 对私:2或者空
private PageInfo<CommissionPayoutStatus> page;
......@@ -184,4 +190,21 @@ public class CommissionPayoutStatusQueryInfo {
public void setCommissionTypeDropOptionCodeList(List<String> commissionTypeDropOptionCodeList) {
this.commissionTypeDropOptionCodeList = commissionTypeDropOptionCodeList;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public String getChannelType() {
return channelType;
}
public void setChannelType(String channelType) {
this.channelType = channelType;
}
}
......@@ -98,6 +98,15 @@ public class FortunePayToOrderInfo {
*/
private BigDecimal fycAmount;
/**
* 渠道名称
*/
private String channelName;
/**
* 渠道联系人手机号
*/
private String contactPhone;
/**
* 获取 保险公司
......@@ -422,8 +431,24 @@ public class FortunePayToOrderInfo {
public void setFycAmount(BigDecimal fycAmount) {
this.fycAmount = fycAmount;
}
public String getChannelName() {
return channelName;
}
public void setChannelName(String channelName) {
this.channelName = channelName;
}
public String getContactPhone() {
return contactPhone;
}
public void setContactPhone(String contactPhone) {
this.contactPhone = contactPhone;
}
@Override
@Override
public String toString() {
return "FortunePayToOrderInfo{" +
"insurerName='" + insurerName + '\'' +
......@@ -444,6 +469,8 @@ public class FortunePayToOrderInfo {
", insurerBranchDeptName='" + insurerBranchDeptName + '\'' +
", subordinateSystemName='" + subordinateSystemName + '\'' +
", fycAmount=" + fycAmount +
", channelName=" + channelName +
", contactPhone=" + contactPhone +
'}';
}
}
......
......@@ -3,7 +3,6 @@ package com.yd.dal.entity.agms.fortune;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author xxy
......@@ -18,7 +17,10 @@ public class WithdrawLabelInfo {
* 预计发佣年月
*/
private String payoutYearmonth;
/**
* 所属渠道
*/
private String channelName;
/**
* 经纪人
*/
......@@ -158,6 +160,7 @@ public class WithdrawLabelInfo {
*匹配佣奖率的金额
*/
private BigDecimal calculationAmount;
private String channelType;
}
......
......@@ -43,5 +43,8 @@ public class WithdrawQueryInfo {
* 体系子集id
*/
List<Long> subsystemIdList;
private Long channelId;
private String channelType;
}
......@@ -208,6 +208,11 @@ public class AclPractitioner {
private Long mentorId;
/**
* FK ag_acl_practitioner.id 间接辅导人
*/
private Long inMentorId;
/**
* FK ag_acl_practitioner.id 介绍人
*/
private Long introducerId;
......
package com.yd.dal.entity.customer;
import java.util.Date;
import lombok.Data;
import java.util.Date;
/**
* 報聘经纪人報聘审批记录
*/
......@@ -74,4 +75,8 @@ public class AclPractitionerHiringApproveRecords {
private Date updatedAt;
private Long updatedBy;
/**
* 0=No, 1=Yes
*/
private Integer isBack;
}
\ No newline at end of file
......@@ -53,4 +53,11 @@ public interface AgmsFortuneMapper {
List<Long> querySalePractitionerFortune1(List<Long> fortuneIdList);
void commissionPayoutAddRemark(CommissionPayoutAddRemarkRequestVO requestVO);
/**
* 对公渠道清算报表
* @param fortuneIdList
* @return
*/
List<Map<String, Object>> querySheet3Data(List<Long> fortuneIdList);
}
......@@ -78,5 +78,17 @@ public interface AgmsHiringMapper {
@Param("name")String name
);
List<PractitionerHiringListInfo> queryS2List(@Param("approveStatus")String approveStatus);
List<PractitionerHiringListInfo> queryS2List(@Param("approveStatus")String approveStatus,
@Param("name")String name);
Page<PractitionerHiringListInfo> practitionerApplyList(@Param("approveStatus")String approveStatus,
@Param("list")List<String> canAprroveGrades,
@Param("branchId")Long branchId,
@Param("deptId")Long deptId,
@Param("subsystemIdList")List<Long> subsystemIdList,
@Param("name")String name,
@Param("startDate")String startDate,
@Param("endDate")String endDate
);
}
package com.yd.dal.mapper.agms;
import com.github.pagehelper.Page;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharing;
import com.yd.api.agms.vo.practitioner.SharePractitionerInfo;
import com.yd.api.agms.vo.practitioner.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @author xxy
*/
......@@ -22,4 +24,17 @@ public interface AgmsPractitionerMapper {
@Param("isActive") Integer isActive);
SharePractitionerInfo findSharePractitioner(String shareCode);
List<PractitionerScheduleInfo> practitionerSchedule(PractitionerScheduleRequestVO requestVO);
List<PractitionerLeadsGoalsInfo> practitionerLeadsGoals(PractitionerLeadsGoalsRequestVO requestVO);
List<Map<String, Object>> practitionerScheduleExport(PractitionerScheduleRequestVO requestVO);
List<Map<String, Object>> practitionerLeadsGoalsExport(PractitionerLeadsGoalsRequestVO requestVO);
List<PractitionerActivityInfo> practitionerActivity(PractitionerActivityRequestVO requestVO);
List<Map<String, Object>> practitionerActivityExport(PractitionerActivityRequestVO requestVO);
}
package com.yd.dal.mapper.customer;
import com.yd.api.practitioner.vo.businessCard.Certificate;
import com.yd.api.practitioner.vo.businessCard.PractitionerBusinessCardRequestVO;
import com.yd.api.practitioner.vo.businessCard.PractitionerBusinessCardResponseVO;
import com.yd.api.practitioner.vo.payscale.PayScaleInfo;
import com.yd.api.practitioner.vo.subordinate.TeamMemberDetail;
import com.yd.api.practitioner.vo.unionSales.UnionSalesPractitionerInfo;
import com.yd.dal.entity.customer.AclPractitioner;
import com.yd.dal.entity.customer.practitioner.PractitionerBasicInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerInfo;
import com.yd.dal.entity.customer.practitioner.PractitionerRankInfo;
import com.yd.dal.entity.practitioner.opportunity.OwnOpportunityInfo;
import com.yd.dal.entity.practitioner.opportunity.PlayerSalesActivityInfo;
import com.yd.dal.entity.practitioner.payscale.PayScaleBasicInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import com.yd.dal.entity.customer.practitioner.PractitionerBasicInfo;import com.yd.dal.entity.customer.practitioner.PractitionerInfo;import com.yd.dal.entity.customer.practitioner.PractitionerRankInfo;import com.yd.dal.entity.practitioner.opportunity.OwnOpportunityInfo;import com.yd.dal.entity.practitioner.opportunity.PlayerSalesActivityInfo;import com.yd.dal.entity.practitioner.payscale.PayScaleBasicInfo;import org.apache.ibatis.annotations.Param;
public interface AclPractitionerMapper {
int deleteByPrimaryKey(Long id);
......@@ -152,5 +158,6 @@ public interface AclPractitionerMapper {
* @author Yan Wenyang
*/
List<Certificate> findCertificate(List<Long> certIdList);
List<PractitionerInfo> findPractitionerInfoByIdList(List<Long> idList);
}
......@@ -53,4 +53,6 @@ public interface AgmsFortuneDALService {
List<Long> querySalePractitionerFortune1(List<Long> fortuneIdList);
void commissionPayoutAddRemark(CommissionPayoutAddRemarkRequestVO requestVO);
List<Map<String, Object>> querySheet3Data(List<Long> fortuneIdList);
}
......@@ -3,10 +3,12 @@ package com.yd.dal.service.agms;
import com.github.pagehelper.PageInfo;
import com.yd.api.agms.vo.hiring.PractitionerHiringListRequestVO;
import com.yd.dal.entity.agms.hiring.*;
import com.yd.dal.entity.customer.AclPractitionerHiringBasicInfo;
import com.yd.dal.entity.customer.AclPractitionerHiringMembership;
import com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps;
import java.util.List;
import java.util.Map;
/**
* @author xxy
......@@ -65,10 +67,14 @@ public interface AgmsHiringDALService {
PageInfo<PractitionerHiringListInfo> queryHandledList(Long practitionerId, String status,
PractitionerHiringListRequestVO requestVO);
List<PractitionerHiringListInfo> practitionerApplyList(PractitionerHiringListRequestVO requestVO);
List<PractitionerHiringListInfo> queryUnhandledList(PractitionerHiringListRequestVO requestVO);
AclPractitionerHiringMembership queryHiringMemberShip(Long hiringBasicInfoId);
void noticeNextStep(MdPractitionerHiringApproveSteps nextStep, Long basicInfoId);
void noticeSendWeChatMsg(String firstValue, String noticeMsg, List<Map<String, String>> practitionerList, AclPractitionerHiringBasicInfo basicInfo);
}
package com.yd.dal.service.agms;
import com.github.pagehelper.PageInfo;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharing;
import com.yd.api.agms.vo.practitioner.SharePractitionerInfo;
import com.yd.api.agms.vo.practitioner.*;
import java.util.List;
import java.util.Map;
/**
* @author xxy
......@@ -19,4 +21,16 @@ public interface AgmsPractitionerDALService {
PageInfo<PractitionerFileSharing> practitionerFileSharingList(Long id ,Long practitionerId,String shareCode,Long[] mdDropOptionId, Integer isActive, int pageNum, int size);
SharePractitionerInfo findSharePractitioner(String shareCode);
List<PractitionerScheduleInfo> practitionerSchedule(PractitionerScheduleRequestVO requestVO);
List<PractitionerLeadsGoalsInfo> practitionerLeadsGoals(PractitionerLeadsGoalsRequestVO requestVO);
List<Map<String, Object>> practitionerScheduleExport(PractitionerScheduleRequestVO requestVO);
List<Map<String, Object>> practitionerLeadsGoalsExport(PractitionerLeadsGoalsRequestVO requestVO);
List<PractitionerActivityInfo> practitionerActivity(PractitionerActivityRequestVO requestVO);
List<Map<String, Object>> practitionerActivityExport(PractitionerActivityRequestVO requestVO);
}
......@@ -103,4 +103,9 @@ public class AgmsFortuneDALServiceImpl implements AgmsFortuneDALService {
fortune.setUpdatedAt(new Date());
aclCustomerFortuneMapper.updateByPrimaryKeySelective(fortune);
}
@Override
public List<Map<String, Object>> querySheet3Data(List<Long> fortuneIdList) {
return agmsFortuneMapper.querySheet3Data(fortuneIdList);
}
}
......@@ -181,58 +181,42 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
}
// 1.3 查询审批人列表
List<PractitionerInfo> practitionerList = aclPractitionerDALService.findPractitionerInfoByMobileList(Arrays.asList(mobileNoArray));
// 2.报聘人组织关系, 姓名
StringBuilder name2 = new StringBuilder();
String s3SubordinateSystemName = hiringMemberShip.getS3SubordinateSystemName();
String s2SubordinateSystemName = hiringMemberShip.getS2SubordinateSystemName();
String s1SubordinateSystemName = hiringMemberShip.getS1SubordinateSystemName();
boolean flag = false;
if (StringUtils.isNotEmpty(s3SubordinateSystemName)) {
name2.append(s3SubordinateSystemName);
if (s3SubordinateSystemName.indexOf("纵队") < 0) {
name2.append("纵队");
}
flag = true;
}
if (StringUtils.isNotEmpty(s2SubordinateSystemName)) {
name2.append(s2SubordinateSystemName);
if (s2SubordinateSystemName.indexOf("体系") < 0) {
name2.append("体系");
}
flag = true;
}
if (StringUtils.isNotEmpty(s1SubordinateSystemName)) {
name2.append(s1SubordinateSystemName);
if (s1SubordinateSystemName.indexOf("分部") < 0) {
name2.append("分部");
}
flag = true;
}
if (flag) {
name2.append("的");
}
name2.append(basicInfo.getName());
// 2.获取报聘人组织架构信息
String orgInfo = practitionerHiringDalService.getHiringOrganizationInfo(basicInfo, hiringMemberShip);
// 发送短信通知下一位审批人进行审批
this.noticeSendSMS(name2.toString(), practitionerList, basicInfo);
this.noticeSendSMS(orgInfo, practitionerList, basicInfo);
// 公众号推送通知下一位审批人进行审批
this.noticeSendWeChatMsg(name2.toString(), practitionerList, basicInfo);
String firstValue = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_FIRST_HIRING");
firstValue = firstValue.replace("hiringName", orgInfo);
ArrayList<Map<String, String>> list = new ArrayList<>();
for (PractitionerInfo practitionerInfo : practitionerList) {
Map<String, String> map = new HashMap<>();
map.put("name", practitionerInfo.getName());
map.put("mobileNo", practitionerInfo.getMobileNo());
map.put("ydWechatOpenid", practitionerInfo.getYdWechatOpenid());
list.add(map);
}
this.noticeSendWeChatMsg(firstValue, "待审批", list, basicInfo);
}
private void noticeSendWeChatMsg(String hiringName, List<PractitionerInfo> practitionerList, AclPractitionerHiringBasicInfo basicInfo) {
@Override
public void noticeSendWeChatMsg(String firstValue, String noticeMsg, List<Map<String, String>> practitionerList, AclPractitionerHiringBasicInfo basicInfo) {
// 读取数据库配置
String templateId = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_ID_HIRING");
String jumpUrl = systemConfigService.getSingleConfigValue("hiringApprove_page_url");
String firstValue = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_FIRST_HIRING");
// String firstValue = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_FIRST_HIRING");
String remarkValue = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_REMARK_HIRING");
String color = systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TEMPLATE_COLOR_XB");
// 组装模板数据
TemplateDataInfo dataInfo = new TemplateDataInfo();
DataDetailInfo first = new DataDetailInfo();
DataDetailInfo keyword1 = new DataDetailInfo("待审批", color);
DataDetailInfo keyword1 = new DataDetailInfo(noticeMsg, color);
DataDetailInfo keyword2 = new DataDetailInfo(CommonUtil.dateParseString(basicInfo.getCreatedAt(),"yyyy-MM-dd HH:mm:ss"), null);
DataDetailInfo remark = new DataDetailInfo(remarkValue, null);
......@@ -248,20 +232,20 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
sendTemplateRequest.setData(dataInfo);
sendTemplateRequest.setUrl(jumpUrl);
for (PractitionerInfo practitionerInfo : practitionerList) {
for (Map<String, String> practitionerInfo : practitionerList) {
// openId不为null, 执行
if (StringUtils.isNotBlank(practitionerInfo.getYdWechatOpenid())) {
sendTemplateRequest.setToUser(practitionerInfo.getYdWechatOpenid());
if (StringUtils.isNotBlank(practitionerInfo.get("ydWechatOpenid"))) {
sendTemplateRequest.setToUser(practitionerInfo.get("ydWechatOpenid"));
// 审批人姓名
first.setValue(firstValue.replace("name", practitionerInfo.getName()).replace("hiringName", hiringName));
first.setValue(firstValue.replace("name", practitionerInfo.get("name")));
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》发送微信模板消息审批人");
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》" + practitionerInfo.getName());
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》" + practitionerInfo.get("name"));
// 微信通知
wechatService.sendTemplateMessage(sendTemplateRequest);
} else {
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》发送微信模板消息审批人openId为空");
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》" + practitionerInfo.getName());
logger.error("【》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》" + practitionerInfo.get("name"));
}
}
}
......@@ -399,7 +383,7 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
}
if (canAprroveGrades.contains("30")) {
List<PractitionerHiringListInfo> s2List = agmsHiringMapper.queryS2List(approveStatus);
List<PractitionerHiringListInfo> s2List = agmsHiringMapper.queryS2List(approveStatus,requestVO.getName());
dataList.addAll(s2List);
}
......@@ -412,4 +396,23 @@ public class AgmsHiringDALServiceImpl implements AgmsHiringDALService {
return uniqueList;
}
@Override
public List<PractitionerHiringListInfo> practitionerApplyList(PractitionerHiringListRequestVO requestVO) {
PageHelper.clearPage();//偶然遇到了这个问题,同一个查询结果一会是10个(预期),一会是真实个数(刷新/重启应用就又变成真实个数) 查看日志,发现了问题:结果为10个时查询SQL自动加上了Limit 10
//体系查询调整,如果体系为S3,则需要查询它下面的所有子集
PractitionerSubordinateInfo practitionerSubordinateInfo = new PractitionerSubordinateInfo();
BeanUtils.copyProperties(requestVO,practitionerSubordinateInfo);
practitionerSubordinateInfo.setInsurerBranchId(requestVO.getBranchId());
List<Long> subsystemIdList = aclPractitionerSubordinateSystemDalService.getLongs(practitionerSubordinateInfo);
List<PractitionerHiringListInfo> resultList = agmsHiringMapper.practitionerApplyList(requestVO.getStatus(), null,
requestVO.getBranchId(),
requestVO.getDeptId(),
subsystemIdList,
requestVO.getName(),
requestVO.getStartDate(),
requestVO.getEndDate());
return resultList;
}
}
......@@ -3,14 +3,16 @@ package com.yd.dal.service.agms.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yd.api.agms.vo.practitioner.PractitionerFileSharing;
import com.yd.api.agms.vo.practitioner.SharePractitionerInfo;
import com.yd.api.agms.vo.practitioner.*;
import com.yd.dal.mapper.agms.AgmsPractitionerMapper;
import com.yd.dal.service.agms.AgmsPractitionerDALService;
import com.yd.util.CommonUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* @author xxy
*/
......@@ -33,4 +35,34 @@ public class AgmsPractitionerDALServiceImpl implements AgmsPractitionerDALServic
}
return mapper.findSharePractitioner(shareCode);
}
@Override
public List<PractitionerScheduleInfo> practitionerSchedule(PractitionerScheduleRequestVO requestVO) {
return mapper.practitionerSchedule(requestVO);
}
@Override
public List<PractitionerLeadsGoalsInfo> practitionerLeadsGoals(PractitionerLeadsGoalsRequestVO requestVO) {
return mapper.practitionerLeadsGoals(requestVO);
}
@Override
public List<Map<String, Object>> practitionerScheduleExport(PractitionerScheduleRequestVO requestVO) {
return mapper.practitionerScheduleExport(requestVO);
}
@Override
public List<Map<String, Object>> practitionerLeadsGoalsExport(PractitionerLeadsGoalsRequestVO requestVO) {
return mapper.practitionerLeadsGoalsExport(requestVO);
}
@Override
public List<PractitionerActivityInfo> practitionerActivity(PractitionerActivityRequestVO requestVO) {
return mapper.practitionerActivity(requestVO);
}
@Override
public List<Map<String, Object>> practitionerActivityExport(PractitionerActivityRequestVO requestVO) {
return mapper.practitionerActivityExport(requestVO);
}
}
package com.yd.dal.service.customer;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Service;
import com.yd.api.practitioner.vo.businessCard.Certificate;
import com.yd.api.practitioner.vo.businessCard.PractitionerBusinessCardResponseVO;
import com.yd.api.practitioner.vo.payscale.PayScaleInfo;
......@@ -18,6 +13,10 @@ import com.yd.dal.entity.customer.practitioner.PractitionerRankInfo;
import com.yd.dal.entity.practitioner.opportunity.OwnOpportunityInfo;
import com.yd.dal.entity.practitioner.opportunity.PlayerSalesActivityInfo;
import com.yd.dal.entity.practitioner.payscale.PayScaleBasicInfo;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service("aclPractitionerDALService")
public interface AclPractitionerDALService {
......@@ -221,6 +220,8 @@ public interface AclPractitionerDALService {
List<PractitionerInfo> findPractitionerInfoByMobileList(List<String> mobileList);
List<PractitionerInfo> findPractitionerInfoByIdList(List<Long> idList);
List<PayScaleInfo> queryEGHistorySalaryPDFByPractitionerId(Long practitionerId);
/**
......
......@@ -14,5 +14,7 @@ public interface AclPractitionerHiringApproveRecordsDALService {
List<AclPractitionerHiringApproveRecords> queryListByBasicInfoId(Long hiringBasicInfoId);
int deleteByHiringBasicInfoId(Long basicInfoId);
void updateBatch(List<AclPractitionerHiringApproveRecords> records);
}
package com.yd.dal.service.customer.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import com.google.common.base.Strings;
import com.yd.api.practitioner.service.PractitionerService;
import com.yd.api.practitioner.vo.businessCard.Certificate;
......@@ -40,6 +26,18 @@ import com.yd.util.auth.setting.JwtTokenUtil;
import com.yd.util.deshandler.DESTypeHandler;
import com.yd.util.intercept.annotation.TargetDataSource;
import com.yd.util.intercept.commons.DataSourceKey;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service("aclPractitionerDALService")
public class AclPractitionerDALServiceImpl implements AclPractitionerDALService {
......@@ -270,6 +268,11 @@ public class AclPractitionerDALServiceImpl implements AclPractitionerDALService
}
@Override
public List<PractitionerInfo> findPractitionerInfoByIdList(List<Long> idList) {
return aclPractitionerMapper.findPractitionerInfoByIdList(idList);
}
@Override
public List<PayScaleInfo> queryEGHistorySalaryPDFByPractitionerId(Long practitionerId) {
return aclPractitionerMapper.queryEGHistorySalaryPDFByPractitionerId(practitionerId);
}
......
......@@ -31,4 +31,9 @@ public class AclPractitionerHiringApproveRecordsDALServiceImpl implements AclPra
public int deleteByHiringBasicInfoId(Long hiringBasicInfoId) {
return mapper.deleteByHiringBasicInfoId(hiringBasicInfoId);
}
@Override
public void updateBatch(List<AclPractitionerHiringApproveRecords> records) {
mapper.updateBatch(records);
}
}
package com.yd.dal.service.practitioner;
import com.yd.api.practitioner.vo.hiring.PractitionerHiringContractTerms;
import com.yd.dal.entity.customer.AclPractitionerHiringBasicInfo;
import com.yd.dal.entity.customer.AclPractitionerHiringMembership;
import com.yd.dal.entity.practitioner.hiring.*;
......@@ -106,4 +107,14 @@ public interface PractitionerHiringDALService {
* @return
*/
AclPractitionerHiringMembership queryHiringMemberShip(Long hiringBasicInfoId);
/**
* 获取报聘经纪人组织架构信息
* XX纵队XX体系XX分部的XX经纪人
*
* @param basicInfo
* @param hiringMemberShip
* @return
*/
String getHiringOrganizationInfo(AclPractitionerHiringBasicInfo basicInfo, AclPractitionerHiringMembership hiringMemberShip);
}
......@@ -2,14 +2,12 @@ package com.yd.dal.service.practitioner.impl;
import com.yd.api.practitioner.vo.hiring.PractitionerHiringContractTerms;
import com.yd.dal.entity.agms.hiring.PractitionerHiringListInfo;
import com.yd.dal.entity.customer.AclPractitioner;
import com.yd.dal.entity.customer.AclPractitionerHiringMembership;
import com.yd.dal.entity.customer.AclPractitionerSubordinateSystem;
import com.yd.dal.entity.customer.CustomerFileUpload;
import com.yd.dal.entity.customer.*;
import com.yd.dal.entity.customer.practitioner.PractitionerInfo;
import com.yd.dal.entity.meta.MdPractitionerHiringApproveSteps;
import com.yd.dal.entity.practitioner.hiring.*;
import com.yd.dal.mapper.agms.AgmsHiringMapper;
import com.yd.dal.mapper.customer.AclPractitionerHiringBasicInfoMapper;
import com.yd.dal.mapper.customer.AclPractitionerHiringMembershipMapper;
import com.yd.dal.mapper.customer.AclPractitionerMapper;
import com.yd.dal.mapper.practitioner.PractitionerHiringMapper;
......@@ -21,6 +19,7 @@ import com.yd.dal.service.practitioner.PractitionerHiringDALService;
import com.yd.dal.service.user.AclUserDALService;
import com.yd.rmi.cache.SystemConfigService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -55,6 +54,8 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
private AclUserDALService aclUserDalService;
@Autowired
private AclPractitionerSubordinateSystemDALService aclPractitionerSubordinateSystemDALService;
@Autowired
private AclPractitionerHiringBasicInfoMapper basicInfoMapper;
@Override
public List<HiringListInfo> findHiringList(Long practitionerId, Long approvingStatus) {
......@@ -88,14 +89,18 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
@Override
public List<HiringApproveRecords> findHiringApproveRecordsList(Long hiringBasicInfoId) {
// 当前审核状态
AclPractitionerHiringBasicInfo basicInfo = basicInfoMapper.selectByPrimaryKey(hiringBasicInfoId);
String approveStatus = basicInfo.getApproveStatus();
List<HiringApproveRecords> records = practitionerHiringMapper.findHiringApproveRecordsList(hiringBasicInfoId);
PractitionerInfo practitionerInfo;
CustomerFileUpload fileUpload;
String imagePath;
String levelName;
// 创建一个Map
Map<Long, HiringApproveRecords> map = new HashMap<>();
for (HiringApproveRecords item : records) {
// 获取职级
practitionerInfo = aclPractitionerDALService.findPractitionerInfoByPractitionerId(item.getApprovingPractitionerId());
......@@ -106,12 +111,15 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
item.setHeadImagePath(imagePath);
item.setLevelName(levelName);
}
map.put(item.getApproveStepId(), item);
// 如果已审核结束,则不需要手动创建未审批的流程
if ("0".equals(approveStatus)) {
return records;
}
// 声明最终返回的List
List<HiringApproveRecords> resultList = new ArrayList<>();
List<HiringApproveRecords> resultList = new ArrayList<>(records);
// 所有的审批流程
List<MdPractitionerHiringApproveSteps> stepsList = systemConfigService.findHiringApproveStepsAll();
// 当前经纪人的报聘职级
......@@ -124,10 +132,9 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
subsystemOwnerName = (approvedBy != null) ? approvedBy.getName() : "";
}
HiringApproveRecords record;
for (MdPractitionerHiringApproveSteps step : stepsList) {
// S2前2步不用审批
if ((mdDropOptionName.indexOf("S2")>=0 || mdDropOptionName.indexOf("S3")>=0)
if ((mdDropOptionName.indexOf("S2") >= 0 || mdDropOptionName.indexOf("S3") >= 0)
&& (step.getStepSeq() == 1 || step.getStepSeq() == 2)
) {
continue;
......@@ -138,16 +145,16 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
) {
continue;
}
record = map.get(step.getId());
if (record != null) {
resultList.add(record);
} else {
if(approveStatus == null){
approveStatus = "-2";
}
if (step.getStepSeq() > Integer.parseInt(approveStatus)) {
HiringApproveRecords obj = new HiringApproveRecords();
obj.setApproveStepId(step.getId());
obj.setApproveStepName(step.getStepName());
obj.setApprovingStatusId(Long.valueOf("2"));
obj.setApprovingStatus("未审批");
// 获取每一步审批人姓名
if ("mentor".equals(step.getApproveRole())) {
obj.setApprovingPractitionerName(hiringMemberShip.getMentor());
......@@ -157,7 +164,6 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
String names = aclUserDalService.selectNamesByMobileNos(step.getAppointedApprovePractitioners());
obj.setApprovingPractitionerName(names);
}
resultList.add(obj);
}
}
......@@ -258,7 +264,7 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
}
if (canAprroveGrades.contains("30")) {
List<PractitionerHiringListInfo> s2List = agmsHiringMapper.queryS2List(approveStatus);
List<PractitionerHiringListInfo> s2List = agmsHiringMapper.queryS2List(approveStatus,null);
dataList.addAll(s2List);
}
}
......@@ -291,40 +297,40 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
@Override
public String getApproveStatusByStepSeq(Integer stepSeq) {
switch (stepSeq) {
case 1 :
return "-2";
case 2 :
return "1";
case 3 :
return "2";
case 4 :
return "3";
case 5 :
return "4";
case 6 :
return "5";
if (Integer.valueOf(1).equals(stepSeq)) {
return "-2";
} else if (Integer.valueOf(2).equals(stepSeq)) {
return "1";
} else if (Integer.valueOf(3).equals(stepSeq)) {
return "2";
} else if (Integer.valueOf(4).equals(stepSeq)) {
return "3";
} else if (Integer.valueOf(5).equals(stepSeq)) {
return "4";
} else if (Integer.valueOf(6).equals(stepSeq)) {
return "5";
} else {
return null;
}
return null;
}
@Override
public Integer getNextStepSeqByApproveStatus(String approveStatus) {
switch (approveStatus) {
case "-2" :
return Integer.valueOf("1");
case "1" :
return Integer.valueOf("2");
case "2" :
return Integer.valueOf("3");
case "3" :
return Integer.valueOf("4");
case "4" :
return Integer.valueOf("5");
case "5" :
return Integer.valueOf("6");
if ("-2".equals(approveStatus)) {
return Integer.valueOf("1");
} else if ("1".equals(approveStatus)) {
return Integer.valueOf("2");
} else if ("2".equals(approveStatus)) {
return Integer.valueOf("3");
} else if ("3".equals(approveStatus)) {
return Integer.valueOf("4");
} else if ("4".equals(approveStatus)) {
return Integer.valueOf("5");
} else if ("5".equals(approveStatus)) {
return Integer.valueOf("6");
} else {
return null;
}
return null;
}
@Override
......@@ -384,4 +390,39 @@ public class PractitionerHiringDALServiceImpl implements PractitionerHiringDALSe
}
return hiringMemberShip;
}
@Override
public String getHiringOrganizationInfo(AclPractitionerHiringBasicInfo basicInfo, AclPractitionerHiringMembership hiringMemberShip) {
StringBuilder orgInfo = new StringBuilder();
String s3SubordinateSystemName = hiringMemberShip.getS3SubordinateSystemName();
String s2SubordinateSystemName = hiringMemberShip.getS2SubordinateSystemName();
String s1SubordinateSystemName = hiringMemberShip.getS1SubordinateSystemName();
boolean flag = false;
if (StringUtils.isNotEmpty(s3SubordinateSystemName)) {
orgInfo.append(s3SubordinateSystemName);
if (s3SubordinateSystemName.indexOf("纵队") < 0) {
orgInfo.append("纵队");
}
flag = true;
}
if (StringUtils.isNotEmpty(s2SubordinateSystemName)) {
orgInfo.append(s2SubordinateSystemName);
if (s2SubordinateSystemName.indexOf("体系") < 0) {
orgInfo.append("体系");
}
flag = true;
}
if (StringUtils.isNotEmpty(s1SubordinateSystemName)) {
orgInfo.append(s1SubordinateSystemName);
if (s1SubordinateSystemName.indexOf("分部") < 0) {
orgInfo.append("分部");
}
flag = true;
}
if (flag) {
orgInfo.append("的");
}
return orgInfo.append(basicInfo.getName()).toString();
}
}
......@@ -43,11 +43,10 @@ public class MailServiceImpl implements MailService {
@Override
public void sysWarning(String warningSubject,String warningMessage) {
String toAddress = "simon.cheng@ydinsurance.cn";
String toAddress = "wenyang.yan@ydinsurance.cn";
List<String> ccList = systemConfigService.getListConfigValue("SysWarningCCAddress");
String[] ccAddresses = new String[ccList.size()];
ccList.toArray(ccAddresses);
// String[] ccAddress = new String[]{"water.wang@autogeneral.cn","sweet.zhang@autogeneral.cn","jerold.chen@autogeneral.cn"};
String subject = "【"+ SpringContextUtil.getEnvironmentName()+"环境】"+warningSubject;
String messageText = CommonUtil.currentIP()+" "+warningMessage;
String imageFile = null;
......@@ -70,11 +69,10 @@ public class MailServiceImpl implements MailService {
@Override
public void sysException(String warningSubject, String warningMessage) {
// if("prod".equals(SpringContextUtil.getActiveProfile())){
String toAddress = "water.wang@ydinsurance.cn";//"simon.cheng@autogeneral.cn";
String toAddress = "wenyang.yan@ydinsurance.cn";//"simon.cheng@autogeneral.cn";
List<String> ccList = systemConfigService.getListConfigValue("SysWarningCCAddress");
String[] ccAddresses = new String[ccList.size()];
ccList.toArray(ccAddresses);
// String[] ccAddress = new String[]{"water.wang@autogeneral.cn","sweet.zhang@autogeneral.cn","jerold.chen@autogeneral.cn"};
String subject = "【"+SpringContextUtil.getEnvironmentName()+"环境】"+warningSubject;
String messageText = CommonUtil.currentIP()+" "+warningMessage;
String imageFile = null;
......
......@@ -226,8 +226,8 @@ public class AliMailInterfServiceImpl implements AliMailInterfService {
public static void main(String[] args){
AliMailInterfServiceImpl service = new AliMailInterfServiceImpl();
String toAddress = "water.wang@autogeneral.cn";
String[] ccAddresses = new String[]{"water.wang@autogeneral.cn","1034346366@qq.com"};
String toAddress = "wenyang.yan@ydinsurance.cn";
String[] ccAddresses = new String[]{"wenyang.yan@ydinsurance.cn","1034346366@qq.com"};
String subject = "您已成功通过安吉保购买保险产品";
String messageText = ""
+"尊敬的XX,您好!"
......
......@@ -50,7 +50,8 @@ public class SearchStaffSalaryDetailsResponseBody {
private List<RenewalYearPerformanceCommission> breedingBonusList;//育成奖金
private List<Commission> independentBrokerAllowanceList;//独立经纪人展业津贴
private List<Commission> direcSalesAddWeightList;//直接销售加码佣金
private List<Commission> channelFristYearCommissionList;//D01-首年渠道服务费
private List<Commission> channelRenewalYearCommissionList;//D02-续年渠道服务费
public SearchStaffSalaryDetailsResponseBody() {
......@@ -248,4 +249,20 @@ public class SearchStaffSalaryDetailsResponseBody {
public void setDirecSalesAddWeightList(List<Commission> direcSalesAddWeightList) {
this.direcSalesAddWeightList = direcSalesAddWeightList;
}
public List<Commission> getChannelFristYearCommissionList() {
return channelFristYearCommissionList;
}
public void setChannelFristYearCommissionList(List<Commission> channelFristYearCommissionList) {
this.channelFristYearCommissionList = channelFristYearCommissionList;
}
public List<Commission> getChannelRenewalYearCommissionList() {
return channelRenewalYearCommissionList;
}
public void setChannelRenewalYearCommissionList(List<Commission> channelRenewalYearCommissionList) {
this.channelRenewalYearCommissionList = channelRenewalYearCommissionList;
}
}
......@@ -229,10 +229,12 @@
<if test="status != null">
<choose>
<when test='status == "1" '>
and t.approving_status = 1
and (b.approve_status >= t.approve_step_id OR b.approve_status = 0)
</when>
<when test='status == "2" '>
and t.approving_status = 0
and ((b.approve_status != 0 and b.approve_status &lt; t.approve_step_id-1) or b.approve_status is null)
and t.id &lt;= (select max(a.id) from ag_acl_practitioner_hiring_approve_records a where a.hiring_basic_info_id = t.hiring_basic_info_id and a.approving_status=0)
<!-- and (t.approving_status = 0 or b.approve_status < t.approve_step_id or b.approve_status is null) -->
</when>
</choose>
</if>
......@@ -253,7 +255,7 @@
</foreach>
</if>
<if test="name != null">
and b.name = #{name}
and b.name like #{name}
</if>
</select>
......@@ -300,7 +302,7 @@
</foreach>
</if>
<if test="name != null">
and b.name = #{name}
and b.name like #{name}
</if>
</select>
......@@ -324,6 +326,9 @@
<if test="approveStatus != null">
and b.approve_status = #{approveStatus}
</if>
<if test="name != null">
and b.name like #{name}
</if>
and m.md_drop_option_id
in (select md.id
from ag_md_drop_options md
......@@ -334,4 +339,78 @@
)
</select>
<select id="practitionerApplyList" resultMap="practitionerHiringListInfo">
select b.id hiringBasicInfoId,
b.name name,
b.mobile_no mobileNo,
m.md_drop_option_name practitionerLevel,
m.mentor mentor,
m.introducer introducer,
m.subsystem subsystem,
m.branch branch,
date_format(b.created_at, '%Y-%m-%d %H:%i:%s') applicationTime,
<if test="approveStatus != null">
<choose>
<when test='approveStatus == "1" '>
#{approveStatus} as status,
(select max(r.created_at) from ag_acl_practitioner_hiring_approve_records r where r.hiring_basic_info_id = b.id ) as approvingTime
</when>
<when test='approveStatus == "0" '>
null as status,
null as approvingTime
</when>
<when test='approveStatus == "2" '>
'0' as status,
null as approvingTime
</when>
</choose>
</if>
from ag_acl_practitioner_hiring_basic_info b
left join ag_acl_practitioner_hiring_membership m on b.id = m.hiring_basic_info_id
left join ag_acl_practitioner_subordinate_system sys on sys.id = m.subsystem_id
where 1 = 1
<if test="approveStatus != null">
<choose>
<when test='approveStatus == "0" '>
and (b.approve_status not in ('0' , '-1') or b.approve_status is null)
</when>
<when test='approveStatus == "1" '>
and b.approve_status = '0'
</when>
<when test='approveStatus == "2" '>
and b.approve_status = '-1'
</when>
</choose>
</if>
<if test="startDate != null ">
and b.created_at &gt;= #{startDate}
</if>
<if test="endDate != null ">
and b.created_at &lt;= #{endDate}
</if>
<if test="list != null and list.size() > 0">
and m.md_drop_option_id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="branchId != null">
and m.branch_id = #{branchId}
</if>
<if test="deptId != null">
and sys.dept_id = #{deptId}
</if>
<if test="subsystemIdList != null and subsystemIdList.size() > 0">
and m.subsystem_id in
<foreach collection="subsystemIdList" index="index" item="subsystemId" open="(" separator="," close=")">
#{subsystemId}
</foreach>
</if>
<if test="name != null">
and b.name like #{name}
</if>
order by b.id desc
</select>
</mapper>
......@@ -80,4 +80,197 @@
LEFT JOIN ag_acl_file_upload uw ON uw.target_type = 1 AND uw.target_id = p.id AND uw.is_active = 1 AND uw.target_use_for = 9
WHERE os.share_code = #{shareCode,jdbcType=VARCHAR}
</select>
<select id="practitionerSchedule" resultType="com.yd.api.agms.vo.practitioner.PractitionerScheduleInfo">
SELECT
p.name practitionerName,
(CASE (t.task_type) WHEN 1 THEN '商机' WHEN 2 THEN '增员' ELSE '其他' END) taskType,
op.drop_option_name dropOptionName,
t.track_time trackTime,
t.task_time_from taskTimeFrom,
task_time_end taskTimeEnd,
t.notice ,
t.created_at createdAt
FROM ag_mkt_schedule_task_tracking t, ag_acl_practitioner p, ag_md_drop_options op
WHERE t.practitioner_id = p.id AND op.id = t.md_drop_option_id
<if test="trackTime != null">
AND date_format(t.track_time, '%Y-%m-%d') &gt;= #{trackTime,jdbcType=VARCHAR} AND date_format(t.track_time, '%Y-%m-%d') &lt;= #{trackTime,jdbcType=VARCHAR}
</if>
<if test="practitionerId != null">
AND t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
</if>
<if test="taskType != null">
AND t.task_type = #{taskType,jdbcType=BIGINT}
</if>
<if test="dropOptionName != null">
AND op.drop_option_name like concat(concat('%',#{dropOptionName,jdbcType=VARCHAR}),'%')
</if>
AND t.is_active = 1
</select>
<select id="practitionerScheduleExport" resultType="map">
SELECT
p.name '1',
date_format(t.track_time, '%Y-%m-%d') '2',
(CASE (t.task_type) WHEN 1 THEN '商机' WHEN 2 THEN '增员' ELSE '其他' END) '3',
op.drop_option_name '4',
t.task_time_from '5',
task_time_end '6',
REPLACE(t.notice,',',';') '7',
date_format(t.created_at, '%Y-%m-%d %H:%i:%s') '8'
FROM ag_mkt_schedule_task_tracking t, ag_acl_practitioner p, ag_md_drop_options op
WHERE t.practitioner_id = p.id AND op.id = t.md_drop_option_id
<if test="trackTime != null">
AND date_format(t.track_time, '%Y-%m-%d') &gt;= #{trackTime,jdbcType=VARCHAR} AND date_format(t.track_time, '%Y-%m-%d') &lt;= #{trackTime,jdbcType=VARCHAR}
</if>
<if test="practitionerId != null">
AND t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
</if>
<if test="taskType != null">
AND t.task_type = #{taskType,jdbcType=BIGINT}
</if>
<if test="dropOptionName != null">
AND op.drop_option_name like concat(concat('%',#{dropOptionName,jdbcType=VARCHAR}),'%')
</if>
AND t.is_active = 1
</select>
<select id="practitionerLeadsGoals" resultType="com.yd.api.agms.vo.practitioner.PractitionerLeadsGoalsInfo">
SELECT
p.name practitionerName,
(CASE (t.statistic_time_unit) WHEN 1 THEN '年度目标' WHEN 3 THEN '月度目标' ELSE '其他' END) type,
if(t.statistic_time_unit = 3, concat(year(t.created_at),'-',t.seq_time), t.seq_time) seqTime,
t.premium ,
t.commission ,
t.pieces ,
t.piece_average_premium pieceAveragePremium,
t.created_at createdAt
FROM ag_mkt_leads_goals t,ag_acl_practitioner p
WHERE t.practitioner_id = p.id
<choose>
<when test="type != null and date != null">
AND t.statistic_time_unit = #{type,jdbcType=BIGINT}
<if test="type == 1">
AND year(t.created_at) = year(str_to_date(#{date,jdbcType=VARCHAR}, '%Y-%m'))
</if>
<if test="type == 3">
AND year(t.created_at) = left(#{date,jdbcType=VARCHAR}, 4)+0
AND t.seq_time = right(#{date,jdbcType=VARCHAR}, 2)+0
</if>
</when>
<when test="type != null and date == null">
AND t.statistic_time_unit = #{type,jdbcType=BIGINT}
</when>
<otherwise>
<if test="date != null">
AND t.statistic_time_unit = 3
AND year(t.created_at) = left(#{date,jdbcType=VARCHAR}, 4)+0
AND t.seq_time = right(#{date,jdbcType=VARCHAR}, 2)+0
</if>
</otherwise>
</choose>
<if test="practitionerId != null">
AND t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
</if>
AND t.is_active = 1
</select>
<select id="practitionerLeadsGoalsExport" resultType="map">
SELECT
p.name '1',
(CASE (t.statistic_time_unit) WHEN 1 THEN '年度目标' WHEN 3 THEN '月度目标' ELSE '其他' END) '2',
if(t.statistic_time_unit = 3, concat(year(t.created_at),'-',t.seq_time), t.seq_time) '3',
t.premium '4',
t.commission '5',
t.pieces '6',
t.piece_average_premium '7',
date_format(t.created_at, '%Y-%m-%d %H:%i:%s') '8'
FROM ag_mkt_leads_goals t,ag_acl_practitioner p
WHERE t.practitioner_id = p.id
<choose>
<when test="type != null and date != null">
AND t.statistic_time_unit = #{type,jdbcType=BIGINT}
<if test="type == 1">
AND year(t.created_at) = year(str_to_date(#{date,jdbcType=VARCHAR}, '%Y-%m'))
</if>
<if test="type == 3">
AND year(t.created_at) = left(#{date,jdbcType=VARCHAR}, 4)+0
AND t.seq_time = right(#{date,jdbcType=VARCHAR}, 2)+0
</if>
</when>
<when test="type != null and date == null">
AND t.statistic_time_unit = #{type,jdbcType=BIGINT}
</when>
<otherwise>
<if test="date != null">
AND t.statistic_time_unit = 3
AND year(t.created_at) = left(#{date,jdbcType=VARCHAR}, 4)+0
AND t.seq_time = right(#{date,jdbcType=VARCHAR}, 2)+0
</if>
</otherwise>
</choose>
<if test="practitionerId != null">
AND t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
</if>
AND t.is_active = 1
</select>
<select id="practitionerActivity" resultType="com.yd.api.agms.vo.practitioner.PractitionerActivityInfo">
SELECT
p.name practitionerName,
(CASE
WHEN (o.drop_master_id = 14) THEN '增员'
WHEN (o.drop_master_id = 16) THEN '销售'
WHEN (o.id = 226) THEN '辅导'
WHEN (o.id = 227) THEN '培训'
WHEN (o.id = 229) THEN '会议'
ELSE '其他'
END) type,
SUM(track_score) score,
YEARWEEK(DATE_FORMAT(t.track_time, '%Y-%m-%d')) timePeriod
FROM ag_mkt_schedule_task_tracking t, ag_acl_practitioner p, ag_md_drop_options o
WHERE t.practitioner_id = p.id AND o.id = t.md_drop_option_id
AND (o.drop_master_id IN(14,16) OR o.id IN(226,227,229))
<if test="startDate != null">
AND date_format(t.track_time, '%Y-%m-%d') &gt;= #{startDate,jdbcType=VARCHAR}
</if>
<if test="endDate != null">
AND date_format(t.track_time, '%Y-%m-%d') &lt;= #{endDate,jdbcType=VARCHAR}
</if>
<if test="practitionerId != null">
AND t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
</if>
AND t.is_active = 1
GROUP BY p.name, o.drop_master_id, YEARWEEK(DATE_FORMAT(t.track_time, '%Y-%m-%d'))
</select>
<select id="practitionerActivityExport" resultType="map">
SELECT
p.name '1',
(CASE
WHEN (o.drop_master_id = 14) THEN '增员'
WHEN (o.drop_master_id = 16) THEN '销售'
WHEN (o.id = 226) THEN '辅导'
WHEN (o.id = 227) THEN '培训'
WHEN (o.id = 229) THEN '会议'
ELSE '其他'
END) '2',
SUM(track_score) '3',
YEARWEEK(DATE_FORMAT(t.track_time, '%Y-%m-%d')) '4'
FROM ag_mkt_schedule_task_tracking t, ag_acl_practitioner p, ag_md_drop_options o
WHERE t.practitioner_id = p.id AND o.id = t.md_drop_option_id
AND (o.drop_master_id IN(14,16) OR o.id IN(226,227,229))
<if test="startDate != null">
AND t.track_time &gt;= DATE #{startDate,jdbcType=VARCHAR}
</if>
<if test="endDate != null">
AND t.track_time &lt;= DATE #{endDate,jdbcType=VARCHAR}
</if>
<if test="practitionerId != null">
AND t.practitioner_id = #{practitionerId,jdbcType=BIGINT}
</if>
AND t.is_active = 1
GROUP BY p.name, o.drop_master_id, YEARWEEK(DATE_FORMAT(t.track_time, '%Y-%m-%d'))
</select>
</mapper>
\ No newline at end of file
......@@ -17,12 +17,13 @@
<result column="created_by" jdbcType="BIGINT" property="createdBy" />
<result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt" />
<result column="updated_by" jdbcType="BIGINT" property="updatedBy" />
<result column="is_back" jdbcType="INTEGER" property="isBack" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, hiring_basic_info_id, approve_step_id, approve_step_name, approving_practitioner_id,
approving_status, reject_note, is_active, created_at, created_by, updated_at, updated_by,
interview_assessment
interview_assessment, is_back
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
<!--@mbg.generated-->
......@@ -233,6 +234,11 @@
when id = #{item.id,jdbcType=BIGINT} then #{item.updatedAt,jdbcType=TIMESTAMP}
</foreach>
</trim>
<trim prefix="is_back = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id,jdbcType=BIGINT} then #{item.isBack,jdbcType=INTEGER}
</foreach>
</trim>
<trim prefix="updated_by = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id,jdbcType=BIGINT} then #{item.updatedBy,jdbcType=BIGINT}
......
......@@ -44,6 +44,7 @@
<result column="education_level" jdbcType="VARCHAR" property="educationLevel" />
<result column="graduated_university" jdbcType="VARCHAR" property="graduatedUniversity" />
<result column="mentor_id" jdbcType="BIGINT" property="mentorId" />
<result column="in_mentor_id" jdbcType="BIGINT" property="inMentorId" />
<result column="introducer_id" jdbcType="BIGINT" property="introducerId" />
<result column="gender" jdbcType="INTEGER" property="gender" />
<result column="contract_oss_path" jdbcType="VARCHAR" property="contractOssPath" />
......@@ -66,7 +67,7 @@
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, bio_intro_two, 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,
mentor_id,in_mentor_id, introducer_id, gender, contract_oss_path, hiring_basic_info_id, can_login_dyd,
can_see_salary_list,raise_id,s1_id,s2_id,s3_id,email,email_is_active
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
......@@ -95,7 +96,7 @@
city_id, city_name, cert_list,
bio_intro,bio_intro_two, wechat_id, qq_id,
is_profile_show, is_name_show, is_mobile_show,
education_level, graduated_university, mentor_id,
education_level, graduated_university, mentor_id, in_mentor_id,
introducer_id, gender, contract_oss_path,
hiring_basic_info_id, can_login_dyd, can_see_salary_list,
detail_address,account_bank,bank_card_no,email,s1_id,s2_id,s3_id
......@@ -112,7 +113,7 @@
#{cityId,jdbcType=BIGINT}, #{cityName,jdbcType=VARCHAR}, #{certList,jdbcType=VARCHAR},
#{bioIntro,jdbcType=LONGVARCHAR},#{bioIntroTwo,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},
#{educationLevel,jdbcType=VARCHAR}, #{graduatedUniversity,jdbcType=VARCHAR}, #{mentorId,jdbcType=BIGINT}, #{inMentorId,jdbcType=BIGINT},
#{introducerId,jdbcType=BIGINT}, #{gender,jdbcType=INTEGER}, #{contractOssPath,jdbcType=VARCHAR},
#{hiringBasicInfoId,jdbcType=BIGINT}, #{canLoginDyd,jdbcType=BIGINT}, #{canSeeSalaryList,jdbcType=BIGINT},
#{detailAddress},#{accountBank,jdbcType=VARCHAR}, #{bankCardNo,jdbcType=VARCHAR}, #{email,jdbcType=VARCHAR},
......@@ -240,6 +241,9 @@
<if test="mentorId != null">
mentor_id,
</if>
<if test="inMentorId != null">
in_mentor_id,
</if>
<if test="introducerId != null">
introducer_id,
</if>
......@@ -380,6 +384,9 @@
<if test="mentorId != null">
#{mentorId,jdbcType=BIGINT},
</if>
<if test="inMentorId != null">
#{inMentorId,jdbcType=BIGINT},
</if>
<if test="introducerId != null">
#{introducerId,jdbcType=BIGINT},
</if>
......@@ -524,6 +531,9 @@
<if test="mentorId != null">
mentor_id = #{mentorId,jdbcType=BIGINT},
</if>
<if test="inMentorId != null">
in_mentor_id = #{inMentorId,jdbcType=BIGINT},
</if>
<if test="introducerId != null">
introducer_id = #{introducerId,jdbcType=BIGINT},
</if>
......@@ -587,6 +597,7 @@
education_level = #{educationLevel,jdbcType=VARCHAR},
graduated_university = #{graduatedUniversity,jdbcType=VARCHAR},
mentor_id = #{mentorId,jdbcType=BIGINT},
in_mentor_id = #{inMentorId,jdbcType=BIGINT},
introducer_id = #{introducerId,jdbcType=BIGINT},
gender = #{gender,jdbcType=INTEGER},
contract_oss_path = #{contractOssPath,jdbcType=VARCHAR},
......@@ -1152,7 +1163,7 @@
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,bio_intro_two, 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,
mentor_id,in_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=",">
......@@ -1169,7 +1180,7 @@
#{item.cityName,jdbcType=VARCHAR}, #{item.certList,jdbcType=VARCHAR}, #{item.bioIntro,jdbcType=LONGVARCHAR},#{item.bioIntroTwo,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.graduatedUniversity,jdbcType=VARCHAR}, #{item.mentorId,jdbcType=BIGINT},#{item.inMentorId,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})
......@@ -1957,6 +1968,37 @@
and p.is_active = 1
</select>
<select id="findPractitionerInfoByIdList" resultMap="practitioner_info_map">
select
p.customer_id as customerId,
p.id as practitionerId,
p.name as name,
p.gender as gender,
s.practitioner_type_id as practitionerType,
sys.name as subsystem,
o.drop_option_code as levelCode,
o.drop_option_name as levelName,
b.branch_name as insurerBranchName,
p.subordinate_system_id as subordinateId,
p.wechat_id as weChatId,
p.qq_id as qqId,
p.practitioner_reg_no as practitionerRegNo,
p.mobile_no,
p.mentor_id mentorId,
c.yd_wechat_openid,
p.can_see_salary_list as canSeeSalaryList
from ag_acl_practitioner p
left join ag_acl_customer c on c.id = p.customer_id
left join ag_acl_insurer_branch b on p.insurer_branch_id = b.id
left join ag_acl_practitioner_subordinate_system sys on p.subordinate_system_id = sys.id
left join ag_acl_practitioner_setting s on p.id = s.practitioner_id
left join ag_md_drop_options o on s.practitioner_level = o.id
where p.id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
and p.is_active = 1
</select>
<select id="queryEGHistorySalaryPDFByPractitionerId" resultType="com.yd.api.practitioner.vo.payscale.PayScaleInfo">
select p.id,
......
......@@ -216,7 +216,18 @@
from
ag_acl_practitioner_hiring_approve_records t
where t.approving_practitioner_id = #{practitionerId,jdbcType=BIGINT}
and t.approving_status = #{approvingStatus,jdbcType=BIGINT}
<if test="approvingStatus != null">
<choose>
<when test='approvingStatus == "1" '>
and (b.approve_status >= t.approve_step_id OR b.approve_status = 0)
</when>
<when test='approvingStatus == "2" '>
and ((b.approve_status != 0 and b.approve_status &lt; t.approve_step_id-1) or b.approve_status is null)
and t.id &lt;= (select max(a.id) from ag_acl_practitioner_hiring_approve_records a where a.hiring_basic_info_id = t.hiring_basic_info_id and a.approving_status=0)
<!-- and (t.approving_status = 0 or b.approve_status < t.approve_step_id or b.approve_status is null) -->
</when>
</choose>
</if>
)
</select>
......
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