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/shjdjw2023/ShjdjwApiRemoteService2023.java | 448 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 370 insertions(+), 78 deletions(-) diff --git a/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java b/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java index e6e638a..5307143 100644 --- a/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java +++ b/src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java @@ -1,38 +1,32 @@ package com.fzzy.push.shjdjw2023; import com.alibaba.fastjson.JSON; -import com.fzzy.api.Constant; import com.fzzy.api.data.ApiParam; import com.fzzy.api.data.PushProtocol; import com.fzzy.api.dto.ResponseDto; -import com.fzzy.api.entity.Api1101; -import com.fzzy.api.entity.Api1103; -import com.fzzy.api.entity.ApiConfs; -import com.fzzy.api.entity.ApiLog; +import com.fzzy.api.entity.*; 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.RedisUtil; -import com.fzzy.api.view.repository.Api1101Rep; -import com.fzzy.api.view.repository.Api1103Rep; -import com.fzzy.api.view.repository.ApiLogRep; -import com.fzzy.push.shjdjw2023.dto.ShjdjwApi1101; -import com.fzzy.push.shjdjw2023.dto.ShjdjwReqDto; -import com.fzzy.push.shjdjw2023.dto.ShjdjwRespDto; +import com.fzzy.api.view.repository.*; +import com.fzzy.push.sh2023.dto.ShAreaBjw; +import com.fzzy.push.shjdjw2023.dto.*; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; - import java.util.*; /** * 涓婃捣鍢夊畾绾鐩戠骞冲彴-涓婁紶鏁版嵁鏈嶅姟绫� * * @author czt - * @date 2023/5/9 14:09 + * @date 2023/12/26 */ @Slf4j @Data @@ -44,12 +38,31 @@ @Autowired private ApiCommonService apiCommonService; @Autowired + private ApiTriggerService apiTriggerService; + @Autowired private ApiLogRep apiLogRep; @Autowired private Api1101Rep api1101Rep; @Autowired + private Api1102Rep api1102Rep; + @Autowired private Api1103Rep api1103Rep; - + @Autowired + private Api1104Rep api1104Rep; + @Autowired + private Api1105Rep api1105Rep; + @Autowired + private Api1202Rep api1202Rep; + @Autowired + private Api1205Rep api1205Rep; + @Autowired + private Api1208Rep api1208Rep; + @Autowired + private Api1210Rep api1210Rep; + @Autowired + private Api1403Rep api1403Rep; + @Autowired + private Api1404Rep api1404Rep; @Override public String getProtocol() { @@ -59,6 +72,12 @@ @Override public ResponseDto pushData(ApiParam param, Object data) { return pushData(param, null, data); + } + + @Override + public ResponseDto pullData(ApiParam param, ApiConfs conf) { + //璇ュ崗璁棤姝ゅ疄鐜� + return null; } @Override @@ -74,25 +93,29 @@ //娣诲姞鏃ュ織 ApiLog apiLog = new ApiLog(); apiLog.setId(ContextUtil.getUUID()); - apiLog.setInteId(param.getInteId()); + apiLog.setInteId(inteId); - //鑾峰彇鎺ュ彛缂栫爜 - String interfaceId = getDataId(inteId); - - //鑾峰彇json鏁版嵁 - String jsonData = getJsonData(inteId, data, interfaceId); - - if (StringUtils.isEmpty(interfaceId)) { + if (StringUtils.isEmpty(inteId)) { ResponseDto responseDto = new ResponseDto(99, "娌℃湁鑾峰彇鍒版帴鍙�", bizId); apiLog.setStatus(99); apiLog.setResult("娌℃湁鑾峰彇鍒版帴鍙�"); apiLogRep.save(apiLog); return responseDto; } - apiLog.setData(jsonData); + + //鏌ヨ搴撳尯淇℃伅琛屾斂鍖哄垝鐮� + List<Api1102> api1102List = api1102Rep.findPushData(kqdm); + //鑾峰彇json鏁版嵁 + List<Object> list = getJsonData(inteId, data, api1102List.get(0).getXzqhdm()); + ShjdjwReqDto reqData = new ShjdjwReqDto(); + //鎺ュ彛ID + reqData.setId(getInteId(inteId)); + //涓婁紶鏁版嵁锛屽姞瀵� + reqData.setData(list); + + apiLog.setData(JSON.toJSONString(reqData)); apiLog.setKqdm(kqdm); apiLog.setUploadTime(new Date()); - if (conf == null) { ResponseDto responseDto = new ResponseDto(99, "娌℃湁鑾峰彇鍒颁笂浼犻厤缃�", bizId); apiLog.setStatus(99); @@ -101,8 +124,12 @@ return responseDto; } - Map<String, Object> map = new HashMap<>(); - ShjdjwRespDto responseDto = Shjdjw2023HttpClientUtil.postPushData(conf.getApiUrl(), jsonData, conf); + String jsonStr = JSON.toJSONString(reqData); + log.info("涓婃姤鏁版嵁淇℃伅=" + jsonStr); + jsonStr = AESUtils.encryptByEcb(jsonStr, conf.getPublicKey()); + + ShjdjwRespDto responseDto = Shjdjw2023HttpClientUtil.postPushData(conf.getApiUrl(), jsonStr, conf); + responseDto.setBizId(bizId); apiLog.setStatus(responseDto.getCode() == 1 ? 0 : responseDto.getCode()); apiLog.setResult(responseDto.getDescription()); @@ -110,12 +137,64 @@ ResponseDto resd = new ResponseDto(); resd.setSuccess(responseDto.getCode() == 1 ? 0 : responseDto.getCode()); resd.setMsg(responseDto.getDescription()); - //updateGD2022AuthToken(responseDto,conf, token); return resd; } catch (Exception e) { log.error(e.getMessage(), e); return new ResponseDto(99, e.getMessage()); } + } + + /** + * 鑾峰彇鎺ュ彛id + * + * @param inteId + * @return + */ + private String getInteId(String inteId) { + switch (inteId) { + case "1101": + return ShjdjwApiCodeConstant.API_CODE_1101_ID; + case "1102": + return ShjdjwApiCodeConstant.API_CODE_1102_ID; + case "1103": + return ShjdjwApiCodeConstant.API_CODE_1103_ID; + case "1104": + return ShjdjwApiCodeConstant.API_CODE_1104_ID; + case "1105": + return ShjdjwApiCodeConstant.API_CODE_1105_ID; + case "1202": + return ShjdjwApiCodeConstant.API_CODE_1202_ID; + case "1203": + return ShjdjwApiCodeConstant.API_CODE_1203_ID; + case "1205": + return ShjdjwApiCodeConstant.API_CODE_1205_ID; + case "1209": + return ShjdjwApiCodeConstant.API_CODE_1209_ID; + case "1310": + return ShjdjwApiCodeConstant.API_CODE_1310_ID; + case "1403": + return ShjdjwApiCodeConstant.API_CODE_1403_ID; + case "1404": + return ShjdjwApiCodeConstant.API_CODE_1404_ID; + default: + return inteId; + } + } + + /** + * 杞负JSON + * + * @param inteId + * @param data + * @param code + * @return + */ + private List<Object> getJsonData(String inteId, Object data, String code) { + + List<Object> list = new ArrayList<>(); + Object object = getJsonApiData(inteId, data, code); + list.add(object); + return list; } /** @@ -126,62 +205,275 @@ * @return * @throws Exception */ - private String getJsonData(String inteId, Object data, String interfaceId) { - ShjdjwReqDto<Object> dto = new ShjdjwReqDto<>(); - dto.setId(getDataId(interfaceId)); - List<Object> list = new ArrayList<>(); - //杞崲灏佽 - if (Constant.API_CODE_1102.equals(inteId)) { - ShjdjwApi1101 shjdjwApi1101 = new ShjdjwApi1101(); - BeanUtils.copyProperties(data, shjdjwApi1101); - //鏌ヨ鍗曚綅淇℃伅 - List<Api1101> listApi1101 = api1101Rep.findPushData(shjdjwApi1101.getKqdm()); - Api1101 api1101 = null; - if(null != listApi1101 && listApi1101.size() > 0){ - api1101 = listApi1101.get(0); - } - if(null != api1101){ - shjdjwApi1101.setDwmc(api1101.getDwmc()); - shjdjwApi1101.setKqs(api1101.getKqs()); - } + + private Object getJsonApiData(String inteId, Object data, String code) { + //鍏蜂綋鏍规嵁鎺ュ彛杩涜灏佽 + if (ShjdjwApiCodeConstant.API_CODE_1101.equals(inteId)) { + Shjdjw2023Api1101 api1101 = new Shjdjw2023Api1101(); + BeanUtils.copyProperties(data, api1101); + + return api1101; + } + if (ShjdjwApiCodeConstant.API_CODE_1102.equals(inteId)) { + Shjdjw2023Api1102 api1102 = new Shjdjw2023Api1102(); + BeanUtils.copyProperties(data, api1102); + + return api1102; + } + if (ShjdjwApiCodeConstant.API_CODE_1103.equals(inteId)) { + Shjdjw2023Api1103 api1103 = new Shjdjw2023Api1103(); + BeanUtils.copyProperties(data, api1103); + + return api1103; + } + if (ShjdjwApiCodeConstant.API_CODE_1104.equals(inteId)) { + Shjdjw2023Api1104 api1104 = new Shjdjw2023Api1104(); + Api1104 apiData = (Api1104) data; + //鏌ヨ浠撴埧淇℃伅 - List<Api1103> listApi1103 = api1103Rep.findPushData(shjdjwApi1101.getKqdm()); - if(null != listApi1103 && listApi1103.size() > 0){ - for(int i = 0; i < listApi1103.size(); i++){ - if(i == 0){ - shjdjwApi1101.setCfmc(listApi1103.get(i).getCfmc()); - }else { - shjdjwApi1101.setCfmc(shjdjwApi1101.getCfmc() + "#" + listApi1103.get(i).getCfmc()); + List<Api1103> api1103List = api1103Rep.findPushDataByCfdm(apiData.getCfbh()); + List<Api1104> api1104List = api1104Rep.findDataByCfbh(apiData.getCfbh()); + int num = 2; + if (null != api1104List && api1104List.size() > 0) { + num = api1104List.size(); + } + if (null != api1103List && api1103List.size() > 0) { + Api1103 api1103 = api1103List.get(0); + BeanUtils.copyProperties(api1103, api1104); + api1104.setCwc(api1103.getCwc() / num); + api1104.setCnc(api1103.getCnc() / num); + api1104.setSjcr(api1103.getSjcr() / num); + } + BeanUtils.copyProperties(apiData, api1104); + api1104.setAjdm(apiData.getAjdh()); + api1104.setCfdm(apiData.getCfbh()); + + //璁剧疆绮鎬ц川浠g爜(鏌ョ湅寤掗棿瀵瑰簲鐨勬渶鏂板簱瀛樿繘琛岃祴鍊�) + List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1104.getAjdm() + "01"); + if (null != api1208List && api1208List.size() > 0) { + api1104.setLsxzdm(api1208List.get(0).getLsxzdm()); + } + + return api1104; + } + if (ShjdjwApiCodeConstant.API_CODE_1105.equals(inteId)) { + Shjdjw2023Api1105 api1105 = new Shjdjw2023Api1105(); + BeanUtils.copyProperties(data, api1105); + + return api1105; + } + if (ShjdjwApiCodeConstant.API_CODE_1202.equals(inteId)) { + Shjdjw2023Api1202 api1202 = new Shjdjw2023Api1202(); + Api1202 apiData = (Api1202) data; + BeanUtils.copyProperties(apiData, api1202); + api1202.setBjw(ShAreaBjw.getBjw(code)); + api1202.setJzrq(apiData.getCmsj()); + if (StringUtils.isEmpty(api1202.getCddm())) { + api1202.setCddm(api1202.getHwdm().substring(2, 8)); + } + if (StringUtils.isEmpty(api1202.getRkjsdh())) { + api1202.setRkjsdh("0"); + } + //璁剧疆绮杞崲骞村害,鏍规嵁璁″垝鏄庣粏鍙锋煡璇㈣鍒掓槑缁嗭紝鍐嶆牴鎹鍒掓槑缁嗘煡璇㈣疆鎹㈣鍒� + List<Api1404> api1404List = api1404Rep.getDataByJhmxdh(apiData.getJhmxh()); + if (null != api1404List && api1404List.size() > 0) { + if(StringUtils.isEmpty(api1202.getShnd())){ + api1202.setShnd(api1404List.get(0).getShnd()); + } + List<Api1403> api1403List = api1403Rep.getDataByLhjhdh(api1404List.get(0).getLhjhdh()); + if (null != api1403List && api1403List.size() > 0) { + if (StringUtils.isNotEmpty(api1403List.get(0).getJhnd())) { + api1202.setLhnd(api1403List.get(0).getJhnd()); } } } - //鍗曚綅淇℃伅灏佽 - list.add(shjdjwApi1101); - } else if (Constant.API_CODE_1202.equals(inteId)) { - list.add(data); - } else { - list.add(data); + //鏌ヨ绮鎬ц川杞彉鍗曞彿(鏍规嵁鍏ュ簱鏃堕棿鍜岃揣浣嶄唬鐮佹煡璇㈢伯椋熸�ц川杞彉鍗�) + List<Api1210> api1210List = api1210Rep.findDataByHwdmAndTime(api1202.getHwdm(), api1202.getCmsj()); + if (null != api1210List && api1210List.size() > 0) { + api1202.setLsxzzbdh(api1210List.get(0).getLsxzzbdh()); + } + //璁剧疆鎵规鍙� + List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1202.getHwdm()); + if (null != api1208List && api1208List.size() > 0) { + api1202.setPch(apiData.getHwdm() + api1208List.get(0).getShnd()); + } + //绮鎬ц川 + api1202.setLsxzdm("200"); + + return api1202; } - dto.setData(list); - return JSON.toJSONString(dto); + if (ShjdjwApiCodeConstant.API_CODE_1203.equals(inteId)) { + Shjdjw2023Api1203 api1203 = new Shjdjw2023Api1203(); + Api1203 apiData = (Api1203) data; + BeanUtils.copyProperties(apiData, api1203); + api1203.setBjw(ShAreaBjw.getBjw(code)); + if (StringUtils.isEmpty(api1203.getJyxm())) { + api1203.setJyxm("0"); + } + if (StringUtils.isEmpty(api1203.getJyz())) { + api1203.setJyz("0"); + } + if (StringUtils.isEmpty(api1203.getZkj())) { + api1203.setZkj("0"); + } + if (StringUtils.isEmpty(api1203.getZkl())) { + api1203.setZkl("0"); + } + //璁剧疆鎵规鍙� + List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1203.getHwdm()); + if (null != api1208List && api1208List.size() > 0) { + api1203.setPch(apiData.getHwdm() + api1208List.get(0).getShnd()); + } + //璁剧疆璐ㄦ缂栫爜(榛樿绛夊悓浜庡叆搴撹川妫�鍗曞彿),鑻ヤ负鑸硅繍锛屽垯璁剧疆涓虹郴缁熷唴鑸硅繍鐨勫崟鍙� + api1203.setZjbh(api1203.getRkjydh()); + List<Api1202> api1202List = api1202Rep.getDataById(api1203.getRkywdh()); + if (null != api1202List && api1202List.size() > 0) { + if (api1202List.get(0).getYsgj().equals("3")) { + api1203.setZjbh(api1202List.get(0).getBizId().substring(2)); + } + } + return api1203; + } + if (ShjdjwApiCodeConstant.API_CODE_1205.equals(inteId)) { + + Shjdjw2023Api1205 api1205 = new Shjdjw2023Api1205(); + Api1205 apiData = (Api1205) data; + BeanUtils.copyProperties(apiData, api1205); + api1205.setBjw(ShAreaBjw.getBjw(code)); + + api1205.setJzrq(apiData.getCmsj()); + if (StringUtils.isEmpty(api1205.getCddm())) { + api1205.setCddm(api1205.getHwdm().substring(2, 8)); + } + if (StringUtils.isEmpty(api1205.getCkjsdh())) { + api1205.setCkjsdh("0"); + } + + //璁剧疆绮杞崲骞村害 + List<Api1404> api1404List = api1404Rep.getDataByJhmxdh(apiData.getJhmxh()); + if (null != api1404List && api1404List.size() > 0) { + if(StringUtils.isEmpty(api1205.getShnd())){ + api1205.setShnd(api1404List.get(0).getShnd()); + } + List<Api1403> api1403List = api1403Rep.getDataByLhjhdh(api1404List.get(0).getLhjhdh()); + if (null != api1403List && api1403List.size() > 0) { + if (StringUtils.isNotEmpty(api1403List.get(0).getJhnd())) { + api1205.setLhnd(api1403List.get(0).getJhnd()); + } + } + } + + //璁剧疆鎵规鍙� + List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1205.getHwdm()); + if (null != api1208List && api1208List.size() > 0) { + api1205.setPch(apiData.getHwdm() + api1208List.get(0).getShnd()); + } + + //绮鎬ц川 + api1205.setLsxzdm("200"); + + return api1205; + } + if (ShjdjwApiCodeConstant.API_CODE_1209.equals(inteId)) { + + Shjdjw2023Api1209 api1209 = new Shjdjw2023Api1209(); + Api1209 apiData = (Api1209) data; + + BeanUtils.copyProperties(apiData, api1209); + api1209.setDjlx("2"); + api1209.setSzjl(apiData.getQzszkl()); + api1209.setZrshde(apiData.getQzzrshde()); + api1209.setBjw(ShAreaBjw.getBjw(code)); + api1209.setJzrq(apiData.getYwrq()); + List<Api1208> api1208List = api1208Rep.findDataByHwdm(api1209.getHwdm()); + if (null != api1208List && api1208List.size() > 0) { + api1209.setPch(api1209.getHwdm() + api1208List.get(0).getShnd()); + } + + //绮鎬ц川,鏆傛椂榛樿鍖虹骇鍌ㄥ + api1209.setLsxzdm("122"); + + return api1209; + } + if (ShjdjwApiCodeConstant.API_CODE_1310.equals(inteId)) { + Shjdjw2023Api1310 api1310 = new Shjdjw2023Api1310(); + Api1310 apiData = (Api1310) data; + BeanUtils.copyProperties(apiData, api1310); + api1310.setBjw(ShAreaBjw.getBjw(code)); + api1310.setJyrq(apiData.getJysj()); + + if (StringUtils.isEmpty(api1310.getJyxm())) { + api1310.setJyxm("0"); + } + if (StringUtils.isEmpty(api1310.getJyxmz())) { + api1310.setJyxmz("0"); + } + String lsxzdm = "122"; + String pch = ""; + List<Api1208> api1208List = api1208Rep.getDataByHwdm(api1310.getHwdm()); + if (null != api1208List && api1208List.size() > 0) { + if (StringUtils.isNotEmpty(api1208List.get(0).getLsxzdm())) { + lsxzdm = api1208List.get(0).getLsxzdm(); + pch = apiData.getHwdm() + api1208List.get(0).getShnd(); + } + } + //璁剧疆鎵规鍙� + api1310.setPch(pch); + api1310.setLsxzdm(lsxzdm); + if (api1310.getYpsl() == 0.0) { + api1310.setYpsl(5.0); + } + if (StringUtils.isEmpty(api1310.getQyrxm())) { + api1310.setQyrxm("鎵︽牱浜�"); + } + if (StringUtils.isEmpty(api1310.getJdrxm())) { + api1310.setJdrxm("鐩戠潱浜�"); + } + if (StringUtils.isEmpty(api1310.getShrxm())) { + api1310.setShrxm("瀹℃牳浜�"); + } + //璁剧疆绌哄睘鎬т负榛樿鍊� + return api1310; + } + if (ShjdjwApiCodeConstant.API_CODE_1403.equals(inteId)) { + Shjdjw2023Api1403 api1403 = new Shjdjw2023Api1403(); + Api1403 apiData = (Api1403) data; + BeanUtils.copyProperties(apiData, api1403); + List<Api1101> api1101List = api1101Rep.findDataByDwdm(apiData.getLhjhdh().substring(0, 18)); + + api1403.setJhzxdw(api1101List.get(0).getDwdm()); + api1403.setJhzxdwmc(api1101List.get(0).getDwmc()); + api1403.setBjw(ShAreaBjw.getBjw(code)); + + //鏌ヨ杞崲璁″垝鐨勮疆鍏ユ暟閲忓拰杞嚭鏁伴噺 + List<Api1404> list = api1404Rep.getDataByLhjhdh(api1403.getLhjhdh()); + Double lrsl = 0.0, lcsl = 0.0; //鐢ㄤ簬缁熻杞叆鏁伴噺鍜岃疆鍑烘暟閲� + if (null != list && list.size() > 0) { + for (Api1404 api1404 : list) { + if (null != api1404.getLhlx() && "2".equals(api1404.getLhlx())) { + lrsl += api1404.getLhsl(); + } + if (null != api1404.getLhlx() && "1".equals(api1404.getLhlx())) { + lcsl += api1404.getLhsl(); + } + } + } + api1403.setLrsl(lrsl + ""); + api1403.setLcsl(lcsl + ""); + + //璁剧疆绌哄睘鎬т负榛樿鍊� + return api1403; + } + if (ShjdjwApiCodeConstant.API_CODE_1404.equals(inteId)) { + Shjdjw2023Api1404 api1404 = new Shjdjw2023Api1404(); + BeanUtils.copyProperties(data, api1404); + api1404.setMxzt("1"); + api1404.setBjw(ShAreaBjw.getBjw(code)); + + //璁剧疆绌哄睘鎬т负榛樿鍊� + return api1404; + } + return data; } - /** - * 鑾峰彇鎺ュ彛缂栫爜 - * - * @param inteId - * @return - */ - private String getDataId(String inteId) { - switch (inteId) { - case "1102": - //鍗曚綅鎺ュ彛缂栫爜 - return ShjdjwApiCodeConstant.API_CODE_LS1101; - case "1202": - return ShjdjwApiCodeConstant.API_CODE_LS1302; - default: - return inteId; - } - - } } -- Gitblit v1.9.3