Bladeren bron

1、新增类型19,未与算法对接版。

jessie 5 jaren geleden
bovenliggende
commit
2928158f0b

+ 55 - 0
src/main/java/com/pavis/ai/app/fjsocrasy/common/utils/ocr/ParseUtils.java

@@ -11,6 +11,7 @@ import com.pavis.ai.app.fjsocrasy.form.five.CreditLoanUseContract;
 import com.pavis.ai.app.fjsocrasy.form.four.CreditConfirmationLetter;
 import com.pavis.ai.app.fjsocrasy.form.fourteen.EnjoyLoanApplicationForm;
 import com.pavis.ai.app.fjsocrasy.form.nine.EnjoyLoansConfirm;
+import com.pavis.ai.app.fjsocrasy.form.nineteen.IncomeProof;
 import com.pavis.ai.app.fjsocrasy.form.one.PciiAuth;
 import com.pavis.ai.app.fjsocrasy.form.res.BackData;
 import com.pavis.ai.app.fjsocrasy.form.res.ResData;
@@ -113,6 +114,11 @@ public class ParseUtils {
                     // 待开发
                     resData = newCreditContractRes(reqId, templateType, sourceData, ocrData, matchRes);
                     break;
+                case "19":
+                    // case "5":
+                    // 待开发
+                    resData = incomeProofRes(reqId, templateType, sourceData, ocrData, matchRes);
+                    break;
                 default:
                     // 待开发
             }
@@ -1180,6 +1186,55 @@ public class ParseUtils {
         return map;
     }
 
+
+    /**
+     * 19.收入证明。
+     *
+     * @param reqId
+     * @param templateType
+     * @param sourceData
+     * @param ocrData
+     * @param matchRes
+     * @return
+     */
+    public static ResData<IncomeProof> incomeProofRes(String reqId, String templateType, JSONObject sourceData, JSONObject ocrData, JSONObject matchRes) {
+        log.info("ocr-match res 16:{}" , JSON.toJSONString(matchRes));
+        if (matchRes.get("code").toString().equals("1")) {
+            IncomeProof incomeProof = JSONObject.parseObject(JSON.toJSONString(
+                    JSON.parseObject(matchRes.get("data").toString()).get(templateType)), IncomeProof.class);
+            ResData<IncomeProof> resData = new ResData<>();
+            resData.setRes(incomeProof);
+            resData = parseResData(resData,reqId,templateType,matchRes);
+            return resData;
+        } else {
+            Map<String, Object> map = letterOfCreditAndLeEnjoyLoanCommitmentResTallMap(ocrData, sourceData,matchRes);
+            if (null != map && map.containsKey("name")) {
+                IncomeProof incomeProof = JSONObject.parseObject(JSON.toJSONString(map), IncomeProof.class);
+                ResData<IncomeProof> resData = new ResData<>();
+                resData.setRes(incomeProof);
+                resData = parseResData(resData,reqId,templateType,matchRes);
+                return resData;
+            }
+        }
+        return new ResData<>();
+    }
+
+    /**
+     * 19、字段相同调用公共部分。
+     * @param ocrData
+     * @param sourceData
+     * @return
+     */
+    public static Map<String, Object> incomeProofResTallMap(JSONObject ocrData, JSONObject sourceData,JSONObject matchRes) {
+        Map<String, Object> map = new HashMap<>();
+        String idCode = checkOcrData(ocrData,"idCode");
+        idCode = StringUtils.isEmpty(idCode) ? idCode : GeneralUtils.checkIdCode(idCode);
+        map.put("idCode", compare(idCode, checkSourceData(sourceData,"idCode"),matchRes));
+        String name = checkOcrData(ocrData,"name");
+        map.put("name", compare(name, checkSourceData(sourceData,"name"),matchRes));
+        return map;
+    }
+
     // public static Map<String, Object> leEnjoyLoanCommitmentLetterResTallMap(JSONObject ocrData, JSONObject sourceData,JSONObject matchRes) {
     //     Map<String, Object> map = new HashMap<>();
     //     String name = checkOcrData(ocrData,"name");

