Commit b314766d authored by chenyuxi's avatar chenyuxi

feat: 系统交互任务跟进表

parent f7b07a04
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.entity;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.ExcelAttribute;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
/**
* 瓜子系统交互任务跟进表
*
* @author cyx
* @date 2025-07-09 17:03:50
*/
@Data
@TableName("t_gz_push_entry")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "瓜子系统交互任务跟进表")
public class TGzPushEntry extends BaseEntity {
/**
* 主键
*/
@TableId(type = IdType.ASSIGN_ID)
@ExcelProperty("主键")
@Schema(description = "主键")
private String id;
/**
* 流程ID(瓜子推过来的主键)
*/
@ExcelAttribute(name = "流程ID(瓜子推过来的主键)", isNotEmpty = true, errorInfo = "流程ID(瓜子推过来的主键)不能为空", maxLength = 32)
@NotBlank(message = "流程ID(瓜子推过来的主键)不能为空")
@Length(max = 32, message = "流程ID(瓜子推过来的主键)不能超过32个字符")
@ExcelProperty("流程ID(瓜子推过来的主键)")
@Schema(description = "流程ID(瓜子推过来的主键)")
private String bizId;
/**
* 交互任务类型(4:待接受Offer,5:拒绝Offer,7:接受offer,9:候选人填写信息,10:取消offer,12:候选人信息审核,97:档案信息推送,13:待签署,8:合同信息推送,99:合同附件推送)
*/
@ExcelAttribute(name = "交互任务类型(4:待接受Offer,5:拒绝Offer,7:接受offer,9:候选人填写信息,10:取消offer,12:候选人信息审核,97:档案信息推送,13:待签署,8:合同信息推送,99:合同附件推送)", isNotEmpty = true, errorInfo = "交互任务类型(4:待接受Offer,5:拒绝Offer,7:接受offer,9:候选人填写信息,10:取消offer,12:候选人信息审核,97:档案信息推送,13:待签署,8:合同信息推送,99:合同附件推送)不能为空", maxLength = 2)
@NotBlank(message = "交互任务类型(4:待接受Offer,5:拒绝Offer,7:接受offer,9:候选人填写信息,10:取消offer,12:候选人信息审核,97:档案信息推送,13:待签署,8:合同信息推送,99:合同附件推送)不能为空")
@Length(max = 2, message = "交互任务类型(4:待接受Offer,5:拒绝Offer,7:接受offer,9:候选人填写信息,10:取消offer,12:候选人信息审核,97:档案信息推送,13:待签署,8:合同信息推送,99:合同附件推送)不能超过2个字符")
@ExcelProperty("交互任务类型(4:待接受Offer,5:拒绝Offer,7:接受offer,9:候选人填写信息,10:取消offer,12:候选人信息审核,97:档案信息推送,13:待签署,8:合同信息推送,99:合同附件推送)")
@Schema(description = "交互任务类型(4:待接受Offer,5:拒绝Offer,7:接受offer,9:候选人填写信息,10:取消offer,12:候选人信息审核,97:档案信息推送,13:待签署,8:合同信息推送,99:合同附件推送)")
private String taskType;
/**
* 推送状态(0:推送成功1:推送失败2:待推送)
*/
@ExcelAttribute(name = "推送状态(0:推送成功1:推送失败2:待推送)", isNotEmpty = true, errorInfo = "推送状态(0:推送成功1:推送失败2:待推送)不能为空", maxLength = 1)
@NotBlank(message = "推送状态(0:推送成功1:推送失败2:待推送)不能为空")
@Length(max = 1, message = "推送状态(0:推送成功1:推送失败2:待推送)不能超过1个字符")
@ExcelProperty("推送状态(0:推送成功1:推送失败2:待推送)")
@Schema(description = "推送状态(0:推送成功1:推送失败2:待推送)")
private String pushStatus;
/**
* 推送时间
*/
@ExcelAttribute(name = "推送时间", isDate = true)
@ExcelProperty("推送时间")
@Schema(description = "推送时间")
private LocalDateTime pushTime;
/**
* 失败原因
*/
@ExcelAttribute(name = "失败原因", maxLength = 512)
@Length(max = 512, message = "失败原因不能超过512个字符")
@ExcelProperty("失败原因")
@Schema(description = "失败原因")
private String failReason;
/**
* 推送报文,JSON格式的字符串
*/
@ExcelAttribute(name = "推送报文,JSON格式的字符串")
@ExcelProperty("推送报文,JSON格式的字符串")
@Schema(description = "推送报文,JSON格式的字符串")
private String pushData;
/**
* 对方响应的报文,JSON格式的字符串
*/
@ExcelAttribute(name = "对方响应的报文,JSON格式的字符串")
@ExcelProperty("对方响应的报文,JSON格式的字符串")
@Schema(description = "对方响应的报文,JSON格式的字符串")
private String responseData;
/**
* 删除标记
*/
@ExcelAttribute(name = "删除标记", maxLength = 1)
@Length(max = 1, message = "删除标记不能超过1个字符")
@ExcelProperty("删除标记")
@Schema(description = "删除标记")
private String delFlag;
/**
* 姓名
*/
@ExcelAttribute(name = "姓名", maxLength = 50)
@Length(max = 50, message = "姓名不能超过50个字符")
@ExcelProperty("姓名")
@Schema(description = "姓名")
private String name;
/**
* 证件号码
*/
@ExcelAttribute(name = "证件号码", maxLength = 50)
@Length(max = 50, message = "证件号码不能超过50个字符")
@ExcelProperty("证件号码")
@Schema(description = "证件号码")
private String nationalId;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.vo;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TGzPushEntry;
import lombok.Data;
/**
* 瓜子系统交互任务跟进表
*
* @author cyx
* @date 2025-07-09 17:03:50
*/
@Data
public class TGzPushEntrySearchVo extends TGzPushEntry {
/**
* 查询使用:推送时间开始
*/
private String createTimeStart;
/**
* 查询使用:推送时间结束
*/
private String createTimeEnd;
/**
* 查询使用:推送状态数组
*/
private String[] pushStatusArray;
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.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.archives.entity.TGzPushEntry;
import com.yifu.cloud.plus.v1.yifu.archives.service.TGzPushEntryService;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzPushEntrySearchVo;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
* 瓜子系统交互任务跟进表
*
* @author cyx
* @date 2025-07-09 17:03:50
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tgzpushentry" )
@Tag(name = "瓜子系统交互任务跟进表管理")
public class TGzPushEntryController {
private final TGzPushEntryService tGzPushEntryService;
/**
* 简单分页查询
* @param page 分页对象
* @param tGzPushEntry 瓜子系统交互任务跟进表
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TGzPushEntrySearchVo>> getTGzPushEntryPage(Page<TGzPushEntry> page, TGzPushEntrySearchVo tGzPushEntry) {
return new R<>(tGzPushEntryService.getTGzPushEntryPage(page,tGzPushEntry));
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.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.archives.entity.TGzPushEntry;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzPushEntrySearchVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 瓜子系统交互任务跟进表
*
* @author cyx
* @date 2025-07-09 17:03:50
*/
@Mapper
public interface TGzPushEntryMapper extends BaseMapper<TGzPushEntry> {
/**
* 瓜子系统交互任务跟进表简单分页查询
*
* @param tGzPushEntry 瓜子系统交互任务跟进表
* @return
*/
IPage<TGzPushEntrySearchVo> getTGzPushEntryPage(Page<TGzPushEntry> page, @Param("tGzPushEntry") TGzPushEntrySearchVo tGzPushEntry);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TGzPushEntry;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzPushEntrySearchVo;
/**
* 瓜子系统交互任务跟进表
*
* @author cyx
* @date 2025-07-09 17:03:50
*/
public interface TGzPushEntryService extends IService<TGzPushEntry> {
/**
* 瓜子系统交互任务跟进表简单分页查询
* @param tGzPushEntry 瓜子系统交互任务跟进表
* @return
*/
IPage<TGzPushEntrySearchVo> getTGzPushEntryPage(Page<TGzPushEntry> page, TGzPushEntrySearchVo tGzPushEntry);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.archives.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TGzPushEntry;
import com.yifu.cloud.plus.v1.yifu.archives.mapper.TGzPushEntryMapper;
import com.yifu.cloud.plus.v1.yifu.archives.service.TGzPushEntryService;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TGzPushEntrySearchVo;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
/**
* 瓜子系统交互任务跟进表
*
* @author cyx
* @date 2025-07-09 17:03:50
*/
@Log4j2
@Service
@RequiredArgsConstructor
public class TGzPushEntryServiceImpl extends ServiceImpl<TGzPushEntryMapper, TGzPushEntry> implements TGzPushEntryService {
/**
* 瓜子系统交互任务跟进表简单分页查询
* @param tGzPushEntry 瓜子系统交互任务跟进表
* @return
*/
@Override
public IPage<TGzPushEntrySearchVo> getTGzPushEntryPage(Page<TGzPushEntry> page, TGzPushEntrySearchVo tGzPushEntry){
return baseMapper.getTGzPushEntryPage(page,tGzPushEntry);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!--
~
~ Copyright (c) 2018-2025, lengleng All rights reserved.
~
~ Redistribution and use in source and binary forms, with or without
~ modification, are permitted provided that the following conditions are met:
~
~ Redistributions of source code must retain the above copyright notice,
~ this list of conditions and the following disclaimer.
~ Redistributions in binary form must reproduce the above copyright
~ notice, this list of conditions and the following disclaimer in the
~ documentation and/or other materials provided with the distribution.
~ Neither the name of the yifu4cloud.com developer nor the names of its
~ contributors may be used to endorse or promote products derived from
~ this software without specific prior written permission.
~ Author: lengleng (wangiegie@gmail.com)
~
-->
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yifu.cloud.plus.v1.yifu.archives.mapper.TGzPushEntryMapper">
<resultMap id="tGzPushEntryMap" type="com.yifu.cloud.plus.v1.yifu.archives.vo.TGzPushEntrySearchVo">
<id property="id" column="id"/>
<result property="bizId" column="biz_id"/>
<result property="taskType" column="task_type"/>
<result property="pushStatus" column="push_status"/>
<result property="pushTime" column="push_time"/>
<result property="failReason" column="fail_reason"/>
<result property="pushData" column="push_data"/>
<result property="responseData" column="response_data"/>
<result property="delFlag" column="del_flag"/>
<result property="name" column="name"/>
<result property="nationalId" column="national_id"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="createName" column="create_name"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<sql id="Base_Column_List">
a.id,
a.biz_id,
a.task_type,
a.push_status,
a.push_time,
a.fail_reason,
a.push_data,
a.response_data,
a.del_flag,
a.name,
a.national_id,
a.create_time,
a.create_by,
a.create_name,
a.update_by,
a.update_time
</sql>
<sql id="tGzPushEntry_where">
<if test="tGzPushEntry != null">
<if test="tGzPushEntry.id != null and tGzPushEntry.id.trim() != ''">
AND a.id = #{tGzPushEntry.id}
</if>
<if test="tGzPushEntry.bizId != null and tGzPushEntry.bizId.trim() != ''">
AND a.biz_id = #{tGzPushEntry.bizId}
</if>
<if test="tGzPushEntry.taskType != null and tGzPushEntry.taskType.trim() != ''">
AND a.task_type = #{tGzPushEntry.taskType}
</if>
<if test="tGzPushEntry.pushStatus != null and tGzPushEntry.pushStatus.trim() != ''">
AND a.push_status = #{tGzPushEntry.pushStatus}
</if>
<if test="tGzPushEntry.pushStatusArray != null and tGzPushEntry.pushStatusArray.length > 0">
AND a.push_status in
<foreach item="item" index="index" collection="tGzPushEntry.pushStatusArray" open="(" separator="," close=")">
'${item}'
</foreach>
</if>
<if test="tGzPushEntry.pushTime != null">
AND a.push_time = #{tGzPushEntry.pushTime}
</if>
<!--查询推送时间-->
<if test="tGzPushEntry.createTimeStart != null ">
AND a.push_time &gt;= #{tGzPushEntry.createTimeStart}
</if>
<if test="tGzPushEntry.createTimeEnd != null ">
AND a.push_time &lt;= #{tGzPushEntry.createTimeEnd}
</if>
<if test="tGzPushEntry.failReason != null and tGzPushEntry.failReason.trim() != ''">
AND a.fail_reason = #{tGzPushEntry.failReason}
</if>
<if test="tGzPushEntry.pushData != null and tGzPushEntry.pushData.trim() != ''">
AND a.push_data = #{tGzPushEntry.pushData}
</if>
<if test="tGzPushEntry.responseData != null and tGzPushEntry.responseData.trim() != ''">
AND a.response_data = #{tGzPushEntry.responseData}
</if>
<if test="tGzPushEntry.delFlag != null and tGzPushEntry.delFlag.trim() != ''">
AND a.del_flag = #{tGzPushEntry.delFlag}
</if>
<if test="tGzPushEntry.name != null and tGzPushEntry.name.trim() != ''">
AND a.name like concat('%',#{tGzPushEntry.name},'%')
</if>
<if test="tGzPushEntry.nationalId != null and tGzPushEntry.nationalId.trim() != ''">
AND a.national_id like concat('%',#{tGzPushEntry.nationalId},'%')
</if>
<if test="tGzPushEntry.createTime != null">
AND a.create_time = #{tGzPushEntry.createTime}
</if>
<if test="tGzPushEntry.createBy != null and tGzPushEntry.createBy.trim() != ''">
AND a.create_by = #{tGzPushEntry.createBy}
</if>
<if test="tGzPushEntry.createName != null and tGzPushEntry.createName.trim() != ''">
AND a.create_name = #{tGzPushEntry.createName}
</if>
<if test="tGzPushEntry.updateBy != null and tGzPushEntry.updateBy.trim() != ''">
AND a.update_by = #{tGzPushEntry.updateBy}
</if>
<if test="tGzPushEntry.updateTime != null">
AND a.update_time = #{tGzPushEntry.updateTime}
</if>
</if>
</sql>
<!--tGzPushEntry简单分页查询-->
<select id="getTGzPushEntryPage" resultMap="tGzPushEntryMap">
SELECT
<include refid="Base_Column_List"/>
FROM t_gz_push_entry a
<where>
a.del_flag = '0'
<include refid="tGzPushEntry_where"/>
</where>
ORDER by a.biz_id asc,a.create_time asc,a.id asc
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment