Commit 4bfed91b authored by huyuchen's avatar huyuchen

huych-入职登记商险待办提交

parent c0aff965
......@@ -5,6 +5,8 @@ import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprInsurancesProperties;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsuranceSelectVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.ChangeDeptVo;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -46,4 +48,27 @@ public class InsuranceDaprUtil {
"/temployeeinsurancepre/inner/saveInsurancePreInfo", JSON.toJSONString(preVo), Boolean.class, SecurityConstants.FROM_IN);
}
/**
* @Author huyc
* @Description 查询商险确认信息
* @Date 14:34 2025/4/8
* @Param
* @return
**/
public R<TEmployeeInsuranceSelectVo> selectInsurancePreInfoList(TEmployeeInsurancePreVo preVo) {
return HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(),daprInsurancesProperties.getAppId(),
"/temployeeinsurancepre/inner/selectInsurancePreInfoList", JSON.toJSONString(preVo), TEmployeeInsuranceSelectVo.class, SecurityConstants.FROM_IN);
}
/**
* @Author huyc
* @Description 查询商险信息
* @Date 14:34 2025/4/8
* @Param
* @return
**/
public R<TEmployeeInsuranceSelectVo> selectInsuranceInfo(TEmployeeInsurancePreVo preVo) {
return HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(),daprInsurancesProperties.getAppId(),
"/insuranceDetail/inner/selectInsuranceInfo", JSON.toJSONString(preVo), TEmployeeInsuranceSelectVo.class, SecurityConstants.FROM_IN);
}
}
......@@ -35,8 +35,12 @@ import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprArchivesProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.*;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceDetail;
import com.yifu.cloud.plus.v1.yifu.insurances.util.ValidityUtil;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsuranceExitCheckVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsuranceSelectVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TEmployeeInsuranceWorkDayVo;
import lombok.AllArgsConstructor;
import lombok.extern.log4j.Log4j2;
......@@ -544,15 +548,28 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
public R confirmReceive(EmployeeRegistrationPreVo preVo) {
if (preVo.getServerItem().contains("商险") && !preVo.getEmployeeInsurancePreVos().isEmpty()) {
StringBuilder errorTemp = new StringBuilder();
List<TEmployeeInsuranceExitCheckVo> errorList = new ArrayList<>();
TEmployeeInsuranceExitCheckVo checkVo;
for (TEmployeeInsurancePreVo insurancePreVo : preVo.getEmployeeInsurancePreVos()) {
//是否工作日判断
String error = checkInsuranceBuy(insurancePreVo,CommonConstants.ONE_STRING);
if (null != error) {
errorTemp.append(error);
}
insurancePreVo.setEmpIdcard(preVo.getEmpIdcard());
insurancePreVo.setDeptNo(preVo.getDeptNo());
//商险是否存在判断
checkVo = checkInsuranceExit(insurancePreVo,preVo.getEmployeeName(),preVo.getEmpIdcard());
if (null != checkVo) {
errorList.add(checkVo);
}
}
if (errorTemp.length() > 0) {
return R.other(CommonConstants.TWO_INT,null,errorTemp.toString());
}
if (!errorList.isEmpty()) {
return R.other(CommonConstants.TWO_INT,null,errorList);
}
}
YifuUser user = SecurityUtils.getUser();
......@@ -564,8 +581,6 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
!CommonConstants.ONE_STRING.equals(registration.getProcessStatus()))) {
return R.failed(CommonConstants.NO_DATA_TO_HANDLE);
}
//商险是否存在判断
//点击“接收确认”的时候,监测到该人员该项目下已有在项的档案时,再次提醒:该人员已在项,
//状态将更新成“已处理”;处理记录中,针对此情况,记录真实的进项时间,备注:先于登记入项
......@@ -588,7 +603,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
preVo.getServerItem().contains("商险") && !preVo.getEmployeeInsurancePreVos().isEmpty()) {
//生成商险待购买的数据
for (TEmployeeInsurancePreVo insurancePreVo : preVo.getEmployeeInsurancePreVos()) {
initInsruancePreInfo(registration, insurancePreVo, user, CommonConstants.ZERO_STRING,domainR.getData());
initInsruancePreInfo(registration, insurancePreVo, user,domainR.getData());
}
insuranceDaprUtil.saveInsurancePreInfo(preVo);
}
......@@ -612,13 +627,13 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
if (preVo.getServerItem().contains("商险") && !preVo.getEmployeeInsurancePreVos().isEmpty()) {
StringBuilder errorTemp = new StringBuilder();
for (TEmployeeInsurancePreVo insurancePreVo : preVo.getEmployeeInsurancePreVos()) {
String error = checkInsuranceBuy(insurancePreVo,CommonConstants.TWO_STRING);
String error = checkInsuranceBuy(insurancePreVo, CommonConstants.TWO_STRING);
if (null != error) {
errorTemp.append(error);
}
}
if (errorTemp.length() > 0) {
return R.other(CommonConstants.TWO_INT,null,errorTemp.toString());
return R.other(CommonConstants.TWO_INT, null, errorTemp.toString());
}
}
//查询该项目该前端客服下所有待接收的入职登记
......@@ -636,8 +651,34 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
if (Common.isEmpty(registrationList)) {
return R.failed(CommonConstants.NO_DATA_TO_HANDLE);
}
//先进行商险是否存在校验
//商险存在校验
List<TEmployeeInsuranceExitCheckVo> errorList = new ArrayList<>();
TEmployeeInsuranceExitCheckVo checkVo;
if (preVo.getServerItem().contains("商险") && !preVo.getEmployeeInsurancePreVos().isEmpty()) {
for (EmployeeRegistration registration : registrationList) {
StringBuilder errorTemp = new StringBuilder();
for (TEmployeeInsurancePreVo insurancePreVo : preVo.getEmployeeInsurancePreVos()) {
//是否工作日判断
String error = checkInsuranceBuy(insurancePreVo, CommonConstants.ONE_STRING);
if (null != error) {
errorTemp.append(error);
}
insurancePreVo.setEmpIdcard(registration.getEmpIdcard());
insurancePreVo.setDeptNo(registration.getDeptNo());
//商险是否存在判断
checkVo = checkInsuranceExit(insurancePreVo, preVo.getEmployeeName(), preVo.getEmpIdcard());
if (null != checkVo) {
errorList.add(checkVo);
}
}
if (errorTemp.length() > 0) {
return R.other(CommonConstants.TWO_INT, null, errorTemp.toString());
}
}
if (!errorList.isEmpty()) {
return R.other(CommonConstants.TWO_INT, null, errorList);
}
}
List<EmployeeRegistrationReceiveVo> receiveVoList = new ArrayList<>();
for (EmployeeRegistration registration:registrationList) {
......@@ -670,7 +711,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
preVo.getServerItem().contains("商险") && !preVo.getEmployeeInsurancePreVos().isEmpty()) {
//生成商险待购买的数据
for (TEmployeeInsurancePreVo insurancePreVo : preVo.getEmployeeInsurancePreVos()) {
initInsruancePreInfo(registration, insurancePreVo, user, CommonConstants.ZERO_STRING,domainR.getData());
initInsruancePreInfo(registration, insurancePreVo, user,domainR.getData());
}
insuranceDaprUtil.saveInsurancePreInfo(preVo);
}
......@@ -1153,7 +1194,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
//商险待购买数据初始化
private void initInsruancePreInfo(EmployeeRegistration registration,TEmployeeInsurancePreVo preVo,
YifuUser user,String status,String id) throws ParseException {
YifuUser user,String id) throws ParseException {
preVo.setRegisterId(id);
preVo.setCustomerUsername(registration.getCustomerUsername());
preVo.setCustomerUserLoginname(registration.getCustomerUserLoginname());
......@@ -1170,7 +1211,6 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
preVo.setCreateName(user.getNickname());
preVo.setUpdateBy(user.getId());
preVo.setEmpIdcard(registration.getEmpIdcard());
preVo.setProcessStatus(status);
if (Common.isNotNull(preVo.getPolicyStartType()) && CommonConstants.ONE_STRING.equals(preVo.getPolicyStartType())) {
preVo.setPolicyStart(preVo.getJoinLeaveDate());
}
......@@ -1225,8 +1265,80 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
}
//商险是否存在判断 type 1 单个接收 2 批量接收
private String checkInsuranceExit(TEmployeeInsurancePreVo preVo,String type) {
private TEmployeeInsuranceExitCheckVo checkInsuranceExit(TEmployeeInsurancePreVo preVo,String empName,String empIdcard) {
//查询入职确认信息数据
TEmployeeInsuranceExitCheckVo exitCheckVo = new TEmployeeInsuranceExitCheckVo();
boolean erorFlag = false;
R<TEmployeeInsuranceSelectVo> dataR = insuranceDaprUtil.selectInsurancePreInfoList(preVo);
//查询商险数据
TInsuranceDetail insuranceDetail= null;
R<TEmployeeInsuranceSelectVo> dataInsurR = insuranceDaprUtil.selectInsuranceInfo(preVo);
if (Common.isNotNull(dataInsurR) && Common.isNotNull(dataInsurR.getData().getInsuranceDetail())) {
insuranceDetail = dataInsurR.getData().getInsuranceDetail();
}
//二次确认接收场景
if (Common.isNotNull(dataR) && Common.isNotNull(dataR.getData().getInsurancePreList())
&& !dataR.getData().getInsurancePreList().isEmpty()) {
//已存在该身份证的商险入职确认信息
List<TEmployeeInsurancePre> list = dataR.getData().getInsurancePreList();
for (TEmployeeInsurancePre pre : list) {
//项目不同
if (!preVo.getDeptNo().equals(pre.getDeptNo()) && (pre.getProcessStatus().equals(CommonConstants.ZERO_STRING) ||
pre.getProcessStatus().equals(CommonConstants.ONE_STRING) ||
pre.getProcessStatus().equals(CommonConstants.TWO_STRING))) {
erorFlag = true;
break;
}
//项目相同
if (null != insuranceDetail && preVo.getDeptNo().equals(insuranceDetail.getDeptNo()) &&
insuranceDetail.getBuyHandleStatus() != CommonConstants.FIVE_INT &&
insuranceDetail.getBuyHandleStatus() != CommonConstants.FOUR_INT) {
erorFlag = true;
break;
}
if (null != insuranceDetail && !preVo.getDeptNo().equals(insuranceDetail.getDeptNo())
&& insuranceDetail.getBuyHandleStatus() != CommonConstants.FIVE_INT) {
erorFlag = true;
break;
}
}
} else {
//第一次确认接收场景
if (Common.isNotNull(insuranceDetail)) {
//项目不同
if (!preVo.getDeptNo().equals(insuranceDetail.getDeptNo()) && (insuranceDetail.getBuyHandleStatus() == CommonConstants.ONE_INT ||
insuranceDetail.getBuyHandleStatus() == CommonConstants.TWO_INT ||
insuranceDetail.getBuyHandleStatus() == CommonConstants.THREE_INT)) {
erorFlag = true;
}
//项目相同带回状态
if (preVo.getDeptNo().equals(insuranceDetail.getDeptNo()) && insuranceDetail.getBuyHandleStatus() != CommonConstants.FIVE_INT) {
if (insuranceDetail.getBuyHandleStatus() == CommonConstants.ONE_INT) {
preVo.setProcessStatus(CommonConstants.THREE_STRING);
} else if (insuranceDetail.getBuyHandleStatus() == CommonConstants.TWO_INT) {
preVo.setProcessStatus(CommonConstants.FOUR_STRING);
} else if (insuranceDetail.getBuyHandleStatus() == CommonConstants.THREE_INT) {
preVo.setProcessStatus(CommonConstants.SIX_STRING);
} else if (insuranceDetail.getBuyHandleStatus() == CommonConstants.FOUR_INT) {
preVo.setProcessStatus(CommonConstants.FIVE_STRING);
}
}
}
}
//组装错误信息
if (erorFlag) {
exitCheckVo.setBuyType(preVo.getBuyType());
exitCheckVo.setEmployeeName(empName);
exitCheckVo.setEmpIdcard(empIdcard);
exitCheckVo.setPolicyStart(preVo.getPolicyStart());
exitCheckVo.setPolicyEnd(preVo.getPolicyEnd());
exitCheckVo.setBuyStandard(preVo.getBuyStandard());
exitCheckVo.setInsuranceCompanyName(preVo.getInsuranceCompanyName());
exitCheckVo.setInsuranceTypeName(preVo.getInsuranceTypeName());
exitCheckVo.setErrorMsg("存在流程中/已完结的商险数据");
} else {
return null;
}
return exitCheckVo;
}
}
package com.yifu.cloud.plus.v1.yifu.insurances.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 商险待办任务表
*
* @author huych
* @date 2025-03-31 12:25:13
*/
@Data
public class TEmployeeInsuranceExitCheckVo implements Serializable {
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名")
@Schema(description = "员工姓名")
@ExcelProperty("员工姓名")
private String employeeName;
/**
* 身份证号
*/
@ExcelAttribute(name = "身份证号")
@Schema(description = "身份证号")
@ExcelProperty("身份证号")
private String empIdcard;
/**
* 保险公司名称
*/
@ExcelAttribute(name = "保险公司名称")
@Schema(description = "保险公司名称")
@ExcelProperty("保险公司名称")
private String insuranceCompanyName;
/**
* 险种名称
*/
@ExcelAttribute(name = "险种名称")
@Schema(description = "险种名称")
@ExcelProperty("险种名称")
private String insuranceTypeName;
/**
* 购买标准
*/
@ExcelAttribute(name = "购买标准")
@Schema(description = "购买标准")
@ExcelProperty("购买标准")
private String buyStandard;
/**
* 购买类型, 1新增、3批增、4替换
*/
@ExcelAttribute(name = "购买类型, 1新增、3批增、4替换")
@Schema(description = "购买类型, 1新增、3批增、4替换")
@ExcelProperty("购买类型, 1新增、3批增、4替换")
private Integer buyType;
/**
* 保单开始时间
*/
@ExcelAttribute(name = "保单开始时间", isDate = true)
@Schema(description = "保单开始时间")
@ExcelProperty("保单开始时间")
private Date policyStart;
/**
* 保单结束时间
*/
@ExcelAttribute(name = "保单结束时间", isDate = true)
@Schema(description = "保单结束时间")
@ExcelProperty("保单结束时间")
private Date policyEnd;
/**
* 错误信息
*/
@ExcelAttribute(name = "错误信息")
@Schema(description = "错误信息")
@ExcelProperty("错误信息")
private String errorMsg;
}
package com.yifu.cloud.plus.v1.yifu.insurances.vo;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceDetail;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 商险查询vo
*
* @author huych
* @date 2025-04-08 14:26:11
*/
@Data
public class TEmployeeInsuranceSelectVo implements Serializable {
private List<TEmployeeInsurancePre> insurancePreList;
private TInsuranceDetail insuranceDetail;
}
......@@ -6,10 +6,13 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.MenuUtil;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TEmployeeInsurancePreService;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreSearchVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsuranceSelectVo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
......@@ -132,4 +135,16 @@ public class TEmployeeInsurancePreController {
return tEmployeeInsurancePreService.batchDispatcherInsurance(idList);
}
/**
* 商险派单信息查询
* @author huych
* @date 2025-04-08 14:31:35
**/
@Operation(description = "商险派单入职确认信息查询")
@Inner
@PostMapping("/inner/batchDispatcherInsurance")
public TEmployeeInsuranceSelectVo batchDispatcherInsurance(@RequestBody TEmployeeInsurancePreVo preVo) {
return tEmployeeInsurancePreService.selectInsurancePreInfoList(preVo);
}
}
......@@ -826,4 +826,17 @@ public class TInsuranceDetailController {
return tInsuranceDetailService.getRiskByIdCard(idCardList);
}
/**
* @param preVo
* @Description: 查询商险明细
* @Author: huych
* @Date: 2025/4/8 14:56
* @return: TEmployeeInsuranceSelectVo
**/
@Operation(summary = "查询商险明细", description = "查询商险明细")
@Inner
@PostMapping("/inner/selectInsuranceInfo")
public TEmployeeInsuranceSelectVo ekpUpdateInsuranceDept(@RequestBody TEmployeeInsurancePreVo preVo) {
return tInsuranceDetailService.selectInsuranceInfo(preVo);
}
}
......@@ -24,6 +24,8 @@ import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreSearchVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsurancePreVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TEmployeeInsuranceSelectVo;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
......@@ -78,4 +80,6 @@ public interface TEmployeeInsurancePreService extends IService<TEmployeeInsuranc
*/
void saveInsurancePreInfo(String id,String status);
TEmployeeInsuranceSelectVo selectInsurancePreInfoList(TEmployeeInsurancePreVo preVo);
}
......@@ -551,4 +551,7 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
* @return: com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryRiskListVo
**/
SalaryRiskListVo getRiskByIdCard(List<TSalaryAccount> idCardList);
TEmployeeInsuranceSelectVo selectInsuranceInfo(TEmployeeInsurancePreVo preVo);
}
......@@ -297,6 +297,21 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
}
}
@Override
public TEmployeeInsuranceSelectVo selectInsurancePreInfoList(TEmployeeInsurancePreVo preVo) {
TEmployeeInsuranceSelectVo selectVo = new TEmployeeInsuranceSelectVo();
List<TEmployeeInsurancePre> list = baseMapper.selectList(Wrappers.<TEmployeeInsurancePre>query().lambda()
.eq(TEmployeeInsurancePre::getEmpIdcard, preVo.getEmpIdcard())
.eq(TEmployeeInsurancePre::getBuyStandard, preVo.getBuyStandard())
.eq(TEmployeeInsurancePre::getInsuranceTypeName, preVo.getInsuranceTypeName())
.eq(TEmployeeInsurancePre::getInsuranceCompanyName, preVo.getInsuranceCompanyName())
.eq(TEmployeeInsurancePre::getPolicyStart, preVo.getPolicyStart())
.eq(TEmployeeInsurancePre::getPolicyEnd, preVo.getPolicyEnd())
);
selectVo.setInsurancePreList(list);
return selectVo;
}
/**
* @Description: 获取前端客服的所有项目权限
* @Author: huych
......
......@@ -8243,4 +8243,26 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
}
return returnVo;
}
@Override
public TEmployeeInsuranceSelectVo selectInsuranceInfo(TEmployeeInsurancePreVo preVo) {
TEmployeeInsuranceSelectVo selectVo = new TEmployeeInsuranceSelectVo();
TInsuranceDetail insuranceDetail = baseMapper.selectOne(Wrappers.<TInsuranceDetail>query().lambda()
.eq(TInsuranceDetail::getEmpIdcardNo, preVo.getEmpIdcard())
.eq(TInsuranceDetail::getBuyStandard, preVo.getBuyStandard())
.eq(TInsuranceDetail::getInsuranceTypeName, preVo.getInsuranceTypeName())
.eq(TInsuranceDetail::getInsuranceCompanyName, preVo.getInsuranceCompanyName())
.eq(TInsuranceDetail::getPolicyStart, preVo.getPolicyStart())
.eq(TInsuranceDetail::getPolicyEnd, preVo.getPolicyEnd())
.eq(TInsuranceDetail::getDeleteFlag, CommonConstants.ZERO_INT)
.eq(TInsuranceDetail::getIsOverdue, CommonConstants.ZERO_INT)
.eq(TInsuranceDetail::getIsEffect, CommonConstants.ZERO_INT)
.eq(TInsuranceDetail::getIsUse, CommonConstants.ZERO_INT)
.orderByDesc(TInsuranceDetail::getCreateTime)
.last(CommonConstants.LAST_ONE_SQL)
);
selectVo.setInsuranceDetail(insuranceDetail);
return selectVo;
}
}
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