+ 22 - 0
src/main/java/com/pavis/ai/app/fjsocrasy/form/nineteen/IncomeProof.java

@@ -0,0 +1,22 @@
+package com.pavis.ai.app.fjsocrasy.form.nineteen;
+
+import com.pavis.ai.app.fjsocrasy.form.res.BackData;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+/**
+ * @author guanhuijuan
+ * @create 2020-03-05 13:33
+ * @desc 9.收入证明
+ **/
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class IncomeProof {
+    @ApiModelProperty(value="确认姓名")
+    private BackData name;
+    @ApiModelProperty(value="确认身份证号")
+    private BackData idCode;
+}

+ 23 - 0
src/main/java/com/pavis/ai/app/fjsocrasy/form/nineteen/LinkNineTeen.java

@@ -0,0 +1,23 @@
+package com.pavis.ai.app.fjsocrasy.form.nineteen;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ * @author guanhuijuan
+ * @create 2020-03-05 13:33
+ * @desc 9.收入证明
+ **/
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class LinkNineTeen extends NineTeen{
+    private String reqId;
+    public LinkNineTeen(String name, String idCode, String compareDate) {
+        super(name, idCode, compareDate);
+        this.reqId = reqId;
+    }
+}

+ 21 - 0
src/main/java/com/pavis/ai/app/fjsocrasy/form/nineteen/LinkOcrNineTeen.java

@@ -0,0 +1,21 @@
+package com.pavis.ai.app.fjsocrasy.form.nineteen;
+
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+/**
+ * @author guanhuijuan
+ * @create 2020-03-05 13:33
+ * @desc 9.收入证明
+ **/
+@Getter
+@Setter
+@NoArgsConstructor
+public class LinkOcrNineTeen extends NineTeen{
+    private String reqId;
+    public LinkOcrNineTeen(String name, String idCode,String compareDate) {
+        super(name, idCode, compareDate);
+        this.reqId = reqId;
+    }
+}

+ 21 - 0
src/main/java/com/pavis/ai/app/fjsocrasy/form/nineteen/MidNineTeen.java

@@ -0,0 +1,21 @@
+package com.pavis.ai.app.fjsocrasy.form.nineteen;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+/**
+ * @author guanhuijuan
+ * @create 2020-03-05 13:33
+ * @desc 9.收入证明
+ **/
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class MidNineTeen {
+    @ApiModelProperty(value="确认姓名")
+    private String name;
+    @ApiModelProperty(value="确认身份证号")
+    private String idCode;
+}

+ 26 - 0
src/main/java/com/pavis/ai/app/fjsocrasy/form/nineteen/NineTeen.java

@@ -0,0 +1,26 @@
+package com.pavis.ai.app.fjsocrasy.form.nineteen;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+/**
+ * @author guanhuijuan
+ * @create 2020-03-05 13:33
+ * @desc 9.收入证明
+ **/
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class NineTeen {
+    @ApiModelProperty(value="姓名")
+    private String name;
+    @ApiModelProperty(value="身份证号")
+    private String idCode;
+    /**
+     * 日期签名肯定在 compareDate~当前日期 之间
+     */
+    @ApiModelProperty(value="对比日期")
+    private String compareDate;
+}

+ 15 - 0
src/main/java/com/pavis/ai/app/fjsocrasy/mapper/ContractNineTeenBackMapper.java

@@ -0,0 +1,15 @@
+package com.pavis.ai.app.fjsocrasy.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.pavis.ai.app.fjsocrasy.model.ContractNineTeenBack;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author guanhuijuan
+ * @create 2020-03-09 12:37
+ * @desc ContractNineBackMapper
+ **/
+@Component
+public interface ContractNineTeenBackMapper extends BaseMapper<ContractNineTeenBack> {
+    
+}

