CZT
2023-08-17 bdf09d892e3c1cda87e6ad55123a977d246d03ff
上海市接口-提交指令解析1
已添加13个文件
已修改1个文件
465 ■■■■■ 文件已修改
src/main/java/com/fzzy/order/OrderApiService.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/OrderManager.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/OrderServer.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/data/OrderConstant.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/data/OrderData.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/data/OrderReq.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/data/OrderResp.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/data/OrderResult.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/package-info.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/otherview/package-info.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sh2023/SH2023PushService11.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sh2023/SH2023PushService12.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sh2023/SH2023PushService13.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/push/sh2023/SH2023PushService14.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/order/OrderApiService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.fzzy.order;
import com.fzzy.order.data.OrderData;
/**
 * æ ¹æ®åè®®è§£æžæŒ‡ä»¤
 *
 * @author czt
 */
public interface OrderApiService {
    /**
     * èŽ·å–åè®®ç¼–ç 
     *
     * @return
     */
    public String getProtocol();
    /**
     * è§£æžæŒ‡ä»¤
     * @param req
     * @return
     * @throws Exception
     */
    public void execute(OrderData req, String orderType);
}
src/main/java/com/fzzy/order/OrderManager.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
package com.fzzy.order;
import com.alibaba.fastjson.JSONObject;
import com.fzzy.api.entity.ApiConfs;
import com.fzzy.api.view.pr.ApiConfsPR;
import com.fzzy.order.data.OrderData;
import com.fzzy.order.data.OrderReq;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * ä¸‹å‘指令接收入口
 *
 * @author czt
 * @date 2023/8/17
 */
@Component(OrderManager.BEAN_ID)
public class OrderManager implements ApplicationContextAware {
    public static final String BEAN_ID = "order.orderManager";
    private static Map<String, OrderApiService> serviceMap;
    @Autowired
    private ApiConfsPR apiConfsPR;
    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        Map<String, OrderApiService> map = applicationContext.getBeansOfType(OrderApiService.class);
        serviceMap = new HashMap<>();
        for (String key : map.keySet()) {
            serviceMap.put(map.get(key).getProtocol(), map.get(key));
        }
    }
    /**
     * æŒ‡ä»¤è§£æžå…¥å£
     * @param req
     */
    @Async
    public void execute(OrderReq<JSONObject> req){
        //获取配置信息
        List<ApiConfs> apiConfList = apiConfsPR.listAll();
        if(null == apiConfList || apiConfList.isEmpty()){
            return;
        }
        OrderData data = JSONObject.parseObject(req.getData().toString(), OrderData.class);
        //根据配置信息执行
        OrderApiService service;
        for (ApiConfs apiConfs : apiConfList) {
            service = serviceMap.get(apiConfs.getPushProtocol());
            if(null == service){
                continue;
            }
            service.execute(data, req.getType());
        }
    }
}
src/main/java/com/fzzy/order/OrderServer.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,57 @@
package com.fzzy.order;
import com.alibaba.fastjson.JSONObject;
import com.fzzy.order.data.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
 * ä¸‹å‘指令接收入口
 *
 * @author czt
 * @date 2023/8/17
 */
@Controller
@RequestMapping("service/api")
public class OrderServer {
    @Autowired
    private OrderManager orderManager;
    /**
     * ç™»å½•入口
     * @param req
     * @return
     */
    @SuppressWarnings("unchecked")
    @ResponseBody
    @RequestMapping("/order")
    public OrderResp order(@RequestBody OrderReq<JSONObject> req){
        //判断参数
        if(null == req){
            return new OrderResp(OrderResult.ORDER_CODE_500.getCode(), OrderResult.ORDER_CODE_500.getResult());
        }
        //心跳指令,直接返回
        if(OrderConstant.ORDER_TYPE_0.equals(req.getType())){
            return new OrderResp(OrderResult.ORDER_CODE_500.getCode(), OrderResult.ORDER_CODE_500.getResult());
        }
        try {
            //异步执行
            orderManager.execute(req);
            return new OrderResp(OrderResult.ORDER_CODE_200.getCode(), OrderResult.ORDER_CODE_200.getResult());
        } catch (Exception e) {
            return new OrderResp(OrderResult.ORDER_CODE_500.getCode(), OrderResult.ORDER_CODE_500.getResult());
        }
    }
}
src/main/java/com/fzzy/order/data/OrderConstant.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
package com.fzzy.order.data;
/**
 * æŒ‡ä»¤-常量类
 * @author czt
 * @date 2023/8/17
 */
