Przeglądaj źródła

中煤爬虫报价相关

shenweidong 1 rok temu
rodzic
commit
da7cc24b9a

+ 9 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/api/constant/enums/ImageTypeEnum.java

@@ -40,4 +40,13 @@ public enum ImageTypeEnum {
 
     private final String[] imagesType;
 
+    public static ImageTypeEnum getImageTypeEnum(String type) {
+        for (ImageTypeEnum imageTypeEnum : ImageTypeEnum.values()) {
+            if (imageTypeEnum.getType().equals(type)) {
+                return imageTypeEnum;
+            }
+        }
+        return null;
+    }
+
 }

+ 95 - 84
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/crawler/component/ZmCrawlerRequestComponent.java

@@ -9,6 +9,7 @@ import com.jzg.quotation.commons.entity.vo.image.InsuranceImageVo;
 import com.jzg.quotation.commons.service.ExteriorUtilsRequest;
 import com.jzg.quotation.commons.standard.CrawlerRequestUrlStandard;
 import com.jzg.quotation.commons.utils.DateUtil;
+import com.jzg.quote.zhongmei.api.constant.enums.ImageTypeEnum;
 import com.jzg.quote.zhongmei.api.entity.BaseRequestHead;
 import com.jzg.quote.zhongmei.api.entity.request.BaseRequest;
 import com.jzg.quote.zhongmei.crawler.constant.ZmCrawlerImageConstant;