+ 15 - 0
src/main/java/com/pavis/ai/app/fjsocrasy/mapper/ContractNineTeenMapper.java

@@ -0,0 +1,15 @@
+package com.pavis.ai.app.fjsocrasy.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.pavis.ai.app.fjsocrasy.model.ContractNineTeen;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author guanhuijuan
+ * @create 2020-03-09 12:37
+ * @desc ContractNineMapper
+ **/
+@Component
+public interface ContractNineTeenMapper extends BaseMapper<ContractNineTeen> {
+    
+}

+ 29 - 0
src/main/java/com/pavis/ai/app/fjsocrasy/model/ContractNineTeen.java

@@ -0,0 +1,29 @@
+package com.pavis.ai.app.fjsocrasy.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+/**
+ * @author guanhuijuan
+ * @create 2020-03-05 13:33
+ * @desc 收入证明
+ **/
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class ContractNineTeen {
+    @TableId(type = IdType.ID_WORKER_STR)
+    private String id;
+    private String reqId;
+    private String name;
+    private String idCode;
+    private String compareDate;
+    private String operator;
+    private String operatorId;
+    private String operateTime;
+    private String operateIp;
+    private String remarks;
+}

+ 31 - 0
src/main/java/com/pavis/ai/app/fjsocrasy/model/ContractNineTeenBack.java

@@ -0,0 +1,31 @@
+package com.pavis.ai.app.fjsocrasy.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+/**
+ * @author guanhuijuan
+ * @create 2020-03-05 13:33
+ * @desc 收入证明
+ **/
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class ContractNineTeenBack {
+    @TableId(type = IdType.ID_WORKER_STR)
+    private String id;
+    private String reqId;
+    private String name;
+    private String idCode;
+    private String operator;
+    private String operatorId;
+    private String operateTime;
+    private String operateIp;
+    private String remarks;
+    private String overallConfidence;
+    private String midConfidence;
+    private String excTime;
+}

+ 12 - 2
src/main/java/com/pavis/ai/app/fjsocrasy/service/impl/BackServiceImpl.java

@@ -12,6 +12,7 @@ import com.pavis.ai.app.fjsocrasy.form.five.CreditLoanUseContract;
 import com.pavis.ai.app.fjsocrasy.form.four.CreditConfirmationLetter;
 import com.pavis.ai.app.fjsocrasy.form.fourteen.EnjoyLoanApplicationForm;
 import com.pavis.ai.app.fjsocrasy.form.nine.EnjoyLoansConfirm;
+import com.pavis.ai.app.fjsocrasy.form.nineteen.IncomeProof;
 import com.pavis.ai.app.fjsocrasy.form.one.PciiAuth;
 import com.pavis.ai.app.fjsocrasy.form.res.BackData;
 import com.pavis.ai.app.fjsocrasy.form.res.ResData;
@@ -26,11 +27,9 @@ import com.pavis.ai.app.fjsocrasy.form.twelve.PersonalInfoUseAuthorization;
 import com.pavis.ai.app.fjsocrasy.form.two.LoanApplicationForm;
 import com.pavis.ai.app.fjsocrasy.service.BackService;
 import com.pavis.ai.app.fjsocrasy.service.EternalSendService;
-import com.pavis.ai.app.fjsocrasy.service.OcrService;
 import com.pavis.ai.app.fjsocrasy.service.UploadService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -370,6 +369,17 @@ public class BackServiceImpl implements BackService {
                     resData.setOverallConfidence("2");
                     resData.setMidConfidence("2");
                     break;
+                case "19":
+                    // 待开发
+                    IncomeProof incomeProof = new IncomeProof(new BackData("", "", "",
+                            "0"),new BackData("", "", "",
+                            "0"));
+                    resData.setReqId(reqId);
+                    resData.setType(templateType);
+                    resData.setRes(incomeProof);
+                    resData.setOverallConfidence("2");
+                    resData.setMidConfidence("2");
+                    break;
                 default:
                     // 待开发
             }

