Commit ca736415 authored by fangxinjiang's avatar fangxinjiang

Merge remote-tracking branch 'origin/MVP1.7.18' into MVP1.7.18

parents fa3b673a 16596bd1
...@@ -334,4 +334,33 @@ public class TEmployeeContractPre extends BaseEntity { ...@@ -334,4 +334,33 @@ public class TEmployeeContractPre extends BaseEntity {
@Schema(description = "任务信息") @Schema(description = "任务信息")
private String requestMsg; private String requestMsg;
// 电子签推送需要的新字段:——START
@TableField(exist = false)
@ExcelAttribute(name = "户籍所在地")
private String huArea;
// contactProvince,contactCity,contactTown,
// contactAddress
@TableField(exist = false)
@ExcelAttribute(name = "通讯地址")
private String contactArea;
@TableField(exist = false)
@ExcelAttribute(name = "邮箱")
private String empEmail;
// 紧急联系人表
@TableField(exist = false)
@ExcelAttribute(name = "紧急联系人")
private String contactEmpName;
@TableField(exist = false)
@ExcelAttribute(name = "紧急联系人电话")
private String contactTel;
// relationProvince,relationCity,relationTown
// address
@TableField(exist = false)
@ExcelAttribute(name = "紧急联系人地址")
private String contactAddress;
// 电子签推送需要的新字段——END
} }
...@@ -153,5 +153,11 @@ public class TFascTemplateDetail extends BaseEntity { ...@@ -153,5 +153,11 @@ public class TFascTemplateDetail extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
@Schema(description = "字段格式化或键值对") @Schema(description = "字段格式化或键值对")
private String fieldValue; private String fieldValue;
/**
* 公司主体Id
*/
@TableField(exist = false)
@Schema(description = "公司主体Id")
private String companyId;
} }
...@@ -208,6 +208,8 @@ public class EmployeeContractVO extends RowIndex implements Serializable { ...@@ -208,6 +208,8 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@ExcelProperty("备注") @ExcelProperty("备注")
private String remark; private String remark;
@ExcelAttribute(name = "签署方式", maxLength = 32)
@ExcelProperty("签署方式")
@Schema(description = "签署方式1线下签0电子签") @Schema(description = "签署方式1线下签0电子签")
private String signType; private String signType;
......
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import lombok.Data;
/**
* 法大大电子签信推送字段
*/
@Data
public class TEmployeeContractPrePushFascVo {
// idProvince,idCity,idTown
@ExcelAttribute(name = "户籍所在地")
private String huArea;
// contactProvince,contactCity,contactTown,
// contactAddress
@ExcelAttribute(name = "通讯地址")
private String contactArea;
@ExcelAttribute(name = "邮箱")
private String empEmail;
// 紧急联系人表
@ExcelAttribute(name = "紧急联系人")
private String contactEmpName;
@ExcelAttribute(name = "紧急联系人电话")
private String contactTel;
// relationProvince,relationCity,relationTown
// address
@ExcelAttribute(name = "紧急联系人地址")
private String contactAddress;
}
...@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContactInfo; import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmpContactInfo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeContractPrePushFascVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -50,4 +51,10 @@ public interface TEmpContactInfoMapper extends BaseMapper<TEmpContactInfo> { ...@@ -50,4 +51,10 @@ public interface TEmpContactInfoMapper extends BaseMapper<TEmpContactInfo> {
List<TEmpContactInfo> getContactByDeptId(@Param("deptId") String deptId); List<TEmpContactInfo> getContactByDeptId(@Param("deptId") String deptId);
List<TEmpContactInfo> getContactByIdCardList(@Param("idCardList") List<String> idCardList); List<TEmpContactInfo> getContactByIdCardList(@Param("idCardList") List<String> idCardList);
/* 获取紧急联系人信息,电子签推送法大大需要用紧急联系人相关字段 */
TEmployeeContractPrePushFascVo getTEmpContactInfoOneByCard(@Param("empIdCard") String empIdCard);
/* 获取档案信息,电子签推送法大大需要用紧急联系人相关字段 */
TEmployeeContractPrePushFascVo getTEmpInfoOneByCard(@Param("empIdCard") String empIdCard);
} }
...@@ -21,12 +21,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -21,12 +21,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasc.open.api.exception.ApiException; import com.fasc.open.api.exception.ApiException;
import com.fasc.open.api.v5_1.res.template.SignTemplateListInfo; import com.fasc.open.api.v5_1.res.template.SignTemplateListInfo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.*; import com.yifu.cloud.plus.v1.yifu.archives.entity.*;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.FddContractInfoMapper; import com.yifu.cloud.plus.v1.yifu.archives.mapper.*;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TAttaInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeContractInfoMapper;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TEmployeeContractPreMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.*; import com.yifu.cloud.plus.v1.yifu.archives.service.*;
import com.yifu.cloud.plus.v1.yifu.archives.utils.FascUtil; import com.yifu.cloud.plus.v1.yifu.archives.utils.FascUtil;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeContractPrePushFascVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TFascTemplateSearchVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.OSSUtil; import com.yifu.cloud.plus.v1.yifu.common.core.util.OSSUtil;
...@@ -61,6 +60,8 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr ...@@ -61,6 +60,8 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
private final TFascTemplateDetailService tFascTemplateDetailService; private final TFascTemplateDetailService tFascTemplateDetailService;
private final TEmployeeContractPreMapper tEmployeeContractPreMapper; private final TEmployeeContractPreMapper tEmployeeContractPreMapper;
private final TEmployeeContractInfoMapper tEmployeeContractInfoMapper; private final TEmployeeContractInfoMapper tEmployeeContractInfoMapper;
private final TEmployeeInfoMapper tEmployeeInfoMapper;
private final TEmpContactInfoMapper tEmpContactInfoMapper;
private final TAttaInfoMapper tAttaInfoMapper; private final TAttaInfoMapper tAttaInfoMapper;
private final TFascCompanyService tFascCompanyService; private final TFascCompanyService tFascCompanyService;
...@@ -84,27 +85,34 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr ...@@ -84,27 +85,34 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
List<TFascCompany> companyList = tFascCompanyService.getTFascCompanyAllList(); List<TFascCompany> companyList = tFascCompanyService.getTFascCompanyAllList();
if (companyList != null && !companyList.isEmpty()) { if (companyList != null && !companyList.isEmpty()) {
// templateName 签署任务模板名称 // templateName 签署任务模板名称
List<TFascTemplate> tList = new ArrayList<>(); List<TFascTemplate> tList ;
List<SignTemplateListInfo> listSubList; List<SignTemplateListInfo> listSubList;
List<TFascTemplate> tempList; List<TFascTemplateDetail> detailList ;
List<TFascTemplateDetail> detailList = new ArrayList<>();
List<TFascTemplateDetail> detailSubList;
// 重试次数 // 重试次数
int maxRetries = 3; int maxRetries = 3;
// 是否全部成功,若为false,则说明有失败的,不删除未找到的。
boolean success; boolean success;
Exception lastException; Exception lastException;
// 20秒后重试、40秒后重试、60秒后重试 // 20秒后重试、40秒后重试、60秒后重试
long millis = 20000; long millis = 20000;
for (TFascCompany company : companyList) { for (TFascCompany company : companyList) {
listSubList = null;
try {
listSubList = fascUtil.getTemplateList(templateName, tFascPushLogService, company); listSubList = fascUtil.getTemplateList(templateName, tFascPushLogService, company);
} catch (Exception e) {
logger.error("法大大获取模板信息失败", e);
}
if (listSubList != null && !listSubList.isEmpty()) { if (listSubList != null && !listSubList.isEmpty()) {
detailSubList = new ArrayList<>(); detailList = new ArrayList<>();
tempList = new ArrayList<>(); tList = new ArrayList<>();
success = false; success = false;
lastException = null; lastException = null;
for (int attempt = 0; attempt < maxRetries && !success; attempt++) { for (int attempt = 0; attempt < maxRetries && !success; attempt++) {
// 重试,要重置
detailList = new ArrayList<>();
tList = new ArrayList<>();
try { try {
fascUtil.getTemplateDetailList(listSubList, tempList, detailSubList, tFascPushLogService, company); fascUtil.getTemplateDetailList(listSubList, tList, detailList, tFascPushLogService, company);
success = true; success = true;
} catch (Exception e) { } catch (Exception e) {
lastException = e; lastException = e;
...@@ -120,14 +128,6 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr ...@@ -120,14 +128,6 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
if (!success) { if (!success) {
logger.error("法大大获取模板详情,重试 " + maxRetries + " 次依然失败", lastException); logger.error("法大大获取模板详情,重试 " + maxRetries + " 次依然失败", lastException);
continue;
}
if (!tempList.isEmpty() && !detailSubList.isEmpty()) {
tList.addAll(tempList);
detailList.addAll(detailSubList);
}
}
} }
// 拉取到数据再更新: // 拉取到数据再更新:
...@@ -141,10 +141,14 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr ...@@ -141,10 +141,14 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
List<TFascTemplate> updateMain = new ArrayList<>(); List<TFascTemplate> updateMain = new ArrayList<>();
List<TFascTemplateDetail> updateDetail = new ArrayList<>(); List<TFascTemplateDetail> updateDetail = new ArrayList<>();
// TODO - 这里后期要分每个公司去拉取 // 分每个公司去拉取
List<TFascTemplate> allMain = tFascTemplateService.getTFascTemplateListAll(null); TFascTemplateSearchVo searchMain = new TFascTemplateSearchVo();
// TODO - 这里后期要分每个公司去拉取 searchMain.setCompanyId(company.getId());
List<TFascTemplateDetail> allDetail = tFascTemplateDetailService.getTFascTemplateDetailList(null); List<TFascTemplate> allMain = tFascTemplateService.getTFascTemplateListAll(searchMain);
// 分每个公司去拉取
TFascTemplateDetail searchDetail = new TFascTemplateDetail();
searchDetail.setCompanyId(company.getId());
List<TFascTemplateDetail> allDetail = tFascTemplateDetailService.getTFascTemplateDetailList(searchDetail);
List<TFascEditLog> logList = new ArrayList<>(); List<TFascEditLog> logList = new ArrayList<>();
if (allMain == null || allMain.isEmpty()) { if (allMain == null || allMain.isEmpty()) {
// 都是新的: // 都是新的:
...@@ -181,11 +185,13 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr ...@@ -181,11 +185,13 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
updateMain.add(t); updateMain.add(t);
oldMainMap.remove(t.getSignTemplateId()); oldMainMap.remove(t.getSignTemplateId());
} }
if (success) {
for (TFascTemplate t : oldMainMap.values()) { for (TFascTemplate t : oldMainMap.values()) {
this.addFascLogToList(t.getId(), CommonConstants.ONE_STRING, editContent2, logList, userId, userName); this.addFascLogToList(t.getId(), CommonConstants.ONE_STRING, editContent2, logList, userId, userName);
t.setDeleteFlag(CommonConstants.DELETE_FLAG); t.setDeleteFlag(CommonConstants.DELETE_FLAG);
updateMain.add(t); updateMain.add(t);
} }
}
// 映射表: // 映射表:
TFascTemplateDetail oldDetail; TFascTemplateDetail oldDetail;
for (TFascTemplateDetail t : detailList) { for (TFascTemplateDetail t : detailList) {
...@@ -202,12 +208,14 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr ...@@ -202,12 +208,14 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
updateDetail.add(t); updateDetail.add(t);
oldDetailMap.remove(t.getSignTemplateId() + CommonConstants.DOWN_LINE_STRING + t.getFascFieldId()); oldDetailMap.remove(t.getSignTemplateId() + CommonConstants.DOWN_LINE_STRING + t.getFascFieldId());
} }
if (success) {
for (TFascTemplateDetail t : oldDetailMap.values()) { for (TFascTemplateDetail t : oldDetailMap.values()) {
this.addFascLogToList(t.getId(), CommonConstants.TWO_STRING, editContent2, logList, userId, userName); this.addFascLogToList(t.getId(), CommonConstants.TWO_STRING, editContent2, logList, userId, userName);
t.setDeleteFlag(CommonConstants.DELETE_FLAG); t.setDeleteFlag(CommonConstants.DELETE_FLAG);
updateDetail.add(t); updateDetail.add(t);
} }
} }
}
// 更新日志 // 更新日志
if (!logList.isEmpty()) { if (!logList.isEmpty()) {
tFascEditLogService.saveBatch(logList); tFascEditLogService.saveBatch(logList);
...@@ -220,10 +228,13 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr ...@@ -220,10 +228,13 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
if (!updateDetail.isEmpty()) { if (!updateDetail.isEmpty()) {
tFascTemplateDetailService.saveOrUpdateBatch(updateDetail); tFascTemplateDetailService.saveOrUpdateBatch(updateDetail);
} }
}
}
}
// 重新刷新主模板表的必填是否已填 // 重新刷新主模板表的必填是否已填
tFascTemplateDetailService.initFascTemplateIsMust(null); tFascTemplateDetailService.initFascTemplateIsMust(null);
} }
}
return R.ok(); return R.ok();
} }
...@@ -276,11 +287,28 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr ...@@ -276,11 +287,28 @@ public class FascServiceImpl extends ServiceImpl<FddContractInfoMapper, FddContr
if (Common.isEmpty(contract.getContractId())) { if (Common.isEmpty(contract.getContractId())) {
return R.failed("未生成合同,请联系管理员"); return R.failed("未生成合同,请联系管理员");
} }
String empIdCard = contract.getEmpIdcard();
if (Common.isEmpty(empIdCard)) {
return R.failed("未找到身份证,请联系管理员");
}
TEmployeeContractInfo empContract = tEmployeeContractInfoMapper.selectById(contract.getContractId()); TEmployeeContractInfo empContract = tEmployeeContractInfoMapper.selectById(contract.getContractId());
if (empContract == null) { if (empContract == null) {
return R.failed(FASC_NO_EMP_CONTRACT); return R.failed(FASC_NO_EMP_CONTRACT);
} }
TEmployeeContractPrePushFascVo empContactInfo = tEmpContactInfoMapper.getTEmpContactInfoOneByCard(empIdCard);
TEmployeeContractPrePushFascVo empInfo = tEmpContactInfoMapper.getTEmpInfoOneByCard(empIdCard);
if (empContactInfo != null) {
contract.setContactEmpName(empContactInfo.getContactEmpName());
contract.setContactTel(empContactInfo.getContactTel());
contract.setContactAddress(empContactInfo.getContactAddress());
}
if (empInfo != null) {
contract.setHuArea(empInfo.getHuArea());
contract.setContactArea(empInfo.getContactArea());
contract.setEmpEmail(empInfo.getEmpEmail());
}
if (Common.isEmpty(contract.getFadadaTemplateId())) { if (Common.isEmpty(contract.getFadadaTemplateId())) {
return R.failed("未找到合同模板ID,请联系管理员"); return R.failed("未找到合同模板ID,请联系管理员");
......
...@@ -251,7 +251,16 @@ public class FascUtil { ...@@ -251,7 +251,16 @@ public class FascUtil {
pushLog.setTypeName("获取明细映射"); pushLog.setTypeName("获取明细映射");
tFascPushLogService.save(pushLog); tFascPushLogService.save(pushLog);
try {
res = templateClient.getSignTemplateDetail(signTemplateDetailReq);
} catch (Exception e) {
try {
Thread.sleep(5000); // Wait 5 seconds
} catch (InterruptedException ie) {
Thread.currentThread().interrupt();
}
res = templateClient.getSignTemplateDetail(signTemplateDetailReq); res = templateClient.getSignTemplateDetail(signTemplateDetailReq);
}
if (res != null) { if (res != null) {
// 更新日志 // 更新日志
......
...@@ -110,6 +110,43 @@ ...@@ -110,6 +110,43 @@
</where> </where>
</select> </select>
<!-- 获取紧急联系人信息,电子签推送法大大需要用紧急联系人相关字段 -->
<select id="getTEmpContactInfoOneByCard" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeContractPrePushFascVo">
SELECT
a.EMP_NAME contactEmpName,a.tel contactTel,concat(ifnull(sp.AREA_NAME,'')
,ifnull(sc.AREA_NAME,'')
,ifnull(st.AREA_NAME,'')
,ifnull(a.ADDRESS,'')
) contactAddress
from t_emp_contact_info a
left join sys_area sp on sp.id = a.RELATION_PROVINCE
left join sys_area sc on sc.id = a.RELATION_CITY
left join sys_area st on st.id = a.RELATION_TOWN
where a.EMP_IDCARD = #{empIdCard} ORDER BY a.CREATE_TIME desc limit 1
</select>
<!-- 获取档案信息,电子签推送法大大需要用紧急联系人相关字段 -->
<select id="getTEmpInfoOneByCard" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeContractPrePushFascVo">
select
concat(ifnull(sp.AREA_NAME,'')
,ifnull(sc.AREA_NAME,'')
,ifnull(st.AREA_NAME,'')
) huArea,
concat(ifnull(sp2.AREA_NAME,'')
,ifnull(sc2.AREA_NAME,'')
,ifnull(st2.AREA_NAME,'')
,ifnull(a.CONTACT_ADDRESS,'')
) contactArea,a.EMP_EMAIL empEmail
from t_employee_info a
left join sys_area sp on sp.id = a.ID_PROVINCE
left join sys_area sc on sc.id = a.ID_CITY
left join sys_area st on st.id = a.ID_TOWN
left join sys_area sp2 on sp2.id = a.CONTACT_PROVINCE
left join sys_area sc2 on sc2.id = a.CONTACT_CITY
left join sys_area st2 on st2.id = a.CONTACT_TOWN
where a.EMP_IDCARD = #{empIdCard} ORDER BY a.CREATE_TIME desc limit 1
</select>
<select id="getContactByDeptId" resultMap="tEmpContactInfoMap"> <select id="getContactByDeptId" resultMap="tEmpContactInfoMap">
SELECT SELECT
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
......
...@@ -144,6 +144,9 @@ ...@@ -144,6 +144,9 @@
<if test="tFascTemplateDetail.contractType != null and tFascTemplateDetail.contractType.trim() != ''"> <if test="tFascTemplateDetail.contractType != null and tFascTemplateDetail.contractType.trim() != ''">
AND b.contract_type = #{tFascTemplateDetail.contractType} AND b.contract_type = #{tFascTemplateDetail.contractType}
</if> </if>
<if test="tFascTemplateDetail.companyId != null and tFascTemplateDetail.companyId.trim() != ''">
AND b.company_id = #{tFascTemplateDetail.companyId}
</if>
</if> </if>
</sql> </sql>
<!--tFascTemplateDetail简单分页查询--> <!--tFascTemplateDetail简单分页查询-->
......
...@@ -131,6 +131,19 @@ public class EmployeeRegistrationController { ...@@ -131,6 +131,19 @@ public class EmployeeRegistrationController {
return employeeRegistrationService.updateRegist(employeeRegistration); return employeeRegistrationService.updateRegist(employeeRegistration);
} }
/**
* 单个更新,更新入离职日期和手机号码
*
* @param employeeRegistration 入离职登记表
* @return R
*/
@Operation(summary = "单个更新,更新入离职日期和手机号码等")
@SysLog("单个更新,更新入离职日期和手机号码等")
@PostMapping("/updateEmpRegistInfo")
public R updateEmpRegistInfo(@RequestBody EmployeeRegistration employeeRegistration) {
return employeeRegistrationService.updateEmpRegistInfo(employeeRegistration);
}
/** /**
* 入离职登记表确认接收 * 入离职登记表确认接收
* *
......
...@@ -80,6 +80,13 @@ public interface EmployeeRegistrationService extends IService<EmployeeRegistrati ...@@ -80,6 +80,13 @@ public interface EmployeeRegistrationService extends IService<EmployeeRegistrati
*/ */
R updateRegist(EmployeeRegistration registration); R updateRegist(EmployeeRegistration registration);
/**
* 单个更新,更新入离职日期和手机号码
* @param registration 入离职登记
* @return
*/
R updateEmpRegistInfo(EmployeeRegistration registration);
/** /**
* 导出 * 导出
* @param searchVo 入离职登记 * @param searchVo 入离职登记
......
...@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.csp.config.WxConfig; import com.yifu.cloud.plus.v1.csp.config.WxConfig;
import com.yifu.cloud.plus.v1.csp.constants.RegistConstants; import com.yifu.cloud.plus.v1.csp.constants.RegistConstants;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistration; import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistration;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationLeave;
import com.yifu.cloud.plus.v1.csp.entity.TCspAttaInfo; import com.yifu.cloud.plus.v1.csp.entity.TCspAttaInfo;
import com.yifu.cloud.plus.v1.csp.entity.TOperationLog; import com.yifu.cloud.plus.v1.csp.entity.TOperationLog;
import com.yifu.cloud.plus.v1.csp.mapper.EmployeeRegistrationMapper; import com.yifu.cloud.plus.v1.csp.mapper.EmployeeRegistrationMapper;
...@@ -1382,6 +1383,49 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr ...@@ -1382,6 +1383,49 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
return R.ok(); return R.ok();
} }
@Override
public R updateEmpRegistInfo(EmployeeRegistration registration) {
EmployeeRegistration registrationNow = baseMapper.selectById(registration.getId());
if (Common.isEmpty(registrationNow) ) {
return R.failed(CommonConstants.NO_DATA_TO_HANDLE);
}
//入职状态校验
if (CommonConstants.ONE_STRING.equals(registrationNow.getFeedbackType()) &&
CommonConstants.ZERO_STRING.equals(registrationNow.getProcessStatus())) {
return R.failed(RegistConstants.NO_DATA_TO_HANDLE);
}
//离职状态校验
if (CommonConstants.TWO_STRING.equals(registrationNow.getFeedbackType())) {
EmployeeRegistrationLeave registrationLeave = employeeRegistrationLeaveService.getById(registration.getId());
if (Common.isNotNull(registrationLeave) && !CommonConstants.ZERO_STRING.equals(registrationLeave.getLeaveStatus())) {
return R.failed(RegistConstants.NO_DATA_TO_HANDLE);
}
}
//手机号和身份证验证
if (Common.isNotNull(registration.getEmpPhone())
&& !registration.getEmpPhone().equals(registrationNow.getEmpPhone())) {
if (!ValidityUtil.validateEmpPhone(registration.getEmpPhone())) {
return R.failed(RegistConstants.PHONE_FORMAT_ERROR);
}
//姓名、身份证+手机号真实性校验
R<Boolean> checkRes = checkDaprUtil.checkIdCardAndMobile(registration.getEmployeeName(),
registration.getEmpIdcard(),registration.getEmpPhone());
if (Common.isEmpty(checkRes) || checkRes.getCode() != CommonConstants.SUCCESS){
return R.failed(checkRes.getMsg());
}
}
//更新入离职日期和手机号
if (Common.isNotNull(registration.getJoinLeaveDate())) {
registrationNow.setJoinLeaveDate(registration.getJoinLeaveDate());
}
if (Common.isNotNull(registration.getEmpPhone())) {
registrationNow.setEmpPhone(registration.getEmpPhone());
}
baseMapper.updateById(registrationNow);
return R.ok();
}
@Override @Override
public R batchUpdatePreById(List<EmployeeRegistrationReceiveVo> employeeRegistList) { public R batchUpdatePreById(List<EmployeeRegistrationReceiveVo> employeeRegistList) {
YifuUser user = SecurityUtils.getUser(); YifuUser user = SecurityUtils.getUser();
......
...@@ -154,6 +154,9 @@ public class EkpInsurancesInfo { ...@@ -154,6 +154,9 @@ public class EkpInsurancesInfo {
@Schema(description = "变更发票号") @Schema(description = "变更发票号")
private String fd_3b5bf17f2fc25c; private String fd_3b5bf17f2fc25c;
@Schema(description = "变更保单号")
private String fd_policy_change;
@Schema(description = "变更购买标准") @Schema(description = "变更购买标准")
private String fd_3b5bf180e08fbe; private String fd_3b5bf180e08fbe;
......
...@@ -49,7 +49,6 @@ import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccount; ...@@ -49,7 +49,6 @@ import com.yifu.cloud.plus.v1.yifu.salary.entity.TSalaryAccount;
import com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryRiskListVo; import com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryRiskListVo;
import com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryRiskVo; import com.yifu.cloud.plus.v1.yifu.salary.vo.SalaryRiskVo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TIncomeDetail; import com.yifu.cloud.plus.v1.yifu.social.entity.TIncomeDetail;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialFundInfo;
import com.yifu.cloud.plus.v1.yifu.social.vo.ChangeDeptDetailVo; import com.yifu.cloud.plus.v1.yifu.social.vo.ChangeDeptDetailVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.ChangeDeptVo; import com.yifu.cloud.plus.v1.yifu.social.vo.ChangeDeptVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TIncomeDetailReturnVo; import com.yifu.cloud.plus.v1.yifu.social.vo.TIncomeDetailReturnVo;
...@@ -2487,18 +2486,14 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -2487,18 +2486,14 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
ekpUpdateParam.setFd_3b5bf02fa14596(getBuyType(detail.getBuyType())); ekpUpdateParam.setFd_3b5bf02fa14596(getBuyType(detail.getBuyType()));
if (invoiceNoFlag) { if (invoiceNoFlag) {
ekpUpdateParam.setFd_3b5bf030ab1a56(success.getInvoiceNo()); ekpUpdateParam.setFd_3b5bf030ab1a56(success.getInvoiceNo());
} else {
ekpUpdateParam.setFd_3b5bf030ab1a56(detail.getInvoiceNo());
} }
if (policeNoFlag) { if (policeNoFlag) {
ekpUpdateParam.setFd_3bb431933ee968(success.getPolicyNo()); ekpUpdateParam.setFd_3bb431933ee968(success.getPolicyNo());
} else {
ekpUpdateParam.setFd_3bb431933ee968(detail.getPolicyNo());
} }
ekpUpdateParam.setFd_3b5bf031b52314(detail.getBuyStandard()); ekpUpdateParam.setFd_3b5bf031b52314(detail.getBuyStandard());
ekpUpdateParam.setFd_3b5bf032d7a822(detail.getId() + "_" + detail.getDefaultSettleId()); ekpUpdateParam.setFd_3b5bf032d7a822(detail.getId() + "_" + detail.getDefaultSettleId());
ekpUpdateParam.setFd_3b5bf0b7b4c058("操作人:" + user.getNickname() + ";操作时间:" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + invoiceNoInfo + policeNoInfo); ekpUpdateParam.setFd_3b5bf0b7b4c058("操作人:" + user.getNickname() + ";操作时间:" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + invoiceNoInfo + policeNoInfo);
doJointInsuranceTask.updateInsrancesDetail(ekpUpdateParam); doJointInsuranceTask.updateInsrancesDetailAllStatus(ekpUpdateParam);
} catch (Exception e) { } catch (Exception e) {
log.error("pushEkp error registeredInvoiceNo:", e.getMessage()); log.error("pushEkp error registeredInvoiceNo:", e.getMessage());
} }
...@@ -4446,7 +4441,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap ...@@ -4446,7 +4441,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
param.setErrorMessage(InsurancesConstants.BUY_STANDARD_NOT_EMPTY); param.setErrorMessage(InsurancesConstants.BUY_STANDARD_NOT_EMPTY);
continue; continue;
} }
if (StringUtils.isBlank(param.getInvoiceNo()) || StringUtils.isBlank(param.getPolicyNo())){ if (StringUtils.isBlank(param.getInvoiceNo()) && StringUtils.isBlank(param.getPolicyNo())){
param.setErrorMessage(InsurancesConstants.INVOICE_NO_EMPTY); param.setErrorMessage(InsurancesConstants.INVOICE_NO_EMPTY);
continue; continue;
} }
......
...@@ -730,6 +730,87 @@ public class DoJointInsuranceTask { ...@@ -730,6 +730,87 @@ public class DoJointInsuranceTask {
} }
} }
/**
* 更新商险订单明细
*
* @author huych
* @param param 转换类
* @return {@link TInsuranceSettlePushParam}
*/
@Async
public void updateInsrancesDetailAllStatus(EkpUpdateParam param) {
try {
//更新商险变更记录已结算
List<EkpInsurancesInfo> infoList = insurancesInfoMapper.getEkpInsurancesInfoNotSettle(param.getFd_3b5bf032d7a822());
if (Common.isNotNull(infoList)) {
for (EkpInsurancesInfo info :infoList) {
//保单开始时间
info.setFd_3b5bf17ae91f9c(DateUtil.stringToDate(param.getFd_3b5bf02d3b8fc4()));
//保单结束时间
info.setFd_3b5bf17c6df310(DateUtil.stringToDate(param.getFd_3b5bf02e1d47cc()));
//投保类型
info.setFd_3b5bf17d9297c2(param.getFd_3b5bf02fa14596());
//变更发票号
if (Common.isNotNull(param.getFd_3b5bf030ab1a56())) {
info.setFd_3b5bf17f2fc25c(param.getFd_3b5bf030ab1a56());
}
//变更保单号
if (Common.isNotNull(param.getFd_3bb431933ee968())) {
info.setFd_policy_change(param.getFd_3bb431933ee968());
}
//变更购买标准
info.setFd_3b5bf180e08fbe(param.getFd_3b5bf031b52314());
//商险变更记录
String updateInfo = "";
if (Common.isNotNull(info.getFd_3b3e4653122c9e())) {
updateInfo = info.getFd_3b3e4653122c9e() + "\\n";
}
info.setFd_3b5bf1628c5a68(updateInfo + param.getFd_3b5bf0b7b4c058());
insurancesInfoMapper.updateById(info);
}
}
//更新商险变更记录未结算
List<EkpInsurancesInfo> unInfoList = insurancesInfoMapper.getEkpInsurancesInfoSettle(param.getFd_3b5bf032d7a822());
if (Common.isNotNull(unInfoList)) {
for (EkpInsurancesInfo unInfo :unInfoList) {
//发票号
if (Common.isNotNull(param.getFd_3b5bf030ab1a56())) {
unInfo.setFd_3adfe65e0cd094(param.getFd_3b5bf030ab1a56());
unInfo.setFd_3b5bf17f2fc25c(param.getFd_3b5bf030ab1a56());
}
//保单号
if (Common.isNotNull(param.getFd_3bb431933ee968())) {
unInfo.setFd_3adfe65e60e110(param.getFd_3bb431933ee968());
unInfo.setFd_policy_change(param.getFd_3bb431933ee968());
}
//保险开始日期
unInfo.setFd_3adfe6b7e0ede8(DateUtil.stringToDate(param.getFd_3b5bf02d3b8fc4()));
//保险结束日期
unInfo.setFd_3adfe6b847bfe6(DateUtil.stringToDate(param.getFd_3b5bf02e1d47cc()));
//购买标准
unInfo.setFd_3adfe6d55384c6(Double.parseDouble(null == param.getFd_3b5bf031b52314() ? "0" : param.getFd_3b5bf031b52314()));
//保单开始时间
unInfo.setFd_3b5bf17ae91f9c(DateUtil.stringToDate(param.getFd_3b5bf02d3b8fc4()));
//保单结束时间
unInfo.setFd_3b5bf17c6df310(DateUtil.stringToDate(param.getFd_3b5bf02e1d47cc()));
//投保类型
unInfo.setFd_3b5bf17d9297c2(param.getFd_3b5bf02fa14596());
//变更购买标准
unInfo.setFd_3b5bf180e08fbe(param.getFd_3b5bf031b52314());
//商险变更记录
String updateInfo = "";
if (Common.isNotNull(unInfo.getFd_3b3e4653122c9e())) {
updateInfo = unInfo.getFd_3b3e4653122c9e() + "\\n";
}
unInfo.setFd_3b5bf1628c5a68(updateInfo + param.getFd_3b5bf0b7b4c058());
insurancesInfoMapper.updateById(unInfo);
}
}
}catch (Exception e) {
log.error("执行异常", e);
}
}
public static String dateStringInsert(String month) { public static String dateStringInsert(String month) {
if (month.length() == 6) { if (month.length() == 6) {
StringBuilder sb = new StringBuilder(month); StringBuilder sb = new StringBuilder(month);
......
...@@ -51,13 +51,13 @@ public class FailReasonConfig extends BaseEntity { ...@@ -51,13 +51,13 @@ public class FailReasonConfig extends BaseEntity {
@Schema(description = "关键字") @Schema(description = "关键字")
private String reasonKey; private String reasonKey;
/** /**
* 精简原因 * 精简失败原因
*/ */
@ExcelAttribute(name = "精简原因", isNotEmpty = true, errorInfo = "精简原因不能为空", maxLength = 200) @ExcelAttribute(name = "精简失败原因", isNotEmpty = true, errorInfo = "精简失败原因不能为空", maxLength = 200)
@NotBlank(message = "精简原因不能为空") @NotBlank(message = "精简失败原因不能为空")
@Length(max = 200, message = "精简原因不能超过200个字符") @Length(max = 200, message = "精简失败原因不能超过200个字符")
@ExcelProperty("精简原因") @ExcelProperty("精简失败原因")
@Schema(description = "精简原因") @Schema(description = "精简失败原因")
private String simpleReason; private String simpleReason;
/** /**
* 重新办理动作 1 继续办理 2 中止办理 3 人工办理 * 重新办理动作 1 继续办理 2 中止办理 3 人工办理
......
...@@ -410,6 +410,33 @@ public class SysHouseHoldInfo extends BaseEntity { ...@@ -410,6 +410,33 @@ public class SysHouseHoldInfo extends BaseEntity {
@ExcelProperty("医保减员花名册模板") @ExcelProperty("医保减员花名册模板")
private String reduceRosterTempYsd; private String reduceRosterTempYsd;
/**
* 医保是否强制参保:0否1是(默认是)
*/
@ExcelAttribute(name = "医保是否强制参保" )
@Schema(description ="医保是否强制参保")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医保是否强制参保")
private String ybsfqzcb;
/**
* 推送时,社保是否单个接口 0批量1单个(为空,则随isSingle)
*/
@ExcelAttribute(name = "社保推送类型" )
@Schema(description ="社保推送类型")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("社保推送类型")
private String isSingleYgsPush;
/**
* 推送时,医保是否单个接口 0批量1单个(为空,则随isSingleYsd)
*/
@ExcelAttribute(name = "医保推送类型" )
@Schema(description ="医保推送类型")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医保推送类型")
private String isSingleYsdPush;
/** /**
* 户与失败原因关联list * 户与失败原因关联list
*/ */
......
...@@ -1150,6 +1150,15 @@ public class TSocialInfo extends BaseEntity { ...@@ -1150,6 +1150,15 @@ public class TSocialInfo extends BaseEntity {
private String sfqztb; private String sfqztb;
// 以上是转为自动化办理查询使用的 // 以上是转为自动化办理查询使用的
/**
* 医保是否强制参保:0否1是(空则取社保户里的,大多为是,除了芜湖)
*/
@ExcelAttribute(name = "医保是否强制参保" )
@Schema(description ="医保是否强制参保")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医保是否强制参保")
private String ybsfqzcb;
// 派单id,社保士兵使用 // 派单id,社保士兵使用
@TableField(exist = false) @TableField(exist = false)
private String dispatchId; private String dispatchId;
......
package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
/**
* 失败原因配置-导出Vo
*/
@Data
@ColumnWidth(17)
public class FailReasonConfigExport {
@ExcelProperty("失败原因")
private String reason;
@ExcelProperty("关键字")
private String reasonKey;
@ExcelProperty("精简失败原因")
private String simpleReason;
@ExcelProperty("重新办理动作")
private String replay;
@ExcelProperty("状态")
private String status;
@ExcelProperty("更新人")
private String updateName;
@ExcelProperty("更新时间")
private String updateTime;
@ExcelProperty("创建人")
private String createName;
@ExcelProperty("创建时间")
private String createTime;
}
\ No newline at end of file
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.yifu.cloud.plus.v1.yifu.social.entity.FailReasonConfig;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* 失败原因配置
*
* @author hgw
* @date 2025-12-09 15:55:26
*/
@Data
public class FailReasonConfigSearchVo extends FailReasonConfig {
/**
* 多选导出或删除等操作
*/
@Schema(description = "选中ID,多个逗号分割")
private String ids;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema(description = "创建时间区间")
private LocalDateTime[] createTimes;
/**
* @Author fxj
* 查询数据起
**/
@Schema(description = "查询limit 开始")
private int limitStart;
/**
* @Author fxj
* 查询数据止
**/
@Schema(description = "查询limit 数据条数")
private int limitEnd;
private List<String> idList;
}
...@@ -218,4 +218,22 @@ public class SociaFriendYgsAddVo implements Serializable { ...@@ -218,4 +218,22 @@ public class SociaFriendYgsAddVo implements Serializable {
@ExcelProperty("身份证县" ) @ExcelProperty("身份证县" )
private String idCardTown; private String idCardTown;
/**
* 医保是否强制参保:0否1是(空则取社保户里的,大多为是,除了芜湖)
*/
@ExcelProperty("医保是否强制参保")
private String ybsfqzcb;
/**
* 推送时,社保是否单个接口 0批量1单个(为空,则随isSingle)
*/
@ExcelProperty("社保推送类型")
private String isSingleYgsPush;
/**
* 推送时,医保是否单个接口 0批量1单个(为空,则随isSingleYsd)
*/
@ExcelProperty("医保推送类型")
private String isSingleYsdPush;
} }
...@@ -188,4 +188,23 @@ public class SocialHandleSearchVo extends TDispatchInfo { ...@@ -188,4 +188,23 @@ public class SocialHandleSearchVo extends TDispatchInfo {
@ExcelIgnore @ExcelIgnore
private String backFileFlag; private String backFileFlag;
/**
* 养工失税友的任务ID
*/
@Length(max = 50, message = "养工失税友的任务ID 不能超过50个字符" )
@ExcelAttribute(name = "养工失税友的任务ID", maxLength = 50)
@Schema(description = "养工失税友的任务ID" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("养工失税友的任务ID" )
private String ygsRequestId;
/**
* 医生大税友的任务ID
*/
@Length(max = 50, message = "医生大税友的任务ID 不能超过50个字符" )
@ExcelAttribute(name = "医生大税友的任务ID", maxLength = 50)
@Schema(description = "医生大税友的任务ID" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医生大税友的任务ID" )
private String ysdRequestId;
} }
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
/**
* 社保医疗截止日配置-导出Vo
*/
@Data
@ColumnWidth(17)
public class TSocialDeadlineInfoExport {
@ExcelProperty("月份")
private String month;
@ExcelProperty("缴纳地")
private String provinceCityTown;
@ExcelProperty("社保增员起始日期")
private String socialStartDate;
@ExcelProperty("社保增员截止日期")
private String socialEndDate;
@ExcelProperty("社保减员起始日期")
private String socialStartDateReduce;
@ExcelProperty("社保减员截止日期")
private String socialEndDateReduce;
@ExcelProperty("社保预减员起始日期")
private String socialPreReduceStartDate;
@ExcelProperty("社保预减员截止日期")
private String socialPreReduceEndDate;
@ExcelProperty("医保增员起始日期")
private String medicalStartDate;
@ExcelProperty("医保增员截止日期")
private String medicalEndDate;
@ExcelProperty("医保减员起始日期")
private String medicalStartDateReduce;
@ExcelProperty("医保减员截止日期")
private String medicalEndDateReduce;
@ExcelProperty("更新人")
private String updateName;
@ExcelProperty("更新时间")
private String updateTime;
// 0 非基础配置 1基础配置
@ExcelProperty("基准")
private String type;
// 启用禁用:0启用 1 禁用
@ExcelProperty("状态")
private String status;
}
...@@ -21,6 +21,7 @@ import io.swagger.v3.oas.annotations.media.Schema; ...@@ -21,6 +21,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
/** /**
* 社保医疗截止日配置 * 社保医疗截止日配置
...@@ -31,47 +32,49 @@ import java.time.LocalDateTime; ...@@ -31,47 +32,49 @@ import java.time.LocalDateTime;
@Data @Data
public class TSocialDeadlineInfoSearchVo extends TSocialDeadlineInfo { public class TSocialDeadlineInfoSearchVo extends TSocialDeadlineInfo {
/** /**
* 多选导出或删除等操作 * 多选导出或删除等操作
*/ */
@Schema(description = "选中ID,多个逗号分割") @Schema(description = "选中ID,多个逗号分割")
private String ids; private String ids;
/** /**
* 创建时间区间 [开始时间,结束时间] * 创建时间区间 [开始时间,结束时间]
*/ */
@Schema(description = "创建时间区间") @Schema(description = "创建时间区间")
private LocalDateTime[] createTimes; private LocalDateTime[] createTimes;
@Schema(description = "更新时间起") @Schema(description = "更新时间起")
private LocalDateTime updateTimeStart; private LocalDateTime updateTimeStart;
@Schema(description = "更新时间止") @Schema(description = "更新时间止")
private LocalDateTime updateTimeEnd; private LocalDateTime updateTimeEnd;
/** /**
* @Author fxj * @Author fxj
* 查询数据起 * 查询数据起
**/ **/
@Schema(description = "查询limit 开始") @Schema(description = "查询limit 开始")
private int limitStart; private int limitStart;
/** /**
* @Author fxj * @Author fxj
* 查询数据止 * 查询数据止
**/ **/
@Schema(description = "查询limit 数据条数") @Schema(description = "查询limit 数据条数")
private int limitEnd; private int limitEnd;
/** /**
* @Author fxj * @Author fxj
* 月份起时间 * 月份起时间
**/ **/
@Schema(description = "查询month 开始") @Schema(description = "查询month 开始")
private int monthStart; private int monthStart;
/** /**
* @Author fxj * @Author fxj
* 月份止时间 * 月份止时间
**/ **/
@Schema(description = "查询month 数据条数") @Schema(description = "查询month 数据条数")
private int monthEnd; private int monthEnd;
private List<String> idList;
} }
...@@ -269,4 +269,23 @@ public class TSocialHouseholdInsertVo extends RowIndex implements Serializable { ...@@ -269,4 +269,23 @@ public class TSocialHouseholdInsertVo extends RowIndex implements Serializable {
@HeadFontStyle(fontHeightInPoints = 11) @HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医保仅补缴生成材料") @ExcelProperty("医保仅补缴生成材料")
private String dataFlagYsd; private String dataFlagYsd;
/**
* 推送时,社保是否单个接口 0批量1单个(为空,则随isSingle)
*/
@ExcelAttribute(name = "社保推送税友接口通道" )
@Schema(description ="社保推送税友接口通道")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("社保推送税友接口通道")
private String isSingleYgsPush;
/**
* 推送时,医保是否单个接口 0批量1单个(为空,则随isSingleYsd)
*/
@ExcelAttribute(name = "医保推送税友接口通道" )
@Schema(description ="医保推送税友接口通道")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医保推送税友接口通道")
private String isSingleYsdPush;
} }
...@@ -270,4 +270,22 @@ public class TSocialHouseholdUpdateVo extends RowIndex implements Serializable { ...@@ -270,4 +270,22 @@ public class TSocialHouseholdUpdateVo extends RowIndex implements Serializable {
@ExcelProperty("医保仅补缴生成材料") @ExcelProperty("医保仅补缴生成材料")
private String dataFlagYsd; private String dataFlagYsd;
/**
* 推送时,社保是否单个接口 0批量1单个(为空,则随isSingle)
*/
@ExcelAttribute(name = "社保推送税友接口通道" )
@Schema(description ="社保推送税友接口通道")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("社保推送税友接口通道")
private String isSingleYgsPush;
/**
* 推送时,医保是否单个接口 0批量1单个(为空,则随isSingleYsd)
*/
@ExcelAttribute(name = "医保推送税友接口通道" )
@Schema(description ="医保推送税友接口通道")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医保推送税友接口通道")
private String isSingleYsdPush;
} }
...@@ -142,4 +142,13 @@ public class TSocialSoldierPageVo extends TDispatchInfo { ...@@ -142,4 +142,13 @@ public class TSocialSoldierPageVo extends TDispatchInfo {
@ExcelProperty("社保反馈文件下载标识" ) @ExcelProperty("社保反馈文件下载标识" )
private String backFileFlag; private String backFileFlag;
/**
* 医保是否强制参保:0否1是(空则取社保户里的,大多为是,除了芜湖)
*/
@ExcelAttribute(name = "医保是否强制参保" )
@Schema(description ="医保是否强制参保")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医保是否强制参保")
private String ybsfqzcb;
} }
...@@ -396,6 +396,9 @@ public class SocialFriendConfig { ...@@ -396,6 +396,9 @@ public class SocialFriendConfig {
xzlb = "企业职工养老,工伤保险,失业保险"; xzlb = "企业职工养老,工伤保险,失业保险";
if (type > 2) { if (type > 2) {
xzlb = null; xzlb = null;
// 2025-12-8 10:30:50 mvp1.7.18-shuiyou分支,
// 改为按单位+个人金额来判断是否需要这个险种,本次只改医疗+大病,生育没有个人金额,养工失没有浮动
// ,同全服福保专员陈红确认
if (Common.isNotNull(vo.getUnitMedicalMoney()) && CommonConstants.ONE_INTEGER.equals(vo.getUnitMedicalMoney())) { if (Common.isNotNull(vo.getUnitMedicalMoney()) && CommonConstants.ONE_INTEGER.equals(vo.getUnitMedicalMoney())) {
xzlb = "职工基本医疗保险"; xzlb = "职工基本医疗保险";
} }
...@@ -468,16 +471,27 @@ public class SocialFriendConfig { ...@@ -468,16 +471,27 @@ public class SocialFriendConfig {
tszdxx.put("ybygxs", "原固定职工"); tszdxx.put("ybygxs", "原固定职工");
// 毕业院校 // 毕业院校
tszdxx.put("byyx", vo.getByyx()); tszdxx.put("byyx", vo.getByyx());
if (Common.isNotNull(vo.getIsSingle()) && CommonConstants.ONE_STRING.equals(vo.getIsSingle())) {
tszdxx.put("sfpl", "否");
}
if (type < 3) { if (type < 3) {
// 企业职工社会保险增员花名册 安徽非必填! // 企业职工社会保险增员花名册 安徽非必填!
// 社保增员必填 // 社保增员必填
tszdxx.put("qyzgshbxzyhmc", vo.getQyzgshbxzyhmc()); tszdxx.put("qyzgshbxzyhmc", vo.getQyzgshbxzyhmc());
// 社保是否批量
if (Common.isNotNull(vo.getIsSingleYgsPush()) && CommonConstants.ONE_STRING.equals(vo.getIsSingleYgsPush())) {
tszdxx.put("sfpl", "否");
}
} else { } else {
if (Common.isNotNull(vo.getYbsfqzcb())) {
tszdxx.put("ybsfqzcb", vo.getYbsfqzcb());
}
// 增员、减员必填 // 增员、减员必填
tszdxx.put("qyzgjbylbxcbdjb", arr); tszdxx.put("qyzgjbylbxcbdjb", arr);
// 医保是否批量
if (Common.isNotNull(vo.getIsSingleYsdPush()) && CommonConstants.ONE_STRING.equals(vo.getIsSingleYsdPush())) {
tszdxx.put("ybsfpl", "否");
}
} }
cbrymdOne.put("tszdxx", tszdxx); cbrymdOne.put("tszdxx", tszdxx);
...@@ -571,6 +585,11 @@ public class SocialFriendConfig { ...@@ -571,6 +585,11 @@ public class SocialFriendConfig {
// 入狱/失踪/死亡日期 yyyy-MM-dd // 入狱/失踪/死亡日期 yyyy-MM-dd
tszdxx.put("ryszswrq", vo.getLeaveDay()); tszdxx.put("ryszswrq", vo.getLeaveDay());
} }
// 医保是否批量
if (Common.isNotNull(vo.getIsSingleYsdPush()) && CommonConstants.ONE_STRING.equals(vo.getIsSingleYsdPush())) {
tszdxx.put("ybsfpl", "否");
}
} else { } else {
// 是否强制停保:目前仅社保,税友暂不支持医保 // 是否强制停保:目前仅社保,税友暂不支持医保
if (Common.isNotNull(vo.getSfqztb()) && "是".equals(vo.getSfqztb())) { if (Common.isNotNull(vo.getSfqztb()) && "是".equals(vo.getSfqztb())) {
...@@ -584,6 +603,11 @@ public class SocialFriendConfig { ...@@ -584,6 +603,11 @@ public class SocialFriendConfig {
tszdxx.put("shjycl", vo.getImgListYgs().get(0)); tszdxx.put("shjycl", vo.getImgListYgs().get(0));
} }
} }
// 社保是否批量
if (Common.isNotNull(vo.getIsSingleYgsPush()) && CommonConstants.ONE_STRING.equals(vo.getIsSingleYgsPush())) {
tszdxx.put("sfpl", "否");
}
} }
cbrymdOne.put("tszdxx", tszdxx); cbrymdOne.put("tszdxx", tszdxx);
cbrymdArr.add(cbrymdOne); cbrymdArr.add(cbrymdOne);
......
...@@ -11,11 +11,13 @@ import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog; ...@@ -11,11 +11,13 @@ import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils; import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.social.entity.FailReasonConfig; import com.yifu.cloud.plus.v1.yifu.social.entity.FailReasonConfig;
import com.yifu.cloud.plus.v1.yifu.social.service.FailReasonConfigService; import com.yifu.cloud.plus.v1.yifu.social.service.FailReasonConfigService;
import com.yifu.cloud.plus.v1.yifu.social.vo.FailReasonConfigSearchVo;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
...@@ -126,4 +128,16 @@ public class FailReasonConfigController { ...@@ -126,4 +128,16 @@ public class FailReasonConfigController {
return R.ok(failReasonConfigService.removeById(id)); return R.ok(failReasonConfigService.removeById(id));
} }
/**
* 失败原因配置批量导出
* @author hgw
* @date 2025-12-09 15:55:26
**/
@Operation(summary = "失败原因配置批量导出")
@SysLog("失败原因配置批量导出")
@PostMapping("/export")
public void export(HttpServletResponse response, @RequestBody FailReasonConfigSearchVo searchVo) {
failReasonConfigService.listExport(response,searchVo);
}
} }
\ No newline at end of file
...@@ -17,13 +17,9 @@ ...@@ -17,13 +17,9 @@
package com.yifu.cloud.plus.v1.yifu.social.controller; package com.yifu.cloud.plus.v1.yifu.social.controller;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil; import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
...@@ -34,7 +30,6 @@ import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog; ...@@ -34,7 +30,6 @@ import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity; import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner; 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.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceTypeRate;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialDeadlineInfo; import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialDeadlineInfo;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialDeadlineInfoService; import com.yifu.cloud.plus.v1.yifu.social.service.TSocialDeadlineInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoSearchVo; import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoSearchVo;
...@@ -195,14 +190,14 @@ public class TSocialDeadlineInfoController { ...@@ -195,14 +190,14 @@ public class TSocialDeadlineInfoController {
} }
/** /**
* 社保医疗截止日配置 批量导出 * @Description: 办理截止日期批量导出
* * @Author: hgw
* @author fxj * @Date: 2025/12/9 17:09
* @date 2024-05-08 11:52:09 * @return: void
**/ **/
@Operation(description = "导出社保医疗截止日配置 hasPermission('demo_tsocialdeadlineinfo-export')") @Operation(summary = "办理截止日期批量导出")
@SysLog("办理截止日期批量导出")
@PostMapping("/export") @PostMapping("/export")
@PreAuthorize("@pms.hasPermission('demo_tsocialdeadlineinfo-export')")
public void export(HttpServletResponse response, @RequestBody TSocialDeadlineInfoSearchVo searchVo) { public void export(HttpServletResponse response, @RequestBody TSocialDeadlineInfoSearchVo searchVo) {
tSocialDeadlineInfoService.listExport(response, searchVo); tSocialDeadlineInfoService.listExport(response, searchVo);
} }
......
...@@ -226,6 +226,7 @@ public class TSocialInfoController { ...@@ -226,6 +226,7 @@ public class TSocialInfoController {
/** /**
* @param id * @param id
* @param isSocial 1 社保 2 医保 3 全部 * @param isSocial 1 社保 2 医保 3 全部
* @param ybsfqzcb 医保是否强制参保:0否1是
* @Description: * @Description:
* @Author: hgw * @Author: hgw
* @Date: 2024/8/1 18:12 * @Date: 2024/8/1 18:12
...@@ -233,17 +234,19 @@ public class TSocialInfoController { ...@@ -233,17 +234,19 @@ public class TSocialInfoController {
**/ **/
@Operation(summary = "转自动化", description = "转自动化") @Operation(summary = "转自动化", description = "转自动化")
@GetMapping("/doAuto" ) @GetMapping("/doAuto" )
public R<String> doAuto(@RequestParam String id, @RequestParam String isSocial) { public R<String> doAuto(@RequestParam String id, @RequestParam String isSocial
, @RequestParam(required = false) String ybsfqzcb) {
YifuUser user = SecurityUtils.getUser(); YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) { if (user == null || Common.isEmpty(user.getId())) {
return R.failed("请登录!"); return R.failed("请登录!");
} }
return tSocialInfoService.doAuto(id, isSocial, user); return tSocialInfoService.doAuto(id, isSocial, ybsfqzcb, user);
} }
/** /**
* @param idList * @param idList
* @param isSocial 1 社保 2 医保 3 全部 * @param isSocial 1 社保 2 医保 3 全部
* @param ybsfqzcb 医保是否强制参保:0否1是
* @Description: 转人工-批量 * @Description: 转人工-批量
* @Author: hgw * @Author: hgw
* @Date: 2024/8/1 18:12 * @Date: 2024/8/1 18:12
...@@ -251,12 +254,13 @@ public class TSocialInfoController { ...@@ -251,12 +254,13 @@ public class TSocialInfoController {
**/ **/
@Operation(summary = "转自动化-批量", description = "转自动化-批量") @Operation(summary = "转自动化-批量", description = "转自动化-批量")
@PostMapping("/doAutoBatch" ) @PostMapping("/doAutoBatch" )
public R<String> doAutoBatch(@RequestBody List<String> idList, @RequestParam String isSocial) { public R<String> doAutoBatch(@RequestBody List<String> idList, @RequestParam String isSocial
, @RequestParam(required = false) String ybsfqzcb) {
YifuUser user = SecurityUtils.getUser(); YifuUser user = SecurityUtils.getUser();
if (user == null || Common.isEmpty(user.getId())) { if (user == null || Common.isEmpty(user.getId())) {
return R.failed("请登录!"); return R.failed("请登录!");
} }
return tSocialInfoService.doAutoBatch(idList, isSocial, user); return tSocialInfoService.doAutoBatch(idList, isSocial, ybsfqzcb, user);
} }
} }
...@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.social.entity.FailReasonConfig; import com.yifu.cloud.plus.v1.yifu.social.entity.FailReasonConfig;
import com.yifu.cloud.plus.v1.yifu.social.vo.FailReasonConfigExport;
import com.yifu.cloud.plus.v1.yifu.social.vo.FailReasonConfigSearchVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -32,4 +34,8 @@ public interface FailReasonConfigMapper extends BaseMapper<FailReasonConfig> { ...@@ -32,4 +34,8 @@ public interface FailReasonConfigMapper extends BaseMapper<FailReasonConfig> {
// 获取户里的配置 // 获取户里的配置
List<FailReasonConfig> getFailReasonConfigListByHu(); List<FailReasonConfig> getFailReasonConfigListByHu();
int getFailReasonConfigExportCount(@Param("failReasonConfig") FailReasonConfigSearchVo failReasonConfig);
List<FailReasonConfigExport> getFailReasonConfigListExport(@Param("failReasonConfig") FailReasonConfigSearchVo failReasonConfig);
} }
...@@ -21,9 +21,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -21,9 +21,13 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialDeadlineInfo; import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialDeadlineInfo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoExport;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoSearchVo;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 社保医疗截止日配置 * 社保医疗截止日配置
* *
...@@ -39,4 +43,9 @@ public interface TSocialDeadlineInfoMapper extends BaseMapper<TSocialDeadlineInf ...@@ -39,4 +43,9 @@ public interface TSocialDeadlineInfoMapper extends BaseMapper<TSocialDeadlineInf
* @return * @return
*/ */
IPage<TSocialDeadlineInfo> getTSocialDeadlineInfoPage(Page<TSocialDeadlineInfo> page, @Param("tSocialDeadlineInfo") TSocialDeadlineInfo tSocialDeadlineInfo); IPage<TSocialDeadlineInfo> getTSocialDeadlineInfoPage(Page<TSocialDeadlineInfo> page, @Param("tSocialDeadlineInfo") TSocialDeadlineInfo tSocialDeadlineInfo);
int getTSocialDeadlineInfoExportCount(@Param("tSocialDeadlineInfo") TSocialDeadlineInfoSearchVo tSocialDeadlineInfo);
List<TSocialDeadlineInfoExport> getTSocialDeadlineInfoListExport(@Param("tSocialDeadlineInfo") TSocialDeadlineInfoSearchVo tSocialDeadlineInfo);
} }
...@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.social.entity.FailReasonConfig; import com.yifu.cloud.plus.v1.yifu.social.entity.FailReasonConfig;
import com.yifu.cloud.plus.v1.yifu.social.vo.FailReasonConfigSearchVo;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -32,4 +34,8 @@ public interface FailReasonConfigService extends IService<FailReasonConfig> { ...@@ -32,4 +34,8 @@ public interface FailReasonConfigService extends IService<FailReasonConfig> {
* @return: java.util.Map<java.lang.String, com.yifu.cloud.plus.v1.yifu.social.entity.FailReasonConfig> * @return: java.util.Map<java.lang.String, com.yifu.cloud.plus.v1.yifu.social.entity.FailReasonConfig>
**/ **/
Map<String, FailReasonConfig> getFailReasonMap(); Map<String, FailReasonConfig> getFailReasonMap();
// 导出
void listExport(HttpServletResponse response, FailReasonConfigSearchVo searchVo);
} }
\ No newline at end of file
...@@ -47,6 +47,7 @@ public interface TSocialDeadlineInfoService extends IService<TSocialDeadlineInfo ...@@ -47,6 +47,7 @@ public interface TSocialDeadlineInfoService extends IService<TSocialDeadlineInfo
R<List<ErrorMessage>> importDiy(InputStream inputStream); R<List<ErrorMessage>> importDiy(InputStream inputStream);
// 办理截止日期批量导出
void listExport(HttpServletResponse response, TSocialDeadlineInfoSearchVo searchVo); void listExport(HttpServletResponse response, TSocialDeadlineInfoSearchVo searchVo);
List<TSocialDeadlineInfo> noPageDiy(TSocialDeadlineInfoSearchVo searchVo); List<TSocialDeadlineInfo> noPageDiy(TSocialDeadlineInfoSearchVo searchVo);
......
...@@ -116,23 +116,25 @@ public interface TSocialInfoService extends IService<TSocialInfo> { ...@@ -116,23 +116,25 @@ public interface TSocialInfoService extends IService<TSocialInfo> {
/** /**
* @param idList 社保IDlist * @param idList 社保IDlist
* @param isSocial 1:社保 2:医保 3:全部 * @param isSocial 1:社保 2:医保 3:全部
* @param ybsfqzcb 医保是否强制参保:0否1是
* @param user 当前登录人 * @param user 当前登录人
* @Description: 批量转自动化 * @Description: 批量转自动化
* @Author: hgw * @Author: hgw
* @Date: 2025/4/25 17:24 * @Date: 2025/4/25 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String> * @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/ **/
R<String> doAutoBatch(List<String> idList, String isSocial, YifuUser user); R<String> doAutoBatch(List<String> idList, String isSocial, String ybsfqzcb, YifuUser user);
/** /**
* @param id 社保ID * @param id 社保ID
* @param isSocial 1:社保 2:医保 3:全部 * @param isSocial 1:社保 2:医保 3:全部
* @param ybsfqzcb 医保是否强制参保:0否1是
* @param user 当前登录人 * @param user 当前登录人
* @Description: 转自动化 * @Description: 转自动化
* @Author: hgw * @Author: hgw
* @Date: 2025/4/25 17:24 * @Date: 2025/4/25 17:24
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String> * @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/ **/
R<String> doAuto(String id, String isSocial, YifuUser user); R<String> doAuto(String id, String isSocial, String ybsfqzcb, YifuUser user);
} }
package com.yifu.cloud.plus.v1.yifu.social.service.impl; package com.yifu.cloud.plus.v1.yifu.social.service.impl;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants; import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import com.yifu.cloud.plus.v1.yifu.social.entity.FailReasonConfig; import com.yifu.cloud.plus.v1.yifu.social.entity.FailReasonConfig;
import com.yifu.cloud.plus.v1.yifu.social.mapper.FailReasonConfigMapper; import com.yifu.cloud.plus.v1.yifu.social.mapper.FailReasonConfigMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.FailReasonConfigService; import com.yifu.cloud.plus.v1.yifu.social.service.FailReasonConfigService;
import com.yifu.cloud.plus.v1.yifu.social.vo.FailReasonConfigExport;
import com.yifu.cloud.plus.v1.yifu.social.vo.FailReasonConfigSearchVo;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -62,4 +74,57 @@ public class FailReasonConfigServiceImpl extends ServiceImpl<FailReasonConfigMap ...@@ -62,4 +74,57 @@ public class FailReasonConfigServiceImpl extends ServiceImpl<FailReasonConfigMap
return map; return map;
} }
@Override
public void listExport(HttpServletResponse response, FailReasonConfigSearchVo searchVo) {
String fileName = "失败原因配置批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<FailReasonConfigExport> list = new ArrayList<>();
//获取要导出的列表
if (Common.isNotNull(searchVo.getIds())) {
searchVo.setIdList(Common.getList(searchVo.getIds()));
}
long count = baseMapper.getFailReasonConfigExportCount(searchVo);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType(CommonConstants.MULTIPART_FORM_DATA);
response.setCharacterEncoding("utf-8");
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName, CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
ExcelWriter excelWriter = EasyExcelFactory.write(out, FailReasonConfigExport.class).build();
int index = 0;
if (count > CommonConstants.ZERO_INT) {
for (int i = 0; i <= count; i += CommonConstants.EXCEL_EXPORT_LIMIT) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = baseMapper.getFailReasonConfigListExport(searchVo);
if (Common.isNotNull(list)) {
WriteSheet writeSheet = EasyExcelFactory.writerSheet("失败原因配置" + index).build();
excelWriter.write(list, writeSheet);
index++;
}
}
} else {
WriteSheet writeSheet = EasyExcelFactory.writerSheet("失败原因配置" + index).build();
excelWriter.write(list, writeSheet);
}
if (Common.isNotNull(list)) {
list.clear();
}
out.flush();
excelWriter.finish();
} catch (Exception e) {
log.error("执行异常", e);
} finally {
try {
if (null != out) {
out.close();
}
} catch (IOException e) {
log.error("执行异常", e);
}
}
}
} }
\ No newline at end of file
...@@ -933,6 +933,8 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap ...@@ -933,6 +933,8 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
household.setHouseType(excel.getHouseType().equals(HouseConfigConstants.HOUSE_TYPE_ONE) ? "1" : "0"); household.setHouseType(excel.getHouseType().equals(HouseConfigConstants.HOUSE_TYPE_ONE) ? "1" : "0");
household.setAuditUser(null == auditUser.getUserId() ? "" : auditUser.getUserId()); household.setAuditUser(null == auditUser.getUserId() ? "" : auditUser.getUserId());
household.setHandleUser(null == handlerUser.getUserId() ? "" :handlerUser.getUserId()); household.setHandleUser(null == handlerUser.getUserId() ? "" :handlerUser.getUserId());
// 初始化
household.setIsSingleYgsPush(null);
//如果社保自动化为是时,才更新 推送类型、是否生成花名册、是否仅补缴生成材料、 //如果社保自动化为是时,才更新 推送类型、是否生成花名册、是否仅补缴生成材料、
if (CommonConstants.ZERO_STRING.equals(household.getAutoStatus())){ if (CommonConstants.ZERO_STRING.equals(household.getAutoStatus())){
if (Common.isNotNull(excel.getRosterAutoFlagYgs())){ if (Common.isNotNull(excel.getRosterAutoFlagYgs())){
...@@ -947,13 +949,26 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap ...@@ -947,13 +949,26 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
} }
if (Common.isNotNull(excel.getIsSingle())){ if (Common.isNotNull(excel.getIsSingle())){
household.setIsSingle(excel.getIsSingle().equals(HouseConfigConstants.IS_SINGLE_NO) ? "0" : "1"); if (excel.getIsSingle().equals(HouseConfigConstants.IS_SINGLE_NO)) {
household.setIsSingle(CommonConstants.ZERO_STRING);
household.setIsSingleYgsPush(CommonConstants.ZERO_STRING);
} else {
household.setIsSingle(CommonConstants.ONE_STRING);
// MVP 1.7.18,单个里,加了接口通道:
// 2025-12-10 11:06:25 用例评审,产品与测试要求默认单个,而不是空,错误的也是默认单个
household.setIsSingleYgsPush(CommonConstants.ONE_STRING);
if (Common.isNotNull(excel.getIsSingleYgsPush()) && HouseConfigConstants.IS_SINGLE_NO.equals(excel.getIsSingleYgsPush())) {
household.setIsSingleYgsPush(CommonConstants.ZERO_STRING);
}
}
} }
}else { }else {
household.setRosterAutoFlagYgs(null); household.setRosterAutoFlagYgs(null);
household.setDataFlagYgs(null); household.setDataFlagYgs(null);
household.setIsSingle(null); household.setIsSingle(null);
} }
// 初始化
household.setIsSingleYsdPush(null);
//如果医保自动化为是时,才更新 推送类型、是否生成花名册、是否仅补缴生成材料、 //如果医保自动化为是时,才更新 推送类型、是否生成花名册、是否仅补缴生成材料、
if (CommonConstants.ZERO_STRING.equals(household.getAutoStatusYsd())){ if (CommonConstants.ZERO_STRING.equals(household.getAutoStatusYsd())){
if (Common.isNotNull(excel.getRosterAutoFlagYsd())){ if (Common.isNotNull(excel.getRosterAutoFlagYsd())){
...@@ -968,8 +983,20 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap ...@@ -968,8 +983,20 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
} }
if (Common.isNotNull(excel.getIsSingleYsd())){ if (Common.isNotNull(excel.getIsSingleYsd())){
household.setIsSingleYsd(excel.getIsSingleYsd().equals(HouseConfigConstants.IS_SINGLE_NO) ? "0" : "1"); if (excel.getIsSingleYsd().equals(HouseConfigConstants.IS_SINGLE_NO)) {
household.setIsSingleYsd(CommonConstants.ZERO_STRING);
household.setIsSingleYsdPush(CommonConstants.ZERO_STRING);
} else {
household.setIsSingleYsd(CommonConstants.ONE_STRING);
// MVP 1.7.18,单个里,加了接口通道:
// 2025-12-10 11:06:25 用例评审,产品与测试要求默认单个,而不是空,错误的也是默认单个
household.setIsSingleYsdPush(CommonConstants.ONE_STRING);
if (Common.isNotNull(excel.getIsSingleYsdPush()) && HouseConfigConstants.IS_SINGLE_NO.equals(excel.getIsSingleYsdPush())) {
household.setIsSingleYsdPush(CommonConstants.ZERO_STRING);
}
}
} }
}else { }else {
household.setRosterAutoFlagYsd(null); household.setRosterAutoFlagYsd(null);
household.setDataFlagYsd(null); household.setDataFlagYsd(null);
...@@ -1304,10 +1331,25 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap ...@@ -1304,10 +1331,25 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
if (Common.isNotNull(excel.getAutoStatusYsd())) { if (Common.isNotNull(excel.getAutoStatusYsd())) {
info.setAutoStatusYsd(excel.getAutoStatusYsd().equals(CommonConstants.IS_TRUE) ? "0" : "1"); info.setAutoStatusYsd(excel.getAutoStatusYsd().equals(CommonConstants.IS_TRUE) ? "0" : "1");
} }
info.setIsSingleYgsPush(null);
if (CommonConstants.ZERO_STRING.equals(info.getAutoStatus())){ if (CommonConstants.ZERO_STRING.equals(info.getAutoStatus())){
if (Common.isNotNull(excel.getIsSingle())) { if (Common.isNotNull(excel.getIsSingle())){
info.setIsSingle(excel.getIsSingle().equals(HouseConfigConstants.IS_SINGLE_NO) ? "0" : "1"); if (excel.getIsSingle().equals(HouseConfigConstants.IS_SINGLE_NO)) {
info.setIsSingle(CommonConstants.ZERO_STRING);
info.setIsSingleYgsPush(CommonConstants.ZERO_STRING);
} else {
info.setIsSingle(CommonConstants.ONE_STRING);
// MVP 1.7.18,单个里,加了接口通道:
if (Common.isNotNull(excel.getIsSingleYgsPush())) {
if (HouseConfigConstants.IS_SINGLE_NO.equals(excel.getIsSingleYgsPush())) {
info.setIsSingleYgsPush(CommonConstants.ZERO_STRING);
} else if (HouseConfigConstants.IS_SINGLE_YES.equals(excel.getIsSingleYgsPush())) {
info.setIsSingleYgsPush(CommonConstants.ONE_STRING);
}
}
} }
}
if (CommonConstants.IS_TRUE.equals(excel.getRosterAutoFlagYgs())){ if (CommonConstants.IS_TRUE.equals(excel.getRosterAutoFlagYgs())){
if (Common.isNotNull(excel.getDataFlagYgs())) { if (Common.isNotNull(excel.getDataFlagYgs())) {
info.setDataFlagYgs(excel.getDataFlagYgs().equals(CommonConstants.IS_TRUE) ? "1" : "0"); info.setDataFlagYgs(excel.getDataFlagYgs().equals(CommonConstants.IS_TRUE) ? "1" : "0");
...@@ -1324,13 +1366,29 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap ...@@ -1324,13 +1366,29 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
info.setDataFlagYgs(null); info.setDataFlagYgs(null);
info.setRosterAutoFlagYgs(null); info.setRosterAutoFlagYgs(null);
} }
info.setIsSingleYsdPush(null);
if (CommonConstants.ZERO_STRING.equals(info.getAutoStatusYsd())){ if (CommonConstants.ZERO_STRING.equals(info.getAutoStatusYsd())){
if (Common.isNotNull(excel.getIsSingleYsd())){
if (excel.getIsSingleYsd().equals(HouseConfigConstants.IS_SINGLE_NO)) {
info.setIsSingleYsd(CommonConstants.ZERO_STRING);
info.setIsSingleYsdPush(CommonConstants.ZERO_STRING);
} else {
info.setIsSingleYsd(CommonConstants.ONE_STRING);
// MVP 1.7.18,单个里,加了接口通道:
if (Common.isNotNull(excel.getIsSingleYsdPush())) {
if (HouseConfigConstants.IS_SINGLE_NO.equals(excel.getIsSingleYsdPush())) {
info.setIsSingleYsdPush(CommonConstants.ZERO_STRING);
} else if (HouseConfigConstants.IS_SINGLE_YES.equals(excel.getIsSingleYsdPush())) {
info.setIsSingleYsdPush(CommonConstants.ONE_STRING);
}
}
}
}
if (Common.isNotNull(excel.getRosterAutoFlagYsd())) { if (Common.isNotNull(excel.getRosterAutoFlagYsd())) {
info.setRosterAutoFlagYsd(excel.getRosterAutoFlagYsd().equals(CommonConstants.IS_TRUE) ? "1" : "0"); info.setRosterAutoFlagYsd(excel.getRosterAutoFlagYsd().equals(CommonConstants.IS_TRUE) ? "1" : "0");
} }
if (Common.isNotNull(excel.getIsSingleYsd())) {
info.setIsSingleYsd(excel.getIsSingleYsd().equals(HouseConfigConstants.IS_SINGLE_NO) ? "0" : "1");
}
if (CommonConstants.IS_TRUE.equals(excel.getRosterAutoFlagYsd())){ if (CommonConstants.IS_TRUE.equals(excel.getRosterAutoFlagYsd())){
if (Common.isNotNull(excel.getDataFlagYsd())) { if (Common.isNotNull(excel.getDataFlagYsd())) {
info.setDataFlagYsd(excel.getDataFlagYsd().equals(CommonConstants.IS_TRUE) ? "1" : "0"); info.setDataFlagYsd(excel.getDataFlagYsd().equals(CommonConstants.IS_TRUE) ? "1" : "0");
......
...@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.social.service.impl; ...@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.social.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener; import com.alibaba.excel.read.listener.ReadListener;
...@@ -39,6 +40,7 @@ import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialDeadlineInfo; ...@@ -39,6 +40,7 @@ import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialDeadlineInfo;
import com.yifu.cloud.plus.v1.yifu.social.mapper.THolidayInfoMapper; import com.yifu.cloud.plus.v1.yifu.social.mapper.THolidayInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialDeadlineInfoMapper; import com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialDeadlineInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialDeadlineInfoService; import com.yifu.cloud.plus.v1.yifu.social.service.TSocialDeadlineInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoExport;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoSearchVo; import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoVo; import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoVo;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -77,18 +79,17 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI ...@@ -77,18 +79,17 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI
return baseMapper.getTSocialDeadlineInfoPage(page, tSocialDeadlineInfo); return baseMapper.getTSocialDeadlineInfoPage(page, tSocialDeadlineInfo);
} }
/**
* 社保医疗截止日配置批量导出
*
* @param searchVo 社保医疗截止日配置
* @return
*/
@Override @Override
public void listExport(HttpServletResponse response, TSocialDeadlineInfoSearchVo searchVo) { public void listExport(HttpServletResponse response, TSocialDeadlineInfoSearchVo searchVo) {
String fileName = "社保医疗截止日配置批量导出" + DateUtil.getThisTime() + ".xlsx"; String fileName = "办理截止日期批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表 //获取要导出的列表
List<TSocialDeadlineInfo> list = new ArrayList<>(); List<TSocialDeadlineInfoExport> list = new ArrayList<>();
long count = noPageCountDiy(searchVo); //获取要导出的列表
if (Common.isNotNull(searchVo.getIds())) {
searchVo.setIdList(Common.getList(searchVo.getIds()));
}
//权限赋值
long count = baseMapper.getTSocialDeadlineInfoExportCount(searchVo);
ServletOutputStream out = null; ServletOutputStream out = null;
try { try {
out = response.getOutputStream(); out = response.getOutputStream();
...@@ -96,33 +97,22 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI ...@@ -96,33 +97,22 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI
response.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8");
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName, CommonConstants.UTF8)); response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName, CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭 // 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
//EasyExcel.write(out, TEmpBadRecord.class).sheet("不良记录").doWrite(list); ExcelWriter excelWriter = EasyExcelFactory.write(out, TSocialDeadlineInfoExport.class).build();
ExcelWriter excelWriter = EasyExcel.write(out, TSocialDeadlineInfo.class).build();
int index = 0; int index = 0;
if (count > CommonConstants.ZERO_INT) { if (count > CommonConstants.ZERO_INT) {
for (int i = 0; i <= count; ) { for (int i = 0; i <= count; i += CommonConstants.EXCEL_EXPORT_LIMIT) {
// 获取实际记录 // 获取实际记录
searchVo.setLimitStart(i); searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT); searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = noPageDiy(searchVo); list = baseMapper.getTSocialDeadlineInfoListExport(searchVo);
if (Common.isNotNull(list)) { if (Common.isNotNull(list)) {
ExcelUtil<TSocialDeadlineInfo> util = new ExcelUtil<>(TSocialDeadlineInfo.class); WriteSheet writeSheet = EasyExcelFactory.writerSheet("办理截止日期" + index).build();
for (TSocialDeadlineInfo vo : list) {
util.convertEntity(vo, null, null, null);
}
}
if (Common.isNotNull(list)) {
WriteSheet writeSheet = EasyExcel.writerSheet("社保医疗截止日配置" + index).build();
excelWriter.write(list, writeSheet); excelWriter.write(list, writeSheet);
index++; index++;
} }
i = i + CommonConstants.EXCEL_EXPORT_LIMIT;
if (Common.isNotNull(list)) {
list.clear();
}
} }
} else { } else {
WriteSheet writeSheet = EasyExcel.writerSheet("社保医疗截止日配置" + index).build(); WriteSheet writeSheet = EasyExcelFactory.writerSheet("办理截止日期" + index).build();
excelWriter.write(list, writeSheet); excelWriter.write(list, writeSheet);
} }
if (Common.isNotNull(list)) { if (Common.isNotNull(list)) {
......
...@@ -591,6 +591,7 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci ...@@ -591,6 +591,7 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci
/** /**
* @param idList 社保IDlist * @param idList 社保IDlist
* @param isSocial 1:社保 2:医保 3:全部 * @param isSocial 1:社保 2:医保 3:全部
* @param ybsfqzcb 医保是否强制参保:0否1是
* @param user 当前登录人 * @param user 当前登录人
* @Description: 批量转自动化 * @Description: 批量转自动化
* @Author: hgw * @Author: hgw
...@@ -598,9 +599,9 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci ...@@ -598,9 +599,9 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String> * @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/ **/
@Override @Override
public R<String> doAutoBatch(List<String> idList, String isSocial, YifuUser user) { public R<String> doAutoBatch(List<String> idList, String isSocial, String ybsfqzcb, YifuUser user) {
for (String id : idList) { for (String id : idList) {
doAuto(id, isSocial, user); doAuto(id, isSocial, ybsfqzcb, user);
} }
return R.ok("成功!"); return R.ok("成功!");
} }
...@@ -608,6 +609,7 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci ...@@ -608,6 +609,7 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci
/** /**
* @param id 社保ID * @param id 社保ID
* @param isSocial 1:社保 2:医保 3:全部 * @param isSocial 1:社保 2:医保 3:全部
* @param ybsfqzcb 医保是否强制参保:0否1是
* @param user 当前登录人 * @param user 当前登录人
* @Description: 转自动化 * @Description: 转自动化
* @Author: hgw * @Author: hgw
...@@ -615,7 +617,7 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci ...@@ -615,7 +617,7 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String> * @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.lang.String>
**/ **/
@Override @Override
public R<String> doAuto(String id, String isSocial, YifuUser user) { public R<String> doAuto(String id, String isSocial, String ybsfqzcb, YifuUser user) {
TSocialInfo socialInfo = this.getById(id); TSocialInfo socialInfo = this.getById(id);
if (socialInfo == null || Common.isEmpty(socialInfo.getId())) { if (socialInfo == null || Common.isEmpty(socialInfo.getId())) {
return R.failed("未找到社保"); return R.failed("未找到社保");
...@@ -672,6 +674,33 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci ...@@ -672,6 +674,33 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci
return R.failed("当前医疗生育大病-办理状态不可以转自动化!"); return R.failed("当前医疗生育大病-办理状态不可以转自动化!");
} }
} }
// 医保强制参保:
//推送时,如果社保本身有值,用社保的,如果没有,用户的。
//转自动化时,可选:
//空(非必填项)(不改变社保的值,社保是空(取户),否,是,都不产生变化,也不加这块的日志)
//是(改社保为是)(若社保原先为 空或否,加日志)
//否(改社保为否)(若社保原先为 空或是,加日志)
String oldYbsfqzcb = socialInfo.getYbsfqzcb();
if (Common.isNotNull(ybsfqzcb) && !ybsfqzcb.equals(oldYbsfqzcb)) {
socialInfo.setYbsfqzcb(ybsfqzcb);
if (Common.isNotNull(handleRemark)) {
handleRemark += ";";
}
handleRemark += "改变了医保强制参保的值:";
String oldYbsfqzcbValue = "“空”";
if (Common.isNotNull(oldYbsfqzcb)) {
if (CommonConstants.ZERO_STRING.equals(oldYbsfqzcb)) {
oldYbsfqzcbValue = "“否”";
} else if (CommonConstants.ONE_STRING.equals(oldYbsfqzcb)) {
oldYbsfqzcbValue = "“是”";
}
}
String newYbsfqzcbValue = "“否”";
if (CommonConstants.ONE_STRING.equals(ybsfqzcb)) {
newYbsfqzcbValue = "“是”";
}
handleRemark += oldYbsfqzcbValue+"→"+ newYbsfqzcbValue;
}
// 更新社保和加日志 // 更新社保和加日志
return doUpdateCoreAndLog(user, socialInfo, handleRemark, canUpdate, disExist); return doUpdateCoreAndLog(user, socialInfo, handleRemark, canUpdate, disExist);
} }
......
...@@ -42,10 +42,10 @@ ...@@ -42,10 +42,10 @@
AND a.REASON LIKE concat('%',#{failReasonConfig.reason},'%') AND a.REASON LIKE concat('%',#{failReasonConfig.reason},'%')
</if> </if>
<if test="failReasonConfig.reasonKey != null and failReasonConfig.reasonKey.trim() != ''"> <if test="failReasonConfig.reasonKey != null and failReasonConfig.reasonKey.trim() != ''">
AND a.REASON_KEY = #{failReasonConfig.reasonKey} AND a.REASON_KEY LIKE concat('%',#{failReasonConfig.reasonKey},'%')
</if> </if>
<if test="failReasonConfig.simpleReason != null and failReasonConfig.simpleReason.trim() != ''"> <if test="failReasonConfig.simpleReason != null and failReasonConfig.simpleReason.trim() != ''">
AND a.SIMPLE_REASON = #{failReasonConfig.simpleReason} AND a.SIMPLE_REASON LIKE concat('%',#{failReasonConfig.simpleReason},'%')
</if> </if>
<if test="failReasonConfig.replay != null and failReasonConfig.replay.trim() != ''"> <if test="failReasonConfig.replay != null and failReasonConfig.replay.trim() != ''">
AND a.REPLAY = #{failReasonConfig.replay} AND a.REPLAY = #{failReasonConfig.replay}
...@@ -56,6 +56,12 @@ ...@@ -56,6 +56,12 @@
<if test="failReasonConfig.isReplace != null and failReasonConfig.isReplace.trim() != ''"> <if test="failReasonConfig.isReplace != null and failReasonConfig.isReplace.trim() != ''">
AND a.IS_REPLACE = #{failReasonConfig.isReplace} AND a.IS_REPLACE = #{failReasonConfig.isReplace}
</if> </if>
<if test="failReasonConfig.createName != null and failReasonConfig.createName.trim() != ''">
AND a.CREATE_NAME LIKE concat('%',#{failReasonConfig.createName},'%')
</if>
<if test="failReasonConfig.updateName != null and failReasonConfig.updateName.trim() != ''">
AND a.UPDATE_NAME LIKE concat('%',#{failReasonConfig.updateName},'%')
</if>
</if> </if>
</sql> </sql>
<!--failReasonConfig简单分页查询--> <!--failReasonConfig简单分页查询-->
...@@ -114,4 +120,57 @@ ...@@ -114,4 +120,57 @@
LEFT JOIN fail_reason_config a on r.FAIL_ID=a.id LEFT JOIN fail_reason_config a on r.FAIL_ID=a.id
where a.status = '0' where a.status = '0'
</select> </select>
<!-- 导出查条数 -->
<select id="getFailReasonConfigExportCount" resultType="java.lang.Integer">
SELECT
count(1)
FROM fail_reason_config a
<where>
1=1
<include refid="failReasonConfig_where"/>
<if test="failReasonConfig != null">
<if test="failReasonConfig.idList != null">
AND a.id in
<foreach item="idStr" index="index" collection="failReasonConfig.idList" open="(" separator="," close=")">
#{idStr}
</foreach>
</if>
</if>
</where>
</select>
<!-- 导出数据 -->
<select id="getFailReasonConfigListExport" resultType="com.yifu.cloud.plus.v1.yifu.social.vo.FailReasonConfigExport">
SELECT
a.REASON reason,
a.REASON_KEY reasonKey,
a.SIMPLE_REASON simpleReason,
case a.REPLAY when '1' then '继续办理' when '2' then '中止办理' when '3' then '人工办理' else a.REPLAY end replay,
if(a.STATUS = '0','启用','禁用') status,
a.UPDATE_NAME updateName,
DATE_FORMAT(a.UPDATE_TIME,'%Y-%m-%d %H:%i:%s') updateTime,
a.CREATE_NAME createName,
DATE_FORMAT(a.CREATE_TIME,'%Y-%m-%d %H:%i:%s') createTime
FROM fail_reason_config a
<where>
1=1
<include refid="failReasonConfig_where"/>
<if test="failReasonConfig != null">
<if test="failReasonConfig.idList != null">
AND a.id in
<foreach item="idStr" index="index" collection="failReasonConfig.idList" open="(" separator="," close=")">
#{idStr}
</foreach>
</if>
</if>
</where>
order by a.CREATE_TIME desc
<if test="failReasonConfig != null">
<if test="failReasonConfig.limitStart != null">
limit #{failReasonConfig.limitStart},#{failReasonConfig.limitEnd}
</if>
</if>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -70,6 +70,9 @@ ...@@ -70,6 +70,9 @@
<result property="reduceRosterTempYgs" column="REDUCE_ROSTER_TEMP_YGS"/> <result property="reduceRosterTempYgs" column="REDUCE_ROSTER_TEMP_YGS"/>
<result property="addRosterTempYsd" column="ADD_ROSTER_TEMP_YSD"/> <result property="addRosterTempYsd" column="ADD_ROSTER_TEMP_YSD"/>
<result property="reduceRosterTempYsd" column="REDUCE_ROSTER_TEMP_YSD"/> <result property="reduceRosterTempYsd" column="REDUCE_ROSTER_TEMP_YSD"/>
<result property="ybsfqzcb" column="YBSFQZCB"/>
<result property="isSingleYgsPush" column="IS_SINGLE_YGS_PUSH"/>
<result property="isSingleYsdPush" column="IS_SINGLE_YSD_PUSH"/>
</resultMap> </resultMap>
<resultMap id="sysHouseHoldSingleInfoMap" type="com.yifu.cloud.plus.v1.yifu.social.entity.SysHouseHoldInfo"> <resultMap id="sysHouseHoldSingleInfoMap" type="com.yifu.cloud.plus.v1.yifu.social.entity.SysHouseHoldInfo">
...@@ -124,6 +127,10 @@ ...@@ -124,6 +127,10 @@
a.REDUCE_ROSTER_TEMP_YGS, a.REDUCE_ROSTER_TEMP_YGS,
a.ADD_ROSTER_TEMP_YSD, a.ADD_ROSTER_TEMP_YSD,
a.REDUCE_ROSTER_TEMP_YSD a.REDUCE_ROSTER_TEMP_YSD
,a.YBSFQZCB
,a.IS_SINGLE_YGS_PUSH
,a.IS_SINGLE_YSD_PUSH
</sql> </sql>
<sql id="sysHouseHoldInfo_where"> <sql id="sysHouseHoldInfo_where">
<if test="sysHouseHoldInfo != null"> <if test="sysHouseHoldInfo != null">
......
...@@ -1554,6 +1554,7 @@ ...@@ -1554,6 +1554,7 @@
<result property="ygsSocialStartDateNext" column="YGS_SOCIAL_START_DATE_NEXT"/> <result property="ygsSocialStartDateNext" column="YGS_SOCIAL_START_DATE_NEXT"/>
<result property="ysdSocialStartDateNext" column="YSD_SOCIAL_START_DATE_NEXT"/> <result property="ysdSocialStartDateNext" column="YSD_SOCIAL_START_DATE_NEXT"/>
<result property="backFileFlag" column="BACK_FILE_FLAG"/> <result property="backFileFlag" column="BACK_FILE_FLAG"/>
<result property="ybsfqzcb" column="YBSFQZCB"/>
</resultMap> </resultMap>
<select id="getTSocialSoldierHandlePage" resultMap="socialSoldierPageMap"> <select id="getTSocialSoldierHandlePage" resultMap="socialSoldierPageMap">
...@@ -1654,7 +1655,8 @@ ...@@ -1654,7 +1655,8 @@
a.IS_SINGLE_YSD, a.IS_SINGLE_YSD,
a.IS_AUTO_LEAVE_DOC, a.IS_AUTO_LEAVE_DOC,
a.ROSTER_AUTO_FLAG_YGS, a.ROSTER_AUTO_FLAG_YGS,
a.ROSTER_AUTO_FLAG_YSD a.ROSTER_AUTO_FLAG_YSD,
s.YBSFQZCB
FROM t_dispatch_info a FROM t_dispatch_info a
LEFT JOIN t_social_info s ON a.SOCIAL_ID = s.id LEFT JOIN t_social_info s ON a.SOCIAL_ID = s.id
LEFT JOIN t_dispatch_social_fund_info h ON a.id = h.REDUCE_SOCIAL_FUND_ID LEFT JOIN t_dispatch_social_fund_info h ON a.id = h.REDUCE_SOCIAL_FUND_ID
...@@ -2221,6 +2223,13 @@ ...@@ -2221,6 +2223,13 @@
AND s.YSD_REMARK like concat('%',#{tDispatchInfo.ysdRemark},'%') AND s.YSD_REMARK like concat('%',#{tDispatchInfo.ysdRemark},'%')
</if> </if>
<if test="tDispatchInfo.ygsRequestId != null and tDispatchInfo.ygsRequestId.trim() != ''">
and if(a.type ='0' and s.add_ygs_Handle_Status != '0', s.add_YGS_REQUEST_ID, s.YGS_REQUEST_ID) = #{tDispatchInfo.ygsRequestId}
</if>
<if test="tDispatchInfo.ysdRequestId != null and tDispatchInfo.ysdRequestId.trim() != ''">
AND if(a.type ='0' and s.add_ysd_Handle_Status != '0', s.add_YSD_REQUEST_ID, s.YSD_REQUEST_ID) = #{tDispatchInfo.ysdRequestId}
</if>
<if test="tDispatchInfo.ygsYsdHandleStatusArr != null and tDispatchInfo.ygsYsdHandleStatusArr.length > 0"> <if test="tDispatchInfo.ygsYsdHandleStatusArr != null and tDispatchInfo.ygsYsdHandleStatusArr.length > 0">
AND ( AND (
s.YGS_HANDLE_STATUS in s.YGS_HANDLE_STATUS in
...@@ -2270,6 +2279,13 @@ ...@@ -2270,6 +2279,13 @@
AND s.YSD_REMARK like concat('%',#{tDispatchInfo.ysdRemark},'%') AND s.YSD_REMARK like concat('%',#{tDispatchInfo.ysdRemark},'%')
</if> </if>
<if test="tDispatchInfo.ygsRequestId != null and tDispatchInfo.ygsRequestId.trim() != ''">
AND s.YGS_REQUEST_ID = #{tDispatchInfo.ygsRequestId}
</if>
<if test="tDispatchInfo.ysdRequestId != null and tDispatchInfo.ysdRequestId.trim() != ''">
AND s.YSD_REQUEST_ID = #{tDispatchInfo.ysdRequestId}
</if>
<if test="tDispatchInfo.ygsYsdHandleStatusArr != null and tDispatchInfo.ygsYsdHandleStatusArr.length > 0"> <if test="tDispatchInfo.ygsYsdHandleStatusArr != null and tDispatchInfo.ygsYsdHandleStatusArr.length > 0">
AND ( AND (
s.YGS_HANDLE_STATUS in s.YGS_HANDLE_STATUS in
......
...@@ -144,4 +144,70 @@ ...@@ -144,4 +144,70 @@
order by a.month DESC order by a.month DESC
,a.id desc ,a.id desc
</select> </select>
<!-- 导出查条数 -->
<select id="getTSocialDeadlineInfoExportCount" resultType="java.lang.Integer">
SELECT
count(1)
FROM t_social_deadline_info a
<where>
1=1
<include refid="tSocialDeadlineInfo_where"/>
<if test="tSocialDeadlineInfo != null">
<if test="tSocialDeadlineInfo.idList != null">
AND a.id in
<foreach item="idStr" index="index" collection="tSocialDeadlineInfo.idList" open="(" separator="," close=")">
#{idStr}
</foreach>
</if>
</if>
</where>
</select>
<!-- 导出数据 -->
<select id="getTSocialDeadlineInfoListExport" resultType="com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoExport">
SELECT
a.MONTH month,
concat(ifnull(sp.AREA_NAME,'')
,if(sc.AREA_NAME is not null,concat('/',sc.AREA_NAME),'')
,if(st.AREA_NAME is not null,concat('/',st.AREA_NAME),'')
) provinceCityTown,
DATE_FORMAT(a.SOCIAL_START_DATE,'%Y-%m-%d %H:%i') socialStartDate,
DATE_FORMAT(a.SOCIAL_END_DATE,'%Y-%m-%d %H:%i') socialEndDate,
DATE_FORMAT(a.SOCIAL_START_DATE_REDUCE,'%Y-%m-%d %H:%i') socialStartDateReduce,
DATE_FORMAT(a.SOCIAL_END_DATE_REDUCE,'%Y-%m-%d %H:%i') socialEndDateReduce,
DATE_FORMAT(a.SOCIAL_PRE_REDUCE_START_DATE,'%Y-%m-%d %H:%i') socialPreReduceStartDate,
DATE_FORMAT(a.SOCIAL_PRE_REDUCE_END_DATE,'%Y-%m-%d %H:%i') socialPreReduceEndDate,
DATE_FORMAT(a.MEDICAL_START_DATE,'%Y-%m-%d %H:%i') medicalStartDate,
DATE_FORMAT(a.MEDICAL_END_DATE,'%Y-%m-%d %H:%i') medicalEndDate,
DATE_FORMAT(a.MEDICAL_START_DATE_REDUCE,'%Y-%m-%d %H:%i') medicalStartDateReduce,
DATE_FORMAT(a.MEDICAL_END_DATE_REDUCE,'%Y-%m-%d %H:%i') medicalEndDateReduce,
a.UPDATE_NAME updateName,
DATE_FORMAT(a.UPDATE_TIME,'%Y-%m-%d %H:%i:%s') updateTime,
if(a.TYPE='0','非基础配置','基础配置') type,
if(a.status='0','启用','禁用') status
FROM t_social_deadline_info a
left join sys_area sp on sp.id = a.PROVINCE
left join sys_area sc on sc.id = a.CITY
left join sys_area st on st.id = a.TOWN
<where>
1=1
<include refid="tSocialDeadlineInfo_where"/>
<if test="tSocialDeadlineInfo != null">
<if test="tSocialDeadlineInfo.idList != null">
AND a.id in
<foreach item="idStr" index="index" collection="tSocialDeadlineInfo.idList" open="(" separator="," close=")">
#{idStr}
</foreach>
</if>
</if>
</where>
order by a.month DESC,a.id desc
<if test="tSocialDeadlineInfo != null">
<if test="tSocialDeadlineInfo.limitStart != null">
limit #{tSocialDeadlineInfo.limitStart},#{tSocialDeadlineInfo.limitEnd}
</if>
</if>
</select>
</mapper> </mapper>
...@@ -109,6 +109,8 @@ ...@@ -109,6 +109,8 @@
,idp.AREA_NAME idCardProvince ,idp.AREA_NAME idCardProvince
,idc.AREA_NAME idCardCity ,idc.AREA_NAME idCardCity
,idt.AREA_NAME idCardTown ,idt.AREA_NAME idCardTown
,ifnull(shh.IS_SINGLE_YGS_PUSH,a.IS_SINGLE) isSingleYgsPush
,ifnull(shh.IS_SINGLE_YSD_PUSH,a.IS_SINGLE_YSD) isSingleYsdPush
</sql> </sql>
...@@ -205,12 +207,16 @@ ...@@ -205,12 +207,16 @@
<include refid="getSocialSoldierBaseOne"/> <include refid="getSocialSoldierBaseOne"/>
,if(YSD_SOCIAL_START_DATE_NEXT is not null,DATE_FORMAT(s.YSD_SOCIAL_START_DATE_NEXT,"%Y-%m-%d"), if(s.MEDICAL_START is not null,DATE_FORMAT(s.MEDICAL_START,"%Y-%m-%d"),DATE_FORMAT(s.SOCIAL_START_DATE,"%Y-%m-%d"))) socialStartDate ,if(YSD_SOCIAL_START_DATE_NEXT is not null,DATE_FORMAT(s.YSD_SOCIAL_START_DATE_NEXT,"%Y-%m-%d"), if(s.MEDICAL_START is not null,DATE_FORMAT(s.MEDICAL_START,"%Y-%m-%d"),DATE_FORMAT(s.SOCIAL_START_DATE,"%Y-%m-%d"))) socialStartDate
,if(YSD_SOCIAL_START_DATE_NEXT is not null,DATE_FORMAT(s.YSD_SOCIAL_START_DATE_NEXT,"%Y%m"), if(s.MEDICAL_START is not null,DATE_FORMAT(s.MEDICAL_START,"%Y%m"),DATE_FORMAT(s.SOCIAL_START_DATE,"%Y%m"))) socialStartMonth ,if(YSD_SOCIAL_START_DATE_NEXT is not null,DATE_FORMAT(s.YSD_SOCIAL_START_DATE_NEXT,"%Y%m"), if(s.MEDICAL_START is not null,DATE_FORMAT(s.MEDICAL_START,"%Y%m"),DATE_FORMAT(s.SOCIAL_START_DATE,"%Y%m"))) socialStartMonth
,if(s.UNIT_MEDICAL_MONEY != 0,1,0) unitMedicalMoney,if(s.UNIT_BIRTH_MONEY != 0,1,0) unitBirthMoney,if(s.UNIT_BIGAILMENT_MONEY != 0,1,0) unitBigailmentMoney
,if(s.UNIT_MEDICAL_MONEY != 0 or s.PERSONAL_MEDICAL_MONEY != 0,1,0) unitMedicalMoney
,if(s.UNIT_BIRTH_MONEY != 0,1,0) unitBirthMoney
,if(s.UNIT_BIGAILMENT_MONEY != 0 or s.PERSONAL_BIGAILMENT_MONEY != 0,1,0) unitBigailmentMoney
,if(DATE_FORMAT(if(YSD_SOCIAL_START_DATE_NEXT is not null,YSD_SOCIAL_START_DATE_NEXT,if(s.MEDICAL_START is not null,s.MEDICAL_START,s.SOCIAL_START_DATE)),'%Y-%m')>DATE_FORMAT(s.AUDIT_TIME,"%Y-%m") ,if(DATE_FORMAT(if(YSD_SOCIAL_START_DATE_NEXT is not null,YSD_SOCIAL_START_DATE_NEXT,if(s.MEDICAL_START is not null,s.MEDICAL_START,s.SOCIAL_START_DATE)),'%Y-%m')>DATE_FORMAT(s.AUDIT_TIME,"%Y-%m")
,'' ,''
,CONCAT('补缴',DATE_FORMAT(if(YSD_SOCIAL_START_DATE_NEXT is not null,YSD_SOCIAL_START_DATE_NEXT,if(s.MEDICAL_START is not null,s.MEDICAL_START,s.SOCIAL_START_DATE)),'%Y-%m'))) buJiaoRemark ,CONCAT('补缴',DATE_FORMAT(if(YSD_SOCIAL_START_DATE_NEXT is not null,YSD_SOCIAL_START_DATE_NEXT,if(s.MEDICAL_START is not null,s.MEDICAL_START,s.SOCIAL_START_DATE)),'%Y-%m'))) buJiaoRemark
,s.UNIT_MEDICAL_CARDINAL unitMedicalCardinal ,s.UNIT_MEDICAL_CARDINAL unitMedicalCardinal
,ifnull(s.YBSFQZCB,shh.YBSFQZCB) ybsfqzcb
<include refid="getSocialSoldierBaseTwo"/> <include refid="getSocialSoldierBaseTwo"/>
<if test="idsStr != null and idsStr.size > 0"> <if test="idsStr != null and idsStr.size > 0">
...@@ -318,6 +324,8 @@ ...@@ -318,6 +324,8 @@
,DATE_FORMAT(now(),"%Y年%m月%d日") nowDay ,DATE_FORMAT(now(),"%Y年%m月%d日") nowDay
,s.UNIT_MEDICAL_CARDINAL unitMedicalCardinal ,s.UNIT_MEDICAL_CARDINAL unitMedicalCardinal
,s.SOCIAL_HOUSEHOLD huId ,s.SOCIAL_HOUSEHOLD huId
,ifnull(shh.IS_SINGLE_YGS_PUSH,a.IS_SINGLE) isSingleYgsPush
,ifnull(shh.IS_SINGLE_YSD_PUSH,a.IS_SINGLE_YSD) isSingleYsdPush
<include refid="getSocialSoldierBaseTwo"/> <include refid="getSocialSoldierBaseTwo"/>
<if test="idsStr != null and idsStr.size > 0"> <if test="idsStr != null and idsStr.size > 0">
/*派单推的,有ID,则查单个推送的,立即推*/ /*派单推的,有ID,则查单个推送的,立即推*/
......
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