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/otherview/whhpjl/pr/WhjlApi1111PR.java | 200 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 200 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/fzzy/otherview/whhpjl/pr/WhjlApi1111PR.java b/src/main/java/com/fzzy/otherview/whhpjl/pr/WhjlApi1111PR.java new file mode 100644 index 0000000..46a598b --- /dev/null +++ b/src/main/java/com/fzzy/otherview/whhpjl/pr/WhjlApi1111PR.java @@ -0,0 +1,200 @@ +package com.fzzy.otherview.whhpjl.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.whhpjl.WhjlConstant; +import com.fzzy.otherview.whhpjl.dto.WhjlApi1111; +import com.fzzy.push.gd2022.ApiCodeConstant; +import org.apache.commons.lang.StringUtils; +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; + +/** + * @Author: YYC + * @Description:浠撳偍璁惧鎶ュ簾璁板綍 + * @DateTime: 2023-10-25 14:13 + **/ +@Component +public class WhjlApi1111PR { + + @Autowired + private ApiCommonService apiCommonService; + @Autowired + private ApiPushManager apiPushManager; + @Autowired + private ApiInfoDataRep apiInfoDataRep; + + /** + * 鑾峰彇鍒楄〃淇℃伅 + * WhjlApi1111PR#listData + * + * @return + */ + @DataProvider + public void listData(Page<WhjlApi1111> 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"), WhjlConstant.API_CODE_1111); + 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<WhjlApi1111> list = new ArrayList<>(); + WhjlApi1111 whjlApi1111; + for (ApiInfoData infoData : japPage.getContent()) { + whjlApi1111 = JSONObject.parseObject(infoData.getData(), WhjlApi1111.class); + whjlApi1111.setKqdm(infoData.getKqdm()); + whjlApi1111.setCzbz(infoData.getCzbz()); + whjlApi1111.setUpdateTime(infoData.getUpdateTime()); + whjlApi1111.setBizId(infoData.getDataId()); + list.add(whjlApi1111); + } + page.setEntities(list); + + } + + /** + * 鏇存柊鎴栦慨鏀� + * WhjlApi1111PR#saveData + * + * @param data + * @return + */ + @DataResolver + public void saveData(WhjlApi1111 data) { + ApiInfoData infoData = new ApiInfoData(); + infoData.setId(data.getBizId()); + infoData.setKqdm(data.getKqdm()); + infoData.setInteType(WhjlConstant.API_CATEGORY_12); + infoData.setInteId(WhjlConstant.API_CODE_1111); + infoData.setUpdateTime(new Date()); + infoData.setDataId(data.getBizId()); + infoData.setData(JSON.toJSONString(data)); + infoData.setCzbz(data.getCzbz()); + infoData.setRemarks("澶囨敞淇℃伅"); + + apiInfoDataRep.save(infoData); + } + + /** + * 鍒犻櫎 + * WhjlApi1111PR#delData + * + * @param data + * @return + */ + @Expose + public String delData(WhjlApi1111 data) { + apiInfoDataRep.deleteById(data.getBizId()); + return null; + } + + /** + * 涓婁紶 + * WhjlApi1111PR#pushData + * + * @param items + * @return + */ + @Expose + public String pushData(List<WhjlApi1111> items) { + + String result = ""; + + String kqdm = items.get(0).getKqdm(); + ApiConfs apiConf = apiCommonService.getConf(kqdm); + + if (null == apiConf) { + return "绯荤粺娌℃湁鑾峰彇鍒板綋鍓嶅簱鍖洪厤缃俊鎭紝鎵ц澶辫触"; + } + + //灏佽鍙傛暟 + ApiParam param = new ApiParam(apiConf, WhjlConstant.API_CATEGORY_12, WhjlConstant.API_CODE_1111); + + //鑾峰彇瀹炵幇鎺ュ彛 + ApiRemoteService apiService = apiPushManager.getApiRemoteService(param.getPushProtocol()); + if (null == apiService) { + return "绯荤粺娌℃湁褰撳墠鎺ㄩ�佸崗璁厤缃紝鎵ц澶辫触"; + } + + ResponseDto responseDto; + ApiInfoData infoData; + for (WhjlApi1111 data : items) { + responseDto = apiService.pushData(param, apiConf, data); + if (responseDto.getSuccess() == 0) { + if (Constant.CZBZ_I.equals(data.getCzbz())) { + infoData = new ApiInfoData(); + infoData.setId(data.getBizId()); + infoData.setKqdm(data.getKqdm()); + infoData.setInteType(WhjlConstant.API_CATEGORY_12); + infoData.setInteId(WhjlConstant.API_CODE_1111); + infoData.setUpdateTime(new Date()); + infoData.setDataId(data.getBizId()); + + data.setCzbz(Constant.CZBZ_U); + infoData.setCzbz(Constant.CZBZ_U); + infoData.setData(JSON.toJSONString(data)); + apiInfoDataRep.save(infoData); + } + } + result += responseDto.toString(); + } + return result; + } +} -- Gitblit v1.9.3