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/gd2022/pr/GDApi1023PR.java | 219 ++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 161 insertions(+), 58 deletions(-) diff --git a/src/main/java/com/fzzy/otherview/gd2022/pr/GDApi1023PR.java b/src/main/java/com/fzzy/otherview/gd2022/pr/GDApi1023PR.java index 9f9f736..7258a00 100644 --- a/src/main/java/com/fzzy/otherview/gd2022/pr/GDApi1023PR.java +++ b/src/main/java/com/fzzy/otherview/gd2022/pr/GDApi1023PR.java @@ -1,22 +1,41 @@ package com.fzzy.otherview.gd2022.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.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.gd2022.dto.GdApi1023Dtl; import com.fzzy.otherview.gd2022.dto.GdApi1023People; import com.fzzy.otherview.gd2022.dto.GdApi1023Way; -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.SH2023Api2103; +import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateFormatUtils; 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.*; /** @@ -42,91 +61,175 @@ * @return */ @DataProvider - public List<GdApi1023> listData(Map<String, Object> param) { + public void listData(Page<GdApi1023> page, ApiParam param) { - List<ApiInfoData> result = apiInfoDataRep.getDataByInteId(ApiCodeConstant.API_1023); - if(null == result ||result.isEmpty()){ - return null; - } + 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"), ApiCodeConstant.API_1023); + 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<GdApi1023> list = new ArrayList<>(); - GdApi1023 gbApi1023; - for (ApiInfoData infoData : result) { - GdApi1023 gdApi1023= JSONObject.parseObject(infoData.getData(), GdApi1023.class); + GdApi1023 gdApi1023; + for (ApiInfoData infoData : japPage.getContent()) { + gdApi1023 = JSONObject.parseObject(infoData.getData(), GdApi1023.class); list.add(gdApi1023); } - return list; + page.setEntities(list); + } /** * 鑾峰彇鐔忚捀浣滀笟浜哄憳淇℃伅琛� * gDApi1023PR#peopleList - * */ @DataProvider - public List<GdApi1023People> peopleList(Map<String, Object> param) throws Exception { - String xzbm = (String) param.get("xzbm"); - String deptId = (String) param.get("deptId"); - String tbrq = DateFormatUtils.format((Date) param.get("tbrq"), "yyyyMMdd"); - String id = xzbm + deptId + tbrq; - - List<ApiInfoData> infoData = apiInfoDataRep.getDataByDataId(id); - if(null == infoData || infoData.isEmpty()){ - return null; - } - GdApi1023 gdApi1023= JSONObject.parseObject(infoData.get(0).getData(), GdApi1023.class); - if(null == gdApi1023){ - return null; - } - - return gdApi1023.getPeoples(); + public List<GdApi1023People> peopleList(String code) { + return JSON.parseArray(code, GdApi1023People.class); } /** * 鑾峰彇鐔忚捀澶囨鏂瑰紡琛ㄨ〃淇℃伅 * gDApi1023PR#wayList - * */ @DataProvider - public List<GdApi1023Way> wayList(Map<String, Object> param) throws Exception { - String xzbm = (String) param.get("xzbm"); - String deptId = (String) param.get("deptId"); - String tbrq = DateFormatUtils.format((Date) param.get("tbrq"), "yyyyMMdd"); - String id = xzbm + deptId + tbrq; - - List<ApiInfoData> infoData = apiInfoDataRep.getDataByDataId(id); - if(null == infoData || infoData.isEmpty()){ - return null; - } - GdApi1023 gdApi1023= JSONObject.parseObject(infoData.get(0).getData(), GdApi1023.class); - if(null == gdApi1023){ - return null; - } - - return gdApi1023.getWays(); + public List<GdApi1023Way> wayList(String code) { + return JSON.parseArray(code, GdApi1023Way.class); } /** * 瀹炴柦鐔忚捀浣滀笟鐨勫偍绮伯鎯呮槑缁嗚〃 * gDApi1023PR#dtlList - * */ @DataProvider - public List<GdApi1023Dtl> dtlList(Map<String, Object> param) throws Exception { - String xzbm = (String) param.get("xzbm"); - String deptId = (String) param.get("deptId"); - String tbrq = DateFormatUtils.format((Date) param.get("tbrq"), "yyyyMMdd"); - String id = xzbm + deptId + tbrq; + public List<GdApi1023Dtl> dtlList(String code) { + return JSON.parseArray(code, GdApi1023Dtl.class); + } - List<ApiInfoData> infoData = apiInfoDataRep.getDataByDataId(id); - if(null == infoData || infoData.isEmpty()){ - return null; + /** + * gDApi1023PR#saveData + */ + @DataResolver + public void saveData(GdApi1023 data) { + data.setDtlList(JSON.toJSONString(data.getDtls())); + data.setWayList(JSON.toJSONString(data.getWays())); + data.setPeopleList(JSON.toJSONString(data.getPeoples())); + ApiInfoData infoData; + List<ApiInfoData> apiInfoList = apiInfoDataRep.getDataByInteAndData(ApiCodeConstant.API_1023, data.getXzbm(), 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(ApiCodeConstant.API_1023); + infoData.setUpdateTime(new Date()); + infoData.setDataId(data.getXzbm()); + infoData.setData(JSON.toJSONString(data)); + infoData.setCzbz(Constant.CZBZ_I); + infoData.setRemarks("澶囨敞淇℃伅"); } - GdApi1023 gdApi1023= JSONObject.parseObject(infoData.get(0).getData(), GdApi1023.class); - if(null == gdApi1023){ - return null; + apiInfoDataRep.save(infoData); + } + + /** + * gDApi1023PR#delData + */ + @Expose + public void delData(GdApi1023 data) { + List<ApiInfoData> apiInfoList = apiInfoDataRep.getDataByInteAndData(ApiCodeConstant.API_1023, data.getXzbm(), data.getKqdm()); + apiInfoDataRep.deleteById(apiInfoList.get(0).getId()); + } + + /** + * gDApi1023PR#delUpdate + */ + @Expose + public String delUpdate(GdApi1023 data) { + if (null == data) { + return "鏃犳暟鎹墽琛�"; + } + List<ApiInfoData> apiInfoList = apiInfoDataRep.getDataByInteAndData(ApiCodeConstant.API_1023, data.getXzbm(), data.getKqdm()); + data.setCzbz(Constant.CZBZ_D); + apiInfoDataRep.updateStatus(apiInfoList.get(0).getId(), JSON.toJSONString(data), Constant.CZBZ_D); + return null; + } + + /** + * gDApi1023PR#pushData + * + * @param items + * @return + */ + @Expose + public String pushData(List<GdApi1023> items) { + ResponseDto responseDto; + String result = ""; + + String kqdm = items.get(0).getKqdm(); + ApiConfs apiConf = apiCommonService.getConf(kqdm); + + if (null == apiConf) { + return "绯荤粺娌℃湁鑾峰彇鍒板綋鍓嶅簱鍖洪厤缃俊鎭紝鎵ц澶辫触"; } - return gdApi1023.getDtls(); + //灏佽鍙傛暟 + ApiParam param = new ApiParam(apiConf, "21", ApiCodeConstant.API_1023); + + //鑾峰彇瀹炵幇鎺ュ彛 + ApiRemoteService apiService = apiPushManager.getApiRemoteService(param.getPushProtocol()); + if (null == apiService) { + return "绯荤粺娌℃湁褰撳墠鎺ㄩ�佸崗璁厤缃紝鎵ц澶辫触"; + } + + //鎺ㄩ�侊紝鏁版嵁涓洪泦鍚堝舰寮� + responseDto = apiService.pushData(param, apiConf, items); + if (responseDto.getSuccess() == 0) { + //鎺ㄩ�佹垚鍔燂紝鏇存柊鏁版嵁涓婁紶鐘舵�� + + ApiInfoData infoData; + for (GdApi1023 data : items) { + List<ApiInfoData> apiInfoList = apiInfoDataRep.getDataByInteAndData(ApiCodeConstant.API_1023, data.getXzbm(), 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