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.context.ICmdDataFlowContext;
|
import com.java110.core.event.cmd.Cmd;
|
import com.java110.core.event.cmd.CmdEvent;
|
import com.java110.dto.chargeMachine.ChargeMachineDto;
|
import com.java110.dto.chargeMachine.ChargeMachinePortDto;
|
import com.java110.intf.acct.IAccountInnerServiceSMO;
|
import com.java110.intf.common.IChargeMachineOrderV1InnerServiceSMO;
|
import com.java110.intf.common.IChargeMachinePortV1InnerServiceSMO;
|
import com.java110.intf.common.IChargeMachineV1InnerServiceSMO;
|
import com.java110.intf.user.IUserV1InnerServiceSMO;
|
import com.java110.utils.exception.CmdException;
|
import com.java110.utils.util.Assert;
|
import com.java110.vo.ResultVo;
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import java.text.ParseException;
|
import java.util.List;
|
|
/**
|
* 充电桩手动结束充电 处理类
|
* <p>
|
* add by wuxw 2023-03-09
|
*/
|
@Java110Cmd(serviceCode = "chargeMachine.stopCharge")
|
public class StopChargeCmd extends Cmd {
|
|
@Autowired
|
private IChargeMachineV1InnerServiceSMO chargeMachineV1InnerServiceSMOImpl;
|
|
@Autowired
|
private IChargeMachinePortV1InnerServiceSMO chargeMachinePortV1InnerServiceSMOImpl;
|
|
@Autowired
|
private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
|
|
@Autowired
|
private IAccountInnerServiceSMO accountInnerServiceSMOImpl;
|
|
@Autowired
|
private IChargeCore chargeCoreImpl;
|
|
@Autowired
|
private IChargeMachineOrderV1InnerServiceSMO chargeMachineOrderV1InnerServiceSMOImpl;
|
|
@Override
|
public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
|
Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区信息");
|
Assert.hasKeyAndValue(reqJson, "machineId", "未包含充电桩");
|
Assert.hasKeyAndValue(reqJson, "portId", "未包含插槽");
|
|
String userId = context.getReqHeaders().get("user-id");
|
Assert.hasLength(userId, "用户不存在");
|
|
//查询充电桩设备信息
|
|
ChargeMachineDto chargeMachineDto = new ChargeMachineDto();
|
chargeMachineDto.setCommunityId(reqJson.getString("communityId"));
|
chargeMachineDto.setMachineId(reqJson.getString("machineId"));
|
List<ChargeMachineDto> chargeMachineDtos = chargeMachineV1InnerServiceSMOImpl.queryChargeMachines(chargeMachineDto);
|
|
Assert.listOnlyOne(chargeMachineDtos, "充电桩 不存在");
|
|
// todo 插槽是否存在
|
|
ChargeMachinePortDto chargeMachinePortDto = new ChargeMachinePortDto();
|
chargeMachinePortDto.setMachineId(reqJson.getString("machineId"));
|
chargeMachinePortDto.setPortId(reqJson.getString("portId"));
|
List<ChargeMachinePortDto> chargeMachinePortDtos = chargeMachinePortV1InnerServiceSMOImpl.queryChargeMachinePorts(chargeMachinePortDto);
|
Assert.listOnlyOne(chargeMachinePortDtos, "插槽不存在");
|
|
}
|
|
@Override
|
public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
|
|
ChargeMachineDto chargeMachineDto = new ChargeMachineDto();
|
chargeMachineDto.setCommunityId(reqJson.getString("communityId"));
|
chargeMachineDto.setMachineId(reqJson.getString("machineId"));
|
List<ChargeMachineDto> chargeMachineDtos = chargeMachineV1InnerServiceSMOImpl.queryChargeMachines(chargeMachineDto);
|
|
ChargeMachinePortDto chargeMachinePortDto = new ChargeMachinePortDto();
|
chargeMachinePortDto.setMachineId(reqJson.getString("machineId"));
|
chargeMachinePortDto.setPortId(reqJson.getString("portId"));
|
List<ChargeMachinePortDto> chargeMachinePortDtos = chargeMachinePortV1InnerServiceSMOImpl.queryChargeMachinePorts(chargeMachinePortDto);
|
|
//调用充电桩充电
|
ResultVo resultVo = chargeCoreImpl.stopCharge(chargeMachineDtos.get(0), chargeMachinePortDtos.get(0));
|
|
if (resultVo.getCode() != ResultVo.CODE_OK) {
|
context.setResponseEntity(ResultVo.createResponseEntity(resultVo));
|
return;
|
}
|
|
// // todo 生成 充电订单
|
// ChargeMachineOrderPo chargeMachineOrderPo = new ChargeMachineOrderPo();
|
// chargeMachineOrderPo.setEndTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
|
// chargeMachineOrderPo.setState(ChargeMachineOrderDto.STATE_FINISH);
|
// chargeMachineOrderPo.setCommunityId(chargeMachineDtos.get(0).getCommunityId());
|
// chargeMachineOrderPo.setOrderId(orderId);
|
// chargeMachineOrderV1InnerServiceSMOImpl.updateChargeMachineOrder(chargeMachineOrderPo);
|
|
//todo 这里不操作 以设备通知为主
|
// ChargeMachinePortPo chargeMachinePortPo = new ChargeMachinePortPo();
|
// chargeMachinePortPo.setPortId(reqJson.getString("portId"));
|
// chargeMachinePortPo.setState(ChargeMachinePortDto.STATE_FREE);
|
// chargeMachinePortV1InnerServiceSMOImpl.updateChargeMachinePort(chargeMachinePortPo);
|
|
context.setResponseEntity(ResultVo.createResponseEntity(resultVo));
|
}
|
}
|