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>
......
......@@ -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);
}
}
......
......@@ -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