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;
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.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.social.entity.TIncomeDetail;
import com.yifu.cloud.plus.v1.yifu.social.entity.TPaymentInfo;
......@@ -305,4 +306,11 @@ public class SocialDaprUtils {
, daprProperties.getAppId(),"/tdispatchinfopre/deleteUnProcessSocialPreInfo" , id
, 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 {
*/
@Schema(description = "消息提醒人ID")
private String alertId;
/**
* 距离到期剩余工作日
*/
@Schema(description = "距离到期剩余工作日")
private String haveWorkDay;
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;
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.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.log.util.SysLogUtils;
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;
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.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.InsuranceAlertWxVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
......@@ -46,6 +50,8 @@ public class TInsuranceWarnServiceImpl extends ServiceImpl<TInsuranceWarnMapper,
private UpmsDaprUtils upmsDaprUtils;
@Autowired
private ArchivesDaprUtil archivesDaprUtil;
@Autowired
private SocialDaprUtils socialDaprUtils;
@Autowired
private SysConfigMapper sysConfigMapper;
......@@ -107,6 +113,32 @@ public class TInsuranceWarnServiceImpl extends ServiceImpl<TInsuranceWarnMapper,
}
//不为空生成数据
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);
}
}
......
......@@ -45,6 +45,7 @@
<result property="expireRemark" column="EXPIRE_REMARK" jdbcType="VARCHAR"/>
<result property="alerter" column="ALERTER" jdbcType="VARCHAR"/>
<result property="alertId" column="ALERT_ID" jdbcType="VARCHAR"/>
<result property="haveWorkDay" column="HAVE_WORK_DAY" jdbcType="VARCHAR"/>
</resultMap>
......
......@@ -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.log.annotation.SysLog;
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.service.THolidayInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TEmployeeInsuranceWorkDayVo;
......@@ -234,4 +235,28 @@ public class THolidayInfoController {
public Boolean checkIsWorkDay(@RequestBody TEmployeeInsuranceWorkDayVo 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;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDate;
import java.util.List;
/**
* @author fxj
* @date 2024-05-08 11:52:08
......@@ -37,4 +40,12 @@ public interface THolidayInfoMapper extends BaseMapper<THolidayInfo> {
* @return
*/
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;
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.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.vo.TEmployeeInsuranceWorkDayVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.THolidayInfoSearchVo;
......@@ -58,4 +59,20 @@ public interface THolidayInfoService extends IService<THolidayInfo> {
TEmployeeInsuranceWorkDayVo selectBeforeOrAfterWorkDayCommon(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;
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.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.mapper.THolidayInfoMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.THolidayInfoService;
......@@ -454,4 +455,36 @@ public class THolidayInfoServiceImpl extends ServiceImpl<THolidayInfoMapper, THo
}
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 @@
<include refid="tHolidayInfo_where"/>
</where>
</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>
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