From 9f6dacf7b39e5aeba37d8faf575c9e56d8cbe51a Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期六, 11 十月 2025 13:35:42 +0800
Subject: [PATCH] 武汉黄陂军粮-质检报告共享接口同步及推送

---
 src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java |  270 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 212 insertions(+), 58 deletions(-)

diff --git a/src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java b/src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java
index 6cb31f9..b3ba95b 100644
--- a/src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java
+++ b/src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java
@@ -1,6 +1,7 @@
 package com.fzzy.push.whhpjl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.fzzy.api.data.ApiParam;
 import com.fzzy.api.data.PushProtocol;
 import com.fzzy.api.dto.ResponseDto;
@@ -8,17 +9,17 @@
 import com.fzzy.api.service.ApiCommonService;
 import com.fzzy.api.service.ApiRemoteService;
 import com.fzzy.api.service.ApiTriggerService;
-import com.fzzy.api.utils.AESUtils;
-import com.fzzy.api.utils.ContextUtil;
-import com.fzzy.api.utils.MyMD5Util;
-import com.fzzy.api.utils.RedisUtil;
+import com.fzzy.api.utils.*;
 import com.fzzy.api.view.repository.*;
+import com.fzzy.push.whhpjl.dto.WhjlPullReqDto;
+import com.fzzy.push.whhpjl.dto.WhjlPullRespDto;
 import com.fzzy.push.whhpjl.dto.WhjlReqDto;
 import com.fzzy.push.whhpjl.dto.WhjlRespDto;
-import com.fzzy.whjl.WhjlConstant;
+import com.fzzy.otherview.whhpjl.WhjlConstant;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
+import org.codehaus.jackson.map.ObjectMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import java.util.*;
@@ -42,6 +43,8 @@
     private ApiTriggerService apiTriggerService;
     @Autowired
     private ApiLogRep apiLogRep;
