wuxw
2024-04-11 0fa5a4cb5a98d8846de72af397ba0102685c095b
service-job/src/main/java/com/java110/job/smo/impl/DataBusInnerServiceSMOImpl.java
@@ -3,21 +3,33 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.core.base.smo.BaseServiceSMO;
import com.java110.dto.businessDatabus.BusinessDatabusDto;
import com.java110.dto.businessDatabus.CustomBusinessDatabusDto;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.data.DatabusQueueDataDto;
import com.java110.dto.log.LogSystemErrorDto;
import com.java110.dto.system.BusinessDatabusDto;
import com.java110.dto.data.DatabusDataDto;
import com.java110.dto.machine.CarInoutDto;
import com.java110.dto.machine.MachineDto;
import com.java110.dto.tempCarFeeConfig.TempCarPayOrderDto;
import com.java110.entity.order.Business;
import com.java110.dto.fee.TempCarPayOrderDto;
import com.java110.dto.system.Business;
import com.java110.intf.job.IDataBusInnerServiceSMO;
import com.java110.job.adapt.IDatabusAdapt;
import com.java110.job.adapt.hcIotNew.http.ISendIot;
import com.java110.job.databus.DatabusDataQueue;
import com.java110.po.log.LogSystemErrorPo;
import com.java110.service.smo.ISaveSystemErrorSMO;
import com.java110.utils.cache.DatabusCache;
import com.java110.utils.exception.CmdException;
import com.java110.utils.factory.ApplicationContextFactory;
import com.java110.utils.util.ExceptionUtil;
import com.java110.vo.ResultVo;
import org.slf4j.Logger;
import com.java110.core.log.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
@@ -40,6 +52,11 @@
    public static final String DEFAULT_NOTIFY_TEMP_CAR_FEE_ORDER_PROTOCOL = "notifyTempCarFeeOrderAdapt";//重新送数据
    public static final String DEFAULT_DEFAULT_SEND_MACHINE_RECORD = "defaultSendMachineRecordAdapt";//默认设备记录适配器
    @Autowired
    private ISaveSystemErrorSMO saveSystemErrorSMOImpl;
    @Autowired
    private ISendIot sendIotImpl;
    @Override
    public boolean exchange(@RequestBody List<Business> businesses) {
@@ -47,7 +64,7 @@
        for (Business business : businesses) {
            doExchange(business, businesses, databusDtos);
        }
        return false;
        return true;
    }
    @Override
