Commit e97e2cb9 authored by hongguangwu's avatar hongguangwu

MVP1.7.17-续保周期——工作日

parent 2279880f
...@@ -11,6 +11,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R; ...@@ -11,6 +11,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprSocialProperties; import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprSocialProperties;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.EkpInsuranceViewVo; import com.yifu.cloud.plus.v1.yifu.insurances.vo.EkpInsuranceViewVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.EkpSocialViewVo; import com.yifu.cloud.plus.v1.yifu.insurances.vo.EkpSocialViewVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.HolidayListVO;
import com.yifu.cloud.plus.v1.yifu.salary.vo.*; import com.yifu.cloud.plus.v1.yifu.salary.vo.*;
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.TPaymentInfo; import com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo;
...@@ -305,4 +306,11 @@ public class SocialDaprUtils { ...@@ -305,4 +306,11 @@ public class SocialDaprUtils {
, daprProperties.getAppId(),"/tdispatchinfopre/deleteUnProcessSocialPreInfo" , id , daprProperties.getAppId(),"/tdispatchinfopre/deleteUnProcessSocialPreInfo" , id
, Object.class, SecurityConstants.FROM_IN); , Object.class, SecurityConstants.FROM_IN);
} }
public R<HolidayListVO> getOneMonthDay(){
return HttpDaprUtil.invokeMethodPost(daprProperties.getAppUrl()
, daprProperties.getAppId(),"/tholidayinfo/inner/getOneMonthDay" , null
, HolidayListVO.class, SecurityConstants.FROM_IN);
}
} }
...@@ -218,6 +218,11 @@ public class TInsuranceAlert extends BaseEntity { ...@@ -218,6 +218,11 @@ public class TInsuranceAlert extends BaseEntity {
*/ */
@Schema(description = "消息提醒人ID") @Schema(description = "消息提醒人ID")
private String alertId; private String alertId;
/**
* 距离到期剩余工作日
*/
@Schema(description = "距离到期剩余工作日")
private String haveWorkDay;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }
\ No newline at end of file
package com.yifu.cloud.plus.v1.yifu.insurances.vo;
import lombok.Data;
import java.io.Serializable;
import java.util.Map;
/**
* @Description: 最近一个月(“当前时间(含)” 到 “当前时间+1个月”)的工作日Map
* @Author: hgw
* @Date: 2025/11/11 9:38
* @return:
**/
@Data
public class HolidayListVO implements Serializable {
private static final long serialVersionUID = -6673220061558171816L;
// 工作日map,例如,当前时间是2025-11-11,15号,16号是节假日:
// 2025-11-11, 1; 2025-11-12,2; 2025-11-13,3; 2025-11-14,4; 2025-11-15,4; 2025-11-16,4; 2025-11-17,5
private Map<String, Integer> workDayMap;
}
...@@ -14,6 +14,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.Common; ...@@ -14,6 +14,7 @@ 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;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.ArchivesDaprUtil; import com.yifu.cloud.plus.v1.yifu.common.dapr.util.ArchivesDaprUtil;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.SocialDaprUtils;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.UpmsDaprUtils; import com.yifu.cloud.plus.v1.yifu.common.dapr.util.UpmsDaprUtils;
import com.yifu.cloud.plus.v1.yifu.common.log.util.SysLogUtils; import com.yifu.cloud.plus.v1.yifu.common.log.util.SysLogUtils;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity; import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
...@@ -24,12 +25,15 @@ import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceAlert; ...@@ -24,12 +25,15 @@ import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceAlert;
import com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.SysConfigMapper; import com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.SysConfigMapper;
import com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TInsuranceWarnMapper; import com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TInsuranceWarnMapper;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsuranceWarnService; import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsuranceWarnService;
import com.yifu.cloud.plus.v1.yifu.insurances.util.LocalDateUtil;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.HolidayListVO;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceAlertWx; import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceAlertWx;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceAlertWxVo; import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceAlertWxVo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -46,6 +50,8 @@ public class TInsuranceWarnServiceImpl extends ServiceImpl<TInsuranceWarnMapper, ...@@ -46,6 +50,8 @@ public class TInsuranceWarnServiceImpl extends ServiceImpl<TInsuranceWarnMapper,
private UpmsDaprUtils upmsDaprUtils; private UpmsDaprUtils upmsDaprUtils;
@Autowired @Autowired
private ArchivesDaprUtil archivesDaprUtil; private ArchivesDaprUtil archivesDaprUtil;
@Autowired
private SocialDaprUtils socialDaprUtils;
@Autowired @Autowired
private SysConfigMapper sysConfigMapper; private SysConfigMapper sysConfigMapper;
...@@ -107,6 +113,32 @@ public class TInsuranceWarnServiceImpl extends ServiceImpl<TInsuranceWarnMapper, ...@@ -107,6 +113,32 @@ public class TInsuranceWarnServiceImpl extends ServiceImpl<TInsuranceWarnMapper,
} }
//不为空生成数据 //不为空生成数据
if (Common.isNotKong(list)){ if (Common.isNotKong(list)){
try {
//获取对应项目信息
R<HolidayListVO> holidayListR = socialDaprUtils.getOneMonthDay();
Map<String, Integer> workDayMap = null;
if (null != holidayListR && Common.isNotNull(holidayListR.getData()) && Common.isNotNull(holidayListR.getData().getWorkDayMap())) {
workDayMap = holidayListR.getData().getWorkDayMap();
}
if (workDayMap != null && !workDayMap.isEmpty()) {
String days;
Integer dayInt;
// 处理:距离到期剩余工作日
for (TInsuranceAlert vo : list) {
if (Common.isNotNull(vo.getIsOverdue())
&& CommonConstants.ZERO_INT == vo.getIsOverdue()
&& Common.isNotNull(vo.getPolicyEnd())) {
days = LocalDateUtil.getDateSrt(vo.getPolicyEnd(), LocalDateUtil.NORM_DATE_PATTERN);
dayInt = workDayMap.get(days);
if (Common.isNotNull(dayInt)) {
vo.setHaveWorkDay(String.valueOf(dayInt));
}
}
}
}
} catch (Exception e) {
log.error("商险到期提醒获取工作日异常:",e);
}
this.saveOrUpdateBatch(list); this.saveOrUpdateBatch(list);
} }
} }
......
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
<result property="expireRemark" column="EXPIRE_REMARK" jdbcType="VARCHAR"/> <result property="expireRemark" column="EXPIRE_REMARK" jdbcType="VARCHAR"/>
<result property="alerter" column="ALERTER" jdbcType="VARCHAR"/> <result property="alerter" column="ALERTER" jdbcType="VARCHAR"/>
<result property="alertId" column="ALERT_ID" jdbcType="VARCHAR"/> <result property="alertId" column="ALERT_ID" jdbcType="VARCHAR"/>
<result property="haveWorkDay" column="HAVE_WORK_DAY" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
......
...@@ -23,6 +23,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage; ...@@ -23,6 +23,7 @@ import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog; import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
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.insurances.vo.HolidayListVO;
import com.yifu.cloud.plus.v1.yifu.social.entity.THolidayInfo; import com.yifu.cloud.plus.v1.yifu.social.entity.THolidayInfo;
import com.yifu.cloud.plus.v1.yifu.social.service.THolidayInfoService; import com.yifu.cloud.plus.v1.yifu.social.service.THolidayInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TEmployeeInsuranceWorkDayVo; import com.yifu.cloud.plus.v1.yifu.social.vo.TEmployeeInsuranceWorkDayVo;
...@@ -234,4 +235,28 @@ public class THolidayInfoController { ...@@ -234,4 +235,28 @@ public class THolidayInfoController {
public Boolean checkIsWorkDay(@RequestBody TEmployeeInsuranceWorkDayVo vo) { public Boolean checkIsWorkDay(@RequestBody TEmployeeInsuranceWorkDayVo vo) {
return tHolidayInfoService.checkIsWorkDay(vo); return tHolidayInfoService.checkIsWorkDay(vo);
} }
/**
* @Description: 获取一个月的全部节假日:最近一个月(“当前时间(含)” 到 “当前时间+1个月”)的工作日Map
* @Author: hgw
* @Date: 2025/11/10 18:13
* @return: com.yifu.cloud.plus.v1.yifu.social.vo.TEmployeeInsuranceWorkDayVo
**/
@Inner
@PostMapping("/inner/getOneMonthDay")
public HolidayListVO getOneMonthDay() {
return tHolidayInfoService.getOneMonthDay();
}
/**
* @Description: 最近一个月(“当前时间(含)” 到 “当前时间+1个月”)的工作日Map
* @Author: hgw
* @Date: 2025/11/10 18:13
* @return: com.yifu.cloud.plus.v1.yifu.social.vo.TEmployeeInsuranceWorkDayVo
**/
@Operation(summary = "最近一个月(“当前时间(含)” 到 “当前时间+1个月”)的工作日Map", description = "最近一个月(“当前时间(含)” 到 “当前时间+1个月”)的工作日Map")
@PostMapping("/getOneMonthDayVo")
public HolidayListVO getOneMonthDayVo() {
return tHolidayInfoService.getOneMonthDay();
}
} }
...@@ -24,6 +24,9 @@ import com.yifu.cloud.plus.v1.yifu.social.entity.THolidayInfo; ...@@ -24,6 +24,9 @@ import com.yifu.cloud.plus.v1.yifu.social.entity.THolidayInfo;
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.time.LocalDate;
import java.util.List;
/** /**
* @author fxj * @author fxj
* @date 2024-05-08 11:52:08 * @date 2024-05-08 11:52:08
...@@ -37,4 +40,12 @@ public interface THolidayInfoMapper extends BaseMapper<THolidayInfo> { ...@@ -37,4 +40,12 @@ public interface THolidayInfoMapper extends BaseMapper<THolidayInfo> {
* @return * @return
*/ */
IPage<THolidayInfo> getTHolidayInfoPage(Page<THolidayInfo> page, @Param("tHolidayInfo") THolidayInfo tHolidayInfo); IPage<THolidayInfo> getTHolidayInfoPage(Page<THolidayInfo> page, @Param("tHolidayInfo") THolidayInfo tHolidayInfo);
/**
* @Description: 获取一个月的全部节假日
* @Author: hgw
* @Date: 2025/11/10 18:16
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.social.entity.THolidayInfo>
**/
List<String> getOneMonthDay();
} }
...@@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -22,6 +22,7 @@ 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.common.core.util.ErrorMessage; import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R; import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.HolidayListVO;
import com.yifu.cloud.plus.v1.yifu.social.entity.THolidayInfo; import com.yifu.cloud.plus.v1.yifu.social.entity.THolidayInfo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TEmployeeInsuranceWorkDayVo; import com.yifu.cloud.plus.v1.yifu.social.vo.TEmployeeInsuranceWorkDayVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.THolidayInfoSearchVo; import com.yifu.cloud.plus.v1.yifu.social.vo.THolidayInfoSearchVo;
...@@ -58,4 +59,20 @@ public interface THolidayInfoService extends IService<THolidayInfo> { ...@@ -58,4 +59,20 @@ public interface THolidayInfoService extends IService<THolidayInfo> {
TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDayCommon(TEmployeeInsuranceWorkDayVo vo); TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDayCommon(TEmployeeInsuranceWorkDayVo vo);
Boolean checkIsWorkDay(TEmployeeInsuranceWorkDayVo vo); Boolean checkIsWorkDay(TEmployeeInsuranceWorkDayVo vo);
/**
* @Description: 最近一个月(“当前时间(含)” 到 “当前时间+1个月”)的工作日Map
* // 例如,当前时间是2025-11-11,周二,15号,16号是节假日(周六周日):返回:
* 2025-11-11,1(周二,当天为1)
* 2025-11-12,2
* 2025-11-13,3
* 2025-11-14,4(周五)
* 2025-11-15,4(周六)
* 2025-11-16,4(周日)
* 2025-11-17,5
* @Author: hgw
* @Date: 2025/11/11 10:46
* @return: com.yifu.cloud.plus.v1.yifu.insurances.vo.HolidayListVO
**/
HolidayListVO getOneMonthDay();
} }
...@@ -33,6 +33,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -33,6 +33,7 @@ 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.*; import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
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.insurances.vo.HolidayListVO;
import com.yifu.cloud.plus.v1.yifu.social.entity.THolidayInfo; import com.yifu.cloud.plus.v1.yifu.social.entity.THolidayInfo;
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.service.THolidayInfoService; import com.yifu.cloud.plus.v1.yifu.social.service.THolidayInfoService;
...@@ -454,4 +455,36 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo ...@@ -454,4 +455,36 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo
} }
getWorkDay(holidayMap,vo); getWorkDay(holidayMap,vo);
} }
// 最近一个月(“当前时间(含)” 到 “当前时间+1个月”)的工作日Map
@Override
public HolidayListVO getOneMonthDay() {
List<String> dayList = baseMapper.getOneMonthDay();
Map<String, Integer> holidayMap = new HashMap<>();
if (dayList != null && !dayList.isEmpty()) {
for (String day : dayList) {
holidayMap.put(day, CommonConstants.ONE_INT);
}
}
Map<String, Integer> workDayMap = new HashMap<>();
String days;
int addNum;
int lastNum;
for (int i = 0; i < 31; i++) {
lastNum = 0;
addNum = 1;
days = DateUtil.addDay(i);
if (holidayMap.get(days) != null) {
addNum = 0;
}
if (i > 0) {
lastNum = workDayMap.get(DateUtil.addDay(i-1));
}
workDayMap.put(days, lastNum + addNum);
}
HolidayListVO vo = new HolidayListVO();
vo.setWorkDayMap(workDayMap);
return vo;
}
} }
...@@ -91,4 +91,11 @@ ...@@ -91,4 +91,11 @@
<include refid="tHolidayInfo_where"/> <include refid="tHolidayInfo_where"/>
</where> </where>
</select> </select>
<!--获取本月和下月的全部节假日-->
<select id="getOneMonthDay" resultType="java.lang.String">
SELECT
DATE_FORMAT(a.DATE,'%Y-%m-%d') DATE
FROM t_holiday_info a
where a.DATE between DATE_FORMAT(curdate(),'%Y-%m-%d') and DATE_FORMAT(date_add( curdate(), INTERVAL 1 MONTH ),'%Y-%m-%d')
</select>
</mapper> </mapper>
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