Commit da2c22a8 authored by hongguangwu's avatar hongguangwu

Merge branch 'MVP1.6.9' into develop

parents cc65d9bb 2e42885d
......@@ -20,8 +20,6 @@ import com.yifu.cloud.plus.v1.yifu.archives.entity.TPreEmpMain;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 预入职-主表
*
......@@ -49,4 +47,10 @@ public class TPreEmpMainSearchVo extends TPreEmpMain {
@Schema(description = "查询limit 数据条数")
private int limitEnd;
/**
* 状态多选
*/
@Schema(description = "状态")
private String[] statusList;
}
......@@ -34,10 +34,16 @@ public class TPreMainExportAllVO {
private static final long serialVersionUID = 1L;
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value = "状态")
private String field1;
@ExcelProperty(value = "提交时间")
private String field2;
@ExcelProperty(value = "状态")
private String field1;
@ExcelProperty(value = "审核人")
private String field64;
@ExcelProperty(value = "审核通过时间")
private String field65;
@ExcelProperty(value = "员工主码")
private String field3;
@ExcelProperty(value = "员工类型")
......
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
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 java.io.Serializable;
import java.util.Date;
......@@ -62,6 +54,10 @@ public class UpProjectSocialFundVo implements Serializable {
String detailId;
String contactAddress;
String highEducation;
/**
* 户口性质
*/
private String empRegisType;
/**
* 学校
*/
......
......@@ -91,6 +91,20 @@ public class TEmployeeInfoController {
return R.ok(tEmployeeInfoService.getPage(page, tEmployeeInfo));
}
/**
* 分页查询
*
* @param page 分页对象
* @param tEmployeeInfo 人员档案表
* @return
*/
@Operation(summary = "分页查询", description = "分页查询")
@GetMapping("/pageAsso")
public R<IPage<TEmployeeInfo>> getTEmployeeInfoPagepageAsso(Page<TEmployeeInfo> page, TEmployeeInfo tEmployeeInfo) {
return R.ok(tEmployeeInfoService.getPageAsso(page, tEmployeeInfo));
}
/**
* 分页查询
*
......@@ -505,4 +519,16 @@ public class TEmployeeInfoController {
return tEmployeeInfoService.getHcmEmpInfoList(idCardList);
}
/**
* @Author fxj
* @Description 每年1月1号刷新在职和离职人员的年龄信息 公式:当前年-出生年
* @Date 17:29 2024/8/21
**/
@Operation(summary = "每年1月1号刷新在职和离职人员的年龄信息", description = "每年1月1号刷新在职和离职人员的年龄信息")
@Inner
@PostMapping("/inner/updateEmployeeAgeTask")
public void updateEmployeeAgeTask() {
tEmployeeInfoService.updateEmployeeAgeTask();
}
}
......@@ -38,6 +38,8 @@ public interface TEmployeeInfoMapper extends BaseMapper<TEmployeeInfo> {
IPage<TEmployeeInfo> getPage(Page<TEmployeeInfo> page, @Param("tEmployeeInfo") TEmployeeInfo tEmployeeInfo);
IPage<TEmployeeInfo> getPageAsso(Page<TEmployeeInfo> page, @Param("tEmployeeInfo") TEmployeeInfo tEmployeeInfo);
long getLeavePageCount(@Param("tEmployeeInfo") TEmployeeInfo tEmployeeInfo);
List<TEmployeeInfo> getLeavePage(@Param("tEmployeeInfo") TEmployeeInfo tEmployeeInfo, @Param("page")Long page, @Param("size")Long size);
......@@ -134,4 +136,5 @@ public interface TEmployeeInfoMapper extends BaseMapper<TEmployeeInfo> {
// hgw 2023-11-23 11:38:00 HCM获取人员信息列表
List<HcmEmployeeInfoVO> getHcmEmpInfoList(@Param("idCardList") List<String> idCardList);
void updateEmployeeAgeTask();
}
......@@ -253,4 +253,7 @@ public interface TEmployeeInfoService extends IService<TEmployeeInfo> {
**/
R<List<HcmEmployeeInfoVO>> getHcmEmpInfoList(List<String> idCardList);
void updateEmployeeAgeTask();
IPage<TEmployeeInfo> getPageAsso(Page<TEmployeeInfo> page, TEmployeeInfo tEmployeeInfo);
}
......@@ -2603,4 +2603,18 @@ public class TEmployeeInfoServiceImpl extends ServiceImpl<TEmployeeInfoMapper, T
vo.setContract(baseMapper.getHcmContractVo(idCard));
return vo;
}
/**
* @Author fxj
* @Description 每年1月1号刷新在职和离职人员的年龄信息 公式:当前年-出生年
* @Date 17:30 2024/8/21
**/
@Override
public void updateEmployeeAgeTask() {
baseMapper.updateEmployeeAgeTask();
}
@Override
public IPage<TEmployeeInfo> getPageAsso(Page<TEmployeeInfo> page, TEmployeeInfo employeeInfo) {
return baseMapper.getPageAsso(page, employeeInfo);
}
}
......@@ -1469,6 +1469,9 @@ public class TEmployeeProjectServiceImpl extends ServiceImpl<TEmployeeProjectMap
if (Common.isNotNull(vo.getGradutionDate())){
employee.setGradutionDate(vo.getGradutionDate());
}
if (Common.isNotNull(vo.getEmpRegisType())){
employee.setEmpRegisType(vo.getEmpRegisType());
}
tEmployeeInfoMapper.updateSocialInfoById(employee);
}
TEmployeeProject project = baseMapper.selectOne(Wrappers.<TEmployeeProject>query().lambda()
......
......@@ -2086,9 +2086,8 @@ public class TPreEmpMainServiceImpl extends ServiceImpl<TPreEmpMainMapper, TPreE
preEmpMain.setAuditId(user.getId());
preEmpMain.setAuditRemark(auditRemark);
preEmpMain.setAuditName(user.getNickname());
if (CommonConstants.FOUR_STRING.equals(status)) {
preEmpMain.setAuditTime(new Date());
}
// 2024-9-6 17:32:00 倩倩与 王成沟通,变更为审核时间,且审核通过与不通过的时候显示
preEmpMain.setAuditTime(new Date());
// 审核日志
TPreEmpMainLog auditLog = new TPreEmpMainLog();
......@@ -2222,8 +2221,10 @@ public class TPreEmpMainServiceImpl extends ServiceImpl<TPreEmpMainMapper, TPreE
} else {
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
List<List<String>> headList = Lists.newArrayList();
headList.add(this.getNewArrayList(new String[]{"状态", "状态"}));
headList.add(this.getNewArrayList(new String[]{"提交时间", "提交时间"}));
headList.add(this.getNewArrayList(new String[]{"状态", "状态"}));
headList.add(this.getNewArrayList(new String[]{"审核人", "审核人"}));
headList.add(this.getNewArrayList(new String[]{"审核时间", "审核时间"}));
String oneTitle = "员工基本信息";
headList.add(this.getNewArrayList(new String[]{oneTitle, "员工主码"}));
headList.add(this.getNewArrayList(new String[]{oneTitle, "员工类型"}));
......
......@@ -179,9 +179,9 @@
if(sum(if((PROJECT_STATUS = 0 and IS_COMPLETE = '0') or PROJECT_STATUS = 1,0,1)) > 0,1,0) as IS_COMPLETE,
sum(if((PROJECT_STATUS = 0 and IS_COMPLETE = '0') or PROJECT_STATUS = 1,0,1)) as INCOMPLETE_NUM,
concat(ROUND((sum(if(PROJECT_STATUS = 0,1,0)) - sum(if((PROJECT_STATUS = 0 and IS_COMPLETE = '0') or PROJECT_STATUS = 1,0,1)))*100/sum(if(PROJECT_STATUS = 0,1,0)),2),'%') as COMPLETE_PER,
sum(if(PROJECT_STATUS = 0 and DATE_FORMAT(CREATE_TIME,'%Y-%m-%d') >= '2024-05-01',1,0)) as AFTER_EMPLOYMENT,
if(sum(if((PROJECT_STATUS = 0 and DATE_FORMAT(CREATE_TIME,'%Y-%m-%d') >= '2024-05-01' and IS_COMPLETE = '0') or '2024-05-01' > DATE_FORMAT(CREATE_TIME,'%Y-%m-%d') or PROJECT_STATUS = 1,0,1)) > 0,1,0) AFTER_IS_COMPLETE,
sum(if(PROJECT_STATUS = 0 and DATE_FORMAT(CREATE_TIME,'%Y-%m-%d') >= '2024-05-01' and IS_COMPLETE = '1',1,0)) as AFTER_INCOMPLETE_NUM
sum(if(PROJECT_STATUS = 0 and DATE_FORMAT(CREATE_TIME,'%Y-%m-%d') >= '2024-09-01',1,0)) as AFTER_EMPLOYMENT,
if(sum(if((PROJECT_STATUS = 0 and DATE_FORMAT(CREATE_TIME,'%Y-%m-%d') >= '2024-09-01' and IS_COMPLETE = '0') or '2024-09-01' > DATE_FORMAT(CREATE_TIME,'%Y-%m-%d') or PROJECT_STATUS = 1,0,1)) > 0,1,0) AFTER_IS_COMPLETE,
sum(if(PROJECT_STATUS = 0 and DATE_FORMAT(CREATE_TIME,'%Y-%m-%d') >= '2024-09-01' and IS_COMPLETE = '1',1,0)) as AFTER_INCOMPLETE_NUM
from t_employee_project where DELETE_FLAG = '0' and PROJECT_STATUS = 0 group by DEPT_NO) a on a.DEPT_NO = b.DEPART_NO
where b.DELETE_FLAG = '0'
<if test="deptNo != null and deptNo.trim() != ''">
......
......@@ -562,6 +562,30 @@
</if>
order by a.CREATE_TIME desc
</select>
<!-- fxj 2024-08-23 身份证/姓名 下拉选择 查询 在职和离职数据 -->
<select id="getPageAsso" resultMap="tEmployeeInfoMap">
select
a.EMP_NAME,
a.EMP_IDCARD
from t_employee_info a
where 1=1
<if test="tEmployeeInfo != null">
<if test="tEmployeeInfo.empName != null and tEmployeeInfo.empName.trim() != ''">
AND a.EMP_NAME like concat('%',#{tEmployeeInfo.empName},'%')
</if>
<if test="tEmployeeInfo.empIdcard != null and tEmployeeInfo.empIdcard.trim() != ''">
AND a.EMP_IDCARD like concat('%',#{tEmployeeInfo.empIdcard},'%')
</if>
</if>
<if test="tEmployeeInfo.nameOrIdcard != null and tEmployeeInfo.nameOrIdcard.trim() != ''">
AND (
a.EMP_NAME like concat(#{tEmployeeInfo.nameOrIdcard},'%')
or
a.EMP_IDCARD like concat(#{tEmployeeInfo.nameOrIdcard},'%')
)
</if>
order by a.CREATE_TIME desc
</select>
<!-- hgw 分页查询 -->
<select id="getLeavePage" resultMap="tEmployeeExportMap">
......@@ -1184,7 +1208,7 @@
<if test="tEmployeeInfo.fileTown != null">a.FILE_TOWN=#{tEmployeeInfo.fileTown},</if>
<if test="tEmployeeInfo.fileTown == null">a.FILE_TOWN=null,</if>
</if>
<if test="tEmployeeInfo.empRegisType != null">a.EMP_REGIS_TYPE=#{tEmployeeInfo.empRegisType},</if>
<if test="tEmployeeInfo.empPhone != null and tEmployeeInfo.empPhone != ''">a.EMP_PHONE=#{tEmployeeInfo.empPhone},</if>
</trim>
WHERE a.id=#{tEmployeeInfo.id}
......@@ -1330,4 +1354,9 @@
</foreach>
</select>
<!-- 员工年龄+1 定时任务方法 专用 -->
<update id="updateEmployeeAgeTask">
update t_employee_info set EMP_AGE = YEAR(CURRENT_DATE())-YEAR(STR_TO_DATE(SUBSTRING(EMP_IDCARD,7,4),'%Y')) where EMP_IDCARD is not null and DELETE_FLAG='0' and SUBSTRING(EMP_IDCARD,7,1) in ('1','2')
</update>
</mapper>
......@@ -73,8 +73,8 @@
concat(a.BUSINESS_PRIMARY_TYPE,'-',ifnull(a.BUSINESS_SECOND_TYPE,''),'-',ifnull(a.BUSINESS_THIRD_TYPE,'')) BUSINESS_TYPE,
a.EMP_NATRUE,
a.AUDIT_ID,
a.AUDIT_NAME,
a.AUDIT_TIME,
if(a.STATUS in ('3','4'),a.AUDIT_NAME,'') AUDIT_NAME,
if(a.STATUS in ('3','4'),a.AUDIT_TIME,null) AUDIT_TIME,
a.CREATE_BY,
a.UPDATE_BY,
a.CREATE_NAME,
......@@ -85,6 +85,12 @@
</sql>
<sql id="tPreEmpMain_where">
<if test="tPreEmpMain != null">
<if test="tPreEmpMain.statusList != null and tPreEmpMain.statusList.length>0">
AND a.STATUS IN
<foreach collection="tPreEmpMain.statusList" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="tPreEmpMain.id != null and tPreEmpMain.id.trim() != ''">
AND a.ID = #{tPreEmpMain.id}
</if>
......@@ -286,7 +292,8 @@
<select id="getTPreEmpMainAllList" resultType="com.yifu.cloud.plus.v1.yifu.archives.vo.TPreMainExportAllVO">
SELECT
case a.STATUS when '0' then '草稿' when '1' then '待完善' when '2' then '待审核' when '3' then '审核不通过' when '4' then '审核通过' else '-' end field1
,DATE_FORMAT(a.create_time,'%Y-%m-%d') field2,e.EMP_CODE field3,emp_natrue.label field4,a.emp_name field5,a.emp_idcard field6
,DATE_FORMAT(a.create_time,'%Y-%m-%d %H:%i:%s') field2,if(a.STATUS in ('3','4'),a.AUDIT_NAME,'') field64,if(a.STATUS in ('3','4'),DATE_FORMAT(a.AUDIT_TIME,'%Y-%m-%d %H:%i:%s'),'') field65
,e.EMP_CODE field3,emp_natrue.label field4,a.emp_name field5,a.emp_idcard field6
,if(e.EMP_SEX='2','女',if(e.EMP_SEX='1','男','-')) field7
,if(e.VALIDITY_END is null,'-',if(e.VALIDITY_END > '2999-12-30','长期','固定')) field8 ,e.VALIDITY_START field9
,if(e.VALIDITY_END > '2999-12-30','长期',e.VALIDITY_END) field10,e.EMP_BIRTHDAY field11,e.EMP_AGE field12 ,emp_married.label field13,nation.label field14
......
......@@ -618,4 +618,12 @@ public interface ErrorCodes {
* 工作岗位不可为空
*/
String EMP_WORKING_JOB_NOT_EMPTY = "emp.work.job.not.empty";
/**
* 学历不可为空
*/
String EMP_DISPATCH_EMP_EDUCATION_NOT_EMPTY = "dispatch.emp.education.not.empty";
/**
* 户口性质不可为空
*/
String EMP_DISPATCH_EMP_REGISTYPE_NOT_EMPTY = "dispatch.emp.registype.not.empty";
}
......@@ -1331,6 +1331,7 @@ public class DateUtil {
return cal.getTime();
}
// fxj编写的获取当前时间,并替换 日
public static Date getDayOfThisMonth(int day){
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
......@@ -1339,6 +1340,23 @@ public class DateUtil {
return cal.getTime();
}
/**
* @Description: 替换当前时间的 日+时+分
* @Author: hgw
* @Date: 2024/9/2 11:07
* @return: java.util.Date
**/
public static Date getDayOfThisMonthByHourAndMin(int day, Date dateHourAndMin){
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.set(Calendar.DAY_OF_MONTH, day);
cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(new SimpleDateFormat("HH").format(dateHourAndMin)));
cal.set(Calendar.MINUTE, Integer.parseInt(new SimpleDateFormat("mm").format(dateHourAndMin)));
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
/**
* @Description: 增减(日)
* @Author: hgw
......@@ -1538,12 +1556,13 @@ public class DateUtil {
* @Author: hgw
* @Date: 2022/6/24 16:49
* @return: int
* update 2024-08-21 fxj thisYear - years +1 调整为 thisYear - years
**/
public static int getAge(int years){
SimpleDateFormat sf = new SimpleDateFormat(DateUtil.DATETIME_YYYY);
Date nowDate = new Date();
int thisYear = Integer.parseInt(sf.format(nowDate));
return thisYear - years + 1;
return thisYear - years;
}
/**
......
......@@ -238,6 +238,10 @@ emp.work.record.end.date.not.empty=\u5DE5\u4F5C\u7ECF\u5386\u7ED3\u675F\u65E5\u6
emp.work.job.not.empty=\u5DE5\u4F5C\u5C97\u4F4D\u4E0D\u53EF\u4E3A\u7A7A
dispatch.emp.education.not.empty=\u5DF2\u6709\u6863\u6848\u5B66\u5386\u4E3A\u7A7A\u6216\u65E0\u6863\u6848\uFF0C\u6D3E\u5355\u6A21\u677F\u5B66\u5386\u4E0D\u53EF\u4E3A\u7A7A\uFF0C\u8BF7\u8865\u5145\u5B66\u5386
dispatch.emp.registype.not.empty=\u5DF2\u6709\u6863\u6848\u6237\u53E3\u6027\u8D28\u4E3A\u7A7A\u6216\u65E0\u6863\u6848\uFF0C\u6D3E\u5355\u6A21\u677F\u6237\u53E3\u6027\u8D28\u4E0D\u53EF\u4E3A\u7A7A\uFF0C\u8BF7\u8865\u5145\u6237\u53E3\u6027\u8D28
......
package com.yifu.cloud.plus.v1.ekp.vo;
import lombok.Data;
import java.util.Date;
/**
* @author huych
* @description 入账明细推送
* @date 2024-08-23 16:31:15
*/
@Data
public class EKPEntryPushParam {
/**
* 来款单位
*/
private String fd_recipName;
/**
* 来款银行账号
*/
private String fd_recipAccountNo;
/**
* 来款单位开户行名
*/
private String fd_recipBkName;
/**
* 入账日期(精确)
*/
private String fd_date;
/**
* 到款单位
*/
private String fd_receiveBkName;
/**
* 到款银行账号
*/
private String fd_receiveBkNo;
/**
* 财务备注
*/
private String fd_remark;
/**
* 入账金额
*/
private String fd_receiveMoney;
/**
* 入账日期
*/
private Date fd_daReal;
/**
* 数据同步时间
*/
private Date fd_daTime;
/**
* 系统交易流水号
*/
private String fd_onlySequence;
}
package com.yifu.cloud.plus.v1.ekp.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
/**
* @author huyc
* @description 入账明细推送接口配置
* @date 2024-08-26 08:57:02
*/
@RefreshScope
@ConfigurationProperties(prefix = "entry")
@Data
public class EkpEntryProperties {
String entryUrl;
String entryFdModelId;
String entryDocStatus;
String entryLoginName;
String entryDocSubject;
String entryFdFlowId;
}
......@@ -44,6 +44,10 @@ public class IcbcConfigProperties {
**/
private String companyNo;
private String caSm;
private String caSmIcbc;
/**
* 异步通知地址
*/
......
//package com.yifu.cloud.plus.v1.ekp.controller;
//
//import com.yifu.cloud.plus.v1.ekp.service.IcbcTransactionFlowIssueService;
//import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
//import io.swagger.v3.oas.annotations.Operation;
//import io.swagger.v3.oas.annotations.tags.Tag;
//import lombok.RequiredArgsConstructor;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
///**
// * 聚富通代发工资相关
// *
// * @author huyc
// * @date 2024-05-23 10:24:12
// */
//@RestController
//@RequiredArgsConstructor
//@RequestMapping("/icbcIssue" )
//@Tag(name = "聚富通代发工资相关")
//public class IcbcTransactionFlowIssueController {
//
// private final IcbcTransactionFlowIssueService icbcTransactionFlowIssueService;
//
// /**
// * 聚富通代发工资确认提交
// *
// * @param
// * @param
// * @return
// */
// @Operation(summary = "聚富通代发工资确认提交接口", description = "聚富通代发工资确认提交接口")
// @PostMapping("/submit")
// public R submitIcbcTransactionFlow() {
// return icbcTransactionFlowIssueService.submitIcbcTransactionFlow();
// }
//
// /**
// * 代发工资明细查询
// *
// * @param
// * @param
// * @return
// */
// @Operation(summary = "代发工资明细查询", description = "代发工资明细查询")
// @PostMapping("/page")
// public R selectIcbcTransactionFlowInfo() {
// return icbcTransactionFlowIssueService.selectIcbcTransactionFlowInfo();
// }
//}
package com.yifu.cloud.plus.v1.ekp.controller;
import com.yifu.cloud.plus.v1.ekp.service.IcbcTransactionFlowIssueService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
/**
* 聚富通代发工资相关
*
* @author huyc
* @date 2024-05-23 10:24:12
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/icbcIssue" )
@Tag(name = "聚富通代发工资相关")
public class IcbcTransactionFlowIssueController {
private final IcbcTransactionFlowIssueService icbcTransactionFlowIssueService;
/**
* 聚富通代发工资确认提交
*
* @param
* @param
* @return
*/
@Operation(summary = "聚富通代发工资确认提交接口", description = "聚富通代发工资确认提交接口")
@PostMapping("/submit")
public R submitIcbcTransactionFlow() {
return icbcTransactionFlowIssueService.submitIcbcTransactionFlow();
}
/**
* 代发工资明细查询
*
* @param
* @param
* @return
*/
@Operation(summary = "代发工资明细查询", description = "代发工资明细查询")
@PostMapping("/page")
public R selectIcbcTransactionFlowInfo() {
return icbcTransactionFlowIssueService.selectIcbcTransactionFlowInfo();
}
/**
* 企业会员用户绑定管家卡
*
* @param
* @param
* @return
*/
@Operation(summary = "企业会员用户绑定管家卡", description = "企业会员用户绑定管家卡")
@PostMapping("/business")
public R businessOpen() {
return icbcTransactionFlowIssueService.businessOpen();
}
/**
* 代发工资发放成功异步通知功能
*
* @param
* @param
* @return
*/
@Operation(summary = "代发工资发放成功异步通知功能", description = "代发工资发放成功异步通知功能")
@PostMapping("/notifyUrl")
public R asyncNotice(HttpServletRequest request) throws Exception {
return icbcTransactionFlowIssueService.asyncNotice(request);
}
}
package com.yifu.cloud.plus.v1.ekp.controller;
import com.icbc.api.IcbcApiException;
import com.yifu.cloud.plus.v1.ekp.service.IcbcTransactionFlowQueryService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
......@@ -24,17 +26,55 @@ public class IcbcTransactionFlowQueryController {
private final IcbcTransactionFlowQueryService icbcTransactionFlowQueryService;
/**
* 交易流水查询
* 管家卡交易流水查询
*
* @param
* @return
*/
@Operation(summary = "交易流水查询", description = "交易流水查询")
@Operation(summary = "管家卡交易流水查询", description = "交管家卡易流水查询")
@PostMapping("/page")
public R getIcbcTransactionFlow() {
return icbcTransactionFlowQueryService.getIcbcTransactionFlow();
}
/**
* 交易流水查询
*
* @param
* @return
*/
@Operation(summary = "交易流水查询", description = "交易流水查询")
@PostMapping("/newPage")
public R getIcbcTransactionFlowNew() throws IcbcApiException {
return icbcTransactionFlowQueryService.getIcbcTransactionFlowNew();
}
/**
* 交易流水查询
*
* @param
* @return
*/
@Operation(summary = "交易流水查询", description = "交易流水查询")
@Inner
@PostMapping("/inner/newPage")
public R getIcbcTransactionFlowInner() throws IcbcApiException {
return icbcTransactionFlowQueryService.getIcbcTransactionFlowNew();
}
/**
* 查询昨日交易流水
*
* @param
* @return
*/
@Operation(summary = "查询昨日交易流水", description = "查询昨日交易流水")
@Inner
@PostMapping("/inner/newPageYesterday")
public R getIcbcTransactionFlowYesterdayInner() throws IcbcApiException {
return icbcTransactionFlowQueryService.getIcbcTransactionFlowYesterdayInner();
}
/**
* 预订单接口
*
......@@ -46,4 +86,18 @@ public class IcbcTransactionFlowQueryController {
public R saveIcbcManagerCard() {
return icbcTransactionFlowQueryService.saveIcbcManagerCard();
}
/**
* 行名行号查询接口
*
* @param
* @param
* @return
*/
@Operation(summary = "行名行号查询接口", description = "行名行号查询接口")
@PostMapping("/querybankinfo")
public R querybankinfo() {
return icbcTransactionFlowQueryService.querybankinfo();
}
}
......@@ -33,4 +33,11 @@ public interface EkpSocialInfoMapper extends BaseMapper<EkpSocialInfo> {
EkpSocialSumInfoVo getCostSumInfo(@Param("card") String empIdCard, @Param("month") String createMonth);
void updateSocialStatus(@Param("sql") String sql);
/**
* 获取所有当天的到账明细的交易流水号
* @param
* @return
*/
List<String> getAllserioNo();
}
//package com.yifu.cloud.plus.v1.ekp.service;
//
//import com.baomidou.mybatisplus.extension.service.IService;
//import com.yifu.cloud.plus.v1.ekp.entity.EkpSocialInfo;
//import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
//
///**
// * 聚富通代发工资相关
// *
// * @author huyc
// * @date 2024-05-24 10:55:24
// */
//public interface IcbcTransactionFlowIssueService extends IService<EkpSocialInfo> {
//
// R submitIcbcTransactionFlow();
//
// R selectIcbcTransactionFlowInfo();
//
//}
package com.yifu.cloud.plus.v1.ekp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.ekp.entity.EkpSocialInfo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import javax.servlet.http.HttpServletRequest;
/**
* 聚富通代发工资相关
*
* @author huyc
* @date 2024-05-24 10:55:24
*/
public interface IcbcTransactionFlowIssueService extends IService<EkpSocialInfo> {
R submitIcbcTransactionFlow();
R selectIcbcTransactionFlowInfo();
R businessOpen();
R asyncNotice(HttpServletRequest request) throws Exception;
}
package com.yifu.cloud.plus.v1.ekp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.icbc.api.IcbcApiException;
import com.yifu.cloud.plus.v1.ekp.entity.EkpSocialInfo;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
......@@ -14,6 +15,12 @@ public interface IcbcTransactionFlowQueryService extends IService<EkpSocialInfo>
R getIcbcTransactionFlow();
R getIcbcTransactionFlowNew() throws IcbcApiException;
R getIcbcTransactionFlowYesterdayInner() throws IcbcApiException;
R saveIcbcManagerCard();
R querybankinfo();
}
......@@ -36,7 +36,9 @@ import java.util.stream.Collectors;
@Log4j2
@Service
@RequiredArgsConstructor
public class EkpSalaryInfoServiceImpl extends ServiceImpl<EkpSalaryInfoMapper, EkpSalaryInfo> implements EkpSalaryInfoService {
public class
EkpSalaryInfoServiceImpl extends ServiceImpl<EkpSalaryInfoMapper, EkpSalaryInfo> implements EkpSalaryInfoService {
/**
//@Description: 工资明细推送至ekp
......
......@@ -61,4 +61,10 @@ security:
urls:
- /v3/api-docs
- /actuator/**
- /swagger-ui/**
\ No newline at end of file
- /swagger-ui/**
entry:
entryUrl: http://36.7.147.29:27007/api/hro/modelingWebservice/addModel
entryFdModelId: 18050b5cee8b79c234bf64d412294f23
entryLoginName: admin
entryDocSubject: 入账明细推送ekp接口
\ No newline at end of file
......@@ -37,4 +37,12 @@ security:
urls:
- /v3/api-docs
- /actuator/**
- /swagger-ui/**
\ No newline at end of file
- /swagger-ui/**
entry:
entryUrl: http://192.168.0.228:8080/api/sys-modeling/appModelRestService/addModel
entryFdModelId: 18050b5cee8b7c07ef1b4e87b4bddac0
entryFdFlowId: 191919ae533d0484bb60c5ed74e55a4b
entryDocStatus: 20
entryLoginName: admin
entryDocSubject: 入账明细推送ekp接口
\ No newline at end of file
......@@ -103,4 +103,12 @@ security:
urls:
- /v3/api-docs
- /actuator/**
- /swagger-ui/**
\ No newline at end of file
- /swagger-ui/**
entry:
entryUrl: http://36.7.147.29:27007/api/sys-modeling/appModelRestService/addModel
entryFdModelId: 18050b5cee8b7f8e56879448e4f23aad
entryFdFlowId: 191919ae533d080b60e6e784c55a3c8b
entryDocStatus: 20
entryLoginName: admin
entryDocSubject: 入账明细推送ekp接口
\ No newline at end of file
......@@ -70,3 +70,11 @@ springdoc:
- group: ekp
#按包路径匹配
packagesToScan: com.yifu.cloud.plus.v1.ekp.controller
#工行生产环境配置
icbc:
appId: 11000000000000019038
appPrivateKey: 4d931f6ad4331158fcc4dea23f0d71393328146e40b5f63f197b9f6ad3732f44
serverUrl: https://gw.open.icbc.com.cn/api/mybank/enterprise/trade/qhisd/V1
caSm: MIICSTCCAeygAwIBAgIGAJuAEtYAMAwGCCqBHM9VAYN1BQAwQTELMAkGA1UEBhMCY24xGzAZBgNVBAoMEnNtMmNvci5pY2JjLmNvbS5jbjEVMBMGA1UEAwwMc20ycm9vdGNhY29yMB4XDTIzMTIyMTA5NTAxNloXDTI4MTIyMTE1NTk1OVowVDELMAkGA1UEBhMCY24xGzAZBgNVBAoMEnNtMmNvci5pY2JjLmNvbS5jbjENMAsGA1UECwwEMTMwMjEZMBcGA1UEAwwQYWh3eC55LjEzMDIuMDIwMTBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABGEC1fF2rHTWfipQhOr+8SfvXDBiazIrImcsPH5aGaYMFK2RIXv0AF2xe2ZgAzcWRbgop0cAjaBHXpzSfIlnfl6jgbowgbcwHwYDVR0jBBgwFoAUDD6RRlIIkxjZ0/0x6S8mKdW3D2YwCQYDVR0TBAIwADBdBgNVHR8EVjBUMFKgUKBOpEwwSjEQMA4GA1UEAwwHY3JsNDE3MDEMMAoGA1UECwwDY3JsMRswGQYDVQQKDBJzbTJjb3IuaWNiYy5jb20uY24xCzAJBgNVBAYTAmNuMAsGA1UdDwQEAwIHgDAdBgNVHQ4EFgQUd0LHEI6l7Faq6/9GObNld3SH7xswDAYIKoEcz1UBg3UFAANJADBGAiEA68uRM5zYzMhaheAG+fw3AtkRFE5146+Qw6GVP93WojwCIQDzsIL3duLRtTot8ciVuKUQkI+GrXAg7nWnd2M2o9oRBw==
caSmIcbc: MIIDdDCCAxegAwIBAgIFRjBiNDYwDAYIKoEcz1UBg3UFADBcMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRswGQYDVQQDDBJDRkNBIEFDUyBTTTIgT0NBMzEwHhcNMjMwMjE1MDkyMTA5WhcNMjgwMjE1MDkyMTA5WjCBpTELMAkGA1UEBhMCQ04xGzAZBgNVBAoMEkNGQ0EgQUNTIFNNMiBPQ0EzMTETMBEGA1UECwwKQ0ZDQSBPQ0EzMTEZMBcGA1UECwwQT3JnYW5pemF0aW9uYWwtMTFJMEcGA1UEAwxAQ0ZDQUDkuK3lm73lt6XllYbpk7booYzogqHku73mnInpmZDlhazlj7hATjkxMTAwMDAwMTAwMDAzOTYyVEAxNjBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABC7pDFU19+SE4Bog4M7om/nsDbTtXHBlfp5G2e1Iya4LmFW5ZqOxmmQBysFwl9nDq3svOHMZ53Mpe14Z1m/OYFajggF4MIIBdDBsBggrBgEFBQcBAQRgMF4wKAYIKwYBBQUHMAGGHGh0dHA6Ly9vY3NwLmNmY2EuY29tLmNuL29jc3AwMgYIKwYBBQUHMAKGJmh0dHA6Ly9jcmwuY2ZjYS5jb20uY24vb2NhMzEvb2NhMzEuY2VyMB8GA1UdIwQYMBaAFAjY0SbESH2c7KyY6fF/YrmAzqlFMAwGA1UdEwEB/wQCMAAwSAYDVR0gBEEwPzA9BghggRyG7yoBBDAxMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmNmY2EuY29tLmNuL3VzL3VzLTE0Lmh0bTA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8vY3JsLmNmY2EuY29tLmNuL29jYTMxL1NNMi9jcmwyNzMwLmNybDAOBgNVHQ8BAf8EBAMCBsAwHQYDVR0OBBYEFOpEqrs73yvBXqvDQoT33v05FnDIMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAMBggqgRzPVQGDdQUAA0kAMEYCIQCdKpfhUijpAKEQekHxlk4LvnqzzaYmODo3T3qmZUJsUwIhAOaMMH0IpwefVTSwJlhrVbmEB5DmoxLo1Xb/1tvfW1l2
\ No newline at end of file
......@@ -116,4 +116,14 @@
<update id="updateSocialStatus">
#{sql}
</update>
<!--查询社保明细信息-->
<select id="getAllserioNo" resultType="java.lang.String">
SELECT
fd_3b573843db30ce
from ekp_79c234bf64d412294f23
where fd_3b62f3470beb30 = '1302010109024596014'
and DATE_FORMAT(fd_3aa4531d3b86e0, '%Y-%m-%d') between DATE_SUB(curdate(), INTERVAL 1 day) and DATE_ADD(now(), INTERVAL 1 day)
and fd_3b57f8de9df354 = '是'
</select>
</mapper>
package com.yifu.cloud.plus.v1.yifu.insurances.entity;
import com.baomidou.mybatisplus.annotation.*;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* @author licancan
* @description 商险明细表 t_insurance_detail
* @date 2022-07-18 16:20:16
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("t_insurance_alert")
@Schema(description = "商险到期提醒表")
public class TInsuranceAlert extends BaseEntity {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键")
private String id;
/**
* 员工姓名
*/
@Schema(description = "员工姓名")
private String empName;
/**
* 员工身份证号
*/
@Schema(description = "员工身份证号")
private String empIdcardNo;
/**
* 项目编码
*/
@Schema(description = "项目编码")
private String deptNo;
/**
* 投保岗位
*/
@Schema(description = "投保岗位")
private String post;
/**
* 保险公司名称(冗余字段)
*/
@Schema(description = "保险公司名称")
private String insuranceCompanyName;
/**
* 险种名称
*/
@Schema(description = "险种名称")
private String insuranceTypeName;
/**
* 购买标准
*/
@Schema(description = "购买标准")
private String buyStandard;
/**
* 医疗额度
*/
@Schema(description = "医疗额度")
private String medicalQuota;
/**
* 身故或残疾额度
*/
@Schema(description = "身故或残疾额度")
private String dieDisableQuota;
/**
* 保单编号
*/
@Schema(description = "保单编号")
private String policyNo;
/**
* 保单开始时间
*/
@Schema(description = "保单开始时间")
private LocalDate policyStart;
/**
* 保单结束时间
*/
@Schema(description = "保单结束时间")
private LocalDate policyEnd;
/**
* 保单生效日期
*/
@Schema(description = "保单生效日期")
private LocalDate policyEffect;
/**
* 结算月
*/
@Schema(description = "结算月")
private String settleMonth;
/**
* 发票号
*/
@Schema(description = "发票号")
private String invoiceNo;
/**
* 商险购买地省
*/
@Schema(description = "商险购买地省")
private String insuranceProvinceName;
/**
* 商险购买地市
*/
@Schema(description = "商险购买地市")
private String insuranceCityName;
/**
* 商险办理省
*/
@Schema(description = "商险办理省")
private String insuranceHandleProvinceName;
/**
* 商险办理城市
*/
@Schema(description = "商险办理城市")
private String insuranceHandleCityName;
/**
* 结算类型 (0、与薪资合并结算 1、单独结算)
*/
@Schema(description = "结算类型 (0、与薪资合并结算 1、单独结算)")
private Integer settleType;
/**
* 实际保费
*/
@Schema(description = "实际保费")
private BigDecimal actualPremium;
/**
* 预估保费
*/
@Schema(description = "预估保费")
private BigDecimal estimatePremium;
/**
* 是否过期 0未过期 1已过期
*/
@Schema(description = "是否过期 0未过期 1已过期")
private Integer isOverdue;
@Schema(description = "是否有效 0有效 1无效")
private Integer isEffect;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* 是否删除 0未删除/1删除
*/
@Schema(description = "是否删除 0否/1是")
private Integer deleteFlag;
/**
* 创建人所在部门名称
*/
@Schema(description = "创建人所在部门名称")
private String createUserDeptName;
@Schema(description = "项目名称")
private String deptName;
@Schema(description ="客户名称")
private String unitName;
@Schema(description ="客户编码")
private String unitNo;
/**
* 忽略提醒 0:忽略 1:不忽略
*/
@Schema(description = "有忽略提醒 0:忽略 1:不忽略")
private String expireIgnoreFlag;
/**
* 消息提醒备注
*/
@Schema(description = "消息提醒备注")
private String expireRemark;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -101,11 +101,11 @@ public class InsuranceWarnExportVo implements Serializable {
@Schema(name = "实际保费")
private BigDecimal actualPremium;
/**
* 创建
* 派单申请
*/
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value = "创建人")
@Schema(name = "创建人")
@ExcelProperty(value = "派单申请人")
@Schema(name = "派单申请人")
private String createName;
/**
......@@ -250,8 +250,8 @@ public class InsuranceWarnExportVo implements Serializable {
* 是否过期状态 0 未过期 1已过期。主要用于页面查询展示
*/
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value = "是否过期")
@Schema(name = "是否过期")
@ExcelProperty(value = "到期状态")
@Schema(name = "到期状态")
private String isOverdue;
/**
......@@ -311,4 +311,8 @@ public class InsuranceWarnExportVo implements Serializable {
@ExcelProperty(value = "消息提醒备注")
private String expireRemark;
@HeadFontStyle(fontHeightInPoints = 11)
@Schema(description = "是否忽略 0:忽略 1:不忽略")
@ExcelProperty(value = "是否忽略")
private String expireIgnoreFlag;
}
......@@ -358,7 +358,6 @@ public class TBusinessInsuranceVo implements Serializable {
@Schema(name = "创建人ID")
private String createBy;
/**
* 忽略提醒 0:忽略 1:不忽略
*/
......
......@@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.service.insurance.TInsuranceDetailService;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsuranceWarnService;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceSearchVo;
import com.yifu.cloud.plus.v1.yifu.insurances.vo.TBusinessInsuranceVo;
import io.swagger.v3.oas.annotations.Operation;
......@@ -34,6 +36,10 @@ import java.util.List;
public class TInsurancesWarnController {
@Resource
private TInsuranceDetailService insuranceDetailService;
@Resource
private TInsuranceWarnService insuranceWarnService;
/**
* @Author fxj
* @Description 商险到期提醒分页查询
......@@ -120,4 +126,17 @@ public class TInsurancesWarnController {
public R<Integer> getExpireInsuranceWarn() {
return insuranceDetailService.getExpireInsuranceWarn();
}
@Operation(description = "商险到期个人总数提醒")
@PostMapping("/getUserInsuranceMessageWarnCount")
public R<Integer> getUserInsuranceMessageWarnCount(@RequestParam String userName) {
return insuranceDetailService.getUserInsuranceMessageWarnCount(userName);
}
@Operation(description = "每天刷新商险到期提醒信息")
@Inner
@PostMapping("/inner/createInsuranceAlert")
public void createInsuranceAlert() {
insuranceWarnService.createInsuranceAlert();
}
}
......@@ -303,13 +303,15 @@ public interface TInsuranceDetailMapper extends BaseMapper<TInsuranceDetail> {
IPage<TBusinessInsuranceVo> getInsuranceExpireWarnVoPage(Page<TBusinessInsuranceVo> page,
@Param("param")InsuranceSearchVo param,
@Param("domains")List<String> domains);
List<TBusinessInsuranceVo> pageDiy(@Param("param")InsuranceSearchVo searchVo,
@Param("domains")List<String> idList);
List<TBusinessInsuranceVo> pageDiy(@Param("param")InsuranceSearchVo searchVo);
List<InsuranceWarnExportVo> noPageDiy(@Param("param")InsuranceSearchVo searchVo,
@Param("domains")List<String> idList);
List<InsuranceWarnExportVo> noPageDiy(@Param("param")InsuranceSearchVo searchVo);
int noPageCountDiy(@Param("param")InsuranceSearchVo searchVo, @Param("domains")List<String> idList);
int noPageCountDiy(@Param("param")InsuranceSearchVo searchVo);
void batchexpireIgnore(@Param("idList")List<String> idList);
void batchexpireAlertIgnore(@Param("idList")List<String> idList);
void updateExpireAlert(@Param("id") String id,@Param("expireFlag") String expireFlag,@Param("remark") String remark);
}
package com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceAlert;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author huych
* @description 针对表【t_insurance_alert(商险到期提醒表)】的数据库操作Mapper
* @date 2024-08-26 14:20:16
*/
@Mapper
public interface TInsuranceWarnMapper extends BaseMapper<TInsuranceAlert> {
/**
* 查询商险到期提醒信息
*
* @author huych
* @return {@link List < TInsuranceAlert >}
*/
List<TInsuranceAlert> selectInsuranceAlert();
}
......@@ -525,6 +525,8 @@ public interface TInsuranceDetailService extends IService<TInsuranceDetail> {
R<Integer> getExpireInsuranceWarn();
R<Integer> getUserInsuranceMessageWarnCount(String userName);
R<Object> batchexpireIgnore(List<String> ids);
R<Object> expireIgnore(TBusinessInsuranceVo vo);
......
package com.yifu.cloud.plus.v1.yifu.insurances.service.insurance;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceAlert;
/**
* @author huych
* @description 针对表【t_insurance_alert(商险到期提醒表)】的数据库操作Service
* @date 2024-08-26 14:20:16
*/
public interface TInsuranceWarnService extends IService<TInsuranceAlert> {
void createInsuranceAlert();
}
......@@ -7684,23 +7684,27 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
@Override
public IPage<TBusinessInsuranceVo> getInsuranceExpireWarnVoPage(Page<TBusinessInsuranceVo> page, InsuranceSearchVo condition) {
YifuUser user = SecurityUtils.getUser();
condition.setCreateBy(SecurityUtils.getUser().getId());
R<TSettleDomainListVo> sdRes = archivesDaprUtil.getPermissionByUserId(user.getId());
List<TInsuranceAreaRes> areaRes = insuranceAreaResMapper.selectList(Wrappers.<TInsuranceAreaRes>query().lambda()
.eq(TInsuranceAreaRes::getUserId, user.getId()).eq(TInsuranceAreaRes::getStatus, CommonConstants.ZERO_STRING));
if (Common.isNotNull(areaRes)) {
List<String> provinces = new ArrayList<>();
List<String> citys = new ArrayList<>();
for (TInsuranceAreaRes res : areaRes) {
if (Common.isEmpty(res.getCity())) {
provinces.add(res.getProvince());
} else {
citys.add(res.getCity());
}
}
condition.setInsuranceProvinces(provinces);
condition.setInsuranceCitys(citys);
}
if ("许瑞玲".equals(user.getNickname()) || "1".equals(user.getId())) {
condition.setCreateBy(null);
} else {
condition.setCreateBy(user.getId());
}
// R<TSettleDomainListVo> sdRes = archivesDaprUtil.getPermissionByUserId(user.getId());
// List<TInsuranceAreaRes> areaRes = insuranceAreaResMapper.selectList(Wrappers.<TInsuranceAreaRes>query().lambda()
// .eq(TInsuranceAreaRes::getUserId, user.getId()).eq(TInsuranceAreaRes::getStatus, CommonConstants.ZERO_STRING));
// if (Common.isNotNull(areaRes)) {
// List<String> provinces = new ArrayList<>();
// List<String> citys = new ArrayList<>();
// for (TInsuranceAreaRes res : areaRes) {
// if (Common.isEmpty(res.getCity())) {
// provinces.add(res.getProvince());
// } else {
// citys.add(res.getCity());
// }
// }
// condition.setInsuranceProvinces(provinces);
// condition.setInsuranceCitys(citys);
// }
IPage<TBusinessInsuranceVo> recordsPage = new Page<>();
int limitStart = (int)(page.getCurrent()-1)*(int)page.getSize();
int limitEnd = (int)page.getSize();
......@@ -7710,13 +7714,8 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
recordsPage.setPages(page.getPages());
recordsPage.setSize(page.getSize());
recordsPage.setCurrent(page.getCurrent());
if (Common.isNotNull(sdRes) && Common.isNotNull(sdRes.getData()) && Common.isNotNull(sdRes.getData().getDeptIds())) {
recordsPage.setTotal(baseMapper.noPageCountDiy(condition,sdRes.getData().getDeptIds()));
recordsPage.setRecords(baseMapper.pageDiy(condition, sdRes.getData().getDeptIds()));
}else {
recordsPage.setTotal(baseMapper.noPageCountDiy(condition,null));
recordsPage.setRecords(baseMapper.pageDiy(condition, null));
}
recordsPage.setTotal(baseMapper.noPageCountDiy(condition));
recordsPage.setRecords(baseMapper.pageDiy(condition));
return recordsPage;
}
......@@ -7726,6 +7725,8 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
return R.failed(CommonConstants.PARAM_IS_NOT_ERROR);
}
baseMapper.batchexpireIgnore(ids);
//更新商险到期提醒表
baseMapper.batchexpireAlertIgnore(ids);
return R.ok();
}
......@@ -7814,6 +7815,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
}
entity.setExpireIgnoreFlag(CommonConstants.ZERO_STRING);
baseMapper.updateById(entity);
baseMapper.updateExpireAlert(entity.getId(),CommonConstants.ZERO_STRING,null);
return R.ok();
}
private void remarkBatchAdd(List<InsurancesWarnUpdateVo> businessInsuranceVoList,List<ErrorMessage> errorMessages) {
......@@ -7908,6 +7910,7 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
detail.setExpireIgnoreFlag(expireIgnoreFlag);
detail.setExpireRemark(vo.getExpireRemark());
this.updateById(detail);
baseMapper.updateExpireAlert(detail.getId(),expireIgnoreFlag,vo.getExpireRemark());
errorMessages.add(new ErrorMessage(line + 2, CommonConstants.UPDATE_SUCCESS));
} catch (Exception e) {
log.error("商险批量备注执行异常", e);
......@@ -7989,17 +7992,18 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
}
entity.setExpireRemark(vo.getExpireRemark());
baseMapper.updateById(entity);
baseMapper.updateExpireAlert(vo.getId(),null,vo.getExpireRemark());
return R.ok();
}
private List<InsuranceWarnExportVo> noPageDiy(InsuranceSearchVo searchVo) {
List<String> domainIds = getExportCondition(searchVo);
return baseMapper.noPageDiy(searchVo,domainIds);
// List<String> domainIds = getExportCondition(searchVo);
return baseMapper.noPageDiy(searchVo);
}
private int noPageCountDiy(InsuranceSearchVo searchVo) {
List<String> domainIds = getExportCondition(searchVo);
return baseMapper.noPageCountDiy(searchVo,domainIds);
// List<String> domainIds = getExportCondition(searchVo);
return baseMapper.noPageCountDiy(searchVo);
}
private List<String> getExportCondition(InsuranceSearchVo searchVo) {
......@@ -8029,7 +8033,15 @@ public class TInsuranceDetailServiceImpl extends ServiceImpl<TInsuranceDetailMap
@Override
public R<Integer> getExpireInsuranceWarn() {
InsuranceSearchVo searchVo = new InsuranceSearchVo();
List<String> domainIds = getExportCondition(searchVo);
return R.ok(baseMapper.noPageCountDiy(searchVo,domainIds));
// List<String> domainIds = getExportCondition(searchVo);
return R.ok(baseMapper.noPageCountDiy(searchVo));
}
@Override
public R<Integer> getUserInsuranceMessageWarnCount(String userName) {
InsuranceSearchVo searchVo = new InsuranceSearchVo();
searchVo.setCreateName(userName);
searchVo.setExpireIgnoreFlag(CommonConstants.ONE_STRING);
return R.ok(baseMapper.noPageCountDiy(searchVo));
}
}
package com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
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.insurances.entity.TInsuranceAlert;
import com.yifu.cloud.plus.v1.yifu.insurances.mapper.insurances.TInsuranceWarnMapper;
import com.yifu.cloud.plus.v1.yifu.insurances.service.insurance.TInsuranceWarnService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author huych
* @description 针对表【t_insurance_alert(商险到期提醒表)】的数据库操作Service实现
* @date 2024-08-26 14:20:16
*/
@Service
public class TInsuranceWarnServiceImpl extends ServiceImpl<TInsuranceWarnMapper, TInsuranceAlert> implements TInsuranceWarnService {
@Override
public void createInsuranceAlert() {
//批量删除所有未忽略的提醒数据
baseMapper.delete(Wrappers.<TInsuranceAlert>query().lambda()
.eq(TInsuranceAlert::getExpireIgnoreFlag, CommonConstants.ONE_STRING));
//批量生成或者更新商险到期提醒数据
List<TInsuranceAlert> list = baseMapper.selectInsuranceAlert();
this.saveOrUpdateBatch(list);
}
}
......@@ -1695,7 +1695,8 @@
rf.CREATE_TIME as "refundCreateTime",
rf.CREATE_NAME as "refundCreateUser",
a.CREATE_USER_DEPT_NAME,
a.EXPIRE_REMARK
a.EXPIRE_REMARK,
a.EXPIRE_IGNORE_FLAG
</sql>
<sql id="expire_export_sql_param">
select
......@@ -1734,19 +1735,21 @@
r.fromEmpName,
r.toEmpName,
r.REPLACE_TIME as "toReplaceTime",
case when a.IS_OVERDUE = 0 then "未过期"
when a.IS_OVERDUE = 1 then "过期"
case when a.IS_OVERDUE = 0 then "期"
when a.IS_OVERDUE = 1 then "过期"
else null end as "IS_OVERDUE" ,
a.ESTIMATE_PREMIUM,
rf.REFUND_MONEY,
rf.CREATE_TIME as "refundCreateTime",
rf.CREATE_NAME as "refundCreateUser",
a.CREATE_USER_DEPT_NAME,
a.EXPIRE_REMARK
a.EXPIRE_REMARK,
case when a.EXPIRE_IGNORE_FLAG = 0 then "是"
when a.EXPIRE_IGNORE_FLAG = 1 then "否"
else null end as "EXPIRE_IGNORE_FLAG"
</sql>
<sql id="expire_sql_where">
<where>
<if test="param != null">
<if test="param.empName != null and param.empName.trim() != ''">
AND a.EMP_NAME like CONCAT('%' , #{param.empName},'%')
......@@ -1760,6 +1763,18 @@
<if test="param.insuranceHandleCityName != null and param.insuranceHandleCityName.trim() != ''">
AND a.INSURANCE_HANDLE_CITY_NAME like CONCAT(#{param.insuranceHandleCityName},'%')
</if>
<if test="param.createName != null and param.createName.trim() != ''">
AND a.CREATE_NAME = #{param.createName}
</if>
<if test="param.expireIgnoreFlag != null and param.expireIgnoreFlag.trim() != ''">
AND a.EXPIRE_IGNORE_FLAG = #{param.expireIgnoreFlag}
</if>
<if test="param.isOverdue != null and param.isOverdue.trim() != ''">
AND a.IS_OVERDUE = #{param.isOverdue}
</if>
<if test="param.createBy != null and param.createBy.trim() != ''">
and a.CREATE_BY = #{param.createBy}
</if>
<if test="param.idList != null and param.idList.size() > 0">
and a.id in
<foreach collection="param.idList" item="param" index="index" open="(" close=")"
......@@ -1771,7 +1786,7 @@
</where>
</sql>
<select id="getInsuranceExpireWarnVoPage" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.TBusinessInsuranceVo">
<select id="getInsuranceExpireWarnVoPageHistory" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.TBusinessInsuranceVo">
<include refid="expire_sql_param"/>,a.INSURANCE_HANDLE_CITY_NAME
from
(select * from
......@@ -1830,7 +1845,20 @@
<include refid="expire_sql_where"/>
order by a.CREATE_TIME desc
</select>
<select id="pageDiy" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.TBusinessInsuranceVo">
<select id="getInsuranceExpireWarnVoPage" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.TBusinessInsuranceVo">
<include refid="expire_sql_param"/>
,a.INSURANCE_HANDLE_CITY_NAME
from
t_insurance_alert a
LEFT JOIN view_insurance_replace r on a.id=r.TO_INSURANCE_DETAIL_ID
LEFT JOIN view_insurance_replace r2 on a.id=r2.FROM_INSURANCE_DETAIL_ID
LEFT JOIN t_insurance_refund rf on rf.INS_DETAIL_ID=a.id
<include refid="expire_sql_where"/>
order by a.POLICY_END asc
</select>
<select id="pageDiyHistory" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.TBusinessInsuranceVo">
<include refid="expire_sql_param"/>,a.INSURANCE_HANDLE_CITY_NAME
from
(select * from (select * from t_insurance_detail a
......@@ -1890,126 +1918,48 @@
LEFT JOIN view_insurance_replace r2 on a.id=r2.FROM_INSURANCE_DETAIL_ID
LEFT JOIN t_insurance_refund rf on rf.INS_DETAIL_ID=a.id
</select>
<select id="noPageDiy" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceWarnExportVo">
<include refid="expire_export_sql_param"/>,a.INSURANCE_HANDLE_CITY_NAME
from
(select * from (select * from t_insurance_detail a
where
<!-- info.AUDIT_STATUS='0' and t.STATUS = 5 状态 0.待提交 1.待办理 2.已提交保险公司 3.已办理 4.办理失败 5:待结算(已输入保单号)-->
<!--一个月内的,没有再续买商险的数据-->
a.BUY_HANDLE_STATUS ='3'
and a.EXPIRE_IGNORE_FLAG='1'
and (
date_add(curdate() - day(curdate()) + 1, interval 3 month) >
a.POLICY_END
)
<if test="param != null">
<if test="param.insuranceProvinces == null and param.insuranceCitys == null and domains == null">
and a.CREATE_BY = #{param.createBy}
</if>
and (1 = 2
<if test="param.insuranceProvinces != null">
<if test="param.insuranceProvinces.size() > 0">
or a.INSURANCE_HANDLE_PROVINCE in
<foreach collection="param.insuranceProvinces" item="param" index="index" open="(" close=")"
separator=",">
#{param}
</foreach>
</if>
</if>
<if test="param.insuranceCitys != null">
<if test="param.insuranceCitys.size() > 0">
or a.INSURANCE_HANDLE_CITY in
<foreach collection="param.insuranceCitys" item="param" index="index" open="(" close=")"
separator=",">
#{param}
</foreach>
</if>
</if>
<!--数据权限判断-->
or a.CREATE_BY = #{param.createBy}
<if test="domains != null">
<if test="domains.size() > 0">
or a.DEPT_ID in
<foreach collection="domains" item="param" index="index" open="(" close=")" separator=",">
#{param}
</foreach>
</if>
</if>
)
</if>
) a
<select id="pageDiy" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.TBusinessInsuranceVo">
<include refid="expire_sql_param"/>
,a.INSURANCE_HANDLE_CITY_NAME
from
t_insurance_alert a
LEFT JOIN view_insurance_replace r on a.id=r.TO_INSURANCE_DETAIL_ID
LEFT JOIN view_insurance_replace r2 on a.id=r2.FROM_INSURANCE_DETAIL_ID
LEFT JOIN t_insurance_refund rf on rf.INS_DETAIL_ID=a.id
<include refid="expire_sql_where"/>
order by a.CREATE_TIME desc
order by a.POLICY_END asc
<if test="param != null and param.limitStart != null">
limit #{param.limitStart},#{param.limitEnd}
</if>
)a
</select>
<select id="noPageDiy" resultType="com.yifu.cloud.plus.v1.yifu.insurances.vo.InsuranceWarnExportVo">
<include refid="expire_export_sql_param"/>
,a.INSURANCE_HANDLE_CITY_NAME
from
t_insurance_alert a
LEFT JOIN view_insurance_replace r on a.id=r.TO_INSURANCE_DETAIL_ID
LEFT JOIN view_insurance_replace r2 on a.id=r2.FROM_INSURANCE_DETAIL_ID
LEFT JOIN t_insurance_refund rf on rf.INS_DETAIL_ID=a.id
<include refid="expire_sql_where"/>
group by a.id
order by a.POLICY_END asc
<if test="param != null and param.limitStart != null">
limit #{param.limitStart},#{param.limitEnd}
</if>
</select>
<select id="noPageCountDiy" resultType="java.lang.Integer">
select
count(1)
from (select * from t_insurance_detail a
where
<!-- info.AUDIT_STATUS='0' and t.STATUS = 5 状态 0.待提交 1.待办理 2.已提交保险公司 3.已办理 4.办理失败 5:待结算(已输入保单号)-->
<!--一个月内的,没有再续买商险的数据-->
a.BUY_HANDLE_STATUS ='3'
and a.EXPIRE_IGNORE_FLAG='1'
and (
date_add(curdate() - day(curdate()) + 1, interval 3 month) >
a.POLICY_END
)
<if test="param != null">
<if test="param.insuranceProvinces == null and param.insuranceCitys == null and domains == null">
and a.CREATE_BY = #{param.createBy}
</if>
and (1 = 2
<if test="param.insuranceProvinces != null">
<if test="param.insuranceProvinces.size() > 0">
or a.INSURANCE_HANDLE_PROVINCE in
<foreach collection="param.insuranceProvinces" item="param" index="index" open="(" close=")"
separator=",">
#{param}
</foreach>
</if>
</if>
<if test="param.insuranceCitys != null">
<if test="param.insuranceCitys.size() > 0">
or a.INSURANCE_HANDLE_CITY in
<foreach collection="param.insuranceCitys" item="param" index="index" open="(" close=")"
separator=",">
#{param}
</foreach>
</if>
</if>
<!--数据权限判断-->
or a.CREATE_BY = #{param.createBy}
<if test="domains != null">
<if test="domains.size() > 0">
or a.DEPT_ID in
<foreach collection="domains" item="param" index="index" open="(" close=")" separator=",">
#{param}
</foreach>
</if>
</if>
)
</if>
) a
<!--LEFT JOIN view_insurance_replace r on a.id=r.TO_INSURANCE_DETAIL_ID
LEFT JOIN view_insurance_replace r2 on a.id=r2.FROM_INSURANCE_DETAIL_ID
LEFT JOIN t_insurance_refund rf on rf.INS_DETAIL_ID=a.id-->
from
t_insurance_alert a
<include refid="expire_sql_where"/>
</select>
<update id="batchexpireIgnore">
<if test="idList != null and idList.size() > 0">
update t_insurance_detail a
update t_insurance_detail a
set a.EXPIRE_IGNORE_FLAG = '0'
where
a.id in
......@@ -2019,6 +1969,27 @@
</if>
</update>
<update id="batchexpireAlertIgnore">
<if test="idList != null and idList.size() > 0">
update t_insurance_alert a
set a.EXPIRE_IGNORE_FLAG = '0'
where
a.id in
<foreach collection="idList" item="param" index="index" open="(" close=")" separator=",">
#{param}
</foreach>
</if>
</update>
<update id="updateExpireAlert">
update t_insurance_alert
<trim prefix="set" suffixOverrides=",">
<if test="expireFlag != null">EXPIRE_IGNORE_FLAG=#{expireFlag},</if>
<if test="remark != null">EXPIRE_REMARK=#{remark},</if>
</trim>
where id = #{id}
</update>
<select id="selectPushList" resultType="com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceDetail">
SELECT
*
......
<?xml version="1.0" encoding="UTF-8"?>
<!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.insurances.mapper.insurances.TInsuranceWarnMapper">
<resultMap id="BaseResultMap" type="com.yifu.cloud.plus.v1.yifu.insurances.entity.TInsuranceAlert">
<id property="id" column="ID" jdbcType="VARCHAR"/>
<result property="empName" column="EMP_NAME" jdbcType="VARCHAR"/>
<result property="empIdcardNo" column="EMP_IDCARD_NO" jdbcType="VARCHAR"/>
<result property="deptNo" column="DEPT_NO" jdbcType="VARCHAR"/>
<result property="post" column="POST" jdbcType="VARCHAR"/>
<result property="insuranceCompanyName" column="INSURANCE_COMPANY_NAME" jdbcType="VARCHAR"/>
<result property="insuranceTypeName" column="INSURANCE_TYPE_NAME" jdbcType="VARCHAR"/>
<result property="buyStandard" column="BUY_STANDARD" jdbcType="VARCHAR"/>
<result property="medicalQuota" column="MEDICAL_QUOTA" jdbcType="VARCHAR"/>
<result property="dieDisableQuota" column="DIE_DISABLE_QUOTA" jdbcType="VARCHAR"/>
<result property="policyNo" column="POLICY_NO" jdbcType="VARCHAR"/>
<result property="policyStart" column="POLICY_START" jdbcType="DATE"/>
<result property="policyEnd" column="POLICY_END" jdbcType="DATE"/>
<result property="policyEffect" column="POLICY_EFFECT" jdbcType="DATE"/>
<result property="settleMonth" column="SETTLE_MONTH" jdbcType="VARCHAR"/>
<result property="invoiceNo" column="INVOICE_NO" jdbcType="VARCHAR"/>
<result property="insuranceProvinceName" column="INSURANCE_PROVINCE_NAME" jdbcType="VARCHAR"/>
<result property="insuranceCityName" column="INSURANCE_CITY_NAME" jdbcType="VARCHAR"/>
<result property="insuranceHandleProvinceName" column="INSURANCE_HANDLE_PROVINCE_NAME" jdbcType="VARCHAR"/>
<result property="insuranceHandleCityName" column="INSURANCE_HANDLE_CITY_NAME" jdbcType="VARCHAR"/>
<result property="settleType" column="SETTLE_TYPE" jdbcType="TINYINT"/>
<result property="actualPremium" column="ACTUAL_PREMIUM" jdbcType="DECIMAL"/>
<result property="estimatePremium" column="ESTIMATE_PREMIUM" jdbcType="DECIMAL"/>
<result property="isEffect" column="IS_EFFECT" jdbcType="TINYINT"/>
<result property="isOverdue" column="IS_OVERDUE" jdbcType="TINYINT"/>
<result property="remark" column="REMARK" jdbcType="VARCHAR"/>
<result property="createBy" column="CREATE_BY" jdbcType="VARCHAR"/>
<result property="createName" column="CREATE_NAME" jdbcType="VARCHAR"/>
<result property="createTime" column="CREATE_TIME" jdbcType="TIMESTAMP"/>
<result property="updateBy" column="UPDATE_BY" jdbcType="VARCHAR"/>
<result property="updateTime" column="UPDATE_TIME" jdbcType="TIMESTAMP"/>
<result property="deleteFlag" column="DELETE_FLAG" jdbcType="TINYINT"/>
<result property="createUserDeptName" column="CREATE_USER_DEPT_NAME" jdbcType="VARCHAR"/>
<result property="deptName" column="DEPT_NAME" jdbcType="VARCHAR"/>
<result property="unitName" column="UNIT_NAME" jdbcType="VARCHAR"/>
<result property="unitNo" column="UNIT_NO" jdbcType="VARCHAR"/>
<result property="expireIgnoreFlag" column="EXPIRE_IGNORE_FLAG" jdbcType="VARCHAR"/>
<result property="expireRemark" column="EXPIRE_REMARK" jdbcType="VARCHAR"/>
</resultMap>
<select id="selectInsuranceAlert" resultMap="BaseResultMap">
SELECT
a.ID,
a.EMP_NAME,
a.EMP_IDCARD_NO,
a.DEPT_NO,
a.DEPT_NAME,
a.POST,
a.INSURANCE_COMPANY_NAME,
a.INSURANCE_TYPE_NAME,
a.INSURANCE_CITY_NAME,
a.INSURANCE_HANDLE_CITY_NAME,
a.INSURANCE_HANDLE_PROVINCE_NAME,
a.INSURANCE_PROVINCE_NAME,
a.BUY_STANDARD,
a.UNIT_NAME,
a.UNIT_NO,
a.SETTLE_TYPE,
a.POLICY_EFFECT,
a.EXPIRE_REMARK,
a.EXPIRE_IGNORE_FLAG,
a.SETTLE_MONTH,
a.POLICY_START,
a.POLICY_END,
a.ACTUAL_PREMIUM,
a.ESTIMATE_PREMIUM,
a.INVOICE_NO,
a.MEDICAL_QUOTA,
a.DIE_DISABLE_QUOTA,
a.DEPT_ID,
a.POLICY_NO,
if(a.POLICY_END >= curdate(),0,1) IS_OVERDUE,
a.REMARK,
a.CREATE_BY,
a.DELETE_FLAG,
a.CREATE_NAME,
a.CREATE_TIME,
a.UPDATE_BY,
a.UPDATE_TIME,
a.IS_EFFECT,
a.CREATE_USER_DEPT_NAME
FROM
t_insurance_detail a
WHERE
a.id IN (
SELECT
l.id
FROM
(
SELECT
b.EMP_IDCARD_NO,
max( b.POLICY_END ) endTime
FROM
t_insurance_detail b
WHERE
b.POLICY_START >= date_sub( date_add( curdate(), INTERVAL 1 DAY ), INTERVAL 1 YEAR )
AND b.IS_EFFECT = 0
AND NOT EXISTS (
SELECT
1
FROM
t_insurance_detail ea
WHERE
ea.POLICY_START >= date_sub( date_add( curdate(), INTERVAL 1 DAY ), INTERVAL 1 YEAR )
AND ea.IS_EFFECT = 0
AND ea.POLICY_END >= date_add( curdate(), INTERVAL 1 MONTH )
AND ea.EMP_IDCARD_NO = b.EMP_IDCARD_NO
AND ea.INSURANCE_COMPANY_NAME = b.INSURANCE_COMPANY_NAME
AND ea.INSURANCE_TYPE_NAME = b.INSURANCE_TYPE_NAME
)
GROUP BY
b.EMP_IDCARD_NO,
b.INSURANCE_COMPANY_NAME,
b.INSURANCE_TYPE_NAME
) h
INNER JOIN t_insurance_detail l ON h.EMP_IDCARD_NO = l.EMP_IDCARD_NO
AND h.endTime = l.POLICY_END
WHERE
l.EXPIRE_IGNORE_FLAG = '1'
)
</select>
</mapper>
......@@ -24,6 +24,14 @@ public class ArchiveTask {
@Autowired
private DaprArchivesProperties daprArchivesProperties;
public void updateEmployeeAgeTask() {
log.info("-------------每年1月1号刷新在职和离职人员的年龄信息-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprArchivesProperties.getAppUrl(), daprArchivesProperties.getAppId(),
"/temployeeinfo/inner/updateEmployeeAgeTask", "", Object.class,
SecurityConstants.FROM_IN);
log.info("-------------每年1月1号刷新在职和离职人员的年龄信息-定时任务结束------------");
}
/**
* @Author hgw
* @Description 每月1号清理人员档案、项目档案的薪资状态
......
......@@ -67,4 +67,18 @@ public class EkpPermissionTask {
log.info("-------------获取HCM出差数据-定时任务结束------------");
}
/**
* @Author hgw
* @Description 每天1点30,定时同步企微招聘数据
* @Date 2024-8-28 11:39:32
* @Param
**/
public void everyDaySaveQiWeiZhaoPin() throws Exception {
log.info("-------------获取企微招聘数据-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprEkpPermissionProperties.getAppUrl(), daprEkpPermissionProperties.getAppId(),
"/qiWei/inner/everyDaySaveQiWeiZhaoPin", "", Object.class,
SecurityConstants.FROM_IN);
log.info("-------------获取企微招聘数据-定时任务结束------------");
}
}
\ No newline at end of file
package com.yifu.cloud.plus.v1.job.compont;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.SecurityConstants;
import com.yifu.cloud.plus.v1.yifu.common.dapr.config.DaprEkpProperties;
import com.yifu.cloud.plus.v1.yifu.common.dapr.util.HttpDaprUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* @Author huyc
* @Description 定时任务具体执行类
* @Date 10:48 2022/8/17
* @Param
* @return
**/
@Component(value = "ekpTask")
@Slf4j
@EnableConfigurationProperties(DaprEkpProperties.class)
public class EkpTask {
@Autowired
private DaprEkpProperties daprEkpProperties;
/**
* @Author huyc
* @Description 入账明细生成
* @Date 2024-8-28 16:31:32
* @Param
* @return
**/
public void doCreateEntryInfoEkp() {
log.info("------------定时生成入账明细数据-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprEkpProperties.getAppUrl(),daprEkpProperties.getAppId(),"/icbcQuery/inner/newPage","", Object.class, SecurityConstants.FROM_IN);
log.info("------------定时生成入账明细数据-定时任务结束------------");
}
/**
* @Author huyc
* @Description 昨日未生成的到账明细生成
* @Date 2024-8-28 16:31:32
* @Param
* @return
**/
public void doCreateYesterdayEntryInfoEkp() {
log.info("------------定时生成昨日未生成的入账明细数据-定时任务开始------------");
HttpDaprUtil.invokeMethodPost(daprEkpProperties.getAppUrl(),daprEkpProperties.getAppId(),"/icbcQuery/inner/newPageYesterday","", Object.class, SecurityConstants.FROM_IN);
log.info("------------定时生成昨日未生成的入账明细数据-定时任务结束------------");
}
}
\ No newline at end of file
......@@ -59,4 +59,17 @@ public class UpdateOverdueTask {
HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(),daprInsurancesProperties.getAppId(),"/insuranceDetail/inner/pushActualPremium","", Void.class, SecurityConstants.FROM_IN);
log.info("------------推送商险待结算数据-定时任务结束------------");
}
/**
* 每天刷新商险到期提醒信息
* @author huych
* @param
* @return void
*/
public void everyDayCreateInsuranceAlert() {
log.info("-------------每天刷新商险到期提醒信息------------");
HttpDaprUtil.invokeMethodPost(daprInsurancesProperties.getAppUrl(), daprInsurancesProperties.getAppId(),
"/insuranceWarn/inner/createInsuranceAlert","", Void.class, SecurityConstants.FROM_IN);
log.info("-------------每天刷新商险到期提醒信息-定时任务开始------------");
}
}
package com.yifu.cloud.plus.v1.yifu.permission.entity;
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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 企业微信出差
*/
@TableName(value = "ekp_qiwei_zhaopin")
@Data
@Schema(description = "企业微信招聘")
public class EkpQiwiZhaoPin {
@TableField(exist = false)
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@Schema(description = "主键", name = "fdId")
private String fdId;
@Schema(description = "审批编号")
@NotBlank(message = "审批编号不能为空")
private String fdSpNo;
@Schema(description = "申请人姓名")
@NotBlank(message = "申请人姓名不能为空")
private String fdApplyUserName;
@Schema(description = "申请人部门")
@NotBlank(message = "申请人部门不能为空")
private String fdApplyUserDept;
@Schema(description = "申请日期")
@NotNull(message = "申请日期不能为空")
private LocalDateTime fdApplyDate;
@Schema(description = "开始时间")
private LocalDate fdNewBegin;
@Schema(description = "结束时间")
private LocalDate fdNewEnd;
// 关联状态 0未关联;1已关联;
@Schema(description = "关联状态")
private String fdStatus;
@Schema(description = "创建申请时间")
private LocalDateTime createTime;
@Schema(description = "同步这条数据时间")
private LocalDateTime createDataTime;
// 企微、HCM
@Schema(description = "数据源")
private String fdDataSource;
// 新字段
@Schema(description = "申请子 (分) 公司或部门名称")
@NotBlank(message = "申请子 (分) 公司或部门名称")
private String fdUserDeptName;
@Schema(description = "购买方式")
private String fdBuyStyle;
@Schema(description = "平台名称")
private String fdPingTaiName;
@Schema(description = "平台产品名称")
private String fdPingTaiChanPin;
@Schema(description = "数量")
private String fdNum;
@Schema(description = "单价")
private String fdMoney;
@Schema(description = "总计金额")
private String fdMoneySum;
@Schema(description = "使用项目名称")
private String fdDeptName;
@Schema(description = "使用岗位名称")
private String fdPostName;
@Schema(description = "成本归属")
private String fdCostName;
// 招聘运营部填写
@Schema(description = "购买/调配方式是否合理")
private String fdTwoIsHeLi;
@Schema(description = "平台名称")
private String fdTwoPingTaiName;
@Schema(description = "产品名称")
private String fdTwoPingTaiChanPin;
@Schema(description = "数量")
private String fdTwoNum;
@Schema(description = "金额")
private String fdTwoMoneySum;
@Schema(description = "被调配的业务单元名称")
private String fdTwoYeWu;
@Schema(description = "备注")
private String fdTwoRemark;
@Schema(description = "关联结算单号")
private String fdSettleFormNo;
}
\ No newline at end of file
package com.yifu.cloud.plus.v1.permission.controller;
import com.yifu.cloud.plus.v1.permission.service.QiWeiService;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
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.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.common.security.annotation.Inner;
import com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiChuchai;
import com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiZhaoPin;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
......@@ -85,4 +88,49 @@ public class QiWeiController {
return wxSalaryService.getQiWeiChuChaiAndSave(startTime, endTime, 2);
}
/**
* @Description: 每日获取当日企业微信审批里的【招聘平台采购/调配】
* @Author: hgw
* @Date: 2024-8-22 11:16:58
* @return: com.yifu.cloud.v1.common.core.util.R<java.util.List < com.yifu.cloud.v1.hrms.api.entity.TEventFeeDetail>>
**/
@PostMapping("/inner/everyDaySaveQiWeiZhaoPin")
@Inner
public R<List<EkpQiwiZhaoPin>> everyDaySaveQiWeiZhaoPin() {
String startDay = DateUtil.addDay(-29);
String endDay = DateUtil.addDay(0);
return wxSalaryService.getQiWeiZhaoPinAndSave(startDay, endDay);
}
/**
* @Description: 手动同步企微信息--EKP调用接口
* @Author: hgw
* @Date: 2024-8-28 11:23:18
**/
@Operation(summary = "手动同步企微信息--EKP调用接口", description = "手动同步企微信息--EKP调用接口")
@SysLog("手动同步企微信息--EKP调用接口")
@GetMapping("/getQiWeiZhaoPinInfo")
public R<String> getQiWeiZhaoPinInfo() {
String startDay = DateUtil.addDay(-29);
String endDay = DateUtil.addDay(0);
R<List<EkpQiwiZhaoPin>> returnR = wxSalaryService.getQiWeiZhaoPinAndSave(startDay, endDay);
if (returnR != null && returnR.getCode() == CommonConstants.SUCCESS) {
return R.ok();
}
return R.failed();
}
/**
* @param startTime
* @param endTime
* @Description: 获取企业微信审批里的【招聘平台采购/调配】
* @Author: hgw
* @Date: 2024-8-22 11:16:58
**/
@Operation(description = "获取企业微信审批里的招聘平台采购数据:startTime格式:2024-04-10")
@PostMapping("/getQiWeiZhaoPinInfoAndSave")
public R<List<EkpQiwiZhaoPin>> getQiWeiZhaoPinInfoAndSave(@RequestParam String startTime, @RequestParam String endTime) {
return wxSalaryService.getQiWeiZhaoPinAndSave(startTime, endTime);
}
}
/*
* 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.permission.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiZhaoPin;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 企微招聘
*
* @author hgw
* @date 2024-08-26 17:44:50
*/
@Mapper
public interface EkpQiweiZhaopinMapper extends BaseMapper<EkpQiwiZhaoPin> {
/**
* @param status 状态
* @Description: 获取全部的列表,用来: 拉取企业微信时,不覆盖数据
* @Author: hgw
* @Date: 2024-8-26 17:52:26
* @return: java.util.List<com.yifu.cloud.v1.hrms.api.entity.salary.TStatisticsProjectReimburse>
**/
List<EkpQiwiZhaoPin> getZhaoPinAllInfo(@Param("status") String status);
}
/*
* 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.permission.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiZhaoPin;
import java.util.Map;
/**
* 企微招聘
*
* @author hgw
* @date 2024-08-26 17:44:50
*/
public interface EkpQiweiZhaopinService extends IService<EkpQiwiZhaoPin> {
/**
* @Description: 获取全部的列表,用来: 拉取企业微信时,不覆盖数据
* @Author: hgw
* @Date: 2024/8/26 17:56
* @return: java.util.Map<java.lang.String, java.lang.String>
**/
Map<String, String> getZhaoPinAllMap();
}
......@@ -3,6 +3,7 @@ package com.yifu.cloud.plus.v1.permission.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiChuchai;
import com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiZhaoPin;
import java.util.List;
......@@ -25,4 +26,13 @@ public interface QiWeiService extends IService<EkpQiwiChuchai> {
**/
R<List<EkpQiwiChuchai>> getQiWeiChuChaiAndSave(String startTime, String endTime, int type);
/**
* @Description: 获取企业微信审批里的【招聘平台采购/调配】
* @Author: hgw
* @Date: 2024/8/22 11:18
* @return: com.yifu.cloud.plus.v1.yifu.common.core.util.R<java.util.List < com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiChuchai>>
**/
R<List<EkpQiwiZhaoPin>> getQiWeiZhaoPinAndSave(String startTime, String endTime);
}
/*
* 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.permission.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.permission.mapper.EkpQiweiZhaopinMapper;
import com.yifu.cloud.plus.v1.permission.service.EkpQiweiZhaopinService;
import com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiZhaoPin;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 企微招聘
*
* @author hgw
* @date 2024-08-26 17:44:50
*/
@Log4j2
@Service
public class EkpQiweiZhaopinServiceImpl extends ServiceImpl<EkpQiweiZhaopinMapper, EkpQiwiZhaoPin> implements EkpQiweiZhaopinService {
/**
* @Description: 获取全部的列表,用来: 拉取企业微信时,不覆盖数据
* @Author: hgw
* @Date: 2024-8-26 17:54:23
* @return: java.util.Map<java.lang.String, java.lang.String>
**/
@Override
public Map<String, String> getZhaoPinAllMap() {
List<EkpQiwiZhaoPin> cpHistoryList = baseMapper.getZhaoPinAllInfo(null);
Map<String, String> cpMap = new HashMap<>();
for (EkpQiwiZhaoPin cpHis : cpHistoryList) {
cpMap.put(cpHis.getFdSpNo(), "0");
}
return cpMap;
}
}
<?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.permission.mapper.EkpQiweiZhaopinMapper">
<resultMap id="ekpQiweiZhaopinMap" type="com.yifu.cloud.plus.v1.yifu.permission.entity.EkpQiwiZhaoPin">
<id property="fdId" column="FD_ID"/>
<result property="fdSpNo" column="FD_SP_NO"/>
<result property="fdApplyUserName" column="FD_APPLY_USER_NAME"/>
<result property="fdApplyUserDept" column="FD_APPLY_USER_DEPT"/>
<result property="fdApplyDate" column="FD_APPLY_DATE"/>
<result property="fdNewBegin" column="FD_NEW_BEGIN"/>
<result property="fdNewEnd" column="FD_NEW_END"/>
<result property="fdStatus" column="FD_STATUS"/>
<result property="fdSettleFormNo" column="FD_SETTLE_FORM_NO"/>
<result property="createTime" column="create_time"/>
<result property="fdDataSource" column="FD_DATA_SOURCE"/>
<result property="fdUserDeptName" column="FD_USER_DEPT_NAME"/>
<result property="fdBuyStyle" column="FD_BUY_STYLE"/>
<result property="fdPingTaiName" column="FD_PING_TAI_NAME"/>
<result property="fdPingTaiChanPin" column="FD_PING_TAI_CHAN_PIN"/>
<result property="fdNum" column="FD_NUM"/>
<result property="fdMoney" column="FD_MONEY"/>
<result property="fdMoneySum" column="FD_MONEY_SUM"/>
<result property="fdDeptName" column="FD_DEPT_NAME"/>
<result property="fdPostName" column="FD_POST_NAME"/>
<result property="fdCostName" column="FD_COST_NAME"/>
<result property="fdTwoIsHeLi" column="FD_TWO_IS_HE_LI"/>
<result property="fdTwoPingTaiName" column="FD_TWO_PING_TAI_NAME"/>
<result property="fdTwoPingTaiChanPin" column="FD_TWO_PING_TAI_CHAN_PIN"/>
<result property="fdTwoNum" column="FD_TWO_NUM"/>
<result property="fdTwoMoneySum" column="FD_TWO_MONEY_SUM"/>
<result property="fdTwoYeWu" column="FD_TWO_YE_WU"/>
<result property="fdTwoRemark" column="FD_TWO_REMARK"/>
<result property="createDataTime" column="CREATE_DATA_TIME"/>
</resultMap>
<sql id="Base_Column_List">
a.FD_ID,
a.FD_SP_NO,
a.FD_APPLY_USER_NAME,
a.FD_APPLY_USER_DEPT,
a.FD_APPLY_DATE,
a.FD_NEW_BEGIN,
a.FD_NEW_END,
a.FD_STATUS,
a.FD_SETTLE_FORM_NO,
a.create_time,
a.FD_DATA_SOURCE,
a.FD_USER_DEPT_NAME,
a.FD_BUY_STYLE,
a.FD_PING_TAI_NAME,
a.FD_PING_TAI_CHAN_PIN,
a.FD_NUM,
a.FD_MONEY,
a.FD_MONEY_SUM,
a.FD_DEPT_NAME,
a.FD_POST_NAME,
a.FD_COST_NAME,
a.FD_TWO_IS_HE_LI,
a.FD_TWO_PING_TAI_NAME,
a.FD_TWO_PING_TAI_CHAN_PIN,
a.FD_TWO_NUM,
a.FD_TWO_MONEY_SUM,
a.FD_TWO_YE_WU,
a.FD_TWO_REMARK,
a.CREATE_DATA_TIME
</sql>
<!--获取全部的,用来: 拉取企业微信时,不覆盖数据 -->
<select id="getZhaoPinAllInfo" resultMap="ekpQiweiZhaopinMap">
SELECT
<include refid="Base_Column_List"/>
FROM ekp_qiwei_zhaopin a
<where>
1=1
<if test="status != null and status.trim() != ''">
AND a.FD_STATUS = #{status}
</if>
</where>
</select>
</mapper>
......@@ -145,22 +145,33 @@ public class TSalaryEmpModLogServiceImpl extends ServiceImpl<TSalaryEmpModLogMap
str.append(" ");
}
//开户行
if (Common.isNotNull(newEntity.getBankName())
&& !oldEntity.getBankName().equals(newEntity.getBankName())){
str.append("开户行:");
str.append(oldEntity.getBankName());
str.append("->");
str.append(newEntity.getBankName());
str.append(" ");
if (Common.isNotNull(newEntity.getBankName())){
if (Common.isEmpty(oldEntity.getBankName())) {
str.append("开户行: 空 ->");
str.append(newEntity.getBankName());
str.append(" ");
} else if (!oldEntity.getBankName().equals(newEntity.getBankName())){
str.append("开户行:");
str.append(oldEntity.getBankName());
str.append("->");
str.append(newEntity.getBankName());
str.append(" ");
}
}
//银行卡号
if (Common.isNotNull(newEntity.getBankNo())
&& !oldEntity.getBankNo().equals(newEntity.getBankNo())){
str.append("银行卡号:");
str.append(oldEntity.getBankNo());
str.append("->");
str.append(newEntity.getBankNo());
str.append(" ");
if (Common.isNotNull(newEntity.getBankNo())) {
if (Common.isEmpty(oldEntity.getBankNo())) {
str.append("银行卡号: 空 ->");
str.append(newEntity.getBankNo());
str.append(" ");
} else if (!oldEntity.getBankNo().equals(newEntity.getBankNo())){
str.append("银行卡号:");
str.append(oldEntity.getBankNo());
str.append("->");
str.append(newEntity.getBankNo());
str.append(" ");
}
}
//开户行支行
if ((Common.isEmpty(oldEntity.getBankSubName())
......@@ -175,7 +186,7 @@ public class TSalaryEmpModLogServiceImpl extends ServiceImpl<TSalaryEmpModLogMap
}
//在职状态
if (Common.isNotNull(newEntity.getFileStatus())
&& !oldEntity.getFileStatus().equals(newEntity.getFileStatus())){
&& (Common.isEmpty(oldEntity.getFileStatus()) || !oldEntity.getFileStatus().equals(newEntity.getFileStatus()))){
str.append("在职状态:");
str.append(CommonConstants.ZERO_STRING.equals(oldEntity.getFileStatus())?"在职":"离职");
str.append("->");
......@@ -183,13 +194,18 @@ public class TSalaryEmpModLogServiceImpl extends ServiceImpl<TSalaryEmpModLogMap
str.append(" ");
}
//手机号码
if (Common.isNotNull(newEntity.getEmpPhone())
&& !oldEntity.getEmpPhone().equals(newEntity.getEmpPhone())){
str.append("手机号码:");
str.append(oldEntity.getEmpPhone());
str.append("->");
str.append(newEntity.getEmpPhone());
str.append(" ");
if (Common.isNotNull(newEntity.getEmpPhone())) {
if (Common.isEmpty(oldEntity.getEmpPhone())) {
str.append("手机号码: 空 ->");
str.append(newEntity.getEmpPhone());
str.append(" ");
} else if (!oldEntity.getEmpPhone().equals(newEntity.getEmpPhone())){
str.append("手机号码:");
str.append(oldEntity.getEmpPhone());
str.append("->");
str.append(newEntity.getEmpPhone());
str.append(" ");
}
}
}
......
......@@ -83,5 +83,27 @@ public class FailReasonConfig extends BaseEntity {
@Schema(description = "更新人")
private String updateName;
/**
* 是否截取:0否;1是
*/
@ExcelAttribute(name = "是否截取")
@ExcelProperty("是否截取")
@Schema(description = "是否截取")
private String isReplace;
/**
* 截取标识左
*/
@ExcelAttribute(name = "截取标识左")
@ExcelProperty("截取标识左")
@Schema(description = "截取标识左")
private String replaceLeft;
/**
* 截取标识右
*/
@ExcelAttribute(name = "截取标识右")
@ExcelProperty("截取标识右")
@Schema(description = "截取标识右")
private String replaceRight;
}
\ No newline at end of file
......@@ -60,7 +60,7 @@ public class TSocialDeadlineInfo extends BaseEntity {
/**
* 省
*/
@ExcelAttribute(name = "省", isNotEmpty = true, errorInfo = "省不能为空", maxLength = 10)
@ExcelAttribute(name = "省", isNotEmpty = true, errorInfo = "省不能为空", maxLength = 10,isArea = true)
@NotBlank(message = "省不能为空")
@Length(max = 10, message = "省不能超过10个字符")
@ExcelProperty("省")
......@@ -69,7 +69,7 @@ public class TSocialDeadlineInfo extends BaseEntity {
/**
* 市
*/
@ExcelAttribute(name = "市", maxLength = 10)
@ExcelAttribute(name = "市", maxLength = 10,isArea = true, parentField = "province")
@Length(max = 10, message = "市不能超过10个字符")
@ExcelProperty("市")
@Schema(description = "市")
......@@ -78,12 +78,20 @@ public class TSocialDeadlineInfo extends BaseEntity {
/**
* 县
*/
@ExcelAttribute(name = "县", maxLength = 10)
@ExcelAttribute(name = "县", maxLength = 10,isArea = true, parentField = "city")
@Length(max = 10, message = "县不能超过10个字符")
@ExcelProperty("县")
@Schema(description = "县")
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String town;
/**
* 社保起始日
*/
@ExcelAttribute(name = "社保起始日", isNotEmpty = true, errorInfo = "社保起始日不能为空", isDate = true)
@NotBlank(message = "社保起始日不能为空")
@ExcelProperty("社保起始日")
@Schema(description = "社保起始日")
private Date socialStartDate;
/**
* 社保截止日
*/
......@@ -92,6 +100,14 @@ public class TSocialDeadlineInfo extends BaseEntity {
@ExcelProperty("社保截止日")
@Schema(description = "社保截止日")
private Date socialEndDate;
/**
* 医疗起始日
*/
@ExcelAttribute(name = "医疗起始日", isNotEmpty = true, errorInfo = "医疗起始日不能为空", isDate = true)
@NotBlank(message = "医疗起始日不能为空")
@ExcelProperty("医疗起始日")
@Schema(description = "医疗起始日")
private Date medicalStartDate;
/**
* 医疗截止日
*/
......
/*
* 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.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 com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
/**
* 自动化日志
*
* @author hgw
* @date 2024-08-30 10:27:16
*/
@Data
@TableName("t_social_soldier_log")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "自动化日志")
public class TSocialSoldierLog extends BaseEntity {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
@Schema(description = "主键")
private String id;
/**
* 社保ID
*/
@ExcelAttribute(name = "社保ID", maxLength = 32)
@Length(max = 32, message = "社保ID不能超过32个字符")
@ExcelProperty("社保ID")
@Schema(description = "社保ID")
private String socialId;
/**
* 推送的任务ID
*/
@ExcelAttribute(name = "推送的任务ID", maxLength = 32)
@Length(max = 32, message = "推送的任务ID不能超过32个字符")
@ExcelProperty("推送的任务ID")
@Schema(description = "推送的任务ID")
private String addId;
/**
* 身份证号
*/
@ExcelAttribute(name = "身份证号", isNotEmpty = true, errorInfo = "身份证号不能为空", maxLength = 20)
@NotBlank(message = "身份证号不能为空")
@Length(max = 20, message = "身份证号不能超过20个字符")
@ExcelProperty("身份证号")
@Schema(description = "身份证号")
private String empIdcard;
/**
* 员工姓名
*/
@ExcelAttribute(name = "员工姓名", maxLength = 20)
@Length(max = 20, message = "员工姓名不能超过20个字符")
@ExcelProperty("员工姓名")
@Schema(description = "员工姓名")
private String empName;
/**
* 派单项:社保;医保
*/
@ExcelAttribute(name = "派单项:社保;医保", maxLength = 2)
@Length(max = 2, message = "派单项:社保;医保不能超过2个字符")
@ExcelProperty("派单项:社保;医保")
@Schema(description = "派单项:社保;医保")
private String dispatchItem;
@ExcelAttribute(name = "社保户", maxLength = 50)
@Length(max = 2, message = "社保户不能超过50个字符")
@ExcelProperty("社保户")
@Schema(description = "社保户")
private String socialHuName;
/**
* 类型:提交;审核
*/
@ExcelAttribute(name = "类型:提交;审核", maxLength = 2)
@Length(max = 2, message = "类型:提交;审核不能超过2个字符")
@ExcelProperty("类型:提交;审核")
@Schema(description = "类型:提交;审核")
private String type;
/**
* 结果
*/
@ExcelAttribute(name = "结果", maxLength = 50)
@Length(max = 50, message = "结果不能超过50个字符")
@ExcelProperty("结果")
@Schema(description = "结果")
private String remark;
}
......@@ -84,7 +84,7 @@ public class SocialSoldierYgsAddVo implements Serializable {
private String socialTown;
@ExcelProperty("养老起缴日期")
private String pensionStart;
;
@ExcelProperty("养老基数")
private BigDecimal unitPensionCardinal;
@ExcelProperty("医疗起缴日期")
......
......@@ -16,7 +16,11 @@ public class SocialSoldierYgsAuditVo implements Serializable {
// 社保id,用于回写
@ExcelIgnore
private String socialId;
private String socialId;// 社保id,用于回写
@ExcelIgnore
private String empName;
@ExcelIgnore
private String empIdcard;
// #企业名称 业务类型 开始日期 结束日期 回传信息 回传信息1 回传信息2
@ExcelProperty("企业名称")
private String socialHouseholdName;
......
......@@ -17,6 +17,10 @@ public class SocialSoldierYsdAuditVo implements Serializable {
// 社保id,用于回写
@ExcelIgnore
private String socialId;
@ExcelIgnore
private String empName;
@ExcelIgnore
private String empIdcard;
// #企业名称 业务类型 申办日期起 申办日期止 回传信息 回传信息1 回传信息2
@ExcelProperty("企业名称")
private String socialHouseholdName;
......
......@@ -273,8 +273,7 @@ public class TDispatchImportVo extends RowIndex implements Serializable {
/**
* 学历名称
*/
@ExcelAttribute(name = "学历",isNotEmpty = true)
@NotNull(message = "学历不可为空")
@ExcelAttribute(name = "学历",isNotEmpty = false)
@Schema(description = "学历:派增只做记录" )
@HeadFontStyle(fontHeightInPoints = 11)
@ExcelProperty(value ="学历")
......
/*
* 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;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 自动化日志
*
* @author hgw
* @date 2024-08-30 10:27:16
*/
@Data
// 设置所有列宽 hgw 2024-9-3 14:14:49
@ColumnWidth(20)
public class TSocialSoldierLogExportVo implements Serializable {
@ExcelProperty("员工姓名")
private String empName;
@ExcelProperty("身份证号")
private String empIdcard;
@ExcelProperty("日期")
private LocalDateTime createTime;
@ExcelProperty("派单项")
private String dispatchItem;
@ExcelProperty("社保户")
private String socialHuName;
@ExcelProperty("类型")
private String type;
@ExcelProperty("结果")
private String remark;
}
/*
* 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.TSocialSoldierLog;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 自动化日志
*
* @author hgw
* @date 2024-08-30 10:27:16
*/
@Data
public class TSocialSoldierLogSearchVo extends TSocialSoldierLog {
/**
* 多选导出或删除等操作
*/
@Schema(description = "选中ID,多个逗号分割")
private String ids;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema(description = "创建时间起")
private LocalDateTime createTimeStart;
/**
* 创建时间区间 [开始时间,结束时间]
*/
@Schema(description = "创建时间止")
private LocalDateTime createTimeEnd;
/**
* @Author fxj
* 查询数据起
**/
@Schema(description = "查询limit 开始")
private int limitStart;
/**
* @Author fxj
* 查询数据止
**/
@Schema(description = "查询limit 数据条数")
private int limitEnd;
}
/*
* 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.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.social.entity.TSocialSoldierLog;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialSoldierLogService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialSoldierLogSearchVo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 自动化日志
*
* @author hgw
* @date 2024-08-30 10:27:16
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tsocialsoldierlog")
@Tag(name = "自动化日志管理")
public class TSocialSoldierLogController {
private final TSocialSoldierLogService tSocialSoldierLogService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tSocialSoldierLog 自动化日志
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TSocialSoldierLog>> getTSocialSoldierLogPage(Page<TSocialSoldierLog> page, TSocialSoldierLogSearchVo tSocialSoldierLog) {
return new R<>(tSocialSoldierLogService.getTSocialSoldierLogPage(page, tSocialSoldierLog));
}
/**
* 不分页查询
*
* @param tSocialSoldierLog 自动化日志
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
public R<List<TSocialSoldierLog>> getTSocialSoldierLogNoPage(@RequestBody TSocialSoldierLogSearchVo tSocialSoldierLog) {
return R.ok(tSocialSoldierLogService.noPageDiy(tSocialSoldierLog));
}
/**
* 通过id查询自动化日志
*
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('social_tsocialsoldierlog_get')")
@GetMapping("/{id}")
@PreAuthorize("@pms.hasPermission('social_tsocialsoldierlog_get')")
public R<TSocialSoldierLog> getById(@PathVariable("id") String id) {
return R.ok(tSocialSoldierLogService.getById(id));
}
/**
* 新增自动化日志
*
* @param tSocialSoldierLog 自动化日志
* @return R
*/
@Operation(summary = "新增自动化日志", description = "新增自动化日志:hasPermission('social_tsocialsoldierlog_add')")
@SysLog("新增自动化日志")
@PostMapping
@PreAuthorize("@pms.hasPermission('social_tsocialsoldierlog_add')")
public R<Boolean> save(@RequestBody TSocialSoldierLog tSocialSoldierLog) {
return R.ok(tSocialSoldierLogService.save(tSocialSoldierLog));
}
/**
* 修改自动化日志
*
* @param tSocialSoldierLog 自动化日志
* @return R
*/
@Operation(summary = "修改自动化日志", description = "修改自动化日志:hasPermission('social_tsocialsoldierlog_edit')")
@SysLog("修改自动化日志")
@PutMapping
@PreAuthorize("@pms.hasPermission('social_tsocialsoldierlog_edit')")
public R<Boolean> updateById(@RequestBody TSocialSoldierLog tSocialSoldierLog) {
return R.ok(tSocialSoldierLogService.updateById(tSocialSoldierLog));
}
/**
* 通过id删除自动化日志
*
* @param id id
* @return R
*/
@Operation(summary = "通过id删除自动化日志", description = "通过id删除自动化日志:hasPermission('social_tsocialsoldierlog_del')")
@SysLog("通过id删除自动化日志")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('social_tsocialsoldierlog_del')")
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tSocialSoldierLogService.removeById(id));
}
/**
* 自动化日志 批量导出
*
* @author hgw
* @date 2024-08-30 10:27:16
**/
@Operation(description = "导出自动化日志 hasPermission('social_tsocialsoldierlog_export')")
@PostMapping("/export")
@PreAuthorize("@pms.hasPermission('social_tsocialsoldierlog_export')")
public void export(HttpServletResponse response, @RequestBody TSocialSoldierLogSearchVo searchVo) {
tSocialSoldierLogService.listExport(response, searchVo);
}
}
/*
* 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.mapper;
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.TSocialSoldierLog;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialSoldierLogExportVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialSoldierLogSearchVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 自动化日志
*
* @author hgw
* @date 2024-08-30 10:27:16
*/
@Mapper
public interface TSocialSoldierLogMapper extends BaseMapper<TSocialSoldierLog> {
/**
* 自动化日志简单分页查询
*
* @param tSocialSoldierLog 自动化日志
* @return
*/
IPage<TSocialSoldierLog> getTSocialSoldierLogPage(Page<TSocialSoldierLog> page, @Param("tSocialSoldierLog") TSocialSoldierLogSearchVo tSocialSoldierLog);
List<TSocialSoldierLogExportVo> getTSocialSoldierLogList(@Param("tSocialSoldierLog") TSocialSoldierLogSearchVo tSocialSoldierLog);
}
......@@ -72,6 +72,18 @@ public interface TSocialSoldierMapper extends BaseMapper<TSocialInfo> {
* @Date 2024-5-24 16:39:43
**/
List<SocialSoldierYsdAuditVo> getSocialSoldierYsdAuditVoList();
/**
* 社保士兵养工失审核模板——推送给社保士兵的归总模板
* @Author hgw
* @Date 2024-9-2 18:03:04
**/
List<SocialSoldierYgsAuditVo> getSocialSoldierYgsAuditVoListByGroupBy();
/**
* 社保士兵医生大审核续保模板——推送给社保士兵的归总模板
* @Author hgw
* @Date 2024-9-2 18:03:07
**/
List<SocialSoldierYsdAuditVo> getSocialSoldierYsdAuditVoListByGroupBy();
/**
* 社保士兵医生大审核新增模板
* @Author hgw
......@@ -86,6 +98,13 @@ public interface TSocialSoldierMapper extends BaseMapper<TSocialInfo> {
* @return: java.util.List<com.yifu.cloud.plus.v1.yifu.social.vo.SocialSoldierSalaryShenBaoVo>
**/
List<SocialSoldierSalaryShenBaoVo> getSoldierSalaryByShenBaoList();
/**
* 社保士兵医生大审核新增模板
* @Author hgw
* @Date 2024-5-24 16:39:43
**/
List<SocialSoldierYsdAuditVo> getSocialSoldierYsdAddAuditVoListByGroupBy();
/**
* @Description: 工资调整
* @Author: hgw
......
......@@ -28,6 +28,7 @@ import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoSearchVo;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
/**
* 社保医疗截止日配置
......@@ -55,4 +56,13 @@ public interface TSocialDeadlineInfoService extends IService<TSocialDeadlineInfo
R<Boolean> updateByIdAsso(TSocialDeadlineInfo tSocialDeadlineInfo);
R<Boolean> saveAsso(TSocialDeadlineInfo tSocialDeadlineInfo);
/**
* @Description: 获取 当月启用 的配置
* @Author: hgw
* @Date: 2024/9/2 15:26
* @return: java.util.Map<java.lang.String, com.yifu.cloud.plus.v1.yifu.social.entity.TSocialDeadlineInfo>
**/
Map<String, TSocialDeadlineInfo> getSocialSet();
}
/*
* 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.service;
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.TSocialInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialSoldierLog;
import com.yifu.cloud.plus.v1.yifu.social.vo.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 自动化日志
*
* @author hgw
* @date 2024-08-30 10:27:16
*/
public interface TSocialSoldierLogService extends IService<TSocialSoldierLog> {
/**
* 自动化日志简单分页查询
*
* @param tSocialSoldierLog 自动化日志
* @return
*/
IPage<TSocialSoldierLog> getTSocialSoldierLogPage(Page<TSocialSoldierLog> page, TSocialSoldierLogSearchVo tSocialSoldierLog);
void listExport(HttpServletResponse response, TSocialSoldierLogSearchVo searchVo);
List<TSocialSoldierLog> noPageDiy(TSocialSoldierLogSearchVo searchVo);
/**
* @param vo 社保模板
* @param type 类型
* @param remark 备注结果
* @Description: 社保提交日志
* @Author: hgw
* @Date: 2024/9/2 16:33
* @return: void
**/
TSocialSoldierLog getYgsSoldierLog(SocialSoldierYgsAddVo vo, String type, String remark);
// 医保提交日志
TSocialSoldierLog getYsdSoldierLog(SocialSoldierYsdAddVo vo, String type, String remark);
// 审核社保提交日志
TSocialSoldierLog getYgsSoldierAuditLog(SocialSoldierYgsAuditVo vo, String type, String remark);
// 审核医保提交日志
TSocialSoldierLog getYsdSoldierAuditLog(SocialSoldierYsdAuditVo vo, String type, String remark);
// 拉取提交结果日志 dispatchItem 社保、医保
TSocialSoldierLog getSocialSoldierLog(TSocialInfo social, String type, String dispatchItem, String remark);
}
......@@ -813,11 +813,14 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
vo.setFileTown(excel.getFileTown());
vo.setMobile(excel.getEmpMobile());
vo.setEmpIdCard(socialFund.getEmpIdcard());
DispatchEmpVo emp = null;
if (Common.isNotNull(empVoMap)) {
emp = empVoMap.get(excel.getEmpIdcard());
}
if (Common.isNotNull(emp) && Common.isEmpty(emp.getEmpRegisType()) && Common.isNotNull(excel.getEmpRegisType())){
vo.setEmpRegisType(excel.getEmpRegisType());
}
if (Common.isNotNull(excel.getEducationName())) {
DispatchEmpVo emp = null;
if (Common.isNotNull(empVoMap)) {
emp = empVoMap.get(excel.getEmpIdcard());
}
if(Common.isNotNull(emp)) {
if (Common.isEmpty(emp.getHignEducation())) {
vo.setHighEducation("");
......@@ -2315,11 +2318,19 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
|| Common.isEmpty(excel.getEmpMobile())
|| Common.isEmpty(excel.getEmpType())
|| Common.isEmpty(excel.getPost())
//|| Common.isEmpty(excel.getEducationName())
|| Common.isEmpty(excel.getContractName())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_EMP_NOT_EMPTY)));
return true;
}
//无档案必填2024-08-21 fxj
if (Common.isEmpty(excel.getEmpRegisType()) ){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_EMP_REGISTYPE_NOT_EMPTY)));
return true;
}
if (Common.isEmpty(excel.getEducationName()) ){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_EMP_EDUCATION_NOT_EMPTY)));
return true;
}
if (Common.isNotNull(excel.getContractName()) && validContractInfo(errorMessageList,excel)){
return true;
}
......@@ -2348,6 +2359,15 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
签订期限:无固定期限 合同到期时间、合同期限非必填,合同开始时间必填;
签订期限:固定期限、已完成一定工作任务为期限 合同期限非必填,合同开始时间、合同到期时间都必填*/
if (Common.isNotNull(empVo)){
// fxj 2024-08-30 有档案 学历或户口性质为空 派单必填 学历或客户性质
if (Common.isEmpty(empVo.getHignEducation()) && Common.isEmpty(excel.getEducationName())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_EMP_EDUCATION_NOT_EMPTY)));
return true;
}
if (Common.isEmpty(empVo.getEmpRegisType()) && Common.isEmpty(excel.getEmpRegisType())){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_EMP_REGISTYPE_NOT_EMPTY)));
return true;
}
if (Common.isNotNull(empVo.getProjectStatus()) && empVo.getProjectStatus().intValue() == CommonConstants.ONE_INT){
errorMessageList.add(new ErrorMessage(excel.getRowIndex(), MsgUtils.getMessage(ErrorCodes.EMP_DISPATCH_EMP_PROJECT_NOT_USED)));
return true;
......@@ -2403,7 +2423,12 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
excel.setIdCardCity(Common.isNotNullToStr(empVo.getIdCity()));
excel.setIdCardTown(Common.isNotNullToStr(empVo.getIdCity()));
excel.setEmpNational(empVo.getEmpNational());
excel.setEmpRegisType(empVo.getEmpRegisType());
if (Common.isNotNull(empVo.getEmpRegisType())){
//如果档案有值直接取值档案 2024-08-21 fxj
excel.setEmpRegisType(empVo.getEmpRegisType());
}
//派单学历无值时,如果档案有值直接取值档案 2024-08-21 fxj
initEducation(excel, empVo);
if (Common.isEmpty(excel.getPost())){
excel.setPost(empVo.getPost());
}
......@@ -2553,6 +2578,44 @@ public class TDispatchInfoServiceImpl extends ServiceImpl<TDispatchInfoMapper, T
return false;
}
private void initEducation(TDispatchImportVo excel, DispatchEmpVo empVo) {
if (Common.isNotNull(empVo.getHignEducation())){
if (empVo.getHignEducation().equals("1")) {
excel.setEducationName("文盲");
}
if (empVo.getHignEducation().equals("2")) {
excel.setEducationName("小学");
}
if (empVo.getHignEducation().equals("3")) {
excel.setEducationName("初中");
}
if (empVo.getHignEducation().equals("4")) {
excel.setEducationName("高中");
}
if (empVo.getHignEducation().equals("5")) {
excel.setEducationName("大专");
}
if (empVo.getHignEducation().equals("6")) {
excel.setEducationName("本科");
}
if (empVo.getHignEducation().equals("7")) {
excel.setEducationName("硕士");
}
if (empVo.getHignEducation().equals("8")) {
excel.setEducationName("博士");
}
if (empVo.getHignEducation().equals("9")) {
excel.setEducationName("技工");
}
if (empVo.getHignEducation().equals("10")) {
excel.setEducationName("职高");
}
if (empVo.getHignEducation().equals("11")) {
excel.setEducationName("中专");
}
}
}
/**
* @param errorMessageList
* @param excel
......
......@@ -27,7 +27,6 @@ import com.alibaba.excel.util.ListUtils;
import com.alibaba.excel.write.metadata.WriteSheet;
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.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -35,7 +34,6 @@ 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.entity.TInsuranceTypeRate;
import com.yifu.cloud.plus.v1.yifu.social.entity.THolidayInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialDeadlineInfo;
import com.yifu.cloud.plus.v1.yifu.social.mapper.THolidayInfoMapper;
......@@ -44,9 +42,7 @@ import com.yifu.cloud.plus.v1.yifu.social.service.TSocialDeadlineInfoService;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoSearchVo;
import com.yifu.cloud.plus.v1.yifu.social.vo.TSocialDeadlineInfoVo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.log4j.Log4j2;
import org.aspectj.weaver.patterns.ConcreteCflowPointcut;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -275,7 +271,7 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI
.eq(TSocialDeadlineInfo::getStatus,CommonConstants.ZERO_STRING)
.eq(TSocialDeadlineInfo::getType,CommonConstants.ONE_STRING));
if (Common.isNotNull(baseLists)){
List<TSocialDeadlineInfo> saveList = new ArrayList<>();;
List<TSocialDeadlineInfo> saveList = new ArrayList<>();
//获取当前月份所有假期配置表
Date date = new Date();
List<THolidayInfo> holidayInfos = holidayInfoMapper.selectList(Wrappers.<THolidayInfo>query().lambda()
......@@ -289,10 +285,6 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI
}
TSocialDeadlineInfo save;
LambdaQueryWrapper<TSocialDeadlineInfo> queryWrapper;
int medicalDay;
int socialDay;
int curlDay;
int setDay;
for (TSocialDeadlineInfo sd:baseLists){
queryWrapper= null;
save = new TSocialDeadlineInfo();
......@@ -300,22 +292,22 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI
save.setId(null);
save.setMonth(Integer.parseInt(DateUtil.getThisMonth()));
save.setType(CommonConstants.ZERO_STRING);
//如果月份超出当前月 大概率是 日设置有问题这里做个优化
setDay = DateUtil.getDays(save.getMedicalEndDate());
curlDay = DateUtil.getLastDayOfDate(new Date());
if (setDay > curlDay){
medicalDay = curlDay;
}else {
medicalDay=setDay;
// 初始化 月日时分
if (Common.isNotNull(save.getMedicalStartDate())) {
save.setMedicalStartDate(this.getNewDateByOldDate(save.getMedicalStartDate()));
}
save.setMedicalEndDate(DateUtil.getDayOfThisMonth(medicalDay));
setDay = DateUtil.getDays(save.getSocialEndDate());
if (setDay > curlDay){
socialDay = curlDay;
}else {
socialDay=setDay;
if (Common.isNotNull(save.getMedicalEndDate())) {
save.setMedicalEndDate(this.getNewDateByOldDate(save.getMedicalEndDate()));
}
save.setSocialEndDate(DateUtil.getDayOfThisMonth(socialDay));
if (Common.isNotNull(save.getSocialStartDate())) {
save.setSocialStartDate(this.getNewDateByOldDate(save.getSocialStartDate()));
}
if (Common.isNotNull(save.getSocialEndDate())) {
save.setSocialEndDate(this.getNewDateByOldDate(save.getSocialEndDate()));
}
initSocialEndDate(holidayMap, save);
initMedicalEndDate(holidayMap, save);
save.setUpdateTime(null);
......@@ -333,6 +325,17 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI
}
}
/**
* @param oldDate 原先的时间
* @Description: 传入老时间,返回新时间,将 月日时分 替换为新的,超过下个月的,返回当前时间
* @Author: hgw
* @Date: 2024/9/2 11:15
* @return: java.util.Date
**/
private Date getNewDateByOldDate(Date oldDate) {
return DateUtil.getDayOfThisMonthByHourAndMin(Math.min(DateUtil.getDays(oldDate), DateUtil.getLastDayOfDate(new Date())), oldDate);
}
private LambdaQueryWrapper<TSocialDeadlineInfo> initCountQuery(TSocialDeadlineInfo save,LambdaQueryWrapper<TSocialDeadlineInfo> queryWrapper) {
queryWrapper = Wrappers.lambdaQuery();
queryWrapper.eq(TSocialDeadlineInfo::getMonth, save.getMonth());
......@@ -454,4 +457,41 @@ public class TSocialDeadlineInfoServiceImpl extends ServiceImpl<TSocialDeadlineI
}
initSocialEndDate(holidayMap,save);
}
/**
* @Description: 获取 当月启用 的配置
* @Author: hgw
* @Date: 2024/9/2 15:25
* @return: java.util.Map<java.lang.String, com.yifu.cloud.plus.v1.yifu.social.entity.TSocialDeadlineInfo>
**/
@Override
public Map<String, TSocialDeadlineInfo> getSocialSet() {
Map<String, TSocialDeadlineInfo> setMap = new HashMap<>();
List<TSocialDeadlineInfo> setlist = baseMapper.selectList(Wrappers.<TSocialDeadlineInfo>query().lambda()
.eq(TSocialDeadlineInfo::getMonth, DateUtil.getThisMonth())
.eq(TSocialDeadlineInfo::getStatus, CommonConstants.ZERO_STRING));
if (setlist != null && !setlist.isEmpty()) {
StringBuilder addressKey;
ExcelUtil<TSocialDeadlineInfo> util = new ExcelUtil<>(TSocialDeadlineInfo.class);
for (TSocialDeadlineInfo socialSet : setlist) {
if (Common.isNotNull(socialSet.getProvince())) {
util.convertEntity(socialSet, null, null, null);
addressKey = new StringBuilder(socialSet.getProvince()).append(CommonConstants.DOWN_LINE_STRING);
if (Common.isEmpty(socialSet.getCity())) {
addressKey.append(CommonConstants.CENTER_SPLIT_LINE_STRING);
} else {
addressKey.append(socialSet.getCity());
}
addressKey.append(CommonConstants.DOWN_LINE_STRING);
if (Common.isEmpty(socialSet.getTown())) {
addressKey.append(CommonConstants.CENTER_SPLIT_LINE_STRING);
} else {
addressKey.append(socialSet.getTown());
}
setMap.put(addressKey.toString(), socialSet);
}
}
}
return setMap;
}
}
/*
* 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.service.impl;
import cn.hutool.core.util.ArrayUtil;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.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.common.mybatis.base.BaseEntity;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialInfo;
import com.yifu.cloud.plus.v1.yifu.social.entity.TSocialSoldierLog;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TSocialSoldierLogMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.TSocialSoldierLogService;
import com.yifu.cloud.plus.v1.yifu.social.vo.*;
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.List;
/**
* 自动化日志
*
* @author hgw
* @date 2024-08-30 10:27:16
*/
@Log4j2
@Service
public class TSocialSoldierLogServiceImpl extends ServiceImpl<TSocialSoldierLogMapper, TSocialSoldierLog> implements TSocialSoldierLogService {
/**
* 自动化日志简单分页查询
*
* @param tSocialSoldierLog 自动化日志
* @return
*/
@Override
public IPage<TSocialSoldierLog> getTSocialSoldierLogPage(Page<TSocialSoldierLog> page, TSocialSoldierLogSearchVo tSocialSoldierLog) {
return baseMapper.getTSocialSoldierLogPage(page, tSocialSoldierLog);
}
/**
* 自动化日志批量导出
*
* @return
*/
@Override
public void listExport(HttpServletResponse response, TSocialSoldierLogSearchVo searchVo) {
String fileName = "自动化日志批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<TSocialSoldierLogExportVo> list = new ArrayList<>();
long count = noPageCountDiy(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, TSocialSoldierLogExportVo.class).build();
int index = 0;
WriteSheet writeSheet;
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.getTSocialSoldierLogList(searchVo);
if (Common.isNotNull(list)) {
writeSheet = EasyExcelFactory.writerSheet("自动化日志" + index).build();
excelWriter.write(list, writeSheet);
index++;
}
if (Common.isNotNull(list)) {
list.clear();
}
}
} else {
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);
}
}
}
@Override
public List<TSocialSoldierLog> noPageDiy(TSocialSoldierLogSearchVo searchVo) {
LambdaQueryWrapper<TSocialSoldierLog> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)) {
wrapper.in(TSocialSoldierLog::getId, idList);
}
if (searchVo.getLimitStart() >= 0 && searchVo.getLimitEnd() > 0) {
wrapper.last(" limit " + searchVo.getLimitStart() + "," + searchVo.getLimitEnd());
}
wrapper.orderByDesc(BaseEntity::getCreateTime);
return baseMapper.selectList(wrapper);
}
@Override
public TSocialSoldierLog getYgsSoldierLog(SocialSoldierYgsAddVo vo, String type, String remark) {
TSocialSoldierLog log = new TSocialSoldierLog();
log.setSocialId(vo.getSocialId());
log.setEmpName(vo.getEmpName());
log.setEmpIdcard(vo.getEmpIdcard());
log.setDispatchItem("社保");
log.setSocialHuName(vo.getSocialHouseholdName());
// type 类型:提交;审核
log.setType(type);
log.setRemark(remark);
return log;
}
@Override
public TSocialSoldierLog getYsdSoldierLog(SocialSoldierYsdAddVo vo, String type, String remark) {
TSocialSoldierLog log = new TSocialSoldierLog();
log.setSocialId(vo.getSocialId());
log.setEmpName(vo.getEmpName());
log.setEmpIdcard(vo.getEmpIdcard());
log.setDispatchItem("医保");
log.setSocialHuName(vo.getSocialHouseholdName());
// type 类型:提交;审核
log.setType(type);
log.setRemark(remark);
return log;
}
@Override
public TSocialSoldierLog getYgsSoldierAuditLog(SocialSoldierYgsAuditVo vo, String type, String remark) {
TSocialSoldierLog log = new TSocialSoldierLog();
log.setSocialId(vo.getSocialId());
log.setEmpName(vo.getEmpName());
log.setEmpIdcard(vo.getEmpIdcard());
log.setDispatchItem("社保");
log.setSocialHuName(vo.getSocialHouseholdName());
// type 类型:提交;审核
log.setType(type);
log.setRemark(remark);
return log;
}
@Override
public TSocialSoldierLog getYsdSoldierAuditLog(SocialSoldierYsdAuditVo vo, String type, String remark) {
TSocialSoldierLog log = new TSocialSoldierLog();
log.setSocialId(vo.getSocialId());
log.setEmpName(vo.getEmpName());
log.setEmpIdcard(vo.getEmpIdcard());
log.setDispatchItem("医保");
log.setSocialHuName(vo.getSocialHouseholdName());
// type 类型:提交;审核
log.setType(type);
log.setRemark(remark);
return log;
}
@Override
public TSocialSoldierLog getSocialSoldierLog(TSocialInfo social, String type, String dispatchItem, String remark) {
TSocialSoldierLog log = new TSocialSoldierLog();
log.setSocialId(social.getId());
log.setEmpName(social.getEmpName());
log.setEmpIdcard(social.getEmpIdcard());
log.setDispatchItem(dispatchItem);
log.setSocialHuName(social.getSocialHouseholdName());
// type 类型:提交;审核
log.setType(type);
log.setRemark(remark);
return log;
}
private Long noPageCountDiy(TSocialSoldierLogSearchVo searchVo) {
LambdaQueryWrapper<TSocialSoldierLog> wrapper = buildQueryWrapper(searchVo);
List<String> idList = Common.getList(searchVo.getIds());
if (Common.isNotNull(idList)) {
wrapper.in(TSocialSoldierLog::getId, idList);
}
return baseMapper.selectCount(wrapper);
}
private LambdaQueryWrapper buildQueryWrapper(TSocialSoldierLogSearchVo entity) {
LambdaQueryWrapper<TSocialSoldierLog> wrapper = Wrappers.lambdaQuery();
if (ArrayUtil.isNotEmpty(entity.getCreateTimeStart())) {
wrapper.ge(TSocialSoldierLog::getCreateTime, entity.getCreateTimeStart());
}
if (ArrayUtil.isNotEmpty(entity.getCreateTimeEnd())) {
wrapper.le(TSocialSoldierLog::getCreateTime, entity.getCreateTimeEnd());
}
if (Common.isNotNull(entity.getCreateName())) {
wrapper.eq(TSocialSoldierLog::getCreateName, entity.getCreateName());
}
return wrapper;
}
}
......@@ -14,6 +14,9 @@
<result property="updateTime" column="UPDATE_TIME"/>
<result property="updateBy" column="UPDATE_BY"/>
<result property="updateName" column="UPDATE_NAME"/>
<result property="isReplace" column="IS_REPLACE"/>
<result property="replaceLeft" column="REPLACE_LEFT"/>
<result property="replaceRight" column="REPLACE_RIGHT"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
......@@ -27,7 +30,10 @@
a.CREATE_BY,
a.UPDATE_TIME,
a.UPDATE_BY,
a.UPDATE_NAME
a.UPDATE_NAME,
a.IS_REPLACE,
a.REPLACE_LEFT,
a.REPLACE_RIGHT
</sql>
<sql id="failReasonConfig_where">
<if test="failReasonConfig != null">
......@@ -46,6 +52,9 @@
<if test="failReasonConfig.status != null and failReasonConfig.status.trim() != ''">
AND a.STATUS = #{failReasonConfig.status}
</if>
<if test="failReasonConfig.isReplace != null and failReasonConfig.isReplace.trim() != ''">
AND a.IS_REPLACE = #{failReasonConfig.isReplace}
</if>
</if>
</sql>
<!--failReasonConfig简单分页查询-->
......
......@@ -39,6 +39,8 @@
<result property="updateTime" column="UPDATE_TIME"/>
<result property="status" column="STATUS"/>
<result property="type" column="TYPE"/>
<result property="socialStartDate" column="SOCIAL_START_DATE"/>
<result property="medicalStartDate" column="MEDICAL_START_DATE"/>
</resultMap>
<sql id="Base_Column_List">
a.ID,
......@@ -54,7 +56,8 @@
a.UPDATE_BY,
a.UPDATE_NAME,
a.UPDATE_TIME,
a.STATUS,a.TYPE
a.STATUS,a.TYPE,
a.SOCIAL_START_DATE,a.MEDICAL_START_DATE
</sql>
<sql id="tSocialDeadlineInfo_where">
<if test="tSocialDeadlineInfo != null">
......
......@@ -589,6 +589,8 @@
<select id="getSocialSoldierYgsAll" resultMap="tSocialInfoMap">
SELECT
a.ID,
a.EMP_NAME,
a.SOCIAL_HOUSEHOLD_NAME,
a.EMP_IDCARD,
a.YGS_ADD_ID,
a.HANDLE_STATUS,
......@@ -610,6 +612,8 @@ if((sd.id is not null and NOW() <![CDATA[ <= ]]> sd.SOCIAL_END_DATE) or ( sd.id
<select id="getSocialSoldierYsdAll" resultMap="tSocialInfoMap">
SELECT
a.ID,
a.EMP_NAME,
a.SOCIAL_HOUSEHOLD_NAME,
a.EMP_IDCARD,
a.YSD_ADD_ID,
a.HANDLE_STATUS,
......@@ -631,6 +635,8 @@ if((sd.id is not null and NOW() <![CDATA[ <= ]]> sd.SOCIAL_END_DATE) or ( sd.id
<select id="getSocialSoldierYgsByAudit" resultMap="tSocialInfoMap">
SELECT
a.ID,
a.EMP_NAME,
a.SOCIAL_HOUSEHOLD_NAME,
a.EMP_IDCARD,
a.YGS_ADD_ID,
a.HANDLE_STATUS,
......@@ -649,6 +655,8 @@ if((sd.id is not null and NOW() <![CDATA[ <= ]]> sd.SOCIAL_END_DATE) or ( sd.id
<select id="getSocialSoldierYsdByAudit" resultMap="tSocialInfoMap">
SELECT
a.ID,
a.EMP_NAME,
a.SOCIAL_HOUSEHOLD_NAME,
a.EMP_IDCARD,
a.YSD_ADD_ID,
a.HANDLE_STATUS,
......@@ -667,6 +675,8 @@ if((sd.id is not null and NOW() <![CDATA[ <= ]]> sd.SOCIAL_END_DATE) or ( sd.id
<select id="getSocialSoldierByAddId" resultMap="tSocialInfoMap">
SELECT
a.ID,
a.EMP_NAME,
a.SOCIAL_HOUSEHOLD_NAME,
a.EMP_IDCARD,
a.YGS_ADD_ID,
a.YSD_ADD_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