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 | 265 +++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 205 insertions(+), 60 deletions(-) diff --git a/src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java b/src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java index d5b1b13..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; @@ -10,12 +11,15 @@ import com.fzzy.api.service.ApiTriggerService; 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.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.*; @@ -39,6 +43,8 @@ private ApiTriggerService apiTriggerService; @Autowired private ApiLogRep apiLogRep; + @Autowired + private Whjl2023HttpClientUtil whjl2023HttpClientUtil; @Override public String getProtocol() { @@ -64,7 +70,7 @@ ApiLog apiLog = new ApiLog(); apiLog.setId(ContextUtil.getUUID()); apiLog.setInteId(inteId); - String jsonData = getJsonData(inteId, data); + String jsonData = getJsonData(data); log.info("鎺ュ彛鏁版嵁淇℃伅=" + jsonData); inteId = getInteId(inteId); if (StringUtils.isEmpty(inteId)) { @@ -86,42 +92,46 @@ return responseDto; } + //灏佽鎺ㄩ�佹暟鎹� + WhjlReqDto reqData = new WhjlReqDto(); + //鎶ユ枃鏍囪瘑ID + reqData.setId(ContextUtil.getUUID()); + //韬唤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)){ - ResponseDto responseDto = new ResponseDto(99, "鎸囦护id澶辨晥"); - apiLog.setStatus(99); - apiLog.setResult("鎸囦护id澶辨晥"); - apiLogRep.save(apiLog); - return responseDto; + orderId = reqData.getId(); } - - //灏佽鎺ㄩ�佹暟鎹� - WhjlReqDto reqData = new WhjlReqDto(); - reqData.setId(ContextUtil.getUUID()); - reqData.setUid(conf.getKqdm()); - //鎸囦护ID reqData.setOrderid(orderId); - 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)); + //搴旂敤鐮� + 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); @@ -137,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) { @@ -161,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; @@ -187,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