From 4632256b4056ab3a63da6aea1745a042e8e4e16a Mon Sep 17 00:00:00 2001 From: YYC <1833023622@qq.com> Date: 星期五, 18 八月 2023 19:52:17 +0800 Subject: [PATCH] 基础数据上报--单位、库区、仓房 --- src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java | 102 ++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 89 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java b/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java index d7ce01a..4ec8b8c 100644 --- a/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java +++ b/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java @@ -4,23 +4,25 @@ import com.fzzy.api.data.ApiParam; import com.fzzy.api.data.PushProtocol; import com.fzzy.api.dto.ResponseDto; -import com.fzzy.api.entity.Api1102; -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.*; import com.fzzy.api.view.repository.Api1102Rep; +import com.fzzy.api.view.repository.Api1104Rep; import com.fzzy.api.view.repository.ApiLogRep; -import com.fzzy.push.sh2023.dto.SH2023ReqDto; -import com.fzzy.push.sh2023.dto.SH2023RespDto; +import com.fzzy.push.sh2023.dto.*; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateFormatUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -45,6 +47,8 @@ private ApiLogRep apiLogRep; @Autowired private Api1102Rep api1102Rep; + @Autowired + private Api1104Rep api1104Rep; @Override public String getProtocol() { @@ -60,7 +64,8 @@ public ResponseDto pushData(ApiParam param, ApiConfs conf, Object data) { String inteId = param.getInteId(); String kqdm = param.getKqdm(); - + //鏌ヨ搴撳尯淇℃伅琛屾斂鍖哄垝鐮� + List<Api1102> api1102List = api1102Rep.findPushData(conf.getKqdm()); try { if (null == conf) { conf = apiCommonService.getConf(kqdm); @@ -70,7 +75,7 @@ ApiLog apiLog = new ApiLog(); apiLog.setId(ContextUtil.getUUID()); apiLog.setInteId(inteId); - String jsonData = getJsonData(inteId, data); + String jsonData = getJsonData(inteId, data, api1102List.get(0).getXzqhdm()); log.info("鎺ュ彛鏁版嵁淇℃伅=" + jsonData); if (StringUtils.isEmpty(inteId)) { @@ -96,8 +101,7 @@ SH2023ReqDto reqData = new SH2023ReqDto(); reqData.setId(ContextUtil.getUUID()); //鑾峰彇韬唤ID锛屽嵆琛屾斂鍖哄垝鐮� - List<Api1102> api1102List = api1102Rep.findPushData(conf.getKqdm()); - if(null == api1102List || api1102List.isEmpty()){ + if (null == api1102List || api1102List.isEmpty()) { ResponseDto responseDto = new ResponseDto(99, "娌℃湁鑾峰彇鍒拌韩浠絀D"); apiLog.setStatus(99); apiLog.setResult("娌℃湁鑾峰彇鍒拌韩浠絀D"); @@ -108,9 +112,9 @@ //鎸囦护id reqData.setOrderid(param.getOrderid()); //韬唤绛惧悕锛屽鍦板尯琛屾斂鍖哄垝浠g爜_褰撳ぉ鏃ユ湡杩涜MD5绠楁硶绛惧悕 - reqData.setAccess_token(RSAUtils.encryptData(reqData.getUid() + "_" + DateFormatUtils.format(new Date(), "yyyy-MM-dd"),conf.getPublicKey())); + reqData.setAccess_token(RSAUtils.encryptData(reqData.getUid() + "_" + DateFormatUtils.format(new Date(), "yyyy-MM-dd"), conf.getPublicKey())); //鏁版嵁鎬绘潯鏁� - List<Object> list = (List<Object>)data; + List<Object> list = (List<Object>) data; reqData.setDatalength(list.size()); //鏁版嵁杩涜SM4鍔犲瘑 reqData.setData(jsonData); @@ -140,13 +144,85 @@ * @return * @throws Exception */ - private String getJsonData(String inteId, Object data) { + private String getJsonData(String inteId, Object data, String code) { //鍏蜂綋鏍规嵁鎺ュ彛杩涜灏佽 if (SH2023Constant.SH_2023_API_CODE_1101.equals(inteId)) { - return JSON.toJSONString(data); + SH2023Api1101 api1101; + //鏈�鍚庤浆鎹负json + List<SH2023Api1101> list = new ArrayList<>(); + //鎶奷ata杞寲鎴恖ist闆嗗悎 + List<Api1101> api1101List = castList(data, Api1101.class); + //鏌ヨ寤掗棿鏁� + List<Api1104> api1104List = api1104Rep.findPushData(api1101List.get(0).getKqdm()); + for (Api1101 apiData : api1101List) { + api1101 = new SH2023Api1101(); + BeanUtils.copyProperties(apiData, api1101); + api1101.setAjs(api1104List.size()); + api1101.setBjw(ShAreaBjw.getBjw(code)); + list.add(api1101); + } + return JSON.toJSONString(list); + } else if (SH2023Constant.SH_2023_API_CODE_1102.equals(inteId)) { + SH2023Api1102 api1102; + //鏈�鍚庤浆鎹负json + List<SH2023Api1102> list = new ArrayList<>(); + //鎶奷ata杞寲鎴恖ist闆嗗悎 + List<Api1102> api1101List = castList(data, Api1102.class); + //鏌ヨ寤掗棿鏁� + List<Api1104> api1104List = api1104Rep.findPushData(api1101List.get(0).getKqdm()); + //璁$畻鍌ㄥ浠撳 + Double count = 0.0; + for (Api1104 api1104 : api1104List) { + count = count + api1104.getAjsjcrong(); + } + for (Api1102 apiData : api1101List) { + api1102 = new SH2023Api1102(); + BeanUtils.copyProperties(apiData, api1102); + api1102.setAjs(api1104List.size()); + api1102.setBjw(ShAreaBjw.getBjw(code)); + api1102.setCbcr(count); + list.add(api1102); + } + return JSON.toJSONString(list); + } else if (SH2023Constant.SH_2023_API_CODE_1103.equals(inteId)) { + SH2023Api1103 api1103; + //鏈�鍚庤浆鎹负json + List<SH2023Api1103> list = new ArrayList<>(); + //鎶奷ata杞寲鎴恖ist闆嗗悎 + List<Api1103> api1103List = castList(data, Api1103.class); + //鏌ヨ寤掗棿鏁� + List<Api1104> api1104List = api1104Rep.findPushData(api1103List.get(0).getKqdm()); + for (Api1103 apiData : api1103List) { + api1103 = new SH2023Api1103(); + BeanUtils.copyProperties(apiData, api1103); + api1103.setAjs(api1104List.size()); + api1103.setBjw(ShAreaBjw.getBjw(code)); + list.add(api1103); + } + return JSON.toJSONString(list); } else { return JSON.toJSONString(data); } } + /** + * Object绫诲瀷杞彉涓篖ist + * + * @param obj + * @param clazz + * @param <T> + * @return + */ + public static <T> List<T> castList(Object obj, Class<T> clazz) { + List<T> result = new ArrayList<T>(); + if (obj instanceof List<?>) { + for (Object o : (List<?>) obj) { + result.add(clazz.cast(o)); + } + return result; + } + return null; + } + + } \ No newline at end of file -- Gitblit v1.9.3