3 changed files with 207 additions and 0 deletions
@ -0,0 +1,84 @@ |
|||||
|
package com.threecloud.dataserviceyy.entity; |
||||
|
|
||||
|
import java.util.Date; |
||||
|
|
||||
|
/** |
||||
|
* FTP已处理文件记录表 |
||||
|
* 对应 mid_voice.mid_ftp_processed_file |
||||
|
* 用于记录已处理过的FTP txt文件,避免重复处理 |
||||
|
*/ |
||||
|
public class FtpProcessedFile { |
||||
|
|
||||
|
/** 自增ID主键 */ |
||||
|
private Long id; |
||||
|
|
||||
|
/** 地市编码 */ |
||||
|
private String cityCode; |
||||
|
|
||||
|
/** 地市名称 */ |
||||
|
private String cityName; |
||||
|
|
||||
|
/** FTP文件名 */ |
||||
|
private String fileName; |
||||
|
|
||||
|
/** 文件大小(字节) */ |
||||
|
private Long fileSize; |
||||
|
|
||||
|
/** 处理状态:0失败,1成功 */ |
||||
|
private String processStatus; |
||||
|
|
||||
|
/** 记录总数 */ |
||||
|
private Integer recordCount; |
||||
|
|
||||
|
/** 成功入库数 */ |
||||
|
private Integer successCount; |
||||
|
|
||||
|
/** 失败数 */ |
||||
|
private Integer failCount; |
||||
|
|
||||
|
/** 处理耗时(毫秒) */ |
||||
|
private Long processTime; |
||||
|
|
||||
|
/** 错误信息 */ |
||||
|
private String errorMsg; |
||||
|
|
||||
|
/** 创建时间 */ |
||||
|
private Date createTime; |
||||
|
|
||||
|
// Getters and Setters
|
||||
|
public Long getId() { return id; } |
||||
|
public void setId(Long id) { this.id = id; } |
||||
|
|
||||
|
public String getCityCode() { return cityCode; } |
||||
|
public void setCityCode(String cityCode) { this.cityCode = cityCode; } |
||||
|
|
||||
|
public String getCityName() { return cityName; } |
||||
|
public void setCityName(String cityName) { this.cityName = cityName; } |
||||
|
|
||||
|
public String getFileName() { return fileName; } |
||||
|
public void setFileName(String fileName) { this.fileName = fileName; } |
||||
|
|
||||
|
public Long getFileSize() { return fileSize; } |
||||
|
public void setFileSize(Long fileSize) { this.fileSize = fileSize; } |
||||
|
|
||||
|
public String getProcessStatus() { return processStatus; } |
||||
|
public void setProcessStatus(String processStatus) { this.processStatus = processStatus; } |
||||
|
|
||||
|
public Integer getRecordCount() { return recordCount; } |
||||
|
public void setRecordCount(Integer recordCount) { this.recordCount = recordCount; } |
||||
|
|
||||
|
public Integer getSuccessCount() { return successCount; } |
||||
|
public void setSuccessCount(Integer successCount) { this.successCount = successCount; } |
||||
|
|
||||
|
public Integer getFailCount() { return failCount; } |
||||
|
public void setFailCount(Integer failCount) { this.failCount = failCount; } |
||||
|
|
||||
|
public Long getProcessTime() { return processTime; } |
||||
|
public void setProcessTime(Long processTime) { this.processTime = processTime; } |
||||
|
|
||||
|
public String getErrorMsg() { return errorMsg; } |
||||
|
public void setErrorMsg(String errorMsg) { this.errorMsg = errorMsg; } |
||||
|
|
||||
|
public Date getCreateTime() { return createTime; } |
||||
|
public void setCreateTime(Date createTime) { this.createTime = createTime; } |
||||
|
} |
||||
@ -0,0 +1,48 @@ |
|||||
|
package com.threecloud.dataserviceyy.mapper; |
||||
|
|
||||
|
import com.threecloud.dataserviceyy.entity.FtpProcessedFile; |
||||
|
import org.apache.ibatis.annotations.Mapper; |
||||
|
import org.apache.ibatis.annotations.Param; |
||||
|
|
||||
|
import java.util.List; |
||||
|
|
||||
|
/** |
||||
|
* FTP已处理文件记录Mapper |
||||
|
* 用于记录已处理过的FTP txt文件,避免重复处理 |
||||
|
*/ |
||||
|
@Mapper |
||||
|
public interface FtpProcessedFileMapper { |
||||
|
|
||||
|
/** |
||||
|
* 插入处理记录 |
||||
|
*/ |
||||
|
int insert(FtpProcessedFile record); |
||||
|
|
||||
|
/** |
||||
|
* 根据地市编码和文件名查询(判断是否已处理) |
||||
|
*/ |
||||
|
FtpProcessedFile selectByCityAndFileName(@Param("cityCode") String cityCode, |
||||
|
@Param("fileName") String fileName); |
||||
|
|
||||
|
/** |
||||
|
* 查询指定地市下所有已处理的文件名列表 |
||||
|
*/ |
||||
|
List<String> selectProcessedFileNamesByCity(@Param("cityCode") String cityCode); |
||||
|
|
||||
|
/** |
||||
|
* 批量查询指定地市下多个文件的处理状态 |
||||
|
*/ |
||||
|
List<FtpProcessedFile> selectByCityAndFileNames(@Param("cityCode") String cityCode, |
||||
|
@Param("fileNames") List<String> fileNames); |
||||
|
|
||||
|
/** |
||||
|
* 根据ID更新处理结果 |
||||
|
*/ |
||||
|
int updateById(FtpProcessedFile record); |
||||
|
|
||||
|
/** |
||||
|
* 删除指定时间之前的记录(清理历史) |
||||
|
*/ |
||||
|
int deleteBeforeTime(@Param("cityCode") String cityCode, |
||||
|
@Param("beforeTime") String beforeTime); |
||||
|
} |
||||
@ -0,0 +1,75 @@ |
|||||
|
<?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.threecloud.dataserviceyy.mapper.FtpProcessedFileMapper"> |
||||
|
|
||||
|
<resultMap id="BaseResultMap" type="com.threecloud.dataserviceyy.entity.FtpProcessedFile"> |
||||
|
<id column="id" property="id"/> |
||||
|
<result column="city_code" property="cityCode"/> |
||||
|
<result column="city_name" property="cityName"/> |
||||
|
<result column="file_name" property="fileName"/> |
||||
|
<result column="file_size" property="fileSize"/> |
||||
|
<result column="process_status" property="processStatus"/> |
||||
|
<result column="record_count" property="recordCount"/> |
||||
|
<result column="success_count" property="successCount"/> |
||||
|
<result column="fail_count" property="failCount"/> |
||||
|
<result column="process_time" property="processTime"/> |
||||
|
<result column="error_msg" property="errorMsg"/> |
||||
|
<result column="create_time" property="createTime"/> |
||||
|
</resultMap> |
||||
|
|
||||
|
<!-- 插入处理记录 --> |
||||
|
<insert id="insert" useGeneratedKeys="true" keyProperty="id"> |
||||
|
INSERT INTO mid_ftp_processed_file ( |
||||
|
city_code, city_name, file_name, file_size, process_status, |
||||
|
record_count, success_count, fail_count, process_time, error_msg, create_time |
||||
|
) VALUES ( |
||||
|
#{cityCode}, #{cityName}, #{fileName}, #{fileSize}, #{processStatus}, |
||||
|
#{recordCount}, #{successCount}, #{failCount}, #{processTime}, #{errorMsg}, NOW() |
||||
|
) |
||||
|
</insert> |
||||
|
|
||||
|
<!-- 根据地市编码和文件名查询 --> |
||||
|
<select id="selectByCityAndFileName" resultMap="BaseResultMap"> |
||||
|
SELECT * FROM mid_ftp_processed_file |
||||
|
WHERE city_code = #{cityCode} |
||||
|
AND file_name = #{fileName} |
||||
|
LIMIT 1 |
||||
|
</select> |
||||
|
|
||||
|
<!-- 查询指定地市下所有已处理的文件名列表 --> |
||||
|
<select id="selectProcessedFileNamesByCity" resultType="java.lang.String"> |
||||
|
SELECT file_name FROM mid_ftp_processed_file |
||||
|
WHERE city_code = #{cityCode} |
||||
|
AND process_status = '1' |
||||
|
</select> |
||||
|
|
||||
|
<!-- 批量查询指定地市下多个文件的处理状态 --> |
||||
|
<select id="selectByCityAndFileNames" resultMap="BaseResultMap"> |
||||
|
SELECT * FROM mid_ftp_processed_file |
||||
|
WHERE city_code = #{cityCode} |
||||
|
AND file_name IN |
||||
|
<foreach collection="fileNames" item="name" open="(" separator="," close=")"> |
||||
|
#{name} |
||||
|
</foreach> |
||||
|
</select> |
||||
|
|
||||
|
<!-- 根据ID更新处理结果 --> |
||||
|
<update id="updateById"> |
||||
|
UPDATE mid_ftp_processed_file |
||||
|
SET process_status = #{processStatus}, |
||||
|
record_count = #{recordCount}, |
||||
|
success_count = #{successCount}, |
||||
|
fail_count = #{failCount}, |
||||
|
process_time = #{processTime}, |
||||
|
error_msg = #{errorMsg} |
||||
|
WHERE id = #{id} |
||||
|
</update> |
||||
|
|
||||
|
<!-- 删除指定时间之前的记录 --> |
||||
|
<delete id="deleteBeforeTime"> |
||||
|
DELETE FROM mid_ftp_processed_file |
||||
|
WHERE city_code = #{cityCode} |
||||
|
AND create_time < TO_TIMESTAMP(#{beforeTime}, 'YYYY-MM-DD HH24:MI:SS') |
||||
|
</delete> |
||||
|
|
||||
|
</mapper> |
||||
Loading…
Reference in new issue