Commit 4593f2a3 authored by hongguangwu's avatar hongguangwu

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

parents f6218156 4a941b16
/*
* 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.archives.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* @Author fxj
* @Description 系统配置表
* @Date 9:38 2025/3/13
* @Param
* @return
**/
@Data
@TableName("sys_config")
@Schema(description = "系统配置表")
public class SysConfig {
/**
* id
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("id")
@Schema(description = "id")
private String id;
/**
* 配置键
*/
@ExcelAttribute(name = "配置键", isNotEmpty = true, errorInfo = "配置键不能为空", maxLength = 32)
@NotBlank(message = "配置键不能为空")
@Length(max = 32, message = "配置键不能超过32个字符")
@ExcelProperty("配置键")
@Schema(description = "配置键")
private String configKey;
/**
* 配置值
*/
@ExcelAttribute(name = "配置值", isNotEmpty = true, errorInfo = "配置值不能为空")
@NotBlank(message = "配置值不能为空")
@ExcelProperty("配置值")
@Schema(description = "配置值")
private String configValue;
/**
* 配置值1
*/
@ExcelAttribute(name = "配置值1")
@ExcelProperty("配置值1")
@Schema(description = "配置值1")
private String configValue1;
/**
* 配置值2
*/
@ExcelAttribute(name = "配置值2")
@ExcelProperty("配置值2")
@Schema(description = "配置值2")
private String configValue2;
/**
* 备注
*/
@ExcelAttribute(name = "备注", maxLength = 255)
@Length(max = 255, message = "备注不能超过255个字符")
@ExcelProperty("备注")
@Schema(description = "备注")
private String remark;
}
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
/**
* @Author fxj
* @Description 项目客服信息
* @Date 17:35 2025/8/14
* @Param
* @return
**/
@Data
public class ProjectCustomerServiceVo implements Serializable {
/**
* 项目编码
*/
@Schema(description = "项目编码")
private String departNo;
/**
* 项目名称
*/
@Schema(description = "项目名称")
private String departName;
/**
* 前端客服-登录账号
*/
@Schema(description ="登录账号")
private String csLoginName;
}
......@@ -11,4 +11,6 @@ public class EmployeeContractConstants {
public static final String NOT_AUDIT = "未审核通过,无法更新";
public static final String INVALID = "作废、终止,无法更新";
public static final String CONTRACT_ALERT_DEFAULT_PERSON = "CONTRACT_ALERT_DEFAULT_PERSON";
}
......@@ -236,4 +236,16 @@ public class TEmpContractAlertController {
public R<List<ErrorMessage>> importListAdd(@RequestBody MultipartFile file) {
return tEmpContractAlertService.importDiy(file.getInputStream());
}
/**
* @Author fxj
* @Description 每日09:00推送一条整合的续签代码信息给配置的人员
* @Date 16:03 2025/8/15
**/
@Operation(description = "每天10:00推送整合后的待办商险数据给对应项目的前端客服信息")
@Inner
@PostMapping("/inner/pushContractAlertToWx")
public void pushInsuranceAlertToWx() {
tEmpContractAlertService.pushContractAlertToWx();
}
}
package com.yifu.cloud.plus.v1.yifu.archives.mapper;/*
* 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)
*/
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.archives.entity.SysConfig;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @Author fxj
* @Description 系统配置表
* @Date 9:40 2025/3/13
* @Param
* @return
**/
@Mapper
public interface SysConfigMapper extends BaseMapper<SysConfig> {
/**
* 系统限制配置表简单分页查询
*
* @param configKey 键
* @return
*/
SysConfig getSysConfigLimitByKey(@Param("configKey") String configKey);
}
......@@ -110,4 +110,6 @@ public interface TEmployeeContractInfoMapper extends BaseMapper<TEmployeeContrac
String getMinDateByCardAndDeptId(@Param("vo") IdNameNoVo vo);
void updateContractEnd( @Param("tEmployeeContractInfo")TEmployeeContractInfo tEmployeeContractInfo);
List<TEmployeeContractInfo> getContractAlertDeptNosList();
}
......@@ -115,4 +115,5 @@ public interface TSettleDomainMapper extends BaseMapper<TSettleDomain> {
List<String> getAllDeptByCustomerLoginName(@Param(value = "userLoginName") String userLoginName);
List<ProjectCustomerServiceVo> getServiceInfoByCodes(@Param(value = "codes")List<String> deptNos);
}
......@@ -68,4 +68,5 @@ public interface TEmpContractAlertService extends IService<TEmpContractAlert> {
R<List<ErrorMessage>> importDiy(InputStream inputStream);
void pushContractAlertToWx();
}
......@@ -567,12 +567,13 @@ public class EmployeeRegistrationPreServiceImpl extends ServiceImpl<EmployeeRegi
// 1:存在商险,判断合规性+日期+五个不同等:
if (Common.isNotNull(employeeRegistrationPre.getServerItem()) && employeeRegistrationPre.getServerItem().contains("商险")) {
//商险是否购买为时增加校验
//商险是否购买为时增加校验
if (Common.isNotNull(employeeRegistrationPre.getInsuranceIsBuy())
&& employeeRegistrationPre.getInsuranceIsBuy().equals(CommonConstants.ZERO_STRING)
&& !employeeRegistrationPre.getExitInsuranceInfoList().isEmpty()) {
//判断带出的流程中或者已完结的商险数据是否准确
//商险是否存在判断
employeeRegistrationPre.getExitInsuranceInfoList().forEach(e -> e.setCreateTime(null));
boolean isTrue = checkInsuranceIsProcess(employeeRegistrationPre);
if (isTrue) {
return R.failed("带出的商险已购买数据状态或条数发生变更,请重新确认!");
......@@ -1425,36 +1426,34 @@ public class EmployeeRegistrationPreServiceImpl extends ServiceImpl<EmployeeRegi
EmployeeRegistrationPre pre = this.getById(id);
if (pre != null) {
//判断合同是否已签订 是的话展示商险明细 否的话查询商险待购买数据
if (CommonConstants.ZERO_STRING.equals(pre.getInsuranceIsBuy())) {
// 查已购买商险明细
R<EmployeePreInsuranceListVo> sdr = HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl()
, daprInsurancesProperties.getAppId()
, "/temployeeinsurancepre/inner/getExitInsuranceListByEmpPreId", id
, EmployeePreInsuranceListVo.class, SecurityConstants.FROM_IN);
if (sdr != null && sdr.getData() != null && sdr.getData().getPreList() != null &&
!sdr.getData().getPreList().isEmpty()) {
pre.setExitInsuranceInfoList(sdr.getData().getPreList());
}
} else {
// 查原商险
R<EmployeePreLogListVo> sdr = HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl()
, daprInsurancesProperties.getAppId()
, "/temployeeinsurancepre/inner/getListByEmpPreId", id, EmployeePreLogListVo.class
, SecurityConstants.FROM_IN);
List<TEmployeeInsurancePre> oldList;
if (sdr != null && sdr.getData() != null && sdr.getData().getPreList() != null &&
!sdr.getData().getPreList().isEmpty()) {
oldList = sdr.getData().getPreList();
for (TEmployeeInsurancePre oldInsurance : oldList) {
if (Common.isNotNull(oldInsurance.getProcessStatus())
&& (CommonConstants.THREE_STRING.equals(oldInsurance.getProcessStatus())
|| CommonConstants.FOUR_STRING.equals(oldInsurance.getProcessStatus())
|| CommonConstants.SIX_STRING.equals(oldInsurance.getProcessStatus()))) {
oldInsurance.setModelType(CommonConstants.FOUR_STRING);
}
// 查已购买商险明细
R<EmployeePreInsuranceListVo> sdr = HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl()
, daprInsurancesProperties.getAppId()
, "/temployeeinsurancepre/inner/getExitInsuranceListByEmpPreId", id
, EmployeePreInsuranceListVo.class, SecurityConstants.FROM_IN);
if (sdr != null && sdr.getData() != null && sdr.getData().getPreList() != null &&
!sdr.getData().getPreList().isEmpty()) {
pre.setExitInsuranceInfoList(sdr.getData().getPreList());
}
// 查原商险
R<EmployeePreLogListVo> sdrOld = HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl()
, daprInsurancesProperties.getAppId()
, "/temployeeinsurancepre/inner/getListByEmpPreId", id, EmployeePreLogListVo.class
, SecurityConstants.FROM_IN);
List<TEmployeeInsurancePre> oldList;
if (sdrOld != null && sdrOld.getData() != null && sdrOld.getData().getPreList() != null &&
!sdrOld.getData().getPreList().isEmpty()) {
oldList = sdrOld.getData().getPreList();
for (TEmployeeInsurancePre oldInsurance : oldList) {
if (Common.isNotNull(oldInsurance.getProcessStatus())
&& (CommonConstants.THREE_STRING.equals(oldInsurance.getProcessStatus())
|| CommonConstants.FOUR_STRING.equals(oldInsurance.getProcessStatus())
|| CommonConstants.SIX_STRING.equals(oldInsurance.getProcessStatus()))) {
oldInsurance.setModelType(CommonConstants.FOUR_STRING);
}
pre.setInsurancePreList(oldList);
}
pre.setInsurancePreList(oldList);
}
//获取合同待签订数据
TEmployeeContractPre contract = contractPreMapper.selectOne(Wrappers.<TEmployeeContractPre>query().lambda()
......
......@@ -31,24 +31,31 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.ekp.vo.EkpDeptInfoVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysUserListVo;
import com.yifu.cloud.plus.v1.yifu.archives.config.WxConfig;
import com.yifu.cloud.plus.v1.yifu.archives.constants.ArchivesConstants;
import com.yifu.cloud.plus.v1.yifu.archives.constants.EmployeeContractConstants;
import com.yifu.cloud.plus.v1.yifu.archives.entity.*;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.*;
import com.yifu.cloud.plus.v1.yifu.archives.service.FeedBackDetailService;
import com.yifu.cloud.plus.v1.yifu.archives.service.TEmpContractAlertService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ChangeFeedBackAllVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.ContractAlertSearchVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmpContractAlertUpdateVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeContractCheckVO;
import com.yifu.cloud.plus.v1.yifu.archives.vo.*;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.*;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.UpmsDaprUtils;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import com.yifu.cloud.plus.v1.yifu.common.security.util.SecurityUtils;
import com.yifu.cloud.plus.v1.yifu.archives.entity.SysConfig;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.client.RestTemplate;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
......@@ -57,6 +64,7 @@ import java.io.InputStream;
import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
/**
* 员工合同续签待办
......@@ -79,6 +87,17 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
private final FeedBackDetailService feedBackDetailService;
private final TSettleDomainMapper settleDomainMapper;
@Autowired
private UpmsDaprUtils upmsDaprUtils;
@Autowired
private SysConfigMapper sysConfigMapper;
@Autowired
private WxConfig wxConfig;
@Override
public IPage<TEmpContractAlert> pageDiy(Page page, ContractAlertSearchVo searchVo) {
LambdaQueryWrapper<TEmpContractAlert> wrapper = buildQueryWrapper(searchVo);
......@@ -789,4 +808,132 @@ public class TEmpContractAlertServiceImpl extends ServiceImpl<TEmpContractAlertM
}
return null;
}
/**
* @Author fxj
* @Description 获取合同续签但前端客服异常的数据发送给柳毅晨(可配置)
* @Date 17:05 2025/8/14
* @Param
* @return
**/
@Override
public void pushContractAlertToWx() {
try {
//获取所有合同提醒的数据--去重
List<TEmployeeContractInfo> contractAlertList = contractInfoMapper.getContractAlertDeptNosList();
//从contractAlertList 对象的 中获取所有元素的 deptNo 属性,要去空和去重。放到 deptNos 中
List<String> deptNos = new ArrayList<>();
if (contractAlertList != null) {
for (TEmployeeContractInfo contract : contractAlertList) {
if (Common.isNotNull(contract) && !Common.isEmpty(contract.getDeptNo())) {
deptNos.add(contract.getDeptNo());
}
}
}
//通过项目获取所有项目的前端客服信息
List<ProjectCustomerServiceVo> deptInfoVos = settleDomainMapper.getServiceInfoByCodes(deptNos);
//需要提醒的项目信息
StringBuilder sb = new StringBuilder();
if (!Common.isEmpty(deptInfoVos)){
StringBuilder userNames = new StringBuilder();
//获取所有项目对应的客服信息
initUserNames(deptInfoVos, sb, userNames);
Map<String, SysUser> sysUserMap = getSysUserMap(userNames);
if (Common.isNotKong(sysUserMap)){
SysUser user;
for (ProjectCustomerServiceVo dept : deptInfoVos) {
if (Common.isEmpty(dept.getCsLoginName())){
continue;
}
user = sysUserMap.get(dept.getCsLoginName());
if (!Common.isNotNull(user)){
Common.appendStr(sb,dept.getDepartNo(),CommonConstants.DUNHAO_STRING);
}else if (!CommonConstants.ZERO_STRING.equals(user.getLockFlag()) || !CommonConstants.ZERO_STRING.equals(user.getDelFlag())){
//锁定标识:lockFlag != 0 都算作异常 删除标识:deleteFlag != 0 算作异常
Common.appendStr(sb,dept.getDepartNo(),CommonConstants.DUNHAO_STRING);
}
}
}
if (sb.length() > 0){
// 获取默认提醒人
SysConfig sysConfig = sysConfigMapper.getSysConfigLimitByKey(EmployeeContractConstants.CONTRACT_ALERT_DEFAULT_PERSON);
if (Common.isNotNull(sysConfig) && Common.isNotKong(sysConfig.getConfigValue2())){
sendMessageToWx(sysConfig.getConfigValue2(),sb);
}
}
}
}catch (Exception e){
// 记录日志或进行适当异常处理
log.error("推送合同提醒到企业微信时发生异常", e);
}
}
//发送企业微信待办
private void sendMessageToWx(String useruserWx, StringBuilder content) {
if (Common.isEmpty(useruserWx) || Common.isEmpty(content)) {
return;
}
StringBuilder sendUser = null;
if (Common.isNotKong(useruserWx)) {
sendUser = new StringBuilder(useruserWx);
}
if (sendUser != null) {
RestTemplate restTemplate = new RestTemplate();
Map<String, Object> requestMap = new HashMap<>();
Map<String, Object> textcard = new HashMap<>();
textcard.put("title", "合同到期提醒");
textcard.put("url", String.format(SecurityConstants.WX_GET_MESSAGE_AUTH_URL, wxConfig.getCorpid(), wxConfig.getDomainName() + "/auth/oauth/wxLogin", "66" ));
content.append("的所属前端客服当前状态异常,请及时更新服务手册数据,跟进项目情况。");
textcard.put("description", "项目编码为"+content);
requestMap.put("touser", sendUser);
requestMap.put("agentid", wxConfig.getAgentid());
requestMap.put("msgtype", "textcard");
requestMap.put("textcard", textcard);
// 必须加上header说明
if (!wxConfig.sendTextCard(restTemplate, requestMap)) {
wxConfig.sendTextCard(restTemplate, requestMap);
}
}
}
private Map<String, SysUser> getSysUserMap(StringBuilder userNames) {
Map<String, SysUser> sysUserMap = null;
if (!Common.isEmpty(userNames.toString())) {
try {
R<SysUserListVo> res = upmsDaprUtils.getUserIdsByUserNames(userNames.toString());
List<SysUser> users = null;
if (Common.isNotNull(res) && Common.isNotNull(res.getData()) && Common.isNotNull(res.getData().getUserList())) {
users = res.getData().getUserList();
}
if (Common.isNotKong(users)) {
sysUserMap = users.stream().collect(Collectors.toMap(k -> k.getUsername(), v -> v));
}
}catch (Exception e){
log.error("获取用户映射时发生异常", e);
}
}
return sysUserMap;
}
private void initUserNames(List<ProjectCustomerServiceVo> deptInfoVos, StringBuilder sb, StringBuilder userNames) {
// 使用 Set 来确保用户名唯一性
Set<String> uniqueUserNames = new HashSet<>();
for (ProjectCustomerServiceVo deptInfoVo : deptInfoVos) {
if (Common.isNotNull(deptInfoVo)) {
// 不为空后面要查询对应账号状态异常的
if (Common.isNotNull(deptInfoVo.getCsLoginName())) {
uniqueUserNames.add(deptInfoVo.getCsLoginName());
} else {
Common.appendStr(sb,deptInfoVo.getDepartNo(),CommonConstants.DUNHAO_STRING);
}
}
}
// 将去重后的用户名添加到 userNames 中
for (String userName : uniqueUserNames) {
Common.appendStr(userNames, userName,CommonConstants.COMMA_STRING);
}
}
}
......@@ -209,12 +209,18 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
newInfo.setAttaIdList(null);
oldInfo.setAttaList(null);
newInfo.setAttaList(null);
//商险是否已购买list不做比较
oldInfo.setExitInsuranceInfoList(newInfo.getExitInsuranceInfoList());
//比较记录不影响业务逻辑,用try套住
//记录商险是否已购买日志
String isBuyOld = oldInfo.getInsuranceIsBuy();
String isBuyNew = newInfo.getInsuranceIsBuy();
oldInfo.setInsuranceIsBuy(newInfo.getInsuranceIsBuy());
//比较差异
String differenceKey = HrEquator.comparisonValue(oldInfo, newInfo);
//如果有差异保存差异
List<TEmployeeInsurancePre> newList = newInfo.getInsurancePreList();
String diffTitle = null;
String logId = String.valueOf(UUID.randomUUID()).replaceAll("-", "");
// 要保存的明细
......@@ -225,7 +231,6 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
&& !"attaIdList".equals(differenceKey) && !"employeeContractPre".equals(differenceKey)) {
differenceKey = differenceKey.replace("insurancePreList","");
differenceKey = differenceKey.replace("employeeContractPre","");
differenceKey = differenceKey.replace("exitInsuranceInfoList","");
diffTitle = "档案信息";
detailEmpLog = new TEmployeePreLogDetail();
detailEmpLog.setModelType(CommonConstants.TWO_STRING);
......@@ -238,18 +243,41 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
oldMap = new HashMap<>();
}
List<TEmployeeInsurancePre> saveOrUpdateList = new ArrayList<>();
// 是否修改了商险
boolean isModifyInsurance = false;
TEmployeeInsurancePre oldInsurance;
String differenceInsuranceKey;
TEmployeePreLogDetail detailInsuranceLog;
if (Common.isEmpty(isBuyOld) || (Common.isNotNull(isBuyOld) && !isBuyOld.equals(isBuyNew))) {
//单独记录是否已购买商险的变更记录
differenceInsuranceKey = "insuranceIsBuy";
detailInsuranceLog = new TEmployeePreLogDetail();
detailInsuranceLog.setModelType(CommonConstants.TWO_STRING);
detailInsuranceLog.setType(CommonConstants.TWO_STRING);
Map<String, Object> old = new HashMap<>();
old.put("insuranceIsBuy", isBuyOld);
Map<String, Object> simNew = new HashMap<>();
simNew.put("insuranceIsBuy", isBuyNew);
this.setLogBaseInfo(empPreId, old, simNew, user, differenceInsuranceKey, logId, detailInsuranceLog);
isModifyInsurance = true;
detailList.add(detailInsuranceLog);
}
//如果服务类型包含商险处理商险明细数据
if (Common.isNotNull(newInfo.getServerItem()) && newInfo.getServerItem().contains("商险")) {
newInfo.setId(empPreId);
if (!newInfo.getExitInsuranceInfoList().isEmpty()) {
newInfo.getExitInsuranceInfoList().forEach(insurancePreVo -> insurancePreVo.setRegisterId(empPreId));
}
HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(), daprInsurancesProperties.getAppId()
, "/temployeeinsurancepre/inner/updateInfoSaveInsurancePreInfo"
, newInfo, Boolean.class, SecurityConstants.FROM_IN);
}
if (newList != null && !newList.isEmpty()) {
// 是否修改了商险
boolean isModifyInsurance = false;
TEmployeeInsurancePre oldInsurance;
String differenceInsuranceKey;
TEmployeePreLogDetail detailInsuranceLog;
for (TEmployeeInsurancePre newInsurance : newList) {
differenceInsuranceKey = null;
if (Common.isNotNull(newInsurance.getModelType())) {
// 1:新增
if (CommonConstants.ONE_STRING.equals(newInsurance.getModelType())) {
saveOrUpdateList.add(newInsurance);
detailInsuranceLog = new TEmployeePreLogDetail();
detailInsuranceLog.setModelType(newInsurance.getModelType());
......@@ -403,6 +431,12 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
newInfo.setAttaIdList(null);
oldInfo.setAttaList(null);
newInfo.setAttaList(null);
//记录商险是否已购买日志
String isBuyOld = oldInfo.getInsuranceIsBuy();
String isBuyNew = newInfo.getInsuranceIsBuy();
//商险是否已购买list不做比较
oldInfo.setExitInsuranceInfoList(newInfo.getExitInsuranceInfoList());
oldInfo.setInsuranceIsBuy(newInfo.getInsuranceIsBuy());
//比较记录不影响业务逻辑,用try套住
//比较差异
String differenceKey = HrEquator.comparisonValue(oldInfo, newInfo);
......@@ -419,7 +453,6 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
&& !"attaIdList".equals(differenceKey) && !"employeeContractPre".equals(differenceKey)) {
differenceKey = differenceKey.replace("insurancePreList","");
differenceKey = differenceKey.replace("employeeContractPre","");
differenceKey = differenceKey.replace("exitInsuranceInfoList","");
diffTitle = "档案信息二次确认";
detailEmpLog = new TEmployeePreLogDetail();
detailEmpLog.setModelType(CommonConstants.TWO_STRING);
......@@ -433,6 +466,20 @@ public class TEmployeePreLogServiceImpl extends ServiceImpl<TEmployeePreLogMappe
TEmployeeInsurancePre oldInsurance;
String differenceInsuranceKey;
TEmployeePreLogDetail detailInsuranceLog;
if (Common.isEmpty(isBuyOld) ||(Common.isNotNull(isBuyOld) && !isBuyOld.equals(isBuyNew))) {
//单独记录是否已购买商险的变更记录
differenceInsuranceKey = "insuranceIsBuy";
detailInsuranceLog = new TEmployeePreLogDetail();
detailInsuranceLog.setModelType(CommonConstants.TWO_STRING);
detailInsuranceLog.setType(CommonConstants.TWO_STRING);
Map<String,Object> old = new HashMap<>();
old.put("insuranceIsBuy", isBuyOld);
Map<String,Object> simNew = new HashMap<>();
simNew.put("insuranceIsBuy", isBuyNew);
this.setPreLogBaseInfo(empPreId, old, simNew, userId, nickName, differenceInsuranceKey, logId, detailInsuranceLog);
isModifyInsurance = true;
detailList.add(detailInsuranceLog);
}
for (TEmployeeInsurancePre newInsurance : newList) {
differenceInsuranceKey = null;
if (CommonConstants.THREE_STRING.equals(newInsurance.getModelType())) {
......
......@@ -543,6 +543,7 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI
if (Common.isEmpty(gzEmpId)) {
tGzEmpInfo.setCreateBy(user.getId());
tGzEmpInfo.setCreateName(user.getNickname());
tGzEmpInfo.setCreateTime(null);
// 1.7.14: 档案状态是提交,才存 创建时间(提交时间)
if(CommonConstants.ZERO_STRING.equals(tGzEmpInfoVo.getEmpStatus())){
tGzEmpInfo.setCreateTime(LocalDateTime.now());
......@@ -552,9 +553,9 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI
} else {
tGzEmpInfo.setUpdateBy(user.getId());
tGzEmpInfo.setUpdateTime(LocalDateTime.now());
// 1.7.14: 档案状态是暂存,清除 创建时间(提交时间)
if(CommonConstants.ONE_STRING.equals(tGzEmpInfoVo.getEmpStatus())){
tGzEmpInfo.setCreateTime(null);
// 1.7.14: 档案状态是提交,更新 创建时间(提交时间)
if(CommonConstants.ZERO_STRING.equals(tGzEmpInfoVo.getEmpStatus())){
tGzEmpInfo.setCreateTime(LocalDateTime.now());
}
this.updateById(tGzEmpInfo);
}
......@@ -861,16 +862,16 @@ public class TGzEmpInfoServiceImpl extends ServiceImpl<TGzEmpInfoMapper, TGzEmpI
// 41(瓜子申明签名)42(瓜子确认签名)NID_A(证件正面) NID_B(证件反面)
// 附件类型转化:声明签字:21;确认签字:22; 9身份证;24 身份证国徽
if("41".equals(atta.getRelationType())){
atta.setRelationType("21");
attaEmp.setRelationType("21");
}
if("42".equals(atta.getRelationType())){
atta.setRelationType("22");
attaEmp.setRelationType("22");
}
if("NID_A".equals(atta.getRelationType())){
atta.setRelationType("9");
attaEmp.setRelationType("9");
}
if("NID_B".equals(atta.getRelationType())){
atta.setRelationType("24");
attaEmp.setRelationType("24");
}
attaEmp.setDomainId(empId);
......
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ 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)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.SysConfigMapper">
<resultMap id="sysConfigLimitMap" type="com.yifu.cloud.plus.v1.yifu.archives.entity.SysConfig">
<id property="id" column="ID"/>
<result property="configKey" column="CONFIG_KEY"/>
<result property="configValue" column="CONFIG_VALUE"/>
<result property="configValue1" column="CONFIG_VALUE_1"/>
<result property="configValue2" column="CONFIG_VALUE_2"/>
<result property="remark" column="REMARK"/>
</resultMap>
<!-- 根据key获取value -->
<select id="getSysConfigLimitByKey" resultType="com.yifu.cloud.plus.v1.yifu.archives.entity.SysConfig">
SELECT a.CONFIG_VALUE,CONFIG_VALUE_1,CONFIG_VALUE_2
FROM sys_config a
where a.CONFIG_KEY = #{configKey} limit 1
</select>
</mapper>
......@@ -851,4 +851,14 @@
from t_employee_contract_info e
where e.EMP_IDCARD = #{vo.no} and e.SETTLE_DOMAIN = #{vo.id} and e.DELETE_FLAG = '0' and e.AUDIT_STATUS = '2'
</select>
<!--list-->
<select id="getContractAlertDeptNosList" resultMap="tEmployeeContrctInfoMap">
SELECT
distinct a.DEPT_NO
FROM t_employee_contract_info a
<where>
a.DELETE_FLAG = 0
</where>
</select>
</mapper>
......@@ -667,4 +667,20 @@
t_settle_domain a
where a.DELETE_FLAG = '0' and a.CS_LOGIN_NAME = #{userLoginName}
</select>
<select id="getServiceInfoByCodes" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.ProjectCustomerServiceVo">
SELECT
a.DEPART_NO as 'departNo',
a.DEPART_NAME as 'departName',
a.cs_login_name as 'csLoginName'
FROM t_settle_domain a
where 1=1
and a.DELETE_FLAG = '0'
<if test="codes != null and codes.size() > 0">
and a.DEPART_NO in
<foreach collection="codes" item="param" index="index" open="(" close=")" separator=",">
#{param}
</foreach>
</if>
</select>
</mapper>
......@@ -735,4 +735,20 @@ public class Common {
}
return true;
}
/**
* @Author fxj
* @Description
* @Date 17:43 2025/8/14
**/
public static void appendStr(StringBuilder sb,String str,String split){
if (Common.isNotNull(sb) && Common.isNotNull(str)){
if (sb.length()>0){
sb.append(Common.isEmpty(split)?",":split);
sb.append(str);
}else {
sb.append(str);
}
}
}
}
......@@ -626,6 +626,8 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
&& !preVo.getExitInsuranceInfoList().isEmpty()) {
//判断带出的流程中或者已完结的商险数据是否准确
//商险是否存在判断
preVo.setEmpIdcard(registration.getEmpIdcard());
preVo.getExitInsuranceInfoList().forEach(e -> e.setCreateTime(null));
boolean isTrue = checkInsuranceIsProcess(preVo);
if (isTrue) {
return R.other(CommonConstants.TWO_INT,null,"带出的商险已购买数据状态或条数发生变更,请重新确认接收!");
......@@ -665,7 +667,9 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
preVo.getExitInsuranceInfoList().forEach(insurancePreVo -> insurancePreVo.setRegisterId(domainR.getData()));
//生成入职确认信息商险明细数据
insuranceDaprUtil.saveInsurancePreInfo(preVo);
} else if (preVo.getServerItem().contains("商险") && !preVo.getEmployeeInsurancePreVos().isEmpty()) {
} else if (preVo.getServerItem().contains("商险")
&& preVo.getInsuranceIsBuy().equals(CommonConstants.ONE_STRING)
&& !preVo.getEmployeeInsurancePreVos().isEmpty()) {
//生成商险待购买的数据
for (TEmployeeInsurancePreVo insurancePreVo : preVo.getEmployeeInsurancePreVos()) {
initInsruancePreInfo(registration, insurancePreVo, user, domainR.getData());
......@@ -978,6 +982,8 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
if (preVo.getServerItem().contains("商险") && !preVo.getEmployeeInsurancePreVos().isEmpty()) {
//生成商险待购买的数据
TEmployeeInsurancePreVo insurancePreVo = preVo.getEmployeeInsurancePreVos().get(0);
//批量的商险是否已购买默认为否
preVo.setInsuranceIsBuy(CommonConstants.ONE_STRING);
initInsruancePreInfo(registration, insurancePreVo, user, domainR.getData());
insuranceDaprUtil.saveInsurancePreInfo(preVo);
}
......@@ -1121,6 +1127,7 @@ public class EmployeeRegistrationServiceImpl extends ServiceImpl<EmployeeRegistr
if (preVo.getServerItem().contains("商险") && Common.isNotNull(preVo.getInsuranceIsBuy())
&& preVo.getInsuranceIsBuy().equals(CommonConstants.ZERO_STRING)
&& !preVo.getExitInsuranceInfoList().isEmpty()) {
preVo.getExitInsuranceInfoList().forEach(e -> e.setCreateTime(null));
preVo.getExitInsuranceInfoList().forEach(insurancePreVo -> insurancePreVo.setRegisterId(domainR.getData()));
//生成入职确认信息商险明细数据
insuranceDaprUtil.saveInsurancePreInfo(preVo);
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
......@@ -151,6 +152,8 @@ public class TEmployeeInsurancePre extends BaseEntity {
private String errorInfo;
@Schema(description = "发起失败时间")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
@JsonIgnore
private LocalDateTime errorTime;
@TableField(exist = false)
......
......@@ -2,8 +2,10 @@ package com.yifu.cloud.plus.v1.yifu.insurances.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
......@@ -96,6 +98,7 @@ public class TInsurancePreDetail extends BaseEntity {
@ExcelAttribute(name = "保单开始时间", isDate = true)
@ExcelProperty("保单开始时间")
@Schema(description = "保单开始时间")
@JsonFormat(shape= JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
private Date policyStart;
/**
* 保单结束时间
......@@ -103,6 +106,7 @@ public class TInsurancePreDetail extends BaseEntity {
@ExcelAttribute(name = "保单结束时间", isDate = true)
@ExcelProperty("保单结束时间")
@Schema(description = "保单结束时间")
@JsonFormat(shape= JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
private Date policyEnd;
/**
* 保单生效日期
......@@ -110,6 +114,7 @@ public class TInsurancePreDetail extends BaseEntity {
@ExcelAttribute(name = "保单生效日期", isDate = true)
@ExcelProperty("保单生效日期")
@Schema(description = "保单生效日期")
@JsonFormat(shape= JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
private Date policyEffect;
/**
* 投保类型, 1新增、3批增、4替换
......@@ -166,4 +171,25 @@ public class TInsurancePreDetail extends BaseEntity {
@Schema(description = "入离职登记id")
private String registerId;
/**
* 商险购买地省
*/
@Schema(description = "商险购买地省")
private String insuranceProvinceName;
/**
* 商险购买地市
*/
@Schema(description = "商险购买地市")
private String insuranceCityName;
/**
* 派单时间
*/
@ExcelAttribute(name = "派单时间", isDate = true)
@ExcelProperty("派单时间")
@Schema(description = "派单时间")
@TableField(exist = false)
@JsonFormat(shape= JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd", timezone = "GMT+08:00")
private Date disTime;
}
package com.yifu.cloud.plus.v1.yifu.insurances.vo;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsurancePreDetail;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -18,6 +16,6 @@ import java.util.List;
@Schema(description = "商险自动化已购买商险明细VO")
public class EmployeePreInsuranceListVo implements Serializable {
private static final long serialVersionUID = 628032758008497542L;
private List<TInsurancePreDetail> preList = new ArrayList<>();
private List<TInsurancePreDetail> preList;
}
......@@ -202,6 +202,9 @@ public class InsuranceAddParam implements Serializable {
@Schema(description = "项目名称")
private String deptName;
@Schema(description = "投标类型")
private Integer buyType;
@Schema(description ="客户id")
private String unitId;
......
......@@ -27,6 +27,16 @@ public class InsuranceAutoParam implements Serializable {
*/
@Schema(description = "项目编码")
private String deptNo;
/**
* 项目名称
*/
@Schema(description = "项目名称")
private String deptName;
/**
* 投标类型
*/
@Schema(description = "投标类型")
private Integer buyType;
/**
* 员工姓名
......
......@@ -190,15 +190,19 @@ public class InsuranceBatchParam implements Serializable {
/**
* 保单开始时间
*/
@JsonIgnore
private LocalDate policyStart;
/**
* 保单结束时间
*/
@JsonIgnore
private LocalDate policyEnd;
@Schema(description = "项目名称")
private String deptName;
@Schema(description = "投标类型")
private Integer buyType;
/**
* EKP的 是否BPO: 是 否
*/
......@@ -206,9 +210,6 @@ public class InsuranceBatchParam implements Serializable {
@ExcelIgnore
private String bpoFlag;
@Schema(description = "项目名称")
private String deptName;
@Schema(description ="客户id")
private String unitId;
......
......@@ -138,6 +138,9 @@ public class InsuranceReplaceParam implements Serializable {
@Schema(description = "项目名称")
private String deptName;
@Schema(description = "投标类型")
private Integer buyType;
@Schema(description ="客户id")
private String unitId;
......
......@@ -3,6 +3,7 @@ package com.yifu.cloud.plus.v1.yifu.insurances.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationCustomerUserUpdateVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.EmployeeRegistrationPre;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.core.vo.YifuUser;
......@@ -159,8 +160,8 @@ public class TEmployeeInsurancePreController {
**/
@Operation(description = "商险派单信息单个/批量派单")
@PostMapping("/batchDispatcherInsurance")
public R batchDispatcherInsurance(@RequestBody List<String> idList) {
return tEmployeeInsurancePreService.batchDispatcherInsurance(idList, null, false);
public R batchDispatcherInsurance(@RequestBody List<String> idList,@RequestParam(required = false) String isExit) {
return tEmployeeInsurancePreService.batchDispatcherInsurance(idList, isExit, false);
}
/**
......@@ -187,6 +188,18 @@ public class TEmployeeInsurancePreController {
return tEmployeeInsurancePreService.saveInsurancePreInfo(preVo);
}
/**
* 信息修改入口新增商险已购买明细
* @author huych
* @date 2025-08-14 11:46:16
**/
@Operation(description = "信息修改入口新增商险已购买明细")
@Inner
@PostMapping("/inner/updateInfoSaveInsurancePreInfo")
public Boolean updateInfoSaveInsurancePreInfo(@RequestBody EmployeeRegistrationPre pre) {
return tEmployeeInsurancePreService.updateInfoSaveInsurancePreInfo(pre);
}
/**
* 商险状态是否正常判断
* @author huych
......
......@@ -4,6 +4,7 @@ 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.csp.vo.EmployeeRegistrationCustomerUserUpdateVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.EmployeeRegistrationPre;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TEmployeeInsurancePre;
......@@ -68,6 +69,13 @@ public interface TEmployeeInsurancePreService extends IService<TEmployeeInsuranc
*/
Boolean saveInsurancePreInfo(EmployeeRegistrationPreVo preVo);
/**
* 信息修改入口新增商险待购买信息
* @param pre
* @return
*/
Boolean updateInfoSaveInsurancePreInfo(EmployeeRegistrationPre pre);
Boolean checkExitInsuanceIsProcess(EmployeeRegistrationPreVo preVo);
TEmployeeInsuranceSelectVo selectInsurancePreInfoList(TEmployeeInsurancePreVo preVo);
......
......@@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.csp.vo.EmployeeRegistrationCustomerUserUpdateVo;
import com.yifu.cloud.plus.v1.yifu.admin.api.entity.SysUser;
import com.yifu.cloud.plus.v1.yifu.admin.api.vo.SysUserListVo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TSettleDomain;
import com.yifu.cloud.plus.v1.yifu.archives.entity.EmployeeRegistrationPre;
import com.yifu.cloud.plus.v1.yifu.archives.vo.EmployeeRegistrationPreVo;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TSettleDomainRegistListVo;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ClientNameConstants;
......@@ -572,6 +572,9 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
TEmployeeInsurancePre preExit;
if (null != employeeInsurancePreVos && !employeeInsurancePreVos.isEmpty()) {
try {
//删除已存在的入职确认信息对应的商险明细
preDetailService.remove(Wrappers.<TInsurancePreDetail>lambdaQuery()
.eq(TInsurancePreDetail::getRegisterId, employeeInsurancePreVos.get(0).getRegisterId()));
for (TEmployeeInsurancePreVo preVo : employeeInsurancePreVos) {
//判断是否存在商险待购买信息
preExit = baseMapper.selectOne(Wrappers.<TEmployeeInsurancePre>query().lambda()
......@@ -620,6 +623,27 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
return true;
}
@Override
public Boolean updateInfoSaveInsurancePreInfo(EmployeeRegistrationPre registrationPre) {
if (Common.isNotNull(registrationPre.getInsuranceIsBuy())
&& registrationPre.getInsuranceIsBuy().equals(CommonConstants.ZERO_STRING)
&& !registrationPre.getExitInsuranceInfoList().isEmpty()) {
//删除已存在的入职确认信息对应的商险明细
preDetailService.remove(Wrappers.<TInsurancePreDetail>lambdaQuery()
.eq(TInsurancePreDetail::getRegisterId, registrationPre.getId()));
//批量新增
preDetailService.saveBatch(registrationPre.getExitInsuranceInfoList());
}
//如果商险是否已购买为否,删除商险已购买明细
if (Common.isNotNull(registrationPre.getInsuranceIsBuy())
&& registrationPre.getInsuranceIsBuy().equals(CommonConstants.ONE_STRING)) {
//删除已存在的入职确认信息对应的商险明细
preDetailService.remove(Wrappers.<TInsurancePreDetail>lambdaQuery()
.eq(TInsurancePreDetail::getRegisterId, registrationPre.getId()));
}
return true;
}
@Override
public Boolean checkExitInsuanceIsProcess(EmployeeRegistrationPreVo preVo) {
//如果状态有变动就会拦截
......@@ -644,7 +668,7 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
.or().eq(TInsuranceDetail::getBuyHandleStatus, CommonConstants.ONE_INT)));
return count == preVo.getExitInsuranceInfoList().size();
}
return false;
return true;
}
@Override
......@@ -768,6 +792,8 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
autoParam.setInsurancePreId(addParam.getInsurancePreId());
autoParam.setCustomerUserName(addParam.getCustomerUserName());
autoParam.setIsExit(addParam.getIsExit());
autoParam.setDeptName(addParam.getDeptName());
autoParam.setBuyType(addParam.getBuyType());
autoParam.setInProgressList(addParam.getInProgressList());
return autoParam;
}
......@@ -791,7 +817,11 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
autoParam.setInsurancePreId(batchParam.getInsurancePreId());
autoParam.setCustomerUserName(batchParam.getCustomerUserName());
autoParam.setIsExit(batchParam.getIsExit());
autoParam.setDeptName(batchParam.getDeptName());
autoParam.setBuyType(batchParam.getBuyType());
autoParam.setInProgressList(batchParam.getInProgressList());
autoParam.setPolicyEnd(LocalDateUtil.getDateSrt(batchParam.getPolicyEnd()));
autoParam.setPolicyStart(LocalDateUtil.getDateSrt(batchParam.getPolicyStart()));
return autoParam;
}
......@@ -814,6 +844,8 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
autoParam.setInsurancePreId(replaceParam.getInsurancePreId());
autoParam.setCustomerUserName(replaceParam.getCustomerUserName());
autoParam.setIsExit(replaceParam.getIsExit());
autoParam.setDeptName(replaceParam.getDeptName());
autoParam.setBuyType(replaceParam.getBuyType());
autoParam.setInProgressList(replaceParam.getInProgressList());
return autoParam;
}
......@@ -867,6 +899,9 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
public EmployeePreLogListVo getListByEmpPreId(String empPreId) {
EmployeePreLogListVo vo = new EmployeePreLogListVo();
List<TEmployeeInsurancePre> preList = baseMapper.getListByEmpPreId(empPreId);
if (Common.isNotNull(preList) && !preList.isEmpty()) {
preList.forEach(e->e.setErrorTime(null));
}
vo.setPreList(preList);
return vo;
}
......@@ -901,6 +936,13 @@ public class TEmployeeInsurancePreServiceImpl extends ServiceImpl<TEmployeeInsur
EmployeePreInsuranceListVo vo = new EmployeePreInsuranceListVo();
List<TInsurancePreDetail> preList = preDetailService.list(Wrappers.<TInsurancePreDetail>query().lambda()
.eq(TInsurancePreDetail::getRegisterId, empPreId));
if (Common.isNotNull(preList) && !preList.isEmpty()) {
preList.forEach(e -> {
e.setDisTime(DateUtil.convertToDateByLocalDateTime(e.getCreateTime()));
e.setCreateTime(null);
e.setUpdateTime(null);
});
}
vo.setPreList(preList);
return vo;
}
......
......@@ -614,7 +614,9 @@
a.CREATE_NAME as createName,
a.UNIT_NAME as unitName,
a.UNIT_NO as unitNo,
a.IS_ADRESS as isAdress
a.IS_ADRESS as isAdress,
a.INSURANCE_PROVINCE_NAME as insuranceProvinceName,
a.INSURANCE_CITY_NAME as insuranceCityName
from
t_insurance_detail a
where
......
......@@ -109,4 +109,18 @@ public class ArchiveTask {
log.info("-------------每日刷新运营风险管控数据-定时任务开始------------");
}
/**
* @Author fxj
* @Description 每天10点刷新合同续签待办信息到微信
* @Date 16:06 2025/8/15
* @Param
* @return
**/
public void everyDaypushContractAlertToWx() {
log.info("-------------每天刷新合同续签待办信息到微信-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(), daprArchivesProperties.getAppId(),
"/tempcontractalert/inner/pushContractAlertToWx","", Void.class, SecurityConstants.FROM_IN);
log.info("-------------每天刷新合同续签待待办信息到微信-定时任务结束------------");
}
}
\ No newline at end of file
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