+ 108 - 10
src/main/java/com/pavis/ai/app/fjsocrasy/service/impl/UploadServiceImpl.java

@@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.pavis.ai.app.fjsocrasy.common.config.constants.Constants;
 import com.pavis.ai.app.fjsocrasy.common.config.properties.CommonProperties;
 import com.pavis.ai.app.fjsocrasy.common.utils.DateUtils;
 import com.pavis.ai.app.fjsocrasy.common.utils.IgnoreUtils;
@@ -27,6 +26,7 @@ import com.pavis.ai.app.fjsocrasy.form.fourteen.LinkFourteen;
 import com.pavis.ai.app.fjsocrasy.form.fourteen.LinkOcrFourteen;
 import com.pavis.ai.app.fjsocrasy.form.fourteen.MidFourteen;
 import com.pavis.ai.app.fjsocrasy.form.nine.*;
+import com.pavis.ai.app.fjsocrasy.form.nineteen.*;
 import com.pavis.ai.app.fjsocrasy.form.one.*;
 import com.pavis.ai.app.fjsocrasy.form.res.ResData;
 import com.pavis.ai.app.fjsocrasy.form.seven.*;
@@ -58,14 +58,13 @@ import com.pavis.ai.app.fjsocrasy.form.two.LoanApplicationForm;
 import com.pavis.ai.app.fjsocrasy.form.two.MidTwo;
 import com.pavis.ai.app.fjsocrasy.mapper.*;
 import com.pavis.ai.app.fjsocrasy.model.*;
-import com.pavis.ai.app.fjsocrasy.service.*;
+import com.pavis.ai.app.fjsocrasy.service.OtherService;
+import com.pavis.ai.app.fjsocrasy.service.RecommendInfoService;
+import com.pavis.ai.app.fjsocrasy.service.UploadService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
-import org.springframework.amqp.rabbit.connection.CorrelationData;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
@@ -110,6 +109,7 @@ public class UploadServiceImpl implements UploadService {
     private static final String TYPE_SIXTEEN = "16";
     private static final String TYPE_SEVENTEEN = "17";
     private static final String TYPE_EIGHTEEN = "18";
+    private static final String TYPE_NINETEEN = "19";
 
     @Autowired
     private UploadMapper uploadMapper;
@@ -222,6 +222,12 @@ public class UploadServiceImpl implements UploadService {
     @Autowired
     private ContractEighteenBackMapper contractEighteenBackMapper;
 
+    @Autowired
+    private ContractNineTeenMapper contractNineTeenMapper;
+
+    @Autowired
+    private ContractNineTeenBackMapper contractNineTeenBackMapper;
+
     @Autowired
     private RecommendInfoService recommendInfoService;
 
@@ -438,6 +444,14 @@ public class UploadServiceImpl implements UploadService {
                     contractEighteenMapper.updateById(contractEighteen);
                 }
                 break;
+            case "19":
+                List<ContractNineTeen> contractNineTeens = contractNineTeenMapper.selectList(queryWrapper);
+                if (contractNineTeens.size() > 0) {
+                    ContractNineTeen contractNineTeen = contractNineTeens.get(0);
+                    contractNineTeen.setOperator(ocrMap);
+                    contractNineTeenMapper.updateById(contractNineTeen);
+                }
+                break;
         }
     }
 