@@ -56,6 +73,7 @@
        return databusAdaptImpl.openDoor(reqJson);
    }
    @Override
    public ResultVo closeDoor(@RequestBody JSONObject reqJson) {
        IDatabusAdapt databusAdaptImpl = ApplicationContextFactory.getBean(DEFAULT_OPEN_DOOR_PROTOCOL, IDatabusAdapt.class);
@@ -88,6 +106,7 @@
        return databusAdaptImpl.heartbeatVideo(reqJson);
    }
    @Override
    public ResultVo restartMachine(@RequestBody JSONObject reqJson) {
        IDatabusAdapt databusAdaptImpl = ApplicationContextFactory.getBean(DEFAULT_START_MACHINE_PROTOCOL, IDatabusAdapt.class);
@@ -109,6 +128,32 @@
    }
    @Override
    public ResultVo updateCarInoutCarNum(@RequestBody CarInoutDto carInoutDto) {
        IDatabusAdapt databusAdaptImpl = ApplicationContextFactory.getBean(DEFAULT_GET_TEMP_CAR_FEE_ORDER_PROTOCOL, IDatabusAdapt.class);
        return databusAdaptImpl.updateCarInoutCarNum(carInoutDto);
    }
    @Override
    public ResultVo getManualOpenDoorLogs(@RequestBody JSONObject reqJson) {
        IDatabusAdapt databusAdaptImpl = ApplicationContextFactory.getBean(DEFAULT_GET_TEMP_CAR_FEE_ORDER_PROTOCOL, IDatabusAdapt.class);
        return databusAdaptImpl.getManualOpenDoorLogs(reqJson);
    }
    @Override
    public ResultVo tempCarAuth(@RequestBody JSONObject reqJson) {
        IDatabusAdapt databusAdaptImpl = ApplicationContextFactory.getBean(DEFAULT_NOTIFY_TEMP_CAR_FEE_ORDER_PROTOCOL, IDatabusAdapt.class);
        return databusAdaptImpl.tempCarAuth(reqJson);
    }
    @Override
    public ResultVo getTempCarAuths(@RequestBody JSONObject reqJson) {
        IDatabusAdapt databusAdaptImpl = ApplicationContextFactory.getBean(DEFAULT_NOTIFY_TEMP_CAR_FEE_ORDER_PROTOCOL, IDatabusAdapt.class);
        return databusAdaptImpl.getTempCarAuths(reqJson);
    }
    @Override
    public ResultVo notifyTempCarFeeOrder(@RequestBody TempCarPayOrderDto tempCarPayOrderDto) {
        IDatabusAdapt databusAdaptImpl = ApplicationContextFactory.getBean(DEFAULT_NOTIFY_TEMP_CAR_FEE_ORDER_PROTOCOL, IDatabusAdapt.class);
        return databusAdaptImpl.notifyTempCarFeeOrder(tempCarPayOrderDto);
@@ -117,23 +162,43 @@
    /**
     * 门禁开门记录
     *
     * @param customBusinessDatabusDto
     * @param databusDataDto
     * @return
     */
    @Override
    public void customExchange(@RequestBody CustomBusinessDatabusDto customBusinessDatabusDto) {
        IDatabusAdapt databusAdaptImpl = null;
    public boolean databusData(@RequestBody DatabusDataDto databusDataDto) {
        // IDatabusAdapt databusAdaptImpl = null;
        List<BusinessDatabusDto> databusDtos = DatabusCache.getDatabuss();
        Business business = null;
        List<Business> businesses = null;
        DatabusQueueDataDto databusQueueDataDto = null;
        String dataId = "";
        for (BusinessDatabusDto databusDto : databusDtos) {
            dataId = GenerateCodeFactory.getUUID();
            try {
                if (customBusinessDatabusDto.getBusinessTypeCd().equals(databusDto.getBusinessTypeCd())) {
                    databusAdaptImpl = ApplicationContextFactory.getBean(databusDto.getBeanName(), IDatabusAdapt.class);
                    databusAdaptImpl.customExchange(customBusinessDatabusDto);
                if (!databusDataDto.getBusinessTypeCd().equals(databusDto.getBusinessTypeCd())) {
                    continue;
                }
                businesses = new ArrayList<>();
                business = new Business();
                business.setData(databusDataDto.getData());
                business.setBusinessTypeCd(databusDataDto.getBusinessTypeCd());
                businesses.add(business);
                databusQueueDataDto = new DatabusQueueDataDto(databusDto.getBeanName(), business, businesses);
                databusQueueDataDto.setDataId(dataId);
                //todo 存放队列中
                DatabusDataQueue.addMsg(databusQueueDataDto);
//                databusAdaptImpl = ApplicationContextFactory.getBean(databusDto.getBeanName(), IDatabusAdapt.class);
//                databusAdaptImpl.customExchange(customBusinessDatabusDto);
            } catch (Exception e) {
                logger.error("执行databus失败", e);
            }
        }
        return true;
    }
@@ -148,12 +213,25 @@
        IDatabusAdapt databusAdaptImpl = null;
        for (BusinessDatabusDto databusDto : databusDtos) {
            try {
                if (business.getBusinessTypeCd().equals(databusDto.getBusinessTypeCd())) {
                if (!business.getBusinessTypeCd().equals(databusDto.getBusinessTypeCd())) {
                    continue;
                }
                //todo 收据同步去打印处理,不然前台等不及
                if ("payFeeReceiptAdapt".equals(databusDto.getBeanName())) {
                    databusAdaptImpl = ApplicationContextFactory.getBean(databusDto.getBeanName(), IDatabusAdapt.class);
                    databusAdaptImpl.execute(business, businesses);
                    continue;
                }
                //todo 存放队列中
                DatabusDataQueue.addMsg(new DatabusQueueDataDto(databusDto.getBeanName(), business, businesses));
            } catch (Exception e) {
                logger.error("执行databus失败", e);
                LogSystemErrorPo logSystemErrorPo = new LogSystemErrorPo();
                logSystemErrorPo.setErrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_errId));
                logSystemErrorPo.setErrType(LogSystemErrorDto.ERR_TYPE_DATABUS);
                logSystemErrorPo.setMsg(ExceptionUtil.getStackTrace(e));
                saveSystemErrorSMOImpl.saveLog(logSystemErrorPo);
            }
        }
    }