+    @Autowired
+    private Whjl2023HttpClientUtil whjl2023HttpClientUtil;
 
     @Override
     public String getProtocol() {
@@ -67,8 +70,8 @@
             ApiLog apiLog = new ApiLog();
             apiLog.setId(ContextUtil.getUUID());
             apiLog.setInteId(inteId);
-            String jsonData = getJsonData(inteId, data);
-            log.info("鏁版嵁鎶ユ枃淇℃伅=" + jsonData);
+            String jsonData = getJsonData(data);
+            log.info("鎺ュ彛鏁版嵁淇℃伅=" + jsonData);
             inteId = getInteId(inteId);
             if (StringUtils.isEmpty(inteId)) {
                 ResponseDto responseDto = new ResponseDto(99, "娌℃湁鑾峰彇鍒版帴鍙�");
@@ -88,31 +91,47 @@
                 apiLogRep.save(apiLog);
                 return responseDto;
             }
+
             //灏佽鎺ㄩ�佹暟鎹�
             WhjlReqDto reqData = new WhjlReqDto();
+            //鎶ユ枃鏍囪瘑ID
             reqData.setId(ContextUtil.getUUID());
-            reqData.setUid(conf.getKqdm());
-            //TODO 鎸囦护id寰呯‘璁�
-            reqData.setOrderid("");
-            reqData.setAppcode(conf.getUserName());
-            reqData.setTimestamp(ContextUtil.getCurTimeMillis());
-            List<Object> list  = (List<Object>)data;
-            reqData.setDatalength(list.size());
-            //鏁版嵁杩涜SM4鍔犲瘑
-            reqData.setData(AESUtils.encrypt(jsonData, conf.getPublicKey()));
-            reqData.setOperator("insert");
-            //鎽樿锛屾暟鎹富浣撶殑MD5鍊�
-            reqData.setDigst(MyMD5Util.encrypt(jsonData));
+            //韬唤ID
+            reqData.setUid(conf.getUserName());
+            //鑾峰彇鎸囦护id
+            String key = RedisConst.buildKey(RedisConst.KYE_ORDER, conf.getKqdm());
+            String orderId = (String)redisUtil.get(key);
+            if(StringUtils.isEmpty(orderId)){
+                orderId = reqData.getId();
+            }
+            reqData.setOrderid(orderId);
+            //搴旂敤鐮�
+            reqData.setAppcode(conf.getAppCode());
+            //鏃堕棿鎴�
+            reqData.setTimestamp(Long.valueOf(ContextUtil.getCurTimeMillis()));
             //韬唤绛惧悕锛屽搴旂敤鐮乢鎺堟潈鐮乢绔欑偣缂栫爜_鎶ユ枃ID_鏃堕棿鎴宠繘琛孧D5绠楁硶绛惧悕
-            StringBuffer buffer = new StringBuffer();
-            buffer.append(reqData.getAppcode()).append("_");
-            buffer.append(conf.getPublicKey()).append("_");
-            buffer.append(conf.getKqmc()).append("_");
-            buffer.append(reqData.getId()).append("_");
-            buffer.append(reqData.getTimestamp());
-            reqData.setDigst(MyMD5Util.encrypt(buffer.toString()));
+            String accessToken = reqData.getAppcode() +"_" + conf.getPassword() +"_" + reqData.getUid() + "_" + reqData.getId() + "_" + reqData.getTimestamp();
+            log.info("韬唤绛惧悕锛�" + accessToken);
+            reqData.setAccesstoken(MyMD5Util.encrypt(accessToken));
+            //鏁版嵁鎬绘潯鏁�
+            reqData.setDatalength(1);
+            //鏁版嵁涓讳綋锛岃繘琛孲M4鍔犲瘑
+            reqData.setData(SM4Util.encryptEcb(conf.getPublicKey(), jsonData));
+            //鎽樿锛屾暟鎹富浣撶殑MD5鍊�
+            reqData.setDigest(MyMD5Util.encrypt(jsonData));
+            //鎿嶄綔绫诲瀷
+            JSONObject jsonObject = JSONObject.parseObject(JSON.toJSONString(data));
+            String czbz = jsonObject.getString("czbz");
+            if("u".equals(czbz)){
+                czbz = "update";
+            }else if("d".equals(czbz)){
+                czbz = "delete";
+            }else {
+                czbz = "insert";
+            }
+            reqData.setOperator(czbz);
 
-            WhjlRespDto responseDto = Whjl2023HttpClientUtil.postPushData(conf.getApiUrl() + inteId, reqData, conf);
+            WhjlRespDto responseDto = whjl2023HttpClientUtil.postPushData(conf.getApiUrl() + inteId, reqData);
             apiLog.setStatus(responseDto.getCode() == 200 ? 0 : responseDto.getCode());
             apiLog.setResult(responseDto.getResult());
             apiLogRep.save(apiLog);
@@ -128,15 +147,16 @@
     }
 
     /**
-     * 璋冩暣鏁版嵁灏佽锛岃幏鍙杍son鏁版嵁
+     * 璋冩暣鏁版嵁灏佽鎴恖ist锛岃幏鍙杍son鏁版嵁
      *
-     * @param inteId
      * @param data
      * @return
      * @throws Exception
      */
