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 {
@Schema(description = "任务信息")
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 {
@TableField(exist = false)
@Schema(description = "字段格式化或键值对")
private String fieldValue;
/**
* 公司主体Id
*/
@TableField(exist = false)
@Schema(description = "公司主体Id")
private String companyId;
}
......@@ -208,6 +208,8 @@ public class EmployeeContractVO extends RowIndex implements Serializable {
@ExcelProperty("备注")
private String remark;
@ExcelAttribute(name = "签署方式", maxLength = 32)
@ExcelProperty("签署方式")
@Schema(description = "签署方式1线下签0电子签")
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;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.vo.TEmployeeContractPrePushFascVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -50,4 +51,10 @@ public interface TEmpContactInfoMapper extends BaseMapper<TEmpContactInfo> {
List<TEmpContactInfo> getContactByDeptId(@Param("deptId") String deptId);
List<TEmpContactInfo> getContactByIdCardList(@Param("idCardList") List<String> idCardList);
/* 获取紧急联系人信息,电子签推送法大大需要用紧急联系人相关字段 */
TEmployeeContractPrePushFascVo getTEmpContactInfoOneByCard(@Param("empIdCard") String empIdCard);
/* 获取档案信息,电子签推送法大大需要用紧急联系人相关字段 */
TEmployeeContractPrePushFascVo getTEmpInfoOneByCard(@Param("empIdCard") String empIdCard);
}
......@@ -251,7 +251,16 @@ public class FascUtil {
pushLog.setTypeName("获取明细映射");
tFascPushLogService.save(pushLog);
res = templateClient.getSignTemplateDetail(signTemplateDetailReq);
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);
}
if (res != null) {
// 更新日志
......
......@@ -110,6 +110,43 @@
</where>
</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
<include refid="Base_Column_List"/>
......
......@@ -144,6 +144,9 @@
<if test="tFascTemplateDetail.contractType != null and tFascTemplateDetail.contractType.trim() != ''">
AND b.contract_type = #{tFascTemplateDetail.contractType}
</if>
<if test="tFascTemplateDetail.companyId != null and tFascTemplateDetail.companyId.trim() != ''">
AND b.company_id = #{tFascTemplateDetail.companyId}
</if>
</if>
</sql>
<!--tFascTemplateDetail简单分页查询-->
......
......@@ -131,6 +131,19 @@ public class EmployeeRegistrationController {
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
*/
R updateRegist(EmployeeRegistration registration);
/**
* 单个更新,更新入离职日期和手机号码
* @param registration 入离职登记
* @return
*/
R updateEmpRegistInfo(EmployeeRegistration registration);
/**
* 导出
* @param searchVo 入离职登记
......
......@@ -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.constants.RegistConstants;
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.TOperationLog;
import com.yifu.cloud.plus.v1.csp.mapper.EmployeeRegistrationMapper;
......@@ -1382,6 +1383,49 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
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
public R batchUpdatePreById(List<EmployeeRegistrationReceiveVo> employeeRegistList) {
YifuUser user = SecurityUtils.getUser();
......
......@@ -154,6 +154,9 @@ public class EkpInsurancesInfo {
@Schema(description = "变更发票号")
private String fd_3b5bf17f2fc25c;
@Schema(description = "变更保单号")
private String fd_policy_change;
@Schema(description = "变更购买标准")
private String fd_3b5bf180e08fbe;
......
......@@ -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.SalaryRiskVo;
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.ChangeDeptVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TIncomeDetailReturnVo;
......@@ -2487,18 +2486,14 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
ekpUpdateParam.setFd_3b5bf02fa14596(getBuyType(detail.getBuyType()));
if (invoiceNoFlag) {
ekpUpdateParam.setFd_3b5bf030ab1a56(success.getInvoiceNo());
} else {
ekpUpdateParam.setFd_3b5bf030ab1a56(detail.getInvoiceNo());
}
if (policeNoFlag) {
ekpUpdateParam.setFd_3bb431933ee968(success.getPolicyNo());
} else {
ekpUpdateParam.setFd_3bb431933ee968(detail.getPolicyNo());
}
ekpUpdateParam.setFd_3b5bf031b52314(detail.getBuyStandard());
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);
doJointInsuranceTask.updateInsrancesDetail(ekpUpdateParam);
doJointInsuranceTask.updateInsrancesDetailAllStatus(ekpUpdateParam);
} catch (Exception e) {
log.error("pushEkp error registeredInvoiceNo:", e.getMessage());
}
......@@ -4446,7 +4441,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
param.setErrorMessage(InsurancesConstants.BUY_STANDARD_NOT_EMPTY);
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);
continue;
}
......
......@@ -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) {
if (month.length() == 6) {
StringBuilder sb = new StringBuilder(month);
......
......@@ -51,13 +51,13 @@ public class FailReasonConfig extends BaseEntity {
@Schema(description = "关键字")
private String reasonKey;
/**
* 精简原因
* 精简失败原因
*/
@ExcelAttribute(name = "精简原因", isNotEmpty = true, errorInfo = "精简原因不能为空", maxLength = 200)
@NotBlank(message = "精简原因不能为空")
@Length(max = 200, message = "精简原因不能超过200个字符")
@ExcelProperty("精简原因")
@Schema(description = "精简原因")
@ExcelAttribute(name = "精简失败原因", isNotEmpty = true, errorInfo = "精简失败原因不能为空", maxLength = 200)
@NotBlank(message = "精简失败原因不能为空")
@Length(max = 200, message = "精简失败原因不能超过200个字符")
@ExcelProperty("精简失败原因")
@Schema(description = "精简失败原因")
private String simpleReason;
/**
* 重新办理动作 1 继续办理 2 中止办理 3 人工办理
......
......@@ -410,6 +410,33 @@ public class SysHouseHoldInfo extends BaseEntity {
@ExcelProperty("医保减员花名册模板")
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
*/
......
......@@ -1150,6 +1150,15 @@ public class TSocialInfo extends BaseEntity {
private String sfqztb;
// 以上是转为自动化办理查询使用的
/**
* 医保是否强制参保:0否1是(空则取社保户里的,大多为是,除了芜湖)
*/
@ExcelAttribute(name = "医保是否强制参保" )
@Schema(description ="医保是否强制参保")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医保是否强制参保")
private String ybsfqzcb;
// 派单id,社保士兵使用
@TableField(exist = false)
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 {
@ExcelProperty("身份证县" )
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 {
@ExcelIgnore
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;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* 社保医疗截止日配置
......@@ -31,47 +32,49 @@ import java.time.LocalDateTime;
@Data
public class TSocialDeadlineInfoSearchVo extends TSocialDeadlineInfo {
/**
* 多选导出或删除等操作
*/
@Schema(description = "选中ID,多个逗号分割")
private String ids;
/**
* 多选导出或删除等操作
*/
@Schema(description = "选中ID,多个逗号分割")
private String ids;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema(description = "创建时间区间")
private LocalDateTime[] createTimes;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema(description = "创建时间区间")
private LocalDateTime[] createTimes;
@Schema(description = "更新时间起")
private LocalDateTime updateTimeStart;
@Schema(description = "更新时间起")
private LocalDateTime updateTimeStart;
@Schema(description = "更新时间止")
private LocalDateTime updateTimeEnd;
/**
* @Author fxj
* 查询数据起
**/
@Schema(description = "查询limit 开始")
private int limitStart;
/**
* @Author fxj
* 查询数据止
**/
@Schema(description = "查询limit 数据条数")
private int limitEnd;
@Schema(description = "更新时间止")
private LocalDateTime updateTimeEnd;
/**
* @Author fxj
* 查询数据起
**/
@Schema(description = "查询limit 开始")
private int limitStart;
/**
* @Author fxj
* 查询数据止
**/
@Schema(description = "查询limit 数据条数")
private int limitEnd;
/**
* @Author fxj
* 月份起时间
**/
@Schema(description = "查询month 开始")
private int monthStart;
/**
* @Author fxj
* 月份止时间
**/
@Schema(description = "查询month 数据条数")
private int monthEnd;
/**
* @Author fxj
* 月份起时间
**/
@Schema(description = "查询month 开始")
private int monthStart;
/**
* @Author fxj
* 月份止时间
**/
@Schema(description = "查询month 数据条数")
private int monthEnd;
private List<String> idList;
}
......@@ -269,4 +269,23 @@ public class TSocialHouseholdInsertVo extends RowIndex implements Serializable {
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医保仅补缴生成材料")
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 {
@ExcelProperty("医保仅补缴生成材料")
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 {
@ExcelProperty("社保反馈文件下载标识" )
private String backFileFlag;
/**
* 医保是否强制参保:0否1是(空则取社保户里的,大多为是,除了芜湖)
*/
@ExcelAttribute(name = "医保是否强制参保" )
@Schema(description ="医保是否强制参保")
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty("医保是否强制参保")
private String ybsfqzcb;
}
......@@ -396,6 +396,9 @@ public class SocialFriendConfig {
xzlb = "企业职工养老,工伤保险,失业保险";
if (type > 2) {
xzlb = null;
// 2025-12-8 10:30:50 mvp1.7.18-shuiyou分支,
// 改为按单位+个人金额来判断是否需要这个险种,本次只改医疗+大病,生育没有个人金额,养工失没有浮动
// ,同全服福保专员陈红确认
if (Common.isNotNull(vo.getUnitMedicalMoney()) && CommonConstants.ONE_INTEGER.equals(vo.getUnitMedicalMoney())) {
xzlb = "职工基本医疗保险";
}
......@@ -468,16 +471,27 @@ public class SocialFriendConfig {
tszdxx.put("ybygxs", "原固定职工");
// 毕业院校
tszdxx.put("byyx", vo.getByyx());
if (Common.isNotNull(vo.getIsSingle()) && CommonConstants.ONE_STRING.equals(vo.getIsSingle())) {
tszdxx.put("sfpl", "否");
}
if (type < 3) {
// 企业职工社会保险增员花名册 安徽非必填!
// 社保增员必填
tszdxx.put("qyzgshbxzyhmc", vo.getQyzgshbxzyhmc());
// 社保是否批量
if (Common.isNotNull(vo.getIsSingleYgsPush()) && CommonConstants.ONE_STRING.equals(vo.getIsSingleYgsPush())) {
tszdxx.put("sfpl", "否");
}
} else {
if (Common.isNotNull(vo.getYbsfqzcb())) {
tszdxx.put("ybsfqzcb", vo.getYbsfqzcb());
}
// 增员、减员必填
tszdxx.put("qyzgjbylbxcbdjb", arr);
// 医保是否批量
if (Common.isNotNull(vo.getIsSingleYsdPush()) && CommonConstants.ONE_STRING.equals(vo.getIsSingleYsdPush())) {
tszdxx.put("ybsfpl", "否");
}
}
cbrymdOne.put("tszdxx", tszdxx);
......@@ -571,6 +585,11 @@ public class SocialFriendConfig {
// 入狱/失踪/死亡日期 yyyy-MM-dd
tszdxx.put("ryszswrq", vo.getLeaveDay());
}
// 医保是否批量
if (Common.isNotNull(vo.getIsSingleYsdPush()) && CommonConstants.ONE_STRING.equals(vo.getIsSingleYsdPush())) {
tszdxx.put("ybsfpl", "否");
}
} else {
// 是否强制停保:目前仅社保,税友暂不支持医保
if (Common.isNotNull(vo.getSfqztb()) && "是".equals(vo.getSfqztb())) {
......@@ -584,6 +603,11 @@ public class SocialFriendConfig {
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);
cbrymdArr.add(cbrymdOne);
......
......@@ -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.social.entity.FailReasonConfig;
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.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Optional;
......@@ -126,4 +128,16 @@ public class FailReasonConfigController {
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 @@
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.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.util.Common;
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;
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.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.service.TSocialDeadlineInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoSearchVo;
......@@ -195,14 +190,14 @@ public class TSocialDeadlineInfoController {
}
/**
* 社保医疗截止日配置 批量导出
*
* @author fxj
* @date 2024-05-08 11:52:09
* @Description: 办理截止日期批量导出
* @Author: hgw
* @Date: 2025/12/9 17:09
* @return: void
**/
@Operation(description = "导出社保医疗截止日配置 hasPermission('demo_tsocialdeadlineinfo-export')")
@Operation(summary = "办理截止日期批量导出")
@SysLog("办理截止日期批量导出")
@PostMapping("/export")
@PreAuthorize("@pms.hasPermission('demo_tsocialdeadlineinfo-export')")
public void export(HttpServletResponse response, @RequestBody TSocialDeadlineInfoSearchVo searchVo) {
tSocialDeadlineInfoService.listExport(response, searchVo);
}
......
......@@ -226,6 +226,7 @@ public class TSocialInfoController {
/**
* @param id
* @param isSocial 1 社保 2 医保 3 全部
* @param ybsfqzcb 医保是否强制参保:0否1是
* @Description:
* @Author: hgw
* @Date: 2024/8/1 18:12
......@@ -233,17 +234,19 @@ public class TSocialInfoController {
**/
@Operation(summary = "转自动化", description = "转自动化")
@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();
if (user == null || Common.isEmpty(user.getId())) {
return R.failed("请登录!");
}
return tSocialInfoService.doAuto(id, isSocial, user);
return tSocialInfoService.doAuto(id, isSocial, ybsfqzcb, user);
}
/**
* @param idList
* @param isSocial 1 社保 2 医保 3 全部
* @param ybsfqzcb 医保是否强制参保:0否1是
* @Description: 转人工-批量
* @Author: hgw
* @Date: 2024/8/1 18:12
......@@ -251,12 +254,13 @@ public class TSocialInfoController {
**/
@Operation(summary = "转自动化-批量", description = "转自动化-批量")
@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();
if (user == null || Common.isEmpty(user.getId())) {
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;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.vo.FailReasonConfigExport;
import com.yifu.cloud.plus.v1.yifu.social.vo.FailReasonConfigSearchVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -32,4 +34,8 @@ public interface FailReasonConfigMapper extends BaseMapper<FailReasonConfig> {
// 获取户里的配置
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;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.vo.TSocialDeadlineInfoExport;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoSearchVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 社保医疗截止日配置
*
......@@ -39,4 +43,9 @@ public interface TSocialDeadlineInfoMapper extends BaseMapper<TSocialDeadlineInf
* @return
*/
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;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.vo.FailReasonConfigSearchVo;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
......@@ -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>
**/
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
R<List<ErrorMessage>> importDiy(InputStream inputStream);
// 办理截止日期批量导出
void listExport(HttpServletResponse response, TSocialDeadlineInfoSearchVo searchVo);
List<TSocialDeadlineInfo> noPageDiy(TSocialDeadlineInfoSearchVo searchVo);
......
......@@ -116,23 +116,25 @@ public interface TSocialInfoService extends IService<TSocialInfo> {
/**
* @param idList 社保IDlist
* @param isSocial 1:社保 2:医保 3:全部
* @param ybsfqzcb 医保是否强制参保:0否1是
* @param user 当前登录人
* @Description: 批量转自动化
* @Author: hgw
* @Date: 2025/4/25 17:24
* @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 isSocial 1:社保 2:医保 3:全部
* @param ybsfqzcb 医保是否强制参保:0否1是
* @param user 当前登录人
* @Description: 转自动化
* @Author: hgw
* @Date: 2025/4/25 17:24
* @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;
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.extension.plugins.pagination.Page;
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.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.mapper.FailReasonConfigMapper;
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 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.List;
import java.util.Map;
......@@ -62,4 +74,57 @@ public class FailReasonConfigServiceImpl extends ServiceImpl<FailReasonConfigMap
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
household.setHouseType(excel.getHouseType().equals(HouseConfigConstants.HOUSE_TYPE_ONE) ? "1" : "0");
household.setAuditUser(null == auditUser.getUserId() ? "" : auditUser.getUserId());
household.setHandleUser(null == handlerUser.getUserId() ? "" :handlerUser.getUserId());
// 初始化
household.setIsSingleYgsPush(null);
//如果社保自动化为是时,才更新 推送类型、是否生成花名册、是否仅补缴生成材料、
if (CommonConstants.ZERO_STRING.equals(household.getAutoStatus())){
if (Common.isNotNull(excel.getRosterAutoFlagYgs())){
......@@ -947,13 +949,26 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
}
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 {
household.setRosterAutoFlagYgs(null);
household.setDataFlagYgs(null);
household.setIsSingle(null);
}
// 初始化
household.setIsSingleYsdPush(null);
//如果医保自动化为是时,才更新 推送类型、是否生成花名册、是否仅补缴生成材料、
if (CommonConstants.ZERO_STRING.equals(household.getAutoStatusYsd())){
if (Common.isNotNull(excel.getRosterAutoFlagYsd())){
......@@ -968,8 +983,20 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
}
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 {
household.setRosterAutoFlagYsd(null);
household.setDataFlagYsd(null);
......@@ -1304,10 +1331,25 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
if (Common.isNotNull(excel.getAutoStatusYsd())) {
info.setAutoStatusYsd(excel.getAutoStatusYsd().equals(CommonConstants.IS_TRUE) ? "0" : "1");
}
info.setIsSingleYgsPush(null);
if (CommonConstants.ZERO_STRING.equals(info.getAutoStatus())){
if (Common.isNotNull(excel.getIsSingle())) {
info.setIsSingle(excel.getIsSingle().equals(HouseConfigConstants.IS_SINGLE_NO) ? "0" : "1");
if (Common.isNotNull(excel.getIsSingle())){
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 (Common.isNotNull(excel.getDataFlagYgs())) {
info.setDataFlagYgs(excel.getDataFlagYgs().equals(CommonConstants.IS_TRUE) ? "1" : "0");
......@@ -1324,13 +1366,29 @@ public class SysHouseHoldInfoServiceImpl extends ServiceImpl<SysHouseHoldInfoMap
info.setDataFlagYgs(null);
info.setRosterAutoFlagYgs(null);
}
info.setIsSingleYsdPush(null);
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())) {
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 (Common.isNotNull(excel.getDataFlagYsd())) {
info.setDataFlagYsd(excel.getDataFlagYsd().equals(CommonConstants.IS_TRUE) ? "1" : "0");
......
......@@ -19,6 +19,7 @@ package com.yifu.cloud.plus.v1.yifu.social.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ArrayUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.read.listener.ReadListener;
......@@ -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.TSocialDeadlineInfoMapper;
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.TSocialDeadlineInfoVo;
import lombok.AllArgsConstructor;
......@@ -77,18 +79,17 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI
return baseMapper.getTSocialDeadlineInfoPage(page, tSocialDeadlineInfo);
}
/**
* 社保医疗截止日配置批量导出
*
* @param searchVo 社保医疗截止日配置
* @return
*/
@Override
public void listExport(HttpServletResponse response, TSocialDeadlineInfoSearchVo searchVo) {
String fileName = "社保医疗截止日配置批量导出" + DateUtil.getThisTime() + ".xlsx";
String fileName = "办理截止日期批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<TSocialDeadlineInfoExport> list = new ArrayList<>();
//获取要导出的列表
List<TSocialDeadlineInfo> 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;
try {
out = response.getOutputStream();
......@@ -96,33 +97,22 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI
response.setCharacterEncoding("utf-8");
response.setHeader(CommonConstants.CONTENT_DISPOSITION, CommonConstants.ATTACHMENT_FILENAME + URLEncoder.encode(fileName, CommonConstants.UTF8));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
//EasyExcel.write(out, TEmpBadRecord.class).sheet("不良记录").doWrite(list);
ExcelWriter excelWriter = EasyExcel.write(out, TSocialDeadlineInfo.class).build();
ExcelWriter excelWriter = EasyExcelFactory.write(out, TSocialDeadlineInfoExport.class).build();
int index = 0;
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.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = noPageDiy(searchVo);
if (Common.isNotNull(list)) {
ExcelUtil<TSocialDeadlineInfo> util = new ExcelUtil<>(TSocialDeadlineInfo.class);
for (TSocialDeadlineInfo vo : list) {
util.convertEntity(vo, null, null, null);
}
}
list = baseMapper.getTSocialDeadlineInfoListExport(searchVo);
if (Common.isNotNull(list)) {
WriteSheet writeSheet = EasyExcel.writerSheet("社保医疗截止日配置" + index).build();
WriteSheet writeSheet = EasyExcelFactory.writerSheet("办理截止日期" + index).build();
excelWriter.write(list, writeSheet);
index++;
}
i = i + CommonConstants.EXCEL_EXPORT_LIMIT;
if (Common.isNotNull(list)) {
list.clear();
}
}
} else {
WriteSheet writeSheet = EasyExcel.writerSheet("社保医疗截止日配置" + index).build();
WriteSheet writeSheet = EasyExcelFactory.writerSheet("办理截止日期" + index).build();
excelWriter.write(list, writeSheet);
}
if (Common.isNotNull(list)) {
......
......@@ -591,6 +591,7 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci
/**
* @param idList 社保IDlist
* @param isSocial 1:社保 2:医保 3:全部
* @param ybsfqzcb 医保是否强制参保:0否1是
* @param user 当前登录人
* @Description: 批量转自动化
* @Author: hgw
......@@ -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>
**/
@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) {
doAuto(id, isSocial, user);
doAuto(id, isSocial, ybsfqzcb, user);
}
return R.ok("成功!");
}
......@@ -608,6 +609,7 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci
/**
* @param id 社保ID
* @param isSocial 1:社保 2:医保 3:全部
* @param ybsfqzcb 医保是否强制参保:0否1是
* @param user 当前登录人
* @Description: 转自动化
* @Author: hgw
......@@ -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>
**/
@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);
if (socialInfo == null || Common.isEmpty(socialInfo.getId())) {
return R.failed("未找到社保");
......@@ -672,6 +674,33 @@ public class TSocialInfoServiceImpl extends ServiceImpl<TSocialInfoMapper, TSoci
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);
}
......
......@@ -42,10 +42,10 @@
AND a.REASON LIKE concat('%',#{failReasonConfig.reason},'%')
</if>
<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 test="failReasonConfig.simpleReason != null and failReasonConfig.simpleReason.trim() != ''">
AND a.SIMPLE_REASON = #{failReasonConfig.simpleReason}
AND a.SIMPLE_REASON LIKE concat('%',#{failReasonConfig.simpleReason},'%')
</if>
<if test="failReasonConfig.replay != null and failReasonConfig.replay.trim() != ''">
AND a.REPLAY = #{failReasonConfig.replay}
......@@ -56,6 +56,12 @@
<if test="failReasonConfig.isReplace != null and failReasonConfig.isReplace.trim() != ''">
AND a.IS_REPLACE = #{failReasonConfig.isReplace}
</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>
</sql>
<!--failReasonConfig简单分页查询-->
......@@ -114,4 +120,57 @@
LEFT JOIN fail_reason_config a on r.FAIL_ID=a.id
where a.status = '0'
</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>
\ No newline at end of file
......@@ -70,6 +70,9 @@
<result property="reduceRosterTempYgs" column="REDUCE_ROSTER_TEMP_YGS"/>
<result property="addRosterTempYsd" column="ADD_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 id="sysHouseHoldSingleInfoMap" type="com.yifu.cloud.plus.v1.yifu.social.entity.SysHouseHoldInfo">
......@@ -124,6 +127,10 @@
a.REDUCE_ROSTER_TEMP_YGS,
a.ADD_ROSTER_TEMP_YSD,
a.REDUCE_ROSTER_TEMP_YSD
,a.YBSFQZCB
,a.IS_SINGLE_YGS_PUSH
,a.IS_SINGLE_YSD_PUSH
</sql>
<sql id="sysHouseHoldInfo_where">
<if test="sysHouseHoldInfo != null">
......
......@@ -1554,6 +1554,7 @@
<result property="ygsSocialStartDateNext" column="YGS_SOCIAL_START_DATE_NEXT"/>
<result property="ysdSocialStartDateNext" column="YSD_SOCIAL_START_DATE_NEXT"/>
<result property="backFileFlag" column="BACK_FILE_FLAG"/>
<result property="ybsfqzcb" column="YBSFQZCB"/>
</resultMap>
<select id="getTSocialSoldierHandlePage" resultMap="socialSoldierPageMap">
......@@ -1654,7 +1655,8 @@
a.IS_SINGLE_YSD,
a.IS_AUTO_LEAVE_DOC,
a.ROSTER_AUTO_FLAG_YGS,
a.ROSTER_AUTO_FLAG_YSD
a.ROSTER_AUTO_FLAG_YSD,
s.YBSFQZCB
FROM t_dispatch_info a
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
......@@ -2221,6 +2223,13 @@
AND s.YSD_REMARK like concat('%',#{tDispatchInfo.ysdRemark},'%')
</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">
AND (
s.YGS_HANDLE_STATUS in
......@@ -2270,6 +2279,13 @@
AND s.YSD_REMARK like concat('%',#{tDispatchInfo.ysdRemark},'%')
</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">
AND (
s.YGS_HANDLE_STATUS in
......
......@@ -144,4 +144,70 @@
order by a.month DESC
,a.id desc
</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>
......@@ -109,6 +109,8 @@
,idp.AREA_NAME idCardProvince
,idc.AREA_NAME idCardCity
,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>
......@@ -205,12 +207,16 @@
<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"), 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")
,''
,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
,ifnull(s.YBSFQZCB,shh.YBSFQZCB) ybsfqzcb
<include refid="getSocialSoldierBaseTwo"/>
<if test="idsStr != null and idsStr.size > 0">
......@@ -318,6 +324,8 @@
,DATE_FORMAT(now(),"%Y年%m月%d日") nowDay
,s.UNIT_MEDICAL_CARDINAL unitMedicalCardinal
,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"/>
<if test="idsStr != null and idsStr.size > 0">
/*派单推的,有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