CZT
2023-08-07 000de9e8a0507f6c58e08466fe18fdf05edaf7ad
武汉军粮省平台-数据持久化保存及查询
已添加2个文件
已修改2个文件
185 ■■■■■ 文件已修改
src/main/java/com/fzzy/api/entity/ApiInfoData.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/view/repository/ApiInfoDataRep.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/whhpjl/impl/Fz40ToWhjlSync1101.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/whjl/view/pr/WhjlApi1101PR.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
/**
 * ç”¨äºŽéžå›½æ ‡æŽ¥å£æ•°æ®çš„存储
 *
 * @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 = "库区代码")
    @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;
}
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);
}
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 æŒä¹…化保存待实现
                //持久化保存,单独存入非国标接口表
                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());
            }
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() {
        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();