public class OrderConstant {
    /**
     * æŒ‡ä»¤ç±»åž‹
     */
    public static String ORDER_TYPE_0 = "0";  //心跳指令
    public static String ORDER_TYPE_1 = "1";  //数据上报指令
    public static String ORDER_TYPE_2 = "2";  //数据拉取指令
}
src/main/java/com/fzzy/order/data/OrderData.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
package com.fzzy.order.data;
import lombok.Data;
import java.io.Serializable;
/**
 * æŒ‡ä»¤å†…容
 * @author czt
 * @date 2023/08/17
 */
@Data
public class OrderData implements Serializable {
    /**
     * æŽ¥å£å†…容,多个中间用英文逗号隔开
     */
    private String content ;
    /**
     * å¼€å§‹æ—¶é—´ï¼Œæ ¼å¼ï¼šyyyy-MM-dd HH:mm:ss
     */
    private String starttime;
    /**
     * ç»“束时间,格式:yyyy-MM-dd HH:mm:ss
     */
    private String endtime;
    /**
     * å¤‡æ³¨ä¿¡æ¯
     */
    private String remark;
}
src/main/java/com/fzzy/order/data/OrderReq.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
package com.fzzy.order.data;
import lombok.Data;
import java.io.Serializable;
/**
 * æŒ‡ä»¤å‚æ•°
 * @author czt
 * @date 2023/08/17
 */
@Data
public class OrderReq<T> implements Serializable {
    /**
     * æŒ‡ä»¤id
     */
    private String orderid;
    /**
     * æŒ‡ä»¤ç±»åž‹
     */
    private String type;
    /**
     * æŒ‡ä»¤å†…容
     */
    private T data;
}
src/main/java/com/fzzy/order/data/OrderResp.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.fzzy.order.data;
import lombok.Data;
import java.io.Serializable;
/**
 * æŒ‡ä»¤åé¦ˆ
 * @author czt
 * @date 2023/08/17
 */
@Data
public class OrderResp<T> implements Serializable {
    /**
     *
     */
    private static final long serialVersionUID = -6714158228489303453L;
    private String code ;
    private String result;
    public OrderResp() {
    }
    public OrderResp(String code, String result) {
        this.code = code;
        this.result = result;
    }
}
src/main/java/com/fzzy/order/data/OrderResult.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
package com.fzzy.order.data;
/**
 * æŒ‡ä»¤åé¦ˆç 
 */
public enum OrderResult {
    ORDER_CODE_200("200", "指令解析成功"),
    ORDER_CODE_500("500", "指令解析失败");
    private String code;
    private String result;
    OrderResult(String code, String msg) {
        this.code = code;
        this.result = msg;
    }
    public String getCode() {
        return code;
    }
    public String getResult() {
        return result;
    }
    public static String getMsg(String code) {
        if(null == code) return null;
        if(OrderResult.ORDER_CODE_200.getCode().equals(code)) return OrderResult.ORDER_CODE_200.getResult();
        if(OrderResult.ORDER_CODE_500.getCode().equals(code)) return OrderResult.ORDER_CODE_500.getResult();
        return code;
    }
}
src/main/java/com/fzzy/order/package-info.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
/**
 * æŒ‡ä»¤åŒ…,根据下发指令获取对应数据上报
 */
package com.fzzy.order;
src/main/java/com/fzzy/otherview/package-info.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
/**
 * å„平台独有接口
 */
