Commit 8156d7ab authored by xiachenqi's avatar xiachenqi

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

parent 23d600c4
...@@ -101,6 +101,13 @@ ...@@ -101,6 +101,13 @@
<scope>system</scope> <scope>system</scope>
<systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath> <systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath>
</dependency> </dependency>
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>5.9</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -171,14 +171,14 @@ public class ReadExcelApi { ...@@ -171,14 +171,14 @@ public class ReadExcelApi {
personPostEntity.setGetToCounty((String) list2.get(28)); personPostEntity.setGetToCounty((String) list2.get(28));
personPostEntity.setBusinessType((String) list2.get(1)); personPostEntity.setBusinessType((String) list2.get(1));
//todo 格口信息 //todo 格口信息
personPostEntity.setLatticeMouthInformation(""); personPostEntity.setLatticeMouthInformation((String) list2.get(51));
//内件性质 //内件性质
personPostEntity.setNatureOfTheInternal(""); personPostEntity.setNatureOfTheInternal("");
//内件信息 //内件信息
personPostEntity.setNatureOfTheInformation(""); personPostEntity.setNatureOfTheInformation("");
personPostEntity.setFirstWhite((String) list2.get(47)); personPostEntity.setFirstWhite((String) list2.get(47));
personPostEntity.setFileId(fileNameDicEntity.getFileId()); personPostEntity.setFileId(fileNameDicEntity.getFileId());
personPostEntity.setGk(0L); personPostEntity.setGk(gkMap);
} else { } else {
personPostEntity.setWaybillNumber((String) list2.get(0)); personPostEntity.setWaybillNumber((String) list2.get(0));
personPostEntity.setBackWaybillNumber((String) list2.get(1)); personPostEntity.setBackWaybillNumber((String) list2.get(1));
......
...@@ -2,6 +2,9 @@ package com.yxproject.start.dto; ...@@ -2,6 +2,9 @@ package com.yxproject.start.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import javax.persistence.Basic;
import javax.persistence.Column; import javax.persistence.Column;
...@@ -35,8 +38,18 @@ public class PersonPostDto { ...@@ -35,8 +38,18 @@ public class PersonPostDto {
private String natureOfTheInformation; private String natureOfTheInformation;
private long id; private long id;
private Long state; 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") @Column(name = "WAYBILL_NUMBER")
public String getWaybillNumber() { public String getWaybillNumber() {
return waybillNumber; return waybillNumber;
......
...@@ -12,7 +12,7 @@ public interface FilesMapper { ...@@ -12,7 +12,7 @@ public interface FilesMapper {
@Insert("INSERT INTO FILES (VERSION_CODE,DWDM,DWMC,RECORD_NUMBER,CREATE_TIME,SOURCE_FILE_NAME,UPLOAD_DATE)" + @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})") "VALUES(#{versionCode},#{dwdm},#{dwmc},#{recordNumber},#{createTime},#{sourceFileName},#{uploadDate})")
@Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id") @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; ...@@ -3,6 +3,7 @@ package com.yxproject.start.mapper;
import com.yxproject.start.dto.PersonPostDto; import com.yxproject.start.dto.PersonPostDto;
import com.yxproject.start.entity.GATTrackEntity; import com.yxproject.start.entity.GATTrackEntity;
import com.yxproject.start.entity.PersonPostEntity; import com.yxproject.start.entity.PersonPostEntity;
import com.yxproject.start.entity.PreproPersonEntity;
import org.apache.ibatis.annotations.*; import org.apache.ibatis.annotations.*;
import java.util.Date; import java.util.Date;
...@@ -314,7 +315,7 @@ public interface PersonPostMapper { ...@@ -314,7 +315,7 @@ public interface PersonPostMapper {
@Select("SELECT ID,WAYBILL_NUMBER,BACK_WAYBILL_NUMBER,ORDER_NUMBER,RECIPIENT_NAME,RECIPIENT_PHONE," + @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," + "RECIPIENT_ADDRESS,APPLICANT_NAME,PRINT_DATE,SENDER_NAME,SENDER_PHONE,SENDER_ADDRESS," +
"GET_TO_PROVINCE,GET_TO_CITY,GET_TO_COUNTY,BUSINESS_TYPE," + "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") "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); List<PersonPostDto> getPostInfoAtMachine(@Param("idCard") String idCard, @Param("startDate") String startDate, @Param("endDate") String endDate);
......
...@@ -262,8 +262,17 @@ public interface PreproPersonMapper { ...@@ -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" + @Select("select UPLOAD_NO,ACCEPT_NO from ACCYD_DBA.ACC_CARD_T@ACCUYD_LINK WHERE ACCEPT_NO =#{acceptNo}\n" +
"UNION all \n" + "UNION all \n" +
"select UPLOAD_NO,ACCEPT_NO from PRODYD_DBA.PROD_CARD_T@PRODYD_LINK WHERE ACCEPT_NO =#{acceptNo}") "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}") @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; ...@@ -3,6 +3,7 @@ package com.yxproject.start.service;
import com.yxproject.start.dto.PreproPersonDto; import com.yxproject.start.dto.PreproPersonDto;
import com.yxproject.start.entity.PreproPersonEntity; import com.yxproject.start.entity.PreproPersonEntity;
import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -12,21 +13,21 @@ import java.util.Map; ...@@ -12,21 +13,21 @@ import java.util.Map;
*/ */
public interface PreproPersonService { 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); 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);
boolean updatePreproPerson_NewFileName(List<PreproPersonDto> preproPersonEntities);
String generateCsv() throws IOException;
} }
package com.yxproject.start.service.impl; package com.yxproject.start.service.impl;
import com.opencsv.CSVWriter;
import com.yxproject.start.dto.PreproPersonDto; import com.yxproject.start.dto.PreproPersonDto;
import com.yxproject.start.entity.PreproPersonEntity; import com.yxproject.start.entity.PreproPersonEntity;
import com.yxproject.start.mapper.PreproPersonMapper; import com.yxproject.start.mapper.PreproPersonMapper;
...@@ -9,10 +10,11 @@ import org.dom4j.Document; ...@@ -9,10 +10,11 @@ import org.dom4j.Document;
import org.dom4j.DocumentException; import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper; import org.dom4j.DocumentHelper;
import org.dom4j.Element; import org.dom4j.Element;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.io.*; import java.io.*;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -23,8 +25,12 @@ import java.util.Map; ...@@ -23,8 +25,12 @@ import java.util.Map;
*/ */
@Service @Service
public class PreproPersonServiceImpl implements PreproPersonService { public class PreproPersonServiceImpl implements PreproPersonService {
@Autowired
private PreproPersonMapper preproPersonMapper; private final PreproPersonMapper preproPersonMapper;
public PreproPersonServiceImpl(PreproPersonMapper preproPersonMapper) {
this.preproPersonMapper = preproPersonMapper;
}
@Override @Override
public boolean uploadState(String acceptNo, String state) { public boolean uploadState(String acceptNo, String state) {
...@@ -173,4 +179,47 @@ public class PreproPersonServiceImpl implements PreproPersonService { ...@@ -173,4 +179,47 @@ public class PreproPersonServiceImpl implements PreproPersonService {
public List<Map<String,Object>> selectUploadNoByAcceptNo(String acceptNo) { public List<Map<String,Object>> selectUploadNoByAcceptNo(String acceptNo) {
return preproPersonMapper.selectUploadNoByAcceptNo(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