@@ -629,24 +630,26 @@ public class ZmCrawlerRequestComponent {
      * @param uploadedImageXml
      * @return success:上传成功。
      */
-    public String submitImage(ZmCrawlerConfigureParameters parameters, String userCode, ZmCrawlerImageImportResponse importResponse,
+    public String submitImage(ZmCrawlerConfigureParameters parameters, String userCode, Map<String, List<Map<String, String>>> docCodeAndImage,
                               String uploadedImageXml, ZmCrawlerOrder crawlerOrder) {
 
         //解析已上传的图片url
-        Document document = XmlUtil.readXML(uploadedImageXml.replace("\t", ""));
+        Document document = XmlUtil.readXML(uploadedImageXml.replace("\t", "").replace("\n", ""));
         Node responseCode = document.getElementsByTagName(ZmCrawlerImageConstant.ZM_IMAGE_UPLOADED_RES_NODE).item(0);
-        Node sydNode = null;
+        Map<String, Object> params = new HashMap<>();
         if ("200".equals(responseCode.getTextContent())) {
-            sydNode = document.getElementsByTagName("SYD").item(0);
+            Node sydNode = document.getElementsByTagName("SYD").item(0);
+            String sydNodeStr = XmlUtil.toStr(sydNode.getFirstChild());
+
+            //组装提交图片xml字符串
+            String submitImageXml = buildSubmitXml(sydNodeStr, parameters, userCode, docCodeAndImage, crawlerOrder);
+            params.put("xmlStr", submitImageXml);
+            params.put("svrIp", ZmCrawlerImageConstant.ZM_IMAGE_SUBMIT_IP);
+            params.put("svrPort", ZmCrawlerImageConstant.ZM_IMAGE_SUBMIT_PORT);
+        } else {
+            Node resMsg = document.getElementsByTagName(ZmCrawlerImageConstant.ZM_IMAGE_UPLOADED_RES_MSG).item(0);
+            throw new SystemException(resMsg.getTextContent());
         }
-        String sydNodeStr = XmlUtil.toStr(sydNode).replace("<SYD>","").replace("</SYD>","");
-
-        //组装提交图片xml字符串
-        String submitImageXml = buildSubmitXml(sydNodeStr, parameters, userCode, importResponse, crawlerOrder);
-        Map<String, Object> params = new HashMap<>();
-        params.put("xmlStr", submitImageXml);
-        params.put("svrIp", ZmCrawlerImageConstant.ZM_IMAGE_SUBMIT_IP);
-        params.put("svrPort", ZmCrawlerImageConstant.ZM_IMAGE_SUBMIT_PORT);
 
         return requestComponent.get(RequestUrl.SUBMIT_IMAGE.getRequestUrl(zmCrawlerProperties.getImageUrl()), params, "", String.class, null);
     }
@@ -656,87 +659,95 @@ public class ZmCrawlerRequestComponent {
      * @param xmlStr
      * @param parameters
      * @param userCode
-     * @param importResponse
+     * @param docCodeAndImages
      * @param crawlerOrder
      * @return
      */
     public String buildSubmitXml(String xmlStr, ZmCrawlerConfigureParameters parameters, String userCode,
-                                 ZmCrawlerImageImportResponse importResponse, ZmCrawlerOrder crawlerOrder) {
-        Map<String, Object> result = importResponse.getResult();//导入影像后返回的数据
+                                 Map<String, List<Map<String, String>>> docCodeAndImages, ZmCrawlerOrder crawlerOrder) {
 
         Document submitXml = XmlUtil.readXML(xmlStr);
 
+        String currentDateTime = DateUtil.getDateFormat(new Date(), DateUtil.FULL_TIME_SPLIT_PATTERN);
         NodeList childNodes = submitXml.getDocumentElement().getChildNodes();
         Node pageInfoNode = childNodes.item(1);
-
-        for (int i = 0; i < result.keySet().size(); i++) {
-            Map<String, String> imageMap = (Map<String, String>) result.get(String.valueOf(i));
-
-            Element page = submitXml.createElement("PAGE");
-            page.setAttribute("PAGE_ID", imageMap.get("pageId"));
-
-            Element createUser = submitXml.createElement("CREATE_USER");
-            createUser.setTextContent(userCode);
-            page.appendChild(createUser);
-            Element createUserName = submitXml.createElement("CREATE_USERNAME");
-            createUser.setTextContent(crawlerOrder.getUserName());
-            page.appendChild(createUserName);
-            String currentDateTime = DateUtil.getDateFormat(new Date(), DateUtil.FULL_TIME_SPLIT_PATTERN);
-            Element createTime = submitXml.createElement("CREATE_TIME");
-            createUser.setTextContent(currentDateTime);
-            page.appendChild(createTime);
-            Element modifyUser = submitXml.createElement("MODIFY_USER");
-            createUser.setTextContent(crawlerOrder.getUserName());
-            page.appendChild(modifyUser);
-            Element modifyTime = submitXml.createElement("MODIFY_TIME");
-            createUser.setTextContent(currentDateTime);
-            page.appendChild(modifyTime);
-            Element pageUrl = submitXml.createElement("PAGE_URL");
-            createUser.setTextContent(imageMap.get("filePath"));
-            page.appendChild(pageUrl);
-            Element thumUrl = submitXml.createElement("THUM_URL");
-            createUser.setTextContent(imageMap.get("thumPath"));
-            page.appendChild(thumUrl);
-            Element isLocal = submitXml.createElement("IS_LOCAL");
-            createUser.setTextContent("0");
-            page.appendChild(isLocal);
-            Element pageVer = submitXml.createElement("PAGE_VER");
-            createUser.setTextContent(result.get("ImgNum").toString());
-            page.appendChild(pageVer);
-            String orginalName = imageMap.get("orginalName");
-            Element pageDesc = submitXml.createElement("PAGE_DESC");
-            createUser.setTextContent(orginalName.substring(0, orginalName.indexOf(".")));
-            page.appendChild(pageDesc);
-            Element uploadOrg = submitXml.createElement("UPLOAD_ORG");
-            createUser.setTextContent(parameters.getComName());
-            page.appendChild(uploadOrg);
-            Element pageCrc = submitXml.createElement("PAGE_CRC");
-            page.appendChild(pageCrc);//新提交的照片不设置值
-            Element pageSize = submitXml.createElement("PAGE_SIZE");
-            createUser.setTextContent(imageMap.get("size"));
-            page.appendChild(pageSize);
-            Element pageFormat = submitXml.createElement("PAGE_FORMAT");
-            createUser.setTextContent("image/jpeg");
-            page.appendChild(pageFormat);
-            Element pageEncrypt = submitXml.createElement("PAGE_ENCRYPT");
-            createUser.setTextContent("0");
-            page.appendChild(pageEncrypt);
-            Element originalName = submitXml.createElement("ORIGINAL_NAME");
-            createUser.setTextContent(orginalName);
-            page.appendChild(originalName);
-            Element pageExt = submitXml.createElement("PAGE_EXT");
-            createUser.setTextContent("");
-            page.appendChild(pageExt);
-            Element pageDescs = submitXml.createElement("PAGE_DESCS");
-            createUser.setTextContent("");
-            page.appendChild(pageDescs);
-            pageInfoNode.appendChild(page);
-
-            Node vTreeNode = childNodes.item(2);
-            Node nodeNode = vTreeNode.getFirstChild();
-            Element leafNode = submitXml.createElement("LEAF");
-            leafNode.setTextContent(imageMap.get("pageId"));
-            nodeNode.appendChild(leafNode);
+        Node vTreeNode = childNodes.item(2);
+        for (Map.Entry<String, List<Map<String, String>>> docCodeAndImage :docCodeAndImages.entrySet()) {
+            String docCode = docCodeAndImage.getKey();
+            List<Map<String, String>> image = docCodeAndImage.getValue();
+            for (int i = 0; i < image.size(); i++) {
+                Map<String, String> imageMap = image.get(i);
+
+                Element page = submitXml.createElement("PAGE");
+                page.setAttribute("PAGE_ID", imageMap.get("pageId"));
+
+                Element createUser = submitXml.createElement("CREATE_USER");
+                createUser.setTextContent(userCode);
+                page.appendChild(createUser);
+                Element createUserName = submitXml.createElement("CREATE_USERNAME");
+                createUserName.setTextContent(crawlerOrder.getUserName());
+                page.appendChild(createUserName);
+                Element createTime = submitXml.createElement("CREATE_TIME");
+                createTime.setTextContent(currentDateTime);
+                page.appendChild(createTime);
+                Element modifyUser = submitXml.createElement("MODIFY_USER");
+                modifyUser.setTextContent(crawlerOrder.getUserName());
+                page.appendChild(modifyUser);
+                Element modifyTime = submitXml.createElement("MODIFY_TIME");
+                modifyTime.setTextContent(currentDateTime);
+                page.appendChild(modifyTime);
+                Element pageUrl = submitXml.createElement("PAGE_URL");
+                pageUrl.setTextContent(imageMap.get("filePath"));
+                page.appendChild(pageUrl);
+                Element thumUrl = submitXml.createElement("THUM_URL");
+                thumUrl.setTextContent(imageMap.get("thumPath"));
+                page.appendChild(thumUrl);
+                Element isLocal = submitXml.createElement("IS_LOCAL");
+                isLocal.setTextContent("0");
+                page.appendChild(isLocal);
+                Element pageVer = submitXml.createElement("PAGE_VER");
+                pageVer.setTextContent(String.valueOf(image.size()));
+                page.appendChild(pageVer);
+                String orginalName = imageMap.get("orginalName");
+                Element pageDesc = submitXml.createElement("PAGE_DESC");
+                pageDesc.setTextContent(orginalName.substring(0, orginalName.indexOf(".")));
+                page.appendChild(pageDesc);
+                Element uploadOrg = submitXml.createElement("UPLOAD_ORG");
+                uploadOrg.setTextContent(parameters.getComName());
+                page.appendChild(uploadOrg);
+                Element pageCrc = submitXml.createElement("PAGE_CRC");
+                page.appendChild(pageCrc);//新提交的照片不设置值
+                Element pageSize = submitXml.createElement("PAGE_SIZE");
+                pageSize.setTextContent(imageMap.get("size"));
+                page.appendChild(pageSize);
+                Element pageFormat = submitXml.createElement("PAGE_FORMAT");
+                pageFormat.setTextContent("image/jpeg");
+                page.appendChild(pageFormat);
+                Element pageEncrypt = submitXml.createElement("PAGE_ENCRYPT");
+                pageEncrypt.setTextContent("0");
+                page.appendChild(pageEncrypt);
+                Element originalName = submitXml.createElement("ORIGINAL_NAME");
+                originalName.setTextContent(orginalName);
+                page.appendChild(originalName);
+                Element pageExt = submitXml.createElement("PAGE_EXT");
+                pageExt.setTextContent("");
+                page.appendChild(pageExt);
+                Element pageDescs = submitXml.createElement("PAGE_DESCS");
+                pageDescs.setTextContent("");
+                page.appendChild(pageDescs);
+                pageInfoNode.appendChild(page);
+
+                Element docCodeEle = submitXml.getElementById(docCode);
+                if (docCodeEle == null) {
+                    docCodeEle = submitXml.createElement("NODE");
+                    docCodeEle.setAttribute("ID", docCode);
+                    docCodeEle.setAttribute("NAME", ImageTypeEnum.getImageTypeEnum(docCode).getInfo());
+                    vTreeNode.appendChild(docCodeEle);
+                }
+                Element leafNode = submitXml.createElement("LEAF");
+                leafNode.setTextContent(imageMap.get("pageId"));
+                docCodeEle.appendChild(leafNode);
+            }
         }
 
         return XmlUtil.toStr(submitXml);

+ 2 - 0
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/crawler/constant/ZmCrawlerImageConstant.java

@@ -29,6 +29,8 @@ public class ZmCrawlerImageConstant {
      */
     public static final String ZM_IMAGE_UPLOADED_RES_NODE = "RESPONSE_CODE";
 
+    public static final String ZM_IMAGE_UPLOADED_RES_MSG = "RESPONSE_MSG";
+
     public static final String ZM_IMAGE_SUBMIT_IP = "10.1.16.132";
 
     public static final String ZM_IMAGE_SUBMIT_PORT = "8025";

+ 16 - 4
tenant/insurance/quotation-zhongmei/src/main/java/com/jzg/quote/zhongmei/crawler/service/Impl/ZhongMeiCrawlerRequestImpl.java

@@ -25,9 +25,7 @@ import com.jzg.quote.zhongmei.crawler.service.ZmCrawlerOrderService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -189,6 +187,7 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
 
         //导入影像
         ZmCrawlerImageImportResponse importResponse = null;
+        Map<String, List<Map<String, String>>> docCodeAndImage = new HashMap<>();
         for (InsuranceImageVo image : insuranceUploadImageVo.getImageVoList()) {
             List<InsuranceImageVo.ImageDTO> imageBase64List = image.getImageBase64List();
             if (imageBase64List != null && imageBase64List.size() > 0) {
@@ -196,13 +195,26 @@ public class ZhongMeiCrawlerRequestImpl implements ZhongMeiCrawlerRequest {
                 String code = Arrays.stream(ZmCrawlerImageConstant.ZM_IMAGE_TYPE).collect(Collectors.toList()).contains(image.getImageCode()) ? image.getImageCode() : "01";
                 ZmCrawlerImageImportRequest imageImportRequest = new ZmCrawlerImageImportRequest(imageBase64List.size(), crawlerOrder.getBussinessNo(), code, batchId);
                 importResponse = zmCrawlerRequestComponent.importImage(imageImportRequest, imageBase64List);
+                if (importResponse != null) {
+                    Map<String, Object> result = importResponse.getResult();
+                    List<Map<String, String>> maps = docCodeAndImage.get(imageImportRequest.getDocCode());
+                    List<Map<String, String>> imageResList = new ArrayList<>();
+                    //先判断是否存在一样的图片类型
+                    if (maps != null) {
+                        imageResList = maps;
+                    }
+                    for (int i = 0; i < result.keySet().size()-1; i++) {
+                        imageResList.add((Map<String, String>)result.get(i));
+                    }
+                    docCodeAndImage.put(imageImportRequest.getDocCode(), imageResList);
+                }
             }
         }
 
         //上传影像
         //获取已上传的影像
         String uploadedXml = zmCrawlerRequestComponent.getUploadedImages(userCode, batchId);
-        String uploadedImages = zmCrawlerRequestComponent.submitImage(parameters, userCode, importResponse, uploadedXml, crawlerOrder);
+        String uploadedImages = zmCrawlerRequestComponent.submitImage(parameters, userCode, docCodeAndImage, uploadedXml, crawlerOrder);
     }
 
     /**