package com.fzzy.otherview;
src/main/java/com/fzzy/push/sh2023/SH2023PushService11.java
@@ -1,12 +1,17 @@
package com.fzzy.push.sh2023;
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.Api1101;
import com.fzzy.api.service.ApiRemoteService;
import com.fzzy.api.service.PushService11;
import com.fzzy.push.impl.ComPushService11;
import com.fzzy.api.view.repository.Api1101Rep;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
/**
 * ä¸Šæµ·å¸‚平台2023版-基础数据上传
@@ -20,7 +25,9 @@
    @Autowired
    private ComPushService11 pushService;
    private SH2023ApiRemoteService apiRemoteService;
    @Autowired
    private Api1101Rep api1101Rep;
    @Override
    public String getProtocol() {
@@ -32,8 +39,38 @@
        log.info("------->>>>基础信息 æŽ¥å£æ¨¡å—上报开始");
        //推送单位信息
        this.pushData1101(apiRemoteService, param);
        //TODO å…¶ä»–基础信息
        log.info("------->>>>基础信息 æŽ¥å£æ¨¡å—上报结束");
    }
    /**
     * 1101 å•位信息
     */
    private void pushData1101(ApiRemoteService apiRemoteService, ApiParam param) {
        //TODO èŽ·å–å•ä½ä¿¡æ¯
        List<Api1101> list = null;
        if (null == list || list.isEmpty()) {
            return;
        }
        //推送,数据为集合形式
        ResponseDto responseDto = apiRemoteService.pushData(param, list);
        if (responseDto.getSuccess() == 0) {
            //推送成功,更新数据上传状态
            for (Api1101 data : list) {
                if (Constant.CZBZ_I.equals(data.getCzbz())) {
                    data.setCzbz(Constant.CZBZ_U);
                    //更新状态
                    api1101Rep.save(data);
                }
            }
        }
    }
}
src/main/java/com/fzzy/push/sh2023/SH2023PushService12.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.fzzy.push.sh2023;
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;
/**
 * ä¸Šæµ·å¸‚平台2023版-基础数据上传
 *
 * @author czt
 * @date 2023/08/17
 */
@Slf4j
@Component
public class SH2023PushService12 implements PushService11 {
    @Autowired
    private ComPushService11 pushService;
    @Override
    public String getProtocol() {
        return PushProtocol.SB_SH_2023.getCode();
    }
    @Override
    public void pushData(ApiParam param) {
        log.info("------->>>>基础信息 æŽ¥å£æ¨¡å—上报开始");
        //推送单位信息
        log.info("------->>>>基础信息 æŽ¥å£æ¨¡å—上报结束");
    }
}
src/main/java/com/fzzy/push/sh2023/SH2023PushService13.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.fzzy.push.sh2023;
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;
/**
 * ä¸Šæµ·å¸‚平台2023版-基础数据上传
 *
 * @author czt
 * @date 2023/08/17
 */
@Slf4j
@Component
public class SH2023PushService13 implements PushService11 {
    @Autowired
    private ComPushService11 pushService;
    @Override
    public String getProtocol() {
        return PushProtocol.SB_SH_2023.getCode();
    }
    @Override
    public void pushData(ApiParam param) {
        log.info("------->>>>基础信息 æŽ¥å£æ¨¡å—上报开始");
        //推送单位信息
        log.info("------->>>>基础信息 æŽ¥å£æ¨¡å—上报结束");
    }
}
src/main/java/com/fzzy/push/sh2023/SH2023PushService14.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
package com.fzzy.push.sh2023;
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;
/**
 * ä¸Šæµ·å¸‚平台2023版-基础数据上传
 *
 * @author czt
 * @date 2023/08/17
 */
@Slf4j
@Component
public class SH2023PushService14 implements PushService11 {
    @Autowired
    private ComPushService11 pushService;
    @Override
    public String getProtocol() {
        return PushProtocol.SB_SH_2023.getCode();
    }
    @Override
    public void pushData(ApiParam param) {
        log.info("------->>>>基础信息 æŽ¥å£æ¨¡å—上报开始");
        //推送单位信息
        log.info("------->>>>基础信息 æŽ¥å£æ¨¡å—上报结束");
    }
}