Commit 351e02db authored by fangxinjiang's avatar fangxinjiang

批量新增导入

parent ce78bcad
......@@ -337,10 +337,12 @@ public interface ErrorCodes {
String EMP_DISPATCH_SOCIAL_NOT_EMPTY = "emp.dispatch.social.not.empty";
/**
* 派单员工公积金相关信息不可为空
* 派单信息不可为空
*/
String EMP_DISPATCH_FUND_NOT_EMPTY = "emp.dispatch.fund.not.empty";
/**
* 新增异常:存在派增待审核|待办理|办理成功但未派减办理成功的社保数据
*/
......@@ -370,10 +372,6 @@ public interface ErrorCodes {
* 新增异常:未找到对应公积金比例配置信息
*/
String EMP_DISPATCH_FUND_PERCENT_NOT_EXIST = "emp.dispatch.fund.percent.not.exist";
/**
* 新增异常:单次导入不支持社保公积金分开派单
*/
String EMP_DISPATCH_SOCIAL_EXIST = "emp.dispatch.social.exist";
/**
* 新增异常:必须派单社保或公积金,不支持单派档案
*/
......
......@@ -129,8 +129,6 @@ emp.dispatch.fund.hold.not.exist=\u65B0\u589E\u5F02\u5E38\uFF1A\u672A\u627E\u523
emp.dispatch.fund.percent.not.exist=\u65B0\u589E\u5F02\u5E38\uFF1A\u672A\u627E\u5230\u5BF9\u5E94\u516C\u79EF\u91D1\u6BD4\u4F8B\u914D\u7F6E\u4FE1\u606F
emp.dispatch.social.exist=\u65B0\u589E\u5F02\u5E38\uFF1A\u5355\u6B21\u5BFC\u5165\u4E0D\u652F\u6301\u793E\u4FDD\u516C\u79EF\u91D1\u5206\u5F00\u6D3E\u5355
emp.dispatch.social.and.fund.not.empty=\u65B0\u589E\u5F02\u5E38\uFF1A\u5FC5\u987B\u6D3E\u5355\u793E\u4FDD\u6216\u516C\u79EF\u91D1\uFF0C\u4E0D\u652F\u6301\u5355\u6D3E\u6863\u6848
emp.dispatch.project.not.found=\u65B0\u589E\u5F02\u5E38\uFF1A\u672A\u627E\u5230\u5BF9\u5E94\u9879\u76EE\u7F16\u7801\u4FE1\u606F
......
package com.yifu.cloud.plus.v1.yifu.common.dapr.util;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProject;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
......@@ -52,6 +53,12 @@ public class ArchivesDaprUtil {
if (Common.isEmpty(res)){
return R.failed("获取档案派单信息失败!");
}
R<String> test = HttpDaprUtil.invokeMethodObject(daprArchivesProperties.getAppUrl(),daprArchivesProperties.getAppId(),"/temployeeinfo/getDispatchEmpVo" , JSON.toJSONString(checkVo), String.class, SecurityConstants.FROM_IN);
//Map<String,DispatchEmpVo> map = JSON.parseArray()
if (Common.isEmpty(res)){
return R.failed("获取档案派单信息失败!");
}
return res;
}
/**
......
......@@ -121,7 +121,35 @@ public class HttpDaprUtil {
}
}
public static <T> R<T> invokeMethodObject(String appUrl,
String appId,
String method,
Object param,
Class cs,
@RequestHeader(SecurityConstants.FROM) String from){
// 实例化 RestTemplate
initResTemplate();
// 初始化请求URL
initUrl(appUrl, appId, method, "");
ResponseEntity<String> res;
HttpHeaders headers = new HttpHeaders();
headers.add(SecurityConstants.FROM, from);
headers.setContentType(MediaType.APPLICATION_JSON);
headers.add("Authorization", null);
HttpEntity<String> entity = new HttpEntity(param, headers);
try {
res = restTemplate.postForEntity(URI.create(stringBuffer.toString()),entity, cs);
} catch (Exception e) {
log.error("日志保存异常:",e);
return R.failed("获取信息失败:" + e.getMessage());
}
if (null != res && CommonConstants.SUCCESS == res.getStatusCodeValue()) {
return (R<T>) R.ok(res.getBody());
} else {
return R.failed("获取信息失败!");
}
}
private static void initResTemplate() {
if (null == restTemplate) {
restTemplate = new RestTemplate();
......
......@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttributeConstants;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......@@ -49,6 +50,15 @@ public class TDispatchInfo extends BaseEntity {
@Schema(description = "ID" )
@ExcelProperty("ID" )
private String id;
/**
* 派单申请编码
*/
@ExcelAttribute(name = "派单申请编码", maxLength = 30)
@Schema(description = "派单申请编码" )
@ExcelProperty("派单申请编码" )
private String dispatchCode;
/**
* 员工ID
*/
......@@ -164,6 +174,7 @@ public class TDispatchInfo extends BaseEntity {
@Schema(description = "结算主体" )
@ExcelProperty("结算主体" )
private String settleDomain;
/**
* 0未删除1删除
*/
......@@ -311,17 +322,38 @@ public class TDispatchInfo extends BaseEntity {
/**
* 合同类型
*/
@Length(max = 32, message = "合同类型 不能超过32个字符" )
@ExcelAttribute(name = "合同类型", maxLength = 32)
@Schema(description = "合同类型" )
@ExcelProperty("合同类型" )
@NotBlank(message = "合同类型不能为空")
@Length(max = 32, message = "合同类型不能超过32个字符")
@ExcelAttribute(name = "合同类型", maxLength = 32, needExport = true)
@Schema(description = "合同类型", name = "contractName")
private String contractName;
/**
* 业务细分 personnel_type_sub
*/
@ExcelAttribute(name = "业务细分", maxLength = 32)
@Schema(description = "业务细分", name = "contractName")
private String contractSubName;
/**
* 签订期限e
* 0 已完成一定工作任务为期限
* 1 固定期限
* 2 无固定期限
*/
@NotBlank(message = "签订期限不能为空")
@Length(max = 32, message = "签订期限不能超过32个字符")
@ExcelAttribute(name = "签订期限", maxLength = 32, isDataId = true, dataType = ExcelAttributeConstants.EMPLOYEE_CONTRACT_TYPE, needExport = true)
@Schema(description = "签订期限", name = "contractType")
private String contractType;
/**
* 社保办理状态 0 未办理 1 全部办理成功(原-已办理) 2 全部办理失败(原-办理失败) 3已派减(已废弃)
*/
@Length(max = 1, message = "社保办理状态 不能超过1个字符" )
@ExcelAttribute(name = "社保办理状态", maxLength = 1)
@Schema(description = "社保办理状态 0 未办理 1 全部办理成功(原-已办理) 2 全部办理失败(原-办理失败) " )
@Schema(description = "社保办理状态 0 未办理 1 全部办理成功(原-已办理) 2 全部办理失败(原-办理失败) 3 部分办理成功 " )
@ExcelProperty("社保办理状态" )
private String socialHandleStatus;
/**
......@@ -329,7 +361,7 @@ public class TDispatchInfo extends BaseEntity {
*/
@Length(max = 1, message = "公积金办理状态 不能超过1个字符" )
@ExcelAttribute(name = "公积金办理状态", maxLength = 1)
@Schema(description = "公积金办理状态" )
@Schema(description = "公积金办理状态:0 未办理 1办理成功 2 办理失败" )
@ExcelProperty("公积金办理状态" )
private String fundHandleStatus;
/**
......@@ -452,13 +484,23 @@ public class TDispatchInfo extends BaseEntity {
@ExcelProperty("派单项:如 养老、公积金" )
private String dispatchItem;
/**
* settleDomainName
* 结算主体名称
*/
@Length(max = 50, message = "settleDomainName 不能超过50个字符" )
@ExcelAttribute(name = "settleDomainName", maxLength = 50)
@Schema(description = "settleDomainName" )
@ExcelProperty("settleDomainName" )
@Length(max = 50, message = "结算主体名称 不能超过50个字符" )
@ExcelAttribute(name = "结算主体名称", maxLength = 50)
@Schema(description = "结算主体名称" )
@ExcelProperty("结算主体名称" )
private String settleDomainName;
/**
* 结算主体编码
*/
@Length(max = 50, message = "结算主体编码 不能超过50个字符" )
@ExcelAttribute(name = "结算主体编码", maxLength = 50)
@Schema(description = "结算主体编码" )
@ExcelProperty("结算主体编码" )
private String settleDomainCode;
/**
* 单位名称
*/
......@@ -468,4 +510,6 @@ public class TDispatchInfo extends BaseEntity {
@ExcelProperty("单位名称" )
private String belongUnitName;
}
......@@ -202,7 +202,6 @@ public class TDispatchImportVo extends RowIndex implements Serializable {
@ExcelAttribute(name = "业务细分", maxLength = 32)
@Schema(description = "业务细分", name = "contractName")
private String contractSubName;
/**
* 签订期限
* 0 已完成一定工作任务为期限
......@@ -386,11 +385,11 @@ public class TDispatchImportVo extends RowIndex implements Serializable {
private BigDecimal providentCardinal;
/**
* 公积金缴纳比例
* 公积金比例
*/
@ExcelAttribute(name = "公积金缴纳比例" )
@Schema(description = "公积金缴纳比例" )
@ExcelProperty("公积金缴纳比例" )
@ExcelAttribute(name = "公积金比例" )
@Schema(description = "公积金比例" )
@ExcelProperty("公积金比例" )
private BigDecimal providentPer;
......
......@@ -308,7 +308,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
socialFund = getSocialFund(socialFundMap,excel);
setInfoVo = getSetInfoVo(projectVoMap,excel);
// 数据合法情况
if (validImport(errorMessageList, excel, dispatchMap,setInfoVo)) {
if (validImport(errorMessageList, excel,setInfoVo)) {
excelVOTemp.put(excel.getEmpIdcard(),excel.getEmpIdcard());
continue;
}
......@@ -496,6 +496,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
if (Common.isNotNull(emp) && Common.isNotNull(dispatch)){
dispatch.setEmpNo(emp.getEmpCode());
dispatch.setEmpId(emp.getId());
dispatch.setSettleDomainCode(emp.getDeptNo());
dispatch.setSettleDomain(emp.getDeptId());
dispatch.setSettleDomainName(emp.getDeptName());
baseMapper.insert(dispatch);
}
}
......@@ -733,6 +736,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
dispatch.setEmpId(empVo.getId());
dispatch.setEmpNo(empVo.getEmpCode());
// 封装合同信息 如果有合同取值实际合同信息
dispatch.setSettleDomainName(empVo.getDeptName());
dispatch.setContractStart(empVo.getContractStart());
dispatch.setContractEnd(empVo.getContractEnd());
dispatch.setContractTerm(empVo.getContractTerm());
......@@ -757,7 +761,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
fund.setDeleteFlag(CommonConstants.ZERO_STRING);
fund.setBelongUnit(excel.getCustomerId());
fund.setSettleDomain(excel.getSettleDomainId());
fund.setEmpId(empVo.getId());
if (Common.isNotNull(empVo)){
fund.setEmpId(empVo.getId());
}
fund.setEmpIdcard(excel.getEmpIdcard());
fund.setTrustRemark(excel.getTrustRemark());
fund.setUnitProvidengCardinal(excel.getProvidentPer());
......@@ -844,7 +850,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
// 封装单位信息 结算信息
social.setBelongUnit(excel.getCustomerId());
social.setSettleDomain(excel.getSettleDomainId());
social.setEmpId(empVo.getId());
if (Common.isNotNull(empVo)){
social.setEmpId(empVo.getId());
}
social.setEmpIdcard(excel.getEmpIdcard());
social.setBigailmentHandle(CommonConstants.ZERO_STRING);
social.setBirthHandle(CommonConstants.ZERO_STRING);
......@@ -991,9 +999,11 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
if (Common.isNotNull(socialholds)) {
List<SysBaseSetInfo> socialBases = baseSetMapper.selectList(Wrappers.<SysBaseSetInfo>query().lambda()
.eq(SysBaseSetInfo::getBaseType, CommonConstants.ZERO_STRING)
.ge(SysBaseSetInfo::getApplyStartDate, now)
.le(SysBaseSetInfo::getApplyEndDate, now)
.eq(SysBaseSetInfo::getDeleteFlag, CommonConstants.ZERO_STRING));
.le(SysBaseSetInfo::getApplyStartDate, now)
.ge(SysBaseSetInfo::getApplyEndDate, now)
.in(SysBaseSetInfo::getDepartName,socialholds)
.eq(SysBaseSetInfo::getDeleteFlag, CommonConstants.ZERO_STRING)
.groupBy(SysBaseSetInfo::getDepartName));
if (Common.isNotNull(socialBases)) {
for (SysBaseSetInfo set:socialBases){
socialHoldMap.put(set.getDepartName(),set);
......@@ -1019,8 +1029,9 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
contract = new EmpContractDispatchVo();
contract.setContractEnd(excel.getContractEnd());
contract.setContractName(excel.getContractName());
contract.setContractStart(excel.getContractStart());
contract.setContractSubName(excel.getContractSubName());
contract.setContractType(excel.getContractType());
contract.setContractStart(excel.getContractStart());
contract.setContractSubName(excel.getContractSubName());
contract.setDeptNo(excel.getSettleDomainCode());
contract.setPost(excel.getPost());
......@@ -1178,7 +1189,6 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
private boolean validImport(List<ErrorMessage> errorMessageList,
TDispatchImportVo excel,
Map<String, TDispatchInfo> dispatchMap,
ProjectSetInfoVo setInfoVo) {
if (Common.isEmpty(setInfoVo)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_PROJECT_NOT_FOUND)));
......@@ -1208,7 +1218,7 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
|| Common.isEmpty(excel.getPaymentType())
|| Common.isEmpty(excel.getPensionCardinal())
)) {
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_EXIST)));
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_SOCIAL_NOT_EMPTY)));
return true;
}
if (Common.isNotNull(excel.getProvidentHousehold()) && (
......@@ -1219,10 +1229,6 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_FUND_NOT_EMPTY)));
return true;
}
if (Common.isNotNull(dispatchMap)){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_FUND_NOT_EMPTY)));
return true;
}
return false;
}
......
......@@ -52,8 +52,6 @@
<result property="contractEnd" column="CONTRACT_END"/>
<result property="contractTerm" column="CONTRACT_TERM"/>
<result property="empRegisType" column="EMP_REGIS_TYPE"/>
<result property="enjoinDate" column="ENJOIN_DATE"/>
<result property="tryPeriod" column="TRY_PERIOD"/>
<result property="fileAddr" column="FILE_ADDR"/>
<result property="post" column="POST"/>
<result property="trustRemark" column="TRUST_REMARK"/>
......@@ -83,69 +81,75 @@
<result property="organName" column="ORGAN_NAME"/>
<result property="dispatchItem" column="DISPATCH_ITEM"/>
<result property="settleDomainName" column="SETTLE_DOMAIN_NAME"/>
<result property="settleDomainCode" column="SETTLE_DOMAIN_CODE"/>
<result property="belongUnitName" column="BELONG_UNIT_NAME"/>
<result property="dispatchCode" column="DISPATCH_CODE"/>
<result property="contractSubName" column="CONTRACT_SUB_NAME"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
a.EMP_ID,
a.EMP_NAME,
a.EMP_NO,
a.EMP_IDCARD,
a.EMP_TYPE,
a.EMP_MOBILE,
a.EMP_NATIONAL,
a.STATUS,
a.TYPE,
a.SOCIAL_ID,
a.FUND_ID,
a.TYPE_SUB,
a.PROCESS_INST_ID,
a.SETTLE_DOMAIN,
a.DELETE_FLAG,
a.SOCIAL_REDUCE_DATE,
a.FUND_REDUCE_DATE,
a.LEAVE_DATE,
a.REDUCE_REASON,
a.REDUCE_REMARK,
a.BELONG_UNIT,
a.CURRENT_OPERATOR,
a.DISPATCH_ID_BAK,
a.CONTRACT_START,
a.CONTRACT_END,
a.CONTRACT_TERM,
a.EMP_REGIS_TYPE,
a.ENJOIN_DATE,
a.TRY_PERIOD,
a.FILE_ADDR,
a.POST,
a.TRUST_REMARK,
a.FILE_PROVINCE,
a.FILE_CITY,
a.FILE_TOWN,
a.CONTRACT_TYPE,
a.SOCIAL_HANDLE_STATUS,
a.FUND_HANDLE_STATUS,
a.HANDLE_REMARK,
a.AUDIT_REMARK,
a.FUND_HANDLE_REMARK,
a.SOCIAL_HANDLE_REMARK,
a.SOCIAL_PROVINCE,
a.SOCIAL_CITY,
a.SOCIAL_TOWN,
a.FUND_PROVINCE,
a.FUND_CITY,
a.FUND_TOWN,
a.AUDIT_USER,
a.AUDIT_TIME,
a.WORKING_HOURS,
a.CREATE_BY,
a.UPDATE_BY,
a.CREATE_NAME,
a.UPDATE_TIME,
a.ORGAN_NAME,
a.DISPATCH_ITEM,
a.SETTLE_DOMAIN_NAME,
a.BELONG_UNIT_NAME
a.ID,
a.EMP_ID,
a.EMP_NAME,
a.EMP_NO,
a.EMP_IDCARD,
a.EMP_TYPE,
a.EMP_MOBILE,
a.EMP_NATIONAL,
a.STATUS,
a.TYPE,
a.SOCIAL_ID,
a.FUND_ID,
a.TYPE_SUB,
a.PROCESS_INST_ID,
a.SETTLE_DOMAIN,
a.DELETE_FLAG,
a.SOCIAL_REDUCE_DATE,
a.FUND_REDUCE_DATE,
a.LEAVE_DATE,
a.REDUCE_REASON,
a.REDUCE_REMARK,
a.BELONG_UNIT,
a.CURRENT_OPERATOR,
a.DISPATCH_ID_BAK,
a.CONTRACT_START,
a.CONTRACT_END,
a.CONTRACT_TERM,
a.EMP_REGIS_TYPE,
a.ENJOIN_DATE,
a.FILE_ADDR,
a.POST,
a.TRUST_REMARK,
a.FILE_PROVINCE,
a.FILE_CITY,
a.FILE_TOWN,
a.CONTRACT_TYPE,
a.SOCIAL_HANDLE_STATUS,
a.FUND_HANDLE_STATUS,
a.HANDLE_REMARK,
a.AUDIT_REMARK,
a.FUND_HANDLE_REMARK,
a.SOCIAL_HANDLE_REMARK,
a.SOCIAL_PROVINCE,
a.SOCIAL_CITY,
a.SOCIAL_TOWN,
a.FUND_PROVINCE,
a.FUND_CITY,
a.FUND_TOWN,
a.AUDIT_USER,
a.AUDIT_TIME,
a.WORKING_HOURS,
a.CREATE_BY,
a.UPDATE_BY,
a.CREATE_NAME,
a.UPDATE_TIME,
a.ORGAN_NAME,
a.DISPATCH_ITEM,
a.SETTLE_DOMAIN_NAME,
a.BELONG_UNIT_NAME,
a.DISPATCH_CODE,
a.SETTLE_DOMAIN_CODE,
a.CONTRACT_SUB_NAME
</sql>
<sql id="tDispatchInfo_where">
<if test="tDispatchInfo != null">
......@@ -233,12 +237,6 @@
<if test="tDispatchInfo.empRegisType != null and tDispatchInfo.empRegisType.trim() != ''">
AND a.EMP_REGIS_TYPE = #{tDispatchInfo.empRegisType}
</if>
<if test="tDispatchInfo.enjoinDate != null">
AND a.ENJOIN_DATE = #{tDispatchInfo.enjoinDate}
</if>
<if test="tDispatchInfo.tryPeriod != null and tDispatchInfo.tryPeriod.trim() != ''">
AND a.TRY_PERIOD = #{tDispatchInfo.tryPeriod}
</if>
<if test="tDispatchInfo.fileAddr != null and tDispatchInfo.fileAddr.trim() != ''">
AND a.FILE_ADDR = #{tDispatchInfo.fileAddr}
</if>
......
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