Your Name
2023-03-14 f68a0518107776824903fc574fcd8f4631e3a19e
查询设备状态
8个文件已修改
140 ■■■■■ 已修改文件
java110-bean/src/main/java/com/java110/dto/chargeMachine/ChargeMachineDto.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-common/src/main/java/com/java110/common/charge/ChargeCoreImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-common/src/main/java/com/java110/common/charge/IChargeCore.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-common/src/main/java/com/java110/common/charge/IChargeFactoryAdapt.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-common/src/main/java/com/java110/common/charge/factory/common/CommonChargeMachineFactoryAdapt.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-common/src/main/java/com/java110/common/charge/factory/dingding/DingdingChargeMachineFactoryAdapt.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-common/src/main/java/com/java110/common/charge/factory/kehang/KeHangChargeMachineFactoryAdapt.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-common/src/main/java/com/java110/common/cmd/chargeMachine/ListChargeMachineCmd.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/chargeMachine/ChargeMachineDto.java
@@ -15,6 +15,9 @@
 **/
public class ChargeMachineDto extends PageDto implements Serializable {
    public static final String STATE_ONLINE = "ONLINE";
    public static final String STATE_OFFLINE = "OFFLINE";
    private String heartbeatTime;
    private String implBean;
    private String machineId;
@@ -35,6 +38,9 @@
    private String qrCode;
    private String state;
    private String stateName;
    public String getHeartbeatTime() {
        return heartbeatTime;
@@ -140,4 +146,20 @@
    public void setQrCode(String qrCode) {
        this.qrCode = qrCode;
    }
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public String getStateName() {
        return stateName;
    }
    public void setStateName(String stateName) {
        this.stateName = stateName;
    }
}
service-common/src/main/java/com/java110/common/charge/ChargeCoreImpl.java
@@ -247,4 +247,28 @@
                "\"msg\" : \"success\"\n" +
                "}", HttpStatus.OK);
    }
    @Override
    public void queryChargeMachineState(List<ChargeMachineDto> chargeMachineDtos) {
        for(ChargeMachineDto chargeMachineDto : chargeMachineDtos) {
            try {
                ChargeMachineFactoryDto chargeMachineFactoryDto = new ChargeMachineFactoryDto();
                chargeMachineFactoryDto.setFactoryId(chargeMachineDto.getImplBean());
                List<ChargeMachineFactoryDto> chargeMachineFactoryDtos = chargeMachineFactoryV1InnerServiceSMOImpl.queryChargeMachineFactorys(chargeMachineFactoryDto);
                Assert.listOnlyOne(chargeMachineFactoryDtos, "充电桩厂家不存在");
                IChargeFactoryAdapt chargeFactoryAdapt = ApplicationContextFactory.getBean(chargeMachineFactoryDtos.get(0).getBeanImpl(), IChargeFactoryAdapt.class);
                if (chargeFactoryAdapt == null) {
                    throw new CmdException("厂家接口未实现");
                }
                chargeFactoryAdapt.queryChargeMachineState(chargeMachineDto);
            }catch (Exception e){
                e.printStackTrace();
                chargeMachineDto.setState(ChargeMachineDto.STATE_OFFLINE);
                chargeMachineDto.setStateName("离线");
            }
        }
    }
}
service-common/src/main/java/com/java110/common/charge/IChargeCore.java
@@ -6,6 +6,8 @@
import com.java110.vo.ResultVo;
import org.springframework.http.ResponseEntity;
import java.util.List;
/**
 * 充电适配器
 */
@@ -44,4 +46,9 @@
    ResponseEntity<String> heartbeat(NotifyChargeOrderDto notifyChargeOrderDto);
    /**
     * 查询设备状态
     * @param chargeMachineDtos
     */
    void queryChargeMachineState(List<ChargeMachineDto> chargeMachineDtos);
}
service-common/src/main/java/com/java110/common/charge/IChargeFactoryAdapt.java
@@ -47,4 +47,10 @@
     * @return
     */
    List<NotifyChargePortDto> getChargeHeartBeatParam(NotifyChargeOrderDto notifyChargeOrderDto);
    /**
     * 查询设备状态
     * @param chargeMachineDto
     */
    void queryChargeMachineState(ChargeMachineDto chargeMachineDto);
}
service-common/src/main/java/com/java110/common/charge/factory/common/CommonChargeMachineFactoryAdapt.java
@@ -76,4 +76,9 @@
        return ports;
    }
    @Override
    public void queryChargeMachineState(ChargeMachineDto chargeMachineDto) {
        chargeMachineDto.setState(ChargeMachineDto.STATE_ONLINE);
    }
}
service-common/src/main/java/com/java110/common/charge/factory/dingding/DingdingChargeMachineFactoryAdapt.java
@@ -18,13 +18,16 @@
/**
 * 叮叮充电桩 充电接口类
 *
 * <p>
 * 叮叮 充电桩 通知处理类名为 NotifyDingDingChargeController.java
 */