@@ -943,6 +957,23 @@ public class UploadServiceImpl implements UploadService {
                         .build();
                 contractEighteenBackMapper.insert(contractEighteenBack);
                 break;
+            case "19":
+                IncomeProof incomeProof = (IncomeProof) resData.getRes();
+                ContractNineTeenBack contractNineTeenBack = ContractNineTeenBack.builder()
+                        .reqId(resData.getReqId())
+                        .name(incomeProof.getName().getOcrRes())
+                        .idCode(incomeProof.getIdCode().getOcrRes())
+                        .operator(JSON.toJSONString(resData))
+                        .operatorId("")
+                        .operateIp("")
+                        .operateTime(DateUtils.now())
+                        .remarks(ocrData)
+                        .overallConfidence(resData.getOverallConfidence())
+                        .midConfidence(resData.getMidConfidence())
+                        .excTime(DateUtils.getExcTime(startTime, endTime))
+                        .build();
+                contractNineTeenBackMapper.insert(contractNineTeenBack);
+                break;
             default:
         }
     }
@@ -1498,6 +1529,27 @@ public class UploadServiceImpl implements UploadService {
                 System.err.println(JSON.toJSONString(contractEighteen));
                 saveId = contractEighteenMapper.insert(contractEighteen);
                 break;
+            case "19":
+                ContractNineTeen contractNineTeen;
+                if (null != data) {
+                    NineTeen nineTeen = JSONObject.parseObject(data.toJSONString(), NineTeen.class);
+                    contractNineTeen = new ContractNineTeen();
+                    BeanUtils.copyProperties(nineTeen, contractNineTeen);
+                    contractNineTeen.setReqId(reqId);
+                    contractNineTeen.setName("");
+                    contractNineTeen.setIdCode("");
+                    contractNineTeen.setOperator("");
+                    contractNineTeen.setOperatorId("");
+                    contractNineTeen.setOperateIp("");
+                    contractNineTeen.setOperateTime(DateUtils.now());
+                    contractNineTeen.setRemarks(excTime);
+                } else {
+                    contractNineTeen = new ContractNineTeen();
+                }
+                resData.setRes(contractNineTeen);
+                System.err.println(JSON.toJSONString(contractNineTeen));
+                saveId = contractNineTeenMapper.insert(contractNineTeen);
+                break;
             default:
         }
         return saveId;
@@ -1881,6 +1933,24 @@ public class UploadServiceImpl implements UploadService {
                                         midEighteen : midEighteen : midEighteen : midEighteen : midEighteen
                 );
                 break;
+            case TYPE_NINETEEN:
+                // 待开发
+                List<ContractNineTeenBack> nineTeens = contractNineTeenBackMapper.selectList(query(reqIdVal));
+                if (nineTeens.size() > 0) {
+                    js = JSON.parseObject(nineTeens.get(0).getRemarks());
+                }
+                MidNineTeen midNineTeen = new MidNineTeen("", "");
+                midOcr.add(
+                        nineTeens.size() > 0 ? null != js ? js.containsKey("code") ? js.get("code").toString().equals("1") ?
+                                js.containsKey("data") ? JSONObject.parseObject(JSON.toJSONString(js.get("data")), MidNineTeen.class) :
+                                        midNineTeen : midNineTeen : midNineTeen : midNineTeen : midNineTeen
+                );
+                midOcr.add(
+                        nineTeens.size() > 0 ? null != js ? js.containsKey("code") ? js.get("code").toString().equals("1") ?
+                                js.containsKey("data") ? JSONObject.parseObject(JSON.toJSONString(js.get("acc_json")), MidNineTeen.class) :
+                                        midNineTeen : midNineTeen : midNineTeen : midNineTeen : midNineTeen
+                );
+                break;
             default:
         }
         return midOcr;