-    private String getJsonData(String inteId, Object data) {
-        return JSON.toJSONString(data);
+    private String getJsonData(Object data) {
+        List<Object> list = new ArrayList<>();
+        list.add(data);
+        return JSON.toJSONString(list);
     }
 
     private String getInteId(String inteId) {
@@ -152,22 +172,26 @@
             case "1105":
                 return WhjlConstant.API_CODE_CFXX;
             case "1106":
-                return WhjlConstant.API_CODE_AJXX;
+                return WhjlConstant.API_CODE_YGXX;
             case "1107":
-                return WhjlConstant.API_CODE_HWXX;
+                return WhjlConstant.API_CODE_AJXX;
             case "1108":
-                return WhjlConstant.API_CODE_CCSSDZDA;
+                return WhjlConstant.API_CODE_HWXX;
             case "1109":
-                return WhjlConstant.API_CODE_CCSSWHJL;
+                return WhjlConstant.API_CODE_CCSSDZDA;
             case "1110":
-                return WhjlConstant.API_CODE_CCSSBFJL;
+                return WhjlConstant.API_CODE_CCSSWHJL;
             case "1111":
-                return WhjlConstant.API_CODE_CCSBXX;
+                return WhjlConstant.API_CODE_CCSSBFJL;
             case "1112":
-                return WhjlConstant.API_CODE_CCSBWHJL;
+                return WhjlConstant.API_CODE_CCSBXX;
             case "1113":
-                return WhjlConstant.API_CODE_CCSBWXJL;
+                return WhjlConstant.API_CODE_CCSBWHJL;
             case "1114":
+                return WhjlConstant.API_CODE_CCSBWXJL;
+            case "1115":
+                return WhjlConstant.API_CODE_CCSBBFJL;
+            case "11145":
                 return WhjlConstant.API_CODE_CCSBBFJL;
             case "1201":
                 return WhjlConstant.API_CODE_FSGYSXX;
@@ -178,47 +202,177 @@
             case "1204":
                 return WhjlConstant.API_CODE_KHXX;
             case "1205":
-                return WhjlConstant.API_CODE_CCJL;
-            case "1206":
                 return WhjlConstant.API_CODE_DDXX;
-            case "1207":
+            case "1206":
                 return WhjlConstant.API_CODE_HTXX;
-            case "1208":
+            case "1207":
                 return WhjlConstant.API_CODE_KCTZ;
-            case "1209":
+            case "1208":
                 return WhjlConstant.API_CODE_KCTZPCXX;
-            case "1210":
+            case "1209":
                 return WhjlConstant.API_CODE_KCTZCRJL;
-            case "1211":
+            case "1210":
                 return WhjlConstant.API_CODE_KCPDJL;
-            case "1212":
+            case "1211":
                 return WhjlConstant.API_CODE_KNZCJL;
-            case "1213":
+            case "1212":
                 return WhjlConstant.API_CODE_CRKJL;
-            case "1301":
+            case "1213":
+                return WhjlConstant.API_CODE_CRKJSJL;
+            case "1214":
                 return WhjlConstant.API_CODE_ZJJG;
-            case "1302":
+            case "1215":
+                return WhjlConstant.API_CODE_YPDJXX;
+            case "1216":
                 return WhjlConstant.API_CODE_ZJBG;
+            case "1217":
+                return WhjlConstant.API_CODE_BZQYJGZ;
+            case "1218":
+                return WhjlConstant.API_CODE_BZQYJJL;
+            case "1219":
+                return WhjlConstant.API_CODE_WZKCYJGZ;
+            case "1220":
+                return WhjlConstant.API_CODE_WZKCYJJL;
+            case "1221":
+                return WhjlConstant.API_CODE_CCJH;
+            case "1301":
+                return WhjlConstant.API_CODE_WSDJCJL;
+            case "1302":
+                return WhjlConstant.API_CODE_YSHJJCJL;
             case "1303":
-                return WhjlConstant.API_CODE_LQJCJL;
+                return WhjlConstant.API_CODE_WSDGJJL;
             case "1304":
                 return WhjlConstant.API_CODE_NHJL;
+            case "1305":
+                return WhjlConstant.API_CODE_DDPSRW;
+            case "1306":
+                return WhjlConstant.API_CODE_BDWZXX;
+            case "1307":
+                return WhjlConstant.API_CODE_YSRWBDXX;
+            case "1308":
+                return WhjlConstant.API_CODE_SPYJGJ;
+            case "1309":
+                return WhjlConstant.API_CODE_STSJ;
             case "1401":
-                return WhjlConstant.API_CODE_DYQY;
+                return WhjlConstant.API_CODE_SCZLL;
             case "1402":
-                return WhjlConstant.API_CODE_DYXY;
+                return WhjlConstant.API_CODE_KGPJ;
             case "1403":
-                return WhjlConstant.API_CODE_DYNL;
+                return WhjlConstant.API_CODE_DYQY;
             case "1404":
-                return WhjlConstant.API_CODE_DYYJ;
+                return WhjlConstant.API_CODE_DYSP;
             case "1405":
-                return WhjlConstant.API_CODE_SCJGDD;
+                return WhjlConstant.API_CODE_DYXY;
             case "1406":
-                return WhjlConstant.API_CODE_YSLX;
+                return WhjlConstant.API_CODE_DYXYBG;
             case "1407":
-                return WhjlConstant.API_CODE_YJDD;
+                return WhjlConstant.API_CODE_DYXYZXMX;
+            case "1408":
+                return WhjlConstant.API_CODE_DYNL;
+            case "1409":
+                return WhjlConstant.API_CODE_DYYJ;
+            case "1410":
+                return WhjlConstant.API_CODE_SCJGDD;
+            case "1411":
+                return WhjlConstant.API_CODE_CLXX;
+            case "1412":
+                return WhjlConstant.API_CODE_CLYSHJ;
+            case "1413":
+                return WhjlConstant.API_CODE_YSLX;
+            case "1414":
+                return WhjlConstant.API_CODE_BDZDSB;
+            case "2001":
+                return WhjlConstant.API_CODE_SHARE_SBFL;
+            case "2002":
+                return WhjlConstant.API_CODE_SHARE_CPFL;
+            case "2003":
+                return WhjlConstant.API_CODE_SHARE_JLDW;
+            case "2004":
+                return WhjlConstant.API_CODE_SHARE_JLGLJG;
+            case "2005":
+                return WhjlConstant.API_CODE_SHARE_JLGYSXX;
+            case "2006":
+                return WhjlConstant.API_CODE_SHARE_JLPPXX;
+            case "2007":
+                return WhjlConstant.API_CODE_SHARE_JLCPXX;
+            case "2008":
+                return WhjlConstant.API_CODE_SHARE_JLCCJH;
+            case "2009":
+                return WhjlConstant.API_CODE_SHARE_HTMB;
+            case "2010":
+                return WhjlConstant.API_CODE_SHARE_ZLJCBZ;
+            case "2011":
+                return WhjlConstant.API_CODE_SHARE_ZLJCXM;
+            case "2012":
+                return WhjlConstant.API_CODE_SHARE_YJFAXX;
+            case "2013":
+                return WhjlConstant.API_CODE_SHARE_SZJZXBG;
             default:
                 return inteId;
         }
     }
