Commit 84bddbc4 authored by xiachenqi's avatar xiachenqi

修正读取个人邮寄excel中受理号的识别问题

parent 35e0f45c
......@@ -22,13 +22,17 @@ import static com.yxproject.start.utils.YXStringUtils.getCurrentDate2String;
@RestController
@RequestMapping("LogApi")
public class LogApi {
@Autowired
private LogService logService;
@Autowired
private PersonPostService personPostService;
private final LogService logService;
private final PersonPostService personPostService;
Logger logger= Logger.getLogger(LogApi.class);
public LogApi(LogService logService, PersonPostService personPostService) {
this.logService = logService;
this.personPostService = personPostService;
}
/**
* 查询新包生成日志
* @param newFileName 新文件名
......
......@@ -208,8 +208,8 @@ public class ReadExcelApi {
personPostEntity.setLatticeMouthInformation((String) list2.get(21));
personPostEntity.setNatureOfTheInternal((String) list2.get(22));
personPostEntity.setNatureOfTheInformation((String) list2.get(23));
// personPostEntity.setFirstWhite(list2.get(24).toString().substring(5, 27));
personPostEntity.setFirstWhite(list2.get(24).toString());
personPostEntity.setFirstWhite(list2.get(24).toString().substring(5, 27));
// personPostEntity.setFirstWhite(list2.get(24).toString());
personPostEntity.setFileId(fileNameDicEntity.getFileId());
personPostEntity.setGk(gkMap);
}
......
......@@ -2,19 +2,20 @@ package com.yxproject.start.api;
import com.yxproject.start.entity.*;
import com.yxproject.start.service.*;
import com.yxproject.start.service.impl.TaskListServiceImpl;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.log4j.Logger;
import org.apache.log4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.core.io.FileSystemResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.transaction.Transactional;
import java.io.IOException;
import java.util.*;
/**
......@@ -24,21 +25,26 @@ import java.util.*;
@RestController
@RequestMapping("TaskList")
public class TaskListApi {
@Autowired
private TaskListService taskListService;
@Autowired
private SpecialCardService specialCardService;
@Autowired
private GroupNoService groupNoService;
@Autowired
private PreproPersonService preproPersonService;
@Autowired
private ReceiptService receiptService;
@Autowired
private FailedCardService failedCardService;
private final TaskListService taskListService;
private final SpecialCardService specialCardService;
private final GroupNoService groupNoService;
private final PreproPersonService preproPersonService;
private final ReceiptService receiptService;
private final FailedCardService failedCardService;
private final TaskListServiceImpl taskListServiceImpl;
Logger logger = Logger.getLogger(TaskListApi.class);
public TaskListApi(TaskListService taskListService, SpecialCardService specialCardService, GroupNoService groupNoService, PreproPersonService preproPersonService, ReceiptService receiptService, FailedCardService failedCardService, TaskListServiceImpl taskListServiceImpl) {
this.taskListService = taskListService;
this.specialCardService = specialCardService;
this.groupNoService = groupNoService;
this.preproPersonService = preproPersonService;
this.receiptService = receiptService;
this.failedCardService = failedCardService;
this.taskListServiceImpl = taskListServiceImpl;
}
/**
* 更改任务单状态
* (下发、预订位、平压、冲切、分拣)
......@@ -205,13 +211,8 @@ public class TaskListApi {
public List<Object> queryByCountyAtAuxiliary(@RequestParam("process") String process, HttpServletResponse resp, HttpServletRequest requ) {
String remoteAddr = requ.getRemoteAddr();
MDC.put("ip", remoteAddr);
List<Object> objects = new ArrayList<>();
// try {
objects = taskListService.selectByCountyAtAuxiliary(Long.valueOf(process) - 1);
// }catch (Exception e){
// logger.error("工序:" + process);
// logger.error("Exception 查询任务单详情(辅助库)(下发、数据核验、膜打印)异常", e);
// }
List<Object> objects;
objects = taskListService.selectByCountyAtAuxiliary(Long.parseLong(process) - 1);
return objects;
}
......@@ -290,16 +291,17 @@ public class TaskListApi {
* (创建、下发、膜打印、预订位、平压、冲切)
*
* @param process 工序
* @param resp
* @return
*/
@RequestMapping("queryHistoryTaskAtAuxiliary")
public List<Object> queryHistoryTaskAtAuxiliary(@RequestParam("process") String process, @RequestParam("date") String date, @RequestParam("workGroup") String workGroup, HttpServletResponse resp, HttpServletRequest requ) {
public List<Object> queryHistoryTaskAtAuxiliary(
@RequestParam("process") String process, @RequestParam("date") String date,
@RequestParam("workGroup") String workGroup, HttpServletRequest requ) {
String remoteAddr = requ.getRemoteAddr();
MDC.put("ip", remoteAddr);
List<Object> objects = new ArrayList<>();
try {
objects = taskListService.selectHistoryTaskAtAuxiliary(Long.valueOf(process), replaceDate(date), workGroup);
objects = taskListService.selectHistoryTaskAtAuxiliary(Long.parseLong(process), replaceDate(date), workGroup);
} catch (Exception e) {
logger.error("工序:" + process + "查询时间:" + date + "工作组" + workGroup);
logger.error("Exception 查询任务单详情(历史)(辅助库)(创建、下发、膜打印、预订位、平压、冲切)异常", e);
......@@ -761,15 +763,14 @@ public class TaskListApi {
return str.replace("-", "").replace(" ", "").replace(":", "");
}
/**
* 字符串去除空格
*
* @param str 原始字符串
* @return 返回新的字符串
*/
private String replaceNullString(String str) {
if (str == "") {
return null;
} else return str;
@GetMapping("exportPostPersonInfo")
public ResponseEntity<FileSystemResource> exportPostPersonInfo(@RequestParam String taskDate) throws IOException {
String fileName = taskListServiceImpl.exportPostPersonInfo(taskDate);
FileSystemResource resource = new FileSystemResource(fileName);
// 返回文件下载响应
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fileName)
.contentType(org.springframework.http.MediaType.parseMediaType("text/csv"))
.body(resource);
}
}
......@@ -89,7 +89,7 @@ public interface LogMapper {
* @return
*/
@Insert("INSERT INTO ANALYSIS (FILE_DIC_ID,FILE_ID,COMMON_CARD_COUNT,POST_CARD_COUNT,ANALYSIS_DATE) VALUES (#{fileDic},#{fileId},#{commonCardCount},#{postCardCount},#{analysisDate})")
public boolean insertIntoAnalysis(@Param("fileDic")String fileDic,@Param("fileId")String fileId,@Param("commonCardCount")String commonCardCount,@Param("postCardCount")String postCardCount,@Param("analysisDate")String analysisDate);
boolean insertIntoAnalysis(@Param("fileDic") String fileDic, @Param("fileId") String fileId, @Param("commonCardCount") String commonCardCount, @Param("postCardCount") String postCardCount, @Param("analysisDate") String analysisDate);
//查询解析数据
......
......@@ -57,7 +57,7 @@ public interface PersonPostMapper {
" <when test='latticeMouthInformation!=\"\"'> and PERSON_POST.LATTICE_MOUTH_INFORMATION=#{latticeMouthInformation} </when>" +
" <when test='getToCounty!=\"\"'> and PERSON_POST.GET_TO_COUNTY in ( ${getToCounty}) </when>" +
" <if test='GK== 0 '> and GK = 0 </if>" +
" <if test='GK== 1 '> and GK in (1,2,3,4) </if>" +
" <if test='GK== 1 '> and GK in (1,2,3,4) </if>" +
" <if test='GK== 5 '> and GK = 5</if>" +
" <when test='startDate!=\"\"'> and subStr(FILE_NAME_DIC.UPLOAD_DATE,0,8) between ${startDate} and ${endDate} </when>" +
" <when test='printDate!=\"\"'> and to_char(PERSON_POST.print_Date,'yyyyMMdd') = ${printDate} </when>" +
......
......@@ -2,7 +2,6 @@ package com.yxproject.start.service;
import com.yxproject.start.entity.GroupNoEntity;
import javax.jws.Oneway;
import java.util.List;
import java.util.Map;
......@@ -11,9 +10,9 @@ import java.util.Map;
* 2019/3/6 21:12
*/
public interface GroupNoService {
public boolean saveGroupNo(GroupNoEntity groupNoEntity);
public List<GroupNoEntity> selectGroupNoEntityByGroupNo(String groupNo);
public boolean updateGroupNoSpecialCount(GroupNoEntity groupNoEntity);
public int selectGroupCount(long TaskId);
public List<Map<String, Object>> selectAcceptNo(String cardId);
boolean saveGroupNo(GroupNoEntity groupNoEntity);
List<GroupNoEntity> selectGroupNoEntityByGroupNo(String groupNo);
boolean updateGroupNoSpecialCount(GroupNoEntity groupNoEntity);
int selectGroupCount(long TaskId);
List<Map<String, Object>> selectAcceptNo(String cardId);
}
......@@ -26,7 +26,7 @@ public interface LogService {
public boolean insertAnalysisDate(String printDate,String fileId);
public boolean changeCardTypeByPrintDate(String analysisDate, String printDate);
boolean changeCardTypeByPrintDate(String analysisDate, String printDate);
public boolean deleteFilesData(@Param("id")String id);
......@@ -34,7 +34,7 @@ public interface LogService {
public List<String> selectId(@Param("uploadTime")String uploadTime);
public boolean insertIntoAnalysis(@Param("fileDic")String fileDic,@Param("fileId")String fileId,@Param("commonCardCount")String commonCardCount,@Param("postCardCount")String postCardCount,@Param("analysisDate")String analysisDate);
boolean insertIntoAnalysis(@Param("fileDic") String fileDic, @Param("fileId") String fileId, @Param("commonCardCount") String commonCardCount, @Param("postCardCount") String postCardCount, @Param("analysisDate") String analysisDate);
List<Map<String,Object>> selectFileIdByUploadDate(@Param("uploadDate") String uploadDate);
......
......@@ -8,6 +8,7 @@ import com.yxproject.start.entity.TaskList.CountGajgEntity;
import com.yxproject.start.entity.TaskList.TaskListEntity;
import org.apache.ibatis.annotations.Param;
import java.io.IOException;
import java.util.List;
import java.util.Map;
......@@ -27,9 +28,9 @@ public interface TaskListService {
public Map<String ,Object> selectByGroupNoAtACCU(String date, String typeCode, String countyCode,long currPage, long pageSize);
public List<Object> selectByCountyAtAuxiliary(long process);
List<Object> selectByCountyAtAuxiliary(long process);
public List selectHistoryTaskAtAuxiliary(long process,String date,String workGroup);
List selectHistoryTaskAtAuxiliary(long process, String date, String workGroup);
public List selectHistoryTaskAtAuxiliary2(String date);
......@@ -127,4 +128,6 @@ public interface TaskListService {
public boolean deletePolice(String policeCode);
public boolean updateTaskIdInDataAuditing (long newTaskId,long oldTaskId);
String exportPostPersonInfo(String taskDate) throws IOException;
}
package com.yxproject.start.service.impl;
import com.opencsv.CSVWriter;
import com.yxproject.start.entity.*;
import com.yxproject.start.entity.TaskList.TaskListEntity;
import com.yxproject.start.mapper.DataAuditingMapper;
import com.yxproject.start.mapper.GroupNoMapper;
import com.yxproject.start.mapper.SpecialCardMapper;
......@@ -12,7 +12,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.math.BigDecimal;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.util.*;
@Service
......@@ -403,7 +408,7 @@ public class TaskListServiceImpl implements TaskListService {
@Override
@Transactional(rollbackFor = Exception.class)
public List<Object> selectByCountyAtAuxiliary(long process) {
List list = new ArrayList();
List list;
if (process == 0) {
//查询下发状态下的任务单
//查询普通组号列表 在辅助库中
......@@ -645,10 +650,9 @@ public class TaskListServiceImpl implements TaskListService {
default:
break;
}
List<Map<String, Object>> mapList1 = formateMap3(mapList);
return mapList1;
return formatMap3(mapList);
}
/**
......@@ -1731,15 +1735,15 @@ private String createGroupNo(List<Integer> c, List<Integer> nsList) {
}
private List<Map<String, Object>> formateMap3(List<Map<String, Object>> maplist) {
Map<String, Object> typeMap = new LinkedHashMap<>();
for (Map o : maplist) {
private List<Map<String, Object>> formatMap3(List<Map<String, Object>> maplist) {
Map<String, Object> typeMap = new LinkedHashMap<>(); //类型Map
for (Map o : maplist) { //遍历原始list获取单个map
// 组合JSON
if (typeMap != null & typeMap.containsKey(o.get("CARD_TYPE") + "")) {
List<Map<String, Object>> mapList = (List<Map<String, Object>>) typeMap.get(o.get("CARD_TYPE"));
mapList.add(o);
typeMap.put(o.get("CARD_TYPE") + "", mapList);
} else {
if (typeMap.containsKey(o.get("CARD_TYPE") + "")) { //如果类型map中已有单个map中这个类型
List<Map<String, Object>> mapList = (List<Map<String, Object>>) typeMap.get(o.get("CARD_TYPE")); // 先获取类型map中这个类型的list
mapList.add(o); //然后把当前的单个map加入到这个list中
typeMap.put(o.get("CARD_TYPE") + "", mapList); //list重新放回类型map
} else { // 类型map中没有这个类型则新建一个然后添加
List<Map<String, Object>> mapList = new ArrayList<>();
mapList.add(o);
typeMap.put(o.get("CARD_TYPE") + "", mapList);
......@@ -1750,7 +1754,7 @@ private String createGroupNo(List<Integer> c, List<Integer> nsList) {
List<Map<String, Object>> mapList = (List<Map<String, Object>>) typeMap.get(type);
Map<String, Object> typemap = new LinkedHashMap<>();
for (Map<String, Object> o : mapList) {
if (typemap != null && typemap.containsKey(o.get("TASK_ID") + "")) {
if (typemap.containsKey(o.get("TASK_ID") + "")) {
List<Map<String, Object>> maplist_county = (List<Map<String, Object>>) typemap.get(o.get("TASK_ID") + "");
maplist_county.add(o);
typemap.put(o.get("TASK_ID") + "", maplist_county);
......@@ -1947,4 +1951,43 @@ private String createGroupNo(List<Integer> c, List<Integer> nsList) {
return typeList;
}
@Override
public String exportPostPersonInfo(String taskDate) throws IOException {
List<Map<String, Object>> postPersonInfo = taskListMapper.exportPostPersonInfo(taskDate);
return generateCsv(postPersonInfo);
}
private String generateCsv(List<Map<String, Object>> personInfoList) throws IOException {
LocalDate date = LocalDate.now();
// 定义 CSV 文件路径
String csvFile = date + "_postPersonInfo.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 (Map<String, Object> data : personInfoList) {
// 确保所有字段都作为字符串保存,防止 Excel 将其解析为数字
String[] row = {
data.get("ID_CARD") == null ? "" : data.get("ID_CARD").toString() + "\t", // 身份证号
data.get("APPLICANT_NAME") == null ? "" : data.get("APPLICANT_NAME").toString(), // 姓名
data.get("RECIPIENT_PHONE") == null ? "" : data.get("RECIPIENT_PHONE").toString() + "\t", // 联系电话
data.get("RECIPIENT_ADDRESS") == null ? "" : data.get("RECIPIENT_ADDRESS").toString(), // 收件地址
};
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