Browse Source

灵明光子v6.0

wzy 6 months ago
parent
commit
b7dfd2f7ec

+ 14 - 4
mjava-lingmingguangzi/src/main/java/com/malk/lingmingguangzi/controller/LingmingguangziController.java

@@ -92,6 +92,16 @@ public class LingmingguangziController {
         return lingmingguangziService.updateCustomer(map);
     }
 
+    /**
+     * 新增客户审批通过后新增联系人
+     * @param map
+     * @return
+     */
+    @PostMapping("/addContacts")
+    public McR addContacts(@RequestBody Map map){
+        return lingmingguangziService.addContacts(map);
+    }
+
 
     //更新客户信息流程
     @PostMapping("/updateCustomerProcess")
@@ -107,8 +117,8 @@ public class LingmingguangziController {
      * @return
      */
     @GetMapping("/getProductDeliveryStatus")
-    public McR getProductDeliveryStatus(String keyword,int pageNo,int pageSize) {
-        return lingmingguangziService.getProductDeliveryStatus(keyword,pageNo,pageSize);
+    public McR getProductDeliveryStatus(String keyword,int pageNo,int pageSize,String type) {
+        return lingmingguangziService.getProductDeliveryStatus(keyword,pageNo,pageSize,type);
     }
 
     /**
@@ -126,10 +136,10 @@ public class LingmingguangziController {
      * @param map
      * @return
      */
-    @PostMapping("/updateSaleOrder")
+    /*@PostMapping("/updateSaleOrder")
     public McR updateSaleOrder(@RequestBody Map map) {
         return lingmingguangziService.updateSaleOrder(map);
-    }
+    }*/
 
     /**
      * 销售计划发起销售周报

+ 5 - 3
mjava-lingmingguangzi/src/main/java/com/malk/lingmingguangzi/service/LingmingguangziService.java

@@ -22,13 +22,13 @@ public interface LingmingguangziService {
 
     McR updateCustomer(Map map);
 
-    McR getProductDeliveryStatus(String keyword,int pageNo,int pageSize);
+    McR getProductDeliveryStatus(String keyword,int pageNo,int pageSize,String type);
 
     McR addSaleOrder(Map map);
 
-    McR updateSaleOrder(Map map);
+/*    McR updateSaleOrder(Map map);*/
 
-    String postWithFile(String url, String filePath);
+    String postWithFile(String url, String filePath,String type);
 
     void updateCurrency();
 
@@ -45,4 +45,6 @@ public interface LingmingguangziService {
     McR claimBusinessOpportunities(Map map);
 
     McR createTbProject(Map map);
+
+    McR addContacts(Map map);
 }

+ 308 - 146
mjava-lingmingguangzi/src/main/java/com/malk/lingmingguangzi/service/LingmingguangziServiceImpl.java

@@ -18,7 +18,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.base.Strings;
-import com.malk.core.McProject;
+import com.malk.lingmingguangzi.utils.SkipHttpsUtil;
 import com.malk.server.aliwork.YDConf;
 import com.malk.server.aliwork.YDParam;
 import com.malk.server.common.McR;
@@ -37,6 +37,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.time.DateUtils;
 import org.apache.http.HttpEntity;
 import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.entity.ContentType;
 import org.apache.http.entity.mime.MultipartEntityBuilder;
@@ -49,8 +50,8 @@ import org.springframework.stereotype.Service;
 import java.io.*;
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.nio.file.Files;
 import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
 import java.util.stream.Collectors;
 
 @Service
@@ -74,17 +75,29 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
     @Value(value = "${teambition.TemplateId}")
     private String templateId;
 
-    @Value(value = "${erp.url}")
-    private String erpUrl;
+    @Value(value = "${erp_sz.url}")
+    private String erpUrlSz;
 
-    @Value(value = "${erp.username}")
-    private String userName;
+    @Value(value = "${erp_sz.username}")
+    private String userNameSz;
 
-    @Value(value = "${erp.password}")
-    private String password;
+    @Value(value = "${erp_sz.password}")
+    private String passwordSz;
 
-    @Value(value = "${erp.filePath}")
-    private String filePath;
+    @Value(value = "${erp_sz.filePath}")
+    private String filePathSz;
+
+    @Value(value = "${erp_xg.url}")
+    private String erpUrlXg;
+
+    @Value(value = "${erp_xg.username}")
+    private String userNameXg;
+
+    @Value(value = "${erp_xg.password}")
+    private String passwordXg;
+
+    @Value(value = "${erp_xg.filePath}")
+    private String filePathXg;
 
     private final Object $lock = new Object[0];
 
@@ -209,16 +222,9 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
         body.put("customerCode", formData.get("textField_lwpqbm7a").toString());
         body.put("customerName", formData.get("textField_lwpqbm7b").toString());
 
-        String recCondition = formData.get("selectField_lwpqbm7r").toString();
-        switch (recCondition){
-            case "货到收款": body.put("recConditionCode", "SKTJ01_SYS");break;
-            case "30天后收款":body.put("recConditionCode", "SKTJ02_SYS");break;
-            case "月结30天":body.put("recConditionCode", "SKTJ03_SYS");break;
-            case "多到期日(按金额)":body.put("recConditionCode", "SKTJ04_SYS");break;
-        }
+        body.put("recConditionCode", formData.get("textField_m3o22635").toString());
 
-        String payCurrencyCode = formData.get("textField_m0yq620t").toString();
-        body.put("payCurrencyCode", payCurrencyCode);
+        body.put("payCurrencyCode", formData.get("textField_m0yq620t").toString());
 
         //客户简称
         if (Objects.nonNull(formData.get("textField_lwpqbm7c"))){
@@ -252,8 +258,11 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
         if (Objects.nonNull(formData.get("textareaField_lwpqbm7x"))){
             body.put("comments", formData.get("textareaField_lwpqbm7x").toString());
         }
+        //erp环境
+        String type = formData.get("selectField_m3fgkfz9").toString();
+        String erpUrl = getErpUrl(type);
 
-        Map<String, Object> result = post(erpUrl + "pws/mak/makCustomer/add", null, getHeader(), body);
+        Map<String, Object> result = post(erpUrl + "pws/mak/makCustomer/add", null, getHeader(type), body);
 
         if ((boolean) result.get("success")){
             return McR.success();
@@ -262,6 +271,16 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
         }
     }
 
+    private String getErpUrl(String type) {
+        String erpUrl = "";
+        if ("深圳".equals(type)){
+            erpUrl = erpUrlSz;
+        }else {
+            erpUrl = erpUrlXg;
+        }
+        return erpUrl;
+    }
+
     @Override
     public McR updateCustomer(Map map) {
         if (Objects.isNull(map.get("formInstId"))){
@@ -288,17 +307,8 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
 
         body.put("customerCode", formData.get("textField_lwpqbm7a").toString());
         body.put("customerName", formData.get("textField_lwpqbm7b").toString());
-
-        String recCondition = formData.get("selectField_lwpqbm7r").toString();
-        switch (recCondition){
-            case "货到收款": body.put("recConditionCode", "SKTJ01_SYS");break;
-            case "30天后收款":body.put("recConditionCode", "SKTJ02_SYS");break;
-            case "月结30天":body.put("recConditionCode", "SKTJ03_SYS");break;
-            case "多到期日(按金额)":body.put("recConditionCode", "SKTJ04_SYS");break;
-        }
-
-        String payCurrencyCode = formData.get("textField_m0yq620t").toString();
-        body.put("payCurrencyCode", payCurrencyCode);
+        body.put("recConditionCode", formData.get("textField_m3o22635").toString());
+        body.put("payCurrencyCode", formData.get("textField_m0yq620t").toString());
 
         //客户简称
         if (Objects.nonNull(formData.get("textField_lwpqbm7c"))){
@@ -333,7 +343,10 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
             body.put("comments", formData.get("textareaField_lwpqbm7x").toString());
         }
 
-        Map<String, Object> result = put(erpUrl + "pws/mak/makCustomer/customEdit", null, getHeader(), body);
+        //erp环境
+        String type = formData.get("selectField_m3fgkfz9").toString();
+
+        Map<String, Object> result = put(getErpUrl(type) + "pws/mak/makCustomer/customEdit", null, getHeader(type), body);
         if ((boolean) result.get("success")){
             return McR.success();
         }else {
@@ -342,19 +355,19 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
     }
 
     @Override
-    public McR getProductDeliveryStatus(String keyword,int pageNo,int pageSize) {
+    public McR getProductDeliveryStatus(String keyword,int pageNo,int pageSize,String type) {
         Map<String,Object> param = new HashMap<>();
         param.put("pageNo",pageNo);
         param.put("pageSize",pageSize);
         param.put("saleCode",keyword);
-        Map<String,Object> res = get(erpUrl + "pws/pdm/pdmProductForm/list", param, getHeader());
+        Map<String,Object> res = get(getErpUrl(type) + "pws/pdm/pdmProductForm/list", param, getHeader(type));
 
         Map result = (Map) res.get("result");
         List<Map> data = (List<Map>) result.get("records");
         if (data.isEmpty()){
             param.remove("saleCode");
             param.put("saleName",keyword);
-            res = get(erpUrl + "pws/pdm/pdmProductForm/list", param, getHeader());
+            res = get(getErpUrl(type) + "pws/pdm/pdmProductForm/list", param, getHeader(type));
             result = (Map) res.get("result");
             data = (List<Map>) result.get("records");
         }
@@ -381,6 +394,9 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
 
         Map formData = ddrNew.getFormData();
 
+        //erp环境
+        String type = formData.get("selectField_m3fgkfz9").toString();
+
         //新增销售订单
         Map body = new HashMap();
 
@@ -456,15 +472,28 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
                 List<Map> fileList = (List<Map>) JSONArray.parse(String.valueOf(map1.get("attachmentField_ly8fxusz")));
                 String ydDownloadUrl = fileList.get(0).get("downloadUrl").toString();
                 String fileName = fileList.get(0).get("name").toString();
-                //将downloadurl下载到本地
-                try {
-                    downloadFile(ydDownloadUrl, filePath + fileName);
-                    System.out.println("文件下载成功!");
-                } catch (IOException e) {
-                    e.printStackTrace();
+                if ("深圳".equals(type)){
+                    //将downloadurl下载到本地
+                    try {
+                        downloadFile(ydDownloadUrl, filePathSz + fileName);
+                        System.out.println("文件下载成功!");
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                    //上传附件
+                    detail.put("files",postWithFile(getErpUrl(type) + "pws/sys/common/upload", filePathSz + fileName,type));
+                }else {
+                    //将downloadurl下载到本地
+                    try {
+                        downloadFile(ydDownloadUrl, filePathXg + fileName);
+                        System.out.println("文件下载成功!");
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                    //上传附件
+                    detail.put("files",postWithFile(getErpUrl(type) + "pws/sys/common/upload", filePathXg + fileName,type));
                 }
-                //上传附件
-                detail.put("files",postWithFile(erpUrl + "pws/sys/common/upload",filePath + fileName));
+
                 return detail;
             }).collect(Collectors.toList());
             body.put("makSoFilesList",makSoFilesList);
@@ -472,7 +501,12 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
         body.put("makSoDetailList",makSoDetailList);
 
 
-        Map res = post(erpUrl + "pws/mak/makSalesOrder/add", null, getHeader(), body);
+        Map res = post(getErpUrl(type) + "pws/mak/makSalesOrder/add", null, getHeader(type), body);
+
+        if (!(boolean)res.get("success")){
+            return McR.errorUnknown(getString(res.get("message")));
+        }
+
         String orderCode = getString(res.get("result"));
         //更新宜搭订单编号
         ydClient.operateData(YDParam.builder()
@@ -480,6 +514,26 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
                 .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_m0alsjj1",orderCode)))
                 .build(),YDConf.FORM_OPERATION.update);
 
+        //如果是变更订单 则更新原订单
+        String orderType = getString(formData.get("selectField_m3ii047l"));
+        if ("变更订单".equals(orderType)){
+            String jsonString = formData.get("associationFormField_m3ii047m_id").toString();
+            String orderJsonString = StringEscapeUtils.unescapeJava(jsonString.substring(1, jsonString.length() - 1));
+            List<Map> order =(List<Map>) JSONArray.parse(orderJsonString);
+
+            String updateFormInstId = order.get(0).get("instanceId").toString();
+
+            order.get(0).put("instanceId",formInstId);
+            order.get(0).put("title",orderCode);
+
+            Map updateMap = new HashMap();
+            updateMap.put("associationFormField_m3ii047n",JSON.toJSONString(order));
+            ydClient.operateData(YDParam.builder()
+                    .formInstId(updateFormInstId)
+                    .updateFormDataJson(JSON.toJSONString(updateMap))
+                    .build(),YDConf.FORM_OPERATION.update);
+        }
+
         return McR.success();
     }
 
@@ -516,7 +570,7 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
         httpConn.disconnect();
     }
 
-    @Override
+/*    @Override
     public McR updateSaleOrder(Map map) {
         if (Objects.isNull(map.get("formInstId"))){
             McR.errorParam("formInstId不能为空");
@@ -527,6 +581,9 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
 
         Map formData = ddrNew.getFormData();
 
+        //erp环境
+        String type = formData.get("selectField_m3fgkfz9").toString();
+
         //更新销售订单
         Map body = new HashMap();
 
@@ -603,15 +660,27 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
                 List<Map> fileList = (List<Map>) JSONArray.parse(String.valueOf(map1.get("attachmentField_ly8fxusz")));
                 String ydDownloadUrl = fileList.get(0).get("downloadUrl").toString();
                 String fileName = fileList.get(0).get("name").toString();
-                //将downloadurl下载到本地
-                try {
-                    downloadFile(ydDownloadUrl, filePath + fileName);
-                    System.out.println("文件下载成功!");
-                } catch (IOException e) {
-                    e.printStackTrace();
+                if ("深圳".equals(type)){
+                    //将downloadurl下载到本地
+                    try {
+                        downloadFile(ydDownloadUrl, filePathSz + fileName);
+                        System.out.println("文件下载成功!");
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                    //上传附件
+                    detail.put("files",postWithFile(getErpUrl(type) + "pws/sys/common/upload", filePathSz + fileName,type));
+                }else {
+                    //将downloadurl下载到本地
+                    try {
+                        downloadFile(ydDownloadUrl, filePathXg + fileName);
+                        System.out.println("文件下载成功!");
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                    //上传附件
+                    detail.put("files",postWithFile(getErpUrl(type) + "pws/sys/common/upload", filePathXg + fileName,type));
                 }
-                //上传附件
-                detail.put("files",postWithFile(erpUrl + "pws/sys/common/upload",filePath + fileName));
                 return detail;
             }).collect(Collectors.toList());
             body.put("makSoFilesList",makSoFilesList);
@@ -620,17 +689,22 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
         body.put("makSoDetailList",makSoDetailList);
 
 
-        Map res = put(erpUrl + "pws/mak/makSalesOrder/change", null, getHeader(), body);
+        Map res = put(getErpUrl(type) + "pws/mak/makSalesOrder/change", null, getHeader(type), body);
 
         return McR.success();
-    }
+    }*/
 
     private String getString(Object object){
         return (object == null) ? "" : object.toString();
     }
 
-    private Map<String,String> getHeader(){
-        Map<String, Object> map = post(erpUrl + "pws/sys/mLogin", null, null,UtilMap.map("username, password",userName,password));
+    private Map<String,String> getHeader(String type){
+        Map<String, Object> map = new HashMap<>();
+        if ("深圳".equals(type)){
+            map = post(erpUrlSz + "pws/sys/mLogin", null, null,UtilMap.map("username, password", userNameSz, passwordSz));
+        }else {
+            map = post(erpUrlXg + "pws/sys/mLogin", null, null,UtilMap.map("username, password", userNameXg, passwordXg));
+        }
 
         if (Objects.nonNull(map.get("result"))){
             Map<String,Object> result = (Map<String,Object>) map.get("result");
@@ -734,18 +808,19 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
         return result;
     }
 
-    public String postWithFile(String url, String filePath) {
+    public String postWithFile(String url, String filePath,String type) {
         // 文件路径
         File file = new File(filePath);
 
         // 创建HttpClient实例
-        HttpClient client = HttpClients.createDefault();
+        HttpClient client = SkipHttpsUtil.wrapClient();
+//        HttpClient client = HttpClients.createDefault();
 
         // 创建HttpPost实例
         HttpPost post = new HttpPost(url);
 
         // 添加请求头
-        post.setHeader("X-Access-Token", getHeader().get("X-Access-Token"));
+        post.setHeader("X-Access-Token", getHeader(type).get("X-Access-Token"));
 
         // 使用MultipartEntityBuilder来构建multipart请求
         MultipartEntityBuilder builder = MultipartEntityBuilder.create();
@@ -757,6 +832,7 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
 
         try {
             // 发送请求并获取响应
+
             org.apache.http.HttpResponse response = client.execute(post);
 
             // 处理响应
@@ -784,99 +860,130 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
     @Override
     public void updateCurrency() {
         //获取erp币别列表
-        List<Map<String,String>> list = new ArrayList<>();
-        int pageNo = 1;
-        int pageSize = 50;
-        Map result = new HashMap<>();
-        do {
-            Map param = new HashMap();
-            param.put("pageNo",pageNo);
-            param.put("pageSize",pageSize);
-            Map<String, Object> res = get(erpUrl + "pws/fin/finCurrency/list", param, getHeader());
-            result = (Map) res.get("result");
-            List<Map> records = (List<Map>) result.get("records");
-            list.addAll(records.stream().map(map1 -> {
-                Map<String,String> map = new HashMap<>();
-                map.put("textField_m054h6gw",map1.get("currencyCode").toString());
-                map.put("textField_m054h6gx",map1.get("currencyName").toString());
-                map.put("textField_m054h6gy",map1.get("active_dictText").toString());
-                return map;
-            }).collect(Collectors.toList()));
-            pageNo++;
-        }while (pageNo * pageSize < (int) result.get("total"));
-
-        //更新宜搭币别
-        for (Map map : list) {
-            ydService.upsertFormData("FORM-01CF3B9C5A364D32A011A6EA8B59B82AIUDI",UtilMap.map("textField_m054h6gw",map.get("textField_m054h6gw")),map,null);
-        }
+        String[] ERP_URLS = new String[]{erpUrlSz,erpUrlXg};
+        for (int i = 0; i < ERP_URLS.length; i++) {
+            List<Map<String,String>> list = new ArrayList<>();
+            int pageNo = 1;
+            int pageSize = 50;
+            Map result = new HashMap<>();
+            do {
+                Map param = new HashMap();
+                param.put("pageNo",pageNo);
+                param.put("pageSize",pageSize);
+                Map<String, Object> res = get(ERP_URLS[i] + "pws/fin/finCurrency/list", param, i == 0 ? getHeader("深圳") : getHeader("香港"));
+                result = (Map) res.get("result");
+                List<Map> records = (List<Map>) result.get("records");
+                int finalI = i;
+                list.addAll(records.stream().map(map1 -> {
+                    Map<String,String> map = new HashMap<>();
+                    map.put("textField_m054h6gw",map1.get("currencyCode").toString());
+                    map.put("textField_m054h6gx",map1.get("currencyName").toString());
+                    map.put("textField_m054h6gy",map1.get("active_dictText").toString());
+                    if (finalI == 0){
+                        map.put("selectField_m3fgkfz9","深圳");
+                    }else {
+                        map.put("selectField_m3fgkfz9","香港");
+                    }
+                    map.put("textField_m3fiygvb",map.get("selectField_m3fgkfz9") + map.get("textField_m054h6gw"));//唯一标识
 
+                    return map;
+                }).collect(Collectors.toList()));
+                pageNo++;
+            }while (pageNo * pageSize < (int) result.get("total"));
+
+            //更新宜搭币别
+            for (Map map : list) {
+                ydService.upsertFormData("FORM-01CF3B9C5A364D32A011A6EA8B59B82AIUDI",UtilMap.map("textField_m3fiygvb",map.get("textField_m3fiygvb")),map,null);
+            }
+        }
     }
 
     @Override
     public void updateTaxRate() {
         //获取erp税率列表
-        List<Map<String,String>> list = new ArrayList<>();
-        int pageNo = 1;
-        int pageSize = 50;
-        Map result = new HashMap<>();
-        do {
-            Map param = new HashMap();
-            param.put("pageNo",pageNo);
-            param.put("pageSize",pageSize);
-            Map<String, Object> res = get(erpUrl + "pws/fin/finTax/list", param, getHeader());
-            result = (Map) res.get("result");
-            List<Map> records = (List<Map>) result.get("records");
-            list.addAll(records.stream().map(map1 -> {
-                Map<String,String> map = new HashMap<>();
-                map.put("textField_m0539uy1",map1.get("id").toString());
-                map.put("numberField_m0539uy2",map1.get("taxValue").toString());
-                map.put("textField_m0539uy4",map1.get("taxName").toString());
-                return map;
-            }).collect(Collectors.toList()));
-            pageNo++;
-        }while (pageNo * pageSize < (int) result.get("total"));
-
-        //更新宜搭税率
-        for (Map map : list) {
-            ydService.upsertFormData("FORM-47A9FC4550574A0488A3F2ECB30FADB0Z67F",UtilMap.map("textField_m0539uy1",map.get("textField_m0539uy1")),map,null);
+        String[] ERP_URLS = new String[]{erpUrlSz,erpUrlXg};
+        for (int i = 0; i < ERP_URLS.length; i++) {
+            List<Map<String,String>> list = new ArrayList<>();
+            int pageNo = 1;
+            int pageSize = 50;
+            Map result = new HashMap<>();
+            do {
+                Map param = new HashMap();
+                param.put("pageNo",pageNo);
+                param.put("pageSize",pageSize);
+                Map<String, Object> res = get(ERP_URLS[i] + "pws/fin/finTax/list", param, i == 0 ? getHeader("深圳") : getHeader("香港"));
+                result = (Map) res.get("result");
+                List<Map> records = (List<Map>) result.get("records");
+                int finalI = i;
+                list.addAll(records.stream().map(map1 -> {
+                    Map<String,String> map = new HashMap<>();
+                    map.put("textField_m0539uy1",map1.get("id").toString());
+                    map.put("numberField_m0539uy2",map1.get("taxValue").toString());
+                    map.put("textField_m0539uy4",map1.get("taxName").toString());
+                    if (finalI == 0){
+                        map.put("selectField_m3fgkfz9","深圳");
+                    }else {
+                        map.put("selectField_m3fgkfz9","香港");
+                    }
+                    map.put("textField_m3fiygvb",map.get("selectField_m3fgkfz9") + map.get("textField_m0539uy1"));//唯一标识
+                    return map;
+                }).collect(Collectors.toList()));
+                pageNo++;
+            }while (pageNo * pageSize < (int) result.get("total"));
+
+            //更新宜搭税率
+            for (Map map : list) {
+                ydService.upsertFormData("FORM-47A9FC4550574A0488A3F2ECB30FADB0Z67F",UtilMap.map("textField_m3fiygvb",map.get("textField_m3fiygvb")),map,null);
+            }
         }
     }
 
     @Override
     public void updateProcess() {
         //获取erp工序列表
-        List<Map<String,String>> list = new ArrayList<>();
-        int pageNo = 1;
-        int pageSize = 50;
-        Map result = new HashMap<>();
-        do {
-            Map param = new HashMap();
-            param.put("pageNo",pageNo);
-            param.put("pageSize",pageSize);
-            Map<String, Object> res = get(erpUrl + "pws/pdm/pdmStation/list", param, getHeader());
-            result = (Map) res.get("result");
-            List<Map> records = (List<Map>) result.get("records");
-            list.addAll(records.stream().map(map1 -> {
-                Map<String,String> map = new HashMap<>();
-                map.put("textField_m04yhw4p",getString(map1.get("stationCode")));//工序编码
-                map.put("textField_m04yhw56",getString(map1.get("stationName")));//工序名称
-                map.put("textField_m04yhw57",getString(map1.get("stationClass")));//工序分类
-                map.put("textField_m04yhw58",getString(map1.get("productionType_dictText")));//生产类型
-                map.put("numberField_m04yhw5b",getString(map1.get("cycleTime")));//生产周期
-                map.put("textField_m04yhw5a",getString(map1.get("stockFlag")));//可入库
-                map.put("textField_m04yhw5c",getString(map1.get("unitCode_dictText")));//计价方式
-                map.put("textField_m04yhw5d",getString(map1.get("stationType_dictText")));//工序类型
-                map.put("textField_m04yhw5e",getString(map1.get("comments")));//备注
-                map.put("textField_m04yhw5f",getString(map1.get("active_dictText")));//审核状态
-
-                return map;
-            }).collect(Collectors.toList()));
-            pageNo++;
-        }while (pageNo * pageSize < (int) result.get("total"));
-
-        //更新宜搭工序
-        for (Map map : list) {
-            ydService.upsertFormData("FORM-2F06B5F437124B3ABA8D5275D1D277E4R9O1",UtilMap.map("textField_m04yhw4p",map.get("textField_m04yhw4p")),map,null);
+        String[] ERP_URLS = new String[]{erpUrlSz,erpUrlXg};
+        for (int i = 0; i < ERP_URLS.length; i++) {
+            List<Map<String,String>> list = new ArrayList<>();
+            int pageNo = 1;
+            int pageSize = 50;
+            Map result = new HashMap<>();
+
+            do {
+                Map param = new HashMap();
+                param.put("pageNo",pageNo);
+                param.put("pageSize",pageSize);
+                Map<String, Object> res = get(ERP_URLS[i] + "pws/pdm/pdmStation/list", param, i == 0 ? getHeader("深圳") : getHeader("香港"));
+                result = (Map) res.get("result");
+                List<Map> records = (List<Map>) result.get("records");
+                int finalI = i;
+                list.addAll(records.stream().map(map1 -> {
+                    Map<String,String> map = new HashMap<>();
+                    map.put("textField_m04yhw4p",getString(map1.get("stationCode")));//工序编码
+                    map.put("textField_m04yhw56",getString(map1.get("stationName")));//工序名称
+                    map.put("textField_m04yhw57",getString(map1.get("stationClass")));//工序分类
+                    map.put("textField_m04yhw58",getString(map1.get("productionType_dictText")));//生产类型
+                    map.put("numberField_m04yhw5b",getString(map1.get("cycleTime")));//生产周期
+                    map.put("textField_m04yhw5a",getString(map1.get("stockFlag")));//可入库
+                    map.put("textField_m04yhw5c",getString(map1.get("unitCode_dictText")));//计价方式
+                    map.put("textField_m04yhw5d",getString(map1.get("stationType_dictText")));//工序类型
+                    map.put("textField_m04yhw5e",getString(map1.get("comments")));//备注
+                    map.put("textField_m04yhw5f",getString(map1.get("active_dictText")));//审核状态
+                    if (finalI == 0){
+                        map.put("selectField_m3fgkfz9","深圳");
+                    }else {
+                        map.put("selectField_m3fgkfz9","香港");
+                    }
+                    map.put("textField_m3fiygvb",map.get("selectField_m3fgkfz9") + map.get("textField_m04yhw4p"));//唯一标识
+
+                    return map;
+                }).collect(Collectors.toList()));
+                pageNo++;
+            }while (pageNo * pageSize < (int) result.get("total"));
+
+            //更新宜搭工序
+            for (Map map : list) {
+                ydService.upsertFormData("FORM-2F06B5F437124B3ABA8D5275D1D277E4R9O1",UtilMap.map("textField_m3fiygvb",map.get("textField_m3fiygvb")),map,null);
+            }
         }
     }
 
@@ -896,15 +1003,15 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
         if (customerType.equals("意向客户")){
             //意向客户
             String jsonString = formData.get("associationFormField_lzto0clw_id").toString();
-            String customerJsonString = StringEscapeUtils.unescapeJava(jsonString.substring(1, jsonString.length() - 1));//新供应商(关联表单)
-            List<Map> supplier =(List<Map>) JSONArray.parse(customerJsonString);
-            updateFormInstId = supplier.get(0).get("instanceId").toString();
+            String customerJsonString = StringEscapeUtils.unescapeJava(jsonString.substring(1, jsonString.length() - 1));
+            List<Map> customer =(List<Map>) JSONArray.parse(customerJsonString);
+            updateFormInstId = customer.get(0).get("instanceId").toString();
         }else {
             //订单客户
             String jsonString = formData.get("associationFormField_lzto0clv_id").toString();
             String customerJsonString = StringEscapeUtils.unescapeJava(jsonString.substring(1, jsonString.length() - 1));
-            List<Map> supplier =(List<Map>) JSONArray.parse(customerJsonString);
-            updateFormInstId = supplier.get(0).get("instanceId").toString();
+            List<Map> customer =(List<Map>) JSONArray.parse(customerJsonString);
+            updateFormInstId = customer.get(0).get("instanceId").toString();
 
             String jsonString2 = formData.get("associationFormField_m25llfoy_id").toString();
             String customerJsonString2 = StringEscapeUtils.unescapeJava(jsonString2.substring(1, jsonString2.length() - 1));
@@ -1101,6 +1208,61 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
         return McR.success(id);
     }
 
+    @Override
+    public McR addContacts(Map map) {
+        if (Objects.isNull(map.get("formInstId"))){
+            return McR.errorParam("formInstId不能为空");
+        }
+        String formInstId = map.get("formInstId").toString();
+        //查询客户信息
+        DDR_New ddrNew = ydClient.queryData(YDParam.builder()
+                .formInstId(formInstId)
+                .build(), YDConf.FORM_QUERY.retrieve_id);
+
+        Map formData = ddrNew.getFormData();
+
+        String customerName = getString(formData.get("textField_lwpqbm7b"));//客户名称
+        String customerCode = getString(formData.get("textField_lwpqbm7a"));//客户代码
+        String contacts = getString(formData.get("textField_lwpqbm7u"));//联系人
+        String phone = getString(formData.get("textField_lwpqbm7v"));//电话
+
+        if (!contacts.isEmpty()){
+            //新增联系人
+            Map contactFormData = new HashMap();
+
+            List<Map> customer = new ArrayList<>();
+            Map customerMap = new HashMap();
+            customerMap.put("appType",ydConf.getAppType());
+            customerMap.put("formUuid","FORM-C20F12A6BF6145A4A451F35CC2C78AFC7PB8");
+            customerMap.put("formType","receipt");
+            customerMap.put("instanceId",formInstId);
+            customerMap.put("title",customerName);
+            customerMap.put("subTitle","");
+            customer.add(customerMap);
+
+            if (Objects.isNull(formData.get("selectField_m32pszh3"))){
+                contactFormData.put("selectField_lzmh4hf8","意向客户");
+                contactFormData.put("associationFormField_lzto0clw",customer);
+            }else {
+                contactFormData.put("selectField_lzmh4hf8","订单客户");
+                contactFormData.put("associationFormField_lzto0clv",customer);
+            }
+
+            contactFormData.put("textField_lwpquxe4",contacts);
+            contactFormData.put("multiSelectField_m278ty7s",new String[]{"电话"});
+            contactFormData.put("textField_lwpquxe9",phone);
+            contactFormData.put("textField_m0z0e88f",customerName);
+            contactFormData.put("textField_m0z0e88e",customerCode);
+
+            ydClient.operateData(YDParam.builder()
+                    .formUuid("FORM-98CB0F02BCB14C5CB86A404012879C34GQ5P")
+                    .formDataJson(JSON.toJSONString(contactFormData))
+                    .build(), YDConf.FORM_OPERATION.create);
+        }
+
+        return McR.success();
+    }
+
     @Override
     public McR getTbStageDetails(String projectName,String projectId,String parentTaskId) {
         Map<String,Object> stageDetail = new HashMap<>();

+ 66 - 0
mjava-lingmingguangzi/src/main/java/com/malk/lingmingguangzi/utils/SkipHttpsUtil.java

@@ -0,0 +1,66 @@
+package com.malk.lingmingguangzi.utils;
+
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+import org.apache.http.client.HttpClient;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+/**
+ *
+ * ClassName: SkipHttpsUtil
+ *
+ *
+ * Description: httpclient跳过https验证
+ *
+ *
+ * Copyright: Copyright (c) 2019
+ *
+ *
+ * Company: service
+ *
+ * @author: maojinqiang
+ * @CreateDate: 2019-08-26
+ */
+
+public class SkipHttpsUtil {
+
+//绕过证书
+
+    public static HttpClient wrapClient() {
+
+        try {
+            SSLContext ctx = SSLContext.getInstance("TLS");
+            X509TrustManager tm = new X509TrustManager() {
+                public X509Certificate[] getAcceptedIssuers() {
+                    return null;
+                }
+                public void checkClientTrusted(X509Certificate[] arg0,
+                                               String arg1) throws CertificateException {
+                }
+
+                public void checkServerTrusted(X509Certificate[] arg0,
+                                               String arg1) throws CertificateException {
+                }
+            };
+            ctx.init(null, new TrustManager[] { tm }, null);
+            SSLConnectionSocketFactory ssf = new SSLConnectionSocketFactory(
+                    ctx, NoopHostnameVerifier.INSTANCE);
+            CloseableHttpClient httpclient = HttpClients.custom()
+                    .setSSLSocketFactory(ssf).build();
+            return httpclient;
+        } catch (Exception e) {
+            return HttpClients.createDefault();
+        }
+
+    }
+
+    public static void main(String[] args) {
+
+    }
+
+}

+ 8 - 2
mjava-lingmingguangzi/src/main/resources/application-dev.yml

@@ -43,8 +43,14 @@ aliwork:
   appType: APP_MOIYIC856NRIBCMXEXVD
   systemToken: G9666BC1BUHLKS20E7YQRATFDE4F39EOK5QWL06
 
-erp:
-  url: http://10.12.22.201:9999/
+erp_sz:
+  url: http://10.12.22.201:9999/ #测试环境
+  username: CRM
+  password: LMGZCRM2024
+  filePath: d:\\
+
+erp_xg:
+  url: http://10.12.22.201:9999/ #测试环境
   username: CRM
   password: LMGZCRM2024
   filePath: d:\\

+ 15 - 7
mjava-lingmingguangzi/src/main/resources/application-prod.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8113
+  port: 9020
   servlet:
     context-path: /lingmingguangzi
 
@@ -43,9 +43,17 @@ aliwork:
   appType: APP_MOIYIC856NRIBCMXEXVD
   systemToken: G9666BC1BUHLKS20E7YQRATFDE4F39EOK5QWL06
 
-erp:
-  url:
-  username:
-  password:
-  filePath: /home/server/lingmingguangzi/file/
-
+#深圳环境
+erp_sz:
+  url:  https://szerp.adapsphotonics.net:28443/
+  username: 黄君
+  password: 123456789aa
+#  filePath: e:\\crm\\file\\sz\\
+  filePath: d:\\
+#香港环境
+erp_xg:
+  url: https://hkerp.adapsphotonics.net:28443/
+  username: 黄君
+  password: Hello@1234
+#  filePath: e:\\crm\\file\\xg\\
+  filePath: d:\\

+ 1 - 1
mjava-lingmingguangzi/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 spring:
   profiles:
-    active: dev
+    active: prod
   servlet:
     multipart:
       max-file-size: 100MB