From abd0a1d82cbfedcc826007f808800a4a3db58902 Mon Sep 17 00:00:00 2001 From: CZT <czt18638530771@163.com> Date: 星期五, 15 九月 2023 18:22:02 +0800 Subject: [PATCH] 优化报文接口查询 --- src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2101PR.java | 196 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 195 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2101PR.java b/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2101PR.java index 5e35394..299f8a4 100644 --- a/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2101PR.java +++ b/src/main/java/com/fzzy/otherview/sh2023/pr/SHApi2101PR.java @@ -1,6 +1,46 @@ package com.fzzy.otherview.sh2023.pr; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.bstek.dorado.annotation.DataProvider; +import com.bstek.dorado.annotation.DataResolver; +import com.bstek.dorado.annotation.Expose; +import com.bstek.dorado.data.provider.Page; +import com.fzzy.api.Constant; +import com.fzzy.api.data.ApiParam; +import com.fzzy.api.dto.ResponseDto; +import com.fzzy.api.entity.Api1204; +import com.fzzy.api.entity.ApiConfs; +import com.fzzy.api.entity.ApiInfoData; +import com.fzzy.api.service.ApiCommonService; +import com.fzzy.api.service.ApiPushManager; +import com.fzzy.api.service.ApiRemoteService; +import com.fzzy.api.utils.ContextUtil; +import com.fzzy.api.view.repository.ApiInfoDataRep; +import com.fzzy.otherview.gd2022.dto.GdApi1023; +import com.fzzy.otherview.whhpjl.WhjlConstant; +import com.fzzy.otherview.whhpjl.dto.WhjlApi1101; +import com.fzzy.push.gd2022.ApiCodeConstant; +import com.fzzy.push.sh2023.SH2023Constant; +import com.fzzy.push.sh2023.dto.SH2023Api2101; +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.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Component; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; /** * 涓婃捣甯傛帴鍙�-2101 妫�鏂ゅ崟 @@ -8,8 +48,162 @@ * @author czt * @date 2023/8/17 */ -@Component +@Component(value = "sHApi2101PR") public class SHApi2101PR { + @Autowired + private ApiInfoDataRep apiInfoDataRep; + @Autowired + private ApiCommonService apiCommonService; + @Autowired + private ApiPushManager apiPushManager; + + /** + * 鑾峰彇淇℃伅 + * sHApi2101PR#listData + * + * @return + */ + @DataProvider + public void listData(Page<SH2023Api2101> page, ApiParam param) { + + Pageable pageable = PageRequest.of(page.getPageNo() - 1, page.getPageSize(), Sort.Direction.DESC, "updateTime"); + + Specification specification = new Specification<ApiInfoData>() { + private static final long serialVersionUID = 1L; + + @Override + public Predicate toPredicate(Root<ApiInfoData> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder criteriaBuilder) { + List<Predicate> predicates = new ArrayList<>(); //鎵�鏈夌殑鏂█ + Predicate predicate = criteriaBuilder.equal(root.get("inteId"), SH2023Constant.SH_2023_API_CODE_2101); + predicates.add(predicate); + if (null != param) { + if (StringUtils.isNotBlank(param.getKqdm())) { + Predicate predicate1 = criteriaBuilder.equal(root.get("kqdm"), param.getKqdm()); + predicates.add(predicate1); + } + + if (StringUtils.isNotBlank(param.getCzbz())) { + Predicate predicate2 = criteriaBuilder.equal(root.get("czbz"), param.getCzbz()); + predicates.add(predicate2); + } + if (null != param.getStart()) { + Predicate predicate3 = criteriaBuilder.greaterThan(root.get("updateTime"), ContextUtil.getCurZero(param.getStart())); + predicates.add(predicate3); + } + + if (null != param.getEnd()) { + Predicate predicate4 = criteriaBuilder.lessThan(root.get("updateTime"), ContextUtil.getNextZero(param.getEnd())); + predicates.add(predicate4); + } + } + return criteriaBuilder.and(predicates.toArray(new Predicate[0])); + } + }; + org.springframework.data.domain.Page<ApiInfoData> japPage = apiInfoDataRep.findAll(specification, pageable); + page.setEntityCount((int) japPage.getTotalElements()); + List<SH2023Api2101> list = new ArrayList<>(); + SH2023Api2101 sh2023Api2101; + for (ApiInfoData infoData : japPage.getContent()) { + sh2023Api2101 = JSONObject.parseObject(infoData.getData(), SH2023Api2101.class); + list.add(sh2023Api2101); + } + page.setEntities(list); + + } + + /** + * sHApi2101PR#saveData + */ + @DataResolver + public void saveData(SH2023Api2101 data) { + if (null == data.getPch() || data.getPch() == "") { + data.setPch(data.getHwdm() + DateFormatUtils.format(data.getJjrq(), "yyyy")); + } + ApiInfoData infoData; + List<ApiInfoData> apiInfoList = apiInfoDataRep.getDataByInteAndData(SH2023Constant.SH_2023_API_CODE_2101, data.getJjdh(),data.getKqdm()); + if (apiInfoList.size() != 0) { + infoData = apiInfoList.get(0); + infoData.setData(JSON.toJSONString(data)); + } else { + infoData = new ApiInfoData(); + infoData.setId(ContextUtil.getUUID()); + infoData.setKqdm(data.getKqdm()); + infoData.setInteId(SH2023Constant.SH_2023_API_CODE_2101); + infoData.setUpdateTime(new Date()); + infoData.setDataId(data.getJjdh()); + infoData.setData(JSON.toJSONString(data)); + infoData.setCzbz(data.getCzbz()); + infoData.setRemarks("澶囨敞淇℃伅"); + } + + apiInfoDataRep.save(infoData); + } + + /** + * sHApi2101PR#delData + */ + @Expose + public void delData(SH2023Api2101 data) { + List<ApiInfoData> apiInfoList = apiInfoDataRep.getDataByInteAndData(SH2023Constant.SH_2023_API_CODE_2101, data.getJjdh(),data.getKqdm()); + apiInfoDataRep.deleteById(apiInfoList.get(0).getId()); + } + + /** + * sHApi2101PR#delUpdate + */ + @Expose + public String delUpdate(SH2023Api2101 data) { + if (null == data) { + return "鏃犳暟鎹墽琛�"; + } + List<ApiInfoData> apiInfoList = apiInfoDataRep.getDataByInteAndData(SH2023Constant.SH_2023_API_CODE_2101, data.getJjdh(),data.getKqdm()); + data.setCzbz(Constant.CZBZ_D); + apiInfoDataRep.updateStatus(apiInfoList.get(0).getId(), JSON.toJSONString(data), Constant.CZBZ_D); + return null; + } + + @Expose + public String pushData(List<SH2023Api2101> items) { + ResponseDto responseDto; + String result = ""; + + String kqdm = items.get(0).getKqdm(); + ApiConfs apiConf = apiCommonService.getConf(kqdm); + + if (null == apiConf) { + return "绯荤粺娌℃湁鑾峰彇鍒板綋鍓嶅簱鍖洪厤缃俊鎭紝鎵ц澶辫触"; + } + + //灏佽鍙傛暟 + ApiParam param = new ApiParam(apiConf, "21", SH2023Constant.SH_2023_API_CODE_2101); + + //鑾峰彇瀹炵幇鎺ュ彛 + ApiRemoteService apiService = apiPushManager.getApiRemoteService(param.getPushProtocol()); + if (null == apiService) { + return "绯荤粺娌℃湁褰撳墠鎺ㄩ�佸崗璁厤缃紝鎵ц澶辫触"; + } + + //鎺ㄩ�侊紝鏁版嵁涓洪泦鍚堝舰寮� + responseDto = apiService.pushData(param, apiConf, items); + if (responseDto.getSuccess() == 0) { + //鎺ㄩ�佹垚鍔燂紝鏇存柊鏁版嵁涓婁紶鐘舵�� + ApiInfoData infoData; + for (SH2023Api2101 data : items) { + if (Constant.CZBZ_I.equals(data.getCzbz())) { + //鎺ㄩ�佹垚鍔燂紝鏇存柊鏁版嵁涓婁紶鐘舵�� + List<ApiInfoData> apiInfoList = apiInfoDataRep.getDataByInteAndData(SH2023Constant.SH_2023_API_CODE_2101, data.getJjdh(),data.getKqdm()); + data.setCzbz(Constant.CZBZ_U); + infoData = apiInfoList.get(0); + infoData.setUpdateTime(new Date()); + infoData.setCzbz(Constant.CZBZ_U); + infoData.setData(JSON.toJSONString(data)); + apiInfoDataRep.save(infoData); + } + } + result += responseDto.toString(); + } + return result; + } } -- Gitblit v1.9.3