Commit dfdb7d95 authored by guantiantian's avatar guantiantian

Merge branch 'dev' of…

Merge branch 'dev' of http://39.101.130.244:8000/zhangyusheng/YX_IDENT_beijing_auxiliary_YD into dev
parents 6d8f7919 318c2868
......@@ -54,11 +54,6 @@
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
......@@ -74,7 +69,6 @@
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
......@@ -85,11 +79,6 @@
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
......@@ -105,7 +94,13 @@
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath>
</dependency>
</dependencies>
<build>
......@@ -114,6 +109,7 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
......
......@@ -3,7 +3,6 @@ package com.yxproject.start.api;
import com.yxproject.start.dto.PreproPersonDto;
import com.yxproject.start.entity.FilesEntity;
import com.yxproject.start.entity.NewFilesEntity;
import com.yxproject.start.mapper.PreproPersonMapper;
import com.yxproject.start.service.FilesService;
import com.yxproject.start.service.NewFilesService;
import com.yxproject.start.service.PreproPersonService;
......@@ -15,21 +14,18 @@ import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.zip.ZipOutputStream;
import static com.yxproject.start.utils.YXStringUtils.getCurrentDate2String;
......@@ -41,36 +37,36 @@ import static com.yxproject.start.utils.YXStringUtils.getCurrentDate2String;
@RestController
@RequestMapping("exportXML")
public class ExportXMLApi {
@Autowired
private PreproPersonService preproPersonService;
@Autowired
private NewFilesService newFilesService;
@Autowired
private FilesService filesService;
@Autowired
private QuerySequenceSercive querySequenceSercive;
private static ExecutorService threadPool = Executors.newCachedThreadPool();
private static final ExecutorService threadPool = Executors.newCachedThreadPool();
private final PreproPersonService preproPersonService;
private final NewFilesService newFilesService;
private final FilesService filesService;
private final QuerySequenceSercive querySequenceSercive;
Logger logger = Logger.getLogger(ExportXMLApi.class);
public ExportXMLApi(PreproPersonService preproPersonService, NewFilesService newFilesService, FilesService filesService, QuerySequenceSercive querySequenceSercive) {
this.preproPersonService = preproPersonService;
this.newFilesService = newFilesService;
this.filesService = filesService;
this.querySequenceSercive = querySequenceSercive;
}
/**
* 导出制证数据包
*/
@RequestMapping("printXmlData")
public byte[] printXmlData(@RequestParam("uploadNo") String uploadNo, @RequestParam("IDCard") String IDCard, @RequestParam("oldFile") String oldFile, @RequestParam("newFile") String newFile, @RequestParam("SSXQDM") String SSXQDM, @RequestParam("cardType") String cardType, @RequestParam("state") String state, @RequestParam("uploadDate1") String uploadDate1, @RequestParam("uploadDate2") String uploadDate2, @RequestParam("downloadState") String downloadState, HttpServletResponse response, HttpServletRequest requ) throws SQLException {
public byte[] printXmlData(@RequestParam("uploadNo") String uploadNo, @RequestParam("IDCard") String IDCard, @RequestParam("oldFile") String oldFile, @RequestParam("newFile") String newFile, @RequestParam("SSXQDM") String SSXQDM, @RequestParam("cardType") String cardType, @RequestParam("state") String state, @RequestParam("uploadDate1") String uploadDate1, @RequestParam("uploadDate2") String uploadDate2, @RequestParam("downloadState") String downloadState, HttpServletResponse response) {
//使用Servlet实现文件下载的时候,避免浏览器自动打开文件
List<PreproPersonDto> preproPersonEntities = new ArrayList<>();
List<PreproPersonDto> preproPersonDtos =null;
logger.info(new Date()+ "开始查询");
preproPersonDtos=preproPersonService.selectAllPreproPerson(uploadNo, IDCard, oldFile, newFile, SSXQDM, cardType, state, replaceDate(uploadDate1), replaceDate(uploadDate2), downloadState);
preproPersonEntities.addAll(preproPersonDtos);
logger.info(new Date()+ "结束查询");
if (preproPersonEntities.size() > 0) {
List<PreproPersonDto> preProPersonDtoList;
logger.info(new Date() + "开始查询");
preProPersonDtoList = preproPersonService.selectAllPreproPerson(uploadNo, IDCard, oldFile, newFile, SSXQDM, cardType, state, replaceDate(uploadDate1), replaceDate(uploadDate2), downloadState);
List<PreproPersonDto> preProPersonEntities = new ArrayList<>(preProPersonDtoList);
logger.info(new Date() + "结束查询");
if (!preProPersonEntities.isEmpty()) {
//将制证详情详细划分
Map<Long, Object> map = new LinkedHashMap<>();
for (PreproPersonDto preproPersonDto : preproPersonEntities) {
if (map != null && map.containsKey(preproPersonDto.getCardTypeId())) {
for (PreproPersonDto preproPersonDto : preProPersonEntities) {
if (map.containsKey(preproPersonDto.getCardTypeId())) {
List<PreproPersonDto> preproPersonEntityList = (List<PreproPersonDto>) map.get(preproPersonDto.getCardTypeId());
preproPersonEntityList.add(preproPersonDto);
map.put(preproPersonDto.getCardTypeId(), preproPersonEntityList);
......@@ -82,15 +78,14 @@ public class ExportXMLApi {
}
List<List<Map<String, Object>>> lists = new ArrayList<>();
for (Long cardTypeId : map.keySet()) {
//区分邮寄证和大批证件类型
//大批证
if (cardTypeId == 0 || cardTypeId == 10) {
if (cardTypeId == 0 || cardTypeId == 10 || cardTypeId == 5 || cardTypeId == 7 ) {
List list = new ArrayList();
List<PreproPersonDto> preproPersonEntityList = (List<PreproPersonDto>) map.get(cardTypeId);
Map<String, Object> mapFileId = new LinkedHashMap<>();
for (PreproPersonDto preproPersonEntity : preproPersonEntityList) {
if (mapFileId != null && mapFileId.containsKey(preproPersonEntity.getDwdm())) {
if (mapFileId.containsKey(preproPersonEntity.getDwdm())) {
List<PreproPersonDto> preproPersonEntityListFileId = (List<PreproPersonDto>) mapFileId.get(preproPersonEntity.getDwdm());
preproPersonEntityListFileId.add(preproPersonEntity);
mapFileId.put(preproPersonEntity.getDwdm(), preproPersonEntityListFileId);
......@@ -114,7 +109,7 @@ public class ExportXMLApi {
}
List<String> documentList = new ArrayList<>();
//执行生成XML文件方法
logger.info(new Date()+ "开始生成xml");
logger.info(new Date() + "开始生成xml");
for (List<Map<String, Object>> mapList : lists) {
for (Map<String, Object> objectMap : mapList) {
for (String fileId : objectMap.keySet()) {
......@@ -140,7 +135,7 @@ public class ExportXMLApi {
List<PreproPersonDto> preproPersonEntityList1 = (List<PreproPersonDto>) list1;
List<FilesEntity> filesEntities = filesService.selectFilesEntityById(preproPersonEntityList1.get(0).getFileId().toString());
FilesEntity filesEntity = new FilesEntity();
if (preproPersonEntityList1.get(0).getCardTypeId() == 9 || preproPersonEntityList1.get(0).getCardTypeId() == 11) {
if (preproPersonEntityList1.get(0).getCardTypeId() == 9 || preproPersonEntityList1.get(0).getCardTypeId() == 11 || preproPersonEntityList1.get(0).getCardTypeId() == 4 || preproPersonEntityList1.get(0).getCardTypeId() == 6) {
filesEntity.setVersionCode("3.00");
filesEntity.setCreateTime(getCurrentDate2String("yyyyMMddhhmmss"));
filesEntity.setDwmc("北京市公安局人口管理总队证件管理大队");
......@@ -154,7 +149,7 @@ public class ExportXMLApi {
String xml = null;
try {
//生成XML制证包
xml = createToMakePackageXML(preproPersonEntityList1, finalFilesEntity, "\\zhang");
xml = createToMakePackageXML(preproPersonEntityList1, finalFilesEntity);
} catch (Exception e) {
e.printStackTrace();
......@@ -167,7 +162,7 @@ public class ExportXMLApi {
}
}
logger.info(new Date()+ "生成xml结束");
logger.info(new Date() + "生成xml结束");
// -----制证包数据打包下载
String zipName = "myfile.zip";
response.setContentType("APPLICATION/OCTET-STREAM");
......@@ -181,12 +176,12 @@ public class ExportXMLApi {
logger.error("IOException 制证包数据打包下载IO异常", e);
}
try {
logger.info(new Date()+ "开始打包");
logger.info(new Date() + "开始打包");
for (String document : documentList) {
ZipUtils.doCompress(document, out);
response.flushBuffer();
}
logger.info(new Date()+ "结束打包");
logger.info(new Date() + "结束打包");
} catch (Exception e) {
e.printStackTrace();
logger.error("制证包数据打包名:" + zipName);
......@@ -201,16 +196,16 @@ public class ExportXMLApi {
}
}
}
logger.info(new Date()+ "结束");
logger.info(new Date() + "结束");
return null;
}
/**
* 生成单个可制证数据XML
* @throws IOException 可能出现文件写入不成功
*
*/
private String createToMakePackageXML(List<PreproPersonDto> preproPersonEntities, FilesEntity filesEntity, String url) throws IOException,ParseException {
private String createToMakePackageXML(List<PreproPersonDto> preproPersonEntities, FilesEntity filesEntity) {
// 重新设置包名中的类型代码为0或9
long cardTypeTem = preproPersonEntities.get(0).getCardTypeId();
if (cardTypeTem == 10) cardTypeTem = 0;
......@@ -307,7 +302,7 @@ public class ExportXMLApi {
if (cardType == 10) cardType = 0;
if (cardType == 11) cardType = 9;
//民族文字 sid=010210
if (preproPersonEntity.getSid().equals("010210")){
if (preproPersonEntity.getSid().equals("010210")) {
Element XMMZWZ = RECORD.addElement("XMMZWZ");
XMMZWZ.setText(replaceNullString(preproPersonEntity.getXmmzwz()));
......@@ -329,14 +324,11 @@ public class ExportXMLApi {
}
threadPool.execute(new Runnable() {
@Override
public void run() {
try {
preproPersonService.updatePreproPerson_NewFileName(preproPersonEntities);
} catch (Exception e) {
e.printStackTrace();
}
threadPool.execute(() -> {
try {
preproPersonService.updatePreproPerson_NewFileName(preproPersonEntities);
} catch (Exception e) {
e.printStackTrace();
}
});
try {
......@@ -360,6 +352,7 @@ public class ExportXMLApi {
/**
* 字符串去除空格
*
* @param str 原始字符串
* @return 返回新的字符串
*/
......@@ -377,11 +370,12 @@ public class ExportXMLApi {
* @return
*/
private String replaceDate(String str) {
return str.replace("-", "").replace(" ","").replace(":","");
return str.replace("-", "").replace(" ", "").replace(":", "");
}
/**
* 不够位数的在前面补0,保留code的长度位数字
*
* @param code
* @return
*/
......
......@@ -221,7 +221,7 @@ public class LogApi {
String remoteAddr = requ.getRemoteAddr();
MDC.put("ip", remoteAddr);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:MM:ss");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//通过上传受理号更新制证数据类型
//通过上传受理号和出生日期更新邮寄订单
try {
......@@ -229,20 +229,18 @@ public class LogApi {
//更新xml数据中的证件类型和格口文件解析状态
logService.changeCardTypeByPrintDate(getCurrentDate2String("yyyyMMddhhmmss"),printDate);
//查询XML文件信息
List <Map <String, Object>> resultList=logService.selectFileIdByUploadDate(printDate);
List <Map <String, Object>> resultList = logService.selectFileIdByUploadDate(printDate);
//查询身份数据
List <Map <String, Object>> dataList=logService.selectPersonPostUnanalysis(printDate);
List <Map <String, Object>> personList = logService.selectPersonPostUnanalysis(printDate);
logger.info("结束查询XML、Excel、身份数据信息----->"+sdf.format(new Date()));
logger.info("开始查询出生日期不合法订单修改备注----->"+sdf.format(new Date()));
//添加受理号匹配,出生日期不匹配订单
List <Map <String, Object>> invalidList=logService.selectInvalidPersonPost(printDate);
for (int i = 0; i < invalidList.size(); i++) {
Map<String, Object> noteMap = invalidList.get(i);
String uploadNo=noteMap.get("JMSFZSLH").toString();
String note= "出生日期填写不符!办证人信息:"+noteMap.get("XM").toString()+"-"+noteMap.get("CSRQ").toString();
String name="system";
personPostService.cancelPostByAcceptNo(uploadNo,note,name);
List <Map <String, Object>> invalidList = logService.selectInvalidPersonPost(printDate);
for (Map<String, Object> noteMap : invalidList) {
String uploadNo = noteMap.get("JMSFZSLH").toString();
String note = "出生日期填写不符!办证人信息:" + noteMap.get("XM").toString() + "-" + noteMap.get("CSRQ").toString();
personPostService.cancelPostByAcceptNo(uploadNo, note, "system");
}
logger.info("结束查询出生日期不合法订单修改备注----->"+sdf.format(new Date()));
......@@ -250,13 +248,13 @@ public class LogApi {
//todo 获取所有的已解析的文件id
List <Map <String, Object>> analysusList = new ArrayList<>();
//将身份数据插入到邮寄表中
for (int i=0; i < dataList.size(); i++) {
logService.insertIdData((String) dataList.get(i).get("GMSFHM"), (String) dataList.get(i).get("SSXQDM"), (String) dataList.get(i).get("YXQQSRQ"), (String) dataList.get(i).get("YXQJZRQ"), (String) dataList.get(i).get("JMSFZSLH"));
Map<String,Object> map = new HashMap<>();
map.put("gkId",dataList.get(i).get("GK_ID"));
map.put("xmlId",dataList.get(i).get("XML_ID"));
for (Map<String, Object> personData : personList) {
logService.insertIdData((String) personData.get("GMSFHM"), (String) personData.get("SSXQDM"), (String) personData.get("YXQQSRQ"), (String) personData.get("YXQJZRQ"), (String) personData.get("JMSFZSLH"));
Map<String, Object> map = new HashMap<>();
map.put("gkId", personData.get("GK_ID"));
map.put("xmlId", personData.get("XML_ID"));
//将每个xml的不同格口保存
if (!analysusList.contains(map)){
if (!analysusList.contains(map)) {
analysusList.add(map);
}
}
......
......@@ -53,12 +53,21 @@ public class ReadExcelApi {
/**
* 导入个人邮寄信息表
*
* @param startDate 订单起始日期
* @param endDate 订单截止日期
* @param resp resp
* @param requ 要求
* @return {@link Map }<{@link String }, {@link String }>
*/
@RequestMapping("ReadPersonPost")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
@Transactional(rollbackFor = Exception.class)
public Map<String, String> ReadPersonPost(@RequestParam("formStartTime") String startDate, @RequestParam("formDeadLine") String endDate, HttpServletResponse resp, HttpServletRequest requ) {
public Map<String, String> ReadPersonPost(@RequestParam("formStartTime") String startDate,
@RequestParam("formDeadLine") String endDate,
@RequestParam(value = "isGAT", required = false, defaultValue = "false") Boolean isGAT,
HttpServletResponse resp, HttpServletRequest requ) {
String remoteAddr = requ.getRemoteAddr();
MDC.put("ip", remoteAddr);
YXJSONResponse yxresp = new YXJSONResponse();
......@@ -134,43 +143,83 @@ public class ReadExcelApi {
if (list2 == null || i == 0) {
continue;
}
personPostEntity.setWaybillNumber((String) list2.get(0));
personPostEntity.setBackWaybillNumber((String) list2.get(1));
personPostEntity.setOrderNumber((String) list2.get(2));
personPostEntity.setCreateDate((String) list2.get(3));
personPostEntity.setOpenid((String) list2.get(4));
personPostEntity.setWcPlayOrderNumber((String) list2.get(5));
personPostEntity.setPlayState((String) list2.get(6));
personPostEntity.setOrderState((String) list2.get(7));
personPostEntity.setApplicantName((String) list2.get(8));
if ("".equals(replaceDate((String)list2.get(9)))){
birthStr=birthStr+list2.get(2).toString()+"、";
birthDate++;
if (isGAT) {
personPostEntity.setWaybillNumber((String) list2.get(17));
// personPostEntity.setBackWaybillNumber((String) list2.get(1));
personPostEntity.setOrderNumber((String) list2.get(0));
personPostEntity.setCreateDate((String) list2.get(30));
// personPostEntity.setOpenid((String) list2.get(4));
// personPostEntity.setWcPlayOrderNumber((String) list2.get(5));
// personPostEntity.setPlayState((String) list2.get(6));
personPostEntity.setOrderState((String) list2.get(4));
personPostEntity.setApplicantName((String) list2.get(47));
if ("".equals(replaceDate((String)list2.get(9)))){
birthStr=birthStr+list2.get(2).toString()+"、";
birthDate++;
}
personPostEntity.setBirthDate(replaceDate((String)list2.get(48)));
personPostEntity.setSenderName((String) list2.get(18));
personPostEntity.setSenderPhone((String) list2.get(19));
//todo 地址格式
personPostEntity.setSenderAddress((String) list2.get(23));
personPostEntity.setRecipientName((String) list2.get(24));
personPostEntity.setRecipientPhone((String) list2.get(25));
//todo 地址格式
personPostEntity.setRecipientAddress((String)list2.get(29));
// personPostEntity.setOrderBlankNumber("");
personPostEntity.setGetToProvince((String) list2.get(26));
personPostEntity.setGetToCity((String) list2.get(27));
personPostEntity.setGetToCounty((String) list2.get(28));
personPostEntity.setBusinessType((String) list2.get(1));
//todo 格口信息
// personPostEntity.setLatticeMouthInformation((String) list2.get(21));
//内件性质
// personPostEntity.setNatureOfTheInternal((String) list2.get(22));
//内件信息
// personPostEntity.setNatureOfTheInformation((String) list2.get(23));
personPostEntity.setFirstWhite(list2.get(46).toString().substring(5, 27));
personPostEntity.setFileId(fileNameDicEntity.getFileId());
personPostEntity.setGk(gkMap);
} else {
personPostEntity.setWaybillNumber((String) list2.get(0));
personPostEntity.setBackWaybillNumber((String) list2.get(1));
personPostEntity.setOrderNumber((String) list2.get(2));
personPostEntity.setCreateDate((String) list2.get(3));
personPostEntity.setOpenid((String) list2.get(4));
personPostEntity.setWcPlayOrderNumber((String) list2.get(5));
personPostEntity.setPlayState((String) list2.get(6));
personPostEntity.setOrderState((String) list2.get(7));
personPostEntity.setApplicantName((String) list2.get(8));
if ("".equals(replaceDate((String)list2.get(9)))){
birthStr=birthStr+list2.get(2).toString()+"、";
birthDate++;
}
personPostEntity.setBirthDate(replaceDate((String)list2.get(9)));
personPostEntity.setSenderName((String) list2.get(10));
personPostEntity.setSenderPhone((String) list2.get(11));
personPostEntity.setSenderAddress((String) list2.get(12));
personPostEntity.setRecipientName((String) list2.get(13));
personPostEntity.setRecipientPhone((String) list2.get(14));
personPostEntity.setRecipientAddress((String) list2.get(15));
personPostEntity.setOrderBlankNumber("");
personPostEntity.setGetToProvince((String) list2.get(17));
personPostEntity.setGetToCity((String) list2.get(18));
personPostEntity.setGetToCounty((String) list2.get(19));
personPostEntity.setBusinessType((String) list2.get(20));
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.setFileId(fileNameDicEntity.getFileId());
personPostEntity.setGk(gkMap);
}
personPostEntity.setBirthDate(replaceDate((String)list2.get(9)));
personPostEntity.setSenderName((String) list2.get(10));
personPostEntity.setSenderPhone((String) list2.get(11));
personPostEntity.setSenderAddress((String) list2.get(12));
personPostEntity.setRecipientName((String) list2.get(13));
personPostEntity.setRecipientPhone((String) list2.get(14));
personPostEntity.setRecipientAddress((String) list2.get(15));
personPostEntity.setOrderBlankNumber("");
personPostEntity.setGetToProvince((String) list2.get(17));
personPostEntity.setGetToCity((String) list2.get(18));
personPostEntity.setGetToCounty((String) list2.get(19));
personPostEntity.setBusinessType((String) list2.get(20));
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.setFileId(fileNameDicEntity.getFileId());
personPostEntity.setGk(gkMap);
entityList.add(personPostEntity);
}
personPostService.savePersonPost(entityList);
//查询导入新格口文件邮件号是否使用过
post= personPostService.findWaybillNumber(fileNameDicEntity.getFileId()+"");
backPost= personPostService.findBackWaybillNumber(fileNameDicEntity.getFileId()+"");
post = personPostService.findWaybillNumber(fileNameDicEntity.getFileId()+"");
if (!isGAT) backPost = personPostService.findBackWaybillNumber(fileNameDicEntity.getFileId()+"");
} catch (Exception e) {
e.printStackTrace();
logger.error("上传文件名:" + filename + "起始时间" + startDate + "截止时间" + endDate);
......
......@@ -27,16 +27,19 @@ import static com.yxproject.start.utils.YXStringUtils.stripNonDigits;
@RestController
@RequestMapping("ReceiptApi")
/**
* 交接单
/*
交接单
*/
public class ReceiptApi {
@Autowired
private ReceiptService receiptService;
private final ReceiptService receiptService;
Logger logger= Logger.getLogger(ReceiptApi.class);
public ReceiptApi(ReceiptService receiptService) {
this.receiptService = receiptService;
}
/**
* 生成交接单 快证保存ACCEPT_NO 普通证保存GROUP_NO
* @param id 证件ID
......@@ -159,10 +162,12 @@ public class ReceiptApi {
for (int i=0; i < receiptListDate.size(); i++) {
ReceiptListEntity receiptListEntity=new ReceiptListEntity();
Long card_type=Long.valueOf((BigDecimal) receiptListDate.get(i).get("CARD_TYPE") + "");
Long card_type = Long.valueOf(receiptListDate.get(i).get("CARD_TYPE") + "");
receiptListEntity.setCardTypeId(card_type);
String slh = receiptListDate.get(i).get("UPLOAD_NO").toString();
boolean ydss = YdssUtils.personIsYdss(slh);
boolean hk = YdssUtils.personIsHk(slh);
boolean tw = YdssUtils.personIsTw(slh);
//个人邮寄证,单位代码保存为北京市公安局
if(card_type == 9){
receiptListEntity.setPoliceCode("110001580800");
......
......@@ -46,6 +46,8 @@ public class queryPreproPerson {
int puSum = 0;
int yidishoushenpuSum = 0; //异地首申普
int yidishoushenyouSum = 0; //异地首申邮
int hkYSum = 0; //hk youji
int twYSum = 0; //tw youji
int invaildCount = 0;
for (Map<String, Object> map1 : preproPersonEntityList) {
if ("9".equals(map1.get("CARD_TYPE_ID") + "")) {
......@@ -55,6 +57,8 @@ public class queryPreproPerson {
}
if ("10".equals(map1.get("CARD_TYPE_ID") + "")) yidishoushenpuSum++;
if ("11".equals(map1.get("CARD_TYPE_ID") + "")) yidishoushenyouSum++;
if ("4".equals(map1.get("CARD_TYPE_ID") + "")) hkYSum++;
if ("6".equals(map1.get("CARD_TYPE_ID") + "")) twYSum++;
if ("0".equals(map1.get("IS_VALID") + "")) {
invaildCount++;
}
......@@ -64,6 +68,8 @@ public class queryPreproPerson {
map.put("puSum", puSum);
map.put("ydsspuSum", yidishoushenpuSum);
map.put("ydssyouSum", yidishoushenyouSum);
map.put("hkYSum", hkYSum);
map.put("twYSum", twYSum);
map.put("invaildCount", invaildCount);
} catch (Exception e) {
logger.error("oldFile:" + uploadNo + "公民身份号码:" + IDCard + "包号:" + oldFile + "文件名:" + newFile + "签发机关:" + SSXQDM + "制证类型代码(9邮寄0大批):" + cardType + "是否有效(1有效,0无效):" + state + "上传时间:" + replaceDate(uploadDate1) + replaceDate(uploadDate2) + "页数:" + currPage + "条数:" + pageSize + "生成时间:" + downloadState);
......
......@@ -39,20 +39,17 @@ public interface LogMapper {
public boolean changeCardType(@Param("printDate")String printDate,@Param("fileId")String fileId);
//TODO XML的时间+post的file_id
// @Update("UPDATE PREPRO_PERSON SET CARD_TYPE_ID =9 \n" +
// "WHERE JMSFZSLH in (\n" +
// "SELECT PREPRO_PERSON.JMSFZSLH \n" +
// "FROM PERSON_POST \n" +
// "LEFT JOIN PREPRO_PERSON ON PERSON_POST.FIRST_WHITE = PREPRO_PERSON.JMSFZSLH\n" +
// "LEFT JOIN FILES ON FILES.ID=PREPRO_PERSON.FILE_ID "+
// "WHERE (PERSON_POST.STATE1 = 3 OR PERSON_POST.STATE1 = 0) " +
// "AND PERSON_POST.BIRTH_DATE = PREPRO_PERSON.CSRQ " +
// "AND TO_CHAR(FILES.UPLOAD_DATE,'yyyy-mm-dd hh24:mi:ss')=#{printDate} )")
// public boolean changeCardTypeByPrintDate(@Param("printDate")String printDate);
/**
* 按xml日期更改卡片类型
* 本地受理和港澳台相应的修改制证类型
* @param printDate 打印日期
* @return boolean
*///TODO XML的时间+post的file_id
@Update("UPDATE PREPRO_PERSON SET CARD_TYPE_ID = CASE " +
" WHEN CARD_TYPE_ID = 0 THEN 9 " +
" WHEN CARD_TYPE_ID = 10 THEN 11 " +
" WHEN CARD_TYPE_ID = 5 THEN 4 " +
" WHEN CARD_TYPE_ID = 7 THEN 6 " +
" ELSE CARD_TYPE_ID " +
" END \n" +
"WHERE JMSFZSLH in (\n" +
......@@ -63,11 +60,17 @@ public interface LogMapper {
"WHERE (PERSON_POST.STATE1 = 3 OR PERSON_POST.STATE1 = 0) " +
"AND PERSON_POST.BIRTH_DATE = PREPRO_PERSON.CSRQ " +
"AND TO_CHAR(FILES.UPLOAD_DATE,'yyyy-mm-dd hh24:mi:ss')=#{printDate} )")
public boolean changeCardTypeByPrintDate(@Param("printDate")String printDate);
boolean changeCardTypeByPrintDate(@Param("printDate") String printDate); // STATE1 = 3 待定;STATE1 = 0 正常邮寄
@Update(" update FILE_NAME_DIC set FILE_NAME_DIC.ANALYSIS_DATE = #{printDate} where file_id=#{fileId} ")
public boolean insertAnalysisDate(@Param("printDate")String printDate,@Param("fileId")String fileId);
/**
* 按xml日期更新格口文件的分析日期
*
* @param analysisDate 分析日期
* @param printDate 打印日期
*/
@Update(" update FILE_NAME_DIC set FILE_NAME_DIC.ANALYSIS_DATE = #{analysisDate},STATE = 1 " +
" where file_id IN (SELECT DISTINCT PERSON_POST.file_id FROM PERSON_POST " +
" LEFT JOIN PREPRO_PERSON ON PERSON_POST.FIRST_WHITE = PREPRO_PERSON.JMSFZSLH " +
......@@ -75,7 +78,7 @@ public interface LogMapper {
" WHERE PERSON_POST.BIRTH_DATE = PREPRO_PERSON.CSRQ" +
" AND PERSON_POST.STATE1=3 " +
" AND TO_CHAR(FILES.UPLOAD_DATE,'yyyy-mm-dd hh24:mi:ss')=#{printDate} ) ")
public boolean insertAnalysisDateByPrintDate(@Param("analysisDate")String analysisDate,@Param("printDate")String printDate);
void insertAnalysisDateByPrintDate(@Param("analysisDate") String analysisDate, @Param("printDate") String printDate);
/**
* 生成解析表
......@@ -224,9 +227,15 @@ public interface LogMapper {
"WHERE PERSON_POST.STATE1=3 \n" +
"AND PERSON_POST.BIRTH_DATE = PREPRO_PERSON.CSRQ \n" +
"and TO_CHAR(FILES.UPLOAD_DATE,'yyyy-mm-dd hh24:mi:ss')=#{uploadDate}")
public List<Map<String, Object>> selectPersonPostUnanalysis(@Param("uploadDate")String uploadDate);
List<Map<String, Object>> selectPersonPostUnanalysis(@Param("uploadDate") String uploadDate);
/**
* 查询出生日期不匹配的无效Person
*
* @param uploadDate xml日期
* @return {@link List }<{@link Map }<{@link String }, {@link Object }>>
*/
@Select("select DISTINCT PREPRO_PERSON.JMSFZSLH,PREPRO_PERSON.XM,PREPRO_PERSON.CSRQ \n" +
"FROM PERSON_POST " +
"LEFT JOIN PREPRO_PERSON ON PERSON_POST.FIRST_WHITE = PREPRO_PERSON.JMSFZSLH \n" +
......@@ -234,12 +243,12 @@ public interface LogMapper {
"WHERE PERSON_POST.STATE1=3 \n" +
"AND PERSON_POST.BIRTH_DATE <> PREPRO_PERSON.CSRQ \n" +
"and TO_CHAR(FILES.UPLOAD_DATE,'yyyy-mm-dd hh24:mi:ss')=#{uploadDate}")
public List<Map<String, Object>> selectInvalidPersonPost(@Param("uploadDate")String uploadDate);
List<Map<String, Object>> selectInvalidPersonPost(@Param("uploadDate") String uploadDate);
//身份数据插入person_post
@Update("UPDATE PERSON_POST SET ID_CARD=#{cardId},ACCEPT_THE_MATTER=#{issuing},BEGIN_USEFUL_LIFE=#{beginDate},VALID_PERIOD_END=#{endDate},STATE1=0 where PERSON_POST.FIRST_WHITE=#{firstWhite}")
public boolean insertIdData(@Param("cardId")String cardId,@Param("issuing") String issuing,@Param("beginDate")String beginDate,@Param("endDate")String endDate,@Param("firstWhite")String firstWhite );
void insertIdData(@Param("cardId") String cardId, @Param("issuing") String issuing, @Param("beginDate") String beginDate, @Param("endDate") String endDate, @Param("firstWhite") String firstWhite);
/**
* 解析时更改Excel文件状态
......@@ -262,7 +271,7 @@ public interface LogMapper {
@Select("SELECT COUNT(*) FROM PERSON_POST LEFT JOIN PREPRO_PERSON ON PERSON_POST.FIRST_WHITE = PREPRO_PERSON.JMSFZSLH " +
"WHERE PERSON_POST.FILE_ID = #{gkId} AND PREPRO_PERSON.FILE_ID = #{xmlId}")
public String selectPostCountByXmlidAndGkid(@Param("xmlId")String xmlId,@Param("gkId") String gkId);
String selectPostCountByXmlidAndGkid(@Param("xmlId") String xmlId, @Param("gkId") String gkId);
@Update("UPDATE FILE_NAME_DIC SET STATE = 1 WHERE FILE_ID =#{gkId} ")
......
......@@ -13,7 +13,7 @@ import java.util.List;
*/
public interface ImportXmlService {
public boolean importPersonXml( List<PreproPersonDto> preproPersonDtos, FilesEntity filesEntity);
public List<CountDataEntity> queryPersonXml(String importDate, long maxNum, long minNum);
public int queryPersonXmlCount(String importDate);
boolean importPersonXml(List<PreproPersonDto> preproPersonDtos, FilesEntity filesEntity);
List<CountDataEntity> queryPersonXml(String importDate, long maxNum, long minNum);
int queryPersonXmlCount(String importDate);
}
......@@ -36,7 +36,7 @@ public interface LogService {
public boolean insertIntoAnalysis(@Param("fileDic")String fileDic,@Param("fileId")String fileId,@Param("commonCardCount")String commonCardCount,@Param("postCardCount")String postCardCount,@Param("analysisDate")String analysisDate);
public List<Map<String,Object>> selectFileIdByUploadDate(@Param("uploadDate")String uploadDate);
List<Map<String,Object>> selectFileIdByUploadDate(@Param("uploadDate") String uploadDate);
public Map<String,Object> selectFileNameDic(@Param("fileId")String fileId);
......@@ -48,17 +48,17 @@ public interface LogService {
public List<Map<String,Object>> selectIdData(@Param("fileId")String fileId);
public List<Map<String,Object>> selectPersonPostUnanalysis(@Param("uploadDate")String uploadDate);
List<Map<String,Object>> selectPersonPostUnanalysis(@Param("uploadDate") String uploadDate);
public List<Map<String,Object>> selectInvalidPersonPost(@Param("uploadDate")String uploadDate);
List<Map<String,Object>> selectInvalidPersonPost(@Param("uploadDate") String uploadDate);
public boolean insertIdData(String cardId, String issuing,String beginDate,String endDate,String firstWhite );
void insertIdData(String cardId, String issuing, String beginDate, String endDate, String firstWhite);
public boolean updateNullIdDate(String fileId );
public boolean updateGKState(String gkId);
public String selectPostCountByXmlidAndGkid(String xmlId,String gkId);
String selectPostCountByXmlidAndGkid(String xmlId, String gkId);
public boolean checkNewExcelUnresolved();
......
......@@ -96,6 +96,12 @@ public class ImportXmlServiceImpl implements ImportXmlService {
if (personIsYdss(preproPersonDto.getJmsfzslh())) {
preproPersonDto.setCardTypeId(10L);
}
if (personIsHk(preproPersonDto.getJmsfzslh())) {
preproPersonDto.setCardTypeId(5L);
}
if (personIsTw(preproPersonDto.getJmsfzslh())) {
preproPersonDto.setCardTypeId(7L);
}
boolean b = preproPersonMapper.savePreproPersonEntity(preproPersonDto);
if (!b){
logger.error(preproPersonDto.getFileId()+"存儲失敗!");
......@@ -130,4 +136,22 @@ public class ImportXmlServiceImpl implements ImportXmlService {
protected boolean personIsYdss(String jmsfzslh) {
return jmsfzslh.charAt(jmsfzslh.length() - 5) == '9';
}
/**
* 从受理号判断是否为港澳证 受理号倒数第5位为6
* @param jmsfzslh 受理号
* @return true 是异地首申
*/
protected boolean personIsHk(String jmsfzslh) {
return jmsfzslh.charAt(jmsfzslh.length() - 5) == '6';
}
/**
* 从受理号判断是否为台湾证 受理号倒数第5位为7
* @param jmsfzslh 受理号
* @return true 是异地首申
*/
protected boolean personIsTw(String jmsfzslh) {
return jmsfzslh.charAt(jmsfzslh.length() - 5) == '7';
}
}
......@@ -5,13 +5,10 @@ import com.yxproject.start.entity.PreproPersonEntity;
import com.yxproject.start.mapper.LogMapper;
import com.yxproject.start.mapper.PreproPersonMapper;
import com.yxproject.start.service.LogService;
import com.yxproject.start.service.SelectSerialNumberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.xml.crypto.Data;
import java.io.File;
import java.util.Date;
import java.util.List;
import java.util.Map;
@Service
......@@ -72,6 +69,13 @@ public class LogServiceImpl implements LogService {
return true;
}
/**
* 按打印日期更改卡片类型
*
* @param analysisDate 分析日期
* @param printDate 打印日期
* @return boolean
*/
@Override
public boolean changeCardTypeByPrintDate(String analysisDate, String printDate) {
logMapper.changeCardTypeByPrintDate(printDate);
......@@ -118,8 +122,7 @@ public class LogServiceImpl implements LogService {
@Override
public List<Map<String,Object>> selectFileIdByUploadDate(String uploadDate) {
List<Map<String,Object>> result= logMapper.selectFileIdByUploadDate(uploadDate);
return result;
return logMapper.selectFileIdByUploadDate(uploadDate);
}
@Override
......@@ -163,9 +166,8 @@ public class LogServiceImpl implements LogService {
}
@Override
public boolean insertIdData(String cardId, String issuing, String beginDate, String endDate,String firstWhite) {
public void insertIdData(String cardId, String issuing, String beginDate, String endDate, String firstWhite) {
logMapper.insertIdData(cardId,issuing,beginDate,endDate,firstWhite);
return true;
}
@Override
......
......@@ -6,10 +6,6 @@ import org.dom4j.io.XMLWriter;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.net.URLEncoder;
import java.io.*;
import java.io.IOException;
......@@ -46,6 +42,12 @@ public class YXStringUtils {
return str;
}
/**
* 获取当前日期字符串
*
* @param pattern 格式
* @return {@link String }
*/
public static String getCurrentDate2String(String pattern) {
SimpleDateFormat dt = new SimpleDateFormat(pattern);
return dt.format(new Date());
......
......@@ -10,4 +10,22 @@ public class YdssUtils {
public static boolean personIsYdss(String jmsfzslh) {
return jmsfzslh.charAt(jmsfzslh.length() - 5) == '9';
}
/**
* 从受理号判断是否为异地首申 受理号倒数第5位为9
* @param jmsfzslh 受理号
* @return true 是异地首申
*/
public static boolean personIsHk(String jmsfzslh) {
return jmsfzslh.charAt(jmsfzslh.length() - 5) == '6';
}
/**
* 从受理号判断是否为异地首申 受理号倒数第5位为9
* @param jmsfzslh 受理号
* @return true 是异地首申
*/
public static boolean personIsTw(String jmsfzslh) {
return jmsfzslh.charAt(jmsfzslh.length() - 5) == '7';
}
}
......@@ -112,7 +112,13 @@
(<span style="color:#0b93d5;">每页显示{{paginationConf.itemsPerPage}}条/共
{{paginationConf.totalItems}}条</span>)
<div class="pull-right">
<span style="color:#9f191f;"><span style="margin-right: 15px;">普通证:{{simpleCardCount}}</span><span style="margin-right: 15px;">邮寄证:{{postCardCount}}</span><span style="margin-right: 15px;">异地首申普:{{ydSsSimpleCount}}</span><span style="margin-right: 15px;">异地首申邮:{{ydSsPostCount}}</span><span style="margin-right: 15px;">禁用数:{{forbiddenCount}}</span></span>
<span style="color:#9f191f;">
<span style="margin-right: 15px;">普通证:{{simpleCardCount}}</span>
<span style="margin-right: 15px;">邮寄证:{{postCardCount}}</span>
<span style="margin-right: 15px;">异地首申普:{{ydSsSimpleCount}}</span>
<span style="margin-right: 15px;">港澳速递:{{hkCount}}</span>
<span style="margin-right: 15px;">台湾速递:{{twCount}}</span>
<span style="margin-right: 15px;">禁用数:{{forbiddenCount}}</span></span>
</div>
</div>
<div class="box-info" style="padding: 7px; padding-top: 0px;">
......
......@@ -97,6 +97,8 @@ angular.module('AvatarCheck.cardProdPackage', ['ngRoute', 'AvatarCheck.http', 't
$scope.postCardCount = data.youSum;
$scope.ydSsSimpleCount = data.ydsspuSum;
$scope.ydSsPostCount = data.ydssyouSum;
$scope.hkCount = data.hkYSum;
$scope.twCount = data.twYSum;
$scope.forbiddenCount= data.invaildCount;
$scope.packageData = data.list;
console.log(data)
......
columns 0: 订单号
columns 1: 产品分类
columns 2: 产品名称
columns 3: 服务网点
columns 4: 订单状态
columns 5: 配送方式
columns 6: 订单渠道
columns 7: 支付方式
columns 8: 邮费金额
columns 9: 服务费
columns 10: 保价费
columns 11: 邮费退款额
columns 12: 服务费退款额
columns 13: 保价费退款额
columns 14: 下单支付时间
columns 15: 尾款支付时间
columns 16: 运单类型
columns 17: 邮件号
columns 18: 寄件人
columns 19: 寄件人手机
columns 20: 寄件省
columns 21: 寄件市
columns 22: 寄件区
columns 23: 寄件人街道地址
columns 24: 收件人
columns 25: 收件人手机
columns 26: 收件省
columns 27: 收件市
columns 28: 收件区
columns 29: 收件人街道地址
columns 30: 创建时间
columns 31: 邮件号录入时间
columns 32: 物品名称
columns 33: 物品重量(g)
columns 34: 物品数量
columns 35: 派揽单号
columns 36: 派揽状态
columns 37: 派揽失败原因
columns 38: 派揽发起时间
columns 39: 完成时间
columns 40: 提货人
columns 41: 提货人电话
columns 42: 提货时间
columns 43: 邮件打印次数
columns 44: 邮件最近打印时间
columns 45: 受理机构
columns 46: 受理号
columns 47: 办证人姓名
columns 48: 出生日期
columns 49: 手机号
\ No newline at end of file
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