Commit 3c85015e authored by fangxinjiang's avatar fangxinjiang

派单我司到款单位+户大专及以上学校必填+派单导出-fxj

parent 013f2475
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......@@ -101,6 +104,14 @@ public class ProjectSetInfoVo implements Serializable {
@Schema(description="封面抬头-商险")
private String invoiceTitleInsurance;
/**
* 我司到款单位
*/
@ExcelAttribute(name = "我司到款单位", maxLength = 100)
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("我司到款单位")
private String unitOfOurCompany;
/**
* EKP的 是否BPO: 是 否
*/
......
......@@ -520,6 +520,7 @@
a.STOP_FLAG,
a.INVOICE_TITLE_SALARY,
a.INVOICE_TITLE_INSURANCE,
a.UNIT_OF_OUR_COMPANY,
a.BPO_FLAG,
a.BPO_ENABLE,
a.SERVER_ITEM
......
......@@ -438,7 +438,7 @@ public class SysHouseHoldInfo extends BaseEntity {
private String isSingleYsdPush;
/**
* 推送时,医保完成后才推送社保,默认0否
* 推送时,医保完成后才推送社保,默认0否
*/
@ExcelAttribute(name = "根据医保结果办理养工失" )
@Schema(description ="根据医保结果办理养工失")
......@@ -446,6 +446,15 @@ public class SysHouseHoldInfo extends BaseEntity {
@ExcelProperty("根据医保结果办理养工失")
private String isYsdOkPushYgs;
/**
* 大专及以上学校必填 0否1是(默认是)
*/
@ExcelAttribute(name = "大专及以上学校必填" )
@Schema(description ="大专及以上学校必填")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("大专及以上学校必填")
private String collegeDegreeRequired;
/**
* 户与失败原因关联list
......
......@@ -82,6 +82,15 @@ public class TDispatchInfoExportVo {
@ExcelProperty("项目名称")
private String settleDomainName;
/**
* 项目编码
*/
@ExcelAttribute(name = "项目编码", maxLength = 50)
@Schema(description = "项目编码" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("项目编码" )
private String settleDomainCode;
@ExcelAttribute(name = "员工类型", isDataId = true, dataType = ExcelAttributeConstants.EMP_NATRUE)
@Schema(description = "员工类型")
@HeadFontStyle(fontHeightInPoints = 11)
......
......@@ -288,4 +288,13 @@ public class TSocialHouseholdInsertVo extends RowIndex implements Serializable {
@ExcelProperty("医保推送税友接口通道")
private String isSingleYsdPush;
/**
* 大专及以上学校必填 0否1是(默认是)
*/
@ExcelAttribute(name = "大专及以上学校必填", maxLength = 1, errorInfo = "大专及以上学校必填不能为空")
@Schema(description ="大专及以上学校必填")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("大专及以上学校必填")
private String collegeDegreeRequired;
}
......@@ -288,4 +288,13 @@ public class TSocialHouseholdUpdateVo extends RowIndex implements Serializable {
@ExcelProperty("医保推送税友接口通道")
private String isSingleYsdPush;
/**
* 大专及以上学校必填 0否1是(默认是)
*/
@ExcelAttribute(name = "大专及以上学校必填", maxLength = 1, errorInfo = "社保户时,大专及以上学校必填不能为空")
@Schema(description ="大专及以上学校必填")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("大专及以上学校必填")
private String collegeDegreeRequired;
}
......@@ -1086,6 +1086,18 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
}
household.setOrganId(dicMap.get(household.getOrganName()));
// 设置大专及以上学校必填字段,默认为1(是)
// 导入新增只支持社保户,所以该字段必填
if (Common.isEmpty(excel.getCollegeDegreeRequired())) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), "'大专及以上学校必填'不能为空",excel));
continue;
}
if (!CommonConstants.IS_TRUE.equals(excel.getCollegeDegreeRequired())
&& !CommonConstants.IS_FALSE.equals(excel.getCollegeDegreeRequired())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), "'大专及以上学校必填'应为是或否",excel));
continue;
}
household.setCollegeDegreeRequired(excel.getCollegeDegreeRequired().equals(CommonConstants.IS_TRUE) ? "1" : "0");
baseMapper.insert(household);
// 同步审核权限、办理权限
this.saveAuditUserOrHandleUser(household, CommonConstants.ZERO_STRING);
......@@ -1358,6 +1370,17 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
continue;
}
}
//大专及以上学校必填 值校验
// 只有账户性质为社保户(0)时才必填
if (Common.isEmpty(excel.getCollegeDegreeRequired())) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), "社保户时,'大专及以上学校必填'不能为空",excel));
continue;
}
if (!CommonConstants.IS_TRUE.equals(excel.getCollegeDegreeRequired())
&& !CommonConstants.IS_FALSE.equals(excel.getCollegeDegreeRequired())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), "'大专及以上学校必填'应为是或否",excel));
continue;
}
// 新老数据审核人办理人不同,先删除,再添加
if (Common.isNotNull(excel.getAuditUserName()) && !excel.getAuditUserName().equals(info.getAuditUserName())) {
tSocialfundHouseResService.deleteAuditUser(info);
......@@ -1518,6 +1541,10 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
if (Common.isNotNull(excel.getMediclPassword())) {
info.setMediclPassword(excel.getMediclPassword());
}
// 设置大专及以上学校必填字段
if (Common.isNotNull(excel.getCollegeDegreeRequired())) {
info.setCollegeDegreeRequired(excel.getCollegeDegreeRequired().equals(CommonConstants.IS_TRUE) ? "1" : "0");
}
if (Common.isNotNull(excel.getAuditUserName())) {
SysUser auditUser = userMap.get(excel.getAuditUserName());
info.setAuditUser(auditUser.getUserId());
......
......@@ -498,6 +498,8 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
Map<String, SysBaseSetInfo> socialHoldMap = new HashMap<>();
Map<String, SysBaseSetInfo> fundHoldMap = new HashMap<>();
initHoldInfo(socialholds, fundholds, socialHoldMap, fundHoldMap);
// 获取社保户配置信息(用于校验学历必填)
Map<String, SysHouseHoldInfo> socialHouseHoldInfoMap = getSocialHouseHoldInfoMap(socialholds);
// 员工档案
Map<String, EmpAddDispatchVo> empAddsMap = new HashMap<>();
//员工合同
......@@ -543,6 +545,8 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
socialSet = socialHoldMap.get(excel.getSocialHousehold());
socialFund = getSocialFund(socialFundMap, excel);
setInfoVo = getSetInfoVo(projectVoMap, excel.getSettleDomainCode());
// 获取社保户配置信息
SysHouseHoldInfo socialHouseHoldInfo = Common.isEmpty(socialHouseHoldInfoMap) ? null : socialHouseHoldInfoMap.get(excel.getSocialHousehold());
if (Common.isNotNull(empVoMap)) {
empVo = empVoMap.get(excel.getEmpIdcard());
}
......@@ -624,7 +628,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
continue;
}
// 数据合法情况
if (validImport(errorMessageList, excel, setInfoVo, socialFund, empVo, socialSet, fundSet,autoFlag)) {
if (validImport(errorMessageList, excel, setInfoVo, socialFund, empVo, socialSet, fundSet,autoFlag, socialHouseHoldInfo)) {
excelVOTemp.put(excel.getRowIndex().toString(), excel.getEmpIdcard());
continue;
}
......@@ -636,7 +640,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
// 初始化新增信息:档案、项目档案、员工合同
initAddInfo(empAddsMap, contractsMap, projectsMap, empVo, excel, user, setInfoVo, socialSet, projectsUpdateMap);
// 新增社保
initSocialAddInfo(socialsMap, empVo, socialSet, excel, socialFundMap, dispatchPart);
initSocialAddInfo(socialsMap, empVo, socialSet, excel, socialFundMap, dispatchPart, setInfoVo);
// 新增公积金
if (initFundAddInfo(errorMessageList, fundsMap, empVo, fundSet, excel)) {
excelVOTemp.put(excel.getRowIndex().toString(), excel.getEmpIdcard());
......@@ -644,7 +648,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
// 新增派单信息
excel.setOrderId(orderId);
if (initDispatchAddInfo(user, dispatchMap, empVo, socialSet, fundSet, excel, socialFund, injury)) {
if (initDispatchAddInfo(user, dispatchMap, empVo, socialSet, fundSet, excel, socialFund, injury, setInfoVo)) {
excelVOTemp.put(excel.getRowIndex().toString(), excel.getEmpIdcard());
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_ITEM_EMPTY_EXISTS)));
continue;
......@@ -679,6 +683,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
Common.clear(socialFundAddMap);
Common.clear(socialHoldMap);
Common.clear(fundHoldMap);
Common.clear(socialHouseHoldInfoMap);
Common.clear(excelVOTemp);
}
......@@ -1266,6 +1271,8 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
socialFund.setUnitBigailmentMoney(null);
}
}
// 派增社保时,从项目信息中获取"我司到款单位"
socialFund.setUnitOfOurCompany(setInfoVo.getUnitOfOurCompany());
}
if (Common.isNotNull(excel.getProvidentHousehold())) {
socialFund.setSettleDomainFund(setInfoVo.getId());
......@@ -1360,7 +1367,8 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
SysBaseSetInfo fundSet,
TDispatchImportVo excel,
TSocialFundInfo socialFund,
boolean injury) {
boolean injury,
ProjectSetInfoVo setInfoVo) {
// 是否SSC:SSC派单组-1659015946137583618L SSC审核组-1659016108176130049L
long roleId = 1659015946137583618L;
boolean isSsc = false;
......@@ -1492,6 +1500,13 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
// 生成申请编码
dispatch.setApplyNo(getApplyCode());
dispatch.setPid(excel.getDispatchId());
// 派增社保时,从项目信息中获取"我司到款单位"
if (CommonConstants.ZERO_STRING.equals(dispatch.getType())
&& Common.isNotNull(excel.getSocialHousehold())
&& null != excel
&& Common.isNotNull(setInfoVo)) {
dispatch.setUnitOfOurCompany(setInfoVo.getUnitOfOurCompany());
}
dispatchMap.put(excel.getEmpIdcard(), dispatch);
return false;
}
......@@ -1737,7 +1752,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
DispatchEmpVo empVo,
SysBaseSetInfo socialSet,
TDispatchImportVo excel,
Map<String, TSocialFundInfo> socialFundMap, boolean dispatchPart) {
Map<String, TSocialFundInfo> socialFundMap,
boolean dispatchPart,
ProjectSetInfoVo setInfoVo) {
TSocialInfo social;
if (Common.isNotNull(excel.getSocialHousehold())) {
social = new TSocialInfo();
......@@ -1959,6 +1976,10 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
initHandleStatus(excel, socialFundMap, social, dispatchPart);
//单独处理工伤派增时对应的各种数据
handleInjury(social);
// 派增社保时,从项目信息中获取"我司到款单位"
if (Common.isNotNull(setInfoVo)) {
social.setUnitOfOurCompany(setInfoVo.getUnitOfOurCompany());
}
socials.put(excel.getEmpIdcard(), social);
}
}
......@@ -2416,12 +2437,35 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
return empVoMap;
}
/**
* 获取社保户配置信息Map(用于校验学历必填)
* @param socialholds 社保户名称列表
* @return Map<社保户名称, SysHouseHoldInfo>
*/
private Map<String, SysHouseHoldInfo> getSocialHouseHoldInfoMap(List<String> socialholds) {
if (Common.isEmpty(socialholds)) {
return null;
}
List<SysHouseHoldInfo> list = houseHoldInfoMapper.selectList(Wrappers.<SysHouseHoldInfo>query().lambda()
.in(SysHouseHoldInfo::getName, socialholds)
.eq(SysHouseHoldInfo::getType, CommonConstants.ZERO_STRING) // 0表示社保户
.eq(SysHouseHoldInfo::getDelFlag, CommonConstants.ZERO_STRING)); // 0表示未删除
if (Common.isNotNull(list)) {
Map<String, SysHouseHoldInfo> map = new HashMap<>();
for (SysHouseHoldInfo info : list) {
map.put(info.getName(), info);
}
return map;
}
return null;
}
//autoFalg "0" 为自动化
private boolean validImport(List<ErrorMessage> errorMessageList,
TDispatchImportVo excel,
ProjectSetInfoVo setInfoVo,
TSocialFundInfo socialFund,
DispatchEmpVo empVo, SysBaseSetInfo socialSet, SysBaseSetInfo fundSet,String autoFlag) {
DispatchEmpVo empVo, SysBaseSetInfo socialSet, SysBaseSetInfo fundSet,String autoFlag, SysHouseHoldInfo socialHouseHoldInfo) {
if (Common.isNotNull(excel.getSocialHousehold()) && Common.isEmpty(excel.getPaymentType())) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_NOT_EMPTY)));
return true;
......@@ -2492,7 +2536,11 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
if (Common.isEmpty(excel.getEducationName())) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_EMP_EDUCATION_NOT_EMPTY)));
return true;
} else if (Common.isEmpty(excel.getSchoolName())) {
}
// 根据社保户配置的collegeDegreeRequired 字段为1(是)时必填学校
if (Common.isNotNull(socialHouseHoldInfo)
&& CommonConstants.ONE_STRING.equals(socialHouseHoldInfo.getCollegeDegreeRequired())) {
if (Common.isNotNull(excel.getEducationName()) && Common.isEmpty(excel.getSchoolName())) {
educationName = excel.getEducationName();
if ((educationName.contains("大专")
|| educationName.contains("本科")
......@@ -2502,6 +2550,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
return true;
}
}
}
if (Common.isNotNull(excel.getContractName()) && validContractInfo(errorMessageList, excel)) {
return true;
......@@ -2555,7 +2604,10 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
if (Common.isEmpty(empVo.getHignEducation()) && Common.isEmpty(excel.getEducationName())) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_EMP_EDUCATION_NOT_EMPTY)));
return true;
} else if (Common.isEmpty(excel.getSchoolName()) && Common.isEmpty(empVo.getSchool())) {
}
// 根据社保户配置的collegeDegreeRequired字段判断是否必填学校
if (Common.isNotNull(socialHouseHoldInfo) && CommonConstants.ONE_STRING.equals(socialHouseHoldInfo.getCollegeDegreeRequired())) {
if (Common.isEmpty(excel.getSchoolName()) && Common.isEmpty(empVo.getSchool())) {
educationName = excel.getEducationName();
if (Common.isEmpty(educationName)) {
educationName = empVo.getHignEducation();
......@@ -2577,6 +2629,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
}
}
}
}
if (Common.isEmpty(empVo.getEmpRegisType()) && Common.isEmpty(excel.getEmpRegisType())) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_EMP_REGISTYPE_NOT_EMPTY)));
return true;
......
......@@ -75,6 +75,7 @@
<result property="isSingleYsdPush" column="IS_SINGLE_YSD_PUSH"/>
<!--MVP1.7.19 2026-01-20是否办理医保完成后才允许推送社保-->
<result property="isYsdOkPushYgs" column="IS_YSD_OK_PUSH_YGS"/>
<result property="collegeDegreeRequired" column="COLLEGE_DEGREE_REQUIRED"/>
</resultMap>
<resultMap id="sysHouseHoldSingleInfoMap" type="com.yifu.cloud.plus.v1.yifu.social.entity.SysHouseHoldInfo">
......@@ -133,10 +134,14 @@
,a.IS_SINGLE_YGS_PUSH
,a.IS_SINGLE_YSD_PUSH
,a.IS_YSD_OK_PUSH_YGS
,a.COLLEGE_DEGREE_REQUIRED
</sql>
<sql id="sysHouseHoldInfo_where">
<if test="sysHouseHoldInfo != null">
<if test="sysHouseHoldInfo.collegeDegreeRequired != null and sysHouseHoldInfo.collegeDegreeRequired.trim() != ''">
AND a.COLLEGE_DEGREE_REQUIRED = #{sysHouseHoldInfo.collegeDegreeRequired}
</if>
<if test="sysHouseHoldInfo.id != null and sysHouseHoldInfo.id.trim() != ''">
AND a.ID = #{sysHouseHoldInfo.id}
</if>
......
......@@ -131,6 +131,7 @@
<result property="empType" column="EMP_TYPE"/>
<result property="belongUnitName" column="BELONG_UNIT_NAME"/>
<result property="settleDomainName" column="SETTLE_DOMAIN_NAME"/>
<result property="settleDomainCode" column="SETTLE_DOMAIN_CODE"/>
<result property="type" column="TYPE"/>
<result property="socialHouseholdName" column="SOCIAL_HOUSEHOLD_NAME"/>
<result property="providentHouseholdName" column="PROVIDENT_HOUSEHOLD_NAME"/>
......@@ -825,6 +826,7 @@
a.EMP_TYPE,
a.BELONG_UNIT_NAME,
a.SETTLE_DOMAIN_NAME,
a.SETTLE_DOMAIN_CODE,
case when a.TYPE = 0 then "派增"
when a.TYPE = 1 then "派减"
else null end as "TYPE" ,
......
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