陈战涛
2023-05-09 17cb52bf01d1ead961a72760ba5f05f7741c1856
提交配置信息
已修改6个文件
已添加8个文件
568 ■■■■■ 文件已修改
src/main/java/com/fzzy/api/data/PushProtocol.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/service/ApiTriggerService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/utils/AESUtils.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/view/repository/Api1101Rep.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/gd2022/GD2022PushService11.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/impl/ComPushService11.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023HttpClientUtil.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService11.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService12.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService13.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService14.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiCodeConstant.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/shjdjw2023/dto/ShjdjwReqDto.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/api/data/PushProtocol.java
@@ -15,7 +15,8 @@
    SB_GD_2022("SB_GD_2022", "广东省平台2022版"),
    SB_GD_2020("SB_GD_2020", "广东省平台2020版"),
    SB_HN_2022("SB_HN_2022", "河南省平台2022版"),
    HB_FZZY_JG_2022("HB_FZZY_JG_2022", "风正致远监管2022版本");
    HB_FZZY_JG_2022("HB_FZZY_JG_2022", "风正致远监管2022版本"),
    SB_SHJdJW_2023("SB_SHJdJW_2023", "上海嘉定纪委监管平台2023版");
    private String code;
src/main/java/com/fzzy/api/service/ApiTriggerService.java
@@ -179,6 +179,7 @@
        list.add(new ApiTrigger(PushProtocol.SB_GD_2022.getCode(), PushProtocol.SB_GD_2022.getName()));
        list.add(new ApiTrigger(PushProtocol.SB_GD_2020.getCode(), PushProtocol.SB_GD_2020.getName()));
        list.add(new ApiTrigger(PushProtocol.HB_FZZY_JG_2022.getCode(), PushProtocol.HB_FZZY_JG_2022.getName()));
        list.add(new ApiTrigger(PushProtocol.SB_SHJdJW_2023.getCode(), PushProtocol.SB_SHJdJW_2023.getName()));
        return list;
    }