@@ -1925,6 +1995,7 @@ public class UploadServiceImpl implements UploadService {
         List<ContractSixteen> sixteenSourceList = foundAssociate(TYPE_SIXTEEN, reqId, "0");
         List<ContractSeventeen> seventeenSourceList = foundAssociate(TYPE_SEVENTEEN, reqId, "0");
         List<ContractEighteen> eighteenSourceList = foundAssociate(TYPE_EIGHTEEN, reqId, "0");
+        List<ContractNineTeen> nineteenSourceList = foundAssociate(TYPE_NINETEEN, reqId, "0");
 
         List<ContractOneBack> oneOcrList = foundAssociate(TYPE_ONE, reqId, "1");
         List<ContractTwoBack> twoOcrList = foundAssociate(TYPE_TWO, reqId, "1");
@@ -1944,18 +2015,19 @@ public class UploadServiceImpl implements UploadService {
         List<ContractSixteenBack> sixteenOcrList = foundAssociate(TYPE_SIXTEEN, reqId, "1");
         List<ContractSeventeenBack> seventeenOcrList = foundAssociate(TYPE_SEVENTEEN, reqId, "1");
         List<ContractEighteenBack> eighteenOcrList = foundAssociate(TYPE_EIGHTEEN, reqId, "1");
+        List<ContractNineTeenBack> nineteenOcrList = foundAssociate(TYPE_NINETEEN, reqId, "1");
 
         Map<String, Object> sourceMap = sourceMap(oneSourceList, twoSourceList, threeSourceList, fourSourceList, fiveSourceList, sixSourceList,
                 sevenSourceList, eightSourceList, nineSourceList, tenSourceList, elevenSourceList, twelveSourceList, thirteenSourceList,
-                fourteenSourceList, fifteenSourceList, sixteenSourceList, seventeenSourceList,eighteenSourceList);
+                fourteenSourceList, fifteenSourceList, sixteenSourceList, seventeenSourceList,eighteenSourceList,nineteenSourceList);
 
         Map<String, Object> ocrMap = ocrMap(oneOcrList, twoOcrList, threeOcrList, fourOcrList, fiveOcrList, sixOcrList,
                 sevenOcrList, eightOcrList, nineOcrList, tenOcrList, elevenOcrList, twelveOcrList, thirteenOcrList, fourteenOcrList,
-                fifteenOcrList, sixteenOcrList, seventeenOcrList,eighteenOcrList, true, ocr, fileType);
+                fifteenOcrList, sixteenOcrList, seventeenOcrList,eighteenOcrList,nineteenOcrList, true, ocr, fileType);
 
         Map<String, Object> accMap = ocrMap(oneOcrList, twoOcrList, threeOcrList, fourOcrList, fiveOcrList, sixOcrList,
                 sevenOcrList, eightOcrList, nineOcrList, tenOcrList, elevenOcrList, twelveOcrList, thirteenOcrList, fourteenOcrList,
-                fifteenOcrList, sixteenOcrList, seventeenOcrList,eighteenOcrList, false, ocr, fileType);
+                fifteenOcrList, sixteenOcrList, seventeenOcrList,eighteenOcrList,nineteenOcrList, false, ocr, fileType);
 
         // 20200525 新增filetype。
         List<String> types = new ArrayList<>();
@@ -2065,6 +2137,11 @@ public class UploadServiceImpl implements UploadService {
                 sourceLists = contractEighteenMapper.selectList(query(reqIdVal));
                 ocrLists = contractEighteenBackMapper.selectList(query(reqIdVal));
                 break;
+            case TYPE_NINETEEN:
+                // 待开发
+                sourceLists = contractNineTeenMapper.selectList(query(reqIdVal));
+                ocrLists = contractNineTeenBackMapper.selectList(query(reqIdVal));
+                break;
             default:
                 // 待开发
         }
@@ -2167,6 +2244,10 @@ public class UploadServiceImpl implements UploadService {
                         "","","");
                 list.add(eighteen);
                 break;
+            case TYPE_NINETEEN:
+                LinkNineTeen nineTeen = new LinkNineTeen("", "", "");
+                list.add(nineTeen);
+                break;
             default:
         }
         return list;
