Commit 795abba1 authored by zhaji's avatar zhaji

Merge branch 'develop' into feature-zhaji

parents 1bf7b87d ceb2d549
......@@ -55,4 +55,10 @@ public class ValidityConstants {
/** 全汉字 最多20位 规则 */
public static final String CHINESE_PATTERN_20 = "^[\\u4E00-\\u9FA5]{1,20}";
/** 最多20位 规则 */
public static final String PATTERN_20 = "^.{1,20}$";
/** 最多32位 规则 */
public static final String PATTERN_32 = "^.{1,32}$";
/** 最多50位 规则 */
public static final String PATTERN_50 = "^.{1,50}$";
}
......@@ -201,6 +201,7 @@ public class ValidityUtil {
}
return str.matches(ValidityConstants.CHINESE_PATTERN) ;
}
/**
* 验证字符串是否全是汉字 最多20位
*
......@@ -215,6 +216,48 @@ public class ValidityUtil {
return str.matches(ValidityConstants.CHINESE_PATTERN_20) ;
}
/**
* 验证字符串 最多20位
*
* @author licancan
* @param str
* @return {@link boolean}
*/
public static boolean validate20(final String str){
if(Common.isEmpty(str)){
return Boolean.FALSE;
}
return str.matches(ValidityConstants.PATTERN_20) ;
}
/**
* 验证字符串 最多32位
*
* @author licancan
* @param str
* @return {@link boolean}
*/
public static boolean validate32(final String str){
if(Common.isEmpty(str)){
return Boolean.FALSE;
}
return str.matches(ValidityConstants.PATTERN_32) ;
}
/**
* 验证字符串 最多50位
*
* @author licancan
* @param str
* @return {@link boolean}
*/
public static boolean validate50(final String str){
if(Common.isEmpty(str)){
return Boolean.FALSE;
}
return str.matches(ValidityConstants.PATTERN_50) ;
}
/**
* 校验用户姓名是否是初始化的值
*
......
......@@ -344,9 +344,20 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
}
if (byId.getBuyHandleStatus() == CommonConstants.FOUR_INT && byId.getBuyType() != CommonConstants.FOUR_INT){
// 身份证号位数校验(18 位合法)
if (ValidityUtil.validateIDCard(param.getEmpIdcardNo())){
if (!ValidityUtil.validateIDCard(param.getEmpIdcardNo())){
return R.failed(InsurancesConstants.EMP_IDCARD_NO_NOT_LEGITIMATE);
}
//校验身份合法
TCheckIdCard checkIdCard = new TCheckIdCard();
checkIdCard.setName(param.getEmpName());
checkIdCard.setIdCard(param.getEmpIdcardNo());
R<TCheckIdCard> tCheckIdCardR = checkDaprUtil.checkIdCardSingle(checkIdCard);
if (null != tCheckIdCardR && tCheckIdCardR.getCode() == CommonConstants.SUCCESS){
TCheckIdCard data = tCheckIdCardR.getData();
if (CommonConstants.ONE_INT != data.getIsTrue()){
return R.failed(InsurancesConstants.EMP_ID_CARD_NO_NOT_FIT);
}
}
// 保单开始日期 > 当前派单日期
if(!LocalDateUtil.isDate(param.getPolicyStart(),LocalDateUtil.NORM_DATE_PATTERN)){
return R.failed(InsurancesConstants.POLICY_START_PARSE_ERROR);
......
......@@ -101,7 +101,7 @@ public class TDispatchInfo extends BaseEntity {
@ExcelProperty("员工类型" )
private String empType;
/**
* 员工电话
* 员工电话 (手机号码)
*/
@Length(max = 32, message = "员工电话 不能超过32个字符" )
@ExcelAttribute(name = "员工电话", maxLength = 32)
......@@ -520,6 +520,50 @@ public class TDispatchInfo extends BaseEntity {
private String belongUnitName;
/**
* 学历
*/
@ExcelAttribute(name = "学历", maxLength = 32)
@Schema(description = "学历", name = "contractName")
private String educationName;
/**
* 试用期(单位月)
*/
@Length(max = 2, message = "试用期 不能超过2 个字符" )
@ExcelAttribute(name = "试用期", maxLength = 32)
@Schema(description = "试用期" )
@ExcelProperty("试用期" )
private String tryPeriod;
/**
* 身份证省
*/
@ExcelAttribute(name = "身份证省" ,isArea = true)
@Schema(description = "身份证省" )
@ExcelProperty("身份证省" )
private String idCardProvince;
/**
* 身份证市
*/
@ExcelAttribute(name = "身份证市" ,isArea = true,parentField = "idCardProvince")
@Schema(description = "身份证市" )
@ExcelProperty("身份证市" )
private String idCardCity;
/**
* 身份证县
*/
@ExcelAttribute(name = "身份证县",isArea = true,parentField = "idCardCity")
@Schema(description = "身份证县" )
@ExcelProperty("身份证县" )
private String idCardTown;
/**
* 身份证所在地
*/
@ExcelAttribute(name = "身份证所在地")
@Schema(description = "身份证所在地" )
@ExcelProperty("身份证所在地" )
private String idCardAddress;
}
......@@ -964,18 +964,18 @@ public class TSocialFundInfo extends BaseEntity {
private BigDecimal personalFundSum;
/**
* 社保状态:派增(0待审核、1待办理、2办理中 3办理成功、4部分办理失败 5 办理失败)、派减(6待审核 7待办理 8办理成功 9 办理失败)
* 社保状态:派增(0待审核、1待办理、2办理中 3办理成功、4部分办理失败 5 办理失败)、派减(6待审核 7待办理 8办理成功 9 办理失败 10 审核不通过
*/
@ExcelAttribute(name = "社保状态", maxLength = 1)
@Schema(description = "社保状态:派增(0待审核、1待办理、2办理中 3办理成功、4部分办理失败 5 办理失败)、派减(6待审核 7待办理 8办理成功 9 办理失败)" )
@Schema(description = "社保状态:派增(0待审核、1待办理、2办理中 3办理成功、4部分办理失败 5 办理失败)、派减(6待审核 7待办理 8办理成功 9 办理失败10 审核不通过)" )
@ExcelProperty("社保派增状态" )
private String socialStatus;
/**
* 公积金状态:派增(0待审核、1待办理、3办理成功、4办理失败)、派减(5待审核 6待办理 7 办理成功 8 办理失败)
* 公积金状态:派增(0待审核、1待办理、3办理成功、4办理失败)、派减(5待审核 6待办理 7 办理成功 8 办理失败 9 审核不通过
*/
@Length(max = 1, message = "公积金状态 不能超过1个字符" )
@ExcelAttribute(name = "公积金状态", maxLength = 1)
@Schema(description = "公积金状态:派增(0待审核、1待办理、3办理成功、4办理失败)、派减(5待审核 6待办理 7 办理成功 8 办理失败)" )
@Schema(description = "公积金状态:派增(0待审核、1待办理、3办理成功、4办理失败)、派减(5待审核 6待办理 7 办理成功 8 办理失败 9 审核不通过)" )
@ExcelProperty("公积金状态" )
private String fundStatus;
......
......@@ -61,6 +61,7 @@ import java.io.InputStream;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
import static java.time.format.DateTimeFormatter.ofPattern;
......@@ -774,6 +775,11 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
dispatch.setSettleDomain(excel.getSettleDomainId());
dispatch.setBelongUnit(excel.getCustomerId());
dispatch.setBelongUnitName(excel.getCustomerName());
dispatch.setEducationName(excel.getEducationName());
dispatch.setIdCardProvince(excel.getIdCardProvince());
dispatch.setIdCardCity(excel.getIdCardCity());
dispatch.setIdCardTown(excel.getIdCardTown());
dispatch.setIdCardAddress(excel.getIdCardAddress());
// 封装合同信息 默认取值派单的
dispatch.setContractStart(excel.getContractStart());
dispatch.setContractEnd(excel.getContractEnd());
......@@ -796,6 +802,11 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
dispatch.setFileCity(empVo.getFileCity());
dispatch.setFileTown(empVo.getFileTown());
dispatch.setContractId(empVo.getContractId());
if (Common.isNotNull(empVo.getIdProvince())){
dispatch.setIdCardProvince(Common.isNotNullToStr(empVo.getIdProvince()));
dispatch.setIdCardCity(Common.isNotNullToStr(empVo.getIdCity()));
dispatch.setIdCardTown(Common.isNotNullToStr(empVo.getIdTown()));
}
}
dispatchMap.put(excel.getEmpIdcard(),dispatch);
......@@ -1162,6 +1173,12 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
contract.setSituation(excel.getContractType());
contract.setEmpIdcard(excel.getEmpIdcard());
contract.setEmpName(excel.getEmpName());
if (Common.isNotNull(excel.getSocialHousehold())){
contract.setContractParty(excel.getSocialHousehold());
}
if (Common.isEmpty(excel.getSocialHousehold()) && Common.isNotNull(excel.getProvidentHousehold())){
contract.setContractParty(excel.getSocialHousehold());
}
if (Common.isNotNull(empVo)) {
contract.setEmpId(empVo.getId());
contract.setEmpNo(empVo.getEmpCode());
......@@ -1360,7 +1377,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
if (Common.isNotNull(socialFundMap)){
socialFund = socialFundMap.get(excel.getEmpIdcard());
if (Common.isNotNull(socialFund)){
// 社保状态:派增(0待审核、1待办理、2办理中 3办理成功、4部分办理失败 5 办理失败)、派减(6待审核 7待办理 8办理成功 9 办理失败)
// 社保状态:派增(0待审核、1待办理、2办理中 3办理成功、4部分办理失败 5 办理失败)、派减(6待审核 7待办理 8办理成功 9 办理失败 10 审核不通过
if (Common.isNotNull(excel.getSocialHousehold())
&& (Common.isEmpty(socialFund.getSocialStatus())
|| CommonConstants.SIX_STRING.equals(socialFund.getSocialStatus())
......@@ -1371,7 +1388,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_EXISTING)));
return true;
}
// 公积金状态:派增(0待审核、1待办理、3办理成功、4办理失败)、派减(5待审核 6待办理 7 办理成功 8 办理失败)
// 公积金状态:派增(0待审核、1待办理、3办理成功、4办理失败)、派减(5待审核 6待办理 7 办理成功 8 办理失败 9 审核不通过
if (Common.isNotNull(excel.getProvidentHousehold())
&& (CommonConstants.FIVE_STRING.equals(socialFund.getFundStatus())
&& CommonConstants.SIX_STRING.equals(socialFund.getFundStatus())
......@@ -1691,69 +1708,100 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
errorList.add(new ErrorMessage(-1, CommonConstants.PARAM_IS_NOT_ERROR));
return errorList;
}
List<TDispatchInfo> dispatchInfoList = baseMapper.selectList(Wrappers.<TDispatchInfo>query().lambda().in(TDispatchInfo::getId, idsList));
if (Common.isNotNull(dispatchInfoList)) {
// 获取所有派单信息
List<TDispatchInfo> dispatchs = baseMapper.selectList(Wrappers.<TDispatchInfo>query().lambda().in(TDispatchInfo::getId, idsList));
if (Common.isNotNull(dispatchs)) {
// 获取所有派单查询信息
Map<String,TSocialFundInfo> socialFundMap = new HashMap<>();
initSocialFundMap(dispatchs,socialFundMap);
try {
TSocialInfo socialInfo = null;
TProvidentFund providentFund = null;
String remark = "";
TSocialInfo socialInfo;
TProvidentFund providentFund;
String remark;
TAuditInfo auditInfo = null;
R<Boolean> resR = null;
boolean booleanFlag;
TEmployeeInfo employee = null;
boolean repeatFlag = false;
for (TDispatchInfo dispatchInfo : dispatchInfoList) {
TSocialFundInfo sf;
for (TDispatchInfo dis : dispatchs) {
remark = "";
employee = new TEmployeeInfo();
sf = socialFundMap.get(dis.getEmpIdcard());
if (Common.isEmpty(sf)){
errorList.add(new ErrorMessage(-1, "找不到员工社保公积金查询数据:" + dis.getEmpName()));
continue;
}
//社保状态处理
if (Common.isNotNull(dispatchInfo.getSocialId())) {
if (Common.isNotNull(dis.getSocialId())) {
remark = "社保";
socialInfo = socialMapper.selectById(dispatchInfo.getSocialId());
if (null == socialInfo && Common.isNotNull(dispatchInfo.getSocialId())) {
errorList.add(new ErrorMessage(-1, "找不到员工社保派单数据:" + dispatchInfo.getEmpName()));
socialInfo = socialMapper.selectById(dis.getSocialId());
if (null == socialInfo && Common.isNotNull(dis.getSocialId())) {
errorList.add(new ErrorMessage(-1, "找不到员工社保派单数据:" + dis.getEmpName()));
continue;
}
if (null != socialInfo && Common.isNotNull(dispatchInfo.getSocialId())) {
//审核通过
if (CommonConstants.ZERO_INT == flag.intValue() && CommonConstants.dingleDigitStrArray[0].equals(dispatchInfo.getType())) {
socialInfo.setAuditStatus(CommonConstants.ONE_STRING);
//审核不通过
} else if (CommonConstants.ONE_INT == flag.intValue()) {
// 作废更新:社保状态、同步预估数据 8 审核不通过直接作废 TODO
if (CommonConstants.dingleDigitStrArray[0].equals(dispatchInfo.getType())){
if (null != socialInfo) {
// 派增审核
if (CommonConstants.dingleDigitStrArray[0].equals(dis.getType())){
//派增审核通过
if (CommonConstants.ZERO_INT == flag.intValue()) {
socialInfo.setAuditStatus(CommonConstants.ONE_STRING);
// 待办理
sf.setSocialAddStatus(CommonConstants.ONE_STRING);
sf.setSocialStatus(CommonConstants.ONE_STRING);
//派增审核不通过 需要处理预估数据
} else if (CommonConstants.ONE_INT == flag.intValue()) {
socialInfo.setDeleteFlag(CommonConstants.ONE_STRING);
// 作废更新:社保状态、同步预估数据 审核不通过直接作废 TODO
socialInfo.setAuditStatus(CommonConstants.TWO_STRING);
clearSocialAddInfo(sf, dis);
}
}
// 派减审核
if (CommonConstants.dingleDigitStrArray[1].equals(dis.getType())){
//派增审核通过
if (CommonConstants.ZERO_INT == flag.intValue()) {
socialInfo.setAuditStatus(CommonConstants.ONE_STRING);
// 待办理
sf.setSocialAddStatus(CommonConstants.ONE_STRING);
sf.setSocialStatus(CommonConstants.ONE_STRING);
//派增审核不通过 需要处理预估数据
} else if (CommonConstants.ONE_INT == flag.intValue()) {
//派增作废同时删除社保或公积金,派减对应社保公积金状态修改 TODO
socialInfo.setDeleteFlag(CommonConstants.ONE_STRING);
// 作废更新:社保状态、同步预估数据 8 审核不通过直接作废 TODO
if (CommonConstants.dingleDigitStrArray[0].equals(dis.getType())){
socialInfo.setAuditStatus(CommonConstants.TWO_STRING);
}
}
//派增作废同时删除社保或公积金,派减对应社保公积金状态修改 TODO
initSocialDestroy(dispatchInfo, socialInfo);
}
socialInfo.setAuditTime(new Date());
socialInfo.setAuditUser(user.getId());
socialMapper.updateById(socialInfo);
}
}
//公积金状态处理
if (Common.isNotNull(dispatchInfo.getFundId())) {
if (!"".equals(remark)) {
if (Common.isNotNull(dis.getFundId())) {
if (Common.isEmpty(remark)) {
remark += "、公积金";
} else {
remark += "公积金";
}
providentFund = fundMapper.selectById(dispatchInfo.getFundId());
if (null == providentFund && Common.isNotNull(dispatchInfo.getFundId())) {
errorList.add(new ErrorMessage(-1, "找不到员工公积金派单数据:" + dispatchInfo.getEmpName()));
providentFund = fundMapper.selectById(dis.getFundId());
if (null == providentFund && Common.isNotNull(dis.getFundId())) {
errorList.add(new ErrorMessage(-1, "找不到员工公积金派单数据:" + dis.getEmpName()));
continue;
}
if (null != providentFund && Common.isNotNull(dispatchInfo.getFundId())) {
if (null != providentFund && Common.isNotNull(dis.getFundId())) {
// 审核通过
if (CommonConstants.ZERO_INT == flag.intValue()) {
if (CommonConstants.dingleDigitStrArray[0].equals(dispatchInfo.getType())){
if (CommonConstants.dingleDigitStrArray[0].equals(dis.getType())){
providentFund.setAuditStatus(CommonConstants.ONE_STRING);
}
// 审核不通过
} else if (CommonConstants.ONE_INT == flag.intValue()) {
// 作废更新:公积金状态、同步档案的公积金状态、同步预估数据 fxj 20200928 审核不通过直接作废
if (CommonConstants.dingleDigitStrArray[0].equals(dispatchInfo.getType())){
if (CommonConstants.dingleDigitStrArray[0].equals(dis.getType())){
providentFund.setAuditStatus(CommonConstants.TWO_STRING);
}
}
......@@ -1765,10 +1813,10 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
// 审核不通过 直接作废 要考虑 部分派增的情况
if (CommonConstants.ONE_INT == flag.intValue()) {
dispatchInfo.setDeleteFlag(CommonConstants.ONE_STRING);
dis.setDeleteFlag(CommonConstants.ONE_STRING);
}
//派单类型信息拼接
if (CommonConstants.ZERO_STRING.equals(dispatchInfo.getType())) {
if (CommonConstants.ZERO_STRING.equals(dis.getType())) {
remark += "派增";
} else {
remark += "派减";
......@@ -1780,25 +1828,25 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
remark += "审核不通过:" + auditRemark;
}
//记录处理意见到派单 最新的意见会覆盖之前的,详情 到流程中查询
dispatchInfo.setHandleRemark(null == auditRemark ? "" : auditRemark);
dispatchInfo.setAuditRemark(null == auditRemark ? "" : auditRemark);
dis.setHandleRemark(null == auditRemark ? "" : auditRemark);
dis.setAuditRemark(null == auditRemark ? "" : auditRemark);
initAuditInfo(auditInfo, remark, auditStatus, user,remark);
auditInfo.setDispatchInfoId(dispatchInfo.getId());
auditInfo.setDispatchInfoId(dis.getId());
//更新派单状态
if (CommonConstants.ZERO_INT == flag.intValue()) {
//审核通过
dispatchInfo.setStatus(CommonConstants.TWO_STRING);
dis.setStatus(CommonConstants.TWO_STRING);
auditInfo.setAuditStatus(CommonConstants.TWO_STRING);
} else if (CommonConstants.ONE_INT == flag.intValue()) {
//审核不通过
dispatchInfo.setStatus(CommonConstants.THREE_STRING);
dis.setStatus(CommonConstants.THREE_STRING);
auditInfo.setAuditStatus(CommonConstants.THREE_STRING);
}
//新增审核记录信息
auditInfoMapper.insert(auditInfo);
dispatchInfo.setAuditUser(user.getId());
dispatchInfo.setAuditTime(new Date());
baseMapper.updateById(dispatchInfo);
dis.setAuditUser(user.getId());
dis.setAuditTime(new Date());
baseMapper.updateById(dis);
}
} catch (Exception e) {
log.error(DispatchConstants.DISPATCH_AUDIT_ERROR , e);
......@@ -1811,27 +1859,14 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
return errorList;
}
/**
* 派增作废同时删除社保或公积金,派减对应社保公积金状态修改 TODO 更新社保公积金查询列表
* @Author fxj
* @Date 2020-09-28
* @param dispatchInfo
* @param socialInfo
* @return
**/
private void initSocialDestroy(TDispatchInfo dispatchInfo,
TSocialInfo socialInfo) {
//派减作废 同步处理 社保公积金查询状态
if (CommonConstants.dingleDigitStrArray[1].equals(dispatchInfo.getType())) {
socialInfo.setReduceCan(CommonConstants.dingleDigitStrArray[0]);//改成可派减状态
// 派增-同步预估库数据 TODO
//forecastLibraryService.createForecastSocialOrFund(dispatchInfo.getEmpIdcard(), socialInfo, null);
} else {
socialInfo.setDeleteFlag(CommonConstants.ONE_STRING);
// 派减-同步预估库数据
// 获取社保派减信息-仅含有id、社保减少日期,公积金减少日期 TODO
//forecastLibraryService.reduceForecastSocialOrFund(dispatchInfo.getEmpIdcard(), socialReduceDate, null);
private void initSocialFundMap(List<TDispatchInfo> dispatchs,Map<String, TSocialFundInfo> socialFundMap) {
List<String> idCards = dispatchs.stream().map(TDispatchInfo::getEmpIdcard).collect(Collectors.toList());
if (Common.isNotNull(idCards)){
List<TSocialFundInfo> socialFunds = socialFundMapper.selectList(Wrappers.<TSocialFundInfo>query().lambda()
.in(TSocialFundInfo::getEmpIdcard,idCards));
if (Common.isNotNull(socialFunds)){
socialFundMap = socialFunds.stream().collect(Collectors.toMap(k->k.getEmpIdcard(),k->k));
}
}
}
}
......@@ -85,7 +85,15 @@
<result property="belongUnitName" column="BELONG_UNIT_NAME"/>
<result property="dispatchCode" column="DISPATCH_CODE"/>
<result property="contractSubName" column="CONTRACT_SUB_NAME"/>
<result property="contractId" column="CONTRACT_ID"/>
<result property="contractId" column="CONTRACT_ID"/>
<result property="educationName" column="EDUCATION_NAME"/>
<result property="tryPeriod" column="TRY_PERIOD"/>
<result property="idCardProvince" column="ID_CARD_PROVINCE"/>
<result property="idCardCity" column="ID_CARD_CITY"/>
<result property="idCardTown" column="ID_CARD_TOWN"/>
<result property="idCardAddress" column="ID_CARD_ADDRESS"/>
</resultMap>
......@@ -152,7 +160,13 @@
a.DISPATCH_CODE,
a.SETTLE_DOMAIN_CODE,
a.CONTRACT_SUB_NAME,
a.CONTRACT_ID
a.CONTRACT_ID,
a.EDUCATION_NAME,
a.TRY_PERIOD,
a.ID_CARD_PROVINCE,
a.ID_CARD_CITY,
a.ID_CARD_TOWN,
a.ID_CARD_ADDRESS
</sql>
<sql id="tDispatchInfo_where">
<if test="tDispatchInfo != null">
......
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