+
+    @Override
+    public ResponseDto pullData(ApiParam param, ApiConfs conf) {
+        String inteId = param.getInteId();
+        String kqdm = param.getKqdm();
+
+        try {
+            if (null == conf) {
+                conf = apiCommonService.getConf(kqdm);
+            }
+
+            //娣诲姞鏃ュ織
+            ApiLog apiLog = new ApiLog();
+            apiLog.setId(ContextUtil.getUUID());
+            apiLog.setInteId(inteId);
+            inteId = getInteId(inteId);
+
+            if (StringUtils.isEmpty(inteId)) {
+                ResponseDto responseDto = new ResponseDto(99, "娌℃湁鑾峰彇鍒版帴鍙�");
+                apiLog.setStatus(99);
+                apiLog.setResult("娌℃湁鑾峰彇鍒版帴鍙�");
+                apiLogRep.save(apiLog);
+                return responseDto;
+            }
+
+            if (conf == null) {
+                ResponseDto responseDto = new ResponseDto(99, "娌℃湁鑾峰彇鍒颁笂浼犻厤缃�");
+                apiLog.setStatus(99);
+                apiLog.setResult("娌℃湁鑾峰彇鍒颁笂浼犻厤缃�");
+                apiLogRep.save(apiLog);
+                return responseDto;
+            }
+
+            //灏佽鏁版嵁
+            WhjlPullReqDto reqData = new WhjlPullReqDto();
+            //鎶ユ枃鏍囪瘑ID
+            reqData.setId(ContextUtil.getUUID());
+            //韬唤ID
+            reqData.setUid(conf.getUserName());
+            //搴旂敤鐮�
+            reqData.setAppcode(conf.getAppCode());
+            //鏃堕棿鎴�
+            reqData.setTimestamp(Long.valueOf(ContextUtil.getCurTimeMillis()));
+            //韬唤绛惧悕锛屽搴旂敤鐮乢鎺堟潈鐮乢绔欑偣缂栫爜_鎶ユ枃ID_鏃堕棿鎴宠繘琛孧D5绠楁硶绛惧悕
+            String accessToken = reqData.getAppcode() +"_" + conf.getPassword() +"_" + reqData.getUid() + "_" + reqData.getId() + "_" + reqData.getTimestamp();
+            log.info("韬唤绛惧悕锛�" + accessToken);
+            reqData.setAccesstoken(MyMD5Util.encrypt(accessToken));
+
+            String url = conf.getApiUrl().replace("secure", "share");
+            WhjlPullRespDto responseDto = whjl2023HttpClientUtil.postPullData(url + inteId, reqData);
+            apiLog.setStatus(responseDto.getCode() == 200 ? 0 : responseDto.getCode());
+            apiLog.setKqdm(kqdm);
+            apiLog.setUploadTime(new Date());
+
+            apiLogRep.save(apiLog);
+            ResponseDto resd = new ResponseDto();
+            resd.setSuccess(responseDto.getCode() == 200 ? 0 : responseDto.getCode());
+            resd.setData(responseDto.getData());
+            return resd;
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+            return new ResponseDto(99, e.getMessage());
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3