@Service("dingdingChargeMachineFactory")
public class DingdingChargeMachineFactoryAdapt implements IChargeFactoryAdapt {
    private static final String QUERY_PORT_URL = DingdingChargeUtils.URL + "/equipments/ID/PORT";
    private static final String QUERY_CHARGE_STATE_URL = DingdingChargeUtils.URL + "/equipments/code/ID";
    //开始充电
    private static final String START_CHARGE_URL = DingdingChargeUtils.URL + "/equipments/ID/PORT/open";
@@ -121,4 +124,31 @@
        return ports;
    }
    @Override
    public void queryChargeMachineState(ChargeMachineDto chargeMachineDto) {
        String url = QUERY_CHARGE_STATE_URL.replace("ID", chargeMachineDto.getMachineCode());
        String paramOut = null;
        try {
            paramOut = DingdingChargeUtils.execute(url, "", HttpMethod.GET);
        } catch (Exception e) {
            throw new IllegalArgumentException(e.getMessage());
        }
        JSONObject paramObj = JSONObject.parseObject(paramOut);
        if (paramObj.getIntValue("code") != 200) {
            throw new IllegalArgumentException(paramObj.getString("msg"));
        }
        Boolean online = paramObj.getJSONObject("data").getBoolean("online");
        if (online) {
            chargeMachineDto.setState(ChargeMachineDto.STATE_ONLINE);
            chargeMachineDto.setStateName("在线");
            return;
        }
        chargeMachineDto.setState(ChargeMachineDto.STATE_OFFLINE);
        chargeMachineDto.setStateName("离线");
    }
}
service-common/src/main/java/com/java110/common/charge/factory/kehang/KeHangChargeMachineFactoryAdapt.java
@@ -100,6 +100,34 @@
    }
    @Override
    public void queryChargeMachineState(ChargeMachineDto chargeMachineDto) {
        JSONObject body = new JSONObject();
        body.put("equipCd", chargeMachineDto.getMachineCode());
        String paramOut = null;
        try {
            paramOut = DingdingChargeUtils.execute("net.equip.online.que", body.toJSONString(), HttpMethod.GET);
        } catch (Exception e) {
            throw new IllegalArgumentException(e.getMessage());
        }
        JSONObject paramObj = JSONObject.parseObject(paramOut);
        if (paramObj.getIntValue("code") != 1) {
            throw new IllegalArgumentException(paramObj.getString("msg"));
        }
        JSONObject data = paramObj.getJSONObject("data");
        if(data.getBoolean("online")){
            chargeMachineDto.setState(ChargeMachineDto.STATE_ONLINE);
            chargeMachineDto.setStateName("在线");
            return ;
        }
        chargeMachineDto.setState(ChargeMachineDto.STATE_OFFLINE);
        chargeMachineDto.setStateName("离线");
    }
    @Override
    public List<NotifyChargePortDto> getChargeHeartBeatParam(NotifyChargeOrderDto notifyChargeOrderDto) {
        return null;
    }
service-common/src/main/java/com/java110/common/cmd/chargeMachine/ListChargeMachineCmd.java
@@ -16,6 +16,7 @@
package com.java110.common.cmd.chargeMachine;
import com.alibaba.fastjson.JSONObject;
import com.java110.common.charge.IChargeCore;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.annotation.Java110Transactional;
import com.java110.core.context.ICmdDataFlowContext;
@@ -63,6 +64,9 @@
    @Autowired
    private ISmallWeChatInnerServiceSMO smallWeChatInnerServiceSMOImpl;
    @Autowired
    private IChargeCore chargeCoreImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
        super.validatePageInfo(reqJson);
@@ -81,6 +85,9 @@
        if (count > 0) {
            chargeMachineDtos = chargeMachineV1InnerServiceSMOImpl.queryChargeMachines(chargeMachineDto);
            freshQrCodeUrl(chargeMachineDtos);
            // todo  查询设备是否在线
            queryMachineState(chargeMachineDtos);
        } else {
            chargeMachineDtos = new ArrayList<>();
        }
@@ -92,6 +99,15 @@
        cmdDataFlowContext.setResponseEntity(responseEntity);
    }
    private void queryMachineState(List<ChargeMachineDto> chargeMachineDtos) {
        if(chargeMachineDtos == null || chargeMachineDtos.size() < 1 || chargeMachineDtos.size() > 10){
            return ;
        }
        chargeCoreImpl.queryChargeMachineState(chargeMachineDtos);
    }
    /**
     * 充电桩二维码
     *