Commit 7232a1e5 by zhangxingmin

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

# Conflicts:
#	yd-api/src/main/java/com/yd/api/practitioner/service/impl/PractitionerServiceImpl.java
parents a8b60061 4b7e7bb2
......@@ -63,7 +63,7 @@
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.42</version>
<version>1.2.83</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
......
......@@ -13,9 +13,11 @@ import com.yd.dal.entity.customer.*;
import com.yd.dal.entity.customer.practitioner.PractitionerSubordinateInfo;
import com.yd.dal.entity.meta.MdIncometaxRate;
import com.yd.dal.entity.order.PoOrder;
import com.yd.dal.entity.practitioner.payscale.AgAclLifePractitionerSalary;
import com.yd.dal.entity.product.Product;
import com.yd.dal.entity.product.ProductPlan;
import com.yd.dal.entity.user.AclUser;
import com.yd.dal.mapper.practitioner.AgAclLifePractitionerSalaryMapper;
import com.yd.dal.service.agms.AgmsFortuneDALService;
import com.yd.dal.service.customer.*;
import com.yd.dal.service.order.PoOrderDALService;
......@@ -61,6 +63,8 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
private AclUserDALService userDalService;
@Autowired
private AclPractitionerSubordinateSystemDALService aclPractitionerSubordinateSystemDalService;
@Autowired
private AgAclLifePractitionerSalaryMapper practitionerSalaryMapper;
@Autowired
public void setAclCustomerFortuneDalService(AclCustomerFortuneDALService customerFortuneDalService) {
......@@ -144,7 +148,28 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
//通过payoutBatch查询此批次是否再库中,在库中直接获取id,不在进行保存,获取id
Long payoutBatchId = findPayoutBatchIdByPayoutBatch(payoutBatch, loginId);
if (("2").equals(paymentStatus)) {
AclCustomerFortunePayoutBatch aclCustomerFortunePayoutBatch;
AgAclLifePractitionerSalary aclLifePractitionerSalary;
Set<AgAclLifePractitionerSalary> salarySet = new HashSet<>();
for (AclCustomerFortune fortune : customerFortunes) {
if("2".equals(fortune.getCommissionPayoutStatus()) && fortune.getPractitionerId() != null && fortune.getPayoutBatchId() != null){
aclCustomerFortunePayoutBatch = customerFortunePayoutBatchDalService.selectByPrimaryKey(fortune.getPayoutBatchId());
if(aclCustomerFortunePayoutBatch != null){
aclLifePractitionerSalary = new AgAclLifePractitionerSalary();
aclLifePractitionerSalary.setYearMonth(aclCustomerFortunePayoutBatch.getPayoutYearmonth());
aclLifePractitionerSalary.setPayoutBatchId(fortune.getPayoutBatchId());
AclPractitioner aclPractitioner = aclPractitionerDALService.findByCustomerIdIsActive(fortune.getCustomerId(), 1);
if(aclPractitioner != null){
aclLifePractitionerSalary.setPractitionerId(aclPractitioner.getId());
}else{
aclLifePractitionerSalary.setPractitionerId(fortune.getPractitionerId());
}
salarySet.add(aclLifePractitionerSalary);
}
}
}
if ("2".equals(paymentStatus)) {
//如paymentStatus = 2(可发放),只需统计Fortune对应Customer最后一笔未支付的Withdraw,重新计算,如没有Withdraw生成一条新的Withdraw记录
canPaymentUpDate(paymentStatus, payoutBatchId, loginId, customerFortunes);
} else {
......@@ -152,6 +177,23 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
noPaymentUpDate(paymentStatus, payoutBatchId, loginId, customerFortunes);
}
//当月经纪人由有【可发放】的发佣数据, 变更为没有【可发放】 的发佣数据状态时,如果已经计算过薪资,需要把薪资与税务信息删除
AclCustomerFortune aclCustomerFortune;
List<AclCustomerFortune> aclCustomerFortuneList;
for (AgAclLifePractitionerSalary salary : salarySet) {
aclCustomerFortune = new AclCustomerFortune();
aclCustomerFortune.setPractitionerId(salary.getPractitionerId());
aclCustomerFortune.setPayoutBatchId(salary.getPayoutBatchId());
aclCustomerFortuneList = customerFortuneDalService.queryByPractitionerIdAndPayoutBatchId(aclCustomerFortune);
if(aclCustomerFortuneList == null || aclCustomerFortuneList.size() <= 0){
//1、删除薪资税务信息ag_acl_life_practitioner_salary_tax表
practitionerSalaryMapper.deleteSalaryTaxByPractitionerIdAndYearMonth(salary);
//2、删除总薪资信息ag_acl_life_practitioner_salary表
salary.setYearMonth(salary.getYearMonth().replace("-", ""));
practitionerSalaryMapper.deleteByPractitionerIdAndYearMonth(salary);
}
}
responseVO.setCommonResult(commonResult);
return responseVO;
}
......@@ -203,8 +245,6 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
@Override
public void canPaymentUpDate(String paymentStatus, Long payoutBatchId, Long loginId, List<AclCustomerFortune> customerFortunes) {
System.out.println("canPaymentUpDate");
//将查询出来的财富列表根据customerId经行分类
Map<Long, List<AclCustomerFortune>> customerFortuneMap = changeCustomerFortunesByFieldName(customerFortunes, "customerId");
//获得所有需要修改佣金发放状的customerIds
......@@ -314,7 +354,6 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
}
private void noPaymentUpDate(String paymentStatus, Long payoutBatchId, Long loginId, List<AclCustomerFortune> customerFortunes) {
System.out.println("noPaymentUpDate");
//需要修改的fortune记录(需修改佣金发放状态)
List<AclCustomerFortune> fortuneUpdates = new ArrayList<>();
//需要重新计算的withdraw.id
......@@ -1019,7 +1058,6 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
Long fortuneId = requestVO.getFortuneId();
String remark = requestVO.getRemark();
Long loginId = requestVO.getLoginId();
if (fortuneId == null) {
responseVO.setCommonResult(new CommonResult(false, "fortuneId不能为空"));
return responseVO;
......@@ -1040,19 +1078,31 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
String[] columnName = new String[]{"序号", "对账月", "投保人", "保单号", "保司", "保费", "产品", "承保时间", "年期",
"FYC%", "业绩折标率%", "分佣%", "业绩%", "RYC%", "保单FYC", "佣金FYC", "业绩FYC", "保单RYC", "佣金RYC", "渠道",
"FYC体系", "销售经纪人", "销售经纪人职级", "职级率",
"首年销售佣金", "续年销售佣金", "续期辅导人", "续期辅导奖金率", "续期辅导奖", "经纪人月销售加码奖金%", "经纪人月销售加码奖金",
"推荐人", "个人推荐率", "个人推荐奖¥", "S1体系推荐率", "S1体系推荐奖金¥",
"一代辅导人", "一代辅导人职级", "一代辅导人职级岗位津贴%", "一代辅导人岗位津贴",
"二代辅导人", "二代辅导人职级", "二代辅导人职级岗位津贴%", "二代辅导人岗位津贴",
"所属 S1分部", "S1团队达标奖金率", "S1团队达标奖金¥(季度)", "S1团队长辅导津贴比率", "S1团队长辅导津贴", "S1续期绩效奖金",
"所属 S2体系", "S2团队达标奖金率", "S2团队达标奖金¥(季度)", "S2团队长辅导津贴比率", "S2团队长辅导津贴", "S2续期绩效奖金",
"所属 S3纵队", "S3团队达标奖金率", "S3团队达标奖金¥(季度)", "S3团队长辅导津贴比率", "S3团队长辅导津贴",
"首年销售佣金",
"经纪人月销售加码奖金%", "经纪人月销售加码奖金",
"续年销售佣金",
"推荐人","推荐人出勤率","个人推荐率", "个人推荐奖¥",
"S1分部推荐人","S1分部推荐人出勤率","S1分部推荐率","S1分部推荐奖金¥",
"S2体系推荐人","S2体系推荐人出勤率","S2体系推荐率","S2体系推荐奖金¥",
"S3纵队推荐人","S3纵队推荐人出勤率","S3纵队推荐率","S3纵队推荐奖金¥",
"原辅导人 ","原辅导人体系推荐奖金率","原辅导人体系推荐奖金",
"一代辅导人 ","一代辅导人月度实动FYC","一代辅导人出勤率","一代辅导人职级","一代辅导人职级岗位津贴%","一代辅导人岗位津贴",
"二代辅导人 ","二代辅导人月度实动FYC","二代辅导人出勤率","二代辅导人职级","二代辅导人职级岗位津贴%","二代辅导人岗位津贴",
"所属 S1分部", "所属 S1分部团队长","S1直营团队月度实动率","S1团队长辅导津贴比率", "S1团队长辅导津贴","S1直营团队季度实动率","S1直营团队年度实动率","S1团队绩效奖金率", "S1团队绩效奖金¥(季度)",
"所属 S2体系", "所属 S2体系团队长","S2直营团队月度实动率","S2团队长辅导津贴比率", "S2团队长辅导津贴","S2直营团队季度实动率","S2直营团队年度实动率","S2团队绩效奖金率", "S2团队绩效奖金¥(季度)",
"所属 S3纵队", "所属 S3纵队团队长","S3直营团队月度实动率","S3团队长辅导津贴比率", "S3团队长辅导津贴","S3直营团队季度实动率","S3直营团队年度实动率","S3团队绩效奖金率", "S3团队绩效奖金¥(季度)",
"所属M1", "所属M1组长","M1团队绩效奖金率","M1团队绩效奖金",
"所属M2", "所属M2组长","M2团队绩效奖金率","M2团队绩效奖金",
"所属M3", "所属M3组长","M3团队绩效奖金率","M3团队绩效奖金",
"S1育成人", "S1育成人职级", "S1育成奖金率", "S1育成金额",
"S2育成人", "S2育成人职级", "S2育成奖金率", "S2育成金额",
"S3育成人", "S3育成人职级", "S3育成奖金率", "S3育成金额",
"C14直接销售加码佣金率", "C14直接销售加码佣金",
"基本法属性", "S01-首年度销售佣金", "S03-首年度辅导奖金",
"R01-首年度直接销售佣金(旧)", "R02-续年度直接销售拥金(旧)", "R03-续年度辅导佣金(旧)", "R04-续年度绩效奖金(旧)",
"S1推荐人", "S2推荐人", "S2体系推荐率", "S2体系推荐奖金¥", "S3推荐人", "S3体系推荐率", "S3体系推荐奖金¥",
"S2育成人", "S2育成人职级", "S2育成奖金率", "S2育成金额", "S3育成人", "S3育成人职级", "S3育成奖金率", "S3育成金额",
"基本法属性",
"R02-续年度直接销售拥金(旧)","续期辅导人", "续期辅导奖金率",
"R03-续期辅导奖",
"R04-S1续期绩效奖金 (2021.06.30以前)","R04-S2续期绩效奖金 (2021.06.30以前)",
"S01-首年度销售佣金", "S03-首年度辅导奖金",
"其它税前加扣款1", "其它税前加扣款2", "其它税前加扣款3", "其它税前加扣款4", "其它", "C11-独立经纪人展业津贴",
"D01-首年渠道服务费", "D02-续年渠道服务费", "D91-渠道加扣款1", "D92-渠道加扣款2"};
// 2.1 查询Sheet2数据
......@@ -1085,9 +1135,7 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
}
}
private void exportSalaryDetailsSheet2queryOrganization(List<Map<String, Object>> list) {
List<AclPractitioner> aclPractitionerList = aclPractitionerDALService.findAll();
Map<Long, AclPractitioner> aclPractitionerMap = new HashMap<>();
if (aclPractitionerList != null && aclPractitionerList.size() > 0) {
......@@ -1117,51 +1165,80 @@ public class AgmsFortuneServiceImpl implements AgmsFortuneService {
item.put("19", subordinateSystem != null ? subordinateSystem.getName() : null);
}
//续期辅导人 [25]
if (null != item.get("25") && StringUtils.isNotBlank(item.get("25").toString())) {
String[] ids = item.get("25").toString().split(",");
//续期辅导人 [113]
if (null != item.get("113") && StringUtils.isNotBlank(item.get("113").toString())) {
String[] ids = item.get("113").toString().split(",");
for (int j = 0; j < ids.length; j++) {
practitioner = aclPractitionerMap.get(Long.valueOf(ids[j]));
if (practitioner != null) {
ids[j] = practitioner.getName();
}
}
item.put("25", Joiner.on(",").join(Arrays.asList(ids)));
item.put("113", Joiner.on(",").join(Arrays.asList(ids)));
}
//所属S1分部 [58]
if (null != item.get("58") && StringUtils.isNotBlank(item.get("58").toString())) {
subordinateSystem = subordinateSystemMap.get(Long.valueOf(item.get("58").toString()));
item.put("58", subordinateSystem != null ? subordinateSystem.getName() : null);
}
//所属S1分部团队长 [59]
if (null != item.get("59") && StringUtils.isNotBlank(item.get("59").toString())) {
practitioner = aclPractitionerMap.get(Long.valueOf(item.get("59").toString()));
item.put("59", practitioner != null ? practitioner.getName() : null);
}
//所属S2体系 [67]
if (null != item.get("67") && StringUtils.isNotBlank(item.get("67").toString())) {
subordinateSystem = subordinateSystemMap.get(Long.valueOf(item.get("67").toString()));
item.put("67", subordinateSystem != null ? subordinateSystem.getName() : null);
}
//所属S2体系团队长 [68]
if (null != item.get("68") && StringUtils.isNotBlank(item.get("68").toString())) {
practitioner = aclPractitionerMap.get(Long.valueOf(item.get("68").toString()));
item.put("68", practitioner != null ? practitioner.getName() : null);
}
//所属S3纵队 [76]
if (null != item.get("76") && StringUtils.isNotBlank(item.get("76").toString())) {
subordinateSystem = subordinateSystemMap.get(Long.valueOf(item.get("76").toString()));
item.put("76", subordinateSystem != null ? subordinateSystem.getName() : null);
}
//所属S3纵队团队长 [77]
if (null != item.get("77") && StringUtils.isNotBlank(item.get("77").toString())) {
practitioner = aclPractitionerMap.get(Long.valueOf(item.get("77").toString()));
item.put("77", practitioner != null ? practitioner.getName() : null);
}
//所属M1 [85]
if (null != item.get("85") && StringUtils.isNotBlank(item.get("85").toString())) {
subordinateSystem = subordinateSystemMap.get(Long.valueOf(item.get("85").toString()));
item.put("85", subordinateSystem != null ? subordinateSystem.getName() : null);
}
//所属M1团队长 [86]
if (null != item.get("86") && StringUtils.isNotBlank(item.get("86").toString())) {
practitioner = aclPractitionerMap.get(Long.valueOf(item.get("86").toString()));
item.put("86", practitioner != null ? practitioner.getName() : null);
}
//所属M2 [89]
if (null != item.get("89") && StringUtils.isNotBlank(item.get("89").toString())) {
subordinateSystem = subordinateSystemMap.get(Long.valueOf(item.get("89").toString()));
item.put("89", subordinateSystem != null ? subordinateSystem.getName() : null);
}
//所属S1分部 [43]
if (null != item.get("43") && StringUtils.isNotBlank(item.get("43").toString())) {
subordinateSystem = subordinateSystemMap.get(Long.valueOf(item.get("43").toString()));
item.put("43", subordinateSystem != null ? subordinateSystem.getName() : null);
//所属M2团队长 [90]
if (null != item.get("90") && StringUtils.isNotBlank(item.get("90").toString())) {
practitioner = aclPractitionerMap.get(Long.valueOf(item.get("90").toString()));
item.put("90", practitioner != null ? practitioner.getName() : null);
}
//所属S2体系 [49]
if (null != item.get("49") && StringUtils.isNotBlank(item.get("49").toString())) {
subordinateSystem = subordinateSystemMap.get(Long.valueOf(item.get("49").toString()));
item.put("49", subordinateSystem != null ? subordinateSystem.getName() : null);
//所属M3 [93]
if (null != item.get("93") && StringUtils.isNotBlank(item.get("93").toString())) {
subordinateSystem = subordinateSystemMap.get(Long.valueOf(item.get("93").toString()));
item.put("93", subordinateSystem != null ? subordinateSystem.getName() : null);
}
//所属S3纵队 [55]
if (null != item.get("55") && StringUtils.isNotBlank(item.get("55").toString())) {
subordinateSystem = subordinateSystemMap.get(Long.valueOf(item.get("55").toString()));
item.put("55", subordinateSystem != null ? subordinateSystem.getName() : null);
//所属M3团队长 [94]
if (null != item.get("94") && StringUtils.isNotBlank(item.get("94").toString())) {
practitioner = aclPractitionerMap.get(Long.valueOf(item.get("94").toString()));
item.put("94", practitioner != null ? practitioner.getName() : null);
}
//44-47
item.put("44", this.processMerge(item.get("44"), aclPractitionerMap));
item.put("45", this.processMerge(item.get("45"), aclPractitionerMap));
item.put("46", this.processMerge(item.get("46"), aclPractitionerMap));
item.put("47", this.processMerge(item.get("47"), aclPractitionerMap));
//50-53
item.put("50", this.processMerge(item.get("50"), aclPractitionerMap));
item.put("51", this.processMerge(item.get("51"), aclPractitionerMap));
item.put("52", this.processMerge(item.get("52"), aclPractitionerMap));
item.put("53", this.processMerge(item.get("53"), aclPractitionerMap));
//56-59
item.put("56", this.processMerge(item.get("56"), aclPractitionerMap));
item.put("57", this.processMerge(item.get("57"), aclPractitionerMap));
item.put("58", this.processMerge(item.get("58"), aclPractitionerMap));
item.put("59", this.processMerge(item.get("59"), aclPractitionerMap));
//71-72
item.put("71", this.processMerge(item.get("71"), aclPractitionerMap));
item.put("72", this.processMerge(item.get("72"), aclPractitionerMap));
}
}
......
......@@ -803,6 +803,14 @@ public class AgmsHiringServiceImpl implements AgmsHiringService {
setting.setPractitionerId(practitioner.getId());
setting.setPractitionerTypeId(28L);
setting.setPractitionerLevel(membership.getMdDropOptionId());
try {
MdDropOptions levelInfo = mdDropOptionsDALService.findById(membership.getMdDropOptionId());
MdDropOptions dropOptions = mdDropOptionsDALService.selectByMasterCodeAndOptionsCode("practitioner_level", levelInfo.getDropOptionCode());
if (dropOptions != null) {
setting.setPractitionerLevel(dropOptions.getId());
}
} catch (Exception e) {
}
setting.setIsActive(1);
setting.setCreatedAt(new Date());
setting.setCreatedBy(operater);
......
......@@ -257,6 +257,21 @@ public class PractitionerHiringController {
}
/**
* 手工生成报聘合同
*
* @param requestVO
* @return
*/
@RequestMapping("/handGeneratePDF")
public Object handGeneratePDF(@RequestBody GeneratePDFRequestVO requestVO){
JsonResult result = new JsonResult();
GeneratePDFResponseVO responseVO = practitionerHiringService.handGeneratePDF(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
/**
* 报聘成功后查看经纪人信息
* @param requestVO 请求数据
* @return 响应数据
......
......@@ -60,4 +60,6 @@ public interface PractitionerHiringService {
CommonResultResponseVO hiringSubmit(HiringBasicInfoIdRequestVO requestVO);
SaveWeChatQRcodeResponseVO saveWeChatQRcode(SaveWeChatQRcodeRequestVO requestVO);
GeneratePDFResponseVO handGeneratePDF(GeneratePDFRequestVO requestVO);
}
......@@ -1212,6 +1212,7 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
List<Commission> c04List = new ArrayList<>();
List<Commission> c05List = new ArrayList<>();
List<RecommendSystemCommission> c15List = new ArrayList<>();
List<RecommendSystemCommission> c16List = new ArrayList<>();
List<RenewalYearPerformanceCommission> c06List = new ArrayList<>();
List<RenewalYearPerformanceCommission> c07List = new ArrayList<>();
List<Commission> c08List = new ArrayList<>();
......@@ -1233,7 +1234,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,D01,D02,".indexOf(withdrawLabelInfo.getDropOptionCode()+",") != -1) {
if ("C01,C02,C03,C04,C05,C08,C11,R03,C14,C15,C16,R02,D01,D02,".indexOf(withdrawLabelInfo.getDropOptionCode()+",") != -1) {
Commission commission = new Commission();
commission.setCommission(withdrawLabelInfo.getReferralAmount().doubleValue());//佣金
commission.setCustomer(withdrawLabelInfo.getInsurerName());//保险公司
......@@ -1250,50 +1251,39 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
commission.setSalestaff(withdrawLabelInfo.getPractitionerName());//经纪人名称
commission.setSalaryCode(transformationType(withdrawLabelInfo.getDropOptionCode()));
commission.setCalculationAmount(withdrawLabelInfo.getCalculationAmount().doubleValue());
//C02:续年度直接销售佣金,新基本法;C03:续年度销售加码奖金;C04:月度销售加码奖金; 没有orderid,R02:续年度直接销售佣金(旧基本法
if ("C02".equals(withdrawLabelInfo.getDropOptionCode())) {
c02List.add(commission);
}
//R02:续年度直接销售佣金(旧基本法
if ("R02".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("R02".equals(withdrawLabelInfo.getDropOptionCode())) {
//R02:续年度直接销售佣金(旧基本法
c02List.add(commission);
}
if ("C03".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("C03".equals(withdrawLabelInfo.getDropOptionCode())) {
c03List.add(commission);
}
if ("C04".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("C04".equals(withdrawLabelInfo.getDropOptionCode())) {
c04List.add(commission);
}
//C01:直接销售拥金;
if ("C01".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("C01".equals(withdrawLabelInfo.getDropOptionCode())) {
//C01:直接销售拥金;
c01List.add(commission);
}
//C05:推荐奖金; 个人的有orderid 团体的无
if ("C05".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("C05".equals(withdrawLabelInfo.getDropOptionCode())) {
//C05:推荐奖金; 个人的有orderid 团体的无
c05List.add(commission);
}
//C08:团队管理绩效达标奖金; 当前经纪人体系的所有保单
if ("C08".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("C08".equals(withdrawLabelInfo.getDropOptionCode())) {
//C08:团队管理绩效达标奖金; 当前经纪人体系的所有保单
c08List.add(commission);
}
if ("C11".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("C11".equals(withdrawLabelInfo.getDropOptionCode())) {
c11List.add(commission);
}
//C13 改成 R03
if ("R03".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("R03".equals(withdrawLabelInfo.getDropOptionCode())) {
//C13 改成 R03
c13List.add(commission);
}
if ("C14".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("C14".equals(withdrawLabelInfo.getDropOptionCode())) {
c14List.add(commission);
}
if ("D01".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("D01".equals(withdrawLabelInfo.getDropOptionCode())) {
d01List.add(commission);
}
if ("D02".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("D02".equals(withdrawLabelInfo.getDropOptionCode())) {
d02List.add(commission);
}
//体系推荐奖
if ("C15".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("C15".equals(withdrawLabelInfo.getDropOptionCode()) || "C16".equals(withdrawLabelInfo.getDropOptionCode())) {
//体系推荐奖、原辅导人之体系推荐奖金
RecommendSystemCommission recommendSystemCommission = new RecommendSystemCommission();
recommendSystemCommission.setFYC_RYC(String.valueOf(withdrawLabelInfo.getFycAmount()));
recommendSystemCommission.setRate(String.valueOf(withdrawLabelInfo.getCalculationRate()));
......@@ -1311,12 +1301,14 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
recommendSystemCommission.setSalestaff(withdrawLabelInfo.getPractitionerName());//经纪人名称
recommendSystemCommission.setSalaryCode(transformationType(withdrawLabelInfo.getDropOptionCode()));
recommendSystemCommission.setCalculationAmount(withdrawLabelInfo.getCalculationAmount().doubleValue());
c15List.add(recommendSystemCommission);
if("C15".equals(withdrawLabelInfo.getDropOptionCode())){
c15List.add(recommendSystemCommission);
}else if("C16".equals(withdrawLabelInfo.getDropOptionCode())){
c16List.add(recommendSystemCommission);
}
}
}
//C07:间接辅导岗位津贴;C06:直接辅导岗位津贴;C09:育成奖金; 被育成体系的所有保单;C10:团队长辅导津贴 C12:续年度绩效奖金( C12改成R04)
if ("C06,C07,C09,C10,R04,".indexOf(withdrawLabelInfo.getDropOptionCode()+",") != -1) {
}else if ("C06,C07,C09,C10,R04,".indexOf(withdrawLabelInfo.getDropOptionCode()+",") != -1) {
//C07:间接辅导岗位津贴;C06:直接辅导岗位津贴;C09:育成奖金; 被育成体系的所有保单;C10:团队长辅导津贴 C12:续年度绩效奖金( C12改成R04)
RenewalYearPerformanceCommission renewalYearPerformanceCommission = new RenewalYearPerformanceCommission();
renewalYearPerformanceCommission.setComments(withdrawLabelInfo.getRemark());
renewalYearPerformanceCommission.setCommission(String.valueOf(withdrawLabelInfo.getReferralAmount()));
......@@ -1325,7 +1317,6 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
renewalYearPerformanceCommission.setSaleSystem(withdrawLabelInfo.getSubordinateSystemName());
renewalYearPerformanceCommission.setCalculationFormula(withdrawLabelInfo.getCalculationFormula());//佣金计算公式
renewalYearPerformanceCommission.setSalaryCode(transformationType(withdrawLabelInfo.getDropOptionCode()));
renewalYearPerformanceCommission.setCustomer(withdrawLabelInfo.getInsurerName());//保险公司
renewalYearPerformanceCommission.setEffectiveDate(withdrawLabelInfo.getEffectiveStartDate());//生效时间
renewalYearPerformanceCommission.setInsurance_Cust(withdrawLabelInfo.getInsuredName());//投保人
......@@ -1335,27 +1326,19 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
renewalYearPerformanceCommission.setCalculationAmount(withdrawLabelInfo.getCalculationAmount().doubleValue());
renewalYearPerformanceCommission.setSalesCommissionRate(withdrawLabelInfo.getCommissionRate().doubleValue());
if ("C06".equals(withdrawLabelInfo.getDropOptionCode())) {
c06List.add(renewalYearPerformanceCommission);
}
if ("C07".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("C07".equals(withdrawLabelInfo.getDropOptionCode())) {
c07List.add(renewalYearPerformanceCommission);
}
if ("C09".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("C09".equals(withdrawLabelInfo.getDropOptionCode())) {
c09List.add(renewalYearPerformanceCommission);
}
if ("C10".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("C10".equals(withdrawLabelInfo.getDropOptionCode())) {
c10List.add(renewalYearPerformanceCommission);
}
if ("R04".equals(withdrawLabelInfo.getDropOptionCode())) {
}else if ("R04".equals(withdrawLabelInfo.getDropOptionCode())) {
c12List.add(renewalYearPerformanceCommission);
}
}
//C99:其他,C98:公司激励奖金,C97:其它税前加扣款,C96:加码奖金,C95:季度奖金,C94,银盾在线佣金
if ("C99,C94,C95,C96,C97,C98,S01,S03,D91,D92,".indexOf(withdrawLabelInfo.getDropOptionCode()+",") != -1) {
}else if ("C99,C94,C95,C96,C97,C98,S01,S03,D91,D92,".indexOf(withdrawLabelInfo.getDropOptionCode()+",") != -1) {
//C99:其他,C98:公司激励奖金,C97:其它税前加扣款,C96:加码奖金,C95:季度奖金,C94,银盾在线佣金
OtherCommission otherCommission = new OtherCommission();
otherCommission.setComments(withdrawLabelInfo.getRemark());
otherCommission.setCommissionName(withdrawLabelInfo.getCommissionType());
......@@ -1365,9 +1348,7 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
otherCommission.setCommission(String.valueOf(withdrawLabelInfo.getReferralAmount().doubleValue()));
otherCommissionLis.add(otherCommission);
}
}
}
//1,首年度销售佣金 C01
......@@ -1393,6 +1374,7 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
responseBody.setRecommendCommissionList(c05List);
//8,体系推介奖金 C15
responseBody.setRecommendSystemCommissionList(c15List);
responseBody.setRecommendSystemCommissionC16List(c16List);
//9,特别管理奖金
responseBody.setSpecialManagementCommissionList(null);
responseBody.setFycMeritsInfoList(c08List);//C08 团队管理绩效达标奖金
......@@ -1466,6 +1448,10 @@ public class PractitionerBasicInfoServiceImpl implements PractitionerBasicInfoSe
if ("C15".equals(commissionType)) {
return "B-005";
}
//C16:原辅导人之体系推荐奖金;
if ("C16".equals(commissionType)) {
return "B-016";
}
//C06:直接辅导岗位津贴;
if ("C06".equals(commissionType)) {
return "B-008";
......
......@@ -4,9 +4,11 @@ import com.libs.pdf.PDFSign;
import com.libs.pdf.PDFTemplate;
import com.yd.api.practitioner.service.PractitionerHiringContractService;
import com.yd.dal.entity.customer.*;
import com.yd.dal.entity.meta.MdDropOptions;
import com.yd.dal.mapper.customer.*;
import com.yd.dal.mapper.practitioner.PractitionerHiringMapper;
import com.yd.dal.service.customer.AclPractitionerSubordinateSystemDALService;
import com.yd.dal.service.meta.MdDropOptionsDALService;
import com.yd.rmi.ali.oss.service.OssService;
import com.yd.rmi.cache.SystemConfigService;
import com.yd.util.CommonUtil;
......@@ -46,6 +48,8 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
private AclInsurerBranchDeptMapper deptMapper;
@Autowired
private AclPractitionerSubordinateSystemDALService aclPractitionerSubordinateSystemDALService;
@Autowired
private MdDropOptionsDALService mdDropOptionsDALService;
/**
......@@ -217,18 +221,17 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
data.put("firstPartyAddress", firstPartyAddress);
// 设置一些地址
this.setSomeAddress(data, hiringBasicInfoId);
Calendar now = Calendar.getInstance();
data.put("contactYear", now.get(Calendar.YEAR) + "");
data.put("contactMonth", (now.get(Calendar.MONTH) + 1) + "");
data.put("contactDay", now.get(Calendar.DAY_OF_MONTH) + "");
// Calendar now = Calendar.getInstance();
// data.put("contactYear", now.get(Calendar.YEAR) + "");
// data.put("contactMonth", (now.get(Calendar.MONTH) + 1) + "");
// data.put("contactDay", now.get(Calendar.DAY_OF_MONTH) + "");
//8页
data.put("secondParty801", basicInfo.getName());
Calendar secondBirthday = Calendar.getInstance();
Date practitionerBirthdate = CommonUtil.stringParseDate(basicInfo.getPractitionerBirthdate(), "yyyy-MM-dd");
secondBirthday.setTime(practitionerBirthdate);
data.put("secondBirthYear801", secondBirthday.get(Calendar.YEAR) + "");
data.put("secondBirthMonth801", (secondBirthday.get(Calendar.MONTH) + 1) + "");
data.put("secondBirthDay801", secondBirthday.get(Calendar.DAY_OF_MONTH) + "");
......@@ -258,6 +261,11 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
data.put("secondMentor801", mentorName);
data.put("secondSubsystem", subsystemName);
data.put("secondSubsystemNo", "");
data.put("contactYear", applyDate.get(Calendar.YEAR) + "");
data.put("contactMonth", (applyDate.get(Calendar.MONTH) + 1) + "");
data.put("contactDay", applyDate.get(Calendar.DAY_OF_MONTH) + "");
// 签核人员
this.setApprovepeople(data, hiringBasicInfoId);
......@@ -435,6 +443,8 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
images.put("secondSignature1401", signature);
images.put("secondSignature1601", signature);
images.put("secondSignature1701", signature);
images.put("secondPartyImg", signature);
images.put("secondParty802Img", signature);
// 证件照
String IDFront = this.getImgTolocal(localDirectory,"IDFront.png", basicInfo.getIdFrontPageOssPath());
String IDBack = this.getImgTolocal(localDirectory,"IDBack.png", basicInfo.getIdBackPageOssPath());
......@@ -465,31 +475,61 @@ public class PractitionerHiringContractServiceImpl implements PractitionerHiring
images.put("secondPosition4", unCheckFile);
images.put("secondPosition5", unCheckFile);
images.put("secondPosition6", unCheckFile);
images.put("secondPosition7", unCheckFile);
images.put("secondPosition8", unCheckFile);
images.put("secondPosition9", unCheckFile);
images.put("secondPosition10", unCheckFile);
images.put("secondPosition11", unCheckFile);
Long mdDropOptionId = memberShip == null ? null : memberShip.getMdDropOptionId();
if (Long.valueOf("30").equals(mdDropOptionId)) {
images.put("secondPosition1", checkFile);
return;
}
if (Long.valueOf("32").equals(mdDropOptionId)) {
images.put("secondPosition2", checkFile);
return;
}
if (Long.valueOf("33").equals(mdDropOptionId)) {
images.put("secondPosition3", checkFile);
return;
}
if (Long.valueOf("34").equals(mdDropOptionId)) {
images.put("secondPosition4", checkFile);
return;
}
if (Long.valueOf("35").equals(mdDropOptionId)) {
images.put("secondPosition5", checkFile);
return;
}
if (Long.valueOf("36").equals(mdDropOptionId)) {
images.put("secondPosition6", checkFile);
return;
if(mdDropOptionId != null){
MdDropOptions mdDropOptions = mdDropOptionsDALService.findById(mdDropOptionId);
if(mdDropOptions != null){
if ("S3".equals(mdDropOptions.getDropOptionCode())) {
images.put("secondPosition1", checkFile);
return;
}
if ("S2".equals(mdDropOptions.getDropOptionCode())) {
images.put("secondPosition2", checkFile);
return;
}
if ("S1".equals(mdDropOptions.getDropOptionCode())) {
images.put("secondPosition3", checkFile);
return;
}
if ("M3".equals(mdDropOptions.getDropOptionCode())) {
images.put("secondPosition4", checkFile);
return;
}
if ("M2".equals(mdDropOptions.getDropOptionCode())) {
images.put("secondPosition5", checkFile);
return;
}
if ("M1".equals(mdDropOptions.getDropOptionCode())) {
images.put("secondPosition6", checkFile);
return;
}
if ("A3".equals(mdDropOptions.getDropOptionCode())) {
images.put("secondPosition7", checkFile);
return;
}
if ("A2".equals(mdDropOptions.getDropOptionCode())) {
images.put("secondPosition8", checkFile);
return;
}
if ("A1".equals(mdDropOptions.getDropOptionCode())) {
images.put("secondPosition9", checkFile);
return;
}
if ("A0".equals(mdDropOptions.getDropOptionCode())) {
images.put("secondPosition10", checkFile);
return;
}
if ("IA".equals(mdDropOptions.getDropOptionCode())) {
images.put("secondPosition11", checkFile);
return;
}
}
}
}
......
......@@ -1025,6 +1025,57 @@ public class PractitionerHiringServiceImpl implements PractitionerHiringService
return resp;
}
@Override
public GeneratePDFResponseVO handGeneratePDF(GeneratePDFRequestVO requestVO) {
GeneratePDFResponseVO resp = new GeneratePDFResponseVO();
try {
Long hiringBasicInfoId = requestVO.getHiringBasicInfoId();
Long practitionerId = requestVO.getPractitionerId();
if (hiringBasicInfoId == null) {
resp.setCommonResult(new CommonResult(false, "此经纪人无电子合同"));
return resp;
}
AclPractitioner practitioner = aclPractitionerMapper.selectByPrimaryKey(practitionerId);
String practitionerCode = practitioner == null ? null : practitioner.getPractitionerCode().trim();
String practitionerRegNo = practitioner == null ? null : practitioner.getPractitionerRegNo();
if (StringUtils.isBlank(practitionerRegNo)) {
resp.setCommonResult(new CommonResult(false, "执业编号不能为空,请保存后再生成合同"));
return resp;
}
if (StringUtils.isBlank(practitionerCode)) {
resp.setCommonResult(new CommonResult(false, "内部编号不能为空,请保存后再生成合同"));
return resp;
}
// 合同编号已存在就不生成新的
String contractNo = practitioner.getContractNo();
if (StringUtils.isEmpty(contractNo)) {
contractNo = hiringContractService.getNextContractNo();
practitioner.setContractNo(contractNo);
}
String contractOssPath = hiringContractService.generatePractitionerContract(practitioner);
//4、经纪人表生成经纪人记录ag_acl_practitioner,ag_acl_practitioner.contract_oss_path
// 经纪人经纪人类型级别定义表ag_acl_practitioner_setting
AclPractitioner updateObj = new AclPractitioner();
updateObj.setId(practitionerId);
updateObj.setContractNo(contractNo);
updateObj.setContractOssPath(contractOssPath);
aclPractitionerMapper.updateByPrimaryKeySelective(updateObj);
resp.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
resp.setContractOssPath(contractOssPath);
} catch (Exception e) {
e.printStackTrace();
resp.setCommonResult(new CommonResult(false, e.getMessage()));
}
return resp;
}
private void distributeToSubsystemOwner(AclPractitionerHiringMembership hiringMemberShip) {
String mdDropOptionName = hiringMemberShip.getMdDropOptionName();
......
package com.yd.api.practitioner.service.impl;
import static java.util.stream.Collectors.toList;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Base64;
import java.util.Calendar;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
import javax.imageio.ImageIO;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import org.apache.commons.beanutils.BeanPropertyValueEqualsPredicate;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPageTree;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.google.common.base.Strings;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfCopy;
import com.itextpdf.text.pdf.PdfImportedPage;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;
import com.itextpdf.text.pdf.draw.LineSeparator;
import com.libs.pdf.PDFTemplate;
import com.yd.api.customer.service.CustomerService;
......@@ -83,97 +20,24 @@ import com.yd.api.practitioner.vo.businessCard.PractitionerBusinessCardRequestVO
import com.yd.api.practitioner.vo.businessCard.PractitionerBusinessCardResponseVO;
import com.yd.api.practitioner.vo.commitment.QueryCommitmentByPractitionerIdResponseVO;
import com.yd.api.practitioner.vo.commitment.SignCommitmentRequestVO;
import com.yd.api.practitioner.vo.informed.QueryInformedSheetByIdResponseVO;
import com.yd.api.practitioner.vo.informed.QueryInformedSheetListRequestVO;
import com.yd.api.practitioner.vo.informed.QueryInformedSheetListResponseVO;
import com.yd.api.practitioner.vo.informed.SaveInformedSheetRequestVO;
import com.yd.api.practitioner.vo.informed.SignInformedSheetRequestVO;
import com.yd.api.practitioner.vo.informed.UpdateInformedSheetByIdRequestVO;
import com.yd.api.practitioner.vo.informed.*;
import com.yd.api.practitioner.vo.login.CanSeeSalaryListResponseVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginBasicInfo;
import com.yd.api.practitioner.vo.login.PractitionerLoginRequestVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginResponseVO;
import com.yd.api.practitioner.vo.media.MediaGetReqVO;
import com.yd.api.practitioner.vo.media.MediaGetRespVO;
import com.yd.api.practitioner.vo.opportunity.ApplyForExpertSupportRequestVO;
import com.yd.api.practitioner.vo.opportunity.ApplyForExpertSupportResponseVO;
import com.yd.api.practitioner.vo.opportunity.OpportunityBasicInformationInfo;
import com.yd.api.practitioner.vo.opportunity.OpportunityConsultationInfo;
import com.yd.api.practitioner.vo.opportunity.OpportunityCustomerTag;
import com.yd.api.practitioner.vo.opportunity.OpportunityDeleteRequestVO;
import com.yd.api.practitioner.vo.opportunity.OpportunityRecordInfo;
import com.yd.api.practitioner.vo.opportunity.OpportunityRecordSituationInfo;
import com.yd.api.practitioner.vo.opportunity.OpportunityScore;
import com.yd.api.practitioner.vo.opportunity.OpportunityStatisticsRequestVO;
import com.yd.api.practitioner.vo.opportunity.OpportunityStatisticsResponseVO;
import com.yd.api.practitioner.vo.opportunity.OpportunitySurveyAnswers;
import com.yd.api.practitioner.vo.opportunity.OwnOpportunityBasicInformationSaveRequestVO;
import com.yd.api.practitioner.vo.opportunity.OwnOpportunityBasicInformationSaveResponseVO;
import com.yd.api.practitioner.vo.opportunity.OwnOpportunityDetailQueryRequestVO;
import com.yd.api.practitioner.vo.opportunity.OwnOpportunityDetailQueryResponseVO;
import com.yd.api.practitioner.vo.opportunity.OwnOpportunityQueryRequestVO;
import com.yd.api.practitioner.vo.opportunity.OwnOpportunityQueryResponseVO;
import com.yd.api.practitioner.vo.opportunity.OwnOpportunityRecordSaveRequestVO;
import com.yd.api.practitioner.vo.opportunity.OwnOpportunityRecordSaveResponseVO;
import com.yd.api.practitioner.vo.opportunity.PlayerSalesActivityQueryRequestVO;
import com.yd.api.practitioner.vo.opportunity.PlayerSalesActivityQueryResponseVO;
import com.yd.api.practitioner.vo.opportunity.SalesPerformanceForecastInfo;
import com.yd.api.practitioner.vo.opportunity.SalesPerformanceForecastListQueryRequestVO;
import com.yd.api.practitioner.vo.opportunity.SalesPerformanceForecastListQueryResponseVO;
import com.yd.api.practitioner.vo.opportunity.SalesScoreDetail;
import com.yd.api.practitioner.vo.opportunity.SalesScoreDetailQueryRequestVO;
import com.yd.api.practitioner.vo.opportunity.SalesScoreDetailQueryResponseVO;
import com.yd.api.practitioner.vo.practitionerCustomer.CustomerHolder;
import com.yd.api.practitioner.vo.practitionerCustomer.QueryCustomerHolderListResponesVO;
import com.yd.api.practitioner.vo.practitionerCustomer.QueryCustomerInsuredListRequestVO;
import com.yd.api.practitioner.vo.practitionerCustomer.QueryCustomerInsuredListResponesVO;
import com.yd.api.practitioner.vo.practitionerCustomer.QueryPolicyListByHolderCustomerIdRequestVO;
import com.yd.api.practitioner.vo.practitionerCustomer.QueryPolicyListByHolderCustomerIdResponesVO;
import com.yd.api.practitioner.vo.opportunity.*;
import com.yd.api.practitioner.vo.practitionerCustomer.*;
import com.yd.api.practitioner.vo.rank.AclCustomerFortuneStatistics;
import com.yd.api.practitioner.vo.rank.PractitionerInfoForAchievement;
import com.yd.api.practitioner.vo.rank.PractitionerRankRequestVO;
import com.yd.api.practitioner.vo.rank.PractitionerRankResponseVO;
import com.yd.api.practitioner.vo.recruit.AddRecruitTrackRequestVO;
import com.yd.api.practitioner.vo.recruit.AddRecruitTrackResponseVO;
import com.yd.api.practitioner.vo.recruit.PotentialActivityQueryRequestVO;
import com.yd.api.practitioner.vo.recruit.PotentialActivityQueryResponseVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsActionsInfo;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsActionsQueryRequestVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsActionsQueryResponseVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsActionsUpdateRequestVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsActionsUpdateResponseVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsQueryRequestVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsQueryResponseVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsSettingRequestVO;
import com.yd.api.practitioner.vo.recruit.PotentialGoalsSettingResponseVO;
import com.yd.api.practitioner.vo.recruit.PractitionerPotentialInfo;
import com.yd.api.practitioner.vo.recruit.RecruitGoalForMonth;
import com.yd.api.practitioner.vo.recruit.RecruitListRequestVO;
import com.yd.api.practitioner.vo.recruit.RecruitListResponseVO;
import com.yd.api.practitioner.vo.recruit.RecruitRequestVO;
import com.yd.api.practitioner.vo.recruit.RecruitResponseVO;
import com.yd.api.practitioner.vo.recruit.RecruitTrackInfo;
import com.yd.api.practitioner.vo.recruit.RecruitTrackQueryRequestVO;
import com.yd.api.practitioner.vo.recruit.RecruitTrackQueryResponseVO;
import com.yd.api.practitioner.vo.salestarget.SalesTargetActions;
import com.yd.api.practitioner.vo.salestarget.SalesTargetMonth;
import com.yd.api.practitioner.vo.salestarget.SalesTargetMonthSaveRequestVO;
import com.yd.api.practitioner.vo.salestarget.SalesTargetMonthSaveResponseVO;
import com.yd.api.practitioner.vo.salestarget.SalesTargetQueryRequestVO;
import com.yd.api.practitioner.vo.salestarget.SalesTargetQueryResponseVO;
import com.yd.api.practitioner.vo.salestarget.SalesTargetSaveRequestVO;
import com.yd.api.practitioner.vo.salestarget.SalesTargetSaveResponseVO;
import com.yd.api.practitioner.vo.salestarget.TeamActionsAverageQueryRequestVO;
import com.yd.api.practitioner.vo.salestarget.TeamActionsAverageQueryResponseVO;
import com.yd.api.practitioner.vo.recruit.*;
import com.yd.api.practitioner.vo.salestarget.*;
import com.yd.api.practitioner.vo.sechedule.AddScheduleTrackRequestVO;
import com.yd.api.practitioner.vo.sechedule.AddScheduleTrackResponseVO;
import com.yd.api.practitioner.vo.setting.ImgDeleteRequestVO;
import com.yd.api.practitioner.vo.setting.ImgDeleteResponseVO;
import com.yd.api.practitioner.vo.setting.LifeImg;
import com.yd.api.practitioner.vo.setting.SettingQueryRequestVO;
import com.yd.api.practitioner.vo.setting.SettingQueryResponseVO;
import com.yd.api.practitioner.vo.setting.SettingSaveRequestVO;
import com.yd.api.practitioner.vo.setting.SettingSaveResponseVO;
import com.yd.api.practitioner.vo.setting.*;
import com.yd.api.practitioner.vo.subordinate.SubordinateSystemMemberInfo;
import com.yd.api.practitioner.vo.subordinate.SubordinateSystemMemberQueryRequestVO;
import com.yd.api.practitioner.vo.subordinate.SubordinateSystemMemberQueryResponseVO;
......@@ -184,40 +48,10 @@ import com.yd.api.result.CommonResult;
import com.yd.api.result.CommonResultIDResponseVO;
import com.yd.api.result.CommonResultResponseVO;
import com.yd.api.result.IDRequestVO;
import com.yd.dal.entity.customer.AclCustomer;
import com.yd.dal.entity.customer.AclCustomerLog;
import com.yd.dal.entity.customer.AclCustomerMembership;
import com.yd.dal.entity.customer.AclCustomerShare;
import com.yd.dal.entity.customer.AclFileUpload;
import com.yd.dal.entity.customer.AclPractitioner;
import com.yd.dal.entity.customer.AclPractitionerPotential;
import com.yd.dal.entity.customer.AclPractitionerPotentialAssignedTrack;
import com.yd.dal.entity.customer.AclPractitionerPotentialAssigneds;
import com.yd.dal.entity.customer.AclPractitionerPotentialGoals;
import com.yd.dal.entity.customer.AclPractitionerPotentialGoalsActions;
import com.yd.dal.entity.customer.AclPractitionerSetting;
import com.yd.dal.entity.customer.AclPractitionerSubordinateSystem;
import com.yd.dal.entity.customer.AgPoInformed;
import com.yd.dal.entity.customer.CustomerFileUpload;
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.customer.practitioner.PractitionerSubordinateInfo;
import com.yd.dal.entity.customer.practitioner.SubordinateSystemMemberInfoE;
import com.yd.dal.entity.marketing.AgSfpAppointmentRecord;
import com.yd.dal.entity.marketing.MktLeadsAssignedTrack;
import com.yd.dal.entity.marketing.MktLeadsAssigneds;
import com.yd.dal.entity.marketing.MktLeadsExpertAssign;
import com.yd.dal.entity.marketing.MktLeadsExpertRequest;
import com.yd.dal.entity.marketing.MktLeadsGoals;
import com.yd.dal.entity.marketing.MktLeadsGoalsActions;
import com.yd.dal.entity.marketing.MktLeadsPool;
import com.yd.dal.entity.meta.MdDropMaster;
import com.yd.dal.entity.meta.MdDropOptions;
import com.yd.dal.entity.meta.MdGoalsCalculateExpression;
import com.yd.dal.entity.meta.MdMkCampaign;
import com.yd.dal.entity.meta.MdTag;
import com.yd.dal.entity.meta.ObjectCollectionTagged;
import com.yd.dal.entity.customer.*;
import com.yd.dal.entity.customer.practitioner.*;
import com.yd.dal.entity.marketing.*;
import com.yd.dal.entity.meta.*;
import com.yd.dal.entity.order.CustomerPolicyInfo;
import com.yd.dal.entity.order.PoOrder;
import com.yd.dal.entity.practitioner.opportunity.OwnOpportunityInfo;
......@@ -229,35 +63,9 @@ import com.yd.dal.mapper.customer.AclPolicyholderMapper;
import com.yd.dal.mapper.customer.AgPoInformedMapper;
import com.yd.dal.mapper.marketing.MktLeadsAssignedsMapper;
import com.yd.dal.service.agms.AgmsDashboardDALService;
import com.yd.dal.service.customer.AclCustomerDALService;
import com.yd.dal.service.customer.AclCustomerFortuneDALService;
import com.yd.dal.service.customer.AclCustomerLogDALService;
import com.yd.dal.service.customer.AclCustomerMembershipDALService;
import com.yd.dal.service.customer.AclCustomerShareDALService;
import com.yd.dal.service.customer.AclFileUploadDALService;
import com.yd.dal.service.customer.AclPractitionerDALService;
import com.yd.dal.service.customer.AclPractitionerPotentialAssignedTrackDALService;
import com.yd.dal.service.customer.AclPractitionerPotentialAssignedsDALService;
import com.yd.dal.service.customer.AclPractitionerPotentialDALService;
import com.yd.dal.service.customer.AclPractitionerPotentialGoalsActionsDALService;
import com.yd.dal.service.customer.AclPractitionerPotentialGoalsDALService;
import com.yd.dal.service.customer.AclPractitionerSettingDALService;
import com.yd.dal.service.customer.AclPractitionerSubordinateSystemDALService;
import com.yd.dal.service.marketing.MktLeadsAssignedTrackDALService;
import com.yd.dal.service.marketing.MktLeadsAssignedsDALService;
import com.yd.dal.service.marketing.MktLeadsExpertAssignDALService;
import com.yd.dal.service.marketing.MktLeadsExpertRequestDALService;
import com.yd.dal.service.marketing.MktLeadsGoalsActionsDALService;
import com.yd.dal.service.marketing.MktLeadsGoalsDALService;
import com.yd.dal.service.marketing.MktLeadsPoolDALService;
import com.yd.dal.service.meta.MdCodeDALService;
import com.yd.dal.service.meta.MdDropMasterDALService;
import com.yd.dal.service.meta.MdDropOptionsDALService;
import com.yd.dal.service.meta.MdGoalsCalculateExpressionDALService;
import com.yd.dal.service.meta.MdGoalsCalculateExpressionService;
import com.yd.dal.service.meta.MdMkCampaignDALService;
import com.yd.dal.service.meta.MdTagDALService;
import com.yd.dal.service.meta.ObjectCollectionTaggedDALService;
import com.yd.dal.service.customer.*;
import com.yd.dal.service.marketing.*;
import com.yd.dal.service.meta.*;
import com.yd.dal.service.order.PoOrderDALService;
import com.yd.dal.service.survey.SurveyCustomerAnswersDALService;
import com.yd.dal.service.systemMessage.AclSystemMessageService;
......@@ -278,25 +86,47 @@ import com.yd.rmi.n22.staff.service.N22StaffService;
import com.yd.rmi.tencent.wechat.service.WechatService;
import com.yd.rmi.tencent.wechat.vo.WeChatInfoByENV;
import com.yd.rmi.tencent.wechatinterf.pojo.accesstoken.AccessTokenRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.DataDetailInfo;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.MiniProgramSfpInfo;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.SendTemplateRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.SendTemplateSfpRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.TemplateDataInfo;
import com.yd.rmi.tencent.wechatinterf.pojo.templetemessage.*;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest;
import com.yd.rmi.tencent.wechatinterf.service.WechatInterfService;
import com.yd.util.CommonUtil;
import com.yd.util.HttpUtil;
import com.yd.util.JsonUtil;
import com.yd.util.PDFConfiguration;
import com.yd.util.SpringContextUtil;
import com.yd.util.*;
import com.yd.util.config.ZHBErrorConfig;
import com.yd.util.deshandler.DESTypeHandler;
import com.yd.dal.entity.sms.ShortMessageSendRecord;
import com.yd.dal.service.sms.ShortMessageSendRecordService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanPropertyValueEqualsPredicate;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPageTree;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.imageio.ImageIO;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.*;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
import static java.util.stream.Collectors.toList;
@Service("practitionerService")
@Slf4j
......@@ -1093,6 +923,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
opportunityDateMap.put(poOrder.getCustomerId(), poOrder.getId());
}
}
List<OwnOpportunityInfo> ownOpportunityInfos = aclPractitionerDALService.ownOpportunityQuery(practitionerId);
for (OwnOpportunityInfo info : ownOpportunityInfos) {
info.setOrderId(opportunityDateMap.get(info.getOpportunityId()));
......@@ -1100,10 +931,11 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
DESTypeHandler jpaCryptoConverter = new DESTypeHandler();
info.setMobileNo(jpaCryptoConverter.decode(info.getMobileNo()));
}
}
responseVO.setOwnOpportunityInfos(ownOpportunityInfos);
//根据回访状态排序
List<OwnOpportunityInfo> list = sort(ownOpportunityInfos);
responseVO.setOwnOpportunityInfos(list);
responseVO.setCommonResult(new CommonResult(true, ZHBErrorConfig.getErrorInfo("800000")));
return responseVO;
}
......@@ -1851,6 +1683,30 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
return responseVO;
}
/**
* 1.未回访的排在最上面
* 2.已回访的记录按回访时间升序排列
* 3.没有回访状态的按原来的排序逻辑
*
*/
private List<OwnOpportunityInfo> sort(List<OwnOpportunityInfo> ownOpportunityInfos) {
List<OwnOpportunityInfo> list1 = new ArrayList<>();
List<OwnOpportunityInfo> list2 = new ArrayList<>();
//商机分组
for (OwnOpportunityInfo opportunity : ownOpportunityInfos) {
if (opportunity.getReturnVisitTime() != null) {
list2.add(opportunity);
} else {
list1.add(opportunity);
}
}
//未跟进的排在最上面,已回访的记录按回访时间升序排列
list2.sort(Comparator.comparing(OwnOpportunityInfo::getReturnVisitTime));
list1.addAll(list2);
return list1;
}
private void getResponseMessage(List<PractitionerPotentialInfo> potentialInfoList, Map<Long, String> trackStatusMap, Map<Long, String> recruitSourceMap, PractitionerPotentialInfo item, Map<Long, String> remarkMap, Map<Long, Date> timeToOnBoardingMap) {
PractitionerPotentialInfo potentialInfo = new PractitionerPotentialInfo();
......@@ -5896,6 +5752,7 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
AclPractitioner practitioner = aclPractitionerDALService.findPractitionerById(practitionerId);
if (practitioner != null) {
resp.setCanSeeYdCollege(practitioner.getCanSeeYdCollege());
resp.setCffpRoleCode(practitioner.getCffpRoleCode());
}
return resp;
}
......
......@@ -7,4 +7,5 @@ import lombok.Data;
public class QueryCanSeeResponseVO {
private CommonResult commonResult;
private String canSeeYdCollege;
private String cffpRoleCode;
}
......@@ -86,4 +86,9 @@ public class SaveBasicInfoRequestVO {
* email地址
*/
private String email;
/**
* 视频URl
*/
private String videoOssPath;
}
......@@ -134,6 +134,11 @@ public class PractitionerHiringBasicInfo {
private String personalSignOssPath;
/**
* 视频URl
*/
private String videoOssPath;
/**
* 获取 邀请人名字
*
* @return inviteePractitionerName 邀请人名字
......@@ -518,7 +523,15 @@ public class PractitionerHiringBasicInfo {
public void setPayrollOssPath(String payrollOssPath) {
this.payrollOssPath = payrollOssPath;
}
public String getVideoOssPath() {
return videoOssPath;
}
public void setVideoOssPath(String videoOssPath) {
this.videoOssPath = videoOssPath;
}
public String getApproveStatus() {
return approveStatus;
}
......
......@@ -253,6 +253,11 @@ public class AclPractitioner {
private String canSeeYdCollege;
/**
* cffp角色代码,通过,分割
*/
private String cffpRoleCode;
/**
* 详细地址
*/
private String detailAddress;
......
......@@ -165,6 +165,11 @@ public class AclPractitionerHiringBasicInfo {
private String personalSignOssPath;
/**
* 视频URl
*/
private String videoOssPath;
/**
* 0=No, 1=Yes
*/
private Integer isActive;
......
package com.yd.dal.entity.practitioner.opportunity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
@Data
public class OwnOpportunityInfo {
private Long opportunityId;
......@@ -17,5 +20,6 @@ public class OwnOpportunityInfo {
private Long expertType;//0.经纪人指派 1.专家指派
private Long sfpMainId;
private String wechatNo;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
private Date returnVisitTime;
}
......@@ -55,6 +55,7 @@ public class AgAclLifePractitionerSalary implements Serializable {
* 0,预览薪资单,1,经纪人查看薪资单
*/
private Integer isActive;
private Long payoutBatchId;
private static final long serialVersionUID = 1L;
......@@ -149,6 +150,7 @@ public class AgAclLifePractitionerSalary implements Serializable {
&& (this.getPayableAmount() == null ? other.getPayableAmount() == null : this.getPayableAmount().equals(other.getPayableAmount()))
&& (this.getTaxoutAmount() == null ? other.getTaxoutAmount() == null : this.getTaxoutAmount().equals(other.getTaxoutAmount()))
&& (this.getNetAmount() == null ? other.getNetAmount() == null : this.getNetAmount().equals(other.getNetAmount()))
&& (this.getPayoutBatchId() == null ? other.getPayoutBatchId() == null : this.getPayoutBatchId().equals(other.getPayoutBatchId()))
&& (this.getPdfOssPath() == null ? other.getPdfOssPath() == null : this.getPdfOssPath().equals(other.getPdfOssPath()));
}
......@@ -163,6 +165,7 @@ public class AgAclLifePractitionerSalary implements Serializable {
result = prime * result + ((getPayableAmount() == null) ? 0 : getPayableAmount().hashCode());
result = prime * result + ((getTaxoutAmount() == null) ? 0 : getTaxoutAmount().hashCode());
result = prime * result + ((getNetAmount() == null) ? 0 : getNetAmount().hashCode());
result = prime * result + ((getPayoutBatchId() == null) ? 0 : getPayoutBatchId().hashCode());
result = prime * result + ((getPdfOssPath() == null) ? 0 : getPdfOssPath().hashCode());
return result;
}
......@@ -193,4 +196,13 @@ public class AgAclLifePractitionerSalary implements Serializable {
public void setIsBasic(String isBasic) {
this.isBasic = isBasic;
}
public Long getPayoutBatchId() {
return payoutBatchId;
}
public void setPayoutBatchId(Long payoutBatchId) {
this.payoutBatchId = payoutBatchId;
}
}
......@@ -42,4 +42,6 @@ public interface AclCustomerFortuneMapper {
List<AclCustomerFortune> queryLifeFortuneListByOrderId(Long orderId);
List<AclCustomerFortune> queryLifeFortuneListByCommissionId(Long commissionId);
List<AclCustomerFortune> queryByPractitionerIdAndPayoutBatchId(AclCustomerFortune aclCustomerFortune);
}
\ No newline at end of file
......@@ -24,4 +24,9 @@ public interface AgAclLifePractitionerSalaryMapper {
@Param("isActive") Integer isActive, @Param("isHistory") String isHistory);
List<AgAclLifePractitionerSalary> queryByRecord(AgAclLifePractitionerSalary lifePractitionerSalary);
int deleteByPractitionerIdAndYearMonth(AgAclLifePractitionerSalary lifePractitionerSalary);
int deleteSalaryTaxByPractitionerIdAndYearMonth(AgAclLifePractitionerSalary lifePractitionerSalary);
}
......@@ -33,4 +33,7 @@ public interface AclCustomerFortuneDALService {
List<AclCustomerFortune> queryLifeFortuneListByOrderId(Long orderId);
List<AclCustomerFortune> queryLifeFortuneListByCommissionId(Long commissionId);
List<AclCustomerFortune> queryByPractitionerIdAndPayoutBatchId(AclCustomerFortune aclCustomerFortune);
}
......@@ -13,4 +13,6 @@ public interface AclCustomerFortunePayoutBatchDALService {
void save(AclCustomerFortunePayoutBatch customerFortunePayoutBatch);
List<String> findAll();
AclCustomerFortunePayoutBatch selectByPrimaryKey(Long id);
}
......@@ -68,4 +68,9 @@ public class AclCustomerFortuneDALServiceImpl implements AclCustomerFortuneDALSe
public List<AclCustomerFortune> queryLifeFortuneListByCommissionId(Long commissionId) {
return aclCustomerFortuneMapper.queryLifeFortuneListByCommissionId(commissionId);
}
@Override
public List<AclCustomerFortune> queryByPractitionerIdAndPayoutBatchId(AclCustomerFortune aclCustomerFortune) {
return aclCustomerFortuneMapper.queryByPractitionerIdAndPayoutBatchId(aclCustomerFortune);
}
}
......@@ -31,4 +31,10 @@ public class AclCustomerFortunePayoutBatchDALServiceImpl implements AclCustomerF
public List<String> findAll() {
return customerFortunePayoutBatchMapper.selectAll();
}
@Override
public AclCustomerFortunePayoutBatch selectByPrimaryKey(Long id) {
return customerFortunePayoutBatchMapper.selectByPrimaryKey(id);
}
}
package com.yd.dal.service.marketing.Impl;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.apache.commons.beanutils.BeanPropertyValueEqualsPredicate;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yd.dal.entity.marketing.MktAnnouncement;
import com.yd.dal.mapper.marketing.MktAnnouncementMapper;
import com.yd.dal.service.marketing.MktAnnouncementDALService;
import org.apache.commons.beanutils.BeanPropertyValueEqualsPredicate;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
@Service("mktAnnouncementDALService")
public class MktAnnouncementDALServiceImpl implements MktAnnouncementDALService {
......@@ -32,7 +30,7 @@ public class MktAnnouncementDALServiceImpl implements MktAnnouncementDALService
MktAnnouncement info = new MktAnnouncement();
info.setAnnouncementType(announcementType);
info.setIsActive(1);
PageHelper.orderBy("seq desc , created_at desc");
PageHelper.orderBy("seq asc , created_at desc");
Page<MktAnnouncement> mktAnnouncementPageInfo = mktAnnouncementMapper.selectByObj(info);
PageInfo<MktAnnouncement> pageInfo = new PageInfo<>(mktAnnouncementPageInfo);
List<MktAnnouncement> list = pageInfo.getList();
......
......@@ -34,6 +34,8 @@ public class SearchStaffSalaryDetailsResponseBody {
private List<RecommendSystemCommission> RecommendSystemCommissionList;
private List<RecommendSystemCommission> RecommendSystemCommissionC16List;
private List<FirstYearPerformanceCommission> FirstYearPerformanceCommissionList;
private List<RenewalYearPerformanceCommission> RenewalYearPerformanceCommissionList;//续年度绩效奖金
......@@ -154,6 +156,14 @@ public class SearchStaffSalaryDetailsResponseBody {
RecommendSystemCommissionList = recommendSystemCommissionList;
}
public List<RecommendSystemCommission> getRecommendSystemCommissionC16List() {
return RecommendSystemCommissionC16List;
}
@JsonProperty("RecommendSystemCommissionC16List")
public void setRecommendSystemCommissionC16List(List<RecommendSystemCommission> recommendSystemCommissionC16List) {
RecommendSystemCommissionC16List = recommendSystemCommissionC16List;
}
public List<FirstYearPerformanceCommission> getFirstYearPerformanceCommissionList() {
return FirstYearPerformanceCommissionList;
}
......
......@@ -18,16 +18,17 @@ import java.util.Map;
public class HttpUtil {
public static String defaultEncoding= "utf-8";
/**
* 通过url取得文件返回InputStream类型数据
*
*/
public static Map<String,Object> getInput(String path) {
URL url = null;
InputStream is =null;
boolean success=true;
String message="下载文件成功";
Map<String,Object> resp=new HashMap<>();
InputStream is = null;
boolean success = true;
String message = "下载文件成功";
Map<String,Object> resp = new HashMap<>();
try {
url = new URL(path);
......@@ -36,14 +37,15 @@ public class HttpUtil {
conn.connect();
is = conn.getInputStream(); //得到网络返回的输入流
} catch (IOException e) {
success=false;
message="下载文件失败";
success = false;
message = "下载文件失败";
} finally {
resp.put("is",is);
resp.put("message",message);
resp.put("success",success);
return resp;
resp.put("is", is);
resp.put("message", message);
resp.put("success", success);
}
return resp;
}
/**
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -28,6 +28,7 @@
<result column="bankAccountId" jdbcType="VARCHAR" property="bankAccountId"/>
<result column="personalSignOssPath" jdbcType="VARCHAR" property="personalSignOssPath"/>
<result column="payrollOssPath" jdbcType="VARCHAR" property="payrollOssPath" />
<result column="videoOssPath" jdbcType="VARCHAR" property="videoOssPath" />
<result column="approveStatus" jdbcType="VARCHAR" property="approveStatus" />
</resultMap>
<select id="findPractitionerHiringBasicInfo" resultMap="practitionerHiringBasicInfo">
......@@ -55,7 +56,8 @@
b.bank_account_opening bankAccountOpening,
b.bank_account_id bankAccountId,
b.payroll_oss_path payrollOssPath,
b.personal_sign_oss_path personalSignOssPath
b.personal_sign_oss_path personalSignOssPath,
b.video_oss_path videoOssPath
from ag_acl_practitioner_hiring_basic_info b
left join ag_acl_practitioner p on b.invitee_practitioner_id = p.id
where b.id = #{hiringBasicInfoId,jdbcType=BIGINT}
......
......@@ -1057,4 +1057,13 @@
where 1=1
and f.commission_id = #{commissionId,jdbcType=BIGINT}
</select>
<select id="queryByPractitionerIdAndPayoutBatchId" resultMap="BaseResultMap" parameterType="com.yd.dal.entity.customer.AclCustomerFortune">
select
<include refid="Base_Column_List" />
from ag_acl_customer_fortune f
where f.commission_payout_status = 2 and f.practitioner_id = #{practitionerId,jdbcType=BIGINT}
and f.payout_batch_id = #{payoutBatchId,jdbcType=BIGINT}
</select>
</mapper>
\ No newline at end of file
......@@ -208,6 +208,6 @@
payout_yearmonth
from ag_acl_customer_fortune_payout_batch
where payout_yearmonth is not null
order by payout_yearmonth
order by payout_yearmonth desc
</select>
</mapper>
\ No newline at end of file
......@@ -549,7 +549,8 @@
#{item}
</foreach>
and w.is_paid != 1
and (f.payout_batch_id = #{payoutBatchId,jdbcType=BIGINT} or w.withdraw_amount = 0)
and f.payout_batch_id = #{payoutBatchId,jdbcType=BIGINT}
<!-- and (f.payout_batch_id = #{payoutBatchId,jdbcType=BIGINT} or w.withdraw_amount = 0) -->
group by w.customer_id
</select>
......
......@@ -35,6 +35,7 @@
<result column="bank_account_opening" jdbcType="VARCHAR" property="bankAccountOpening" />
<result column="bank_account_id" jdbcType="VARCHAR" property="bankAccountId" />
<result column="personal_sign_oss_path" jdbcType="VARCHAR" property="personalSignOssPath" />
<result column="video_oss_path" jdbcType="VARCHAR" property="videoOssPath" />
<result column="is_active" jdbcType="INTEGER" property="isActive" />
<result column="created_at" jdbcType="TIMESTAMP" property="createdAt" />
<result column="created_by" jdbcType="BIGINT" property="createdBy" />
......@@ -47,7 +48,7 @@
id_type, id_no, gender, practitioner_birthdate, province_id, province_name, city_id,
city_name, political_outlook, resident_address, wechat_id, wechat_QRcode_oss_path, email, personer_picture_oss_path, payroll_oss_path, id_front_page_oss_path,
id_back_page_oss_path, last_graduate_code, last_graduate_grade, last_graduate_school, last_graduate_certification_oss_path,
bank_account_opening, bank_account_id, personal_sign_oss_path, is_active, created_at,
bank_account_opening, bank_account_id, personal_sign_oss_path,video_oss_path, is_active, created_at,
created_by, updated_at, updated_by, approve_status
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
......@@ -73,7 +74,7 @@
id_front_page_oss_path, id_back_page_oss_path,
last_graduate_grade, last_graduate_school,
last_graduate_certification_oss_path, bank_account_opening,
bank_account_id, personal_sign_oss_path, is_active,
bank_account_id, personal_sign_oss_path,video_oss_path, is_active,
created_at, created_by, updated_at,
updated_by)
values (#{practitionerPotentialId,jdbcType=BIGINT}, #{inviteePractitionerId,jdbcType=BIGINT},
......@@ -85,7 +86,7 @@
#{idFrontPageOssPath,jdbcType=VARCHAR}, #{idBackPageOssPath,jdbcType=VARCHAR},
#{lastGraduateGrade,jdbcType=VARCHAR}, #{lastGraduateSchool,jdbcType=VARCHAR},
#{lastGraduateCertificationOssPath,jdbcType=VARCHAR}, #{bankAccountOpening,jdbcType=VARCHAR},
#{bankAccountId,jdbcType=VARCHAR}, #{personalSignOssPath,jdbcType=VARCHAR}, #{isActive,jdbcType=INTEGER},
#{bankAccountId,jdbcType=VARCHAR}, #{personalSignOssPath,jdbcType=VARCHAR}, #{videoOssPath,jdbcType=VARCHAR}, #{isActive,jdbcType=INTEGER},
#{createdAt,jdbcType=TIMESTAMP}, #{createdBy,jdbcType=BIGINT}, #{updatedAt,jdbcType=TIMESTAMP},
#{updatedBy,jdbcType=BIGINT})
</insert>
......@@ -168,6 +169,9 @@
<if test="personalSignOssPath != null">
personal_sign_oss_path,
</if>
<if test="videoOssPath != null">
video_oss_path,
</if>
<if test="isActive != null">
is_active,
</if>
......@@ -260,6 +264,9 @@
<if test="personalSignOssPath != null">
#{personalSignOssPath,jdbcType=VARCHAR},
</if>
<if test="videoOssPath != null">
#{videoOssPath,jdbcType=VARCHAR},
</if>
<if test="isActive != null">
#{isActive,jdbcType=INTEGER},
</if>
......@@ -368,6 +375,9 @@
<if test="personalSignOssPath != null">
personal_sign_oss_path = #{personalSignOssPath,jdbcType=VARCHAR},
</if>
<if test="videoOssPath != null">
video_oss_path = #{videoOssPath,jdbcType=VARCHAR},
</if>
<if test="approveStatus != null">
approve_status = #{approveStatus,jdbcType=VARCHAR},
</if>
......@@ -419,6 +429,7 @@
bank_account_opening = #{bankAccountOpening,jdbcType=VARCHAR},
bank_account_id = #{bankAccountId,jdbcType=VARCHAR},
personal_sign_oss_path = #{personalSignOssPath,jdbcType=VARCHAR},
video_oss_path = #{videoOssPath,jdbcType=VARCHAR},
is_active = #{isActive,jdbcType=INTEGER},
created_at = #{createdAt,jdbcType=TIMESTAMP},
created_by = #{createdBy,jdbcType=BIGINT},
......@@ -555,6 +566,11 @@
when id = #{item.id,jdbcType=BIGINT} then #{item.personalSignOssPath,jdbcType=VARCHAR}
</foreach>
</trim>
<trim prefix="video_oss_path = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id,jdbcType=BIGINT} then #{item.videoOssPath,jdbcType=VARCHAR}
</foreach>
</trim>
<trim prefix="is_active = case" suffix="end,">
<foreach collection="list" index="index" item="item">
when id = #{item.id,jdbcType=BIGINT} then #{item.isActive,jdbcType=INTEGER}
......@@ -765,6 +781,13 @@
</if>
</foreach>
</trim>
<trim prefix="video_oss_path = case" suffix="end,">
<foreach collection="list" index="index" item="item">
<if test="item.videoOssPath != null">
when id = #{item.id,jdbcType=BIGINT} then #{item.videoOssPath,jdbcType=VARCHAR}
</if>
</foreach>
</trim>
<trim prefix="is_active = case" suffix="end,">
<foreach collection="list" index="index" item="item">
<if test="item.isActive != null">
......@@ -813,7 +836,7 @@
id_type, id_no, gender, practitioner_birthdate, province_id, province_name, city_id,
city_name, resident_address, wechat_id, email, personer_picture_oss_path, id_front_page_oss_path,
id_back_page_oss_path, last_graduate_grade, last_graduate_school, last_graduate_certification_oss_path,
bank_account_opening, bank_account_id, personal_sign_oss_path, is_active, created_at,
bank_account_opening, bank_account_id, personal_sign_oss_path, video_oss_path, is_active, created_at,
created_by, updated_at, updated_by)
values
<foreach collection="list" item="item" separator=",">
......@@ -827,7 +850,7 @@
#{item.idFrontPageOssPath,jdbcType=VARCHAR}, #{item.idBackPageOssPath,jdbcType=VARCHAR},
#{item.lastGraduateGrade,jdbcType=VARCHAR}, #{item.lastGraduateSchool,jdbcType=VARCHAR},
#{item.lastGraduateCertificationOssPath,jdbcType=VARCHAR}, #{item.bankAccountOpening,jdbcType=VARCHAR},
#{item.bankAccountId,jdbcType=VARCHAR}, #{item.personalSignOssPath,jdbcType=VARCHAR},
#{item.bankAccountId,jdbcType=VARCHAR}, #{item.personalSignOssPath,jdbcType=VARCHAR}, #{item.videoOssPath,jdbcType=VARCHAR},
#{item.isActive,jdbcType=INTEGER}, #{item.createdAt,jdbcType=TIMESTAMP}, #{item.createdBy,jdbcType=BIGINT},
#{item.updatedAt,jdbcType=TIMESTAMP}, #{item.updatedBy,jdbcType=BIGINT})
</foreach>
......
......@@ -52,6 +52,7 @@
<result column="can_login_dyd" jdbcType="BIGINT" property="canLoginDyd" />
<result column="can_see_salary_list" jdbcType="BIGINT" property="canSeeSalaryList" />
<result column="can_see_yd_college" jdbcType="VARCHAR" property="canSeeYdCollege" />
<result column="cffp_role_code" jdbcType="VARCHAR" property="cffpRoleCode" />
<result column="raise_id" jdbcType="BIGINT" property="raiseId" />
<result column="s1_id" jdbcType="BIGINT" property="s1Id" />
......@@ -69,7 +70,7 @@
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,in_mentor_id, introducer_id, gender, contract_oss_path, hiring_basic_info_id, can_login_dyd,
can_see_salary_list,can_see_yd_college,raise_id,s1_id,s2_id,s3_id,email,email_is_active
can_see_salary_list,can_see_yd_college,cffp_role_code,raise_id,s1_id,s2_id,s3_id,email,email_is_active
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
<!--@mbg.generated-->
......@@ -1518,6 +1519,7 @@
<result column="expertType" property="expertType" />
<result column="sfpMainId" property="sfpMainId" />
<result column="wechatNo" property="wechatNo" />
<result column="returnVisitTime" property="returnVisitTime" />
</resultMap>
<select id="ownOpportunityQuery" resultMap="opportunityQuery">
SELECT
......@@ -1534,7 +1536,8 @@
p.remark remark,
p.appointment_record_id appointmentRecordId,
p.sfp_main_id sfpMainId,
c.wechat_no wechatNo
c.wechat_no wechatNo,
(SELECT t.created_at from ag_mkt_leads_assigned_track t LEFT JOIN ag_md_drop_options op ON op.id = t.md_drop_option_id where t.leads_assigned_id = a.id and op.drop_option_code='returnvisit' ORDER BY t.created_at DESC LIMIT 1) returnVisitTime
FROM
ag_mkt_leads_assigneds a
left join ag_mkt_leads_expert_request r on r.customer_id = a.customer_id and r.is_active =1
......
......@@ -214,7 +214,7 @@
and
announcement_at &lt;= #{date}
and seq != 0
order by seq desc , announcement_at desc
order by seq asc , announcement_at desc
</select>
<select id="findByIsActiveAndAnnouncementAtBeforeTop" resultMap="BaseResultMap">
select
......@@ -225,6 +225,6 @@
and
announcement_at &lt;= #{date}
and seq = 0
order by seq desc , announcement_at desc
order by seq asc , announcement_at desc
</select>
</mapper>
\ No newline at end of file
......@@ -167,4 +167,18 @@
and is_active = #{isActive,jdbcType=VARCHAR}
</if>
</select>
<delete id="deleteByPractitionerIdAndYearMonth" parameterType="com.yd.dal.entity.practitioner.payscale.AgAclLifePractitionerSalary">
delete from ag_acl_life_practitioner_salary
where is_basic = 1 and is_active = 0 and practitioner_id = #{practitionerId,jdbcType=BIGINT}
and `year_month` = #{yearMonth,jdbcType=VARCHAR}
</delete>
<delete id="deleteSalaryTaxByPractitionerIdAndYearMonth" parameterType="com.yd.dal.entity.practitioner.payscale.AgAclLifePractitionerSalary">
delete from ag_acl_life_practitioner_salary_tax
where is_active = 1 and practitioner_id = #{practitionerId,jdbcType=BIGINT}
and salary_year_month = #{yearMonth,jdbcType=VARCHAR}
</delete>
</mapper>
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