From 000de9e8a0507f6c58e08466fe18fdf05edaf7ad Mon Sep 17 00:00:00 2001 From: CZT <czt18638530771@163.com> Date: 星期一, 07 八月 2023 16:30:27 +0800 Subject: [PATCH] 武汉军粮省平台-数据持久化保存及查询 --- src/main/java/com/fzzy/api/view/repository/ApiInfoDataRep.java | 29 +++++++ src/main/java/com/fzzy/api/entity/ApiInfoData.java | 69 +++++++++++++++++ src/main/java/com/fzzy/async/whhpjl/impl/Fz40ToWhjlSync1101.java | 28 ++++++ src/main/java/com/fzzy/whjl/view/pr/WhjlApi1101PR.java | 61 ++++++++++++-- 4 files changed, 175 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/fzzy/api/entity/ApiInfoData.java b/src/main/java/com/fzzy/api/entity/ApiInfoData.java new file mode 100644 index 0000000..c17e759 --- /dev/null +++ b/src/main/java/com/fzzy/api/entity/ApiInfoData.java @@ -0,0 +1,69 @@ +package com.fzzy.api.entity; + +import com.bstek.dorado.annotation.PropertyDef; +import lombok.Data; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; +import java.io.Serializable; +import java.util.Date; + +/** + * 鐢ㄤ簬闈炲浗鏍囨帴鍙f暟鎹殑瀛樺偍 + * + * @author czt + * @date 2023/08/07 + */ +@Data +@Entity +@Table(name = "API_INFO_DATA") +public class ApiInfoData implements Serializable { + + + public static String TYPE_PUSH = "push"; + public static String TYPE_SYNC = "sync"; + + /** + * + */ + private static final long serialVersionUID = -3873863428841103422L; + + @Id + @Column(name = "id", length = 40) + private String id; + + @PropertyDef(label = "搴撳尯浠g爜") + @Column(name = "kqdm", length = 50) + private String kqdm; + + @PropertyDef(label = "鎺ュ彛绫诲瀷") + @Column(name = "inteType", length = 10) + private String inteType; + + @PropertyDef(label = "鎺ュ彛缂栧彿") + @Column(name = "inteId", length = 10) + private String inteId; + + @PropertyDef(label = "鎿嶄綔鏍囧織") + @Column(name = "czbz", length = 1) + private String czbz; + + @PropertyDef(label = "鏈�鍚庢洿鏂版椂闂�") + @Column(name = "updateTime") + private Date updateTime; + + @PropertyDef(label = "鎺ュ彛鏁版嵁涓婚敭") + @Column(name = "dataId", length = 40) + private String dataId; + + @PropertyDef(label = "鏁版嵁鍐呭") + @Column(name = "data", length = 2000) + private String data; + + @PropertyDef(label = "澶囨敞淇℃伅") + @Column(name = "remarks", length = 2000) + private String remarks; + +} \ No newline at end of file diff --git a/src/main/java/com/fzzy/api/view/repository/ApiInfoDataRep.java b/src/main/java/com/fzzy/api/view/repository/ApiInfoDataRep.java new file mode 100644 index 0000000..fce7ebf --- /dev/null +++ b/src/main/java/com/fzzy/api/view/repository/ApiInfoDataRep.java @@ -0,0 +1,29 @@ +package com.fzzy.api.view.repository; + +import com.fzzy.api.entity.ApiInfoData; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import java.util.List; + +public interface ApiInfoDataRep extends JpaRepository<ApiInfoData, String>, JpaSpecificationExecutor<ApiInfoData> { + + + /** + * 鏍规嵁鏁版嵁鍐呭ID鏌ヨ鏁版嵁 + * @param dataId + * @return + */ + @Query("from ApiInfoData where dataId=:dataId ") + List<ApiInfoData> getDataByDataId(@Param("dataId") String dataId); + + /** + * 鏍规嵁鎺ュ彛缂栫爜鏌ヨ鏁版嵁 + * @param inteId + * @return + */ + @Query("from ApiInfoData where inteId=:inteId ") + List<ApiInfoData> getDataByInteId(@Param("inteId") String inteId); + +} \ No newline at end of file diff --git a/src/main/java/com/fzzy/async/whhpjl/impl/Fz40ToWhjlSync1101.java b/src/main/java/com/fzzy/async/whhpjl/impl/Fz40ToWhjlSync1101.java index ebf4954..8d11116 100644 --- a/src/main/java/com/fzzy/async/whhpjl/impl/Fz40ToWhjlSync1101.java +++ b/src/main/java/com/fzzy/async/whhpjl/impl/Fz40ToWhjlSync1101.java @@ -1,11 +1,15 @@ package com.fzzy.async.whhpjl.impl; +import com.alibaba.fastjson.JSON; import com.fzzy.api.Constant; +import com.fzzy.api.entity.ApiInfoData; import com.fzzy.api.entity.ApiLog; import com.fzzy.api.utils.ContextUtil; +import com.fzzy.api.view.repository.ApiInfoDataRep; import com.fzzy.api.view.repository.ApiLogRep; import com.fzzy.async.whhpjl.entity.Fz40WhjlDefaultDept; import com.fzzy.async.whhpjl.repository.Fz40ToWhjlSync1101Rep; +import com.fzzy.whjl.WhjlConstant; import com.fzzy.whjl.dto.WhjlApi1101; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; @@ -29,6 +33,8 @@ private Fz40ToWhjlSync1101Rep fz40ToWhjlSync1101Rep; @Autowired private ApiLogRep apiLogRep; + @Autowired + private ApiInfoDataRep apiInfoDataRep; /** * 鍐涘伐鍗曚綅淇℃伅 @@ -56,6 +62,7 @@ log.info("-------------娌℃湁鑾峰彇鍒板崟浣嶄俊鎭�------------------"); return; } + List<ApiInfoData> apiInfoDataList; WhjlApi1101 apiData; //灏佽鍐涘伐鍗曚綅淇℃伅 for (Fz40WhjlDefaultDept sysData : list) { @@ -87,9 +94,28 @@ apiData.setBizId(sysData.getId()); apiData.setUpdateTime(new Date()); - //TODO 鎸佷箙鍖栦繚瀛樺緟瀹炵幇 + //鎸佷箙鍖栦繚瀛橈紝鍗曠嫭瀛樺叆闈炲浗鏍囨帴鍙h〃 + ApiInfoData infoData = new ApiInfoData(); + infoData.setId(sysData.getId()); + infoData.setKqdm(kqdm); + infoData.setInteType(WhjlConstant.API_CATEGORY_11); + infoData.setInteId(WhjlConstant.API_CODE_1101); + infoData.setUpdateTime(new Date()); + infoData.setDataId(sysData.getId()); + infoData.setRemarks("澶囨敞淇℃伅"); + //璁剧疆鎿嶄綔鏍囧織 + apiInfoDataList = apiInfoDataRep.getDataByDataId(infoData.getDataId()); + if(null == apiInfoDataList || apiInfoDataList.isEmpty()){ + apiData.setCzbz(Constant.CZBZ_I); + infoData.setCzbz(Constant.CZBZ_I); + }else { + apiData.setCzbz(apiInfoDataList.get(0).getCzbz()); + infoData.setCzbz(apiInfoDataList.get(0).getCzbz()); + } + infoData.setData(JSON.toJSONString(apiData)); + apiInfoDataRep.save(infoData); log.info("1101---鍐涘伐鍗曚綅-鍚屾鏁版嵁锛歿}", apiData.toString()); } diff --git a/src/main/java/com/fzzy/whjl/view/pr/WhjlApi1101PR.java b/src/main/java/com/fzzy/whjl/view/pr/WhjlApi1101PR.java index 657e8a1..4437aac 100644 --- a/src/main/java/com/fzzy/whjl/view/pr/WhjlApi1101PR.java +++ b/src/main/java/com/fzzy/whjl/view/pr/WhjlApi1101PR.java @@ -1,5 +1,7 @@ package com.fzzy.whjl.view.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; @@ -7,14 +9,17 @@ 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.view.repository.ApiInfoDataRep; import com.fzzy.whjl.WhjlConstant; import com.fzzy.whjl.dto.WhjlApi1101; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -29,6 +34,8 @@ private ApiCommonService apiCommonService; @Autowired private ApiPushManager apiPushManager; + @Autowired + private ApiInfoDataRep apiInfoDataRep; /** * 鑾峰彇鍒楄〃淇℃伅 @@ -38,7 +45,17 @@ */ @DataProvider public List<WhjlApi1101> listData() { - return null; + List<ApiInfoData> result = apiInfoDataRep.getDataByInteId(WhjlConstant.API_CODE_1101); + if(null == result ||result.isEmpty()){ + return null; + } + List<WhjlApi1101> list = new ArrayList<>(); + WhjlApi1101 whjlApi1101; + for (ApiInfoData infoData : result) { + whjlApi1101 = JSONObject.parseObject(infoData.getData().toString(), WhjlApi1101.class); + list.add(whjlApi1101); + } + return list; } /** @@ -49,8 +66,18 @@ * @return */ @DataResolver - public String saveData(WhjlApi1101 data) { - return null; + public void saveData(WhjlApi1101 data) { + ApiInfoData infoData = new ApiInfoData(); + infoData.setId(data.getBizId()); + infoData.setKqdm(data.getKqdm()); + infoData.setInteType(WhjlConstant.API_CATEGORY_11); + infoData.setInteId(WhjlConstant.API_CODE_1101); + infoData.setUpdateTime(new Date()); + infoData.setDataId(data.getBizId()); + infoData.setData(JSON.toJSONString(data)); + infoData.setRemarks("澶囨敞淇℃伅"); + + apiInfoDataRep.save(infoData); } /** @@ -62,6 +89,7 @@ */ @Expose public String delData(WhjlApi1101 data) { + apiInfoDataRep.deleteById(data.getBizId()); return null; } @@ -93,14 +121,25 @@ responseDto = apiService.pushData(param, apiConf, items); if (responseDto.getSuccess() == 0) { //鎺ㄩ�佹垚鍔燂紝鏇存柊鏁版嵁涓婁紶鐘舵�� - WhjlApi1101 d; - for (WhjlApi1101 data : items) { - d = new WhjlApi1101(); - BeanUtils.copyProperties(data, d); - if("i".equals(d.getCzbz())){ - d.setCzbz("u"); - //TODO 鏇存柊鐘舵�侊紝寰呭疄鐜� + ApiInfoData infoData; + for (WhjlApi1101 data : items) { + if(Constant.CZBZ_I.equals(data.getCzbz())){ + + infoData = new ApiInfoData(); + infoData.setId(data.getBizId()); + infoData.setKqdm(data.getKqdm()); + infoData.setInteType(WhjlConstant.API_CATEGORY_11); + infoData.setInteId(WhjlConstant.API_CODE_1101); + infoData.setUpdateTime(new Date()); + infoData.setDataId(data.getBizId()); + infoData.setRemarks("澶囨敞淇℃伅"); + + data.setCzbz(Constant.CZBZ_U); + infoData.setCzbz(Constant.CZBZ_U); + infoData.setData(JSON.toJSONString(data)); + + apiInfoDataRep.save(infoData); } } result += responseDto.toString(); -- Gitblit v1.9.3