src/main/java/com/fzzy/api/utils/AESUtils.java
@@ -1,6 +1,7 @@
package com.fzzy.api.utils;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
@@ -29,6 +30,8 @@
     * åŠ è§£å¯†æ–¹å¼
     */
    private final static String ALGORITHM  = "AES";
    private final static String ALGORITHM_ECB  = "ECB";
    private final static int KEY_SIZE_128 = 128;
    /**
     *加密模式及填充方式
@@ -81,5 +84,33 @@
        return new String(encryptData,ENCODING);
    }
    /**
     * AES加密-ECB方式
     * @param plainText
     * @param key
     * @return
     * @throws Exception
     */
    public static String encryptByEcb(String plainText, String key) throws Exception {
        if (key == null) {
            System.out.print("Key为空null");
            return null;
        }
        // åˆ¤æ–­Key是否为16位
//        if (key.length() != 16) {
//            System.out.print("Key长度不是16位");
//            return null;
//        }
        SecretKey secretKey = new SecretKeySpec(key.getBytes(ENCODING), ALGORITHM_ECB);
        // AES加密采用pkcs5padding填充
        Cipher cipher = Cipher.getInstance(PATTERN);
        //用密匙初始化Cipher对象
        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
        //执行加密操作
        byte[] encryptData = cipher.doFinal(plainText.getBytes(ENCODING));
        return Base64.getEncoder().encodeToString(encryptData);
    }
}
src/main/java/com/fzzy/api/view/repository/Api1101Rep.java
@@ -3,11 +3,14 @@
import com.fzzy.api.entity.Api1101;
import com.fzzy.api.entity.Api1111;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
public interface Api1101Rep extends JpaRepository<Api1101, String> {
@@ -24,4 +27,11 @@
    @Query("update Api1101 set czbz=:czbz where dwdm=:id ")
    int updateStatus(@Param("id") String id, @Param("czbz") String czbz);
    /**
     * æŸ¥è¯¢æ‰€æœ‰çš„监控点位信息
     * @param kqdm
     * @return
     */
    @Query("from Api1101 where kqdm=:kqdm ")
    List<Api1101> findPushData(@Param("kqdm") String kqdm);
}
src/main/java/com/fzzy/push/gd2022/GD2022PushService11.java
@@ -3,7 +3,6 @@
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.PushProtocol;
import com.fzzy.api.service.PushService11;
import com.fzzy.push.gd2020.GDApiRemoteService;
import com.fzzy.push.impl.ComPushService11;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,7 +18,7 @@
public class GD2022PushService11 implements PushService11 {
    @Autowired
    private GDApiRemoteService apiRemoteService;
    private GD2022ApiRemoteService2022 apiRemoteService;
    @Autowired
    private ComPushService11 pushService;
src/main/java/com/fzzy/push/impl/ComPushService11.java
@@ -3,8 +3,10 @@
import com.fzzy.api.Constant;
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.dto.ResponseDto;
import com.fzzy.api.entity.Api1101;
import com.fzzy.api.entity.Api1111;
import com.fzzy.api.service.ApiRemoteService;
import com.fzzy.api.view.repository.Api1101Rep;
import com.fzzy.api.view.repository.Api1111Rep;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -20,9 +22,37 @@
public class ComPushService11 {
    @Autowired
    private Api1101Rep api1101Rep;
    @Autowired
    private Api1111Rep api1111Rep;
    /**
     * 1101 å•位信息
     */
    public void pushData1101(ApiRemoteService apiRemoteService, ApiParam param) {
        List<Api1101> items = api1101Rep.findPushData(param.getKqdm());
        if (null == items || items.isEmpty()) {
            return;
        }
        param.setInteCategory(Constant.API_CATEGORY_11);
        param.setInteId(Constant.API_CODE_1111);
        ResponseDto responseDto;
        for (Api1101 data : items) {
            param.setBizId(data.getBizId());
            responseDto = apiRemoteService.pushData(param, data);
            if (responseDto.getSuccess() == 0) {
                if (Constant.CZBZ_I.equals(data.getCzbz())) {
                    api1101Rep.updateStatus(data.getDwdm(), Constant.CZBZ_U);
                }
            }
        }
    }
    /**
     * 1111 åº“区图视频监控设备点位标注
     */
    public void pushData1111(ApiRemoteService apiRemoteService, ApiParam param) {
src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023HttpClientUtil.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.fzzy.push.shjdjw2023;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.fzzy.api.entity.ApiConfs;
import com.fzzy.api.utils.AESUtils;
import com.fzzy.api.utils.MyMD5Util;
import com.fzzy.api.utils.SnowflakeIdWorker;
import com.fzzy.push.gd2022.dto.GD2022AuthToken;
import com.fzzy.push.gd2022.dto.GD2022ResponseDto;
import lombok.extern.slf4j.Slf4j;
import java.io.*;
import java.lang.reflect.Type;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;
import java.util.UUID;
/**
 * ä¸Šæµ·å˜‰å®šçºªå§”监管平台-上传数据服务类
 * @author czt
 * @date 2023/5/9  14:21
 */
@Slf4j
public class Shjdjw2023HttpClientUtil {
    /**
     * post formData
     * @param url
     * @return
     * @throws Exception
     */
    @SuppressWarnings("resource")
    public static GD2022ResponseDto postPushData(String url, String data , ApiConfs apiConfs) throws Exception {
        log.info("---------接口请求地址:" +url+ "----------参数:" + data +"---------");
        BufferedReader in = null;
        URL urls = new URL(url);
        HttpURLConnection connection = null;
        OutputStream outputStream = null;
        String rs = "";
        GD2022ResponseDto responseDto;
        try {
            String md = AESUtils.encryptByEcb(data, apiConfs.getPublicKey());
            log.info("---------接口请求地址:" +url+ "----------密文参数:" + md +"---------");
            connection = (HttpURLConnection) urls.openConnection();
            connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8");
            connection.setRequestProperty("Accept", "*/*");
            connection.setRequestProperty("Range", "bytes=" + "");
            connection.setRequestProperty("token", apiConfs.getPassword());
            connection.setConnectTimeout(20000);
            connection.setReadTimeout(30000);
            connection.setRequestMethod("POST");
            StringBuffer buffer = new StringBuffer();
            buffer.append(md);
            outputStream = connection.getOutputStream();
            outputStream.write(buffer.toString().getBytes("UTF-8"));
            try {
                connection.connect();
                if (connection.getResponseCode() == 200) {
                    in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
                    String line = "";
                    while ((line = in.readLine()) != null) {
                        rs += line;
                    }
                }else{
                    log.error("http状态:" + connection.getResponseCode());
                    log.error("http消息:" + connection.getResponseMessage());
                }
            } catch (Exception e) {
                System.out.println("发生异常");
                log.error(e.getMessage(),e);
                rs = null;
                return new GD2022ResponseDto(99,e.getMessage());
            }
            log.info("---------接口返回:" + rs +"---------");
            responseDto = JSON.parseObject(rs,GD2022ResponseDto.class);
            if(responseDto == null )   return new GD2022ResponseDto(99,"接口请求发生未知错误");
            return responseDto;
        } finally {
            try {
                outputStream.close();
                if (in != null){
                    in.close();
                }
            } catch (Exception e) {
            }
            outputStream = null;
            if (connection != null)
                connection.disconnect();
            connection = null;
        }
    }
}
src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService11.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.fzzy.push.shjdjw2023;
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.PushProtocol;
import com.fzzy.api.service.PushService11;
import com.fzzy.push.impl.ComPushService11;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
 * ä¸Šæµ·å˜‰å®šçºªå§”监管平台-基础数据上传
 * @author czt
 * @date 2023/5/9  16:21
 */
@Slf4j
@Component
public class Shjdjw2023PushService11 implements PushService11 {
    @Autowired
    private ShjdjwApiRemoteService2023 apiRemoteService;
    @Autowired
    private ComPushService11 pushService;
    @Override
    public String getProtocol() {
        return PushProtocol.SB_GD_2022.getCode();
    }
    @Override
    public void pushData(ApiParam param) {
        log.info("------->>>>基础信息 æŽ¥å£æ¨¡å—上报开始");
        //TODO å•位信息
        log.info("------->>>>基础信息 æŽ¥å£æ¨¡å—上报结束");
    }
}
src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService12.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
package com.fzzy.push.shjdjw2023;
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.PushProtocol;
import com.fzzy.api.service.PushService12;
import com.fzzy.push.impl.ComPushService12;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
 * ä¸Šæµ·å˜‰å®šçºªå§”监管平台-粮食购销数据上传
 * @author czt
 * @date 2023/5/9  16:23
 */
@Slf4j
@Component
public class Shjdjw2023PushService12 implements PushService12 {
    @Autowired
    private ShjdjwApiRemoteService2023 apiRemoteService;
    @Autowired
    private ComPushService12 pushService;
    @Override
    public String getProtocol() {
        return PushProtocol.SB_GD_2022.getCode();
    }
    @Override
    public void pushData(ApiParam param) {
        log.info("------->>>>粮食购销 æŽ¥å£æ¨¡å—上报开始");
        //TODO ç²®é£Ÿå…¥åº“信息
        //TODO ç²®é£Ÿå…¥åº“质检信息
        //TODO ç²®é£Ÿå‡ºåº“信息
        //TODO ç²®é£Ÿåº“存信息
        //TODO æŸç›Šå•信息
        log.info("------->>>>粮食购销 æŽ¥å£æ¨¡å—上报结束");
    }
}
src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService13.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.fzzy.push.shjdjw2023;
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.PushProtocol;
import com.fzzy.api.service.PushService13;
import com.fzzy.push.impl.ComPushService13;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
 * ä¸Šæµ·å˜‰å®šçºªå§”监管平台-粮食管理数据上传
 * @author czt
 * @date 2023/5/9  16:25
 */
@Slf4j
@Component
public class Shjdjw2023PushService13 implements PushService13 {
    @Autowired
    private ShjdjwApiRemoteService2023 apiRemoteService;
    @Autowired
    private ComPushService13 pushService;
    @Override
    public String getProtocol() {
        return PushProtocol.SB_GD_2022.getCode();
    }
    @Override
    public void pushData(ApiParam param) {
        log.info("------->>>>粮食管理 æŽ¥å£æ¨¡å—上报开始");
        //TODO è´¨æ£€ä¿¡æ¯
        log.info("------->>>>粮食管理 æŽ¥å£æ¨¡å—上报结束");
    }
}
src/main/java/com/fzzy/push/shjdjw2023/Shjdjw2023PushService14.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
package com.fzzy.push.shjdjw2023;
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.PushProtocol;
import com.fzzy.api.service.PushService14;
import com.fzzy.push.impl.ComPushService14;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
 * ä¸Šæµ·å˜‰å®šçºªå§”监管平台-行政管理数据上传
 * @author czt
 * @date 2023/5/9  16:27
 */
@Slf4j
@Component
public class Shjdjw2023PushService14 implements PushService14 {
    @Autowired
    private ShjdjwApiRemoteService2023 apiRemoteService;
    @Autowired
    private ComPushService14 pushService;
    @Override
    public String getProtocol() {
        return PushProtocol.SB_GD_2022.getCode();
    }
    @Override
    public void pushData(ApiParam param) {
        log.info("------->>>>行政管理 æŽ¥å£æ¨¡å—上报开始");
        //TODO è½®æ¢è®¡åˆ’信息
        //TODO è½®æ¢è®¡åˆ’完成信息
        log.info("------->>>>行政管理 æŽ¥å£æ¨¡å—上报结束");
    }
}
src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiCodeConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
package com.fzzy.push.shjdjw2023;
/**
 * ä¸Šæµ·å˜‰å®šçºªå§”监管平台-接口编码
 * @author czt
 * @date 2023/5/9  14:25
 */
public class ShjdjwApiCodeConstant {
    /**
     * æŽ¥å£ç¼–码-1101 å•位信息
     */
    public static String API_CODE_LS1101 = "ls1101";
    /**
     * æŽ¥å£ç¼–码-1201 è´¨æ£€
     */
    public static String API_CODE_LS1201 = "ls1201";
    /**
     * æŽ¥å£ç¼–码-1302 ç²®é£Ÿå…¥åº“
     */
    public static String API_CODE_LS1302 = "ls1302";
    /**
     * æŽ¥å£ç¼–码-1303 å…¥åº“质检
     */
    public static String API_CODE_LS1303 = "ls1303";
    /**
     * æŽ¥å£ç¼–码-1306 ç²®é£Ÿå‡ºåº“
     */
    public static String API_CODE_LS1306 = "ls1306";
    /**
     * æŽ¥å£ç¼–码-1310 ç²®é£Ÿåº“å­˜
     */
    public static String API_CODE_LS1310 = "ls1310";
    /**
     * æŽ¥å£ç¼–码-1311 æŸç›Šå•
     */
    public static String API_CODE_LS1311 = "ls1311";
    /**
     * æŽ¥å£ç¼–码-101 è½®æ¢è®¡åˆ’
     */
    public static String API_CODE_LS1501 = "ls1501";
    /**
     * æŽ¥å£ç¼–码-1502 è½®æ¢è®¡åˆ’完成情况
     */
    public static String API_CODE_LS1502 = "ls1502";
}
src/main/java/com/fzzy/push/shjdjw2023/ShjdjwApiRemoteService2023.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,151 @@
package com.fzzy.push.shjdjw2023;
import com.alibaba.fastjson.JSON;
import com.fzzy.api.Constant;
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.PushProtocol;
import com.fzzy.api.dto.ResponseDto;
import com.fzzy.api.entity.ApiConfs;
import com.fzzy.api.entity.ApiLog;
import com.fzzy.api.service.ApiCommonService;
import com.fzzy.api.service.ApiRemoteService;
import com.fzzy.api.utils.ContextUtil;
import com.fzzy.api.utils.RedisUtil;
import com.fzzy.api.view.repository.ApiLogRep;
import com.fzzy.push.gd2022.dto.*;
import com.fzzy.push.shjdjw2023.dto.ShjdjwReqDto;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
/**
 * ä¸Šæµ·å˜‰å®šçºªå§”监管平台-上传数据服务类
 *
 * @author czt
 * @date 2023/5/9  14:09
 */
@Slf4j
@Data
@Service
public class ShjdjwApiRemoteService2023 implements ApiRemoteService {
    @Autowired
    private RedisUtil redisUtil;
    @Autowired
    private ApiCommonService apiCommonService;
    @Autowired
    private ApiLogRep apiLogRep;
    @Override
    public String getProtocol() {
        return PushProtocol.SB_SHJdJW_2023.getCode();
    }
    @Override
    public ResponseDto pushData(ApiParam param, Object data) {
        return pushData(param, null, data);
    }
    @Override
    public ResponseDto pushData(ApiParam param, ApiConfs conf, Object data) {
        String inteId = param.getInteId();
        String kqdm = param.getKqdm();
        String bizId = param.getBizId();
        try {
            if (null == conf) {
                conf = apiCommonService.getConf(kqdm);
            }
            //添加日志
            ApiLog apiLog = new ApiLog();
            apiLog.setId(ContextUtil.getUUID());
            apiLog.setInteId(param.getInteId());
            //获取接口编码
            String interfaceId = getDataId(inteId);
            //获取json数据
            String jsonData = getJsonData(inteId, data, interfaceId);
            if (StringUtils.isEmpty(interfaceId)) {
                ResponseDto responseDto = new ResponseDto(99, "没有获取到接口", bizId);
                apiLog.setStatus(99);
                apiLog.setResult("没有获取到接口");
                apiLogRep.save(apiLog);
                return responseDto;
            }
            apiLog.setData(jsonData);
            apiLog.setKqdm(kqdm);
            apiLog.setUploadTime(new Date());
            if (conf == null) {
                ResponseDto responseDto = new ResponseDto(99, "没有获取到上传配置", bizId);
                apiLog.setStatus(99);
                apiLog.setResult("没有获取到上传配置");
                apiLogRep.save(apiLog);
                return responseDto;
            }
            Map<String, Object> map = new HashMap<>();
            GD2022ResponseDto responseDto = Shjdjw2023HttpClientUtil.postPushData(conf.getApiUrl() + inteId, jsonData, conf);
            responseDto.setBizId(bizId);
            apiLog.setStatus(responseDto.getCode() == 200 ? 0 : responseDto.getCode());
            apiLog.setResult(responseDto.getMsg());
            apiLogRep.save(apiLog);
            ResponseDto resd = new ResponseDto();
            resd.setSuccess(responseDto.getCode() == 200 ? 0 : responseDto.getCode());
            resd.setMsg(responseDto.getMsg());
            //updateGD2022AuthToken(responseDto,conf, token);
            return resd;
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            return new ResponseDto(99, e.getMessage());
        }
    }
    /**
     * è°ƒæ•´æ•°æ®å°è£…,获取json数据
     *
     * @param inteId
     * @param data
     * @return
     * @throws Exception
     */
    private String getJsonData(String inteId, Object data, String interfaceId){
        ShjdjwReqDto<List<Object>> dto = new ShjdjwReqDto<>();
        dto.setId(getDataId(interfaceId));
        List<Object> list = new ArrayList<>();
        //转换封装
        if(Constant.API_CODE_1101.equals(inteId)){
            list.add(data);
        }else{
            list.add(data);
        }
        dto.setData(list);
        return JSON.toJSONString(dto);
    }
    /**
     * èŽ·å–æŽ¥å£ç¼–ç 
     *
     * @param inteId
     * @return
     */
    private String getDataId(String inteId) {
        switch (inteId) {
            case "1101":
                return ShjdjwApiCodeConstant.API_CODE_LS1101;
            default:
                return inteId;
        }
    }
}
src/main/java/com/fzzy/push/shjdjw2023/dto/ShjdjwReqDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package com.fzzy.push.shjdjw2023.dto;
import lombok.Data;
import java.io.Serializable;
/**
 * ä¸Šæµ·å˜‰å®šçºªå§”监管平台-数据封装
 * @author czt
 * @date 2023/5/9  14:35
 */
@Data
public class ShjdjwReqDto<T> implements Serializable {
    /**
     * æŽ¥å£ç¼–码
     */
    private String id;
    /**
     * ä¸Šä¼ æ•°æ®(集合形式)
     */
    private T data;
}