@@ -2178,7 +2259,7 @@ public class UploadServiceImpl implements UploadService {
                                          List<IdCodeFront> tenSourceList, List<IdCodeReverse> elevenSourceList, List<ContractTwelve> twelveSourceList,
                                          List<ContractThirteen> thirteenSourceList, List<ContractFourteen> fourteenSourceList,
                                          List<ContractFifteen> fifteenSourceList, List<ContractSixteen> sixteenSourceList,
-                                         List<ContractSeventeen> seventeenSourceList,List<ContractEighteen> eighteenSourceList) {
+                                         List<ContractSeventeen> seventeenSourceList,List<ContractEighteen> eighteenSourceList,List<ContractNineTeen> nineteenSourceList) {
         Map<String, Object> sourceMap = new HashMap<>();
         if (oneSourceList.size() > 0) {
             sourceMap.put(TYPE_ONE, oneSourceList.size() > 0 ? JSONObject.parseObject(JSON.toJSONString(oneSourceList.get(0)), LinkOne.class) : createNullData(TYPE_ONE));
@@ -2234,6 +2315,9 @@ public class UploadServiceImpl implements UploadService {
         if (eighteenSourceList.size() > 0) {
             sourceMap.put(TYPE_EIGHTEEN, eighteenSourceList.size() > 0 ? JSONObject.parseObject(JSON.toJSONString(eighteenSourceList.get(0)), LinkEighteen.class) : createNullData(TYPE_EIGHTEEN));
         }
+        if (nineSourceList.size() > 0) {
+            sourceMap.put(TYPE_NINETEEN, nineSourceList.size() > 0 ? JSONObject.parseObject(JSON.toJSONString(nineSourceList.get(0)), LinkNineTeen.class) : createNullData(TYPE_NINETEEN));
+        }
         return sourceMap;
     }
 
@@ -2244,7 +2328,7 @@ public class UploadServiceImpl implements UploadService {
                                       List<ContractThirteenBack> thirteenOcrList, List<ContractFourteenBack> fourteenOcrList,
                                       List<ContractFifteenBack> fifteenOcrList, List<ContractSixteenBack> sixteenOcrList,
                                       List<ContractSeventeenBack> seventeenOcrList,List<ContractEighteenBack> eighteenOcrList,
-                                      Boolean flag, JSONObject ocr, String fileType) {
+                                      List<ContractNineTeenBack> nineteenOcrList,Boolean flag, JSONObject ocr, String fileType) {
         Map<String, Object> ocrMap = new HashMap<>();
         if (fileType.equals(TYPE_ONE) || fileType.equals(TYPE_TWO) || fileType.equals(TYPE_THREE) || fileType.equals(TYPE_FOUR) ||
                 fileType.equals(TYPE_FIVE) || fileType.equals(TYPE_SIX) || fileType.equals(TYPE_SEVEN) || fileType.equals(TYPE_EIGHT) ||
@@ -2510,6 +2594,20 @@ public class UploadServiceImpl implements UploadService {
                         js.containsKey("acc_json") ? js.get("acc_json") : new JSONObject());
             }
 
+        }
+        if (nineteenOcrList.size() > 0) {
+            if (flag) {
+                ocrMap.put(TYPE_NINETEEN, TYPE_NINETEEN.equals(fileType) ?
+                        ocr.containsKey("data") ? ocr.get("data") : createNullData(TYPE_NINETEEN) :
+                        JSONObject.parseObject(JSON.toJSONString(nineteenOcrList.get(0)), LinkOcrNineTeen.class));
+            } else {
+                JSONObject js = StringUtils.isEmpty(nineteenOcrList.get(0).getRemarks()) ? new JSONObject() :
+                        JSON.parseObject(nineteenOcrList.get(0).getRemarks());
+                ocrMap.put(TYPE_NINETEEN, TYPE_NINETEEN.equals(fileType) ?
+                        ocr.containsKey("acc_json") ? ocr.get("acc_json") : new JSONObject() :
+                        js.containsKey("acc_json") ? js.get("acc_json") : new JSONObject());
+            }
+
         }
         return ocrMap;
     }