Commit 84bddbc4 authored by xiachenqi's avatar xiachenqi

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

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