Commit 8156d7ab authored by xiachenqi's avatar xiachenqi

支持导出全国异地证系统制证人信息

parent 23d600c4
......@@ -101,6 +101,13 @@
<scope>system</scope>
<systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath>
</dependency>
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.9</version>
</dependency>
</dependencies>
<build>
......
......@@ -171,14 +171,14 @@ public class ReadExcelApi {
personPostEntity.setGetToCounty((String) list2.get(28));
personPostEntity.setBusinessType((String) list2.get(1));
//todo 格口信息
personPostEntity.setLatticeMouthInformation("");
personPostEntity.setLatticeMouthInformation((String) list2.get(51));
//内件性质
personPostEntity.setNatureOfTheInternal("");
//内件信息
personPostEntity.setNatureOfTheInformation("");
personPostEntity.setFirstWhite((String) list2.get(47));
personPostEntity.setFileId(fileNameDicEntity.getFileId());
personPostEntity.setGk(0L);
personPostEntity.setGk(gkMap);
} else {
personPostEntity.setWaybillNumber((String) list2.get(0));
personPostEntity.setBackWaybillNumber((String) list2.get(1));
......
......@@ -2,6 +2,9 @@ package com.yxproject.start.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import javax.persistence.Basic;
import javax.persistence.Column;
......@@ -35,8 +38,18 @@ public class PersonPostDto {
private String natureOfTheInformation;
private long id;
private Long state;
private String playState;
@JsonProperty("playType")
@Column(name = "PLAY_STATE")
public String getPlayState() {
return playState;
}
public void setPlayState(String playState) {
this.playState = playState;
}
@Column(name = "WAYBILL_NUMBER")
public String getWaybillNumber() {
return waybillNumber;
......
......@@ -12,7 +12,7 @@ public interface FilesMapper {
@Insert("INSERT INTO FILES (VERSION_CODE,DWDM,DWMC,RECORD_NUMBER,CREATE_TIME,SOURCE_FILE_NAME,UPLOAD_DATE)" +
"VALUES(#{versionCode},#{dwdm},#{dwmc},#{recordNumber},#{createTime},#{sourceFileName},#{uploadDate})")
@Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id")
public long insertFiles(FilesEntity filesEntity);
long insertFiles(FilesEntity filesEntity);
......
......@@ -3,6 +3,7 @@ package com.yxproject.start.mapper;
import com.yxproject.start.dto.PersonPostDto;
import com.yxproject.start.entity.GATTrackEntity;
import com.yxproject.start.entity.PersonPostEntity;
import com.yxproject.start.entity.PreproPersonEntity;
import org.apache.ibatis.annotations.*;
import java.util.Date;
......@@ -314,7 +315,7 @@ public interface PersonPostMapper {
@Select("SELECT ID,WAYBILL_NUMBER,BACK_WAYBILL_NUMBER,ORDER_NUMBER,RECIPIENT_NAME,RECIPIENT_PHONE," +
"RECIPIENT_ADDRESS,APPLICANT_NAME,PRINT_DATE,SENDER_NAME,SENDER_PHONE,SENDER_ADDRESS," +
"GET_TO_PROVINCE,GET_TO_CITY,GET_TO_COUNTY,BUSINESS_TYPE," +
"LATTICE_MOUTH_INFORMATION,NATURE_OF_THE_INTERNAL,NATURE_OF_THE_INFORMATION," +
"LATTICE_MOUTH_INFORMATION,NATURE_OF_THE_INTERNAL,NATURE_OF_THE_INFORMATION,PLAY_STATE," +
"STATE FROM PERSON_POST WHERE ID_CARD=#{idCard} AND BEGIN_USEFUL_LIFE=#{startDate} AND VALID_PERIOD_END=#{endDate} AND STATE1=0")
List<PersonPostDto> getPostInfoAtMachine(@Param("idCard") String idCard, @Param("startDate") String startDate, @Param("endDate") String endDate);
......
......@@ -262,8 +262,17 @@ public interface PreproPersonMapper {
@Select("select UPLOAD_NO,ACCEPT_NO from ACCYD_DBA.ACC_CARD_T@ACCUYD_LINK WHERE ACCEPT_NO =#{acceptNo}\n" +
"UNION all \n" +
"select UPLOAD_NO,ACCEPT_NO from PRODYD_DBA.PROD_CARD_T@PRODYD_LINK WHERE ACCEPT_NO =#{acceptNo}")
public List<Map<String, Object>> selectUploadNoByAcceptNo(String acceptNo);
List<Map<String, Object>> selectUploadNoByAcceptNo(String acceptNo);
@Select("SELECT TP_PATH FROM PREPRO_PERSON WHERE FILE_ID = #{id}")
public List<PreproPersonEntity> selectPath (String id);
List<PreproPersonEntity> selectPath(String id);
@Select("SELECT PREPRO_PERSON.* " +
"FROM PREPRO_PERSON " +
"LEFT JOIN YINGXINYD.FILES F ON PREPRO_PERSON.FILE_ID = F.ID " +
"WHERE F.UPLOAD_DATE >= TRUNC(SYSDATE) " +
"AND F.UPLOAD_DATE < TRUNC(SYSDATE) + 1 " +
"AND SUBSTR(PREPRO_PERSON.JMSFZSLH, 18, 1) = '8' " +
"ORDER BY PREPRO_PERSON.ID DESC")
List<PreproPersonEntity> selectPreproPersonsToday();
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ package com.yxproject.start.service;
import com.yxproject.start.dto.PreproPersonDto;
import com.yxproject.start.entity.PreproPersonEntity;
import java.io.IOException;
import java.util.List;
import java.util.Map;
......@@ -12,21 +13,21 @@ import java.util.Map;
*/
public interface PreproPersonService {
public boolean uploadState(String acceptNo,String state);
boolean uploadState(String acceptNo, String state);
public List<Map<String,Object>> selectUploadNoByAcceptNo(String acceptNo);
List<Map<String,Object>> selectUploadNoByAcceptNo(String acceptNo);
public boolean updatePreproPersonIsValid(PreproPersonEntity preproPersonEntity);
boolean updatePreproPersonIsValid(PreproPersonEntity preproPersonEntity);
public List<Map<String, Object>> selectPreproPerson(String uploadNo, String IDCard, String oldFile, String newFile, String SSXQDM, String cardType, String state, String uploadDate1,String uploadDate2,String currPage,String pageSize,String downloadState);
List<Map<String, Object>> selectPreproPerson(String uploadNo, String IDCard, String oldFile, String newFile, String SSXQDM, String cardType, String state, String uploadDate1, String uploadDate2, String currPage, String pageSize, String downloadState);
public List<Map<String, Object>> selectPreproPerson(String uploadNo, String IDCard, String oldFile, String newFile, String SSXQDM, String cardType, String state, String uploadDate1,String uploadDate2,String downloadState);
List<Map<String, Object>> selectPreproPerson(String uploadNo, String IDCard, String oldFile, String newFile, String SSXQDM, String cardType, String state, String uploadDate1, String uploadDate2, String downloadState);
public List<PreproPersonDto> selectAllPreproPerson( String uploadNo, String IDCard, String oldFile, String newFile, String SSXQDM, String cardType, String state, String uploadDate1, String uploadDate2, String downloadState);
List<PreproPersonDto> selectAllPreproPerson(String uploadNo, String IDCard, String oldFile, String newFile, String SSXQDM, String cardType, String state, String uploadDate1, String uploadDate2, String downloadState);
public int selectPreproPersonCount(String uploadNo, String IDCard, String oldFile, String newFile, String SSXQDM, String cardType, String state, String uploadDate1,String uploadDate2,String downloadState);
public boolean updatePreproPerson_NewFileName(List<PreproPersonDto> preproPersonEntities);
int selectPreproPersonCount(String uploadNo, String IDCard, String oldFile, String newFile, String SSXQDM, String cardType, String state, String uploadDate1, String uploadDate2, String downloadState);
boolean updatePreproPerson_NewFileName(List<PreproPersonDto> preproPersonEntities);
String generateCsv() throws IOException;
}
package com.yxproject.start.service.impl;
import com.opencsv.CSVWriter;
import com.yxproject.start.dto.PreproPersonDto;
import com.yxproject.start.entity.PreproPersonEntity;
import com.yxproject.start.mapper.PreproPersonMapper;
......@@ -9,10 +10,11 @@ import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -23,8 +25,12 @@ import java.util.Map;
*/
@Service
public class PreproPersonServiceImpl implements PreproPersonService {
@Autowired
private PreproPersonMapper preproPersonMapper;
private final PreproPersonMapper preproPersonMapper;
public PreproPersonServiceImpl(PreproPersonMapper preproPersonMapper) {
this.preproPersonMapper = preproPersonMapper;
}
@Override
public boolean uploadState(String acceptNo, String state) {
......@@ -173,4 +179,47 @@ public class PreproPersonServiceImpl implements PreproPersonService {
public List<Map<String,Object>> selectUploadNoByAcceptNo(String acceptNo) {
return preproPersonMapper.selectUploadNoByAcceptNo(acceptNo);
}
@Override
public String generateCsv() throws IOException {
List<PreproPersonEntity> dataList = preproPersonMapper.selectPreproPersonsToday();
LocalDate date = LocalDate.now();
// 定义 CSV 文件路径
String csvFile = "./" + date + ".csv";
// 创建 CSVWriter
// 使用 OutputStreamWriter 和 FileOutputStream 来设置 UTF-8 编码
try (FileOutputStream fileOut = new FileOutputStream(csvFile);
OutputStreamWriter writer = new OutputStreamWriter(fileOut, StandardCharsets.UTF_8)) {
// 可选:写入 UTF-8 BOM(用于兼容 Excel)
writer.write('\uFEFF');
// 创建 CSVWriter
CSVWriter csvWriter = new CSVWriter(writer);
// 写入表头
String[] header = {"受理号", "身份证号", "姓名", "联系电话", "申领原因代码", "受理日期", "受理单位代码"};
csvWriter.writeNext(header);
// 写入数据
for (PreproPersonEntity data : dataList) {
// 确保所有字段都作为字符串保存,防止 Excel 将其解析为数字
String[] row = {
data.getJmsfzslh(),
data.getGmsfhm(),
data.getXm(), // 姓名
data.getSjrLxdh(), // 联系电话
data.getJmsfzslyydm(), // 原因代码
data.getJmsfzslh().substring(9, 17), // 身份证号后部分
data.getJmsfzslh().substring(0, 9) // 身份证号前部分
};
csvWriter.writeNext(row);
}
}
System.out.println("CSV 文件生成成功,路径为:" + csvFile);
return csvFile;
}
}
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